blob: 858cd8f197d3fc3da251aec60528c70b815485e5 [file] [log] [blame]
/*
* Copyright (C) 2022 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.development;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.SystemProperties;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
public class RebootWithMteDialog extends InstrumentedDialogFragment
implements DialogInterface.OnClickListener {
public static final String TAG = "RebootWithMteDlg";
private Context mContext;
public RebootWithMteDialog(Context context) {
mContext = context;
}
public static void show(Context context, Fragment host) {
FragmentManager manager = host.getActivity().getSupportFragmentManager();
if (manager.findFragmentByTag(TAG) == null) {
RebootWithMteDialog dialog = new RebootWithMteDialog(context);
dialog.setTargetFragment(host, 0 /* requestCode */);
dialog.show(manager, TAG);
}
}
@Override
public int getMetricsCategory() {
return SettingsEnums.REBOOT_WITH_MTE_DIALOG;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.reboot_with_mte_title)
.setMessage(R.string.reboot_with_mte_message)
.setPositiveButton(android.R.string.ok, this /* onClickListener */)
.setNegativeButton(android.R.string.cancel, null /* onClickListener */)
.setIcon(android.R.drawable.ic_dialog_alert)
.create();
}
@Override
public void onClick(DialogInterface dialog, int which) {
PowerManager pm = mContext.getSystemService(PowerManager.class);
SystemProperties.set("arm64.memtag.bootctl", "memtag-once");
pm.reboot(null);
}
}