Part3 - Don't add padlock if the restriction is not set by admin.
Bug: 26687435 Change-Id: Ibfea6d7d5bd32e7a05dcc2cc32b121c9e50b6a34
This commit is contained in:
@@ -56,6 +56,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
||||
protected static final boolean localLOGV = false;
|
||||
|
||||
protected EnforcedAdmin mAppsControlDisallowedAdmin;
|
||||
protected boolean mAppsControlDisallowedBySystem;
|
||||
|
||||
protected ApplicationsState mState;
|
||||
protected ApplicationsState.Session mSession;
|
||||
@@ -97,6 +98,8 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment
|
||||
mSession.resume();
|
||||
mAppsControlDisallowedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(getActivity(),
|
||||
UserManager.DISALLOW_APPS_CONTROL, mUserId);
|
||||
mAppsControlDisallowedBySystem = RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
|
||||
UserManager.DISALLOW_APPS_CONTROL, mUserId);
|
||||
|
||||
if (!refreshUi()) {
|
||||
setIntentAndFinish(true, true);
|
||||
|
@@ -194,7 +194,7 @@ public class AppStorageSettings extends AppInfoWithHeader
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (v == mClearCacheButton) {
|
||||
if (mAppsControlDisallowedAdmin != null) {
|
||||
if (mAppsControlDisallowedAdmin != null && !mAppsControlDisallowedBySystem) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
|
||||
getActivity(), mAppsControlDisallowedAdmin);
|
||||
return;
|
||||
@@ -203,7 +203,7 @@ public class AppStorageSettings extends AppInfoWithHeader
|
||||
}
|
||||
mPm.deleteApplicationCacheFiles(mPackageName, mClearCacheObserver);
|
||||
} else if (v == mClearDataButton) {
|
||||
if (mAppsControlDisallowedAdmin != null) {
|
||||
if (mAppsControlDisallowedAdmin != null && !mAppsControlDisallowedBySystem) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
|
||||
getActivity(), mAppsControlDisallowedAdmin);
|
||||
} else if (mAppEntry.info.manageSpaceActivityName != null) {
|
||||
@@ -219,7 +219,7 @@ public class AppStorageSettings extends AppInfoWithHeader
|
||||
} else if (v == mChangeStorageButton && mDialogBuilder != null && !isMoveInProgress()) {
|
||||
mDialogBuilder.show();
|
||||
} else if (v == mClearUriButton) {
|
||||
if (mAppsControlDisallowedAdmin != null) {
|
||||
if (mAppsControlDisallowedAdmin != null && !mAppsControlDisallowedBySystem) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
|
||||
getActivity(), mAppsControlDisallowedAdmin);
|
||||
} else {
|
||||
@@ -323,6 +323,10 @@ public class AppStorageSettings extends AppInfoWithHeader
|
||||
mClearCacheButton.setOnClickListener(this);
|
||||
}
|
||||
}
|
||||
if (mAppsControlDisallowedBySystem) {
|
||||
mClearCacheButton.setEnabled(false);
|
||||
mClearDataButton.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -369,6 +373,10 @@ public class AppStorageSettings extends AppInfoWithHeader
|
||||
}
|
||||
mClearDataButton.setOnClickListener(this);
|
||||
}
|
||||
|
||||
if (mAppsControlDisallowedBySystem) {
|
||||
mClearDataButton.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void initMoveDialog() {
|
||||
@@ -488,6 +496,10 @@ public class AppStorageSettings extends AppInfoWithHeader
|
||||
mUri.addPreference(pref);
|
||||
}
|
||||
|
||||
if (mAppsControlDisallowedBySystem) {
|
||||
mClearUriButton.setEnabled(false);
|
||||
}
|
||||
|
||||
mClearUri.setOrder(order);
|
||||
mClearUriButton.setVisibility(View.VISIBLE);
|
||||
|
||||
|
@@ -242,6 +242,10 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
}
|
||||
}
|
||||
|
||||
if (mAppsControlDisallowedBySystem) {
|
||||
enabled = false;
|
||||
}
|
||||
|
||||
mUninstallButton.setEnabled(enabled);
|
||||
if (enabled) {
|
||||
// Register listener
|
||||
@@ -405,7 +409,7 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
menu.findItem(UNINSTALL_ALL_USERS_MENU).setVisible(showIt);
|
||||
mUpdatedSysApp = (mAppEntry.info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
|
||||
MenuItem uninstallUpdatesItem = menu.findItem(UNINSTALL_UPDATES);
|
||||
uninstallUpdatesItem.setVisible(mUpdatedSysApp);
|
||||
uninstallUpdatesItem.setVisible(mUpdatedSysApp && !mAppsControlDisallowedBySystem);
|
||||
if (uninstallUpdatesItem.isVisible()) {
|
||||
RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getActivity(),
|
||||
uninstallUpdatesItem, mAppsControlDisallowedAdmin);
|
||||
@@ -660,8 +664,12 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
}
|
||||
|
||||
private void updateForceStopButton(boolean enabled) {
|
||||
mForceStopButton.setEnabled(enabled);
|
||||
mForceStopButton.setOnClickListener(InstalledAppDetails.this);
|
||||
if (mAppsControlDisallowedBySystem) {
|
||||
mForceStopButton.setEnabled(false);
|
||||
} else {
|
||||
mForceStopButton.setEnabled(enabled);
|
||||
mForceStopButton.setOnClickListener(InstalledAppDetails.this);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkForceStop() {
|
||||
@@ -719,7 +727,9 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
if(v == mUninstallButton) {
|
||||
EnforcedAdmin admin = RestrictedLockUtils.checkIfUninstallBlocked(getActivity(),
|
||||
packageName, mUserId);
|
||||
if (admin != null) {
|
||||
boolean uninstallBlockedBySystem = mAppsControlDisallowedBySystem ||
|
||||
RestrictedLockUtils.hasBaseUserRestriction(getActivity(), packageName, mUserId);
|
||||
if (admin != null && !uninstallBlockedBySystem) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getActivity(), admin);
|
||||
} else if ((mAppEntry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
|
||||
if (mAppEntry.info.enabled && !isDisabledUntilUsed()) {
|
||||
@@ -739,7 +749,7 @@ public class InstalledAppDetails extends AppInfoBase
|
||||
uninstallPkg(packageName, false, false);
|
||||
}
|
||||
} else if (v == mForceStopButton) {
|
||||
if (mAppsControlDisallowedAdmin != null) {
|
||||
if (mAppsControlDisallowedAdmin != null && !mAppsControlDisallowedBySystem) {
|
||||
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(
|
||||
getActivity(), mAppsControlDisallowedAdmin);
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user