diff --git a/leankeykeyboard/build.gradle b/leankeykeyboard/build.gradle
index f20b4de..209789f 100644
--- a/leankeykeyboard/build.gradle
+++ b/leankeykeyboard/build.gradle
@@ -8,8 +8,8 @@ android {
applicationId "org.liskovsoft.leankeykeyboard.pro"
minSdkVersion project.properties.minSdkVersion
targetSdkVersion project.properties.targetSdkVersion
- versionCode 78
- versionName "4.3.28"
+ versionCode 79
+ versionName "4.3.29"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
diff --git a/leankeykeyboard/src/main/AndroidManifest.xml b/leankeykeyboard/src/main/AndroidManifest.xml
index 4d2451a..b8af890 100644
--- a/leankeykeyboard/src/main/AndroidManifest.xml
+++ b/leankeykeyboard/src/main/AndroidManifest.xml
@@ -5,9 +5,12 @@
-
+
-
+
+
+
+
diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/other/SettingsActivity.java b/leankeykeyboard/src/main/java/com/liskovsoft/other/GenericLaunchActivity.java
similarity index 81%
rename from leankeykeyboard/src/main/java/com/liskovsoft/other/SettingsActivity.java
rename to leankeykeyboard/src/main/java/com/liskovsoft/other/GenericLaunchActivity.java
index 827ee71..6d95e78 100644
--- a/leankeykeyboard/src/main/java/com/liskovsoft/other/SettingsActivity.java
+++ b/leankeykeyboard/src/main/java/com/liskovsoft/other/GenericLaunchActivity.java
@@ -15,8 +15,10 @@ import android.content.pm.ActivityInfo;
import android.content.Intent;
import android.app.Activity;
-public class SettingsActivity extends Activity
+public class GenericLaunchActivity extends Activity
{
+ private boolean isSecondLaunch = false;
+
@SuppressLint("WrongConstant")
private void addIntentFlags(final Intent intent) {
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
@@ -43,13 +45,16 @@ public class SettingsActivity extends Activity
}
private Intent makeIntent(final ActivityInfo activityInfo) {
+ String metaPackage = isSecondLaunch ? "package_alt" : "package";
+ String metaClass = isSecondLaunch ? "class_alt" : "class";
+
final Bundle metaData = activityInfo.metaData;
final Intent intent = new Intent();
if (metaData.getString("intent") != null) {
intent.setAction(metaData.getString("intent"));
- return intent;
+ } else {
+ intent.setComponent(new ComponentName(metaData.getString(metaPackage), metaData.getString(metaClass)));
}
- intent.setComponent(new ComponentName(metaData.getString("package"), metaData.getString("class")));
return intent;
}
@@ -65,6 +70,12 @@ public class SettingsActivity extends Activity
startActivity(intent);
}
catch (ActivityNotFoundException ex) {
+ if (!isSecondLaunch) {
+ isSecondLaunch = true;
+ launchApp();
+ return;
+ }
+
ex.printStackTrace();
makeLongToast(ex.getLocalizedMessage(), 10);
}