in AppRestrictionEnforcer/Application/src/main/java/com/example/android/apprestrictionenforcer/StatusFragment.java [86:123]
private void updateUi(Activity activity) {
PackageManager packageManager = activity.getPackageManager();
try {
int packageFlags;
if (Build.VERSION.SDK_INT < 24) {
//noinspection deprecation
packageFlags = PackageManager.GET_UNINSTALLED_PACKAGES;
} else {
packageFlags = PackageManager.MATCH_UNINSTALLED_PACKAGES;
}
ApplicationInfo info = packageManager.getApplicationInfo(
Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA,
packageFlags);
DevicePolicyManager devicePolicyManager =
(DevicePolicyManager) activity.getSystemService(Activity.DEVICE_POLICY_SERVICE);
if ((info.flags & ApplicationInfo.FLAG_INSTALLED) != 0) {
if (!devicePolicyManager.isApplicationHidden(
EnforcerDeviceAdminReceiver.getComponentName(activity),
Constants.PACKAGE_NAME_APP_RESTRICTION_SCHEMA)) {
// The app is ready to enforce restrictions
// This is unlikely to happen in this sample as unhideApp() handles it.
mListener.onStatusUpdated();
} else {
// The app is installed but hidden in this profile
mTextStatus.setText(R.string.status_not_activated);
mButtonUnhide.setVisibility(View.VISIBLE);
}
} else {
// Need to reinstall the sample app
mTextStatus.setText(R.string.status_need_reinstall);
mButtonUnhide.setVisibility(View.GONE);
}
} catch (PackageManager.NameNotFoundException e) {
// Need to reinstall the sample app
mTextStatus.setText(R.string.status_need_reinstall);
mButtonUnhide.setVisibility(View.GONE);
}
}