1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.settings.deviceinfo; 18 19 import static android.os.storage.DiskInfo.EXTRA_DISK_ID; 20 21 import static com.android.settings.deviceinfo.StorageWizardBase.EXTRA_FORMAT_FORGET_UUID; 22 import static com.android.settings.deviceinfo.StorageWizardBase.EXTRA_FORMAT_PRIVATE; 23 24 import android.app.Activity; 25 import android.app.AlertDialog; 26 import android.app.Dialog; 27 import android.content.Context; 28 import android.content.Intent; 29 import android.os.Bundle; 30 import android.os.storage.DiskInfo; 31 import android.os.storage.StorageManager; 32 import android.text.TextUtils; 33 34 import com.android.internal.logging.nano.MetricsProto; 35 import com.android.settings.R; 36 import com.android.settings.core.instrumentation.InstrumentedDialogFragment; 37 38 public class StorageWizardFormatConfirm extends InstrumentedDialogFragment { 39 private static final String TAG_FORMAT_WARNING = "format_warning"; 40 41 public static void showPublic(Activity activity, String diskId) { 42 show(activity, diskId, null, false); 43 } 44 45 public static void showPublic(Activity activity, String diskId, String forgetUuid) { 46 show(activity, diskId, forgetUuid, false); 47 } 48 49 public static void showPrivate(Activity activity, String diskId) { 50 show(activity, diskId, null, true); 51 } 52 53 private static void show(Activity activity, String diskId, String formatForgetUuid, 54 boolean formatPrivate) { 55 final Bundle args = new Bundle(); 56 args.putString(EXTRA_DISK_ID, diskId); 57 args.putString(EXTRA_FORMAT_FORGET_UUID, formatForgetUuid); 58 args.putBoolean(EXTRA_FORMAT_PRIVATE, formatPrivate); 59 60 final StorageWizardFormatConfirm fragment = new StorageWizardFormatConfirm(); 61 fragment.setArguments(args); 62 fragment.showAllowingStateLoss(activity.getFragmentManager(), TAG_FORMAT_WARNING); 63 } 64 65 @Override 66 public int getMetricsCategory() { 67 return MetricsProto.MetricsEvent.DIALOG_VOLUME_FORMAT; 68 } 69 70 @Override 71 public Dialog onCreateDialog(Bundle savedInstanceState) { 72 final Context context = getContext(); 73 74 final Bundle args = getArguments(); 75 final String diskId = args.getString(EXTRA_DISK_ID); 76 final String formatForgetUuid = args.getString(EXTRA_FORMAT_FORGET_UUID); 77 final boolean formatPrivate = args.getBoolean(EXTRA_FORMAT_PRIVATE, false); 78 79 final DiskInfo disk = context.getSystemService(StorageManager.class) 80 .findDiskById(diskId); 81 82 final AlertDialog.Builder builder = new AlertDialog.Builder(context); 83 builder.setTitle(TextUtils.expandTemplate( 84 getText(R.string.storage_wizard_format_confirm_v2_title), 85 disk.getShortDescription())); 86 builder.setMessage(TextUtils.expandTemplate( 87 getText(R.string.storage_wizard_format_confirm_v2_body), 88 disk.getDescription(), 89 disk.getShortDescription(), 90 disk.getShortDescription())); 91 92 builder.setNegativeButton(android.R.string.cancel, null); 93 builder.setPositiveButton( 94 TextUtils.expandTemplate(getText(R.string.storage_wizard_format_confirm_v2_action), 95 disk.getShortDescription()), 96 (dialog, which) -> { 97 final Intent intent = new Intent(context, StorageWizardFormatProgress.class); 98 intent.putExtra(EXTRA_DISK_ID, diskId); 99 intent.putExtra(EXTRA_FORMAT_FORGET_UUID, formatForgetUuid); 100 intent.putExtra(EXTRA_FORMAT_PRIVATE, formatPrivate); 101 context.startActivity(intent); 102 }); 103 104 return builder.create(); 105 } 106 } 107