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