Make "Action not allowed" dialog compliant with Material Spec and replace full screen activities with the dialog.
Bug: 64893948 Test: make ROBOTEST_FILTER=ActionDisabledByAdminDialogTest -j40 RunSettingsRoboTests Test: make ROBOTEST_FILTER=ActionDisabledByAdminDialogHelperTest -j40 RunSettingsRoboTests Change-Id: I9308d8d86a3789b8f2c92b9f4f20cf00cce71d14
This commit is contained in:
committed by
Antoan Angelov
parent
22a39c2b93
commit
e35badd9d5
@@ -17,6 +17,7 @@
|
||||
package com.android.settings;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
@@ -30,6 +31,7 @@ import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.settings.dashboard.RestrictedDashboardFragment;
|
||||
import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
|
||||
import com.android.settingslib.RestrictedLockUtils;
|
||||
|
||||
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||
@@ -67,7 +69,6 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
||||
private RestrictionsManager mRestrictionsManager;
|
||||
|
||||
private final String mRestrictionKey;
|
||||
private View mAdminSupportDetails;
|
||||
private EnforcedAdmin mEnforcedAdmin;
|
||||
private TextView mEmptyTextView;
|
||||
|
||||
@@ -85,6 +86,8 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
||||
}
|
||||
};
|
||||
|
||||
private AlertDialog mActionDisabledDialog;
|
||||
|
||||
/**
|
||||
* @param restrictionKey The restriction key to check before pin protecting
|
||||
* this settings page. Pass in {@link RESTRICT_IF_OVERRIDABLE} if it should
|
||||
@@ -116,7 +119,6 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
mAdminSupportDetails = initAdminSupportDetailsView();
|
||||
mEmptyTextView = initEmptyTextView();
|
||||
}
|
||||
|
||||
@@ -204,10 +206,6 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
||||
return restricted && mRestrictionsManager.hasRestrictionsProvider();
|
||||
}
|
||||
|
||||
private View initAdminSupportDetailsView() {
|
||||
return getActivity().findViewById(R.id.admin_support_details);
|
||||
}
|
||||
|
||||
protected TextView initEmptyTextView() {
|
||||
TextView emptyView = (TextView) getActivity().findViewById(android.R.id.empty);
|
||||
return emptyView;
|
||||
@@ -229,11 +227,14 @@ public abstract class RestrictedSettingsFragment extends SettingsPreferenceFragm
|
||||
@Override
|
||||
protected void onDataSetChanged() {
|
||||
highlightPreferenceIfNeeded();
|
||||
if (mAdminSupportDetails != null && isUiRestrictedByOnlyAdmin()) {
|
||||
if (isUiRestrictedByOnlyAdmin()
|
||||
&& (mActionDisabledDialog == null || !mActionDisabledDialog.isShowing())) {
|
||||
final EnforcedAdmin admin = getRestrictionEnforcedAdmin();
|
||||
ShowAdminSupportDetailsDialog.setAdminSupportDetails(getActivity(),
|
||||
mAdminSupportDetails, admin, false);
|
||||
setEmptyView(mAdminSupportDetails);
|
||||
mActionDisabledDialog = new ActionDisabledByAdminDialogHelper(getActivity())
|
||||
.prepareDialogBuilder(mRestrictionKey, admin)
|
||||
.setOnDismissListener(__ -> getActivity().finish())
|
||||
.show();
|
||||
setEmptyView(new View(getContext()));
|
||||
} else if (mEmptyTextView != null) {
|
||||
setEmptyView(mEmptyTextView);
|
||||
}
|
||||
|
Reference in New Issue
Block a user