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

am: 8f2c17e12c

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

Change-Id: Ic79b72b61a763ab7746c1fa07e705e5e2e410bbf
This commit is contained in:
Robin Lee
2016-06-06 21:09:30 +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.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);
}
}
}