aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2013-03-05 12:54:13 +0900
committerTadashi G. Takaoka <takaoka@google.com>2013-03-05 14:56:41 +0900
commit2e1b55f7969c67d7467aa8bdc1e0a82a856cbc88 (patch)
tree36cda87a1c8d5edac86822ecc39404d3b383de40 /java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java
parentd8708911709527bb88de4f5a776ec7a20391fe37 (diff)
downloadlatinime-2e1b55f7969c67d7467aa8bdc1e0a82a856cbc88.tar.gz
latinime-2e1b55f7969c67d7467aa8bdc1e0a82a856cbc88.tar.xz
latinime-2e1b55f7969c67d7467aa8bdc1e0a82a856cbc88.zip
Add show setup wizard icon preference settings
Bug: 8239067 Change-Id: If6106a3632d3abad3e22ce29f1351525a5152ec7
Diffstat (limited to 'java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java')
-rw-r--r--java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java59
1 files changed, 28 insertions, 31 deletions
diff --git a/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java b/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java
index ad34011ea..1b893a65d 100644
--- a/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java
+++ b/java/src/com/android/inputmethod/latin/setup/LauncherIconVisibilityManager.java
@@ -16,18 +16,19 @@
package com.android.inputmethod.latin.setup;
-import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.os.Process;
+import android.preference.PreferenceManager;
import android.util.Log;
import com.android.inputmethod.compat.IntentCompatUtils;
import com.android.inputmethod.latin.RichInputMethodManager;
+import com.android.inputmethod.latin.Settings;
/**
* This class detects the {@link Intent#ACTION_MY_PACKAGE_REPLACED} broadcast intent when this IME
@@ -60,11 +61,7 @@ public final class LauncherIconVisibilityManager extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
if (shouldHandleThisIntent(intent, context)) {
- if (isInSystemImage(context)) {
- disableActivity(context, SetupActivity.class);
- } else {
- Log.i(TAG, "This package isn't in system image: " + context.getPackageName());
- }
+ updateSetupWizardIconVisibility(context);
}
// The process that hosts this broadcast receiver is invoked and remains alive even after
@@ -94,32 +91,32 @@ public final class LauncherIconVisibilityManager extends BroadcastReceiver {
return false;
}
- /**
- * Disable an activity of the specified package. Disabling an activity will also hide its
- * icon from the launcher.
- *
- * @param context package context of an activity to be disabled
- * @param activityClass activity class to be disabled
- */
- private static void disableActivity(final Context context,
- final Class<? extends Activity> activityClass) {
- final ComponentName activityComponent = new ComponentName(context, activityClass);
- final PackageManager pm = context.getPackageManager();
- final int activityComponentState = pm.getComponentEnabledSetting(activityComponent);
- if (activityComponentState == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
- // This activity is already disabled.
- Log.i(TAG, "Activity has already been disabled: " + activityComponent);
- return;
+ public static void updateSetupWizardIconVisibility(final Context context) {
+ final ComponentName setupWizardActivity = new ComponentName(context, SetupActivity.class);
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ final boolean stateHasSet;
+ if (Settings.readShowSetupWizardIcon(prefs, context)) {
+ stateHasSet = setActivityState(context, setupWizardActivity,
+ PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+ Log.i(TAG, (stateHasSet ? "Enable activity: " : "Activity has already been enabled: ")
+ + setupWizardActivity);
+ } else {
+ stateHasSet = setActivityState(context, setupWizardActivity,
+ PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
+ Log.i(TAG, (stateHasSet ? "Disable activity: " : "Activity has already been disabled: ")
+ + setupWizardActivity);
}
- // Disabling an activity will also hide its icon from the launcher.
- pm.setComponentEnabledSetting(activityComponent,
- PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP);
- Log.i(TAG, "Disable activity: " + activityComponent);
}
- private static boolean isInSystemImage(final Context context) {
- final ApplicationInfo appInfo = context.getApplicationInfo();
- return (appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
+ private static boolean setActivityState(final Context context,
+ final ComponentName activityComponent, final int activityState) {
+ final PackageManager pm = context.getPackageManager();
+ final int activityComponentState = pm.getComponentEnabledSetting(activityComponent);
+ if (activityComponentState == activityState) {
+ return false;
+ }
+ pm.setComponentEnabledSetting(
+ activityComponent, activityState, PackageManager.DONT_KILL_APP);
+ return true;
}
}