Loading src/com/android/settings/notification/modes/ZenModeFragment.java +55 −31 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.activity.ComponentActivity; import androidx.annotation.NonNull; import androidx.core.view.MenuProvider; import com.android.settings.R; import com.android.settingslib.applications.ApplicationsState; Loading @@ -39,6 +41,8 @@ public class ZenModeFragment extends ZenModeFragmentBase { // for mode deletion menu private static final int DELETE_MODE = 1; private ModeMenuProvider mModeMenuProvider; @Override protected int getPreferenceScreenResId() { return R.xml.modes_rule_settings; Loading Loading @@ -84,11 +88,22 @@ public class ZenModeFragment extends ZenModeFragmentBase { // Set title for the entire screen ZenMode mode = getMode(); if (mode != null) { requireActivity().setTitle(mode.getName()); ComponentActivity activity = getActivity(); if (mode != null && activity != null) { activity.setTitle(mode.getName()); mModeMenuProvider = new ModeMenuProvider(mode); activity.addMenuProvider(mModeMenuProvider); } } @Override public void onStop() { if (getActivity() != null) { getActivity().removeMenuProvider(mModeMenuProvider); } super.onStop(); } @Override public void onDetach() { use(ManualDurationPreferenceController.class).unregisterSettingsObserver(); Loading @@ -102,41 +117,50 @@ public class ZenModeFragment extends ZenModeFragmentBase { } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { protected void updateZenModeState() { // Because this fragment may be asked to finish by the delete menu but not be done doing // so yet, ignore any attempts to update info in that case. if (getActivity() != null && getActivity().isFinishing()) { return; } super.updateZenModeState(); } private class ModeMenuProvider implements MenuProvider { private ZenMode mZenMode; ModeMenuProvider(ZenMode mode) { mZenMode = mode; } @Override public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { if (mZenMode != null && mZenMode.canBeDeleted()) { // Only deleteable modes should get a delete menu option. menu.add(Menu.NONE, DELETE_MODE, Menu.NONE, R.string.zen_mode_menu_delete_mode); super.onCreateOptionsMenu(menu, inflater); } } @Override protected boolean onOptionsItemSelected(MenuItem item, @NonNull ZenMode zenMode) { switch (item.getItemId()) { case DELETE_MODE: public boolean onMenuItemSelected(@NonNull MenuItem menuItem) { if (mZenMode != null) { if (menuItem.getItemId() == DELETE_MODE) { new AlertDialog.Builder(mContext) .setTitle(mContext.getString(R.string.zen_mode_delete_mode_confirmation, zenMode.getRule().getName())) mZenMode.getRule().getName())) .setPositiveButton(R.string.zen_mode_schedule_delete, (dialog, which) -> { // start finishing before calling removeMode() so that we don't // try to update this activity with a nonexistent mode when the // zen mode config is updated // start finishing before calling removeMode() so that we // don't try to update this activity with a nonexistent mode // when the zen mode config is updated finish(); mBackend.removeMode(zenMode); mBackend.removeMode(mZenMode); }) .setNegativeButton(R.string.cancel, null) .show(); return true; default: return super.onOptionsItemSelected(item); } } @Override protected void updateZenModeState() { // Because this fragment may be asked to finish by the delete menu but not be done doing // so yet, ignore any attempts to update info in that case. if (getActivity() != null && getActivity().isFinishing()) { return; return false; } super.updateZenModeState(); } } src/com/android/settings/notification/modes/ZenModeFragmentBase.java +0 −13 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.MenuItem; import android.widget.Toast; import androidx.annotation.NonNull; Loading Loading @@ -117,18 +116,6 @@ abstract class ZenModeFragmentBase extends ZenModesFragmentBase { updateControllers(); } @Override public final boolean onOptionsItemSelected(MenuItem item) { if (mZenMode != null) { return onOptionsItemSelected(item, mZenMode); } return super.onOptionsItemSelected(item); } protected boolean onOptionsItemSelected(MenuItem item, @NonNull ZenMode zenMode) { return true; } private void updateControllers() { if (getPreferenceControllers() == null || mZenMode == null) { return; Loading Loading
src/com/android/settings/notification/modes/ZenModeFragment.java +55 −31 Original line number Diff line number Diff line Loading @@ -24,7 +24,9 @@ import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.activity.ComponentActivity; import androidx.annotation.NonNull; import androidx.core.view.MenuProvider; import com.android.settings.R; import com.android.settingslib.applications.ApplicationsState; Loading @@ -39,6 +41,8 @@ public class ZenModeFragment extends ZenModeFragmentBase { // for mode deletion menu private static final int DELETE_MODE = 1; private ModeMenuProvider mModeMenuProvider; @Override protected int getPreferenceScreenResId() { return R.xml.modes_rule_settings; Loading Loading @@ -84,11 +88,22 @@ public class ZenModeFragment extends ZenModeFragmentBase { // Set title for the entire screen ZenMode mode = getMode(); if (mode != null) { requireActivity().setTitle(mode.getName()); ComponentActivity activity = getActivity(); if (mode != null && activity != null) { activity.setTitle(mode.getName()); mModeMenuProvider = new ModeMenuProvider(mode); activity.addMenuProvider(mModeMenuProvider); } } @Override public void onStop() { if (getActivity() != null) { getActivity().removeMenuProvider(mModeMenuProvider); } super.onStop(); } @Override public void onDetach() { use(ManualDurationPreferenceController.class).unregisterSettingsObserver(); Loading @@ -102,41 +117,50 @@ public class ZenModeFragment extends ZenModeFragmentBase { } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { protected void updateZenModeState() { // Because this fragment may be asked to finish by the delete menu but not be done doing // so yet, ignore any attempts to update info in that case. if (getActivity() != null && getActivity().isFinishing()) { return; } super.updateZenModeState(); } private class ModeMenuProvider implements MenuProvider { private ZenMode mZenMode; ModeMenuProvider(ZenMode mode) { mZenMode = mode; } @Override public void onCreateMenu(@NonNull Menu menu, @NonNull MenuInflater menuInflater) { if (mZenMode != null && mZenMode.canBeDeleted()) { // Only deleteable modes should get a delete menu option. menu.add(Menu.NONE, DELETE_MODE, Menu.NONE, R.string.zen_mode_menu_delete_mode); super.onCreateOptionsMenu(menu, inflater); } } @Override protected boolean onOptionsItemSelected(MenuItem item, @NonNull ZenMode zenMode) { switch (item.getItemId()) { case DELETE_MODE: public boolean onMenuItemSelected(@NonNull MenuItem menuItem) { if (mZenMode != null) { if (menuItem.getItemId() == DELETE_MODE) { new AlertDialog.Builder(mContext) .setTitle(mContext.getString(R.string.zen_mode_delete_mode_confirmation, zenMode.getRule().getName())) mZenMode.getRule().getName())) .setPositiveButton(R.string.zen_mode_schedule_delete, (dialog, which) -> { // start finishing before calling removeMode() so that we don't // try to update this activity with a nonexistent mode when the // zen mode config is updated // start finishing before calling removeMode() so that we // don't try to update this activity with a nonexistent mode // when the zen mode config is updated finish(); mBackend.removeMode(zenMode); mBackend.removeMode(mZenMode); }) .setNegativeButton(R.string.cancel, null) .show(); return true; default: return super.onOptionsItemSelected(item); } } @Override protected void updateZenModeState() { // Because this fragment may be asked to finish by the delete menu but not be done doing // so yet, ignore any attempts to update info in that case. if (getActivity() != null && getActivity().isFinishing()) { return; return false; } super.updateZenModeState(); } }
src/com/android/settings/notification/modes/ZenModeFragmentBase.java +0 −13 Original line number Diff line number Diff line Loading @@ -21,7 +21,6 @@ import static android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID; import android.content.Context; import android.os.Bundle; import android.util.Log; import android.view.MenuItem; import android.widget.Toast; import androidx.annotation.NonNull; Loading Loading @@ -117,18 +116,6 @@ abstract class ZenModeFragmentBase extends ZenModesFragmentBase { updateControllers(); } @Override public final boolean onOptionsItemSelected(MenuItem item) { if (mZenMode != null) { return onOptionsItemSelected(item, mZenMode); } return super.onOptionsItemSelected(item); } protected boolean onOptionsItemSelected(MenuItem item, @NonNull ZenMode zenMode) { return true; } private void updateControllers() { if (getPreferenceControllers() == null || mZenMode == null) { return; Loading