EditInfoActivity.java revision b101808f242719aea123c138883a0854cd0a8ad1
1cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan/*
2cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * Copyright (C) 2016 The Android Open Source Project
3cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan *
4cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * Licensed under the Apache License, Version 2.0 (the "License");
5cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * you may not use this file except in compliance with the License.
6cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * You may obtain a copy of the License at
7cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan *
8cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan *      http://www.apache.org/licenses/LICENSE-2.0
9cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan *
10cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * Unless required by applicable law or agreed to in writing, software
11cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * distributed under the License is distributed on an "AS IS" BASIS,
12cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * See the License for the specific language governing permissions and
14cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * limitations under the License.
15cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan */
165874835f1edc1cac42eb4b3aa5fe437e8fd53c78mariagpuyolpackage com.android.emergency.edit;
17cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan
188ab27ec8dd566cb0d4215439bdf5773ba2c239b1mariagpuyolimport static android.view.WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD;
198ab27ec8dd566cb0d4215439bdf5773ba2c239b1mariagpuyol
20de7a405217ad397057dfcc8c386330c73339b31dmariagpuyolimport android.app.AlertDialog;
21de7a405217ad397057dfcc8c386330c73339b31dmariagpuyolimport android.app.Dialog;
22de7a405217ad397057dfcc8c386330c73339b31dmariagpuyolimport android.app.DialogFragment;
23de7a405217ad397057dfcc8c386330c73339b31dmariagpuyolimport android.app.Fragment;
24b101808f242719aea123c138883a0854cd0a8ad1mariagpuyolimport android.content.ComponentName;
25de7a405217ad397057dfcc8c386330c73339b31dmariagpuyolimport android.content.DialogInterface;
260556d6c6abe3add19e72d52ed58d39c087720527mariagpuyolimport android.content.SharedPreferences;
27b101808f242719aea123c138883a0854cd0a8ad1mariagpuyolimport android.content.pm.PackageManager;
28cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannanimport android.os.Bundle;
293e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyolimport android.preference.PreferenceManager;
30c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyolimport android.util.Pair;
3188757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyolimport android.view.Menu;
3288757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyolimport android.view.MenuInflater;
3388757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyolimport android.view.MenuItem;
34cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan
359be32659526009cdd4e2cd7c15e89bae5e2ef619mariagpuyolimport com.android.emergency.EmergencyTabActivity;
360556d6c6abe3add19e72d52ed58d39c087720527mariagpuyolimport com.android.emergency.PreferenceKeys;
37232daafc102052b458a3d3847ff9290f73915395mariagpuyolimport com.android.emergency.R;
38b101808f242719aea123c138883a0854cd0a8ad1mariagpuyolimport com.android.emergency.view.ViewInfoActivity;
394ca9a496b859f603103d7cdedcb51607ab9d36c5mariagpuyolimport com.android.internal.logging.MetricsLogger;
404ca9a496b859f603103d7cdedcb51607ab9d36c5mariagpuyolimport com.android.internal.logging.MetricsProto.MetricsEvent;
41de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol
42c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyolimport java.util.ArrayList;
43c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol
44cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan/**
45cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan * Activity for editing emergency information.
46cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan */
479be32659526009cdd4e2cd7c15e89bae5e2ef619mariagpuyolpublic class EditInfoActivity extends EmergencyTabActivity {
48124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    static final String TAG_WARNING_DIALOG = "warning_dialog";
49124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    static final String TAG_CLEAR_ALL_DIALOG = "clear_all_dialog";
50124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    static final String KEY_LAST_CONSENT_TIME_MS = "last_consent_time_ms";
51124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    static final long ONE_DAY_MS = 24 * 60 * 60 * 1000;
527ee3df3c714b614ab28cef094a28543fb5e01465mariagpuyol    private static final String ACTION_EDIT_EMERGENCY_CONTACTS =
537ee3df3c714b614ab28cef094a28543fb5e01465mariagpuyol            "android.emergency.EDIT_EMERGENCY_CONTACTS";
54de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol
55cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan    @Override
56cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan    protected void onCreate(Bundle savedInstanceState) {
57cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan        super.onCreate(savedInstanceState);
58b101808f242719aea123c138883a0854cd0a8ad1mariagpuyol        // Protect against b/28401242 by enabling ViewInfoActivity.
59b101808f242719aea123c138883a0854cd0a8ad1mariagpuyol        // We used to have code that disabled/enabled it and it could have been left in disabled
60b101808f242719aea123c138883a0854cd0a8ad1mariagpuyol        // state.
61b101808f242719aea123c138883a0854cd0a8ad1mariagpuyol        PackageManager pm = getPackageManager();
62b101808f242719aea123c138883a0854cd0a8ad1mariagpuyol        pm.setComponentEnabledSetting(new ComponentName(this, ViewInfoActivity.class),
63b101808f242719aea123c138883a0854cd0a8ad1mariagpuyol                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT, PackageManager.DONT_KILL_APP);
64232daafc102052b458a3d3847ff9290f73915395mariagpuyol
65b101808f242719aea123c138883a0854cd0a8ad1mariagpuyol        setContentView(R.layout.edit_activity_layout);
667ee3df3c714b614ab28cef094a28543fb5e01465mariagpuyol        if (ACTION_EDIT_EMERGENCY_CONTACTS.equals(getIntent().getAction())) {
677ee3df3c714b614ab28cef094a28543fb5e01465mariagpuyol            // Select emergency contacts tab
687ee3df3c714b614ab28cef094a28543fb5e01465mariagpuyol            selectTab(1);
697ee3df3c714b614ab28cef094a28543fb5e01465mariagpuyol        }
707ee3df3c714b614ab28cef094a28543fb5e01465mariagpuyol
718ab27ec8dd566cb0d4215439bdf5773ba2c239b1mariagpuyol        getWindow().addFlags(FLAG_DISMISS_KEYGUARD);
72ea078ed952308c070012a96218a800939986cf90mariagpuyol        MetricsLogger.visible(this, MetricsEvent.ACTION_EDIT_EMERGENCY_INFO);
73ea078ed952308c070012a96218a800939986cf90mariagpuyol    }
74cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan
75ea078ed952308c070012a96218a800939986cf90mariagpuyol    @Override
76124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    public void onResume() {
77124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        super.onResume();
78124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        long lastConsentTimeMs = PreferenceManager.getDefaultSharedPreferences(this)
79124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol                .getLong(KEY_LAST_CONSENT_TIME_MS, Long.MAX_VALUE);
80124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        long nowMs = System.currentTimeMillis();
81124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        // Check if at least one day has gone by since the user last gave his constant or if
82124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        // the last consent was in the future (e.g. if the user changed the date).
83124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        if (nowMs - lastConsentTimeMs > ONE_DAY_MS || lastConsentTimeMs > nowMs) {
84124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol            showWarningDialog();
85124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        }
86124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    }
87124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol
88124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    @Override
8988757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    public boolean onCreateOptionsMenu(Menu menu) {
9088757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        MenuInflater inflater = getMenuInflater();
9188757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        inflater.inflate(R.menu.edit_info_menu, menu);
9288757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        return true;
93ea078ed952308c070012a96218a800939986cf90mariagpuyol    }
949be32659526009cdd4e2cd7c15e89bae5e2ef619mariagpuyol
959be32659526009cdd4e2cd7c15e89bae5e2ef619mariagpuyol    @Override
9688757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    public boolean onOptionsItemSelected(MenuItem item) {
9788757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        switch (item.getItemId()) {
9888757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol            case R.id.action_clear_all:
9988757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                showClearAllDialog();
10088757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                return true;
10188757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        }
10288757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        return super.onOptionsItemSelected(item);
10388757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    }
10488757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol
10588757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    @Override
106c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol    protected ArrayList<Pair<String, Fragment>> setUpFragments() {
107c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol        // Always return the two fragments in edit mode.
108c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol        ArrayList<Pair<String, Fragment>> fragments = new ArrayList<>(2);
109c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol        fragments.add(Pair.create(getResources().getString(R.string.tab_title_info),
110c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol                EditEmergencyInfoFragment.newInstance()));
111c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol        fragments.add(Pair.create(getResources().getString(R.string.tab_title_contacts),
112c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol                EditEmergencyContactsFragment.newInstance()));
113c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol        return fragments;
114c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol    }
115c3f3a80735a541f91a09a2e50cf808349f92541bmariagpuyol
116de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol    private void showWarningDialog() {
117124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        final WarningDialogFragment previousFragment =
118124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol                (WarningDialogFragment) getFragmentManager()
119124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol                        .findFragmentByTag(EditInfoActivity.TAG_WARNING_DIALOG);
120124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol
121124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        if (previousFragment == null) {
122124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol            DialogFragment newFragment = WarningDialogFragment.newInstance();
123124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol            newFragment.setCancelable(false);
124124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol            newFragment.show(getFragmentManager(), TAG_WARNING_DIALOG);
125de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol        }
126de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol    }
127de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol
12888757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    private void showClearAllDialog() {
129124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        final ClearAllDialogFragment previousFragment =
130124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol                (ClearAllDialogFragment) getFragmentManager()
131124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol                        .findFragmentByTag(EditInfoActivity.TAG_CLEAR_ALL_DIALOG);
132124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol        if (previousFragment == null) {
133124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol            DialogFragment newFragment = ClearAllDialogFragment.newInstance();
134124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol            newFragment.show(getFragmentManager(), TAG_CLEAR_ALL_DIALOG);
13588757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        }
13688757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    }
137f0e8818031c5e1ceb40e4f22bd3bc27a2b6771camariagpuyol
138124a8fdf53a4815c0f57b6178e97322dc86d40a6mariagpuyol    private void onClearAllPreferences() {
1390556d6c6abe3add19e72d52ed58d39c087720527mariagpuyol        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
1400556d6c6abe3add19e72d52ed58d39c087720527mariagpuyol        for (String key : PreferenceKeys.KEYS_EDIT_EMERGENCY_INFO) {
1410556d6c6abe3add19e72d52ed58d39c087720527mariagpuyol            sharedPreferences.edit().remove(key).commit();
1420556d6c6abe3add19e72d52ed58d39c087720527mariagpuyol        }
1430556d6c6abe3add19e72d52ed58d39c087720527mariagpuyol        sharedPreferences.edit().remove(PreferenceKeys.KEY_EMERGENCY_CONTACTS).commit();
14488757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol
1450556d6c6abe3add19e72d52ed58d39c087720527mariagpuyol        // Refresh the UI.
14688757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        ArrayList<Pair<String, Fragment>> fragments = getFragments();
14788757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        EditEmergencyInfoFragment editEmergencyInfoFragment =
14888757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                (EditEmergencyInfoFragment) fragments.get(0).second;
14988757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        editEmergencyInfoFragment.reloadFromPreference();
15088757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        EditEmergencyContactsFragment editEmergencyContactsFragment =
15188757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                (EditEmergencyContactsFragment) fragments.get(1).second;
15288757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        editEmergencyContactsFragment.reloadFromPreference();
15388757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    }
15488757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol
155de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol    /**
156de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol     * Warning dialog shown to the user each time they go in to the edit info view. Using a {@link
157de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol     * DialogFragment} takes care of screen rotation issues.
158de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol     */
159de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol    public static class WarningDialogFragment extends DialogFragment {
160de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol        @Override
161de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol        public Dialog onCreateDialog(Bundle savedInstanceState) {
162de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol            Dialog dialog = new AlertDialog.Builder(getActivity())
163de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                    .setTitle(R.string.user_emergency_info_title)
164de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                    .setMessage(R.string.user_emergency_info_consent)
1653e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                    .setPositiveButton(R.string.emergency_info_continue,
1663e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                            new DialogInterface.OnClickListener() {
1673e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                                @Override
1683e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                                public void onClick(DialogInterface dialog, int which) {
1693e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                                    PreferenceManager.getDefaultSharedPreferences(
1703e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                                            getActivity()).edit()
1713e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                                            .putLong(KEY_LAST_CONSENT_TIME_MS,
1723e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                                                    System.currentTimeMillis()).apply();
1733e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                                }
1743e9a352c46d82c10a6ba906cfba03e9efcda1c98mariagpuyol                            })
175de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                    .setNegativeButton(android.R.string.cancel,
176de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                            new DialogInterface.OnClickListener() {
177de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                                @Override
178de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                                public void onClick(DialogInterface dialog, int which) {
179de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                                    getActivity().finish();
180de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                                }
181de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                            })
182de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol                    .create();
183de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol            dialog.setCanceledOnTouchOutside(false);
184de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol            return dialog;
185de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol        }
186de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol
187de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol        public static DialogFragment newInstance() {
188de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol            return new WarningDialogFragment();
189de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol        }
190de7a405217ad397057dfcc8c386330c73339b31dmariagpuyol    }
19188757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol
19288757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    /**
19388757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol     * Dialog shown to the user when they tap on the CLEAR ALL menu item. Using a {@link
19488757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol     * DialogFragment} takes care of screen rotation issues.
19588757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol     */
19688757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    public static class ClearAllDialogFragment extends DialogFragment {
19788757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol
19888757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        @Override
19988757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        public Dialog onCreateDialog(Bundle savedInstanceState) {
20088757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol            Dialog dialog = new AlertDialog.Builder(getActivity())
20188757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                    .setMessage(R.string.clear_all_message)
20288757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                    .setPositiveButton(R.string.clear, new DialogInterface.OnClickListener() {
20388757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                        @Override
20488757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                        public void onClick(DialogInterface dialog, int which) {
20588757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                            ((EditInfoActivity) getActivity()).onClearAllPreferences();
20688757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                        }
20788757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                    })
20888757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                    .setNegativeButton(android.R.string.cancel, null)
20988757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol                    .create();
21088757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol            return dialog;
21188757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        }
21288757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol
21388757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        public static DialogFragment newInstance() {
21488757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol            return new ClearAllDialogFragment();
21588757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol        }
21688757784ed5a3f0b1cf386cd05f8a440ebd46e5bmariagpuyol    }
217cdb6c148d185e06be10288e7dd7896ab13278e5fAkshay Kannan}
218