Merge "Restrict Settings always-on to NYC+" into nyc-dev am: 8f2c17e12c am: cff703e68a

am: dbf70ca4ab

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

Change-Id: I692e8fc589d8ff2d474d9a22fd27500f6f207cd1
This commit is contained in:
Robin Lee
2016-06-06 21:14:59 +00:00
committed by android-build-merger

View File

@@ -25,6 +25,7 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.UserHandle; import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
@@ -158,7 +159,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
} }
private boolean onForgetVpnClick() { private boolean onForgetVpnClick() {
updateRestrictions(); updateRestrictedViews();
if (!mPreferenceForget.isEnabled()) { if (!mPreferenceForget.isEnabled()) {
return false; return false;
} }
@@ -178,7 +179,7 @@ public class AppManagementFragment extends SettingsPreferenceFragment
} }
private boolean setAlwaysOnVpnByUI(boolean isEnabled) { private boolean setAlwaysOnVpnByUI(boolean isEnabled) {
updateRestrictions(); updateRestrictedViews();
if (!mPreferenceAlwaysOn.isEnabled()) { if (!mPreferenceAlwaysOn.isEnabled()) {
return false; return false;
} }
@@ -194,19 +195,38 @@ public class AppManagementFragment extends SettingsPreferenceFragment
return success; 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() { private void updateUI() {
if (isAdded()) { if (isAdded()) {
mPreferenceAlwaysOn.setChecked(isVpnAlwaysOn()); mPreferenceAlwaysOn.setChecked(isVpnAlwaysOn());
updateRestrictions(); updateRestrictedViews();
} }
} }
private void updateRestrictions() { private void updateRestrictedViews() {
if (isAdded()) { if (isAdded()) {
mPreferenceAlwaysOn.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN, mPreferenceAlwaysOn.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN,
mUserId); mUserId);
mPreferenceForget.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN, mPreferenceForget.checkRestrictionAndSetDisabled(UserManager.DISALLOW_CONFIG_VPN,
mUserId); mUserId);
if (!checkTargetVersion()) {
mPreferenceAlwaysOn.setEnabled(false);
}
} }
} }