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 package com.android.messaging.ui.conversation;
17 
18 import android.app.AlertDialog;
19 import android.app.Dialog;
20 import android.app.DialogFragment;
21 import android.content.Context;
22 import android.content.DialogInterface;
23 import android.os.Bundle;
24 import android.text.TextUtils;
25 import android.view.LayoutInflater;
26 import android.widget.EditText;
27 
28 import com.android.messaging.R;
29 import com.android.messaging.datamodel.ParticipantRefresh;
30 import com.android.messaging.util.BuglePrefs;
31 import com.android.messaging.util.UiUtils;
32 
33 /**
34  * The dialog for the user to enter the phone number of their sim.
35  */
36 public class EnterSelfPhoneNumberDialog extends DialogFragment {
37     private EditText mEditText;
38     private int mSubId;
39 
newInstance(final int subId)40     public static EnterSelfPhoneNumberDialog newInstance(final int subId) {
41         final EnterSelfPhoneNumberDialog dialog = new EnterSelfPhoneNumberDialog();
42         dialog.mSubId = subId;
43         return dialog;
44     }
45 
46     @Override
onCreateDialog(final Bundle savedInstanceState)47     public Dialog onCreateDialog(final Bundle savedInstanceState) {
48         final Context context = getActivity();
49         final LayoutInflater inflater = LayoutInflater.from(context);
50         mEditText = (EditText) inflater.inflate(R.layout.enter_phone_number_view, null, false);
51 
52         final AlertDialog.Builder builder = new AlertDialog.Builder(context);
53         builder.setTitle(R.string.enter_phone_number_title)
54                 .setMessage(R.string.enter_phone_number_text)
55                 .setView(mEditText)
56                 .setNegativeButton(android.R.string.cancel,
57                         new DialogInterface.OnClickListener() {
58                             @Override
59                             public void onClick(final DialogInterface dialog,
60                                     final int button) {
61                                 dismiss();
62                             }
63                 })
64                 .setPositiveButton(android.R.string.ok,
65                         new DialogInterface.OnClickListener() {
66                             @Override
67                             public void onClick(final DialogInterface dialog,
68                                     final int button) {
69                                 final String newNumber = mEditText.getText().toString();
70                                 dismiss();
71                                 if (!TextUtils.isEmpty(newNumber)) {
72                                     savePhoneNumberInPrefs(newNumber);
73                                     // TODO: Remove this toast and just auto-send
74                                     // the message instead
75                                     UiUtils.showToast(
76                                             R.string
77                                         .toast_after_setting_default_sms_app_for_message_send);
78                                 }
79                             }
80                 });
81         return builder.create();
82     }
83 
savePhoneNumberInPrefs(final String newPhoneNumber)84     private void savePhoneNumberInPrefs(final String newPhoneNumber) {
85         final BuglePrefs subPrefs = BuglePrefs.getSubscriptionPrefs(mSubId);
86         subPrefs.putString(getString(R.string.mms_phone_number_pref_key),
87                 newPhoneNumber);
88         // Update the self participants so the new phone number will be reflected
89         // everywhere in the UI.
90         ParticipantRefresh.refreshSelfParticipants();
91     }
92 }
93