Home | History | Annotate | Download | only in deviceinfo
      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