90 lines
3.3 KiB
Java
90 lines
3.3 KiB
Java
/*
|
|
* Copyright (c) 2017 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package com.android.settings.notification;
|
|
|
|
import android.app.Dialog;
|
|
import android.app.settings.SettingsEnums;
|
|
import android.content.DialogInterface;
|
|
import android.os.Bundle;
|
|
import android.text.BidiFormatter;
|
|
import android.view.View;
|
|
|
|
import androidx.appcompat.app.AlertDialog;
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
import com.android.settings.R;
|
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
|
|
|
public class ZenDeleteRuleDialog extends InstrumentedDialogFragment {
|
|
protected static final String TAG = "ZenDeleteRuleDialog";
|
|
private static final String EXTRA_ZEN_RULE_NAME = "zen_rule_name";
|
|
private static final String EXTRA_ZEN_RULE_ID = "zen_rule_id";
|
|
protected static PositiveClickListener mPositiveClickListener;
|
|
|
|
/**
|
|
* The interface we expect a listener to implement.
|
|
*/
|
|
public interface PositiveClickListener {
|
|
void onOk(String id);
|
|
}
|
|
|
|
public static void show(Fragment parent, String ruleName, String id, PositiveClickListener
|
|
listener) {
|
|
final BidiFormatter bidi = BidiFormatter.getInstance();
|
|
final Bundle args = new Bundle();
|
|
args.putString(EXTRA_ZEN_RULE_NAME, bidi.unicodeWrap(ruleName));
|
|
args.putString(EXTRA_ZEN_RULE_ID, id);
|
|
mPositiveClickListener = listener;
|
|
|
|
ZenDeleteRuleDialog dialog = new ZenDeleteRuleDialog();
|
|
dialog.setArguments(args);
|
|
dialog.setTargetFragment(parent, 0);
|
|
dialog.show(parent.getFragmentManager(), TAG);
|
|
}
|
|
|
|
@Override
|
|
public int getMetricsCategory() {
|
|
return SettingsEnums.NOTIFICATION_ZEN_MODE_DELETE_RULE_DIALOG;
|
|
}
|
|
|
|
@Override
|
|
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
|
Bundle arguments = getArguments();
|
|
String ruleName = arguments.getString(EXTRA_ZEN_RULE_NAME);
|
|
String id = arguments.getString(EXTRA_ZEN_RULE_ID);
|
|
|
|
final AlertDialog dialog = new AlertDialog.Builder(getContext())
|
|
.setMessage(getString(R.string.zen_mode_delete_rule_confirmation, ruleName))
|
|
.setNegativeButton(R.string.cancel, null)
|
|
.setPositiveButton(R.string.zen_mode_delete_rule_button,
|
|
new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
if (arguments != null) {
|
|
mPositiveClickListener.onOk(id);
|
|
}
|
|
}
|
|
}).create();
|
|
final View messageView = dialog.findViewById(android.R.id.message);
|
|
if (messageView != null) {
|
|
messageView.setTextDirection(View.TEXT_DIRECTION_LOCALE);
|
|
}
|
|
return dialog;
|
|
}
|
|
|
|
}
|