Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e8fce6d4 authored by Robin Lee's avatar Robin Lee Committed by android-build-merger
Browse files

Merge "Restrict Settings always-on to NYC+" into nyc-dev

am: 8f2c17e1

* commit '8f2c17e1':
  Restrict Settings always-on to NYC+

Change-Id: Ic79b72b61a763ab7746c1fa07e705e5e2e410bbf
parents 6c523986 8f2c17e1
Loading
Loading
Loading
Loading
+24 −4
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.os.Build;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
@@ -158,7 +159,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
    }

    private boolean onForgetVpnClick() {
        updateRestrictions();
        updateRestrictedViews();
        if (!mPreferenceForget.isEnabled()) {
            return false;
        }
@@ -178,7 +179,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
    }

    private boolean setAlwaysOnVpnByUI(boolean isEnabled) {
        updateRestrictions();
        updateRestrictedViews();
        if (!mPreferenceAlwaysOn.isEnabled()) {
            return false;
        }
@@ -194,19 +195,38 @@ public class AppManagementFragment extends SettingsPreferenceFragment
        return success;
    }

    private boolean checkTargetVersion() {
        if (mPackageInfo == null || mPackageInfo.applicationInfo == null) {
            return true;
        }
        final int targetSdk = mPackageInfo.applicationInfo.targetSdkVersion;
        if (targetSdk >= Build.VERSION_CODES.N) {
            return true;
        }
        if (Log.isLoggable(TAG, Log.DEBUG)) {
            Log.d(TAG, "Package " + mPackageName + " targets SDK version " + targetSdk + "; must"
                    + " target at least " + Build.VERSION_CODES.N + " to use always-on.");
        }
        return false;
    }

    private void updateUI() {
        if (isAdded()) {
            mPreferenceAlwaysOn.setChecked(isVpnAlwaysOn());
            updateRestrictions();
            updateRestrictedViews();
        }
    }

    private void updateRestrictions() {
    private void updateRestrictedViews() {
        if (isAdded()) {
            mPreferenceAlwaysOn.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN,
                    mUserId);
            mPreferenceForget.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN,
                    mUserId);

            if (!checkTargetVersion()) {
                mPreferenceAlwaysOn.setEnabled(false);
            }
        }
    }