diff options
author | DvTonder <david.vantonder@gmail.com> | 2012-11-25 07:44:13 -0500 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-11-23 15:29:42 -0800 |
commit | 7e1c23414e3c839ce30e0f855a98d8f0d94f39c5 (patch) | |
tree | 1d121968b57bf83f3140434c445c27973562dad4 /src/com/android/settings/DeviceInfoSettings.java | |
parent | 5afad60db65b9567861a844182a33b3668103312 (diff) | |
download | packages_apps_Settings-7e1c23414e3c839ce30e0f855a98d8f0d94f39c5.zip packages_apps_Settings-7e1c23414e3c839ce30e0f855a98d8f0d94f39c5.tar.gz packages_apps_Settings-7e1c23414e3c839ce30e0f855a98d8f0d94f39c5.tar.bz2 |
Settings: Add CM Updater
Squashed commit of the following:
Author: DvTonder <david.vantonder@gmail.com>
Settings: Add Updater and Changelog
Change-Id: I8cf09962d9ba667bcdba78d7214fd6b5bb0feedc
Author: Jorge Ruesga <jorge@ruesga.com>
settings: hide settings of disabled components
Change-Id: I977bd0c9668b479773802f99d03ecd1072e12f75
JIRA: CYAN-3552
Issue: https://jira.cyanogenmod.org/browse/CYAN-3552
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
Author: Michael Bestas <mikeioannina@gmail.com>
Move CM updater & remove summary
* Move CM Updater to the top, like the fota app
* Use android's default 'System updates' empty summary
Change-Id: Ia3358397be97bc0ac19dd73598d053eb29efe31d
Change-Id: I8cf09962d9ba667bcdba78d7214fd6b5bb0feedc
Diffstat (limited to 'src/com/android/settings/DeviceInfoSettings.java')
-rw-r--r-- | src/com/android/settings/DeviceInfoSettings.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 3dc6446..5921fef 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -20,7 +20,9 @@ import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.pm.ApplicationInfo; +import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; import android.os.Build; import android.os.Bundle; @@ -85,6 +87,7 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In private static final String KEY_MOD_VERSION = "mod_version"; private static final String KEY_MOD_BUILD_DATE = "build_date"; private static final String KEY_MOD_API_LEVEL = "mod_api_level"; + private static final String KEY_CM_UPDATES = "cm_updates"; static final int TAPS_TO_BE_A_DEVELOPER = 7; @@ -150,6 +153,13 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In removePreferenceIfPropertyMissing(getPreferenceScreen(), KEY_SELINUX_STATUS, PROPERTY_SELINUX_STATUS); + // Only the owner should see the Updater settings, if it exists + if (UserHandle.myUserId() == UserHandle.USER_OWNER) { + removePreferenceIfPackageNotInstalled(findPreference(KEY_CM_UPDATES)); + } else { + getPreferenceScreen().removePreference(findPreference(KEY_CM_UPDATES)); + } + // Remove Safety information preference if PROPERTY_URL_SAFETYLEGAL is not set removePreferenceIfPropertyMissing(getPreferenceScreen(), KEY_SAFETY_LEGAL, PROPERTY_URL_SAFETYLEGAL); @@ -541,5 +551,28 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In } }; + private boolean removePreferenceIfPackageNotInstalled(Preference preference) { + String intentUri=((PreferenceScreen) preference).getIntent().toUri(1); + Pattern pattern = Pattern.compile("component=([^/]+)/"); + Matcher matcher = pattern.matcher(intentUri); + + String packageName=matcher.find()?matcher.group(1):null; + if(packageName != null) { + try { + PackageInfo pi = getPackageManager().getPackageInfo(packageName, + PackageManager.GET_ACTIVITIES); + if (!pi.applicationInfo.enabled) { + Log.e(LOG_TAG,"package "+packageName+" is disabled, hiding preference."); + getPreferenceScreen().removePreference(preference); + return true; + } + } catch (NameNotFoundException e) { + Log.e(LOG_TAG,"package "+packageName+" not installed, hiding preference."); + getPreferenceScreen().removePreference(preference); + return true; + } + } + return false; + } } |