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:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user