Fix disabling of tiles that are not relevant
- Fix restricted user tiles being disabled
- Call new better method in SettingsDrawerActivity for disabling
Change-Id: I2fb6ddd3d505189d2b6d96c0a1039291b80a2f70
Fixes: 29080209
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e8271a8..a686a7a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1896,8 +1896,7 @@
android:label="@string/development_settings_title"
android:icon="@drawable/ic_settings_development"
android:taskAffinity="com.android.settings"
- android:parentActivityName="Settings"
- android:enabled="false">
+ android:parentActivityName="Settings">
<intent-filter android:priority="1">
<action android:name="android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
<action android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
@@ -2442,8 +2441,7 @@
<activity android:name="Settings$PaymentSettingsActivity"
android:label="@string/nfc_payment_settings_title"
android:icon="@drawable/ic_settings_nfc_payment"
- android:taskAffinity=""
- android:enabled="false">
+ android:taskAffinity="">
<intent-filter android:priority="1">
<action android:name="android.settings.NFC_PAYMENT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
@@ -2728,7 +2726,6 @@
<activity android:name="Settings$SimSettingsActivity"
android:label="@string/sim_settings_title"
android:icon="@drawable/ic_settings_sim"
- android:enabled="false"
android:taskAffinity="">
<intent-filter android:priority="1">
<action android:name="com.android.settings.sim.SIM_SUB_INFO_SETTINGS" />
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index d989535..9a9dfee 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -1080,7 +1080,7 @@
for (DashboardCategory category : categories) {
for (Tile tile : category.tiles) {
ComponentName component = tile.intent.getComponent();
- if (packageName.equals(component)&& !ArrayUtils.contains(
+ if (packageName.equals(component.getPackageName()) && !ArrayUtils.contains(
SETTINGS_FOR_RESTRICTED, component.getClassName())) {
setTileEnabled(component, false, isAdmin, pm);
}
@@ -1091,18 +1091,11 @@
private void setTileEnabled(ComponentName component, boolean enabled, boolean isAdmin,
PackageManager pm) {
- if (UserHandle.MU_ENABLED && !isAdmin
+ if (UserHandle.MU_ENABLED && !isAdmin && getPackageName().equals(component.getPackageName())
&& !ArrayUtils.contains(SETTINGS_FOR_RESTRICTED, component.getClassName())) {
enabled = false;
}
- int state = pm.getComponentEnabledSetting(component);
- boolean isEnabled = state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
- if (isEnabled != enabled) {
- pm.setComponentEnabledSetting(component, enabled
- ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
- : PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
- PackageManager.DONT_KILL_APP);
- }
+ setTileEnabled(component, enabled);
}
private void getMetaData() {