Add disabled by policy empty views to more screens.
Bug: 27214401 Change-Id: I6cd4292a63610671070bf2134105e9e348c3ab32
This commit is contained in:
@@ -13,15 +13,7 @@
|
|||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<!-- Layout used for displaying admin support details in empty preference fragments. -->
|
<merge xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:id="@+id/admin_support_details"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:padding="@*android:dimen/preference_fragment_padding_side"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:visibility="gone">
|
|
||||||
<TextView android:id="@+id/admin_support_msg"
|
<TextView android:id="@+id/admin_support_msg"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -39,4 +31,4 @@
|
|||||||
android:textColor="?android:attr/colorAccent"
|
android:textColor="?android:attr/colorAccent"
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:background="?android:attr/selectableItemBackground" />
|
android:background="?android:attr/selectableItemBackground" />
|
||||||
</LinearLayout>
|
</merge>
|
@@ -46,23 +46,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
<TextView android:id="@+id/admin_support_msg"
|
<include layout="@layout/admin_support_details_content" />
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:textAppearance="@android:style/TextAppearance.Material.Subhead"
|
|
||||||
android:text="@string/default_admin_support_msg"
|
|
||||||
android:maxLength="200"
|
|
||||||
android:autoLink="email|phone"
|
|
||||||
android:textColor="?android:attr/textColorSecondary" />
|
|
||||||
<TextView android:id="@+id/admins_policies_list"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="@dimen/admin_details_dialog_link_padding_top"
|
|
||||||
android:text="@string/admin_support_more_info"
|
|
||||||
android:textAppearance="@android:style/TextAppearance.Material.Subhead"
|
|
||||||
android:textColor="?android:attr/colorAccent"
|
|
||||||
android:clickable="true"
|
|
||||||
android:background="?android:attr/selectableItemBackground" />
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
26
res/layout/admin_support_details_empty_view.xml
Normal file
26
res/layout/admin_support_details_empty_view.xml
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Copyright (C) 2016 The Android Open Source Project
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
-->
|
||||||
|
<!-- Layout used for displaying admin support details in empty preference fragments. -->
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/admin_support_details"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:padding="@*android:dimen/preference_fragment_padding_side"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone">
|
||||||
|
<include layout="@layout/admin_support_details_content" />
|
||||||
|
</LinearLayout>
|
@@ -73,7 +73,7 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:visibility="gone" />
|
android:visibility="gone" />
|
||||||
|
|
||||||
<include layout="@layout/admin_support_details_content" />
|
<include layout="@layout/admin_support_details_empty_view" />
|
||||||
|
|
||||||
<RelativeLayout android:id="@+id/button_bar"
|
<RelativeLayout android:id="@+id/button_bar"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@@ -76,7 +76,6 @@ import android.view.accessibility.AccessibilityManager;
|
|||||||
import android.webkit.IWebViewUpdateService;
|
import android.webkit.IWebViewUpdateService;
|
||||||
import android.webkit.WebViewProviderInfo;
|
import android.webkit.WebViewProviderInfo;
|
||||||
import android.widget.Switch;
|
import android.widget.Switch;
|
||||||
import android.widget.TextView;
|
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.android.internal.app.LocalePicker;
|
import com.android.internal.app.LocalePicker;
|
||||||
@@ -95,7 +94,7 @@ import java.util.List;
|
|||||||
/*
|
/*
|
||||||
* Displays preferences for application developers.
|
* Displays preferences for application developers.
|
||||||
*/
|
*/
|
||||||
public class DevelopmentSettings extends SettingsPreferenceFragment
|
public class DevelopmentSettings extends RestrictedSettingsFragment
|
||||||
implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
|
implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
|
||||||
OnPreferenceChangeListener, SwitchBar.OnSwitchChangeListener, Indexable {
|
OnPreferenceChangeListener, SwitchBar.OnSwitchChangeListener, Indexable {
|
||||||
private static final String TAG = "DevelopmentSettings";
|
private static final String TAG = "DevelopmentSettings";
|
||||||
@@ -317,6 +316,10 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
|||||||
private Dialog mAdbKeysDialog;
|
private Dialog mAdbKeysDialog;
|
||||||
private boolean mUnavailable;
|
private boolean mUnavailable;
|
||||||
|
|
||||||
|
public DevelopmentSettings() {
|
||||||
|
super(UserManager.DISALLOW_DEBUGGING_FEATURES);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getMetricsCategory() {
|
protected int getMetricsCategory() {
|
||||||
return MetricsEvent.DEVELOPMENT;
|
return MetricsEvent.DEVELOPMENT;
|
||||||
@@ -337,8 +340,8 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
|
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
|
||||||
|
|
||||||
if (!mUm.isAdminUser()
|
setIfOnlyAvailableForAdmins(true);
|
||||||
|| mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)
|
if (isUiRestricted()
|
||||||
|| Settings.Global.getInt(getActivity().getContentResolver(),
|
|| Settings.Global.getInt(getActivity().getContentResolver(),
|
||||||
Settings.Global.DEVICE_PROVISIONED, 0) == 0) {
|
Settings.Global.DEVICE_PROVISIONED, 0) == 0) {
|
||||||
// Block access to developer options if the user is not the owner, if user policy
|
// Block access to developer options if the user is not the owner, if user policy
|
||||||
@@ -582,11 +585,10 @@ public class DevelopmentSettings extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
if (mUnavailable) {
|
if (mUnavailable) {
|
||||||
// Show error message
|
// Show error message
|
||||||
TextView emptyView = (TextView) getView().findViewById(android.R.id.empty);
|
if (!isUiRestrictedByOnlyAdmin()) {
|
||||||
setEmptyView(emptyView);
|
getEmptyTextView().setText(R.string.development_settings_not_available);
|
||||||
if (emptyView != null) {
|
|
||||||
emptyView.setText(R.string.development_settings_not_available);
|
|
||||||
}
|
}
|
||||||
|
getPreferenceScreen().removeAll();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -41,9 +41,12 @@ import android.widget.LinearLayout;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Confirm and execute a reset of the device to a clean "just out of the box"
|
* Confirm and execute a reset of the device to a clean "just out of the box"
|
||||||
* state. Multiple confirmations are required: first, a general "are you sure
|
* state. Multiple confirmations are required: first, a general "are you sure
|
||||||
@@ -280,10 +283,17 @@ public class MasterClear extends InstrumentedFragment {
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
|
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
|
||||||
|
getActivity(), UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId());
|
||||||
final UserManager um = UserManager.get(getActivity());
|
final UserManager um = UserManager.get(getActivity());
|
||||||
if (!um.isAdminUser()
|
if (!um.isAdminUser() || RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
|
||||||
|| um.hasUserRestriction(UserManager.DISALLOW_FACTORY_RESET)) {
|
UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId())) {
|
||||||
return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
|
return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
|
||||||
|
} else if (admin != null) {
|
||||||
|
View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
|
||||||
|
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false);
|
||||||
|
view.setVisibility(View.VISIBLE);
|
||||||
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
mContentView = inflater.inflate(R.layout.master_clear, null);
|
mContentView = inflater.inflate(R.layout.master_clear, null);
|
||||||
|
@@ -22,6 +22,7 @@ import android.content.Intent;
|
|||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.service.persistentdata.PersistentDataBlockManager;
|
import android.service.persistentdata.PersistentDataBlockManager;
|
||||||
@@ -32,6 +33,9 @@ import android.widget.Button;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
|
||||||
|
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Confirm and execute a reset of the device to a clean "just out of the box"
|
* Confirm and execute a reset of the device to a clean "just out of the box"
|
||||||
@@ -136,9 +140,16 @@ public class MasterClearConfirm extends InstrumentedFragment {
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
if (UserManager.get(getActivity()).hasUserRestriction(
|
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
|
||||||
UserManager.DISALLOW_FACTORY_RESET)) {
|
getActivity(), UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId());
|
||||||
|
if (RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
|
||||||
|
UserManager.DISALLOW_FACTORY_RESET, UserHandle.myUserId())) {
|
||||||
return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
|
return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
|
||||||
|
} else if (admin != null) {
|
||||||
|
View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
|
||||||
|
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false);
|
||||||
|
view.setVisibility(View.VISIBLE);
|
||||||
|
return view;
|
||||||
}
|
}
|
||||||
mContentView = inflater.inflate(R.layout.master_clear_confirm, null);
|
mContentView = inflater.inflate(R.layout.master_clear_confirm, null);
|
||||||
establishFinalConfirmationState();
|
establishFinalConfirmationState();
|
||||||
|
@@ -20,6 +20,7 @@ import android.app.Activity;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
@@ -33,10 +34,13 @@ import android.widget.Spinner;
|
|||||||
|
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.telephony.PhoneConstants;
|
import com.android.internal.telephony.PhoneConstants;
|
||||||
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Confirm and execute a reset of the device's network settings to a clean "just out of the box"
|
* Confirm and execute a reset of the device's network settings to a clean "just out of the box"
|
||||||
* state. Multiple confirmations are required: first, a general "are you sure you want to do this?"
|
* state. Multiple confirmations are required: first, a general "are you sure you want to do this?"
|
||||||
@@ -180,9 +184,16 @@ public class ResetNetwork extends InstrumentedFragment {
|
|||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
final UserManager um = UserManager.get(getActivity());
|
final UserManager um = UserManager.get(getActivity());
|
||||||
if (!um.isAdminUser()
|
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
|
||||||
|| um.hasUserRestriction(UserManager.DISALLOW_NETWORK_RESET)) {
|
getActivity(), UserManager.DISALLOW_NETWORK_RESET, UserHandle.myUserId());
|
||||||
|
if (!um.isAdminUser() || RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
|
||||||
|
UserManager.DISALLOW_NETWORK_RESET, UserHandle.myUserId())) {
|
||||||
return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
|
return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
|
||||||
|
} else if (admin != null) {
|
||||||
|
View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
|
||||||
|
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false);
|
||||||
|
view.setVisibility(View.VISIBLE);
|
||||||
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
mContentView = inflater.inflate(R.layout.reset_network, null);
|
mContentView = inflater.inflate(R.layout.reset_network, null);
|
||||||
|
@@ -22,6 +22,7 @@ import android.net.ConnectivityManager;
|
|||||||
import android.net.NetworkPolicyManager;
|
import android.net.NetworkPolicyManager;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
@@ -34,6 +35,9 @@ import android.widget.Toast;
|
|||||||
import com.android.ims.ImsManager;
|
import com.android.ims.ImsManager;
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.telephony.PhoneConstants;
|
import com.android.internal.telephony.PhoneConstants;
|
||||||
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
|
|
||||||
|
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Confirm and execute a reset of the network settings to a clean "just out of the box"
|
* Confirm and execute a reset of the network settings to a clean "just out of the box"
|
||||||
@@ -113,9 +117,16 @@ public class ResetNetworkConfirm extends InstrumentedFragment {
|
|||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
if (UserManager.get(getActivity()).hasUserRestriction(
|
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
|
||||||
UserManager.DISALLOW_NETWORK_RESET)) {
|
getActivity(), UserManager.DISALLOW_NETWORK_RESET, UserHandle.myUserId());
|
||||||
|
if (RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
|
||||||
|
UserManager.DISALLOW_NETWORK_RESET, UserHandle.myUserId())) {
|
||||||
return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
|
return inflater.inflate(R.layout.network_reset_disallowed_screen, null);
|
||||||
|
} else if (admin != null) {
|
||||||
|
View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
|
||||||
|
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false);
|
||||||
|
view.setVisibility(View.VISIBLE);
|
||||||
|
return view;
|
||||||
}
|
}
|
||||||
mContentView = inflater.inflate(R.layout.reset_network_confirm, null);
|
mContentView = inflater.inflate(R.layout.reset_network_confirm, null);
|
||||||
establishFinalConfirmationState();
|
establishFinalConfirmationState();
|
||||||
|
@@ -27,6 +27,7 @@ import android.os.Bundle;
|
|||||||
import android.os.PersistableBundle;
|
import android.os.PersistableBundle;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
|
import android.view.Gravity;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@@ -69,6 +70,9 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
|||||||
private EnforcedAdmin mEnforcedAdmin;
|
private EnforcedAdmin mEnforcedAdmin;
|
||||||
private TextView mEmptyTextView;
|
private TextView mEmptyTextView;
|
||||||
|
|
||||||
|
private boolean mOnlyAvailableForAdmins = false;
|
||||||
|
private boolean mIsAdminUser;
|
||||||
|
|
||||||
// Receiver to clear pin status when the screen is turned off.
|
// Receiver to clear pin status when the screen is turned off.
|
||||||
private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
|
private BroadcastReceiver mScreenOffReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
@@ -96,6 +100,7 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
|||||||
|
|
||||||
mRestrictionsManager = (RestrictionsManager) getSystemService(Context.RESTRICTIONS_SERVICE);
|
mRestrictionsManager = (RestrictionsManager) getSystemService(Context.RESTRICTIONS_SERVICE);
|
||||||
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
|
||||||
|
mIsAdminUser = mUserManager.isAdminUser();
|
||||||
|
|
||||||
if (icicle != null) {
|
if (icicle != null) {
|
||||||
mChallengeSucceeded = icicle.getBoolean(KEY_CHALLENGE_SUCCEEDED, false);
|
mChallengeSucceeded = icicle.getBoolean(KEY_CHALLENGE_SUCCEEDED, false);
|
||||||
@@ -198,26 +203,24 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
|||||||
return restricted && mRestrictionsManager.hasRestrictionsProvider();
|
return restricted && mRestrictionsManager.hasRestrictionsProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected View initAdminSupportDetailsView() {
|
private View initAdminSupportDetailsView() {
|
||||||
return null;
|
return getActivity().findViewById(R.id.admin_support_details);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected TextView initEmptyTextView() {
|
protected TextView initEmptyTextView() {
|
||||||
return null;
|
TextView emptyView = (TextView) getActivity().findViewById(android.R.id.empty);
|
||||||
|
emptyView.setGravity(Gravity.START | Gravity.CENTER_VERTICAL);
|
||||||
|
return emptyView;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAdminSupportDetailsView() {
|
private void updateAdminSupportDetailsView() {
|
||||||
mEnforcedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(getActivity(),
|
final EnforcedAdmin admin = getRestrictionEnforcedAdmin();
|
||||||
mRestrictionKey, UserHandle.myUserId());
|
if (admin != null) {
|
||||||
if (mEnforcedAdmin != null) {
|
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
DevicePolicyManager dpm = (DevicePolicyManager) activity.getSystemService(
|
DevicePolicyManager dpm = (DevicePolicyManager) activity.getSystemService(
|
||||||
Context.DEVICE_POLICY_SERVICE);
|
Context.DEVICE_POLICY_SERVICE);
|
||||||
if (mEnforcedAdmin.userId == UserHandle.USER_NULL) {
|
|
||||||
mEnforcedAdmin.userId = UserHandle.myUserId();
|
|
||||||
}
|
|
||||||
CharSequence supportMessage = dpm.getShortSupportMessageForUser(
|
CharSequence supportMessage = dpm.getShortSupportMessageForUser(
|
||||||
mEnforcedAdmin.component, mEnforcedAdmin.userId);
|
admin.component, admin.userId);
|
||||||
if (supportMessage != null) {
|
if (supportMessage != null) {
|
||||||
TextView textView = (TextView) activity.findViewById(R.id.admin_support_msg);
|
TextView textView = (TextView) activity.findViewById(R.id.admin_support_msg);
|
||||||
textView.setText(supportMessage);
|
textView.setText(supportMessage);
|
||||||
@@ -226,6 +229,15 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EnforcedAdmin getRestrictionEnforcedAdmin() {
|
||||||
|
mEnforcedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(getActivity(),
|
||||||
|
mRestrictionKey, UserHandle.myUserId());
|
||||||
|
if (mEnforcedAdmin != null && mEnforcedAdmin.userId == UserHandle.USER_NULL) {
|
||||||
|
mEnforcedAdmin.userId = UserHandle.myUserId();
|
||||||
|
}
|
||||||
|
return mEnforcedAdmin;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
@@ -252,7 +264,9 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
|||||||
protected void onDataSetChanged() {
|
protected void onDataSetChanged() {
|
||||||
highlightPreferenceIfNeeded();
|
highlightPreferenceIfNeeded();
|
||||||
if (mAdminSupportDetails != null && isUiRestrictedByOnlyAdmin()) {
|
if (mAdminSupportDetails != null && isUiRestrictedByOnlyAdmin()) {
|
||||||
updateAdminSupportDetailsView();
|
final EnforcedAdmin admin = getRestrictionEnforcedAdmin();
|
||||||
|
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(),
|
||||||
|
mAdminSupportDetails, admin, false);
|
||||||
setEmptyView(mAdminSupportDetails);
|
setEmptyView(mAdminSupportDetails);
|
||||||
} else if (mEmptyTextView != null) {
|
} else if (mEmptyTextView != null) {
|
||||||
setEmptyView(mEmptyTextView);
|
setEmptyView(mEmptyTextView);
|
||||||
@@ -260,15 +274,20 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
|||||||
super.onDataSetChanged();
|
super.onDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setIfOnlyAvailableForAdmins(boolean onlyForAdmins) {
|
||||||
|
mOnlyAvailableForAdmins = onlyForAdmins;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns whether restricted or actionable UI elements should be removed or disabled.
|
* Returns whether restricted or actionable UI elements should be removed or disabled.
|
||||||
*/
|
*/
|
||||||
protected boolean isUiRestricted() {
|
protected boolean isUiRestricted() {
|
||||||
return isRestrictedAndNotProviderProtected() || !hasChallengeSucceeded();
|
return isRestrictedAndNotProviderProtected() || !hasChallengeSucceeded()
|
||||||
|
|| (!mIsAdminUser && mOnlyAvailableForAdmins);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isUiRestrictedByOnlyAdmin() {
|
protected boolean isUiRestrictedByOnlyAdmin() {
|
||||||
return isUiRestricted() && !mUserManager.hasBaseUserRestriction(mRestrictionKey,
|
return isUiRestricted() && !mUserManager.hasBaseUserRestriction(mRestrictionKey,
|
||||||
UserHandle.of(UserHandle.myUserId()));
|
UserHandle.of(UserHandle.myUserId())) && (mIsAdminUser || !mOnlyAvailableForAdmins);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,12 +23,14 @@ import android.app.AppGlobals;
|
|||||||
import android.app.IActivityManager;
|
import android.app.IActivityManager;
|
||||||
import android.app.admin.DevicePolicyManager;
|
import android.app.admin.DevicePolicyManager;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Process;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -58,7 +60,7 @@ public class ShowAdminSupportDetailsDialog extends Activity
|
|||||||
|
|
||||||
mDialogView = LayoutInflater.from(this).inflate(
|
mDialogView = LayoutInflater.from(this).inflate(
|
||||||
R.layout.admin_support_details_dialog, null);
|
R.layout.admin_support_details_dialog, null);
|
||||||
setAdminSupportDetails(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId);
|
setAdminSupportDetails(this, mDialogView, mEnforcedAdmin, true);
|
||||||
|
|
||||||
new AlertDialog.Builder(this)
|
new AlertDialog.Builder(this)
|
||||||
.setView(mDialogView)
|
.setView(mDialogView)
|
||||||
@@ -73,7 +75,7 @@ public class ShowAdminSupportDetailsDialog extends Activity
|
|||||||
EnforcedAdmin admin = getAdminDetailsFromIntent(intent);
|
EnforcedAdmin admin = getAdminDetailsFromIntent(intent);
|
||||||
if (!mEnforcedAdmin.equals(admin)) {
|
if (!mEnforcedAdmin.equals(admin)) {
|
||||||
mEnforcedAdmin = admin;
|
mEnforcedAdmin = admin;
|
||||||
setAdminSupportDetails(mDialogView, mEnforcedAdmin.component, mEnforcedAdmin.userId);
|
setAdminSupportDetails(this, mDialogView, mEnforcedAdmin, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,14 +104,8 @@ public class ShowAdminSupportDetailsDialog extends Activity
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setAdminSupportDetails(View root, final ComponentName admin, final int userId) {
|
private void initializeDialogViews(View root, final ComponentName admin, int userId) {
|
||||||
if (admin != null) {
|
if (admin != null) {
|
||||||
CharSequence supportMessage = mDpm.getShortSupportMessageForUser(admin, userId);
|
|
||||||
if (supportMessage != null) {
|
|
||||||
TextView textView = (TextView) root.findViewById(R.id.admin_support_msg);
|
|
||||||
textView.setText(supportMessage);
|
|
||||||
}
|
|
||||||
|
|
||||||
ActivityInfo ai = null;
|
ActivityInfo ai = null;
|
||||||
try {
|
try {
|
||||||
ai = AppGlobals.getPackageManager().getReceiverInfo(admin, 0 /* flags */, userId);
|
ai = AppGlobals.getPackageManager().getReceiverInfo(admin, 0 /* flags */, userId);
|
||||||
@@ -125,25 +121,52 @@ public class ShowAdminSupportDetailsDialog extends Activity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setAdminSupportDetails(this, root, new EnforcedAdmin(admin, userId), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setAdminSupportDetails(final Activity activity, View root,
|
||||||
|
final EnforcedAdmin enforcedAdmin, final boolean finishActivity) {
|
||||||
|
if (enforcedAdmin == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (enforcedAdmin.component != null) {
|
||||||
|
DevicePolicyManager dpm = (DevicePolicyManager) activity.getSystemService(
|
||||||
|
Context.DEVICE_POLICY_SERVICE);
|
||||||
|
if (enforcedAdmin.userId == UserHandle.USER_NULL) {
|
||||||
|
enforcedAdmin.userId = UserHandle.myUserId();
|
||||||
|
}
|
||||||
|
CharSequence supportMessage = null;
|
||||||
|
if (UserHandle.isSameApp(Process.myUid(), Process.SYSTEM_UID)) {
|
||||||
|
supportMessage = dpm.getShortSupportMessageForUser(
|
||||||
|
enforcedAdmin.component, enforcedAdmin.userId);
|
||||||
|
}
|
||||||
|
if (supportMessage != null) {
|
||||||
|
TextView textView = (TextView) root.findViewById(R.id.admin_support_msg);
|
||||||
|
textView.setText(supportMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
root.findViewById(R.id.admins_policies_list).setOnClickListener(
|
root.findViewById(R.id.admins_policies_list).setOnClickListener(
|
||||||
new View.OnClickListener() {
|
new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
if (admin != null) {
|
if (enforcedAdmin.component != null) {
|
||||||
intent.setClass(ShowAdminSupportDetailsDialog.this,
|
intent.setClass(activity, DeviceAdminAdd.class);
|
||||||
DeviceAdminAdd.class);
|
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
|
||||||
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, admin);
|
enforcedAdmin.component);
|
||||||
// DeviceAdminAdd class may need to run as managed profile.
|
// DeviceAdminAdd class may need to run as managed profile.
|
||||||
startActivityAsUser(intent, new UserHandle(userId));
|
activity.startActivityAsUser(intent,
|
||||||
|
new UserHandle(enforcedAdmin.userId));
|
||||||
} else {
|
} else {
|
||||||
intent.setClass(ShowAdminSupportDetailsDialog.this,
|
intent.setClass(activity, Settings.DeviceAdminSettingsActivity.class);
|
||||||
Settings.DeviceAdminSettingsActivity.class);
|
|
||||||
// Activity merges both managed profile and parent users
|
// Activity merges both managed profile and parent users
|
||||||
// admins so show as same user as this activity.
|
// admins so show as same user as this activity.
|
||||||
startActivity(intent);
|
activity.startActivity(intent);
|
||||||
|
}
|
||||||
|
if (finishActivity) {
|
||||||
|
activity.finish();
|
||||||
}
|
}
|
||||||
finish();
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@@ -42,7 +42,6 @@ import android.os.UserManager;
|
|||||||
import android.support.v14.preference.SwitchPreference;
|
import android.support.v14.preference.SwitchPreference;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
import android.support.v7.preference.PreferenceScreen;
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.settings.wifi.WifiApDialog;
|
import com.android.settings.wifi.WifiApDialog;
|
||||||
@@ -56,7 +55,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||||||
/*
|
/*
|
||||||
* Displays preferences for Tethering.
|
* Displays preferences for Tethering.
|
||||||
*/
|
*/
|
||||||
public class TetherSettings extends SettingsPreferenceFragment
|
public class TetherSettings extends RestrictedSettingsFragment
|
||||||
implements DialogInterface.OnClickListener, Preference.OnPreferenceChangeListener {
|
implements DialogInterface.OnClickListener, Preference.OnPreferenceChangeListener {
|
||||||
|
|
||||||
private static final String USB_TETHER_SETTINGS = "usb_tether_settings";
|
private static final String USB_TETHER_SETTINGS = "usb_tether_settings";
|
||||||
@@ -94,7 +93,6 @@ public class TetherSettings extends SettingsPreferenceFragment
|
|||||||
private WifiApDialog mDialog;
|
private WifiApDialog mDialog;
|
||||||
private WifiManager mWifiManager;
|
private WifiManager mWifiManager;
|
||||||
private WifiConfiguration mWifiConfig = null;
|
private WifiConfiguration mWifiConfig = null;
|
||||||
private UserManager mUm;
|
|
||||||
private ConnectivityManager mCm;
|
private ConnectivityManager mCm;
|
||||||
|
|
||||||
private boolean mUsbConnected;
|
private boolean mUsbConnected;
|
||||||
@@ -113,16 +111,18 @@ public class TetherSettings extends SettingsPreferenceFragment
|
|||||||
return MetricsEvent.TETHER;
|
return MetricsEvent.TETHER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TetherSettings() {
|
||||||
|
super(UserManager.DISALLOW_CONFIG_TETHERING);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.tether_prefs);
|
addPreferencesFromResource(R.xml.tether_prefs);
|
||||||
|
|
||||||
mUm = (UserManager) getSystemService(Context.USER_SERVICE);
|
setIfOnlyAvailableForAdmins(true);
|
||||||
|
if (isUiRestricted()) {
|
||||||
if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_TETHERING)
|
|
||||||
|| !mUm.isAdminUser()) {
|
|
||||||
mUnavailable = true;
|
mUnavailable = true;
|
||||||
setPreferenceScreen(new PreferenceScreen(getPrefContext(), null));
|
setPreferenceScreen(new PreferenceScreen(getPrefContext(), null));
|
||||||
return;
|
return;
|
||||||
@@ -259,11 +259,10 @@ public class TetherSettings extends SettingsPreferenceFragment
|
|||||||
super.onStart();
|
super.onStart();
|
||||||
|
|
||||||
if (mUnavailable) {
|
if (mUnavailable) {
|
||||||
TextView emptyView = (TextView) getView().findViewById(android.R.id.empty);
|
if (!isUiRestrictedByOnlyAdmin()) {
|
||||||
setEmptyView(emptyView);
|
getEmptyTextView().setText(R.string.tethering_settings_not_available);
|
||||||
if (emptyView != null) {
|
|
||||||
emptyView.setText(R.string.tethering_settings_not_available);
|
|
||||||
}
|
}
|
||||||
|
getPreferenceScreen().removeAll();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -34,7 +34,6 @@ import android.support.v7.preference.PreferenceScreen;
|
|||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.style.TextAppearanceSpan;
|
import android.text.style.TextAppearanceSpan;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@@ -379,18 +378,6 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected TextView initEmptyTextView() {
|
|
||||||
TextView textView = (TextView) getView().findViewById(android.R.id.empty);
|
|
||||||
textView.setGravity(Gravity.START | Gravity.CENTER_VERTICAL);
|
|
||||||
return textView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected View initAdminSupportDetailsView() {
|
|
||||||
return getActivity().findViewById(R.id.admin_support_details);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setOffMessage() {
|
private void setOffMessage() {
|
||||||
final TextView emptyView = getEmptyTextView();
|
final TextView emptyView = getEmptyTextView();
|
||||||
if (emptyView == null) {
|
if (emptyView == null) {
|
||||||
|
@@ -28,9 +28,7 @@ import android.provider.Settings;
|
|||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.service.notification.ZenModeConfig;
|
import android.service.notification.ZenModeConfig;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
|
||||||
import com.android.settings.RestrictedSettingsFragment;
|
import com.android.settings.RestrictedSettingsFragment;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -78,11 +76,6 @@ abstract public class ZenModeSettingsBase extends RestrictedSettingsFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected View initAdminSupportDetailsView() {
|
|
||||||
return getActivity().findViewById(R.id.admin_support_details);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
|
@@ -49,7 +49,6 @@ import android.view.Menu;
|
|||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
import com.android.internal.net.LegacyVpnInfo;
|
import com.android.internal.net.LegacyVpnInfo;
|
||||||
@@ -57,7 +56,8 @@ import com.android.internal.net.VpnConfig;
|
|||||||
import com.android.internal.net.VpnProfile;
|
import com.android.internal.net.VpnProfile;
|
||||||
import com.android.internal.util.ArrayUtils;
|
import com.android.internal.util.ArrayUtils;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.RestrictedSettingsFragment;
|
||||||
|
import com.android.settingslib.RestrictedLockUtils;
|
||||||
import com.google.android.collect.Lists;
|
import com.google.android.collect.Lists;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -72,7 +72,7 @@ import static android.app.AppOpsManager.OP_ACTIVATE_VPN;
|
|||||||
* Settings screen listing VPNs. Configured VPNs and networks managed by apps
|
* Settings screen listing VPNs. Configured VPNs and networks managed by apps
|
||||||
* are shown in the same list.
|
* are shown in the same list.
|
||||||
*/
|
*/
|
||||||
public class VpnSettings extends SettingsPreferenceFragment implements
|
public class VpnSettings extends RestrictedSettingsFragment implements
|
||||||
Handler.Callback, Preference.OnPreferenceClickListener {
|
Handler.Callback, Preference.OnPreferenceClickListener {
|
||||||
private static final String LOG_TAG = "VpnSettings";
|
private static final String LOG_TAG = "VpnSettings";
|
||||||
|
|
||||||
@@ -101,6 +101,10 @@ public class VpnSettings extends SettingsPreferenceFragment implements
|
|||||||
|
|
||||||
private boolean mUnavailable;
|
private boolean mUnavailable;
|
||||||
|
|
||||||
|
public VpnSettings() {
|
||||||
|
super(UserManager.DISALLOW_CONFIG_VPN);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getMetricsCategory() {
|
protected int getMetricsCategory() {
|
||||||
return MetricsEvent.VPN;
|
return MetricsEvent.VPN;
|
||||||
@@ -111,7 +115,7 @@ public class VpnSettings extends SettingsPreferenceFragment implements
|
|||||||
super.onCreate(savedState);
|
super.onCreate(savedState);
|
||||||
|
|
||||||
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
|
mUserManager = (UserManager) getSystemService(Context.USER_SERVICE);
|
||||||
if (mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_VPN)) {
|
if (isUiRestricted()) {
|
||||||
mUnavailable = true;
|
mUnavailable = true;
|
||||||
setPreferenceScreen(new PreferenceScreen(getPrefContext(), null));
|
setPreferenceScreen(new PreferenceScreen(getPrefContext(), null));
|
||||||
setHasOptionsMenu(false);
|
setHasOptionsMenu(false);
|
||||||
@@ -136,8 +140,13 @@ public class VpnSettings extends SettingsPreferenceFragment implements
|
|||||||
|
|
||||||
// Disable all actions if VPN configuration has been disallowed
|
// Disable all actions if VPN configuration has been disallowed
|
||||||
for (int i = 0; i < menu.size(); i++) {
|
for (int i = 0; i < menu.size(); i++) {
|
||||||
|
if (isUiRestrictedByOnlyAdmin()) {
|
||||||
|
RestrictedLockUtils.setMenuItemAsDisabledByAdmin(getPrefContext(),
|
||||||
|
menu.getItem(i), getRestrictionEnforcedAdmin());
|
||||||
|
} else {
|
||||||
menu.getItem(i).setEnabled(!mUnavailable);
|
menu.getItem(i).setEnabled(!mUnavailable);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Hide lockdown VPN on devices that require IMS authentication
|
// Hide lockdown VPN on devices that require IMS authentication
|
||||||
if (SystemProperties.getBoolean("persist.radio.imsregrequired", false)) {
|
if (SystemProperties.getBoolean("persist.radio.imsregrequired", false)) {
|
||||||
@@ -172,11 +181,10 @@ public class VpnSettings extends SettingsPreferenceFragment implements
|
|||||||
|
|
||||||
if (mUnavailable) {
|
if (mUnavailable) {
|
||||||
// Show a message to explain that VPN settings have been disabled
|
// Show a message to explain that VPN settings have been disabled
|
||||||
TextView emptyView = (TextView) getView().findViewById(android.R.id.empty);
|
if (!isUiRestrictedByOnlyAdmin()) {
|
||||||
setEmptyView(emptyView);
|
getEmptyTextView().setText(R.string.vpn_settings_not_available);
|
||||||
if (emptyView != null) {
|
|
||||||
emptyView.setText(R.string.vpn_settings_not_available);
|
|
||||||
}
|
}
|
||||||
|
getPreferenceScreen().removeAll();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -54,7 +54,6 @@ import android.util.Log;
|
|||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
import android.view.ContextMenu;
|
import android.view.ContextMenu;
|
||||||
import android.view.ContextMenu.ContextMenuInfo;
|
import android.view.ContextMenu.ContextMenuInfo;
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
@@ -721,18 +720,6 @@ public class WifiSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected TextView initEmptyTextView() {
|
|
||||||
TextView emptyView = (TextView) getActivity().findViewById(android.R.id.empty);
|
|
||||||
emptyView.setGravity(Gravity.START | Gravity.CENTER_VERTICAL);
|
|
||||||
return emptyView;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected View initAdminSupportDetailsView() {
|
|
||||||
return getActivity().findViewById(R.id.admin_support_details);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setOffMessage() {
|
private void setOffMessage() {
|
||||||
if (isUiRestricted()) {
|
if (isUiRestricted()) {
|
||||||
if (!isUiRestrictedByOnlyAdmin()) {
|
if (!isUiRestrictedByOnlyAdmin()) {
|
||||||
|
Reference in New Issue
Block a user