Add disabled by policy empty views to more screens.

Bug: 27588316
Bug: 27588671
Bug: 27588740
Change-Id: Id614067d76e936e9c3c585fdaed304bfbc88dc74
This commit is contained in:
Sudheer Shanka
2016-03-14 12:03:40 -07:00
parent e0a235cf07
commit f1e78d35dc
4 changed files with 70 additions and 29 deletions

View File

@@ -1801,6 +1801,8 @@
<string name="wifi_saved_access_points_label">Saved networks</string>
<!-- Wifi Advanced settings. Used as a label under the shortcut icon that goes to Wifi advanced settings. [CHAR LIMIT=20] -->
<string name="wifi_advanced_settings_label">IP settings</string>
<!-- Error message for users that aren't allowed to see or modify WiFi advanced settings [CHAR LIMIT=NONE] -->
<string name="wifi_advanced_not_available">Wi\u2011Fi advanced settings are not available for this user</string>
<!-- Menu item to save the IP settings -->
<string name="wifi_ip_settings_menu_save">Save</string>
<!-- Menu ietm to cancel the IP settings -->

View File

@@ -60,7 +60,7 @@ import com.android.internal.telephony.uicc.UiccController;
import java.util.ArrayList;
public class ApnSettings extends SettingsPreferenceFragment implements
public class ApnSettings extends RestrictedSettingsFragment implements
Preference.OnPreferenceChangeListener {
static final String TAG = "ApnSettings";
@@ -103,8 +103,6 @@ public class ApnSettings extends SettingsPreferenceFragment implements
private String mMvnoType;
private String mMvnoMatchData;
private UserManager mUm;
private String mSelectedKey;
private IntentFilter mMobileStateFilter;
@@ -114,6 +112,10 @@ public class ApnSettings extends SettingsPreferenceFragment implements
private boolean mHideImsApn;
private boolean mAllowAddingApns;
public ApnSettings() {
super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
}
private final BroadcastReceiver mMobileStateReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -154,14 +156,10 @@ public class ApnSettings extends SettingsPreferenceFragment implements
final int subId = activity.getIntent().getIntExtra(SUB_ID,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mUm = (UserManager) getSystemService(Context.USER_SERVICE);
mMobileStateFilter = new IntentFilter(
TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
if (!mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)) {
setHasOptionsMenu(true);
}
setIfOnlyAvailableForAdmins(true);
mSubscriptionInfo = SubscriptionManager.from(activity).getActiveSubscriptionInfo(subId);
mUiccController = UiccController.getInstance();
@@ -177,16 +175,12 @@ public class ApnSettings extends SettingsPreferenceFragment implements
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
TextView empty = (TextView) getView().findViewById(android.R.id.empty);
if (empty != null) {
empty.setText(R.string.apn_settings_not_available);
setEmptyView(empty);
}
if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
|| !mUm.isAdminUser()) {
mUnavailable = true;
getEmptyTextView().setText(R.string.apn_settings_not_available);
mUnavailable = isUiRestricted();
setHasOptionsMenu(!mUnavailable);
if (mUnavailable) {
setPreferenceScreen(new PreferenceScreen(getPrefContext(), null));
getPreferenceScreen().removeAll();
return;
}

View File

@@ -20,6 +20,7 @@ import android.app.ActionBar;
import android.content.Context;
import android.nfc.NfcAdapter;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -33,7 +34,11 @@ import com.android.settings.HelpUtils;
import com.android.settings.InstrumentedFragment;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
import com.android.settings.ShowAdminSupportDetailsDialog;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.RestrictedLockUtils;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
public class AndroidBeam extends InstrumentedFragment
implements SwitchBar.OnSwitchChangeListener {
@@ -41,7 +46,8 @@ public class AndroidBeam extends InstrumentedFragment
private NfcAdapter mNfcAdapter;
private SwitchBar mSwitchBar;
private CharSequence mOldActivityTitle;
private boolean mBeamDisallowed;
private boolean mBeamDisallowedByBase;
private boolean mBeamDisallowedByAdmin;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -53,8 +59,6 @@ public class AndroidBeam extends InstrumentedFragment
actionBar.setTitle(R.string.android_beam_settings_title);
mNfcAdapter = NfcAdapter.getDefaultAdapter(getActivity());
mBeamDisallowed = ((UserManager) getActivity().getSystemService(Context.USER_SERVICE))
.hasUserRestriction(UserManager.DISALLOW_OUTGOING_BEAM);
setHasOptionsMenu(true);
}
@@ -68,8 +72,19 @@ public class AndroidBeam extends InstrumentedFragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final EnforcedAdmin admin = RestrictedLockUtils.checkIfRestrictionEnforced(
getActivity(), UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId());
final UserManager um = UserManager.get(getActivity());
mBeamDisallowedByBase = RestrictedLockUtils.hasBaseUserRestriction(getActivity(),
UserManager.DISALLOW_OUTGOING_BEAM, UserHandle.myUserId());
if (!mBeamDisallowedByBase && admin != null) {
View view = inflater.inflate(R.layout.admin_support_details_empty_view, null);
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(), view, admin, false);
view.setVisibility(View.VISIBLE);
mBeamDisallowedByAdmin = true;
return view;
}
mView = inflater.inflate(R.layout.android_beam, container, false);
return mView;
}
@@ -80,11 +95,15 @@ public class AndroidBeam extends InstrumentedFragment
SettingsActivity activity = (SettingsActivity) getActivity();
mSwitchBar = activity.getSwitchBar();
mSwitchBar.setChecked(!mBeamDisallowed && mNfcAdapter.isNdefPushEnabled());
if (!mBeamDisallowedByBase && mBeamDisallowedByAdmin) {
mSwitchBar.hide();
} else {
mSwitchBar.setChecked(!mBeamDisallowedByBase && mNfcAdapter.isNdefPushEnabled());
mSwitchBar.addOnSwitchChangeListener(this);
mSwitchBar.setEnabled(!mBeamDisallowed);
mSwitchBar.setEnabled(!mBeamDisallowedByBase);
mSwitchBar.show();
}
}
@Override
public void onDestroyView() {

View File

@@ -22,14 +22,18 @@ import android.content.Context;
import android.content.Intent;
import android.net.wifi.WpsInfo;
import android.os.Bundle;
import android.os.UserManager;
import android.security.Credentials;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceScreen;
import com.android.internal.logging.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.RestrictedSettingsFragment;
import com.android.settingslib.RestrictedLockUtils;
public class AdvancedWifiSettings extends SettingsPreferenceFragment {
public class AdvancedWifiSettings extends RestrictedSettingsFragment {
private static final String TAG = "AdvancedWifiSettings";
private static final String KEY_INSTALL_CREDENTIALS = "install_credentials";
@@ -37,6 +41,12 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment {
private static final String KEY_WPS_PUSH = "wps_push_button";
private static final String KEY_WPS_PIN = "wps_pin_entry";
private boolean mUnavailable;
public AdvancedWifiSettings() {
super(UserManager.DISALLOW_CONFIG_WIFI);
}
@Override
protected int getMetricsCategory() {
return MetricsEvent.WIFI_ADVANCED;
@@ -45,14 +55,30 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (isUiRestricted()) {
mUnavailable = true;
setPreferenceScreen(new PreferenceScreen(getPrefContext(), null));
} else {
addPreferencesFromResource(R.xml.wifi_advanced_settings);
}
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
getEmptyTextView().setText(R.string.wifi_advanced_not_available);
if (mUnavailable) {
getPreferenceScreen().removeAll();
}
}
@Override
public void onResume() {
super.onResume();
if (!mUnavailable) {
initPreferences();
}
}
private void initPreferences() {
final Context context = getActivity();