• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
showPublic(Activity activity, String diskId)41     public static void showPublic(Activity activity, String diskId) {
42         show(activity, diskId, null, false);
43     }
44 
showPublic(Activity activity, String diskId, String forgetUuid)45     public static void showPublic(Activity activity, String diskId, String forgetUuid) {
46         show(activity, diskId, forgetUuid, false);
47     }
48 
showPrivate(Activity activity, String diskId)49     public static void showPrivate(Activity activity, String diskId) {
50         show(activity, diskId, null, true);
51     }
52 
show(Activity activity, String diskId, String formatForgetUuid, boolean formatPrivate)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
getMetricsCategory()66     public int getMetricsCategory() {
67         return MetricsProto.MetricsEvent.DIALOG_VOLUME_FORMAT;
68     }
69 
70     @Override
onCreateDialog(Bundle savedInstanceState)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