Remove ops preference from specific app
Remve below preference in Settings>Apps>Specific app: Display over apps screen> App display on top permisson Usage access> App usage preferences Modify system settings> App modify system settings permission Change-Id: Ib4128e563b0e2739c16136694ce24182f0da6626 Fixes: 72737995 Test: Manual test
This commit is contained in:
@@ -45,7 +45,6 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
|
||||
private static final String KEY_APP_OPS_PREFERENCE_SCREEN = "app_ops_preference_screen";
|
||||
private static final String KEY_APP_OPS_SETTINGS_SWITCH = "app_ops_settings_switch";
|
||||
private static final String KEY_APP_OPS_SETTINGS_PREFS = "app_ops_settings_preference";
|
||||
private static final String KEY_APP_OPS_SETTINGS_DESC = "app_ops_settings_description";
|
||||
|
||||
// Use a bridge to get the usage stats but don't initialize it to connect with all state.
|
||||
@@ -53,7 +52,6 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
private AppStateUsageBridge mUsageBridge;
|
||||
private AppOpsManager mAppOpsManager;
|
||||
private SwitchPreference mSwitchPref;
|
||||
private Preference mUsagePrefs;
|
||||
private Preference mUsageDesc;
|
||||
private Intent mSettingsIntent;
|
||||
private UsageState mUsageState;
|
||||
@@ -70,16 +68,13 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
|
||||
addPreferencesFromResource(R.xml.app_ops_permissions_details);
|
||||
mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
|
||||
mUsagePrefs = findPreference(KEY_APP_OPS_SETTINGS_PREFS);
|
||||
mUsageDesc = findPreference(KEY_APP_OPS_SETTINGS_DESC);
|
||||
|
||||
getPreferenceScreen().setTitle(R.string.usage_access);
|
||||
mSwitchPref.setTitle(R.string.permit_usage_access);
|
||||
mUsagePrefs.setTitle(R.string.app_usage_preference);
|
||||
mUsageDesc.setSummary(R.string.usage_access_description);
|
||||
|
||||
mSwitchPref.setOnPreferenceChangeListener(this);
|
||||
mUsagePrefs.setOnPreferenceClickListener(this);
|
||||
|
||||
mSettingsIntent = new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Settings.INTENT_CATEGORY_USAGE_ACCESS_CONFIG)
|
||||
@@ -88,16 +83,6 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
if (preference == mUsagePrefs) {
|
||||
if (mSettingsIntent != null) {
|
||||
try {
|
||||
getActivity().startActivityAsUser(mSettingsIntent, new UserHandle(mUserId));
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Log.w(TAG, "Unable to launch app usage access settings " + mSettingsIntent, e);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -150,14 +135,10 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
boolean hasAccess = mUsageState.isPermissible();
|
||||
mSwitchPref.setChecked(hasAccess);
|
||||
mSwitchPref.setEnabled(mUsageState.permissionDeclared);
|
||||
mUsagePrefs.setEnabled(hasAccess);
|
||||
|
||||
ResolveInfo resolveInfo = mPm.resolveActivityAsUser(mSettingsIntent,
|
||||
PackageManager.GET_META_DATA, mUserId);
|
||||
if (resolveInfo != null) {
|
||||
if (findPreference(KEY_APP_OPS_SETTINGS_PREFS) == null) {
|
||||
getPreferenceScreen().addPreference(mUsagePrefs);
|
||||
}
|
||||
Bundle metaData = resolveInfo.activityInfo.metaData;
|
||||
mSettingsIntent.setComponent(new ComponentName(resolveInfo.activityInfo.packageName,
|
||||
resolveInfo.activityInfo.name));
|
||||
@@ -166,10 +147,6 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
mSwitchPref.setSummary(
|
||||
metaData.getString(Settings.METADATA_USAGE_ACCESS_REASON));
|
||||
}
|
||||
} else {
|
||||
if (findPreference(KEY_APP_OPS_SETTINGS_PREFS) != null) {
|
||||
getPreferenceScreen().removePreference(mUsagePrefs);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@@ -49,7 +49,6 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
OnPreferenceClickListener {
|
||||
|
||||
private static final String KEY_APP_OPS_SETTINGS_SWITCH = "app_ops_settings_switch";
|
||||
private static final String KEY_APP_OPS_SETTINGS_PREFS = "app_ops_settings_preference";
|
||||
private static final String LOG_TAG = "DrawOverlayDetails";
|
||||
|
||||
private static final int [] APP_OPS_OP_CODE = {
|
||||
@@ -61,7 +60,6 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
private AppStateOverlayBridge mOverlayBridge;
|
||||
private AppOpsManager mAppOpsManager;
|
||||
private SwitchPreference mSwitchPref;
|
||||
private Preference mOverlayPrefs;
|
||||
private Intent mSettingsIntent;
|
||||
private OverlayState mOverlayState;
|
||||
|
||||
@@ -76,11 +74,9 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
// find preferences
|
||||
addPreferencesFromResource(R.xml.draw_overlay_permissions_details);
|
||||
mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
|
||||
mOverlayPrefs = findPreference(KEY_APP_OPS_SETTINGS_PREFS);
|
||||
|
||||
// install event listeners
|
||||
mSwitchPref.setOnPreferenceChangeListener(this);
|
||||
mOverlayPrefs.setOnPreferenceClickListener(this);
|
||||
|
||||
mSettingsIntent = new Intent(Intent.ACTION_MAIN)
|
||||
.setAction(Settings.ACTION_MANAGE_OVERLAY_PERMISSION);
|
||||
@@ -109,17 +105,6 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
if (preference == mOverlayPrefs) {
|
||||
if (mSettingsIntent != null) {
|
||||
try {
|
||||
getActivity().startActivityAsUser(mSettingsIntent, new UserHandle(mUserId));
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Log.w(LOG_TAG, "Unable to launch app draw overlay settings " + mSettingsIntent,
|
||||
e);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -159,15 +144,9 @@ public class DrawOverlayDetails extends AppInfoWithHeader implements OnPreferenc
|
||||
mSwitchPref.setChecked(isAllowed);
|
||||
// you cannot ask a user to grant you a permission you did not have!
|
||||
mSwitchPref.setEnabled(mOverlayState.permissionDeclared && mOverlayState.controlEnabled);
|
||||
mOverlayPrefs.setEnabled(isAllowed);
|
||||
|
||||
ResolveInfo resolveInfo = mPm.resolveActivityAsUser(mSettingsIntent,
|
||||
PackageManager.GET_META_DATA, mUserId);
|
||||
if (resolveInfo == null) {
|
||||
if (findPreference(KEY_APP_OPS_SETTINGS_PREFS) != null) {
|
||||
getPreferenceScreen().removePreference(mOverlayPrefs);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@@ -45,7 +45,6 @@ public class WriteSettingsDetails extends AppInfoWithHeader implements OnPrefere
|
||||
|
||||
private static final String KEY_APP_OPS_PREFERENCE_SCREEN = "app_ops_preference_screen";
|
||||
private static final String KEY_APP_OPS_SETTINGS_SWITCH = "app_ops_settings_switch";
|
||||
private static final String KEY_APP_OPS_SETTINGS_PREFS = "app_ops_settings_preference";
|
||||
private static final String LOG_TAG = "WriteSettingsDetails";
|
||||
|
||||
private static final int [] APP_OPS_OP_CODE = {
|
||||
@@ -57,7 +56,6 @@ public class WriteSettingsDetails extends AppInfoWithHeader implements OnPrefere
|
||||
private AppStateWriteSettingsBridge mAppBridge;
|
||||
private AppOpsManager mAppOpsManager;
|
||||
private SwitchPreference mSwitchPref;
|
||||
private Preference mWriteSettingsPrefs;
|
||||
private Intent mSettingsIntent;
|
||||
private WriteSettingsState mWriteSettingsState;
|
||||
|
||||
@@ -71,10 +69,8 @@ public class WriteSettingsDetails extends AppInfoWithHeader implements OnPrefere
|
||||
|
||||
addPreferencesFromResource(R.xml.write_system_settings_permissions_details);
|
||||
mSwitchPref = (SwitchPreference) findPreference(KEY_APP_OPS_SETTINGS_SWITCH);
|
||||
mWriteSettingsPrefs = findPreference(KEY_APP_OPS_SETTINGS_PREFS);
|
||||
|
||||
mSwitchPref.setOnPreferenceChangeListener(this);
|
||||
mWriteSettingsPrefs.setOnPreferenceClickListener(this);
|
||||
|
||||
mSettingsIntent = new Intent(Intent.ACTION_MAIN)
|
||||
.addCategory(Settings.INTENT_CATEGORY_USAGE_ACCESS_CONFIG)
|
||||
@@ -83,16 +79,6 @@ public class WriteSettingsDetails extends AppInfoWithHeader implements OnPrefere
|
||||
|
||||
@Override
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
if (preference == mWriteSettingsPrefs) {
|
||||
if (mSettingsIntent != null) {
|
||||
try {
|
||||
getActivity().startActivityAsUser(mSettingsIntent, new UserHandle(mUserId));
|
||||
} catch (ActivityNotFoundException e) {
|
||||
Log.w(LOG_TAG, "Unable to launch write system settings " + mSettingsIntent, e);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -142,15 +128,9 @@ public class WriteSettingsDetails extends AppInfoWithHeader implements OnPrefere
|
||||
mSwitchPref.setChecked(canWrite);
|
||||
// you can't ask a user for a permission you didn't even declare!
|
||||
mSwitchPref.setEnabled(mWriteSettingsState.permissionDeclared);
|
||||
mWriteSettingsPrefs.setEnabled(canWrite);
|
||||
|
||||
ResolveInfo resolveInfo = mPm.resolveActivityAsUser(mSettingsIntent,
|
||||
PackageManager.GET_META_DATA, mUserId);
|
||||
if (resolveInfo == null) {
|
||||
if (getPreferenceScreen().findPreference(KEY_APP_OPS_SETTINGS_PREFS) != null) {
|
||||
getPreferenceScreen().removePreference(mWriteSettingsPrefs);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user