• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2018 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.car.settings.users;
18 
19 import static android.content.DialogInterface.BUTTON_NEGATIVE;
20 import static android.content.DialogInterface.BUTTON_POSITIVE;
21 
22 import android.app.Dialog;
23 import android.content.DialogInterface;
24 import android.os.Bundle;
25 import android.support.v4.app.DialogFragment;
26 import android.support.v4.app.Fragment;
27 
28 import androidx.car.app.CarAlertDialog;
29 
30 import com.android.car.settings.R;
31 
32 /**
33  * Dialog to confirm creation of new user.
34  */
35 public class ConfirmCreateNewUserDialog extends DialogFragment implements
36         DialogInterface.OnClickListener {
37     private static final String DIALOG_TAG = "ConfirmCreateNewUserDialog";
38     private ConfirmCreateNewUserListener mCreateListener;
39     private CancelCreateNewUserListener mCancelListener;
40 
41     /**
42      * Interface for listeners that want to receive a callback when user confirms new user creation
43      * in the dialog.
44      */
45     public interface ConfirmCreateNewUserListener {
onCreateNewUserConfirmed()46         void onCreateNewUserConfirmed();
47     }
48 
49     /**
50      * Interface for listeners that want to receive a callback when user cancels new user creation
51      * in the dialog.
52      */
53     public interface CancelCreateNewUserListener {
onCreateNewUserCancelled()54         void onCreateNewUserCancelled();
55     }
56 
57     /**
58      * Shows the dialog.
59      *
60      * @param parent Fragment associated with the dialog.
61      */
show(Fragment parent)62     public void show(Fragment parent) {
63         setTargetFragment(parent, 0);
64         show(parent.getFragmentManager(), DIALOG_TAG);
65     }
66 
67     /**
68      * Sets a listener for OnCreateNewUserConfirmed that will get called if user confirms
69      * the dialog.
70      *
71      * @param listener Instance of {@link ConfirmCreateNewUserListener} to call when confirmed.
72      */
setConfirmCreateNewUserListener(ConfirmCreateNewUserListener listener)73     public void setConfirmCreateNewUserListener(ConfirmCreateNewUserListener listener) {
74         mCreateListener = listener;
75     }
76 
77     /**
78      * Sets a listener for OnCancelNewUserConfirmed that will get called if user cancels
79      * the dialog.
80      *
81      * @param listener Instance of {@link CancelCreateNewUserListener} to call when user presses
82      * cancel.
83      */
setCancelCreateNewUserListener(CancelCreateNewUserListener listener)84     public void setCancelCreateNewUserListener(CancelCreateNewUserListener listener) {
85         mCancelListener = listener;
86     }
87 
88     @Override
onCreateDialog(Bundle savedInstanceState)89     public Dialog onCreateDialog(Bundle savedInstanceState) {
90         String message = getString(R.string.user_add_user_message_setup)
91                 .concat(System.getProperty("line.separator"))
92                 .concat(System.getProperty("line.separator"))
93                 .concat(getString(R.string.user_add_user_message_update));
94 
95         return new CarAlertDialog.Builder(getContext())
96                 .setTitle(R.string.user_add_user_title)
97                 .setBody(message)
98                 .setNegativeButton(android.R.string.cancel, this)
99                 .setPositiveButton(android.R.string.ok, this)
100                 .create();
101     }
102 
103     @Override
onClick(DialogInterface dialog, int which)104     public void onClick(DialogInterface dialog, int which) {
105         if (which == BUTTON_POSITIVE) {
106             if (mCreateListener != null) {
107                 mCreateListener.onCreateNewUserConfirmed();
108             }
109         } else if (which == BUTTON_NEGATIVE) {
110             if (mCancelListener != null) {
111                 mCancelListener.onCreateNewUserCancelled();
112             }
113         }
114 
115         dialog.dismiss();
116     }
117 }