diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java index fc85f7dffd0..5da2990caae 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/FriendlyWarningDialogFragment.java @@ -22,6 +22,7 @@ import android.os.Bundle; import android.text.TextUtils; import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.Fragment; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; @@ -39,10 +40,12 @@ public class FriendlyWarningDialogFragment extends InstrumentedDialogFragment { return SettingsEnums.DIALOG_ZEN_ACCESS_REVOKE; } - public FriendlyWarningDialogFragment setPkgInfo(String pkg, CharSequence label) { + public FriendlyWarningDialogFragment setPkgInfo(String pkg, CharSequence label, + Fragment target) { Bundle args = new Bundle(); args.putString(KEY_PKG, pkg); args.putString(KEY_LABEL, TextUtils.isEmpty(label) ? pkg : label.toString()); + setTargetFragment(target, 0); setArguments(args); return this; } @@ -58,6 +61,8 @@ public class FriendlyWarningDialogFragment extends InstrumentedDialogFragment { R.string.zen_access_revoke_warning_dialog_title, label); final String summary = getResources() .getString(R.string.zen_access_revoke_warning_dialog_summary); + + ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment(); return new AlertDialog.Builder(getContext()) .setMessage(summary) .setTitle(title) @@ -66,6 +71,7 @@ public class FriendlyWarningDialogFragment extends InstrumentedDialogFragment { (dialog, id) -> { ZenAccessController.deleteRules(getContext(), pkg); ZenAccessController.setAccess(getContext(), pkg, false); + parent.refreshUi(); }) .setNegativeButton(R.string.cancel, (dialog, id) -> { diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java index 778206bab6e..e4ef48bc823 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/ScaryWarningDialogFragment.java @@ -22,6 +22,7 @@ import android.os.Bundle; import android.text.TextUtils; import androidx.appcompat.app.AlertDialog; +import androidx.fragment.app.Fragment; import com.android.settings.R; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; @@ -38,10 +39,11 @@ public class ScaryWarningDialogFragment extends InstrumentedDialogFragment { return SettingsEnums.DIALOG_ZEN_ACCESS_GRANT; } - public ScaryWarningDialogFragment setPkgInfo(String pkg, CharSequence label) { + public ScaryWarningDialogFragment setPkgInfo(String pkg, CharSequence label, Fragment target) { Bundle args = new Bundle(); args.putString(KEY_PKG, pkg); args.putString(KEY_LABEL, TextUtils.isEmpty(label) ? pkg : label.toString()); + setTargetFragment(target, 0); setArguments(args); return this; } @@ -57,12 +59,18 @@ public class ScaryWarningDialogFragment extends InstrumentedDialogFragment { label); final String summary = getResources() .getString(R.string.zen_access_warning_dialog_summary); + + ZenAccessDetails parent = (ZenAccessDetails) getTargetFragment(); + return new AlertDialog.Builder(getContext()) .setMessage(summary) .setTitle(title) .setCancelable(true) .setPositiveButton(R.string.allow, - (dialog, id) -> ZenAccessController.setAccess(getContext(), pkg, true)) + (dialog, id) -> { + ZenAccessController.setAccess(getContext(), pkg, true); + parent.refreshUi(); + }) .setNegativeButton(R.string.deny, (dialog, id) -> { // pass diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java index ba6bb1dfc83..c608b5bf9a0 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessDetails.java @@ -79,11 +79,11 @@ public class ZenAccessDetails extends AppInfoWithHeader implements final boolean access = (Boolean) newValue; if (access) { new ScaryWarningDialogFragment() - .setPkgInfo(mPackageName, label) + .setPkgInfo(mPackageName, label, ZenAccessDetails.this) .show(getFragmentManager(), "dialog"); } else { new FriendlyWarningDialogFragment() - .setPkgInfo(mPackageName, label) + .setPkgInfo(mPackageName, label, ZenAccessDetails.this) .show(getFragmentManager(), "dialog"); } return false; diff --git a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixin.java b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixin.java index da238f62496..f378e7bed2c 100644 --- a/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixin.java +++ b/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixin.java @@ -53,11 +53,6 @@ public class ZenAccessSettingObserverMixin extends ContentObserver implements Li @Override public void onStart() { - mContext.getContentResolver().registerContentObserver( - Settings.Secure.getUriFor( - Settings.Secure.ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES), - false /* notifyForDescendants */, - this /* observer */); mContext.getContentResolver().registerContentObserver( Settings.Secure.getUriFor(Settings.Secure.ENABLED_NOTIFICATION_LISTENERS), false /* notifyForDescendants */, diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java index fb565b62e9e..afda8d534df 100644 --- a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java +++ b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java @@ -73,7 +73,7 @@ public class ZenAccessSettingObserverMixinTest { mLifecycle.handleLifecycleEvent(ON_START); mContext.getContentResolver().notifyChange(Settings.Secure.getUriFor( - Settings.Secure.ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES), null); + Settings.Secure.ENABLED_NOTIFICATION_LISTENERS), null); verify(mListener).onZenAccessPolicyChanged(); } @@ -84,7 +84,7 @@ public class ZenAccessSettingObserverMixinTest { mLifecycle.handleLifecycleEvent(ON_STOP); mContext.getContentResolver().notifyChange(Settings.Secure.getUriFor( - Settings.Secure.ENABLED_NOTIFICATION_POLICY_ACCESS_PACKAGES), null); + Settings.Secure.ENABLED_NOTIFICATION_LISTENERS), null); verify(mListener, never()).onZenAccessPolicyChanged(); }