Compare commits

...

1 Commits

Author SHA1 Message Date
Yuriy Liskov
43ef8324bf fix: home activity not found 2018-09-17 03:33:41 +03:00
3 changed files with 21 additions and 7 deletions

View File

@@ -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"

View File

@@ -5,9 +5,12 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
<application android:banner="@drawable/banner_app" android:label="@string/ime_name" android:icon="@drawable/ic_launcher" tools:targetApi="21">
<activity android:launchMode="singleTop" android:name="com.liskovsoft.other.SettingsActivity">
<activity android:launchMode="singleTop" android:name="com.liskovsoft.other.GenericLaunchActivity">
<meta-data android:name="package" android:value="com.android.settings"/>
<meta-data android:name="class" android:value="com.android.settings.Settings$InputMethodAndLanguageSettingsActivity"/>
<meta-data android:name="class" android:value="com.android.settings.Settings$LanguageAndInputSettingsActivity"/>
<!-- "Languages & input" on old api -->
<meta-data android:name="package_alt" android:value="com.android.settings"/>
<meta-data android:name="class_alt" android:value="com.android.settings.Settings$InputMethodAndLanguageSettingsActivity"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View File

@@ -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);
}