private void updateUi()

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);
        }
    }