Update Zen Automatic Rule Settings page

Test: atest ZenModeBackend
Test: make RunSettingsRoboTests
Bug: 111475013
Change-Id: I86cc2c35002cd3a74d21f080eaf6d0fc29fa6a17
This commit is contained in:
Beverly
2018-11-27 16:56:38 -05:00
parent 4c3251ebab
commit 6afe8365a9
17 changed files with 504 additions and 234 deletions

View File

@@ -16,9 +16,15 @@
package com.android.settings.notification;
import android.app.AlertDialog;
import android.app.AutomaticZenRule;
import android.content.Context;
import android.content.DialogInterface;
import android.provider.SearchIndexableResource;
import android.service.notification.ConditionProviderService;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import androidx.fragment.app.Fragment;
@@ -34,10 +40,14 @@ import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@SearchIndexable
public class ZenModeAutomationSettings extends ZenModeSettingsBase {
protected final ManagedServiceSettings.Config CONFIG = getConditionProviderConfig();
private CharSequence[] mDeleteDialogRuleNames;
private String[] mDeleteDialogRuleIds;
private boolean[] mDeleteDialogChecked;
@Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
@@ -74,6 +84,52 @@ public class ZenModeAutomationSettings extends ZenModeSettingsBase {
.setNoun("condition provider")
.build();
}
private final int DELETE_RULES = 1;
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.add(Menu.NONE, DELETE_RULES, Menu.NONE, R.string.zen_mode_delete_automatic_rules);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_RULES:
Map.Entry<String, AutomaticZenRule>[] rules = mBackend.getAutomaticZenRules();
mDeleteDialogRuleNames = new CharSequence[rules.length];
mDeleteDialogRuleIds = new String[rules.length];
mDeleteDialogChecked = new boolean[rules.length];
for (int i = 0; i < rules.length; i++) {
mDeleteDialogRuleNames[i] = rules[i].getValue().getName();
mDeleteDialogRuleIds[i] = rules[i].getKey();
}
new AlertDialog.Builder(mContext)
.setTitle(R.string.zen_mode_delete_automatic_rules)
.setMultiChoiceItems(mDeleteDialogRuleNames, null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
mDeleteDialogChecked[which] = isChecked;
}
})
.setPositiveButton(R.string.zen_mode_schedule_delete,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
for (int i = 0; i < rules.length; i++) {
if (mDeleteDialogChecked[i]) {
mBackend.removeZenRule(mDeleteDialogRuleIds[i]);
}
}
}
}).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
/**
* For Search.