PrivacySettings.java revision 2c53933e8d35ba50d0791a29e46fa3156e9cab7c
1e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani/* 2e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * Copyright (C) 2009 The Android Open Source Project 3e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * 4e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * Licensed under the Apache License, Version 2.0 (the "License"); 5e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * you may not use this file except in compliance with the License. 6e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * You may obtain a copy of the License at 7e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * 8e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * http://www.apache.org/licenses/LICENSE-2.0 9e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * 10e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * Unless required by applicable law or agreed to in writing, software 11e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * distributed under the License is distributed on an "AS IS" BASIS, 12e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * See the License for the specific language governing permissions and 14e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * limitations under the License. 15e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani */ 16e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 17e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasanipackage com.android.settings; 18e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 19e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.app.AlertDialog; 20e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.app.Dialog; 21616c3ee12a65696f43e62931631ba092884ad3fdChristopher Tateimport android.app.backup.IBackupManager; 22e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.content.ContentResolver; 23e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.content.Context; 24e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.content.DialogInterface; 25df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tateimport android.content.Intent; 26e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.os.Bundle; 27e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.os.RemoteException; 28e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.os.ServiceManager; 292c53933e8d35ba50d0791a29e46fa3156e9cab7cJulia Reynoldsimport android.os.UserManager; 30e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.preference.CheckBoxPreference; 31e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.preference.Preference; 32e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.preference.PreferenceScreen; 33e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasaniimport android.provider.Settings; 34e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 35e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani/** 36e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * Gesture lock pattern settings. 37e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani */ 38d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasanipublic class PrivacySettings extends SettingsPreferenceFragment implements 3930e4d965121ae7f049f090862a5c246515a0bf34Bjorn Bringert DialogInterface.OnClickListener { 40e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 41e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani // Vendor specific 42ecfeaffdfa19bea836f24fd399376825c377eaa9Bjorn Bringert private static final String GSETTINGS_PROVIDER = "com.google.settings"; 43a5a67306a4c7a066d97802333a473be94661e091Christopher Tate private static final String BACKUP_CATEGORY = "backup_category"; 44aa1f8aeeea1c27fe88270cc8b5df970d9f292385Kenny Root private static final String BACKUP_DATA = "backup_data"; 45a5a67306a4c7a066d97802333a473be94661e091Christopher Tate private static final String AUTO_RESTORE = "auto_restore"; 4658e62926b9ceca72275b657b2fa7b9e54fc1a931Christopher Tate private static final String CONFIGURE_ACCOUNT = "configure_account"; 472c53933e8d35ba50d0791a29e46fa3156e9cab7cJulia Reynolds private static final String PERSONAL_DATA_CATEGORY = "personal_data_category"; 48df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate private IBackupManager mBackupManager; 49e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani private CheckBoxPreference mBackup; 50a5a67306a4c7a066d97802333a473be94661e091Christopher Tate private CheckBoxPreference mAutoRestore; 51e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani private Dialog mConfirmDialog; 52df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate private PreferenceScreen mConfigure; 53e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 54e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani private static final int DIALOG_ERASE_BACKUP = 2; 5570bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio private int mDialogType; 56e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 57e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani @Override 58d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani public void onCreate(Bundle savedInstanceState) { 59e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani super.onCreate(savedInstanceState); 60e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani addPreferencesFromResource(R.xml.privacy_settings); 61a5a67306a4c7a066d97802333a473be94661e091Christopher Tate final PreferenceScreen screen = getPreferenceScreen(); 62e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 63df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate mBackupManager = IBackupManager.Stub.asInterface( 64df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate ServiceManager.getService(Context.BACKUP_SERVICE)); 65df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate 66aa1f8aeeea1c27fe88270cc8b5df970d9f292385Kenny Root mBackup = (CheckBoxPreference) screen.findPreference(BACKUP_DATA); 67a5a67306a4c7a066d97802333a473be94661e091Christopher Tate mAutoRestore = (CheckBoxPreference) screen.findPreference(AUTO_RESTORE); 6858e62926b9ceca72275b657b2fa7b9e54fc1a931Christopher Tate mConfigure = (PreferenceScreen) screen.findPreference(CONFIGURE_ACCOUNT); 69e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 702c53933e8d35ba50d0791a29e46fa3156e9cab7cJulia Reynolds if (UserManager.get(getActivity()).hasUserRestriction( 712c53933e8d35ba50d0791a29e46fa3156e9cab7cJulia Reynolds UserManager.DISALLOW_FACTORY_RESET)) { 722c53933e8d35ba50d0791a29e46fa3156e9cab7cJulia Reynolds screen.removePreference(findPreference(PERSONAL_DATA_CATEGORY)); 732c53933e8d35ba50d0791a29e46fa3156e9cab7cJulia Reynolds } 742c53933e8d35ba50d0791a29e46fa3156e9cab7cJulia Reynolds 75e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani // Vendor specific 76d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani if (getActivity().getPackageManager(). 77d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani resolveContentProvider(GSETTINGS_PROVIDER, 0) == null) { 78a5a67306a4c7a066d97802333a473be94661e091Christopher Tate screen.removePreference(findPreference(BACKUP_CATEGORY)); 79e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 80e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani updateToggles(); 81e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 82e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 83e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani @Override 8470bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio public void onResume() { 8570bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio super.onResume(); 8670bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio 8770bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio // Refresh UI 8870bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio updateToggles(); 8970bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio } 9070bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio 9170bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio @Override 92e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani public void onStop() { 93e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani if (mConfirmDialog != null && mConfirmDialog.isShowing()) { 94e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mConfirmDialog.dismiss(); 95e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 96e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mConfirmDialog = null; 97e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mDialogType = 0; 98e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani super.onStop(); 99e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 100e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 101e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani @Override 102e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, 103e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani Preference preference) { 10430e4d965121ae7f049f090862a5c246515a0bf34Bjorn Bringert if (preference == mBackup) { 105e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani if (!mBackup.isChecked()) { 106e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani showEraseBackupDialog(); 107e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } else { 108e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani setBackupEnabled(true); 109e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 110a5a67306a4c7a066d97802333a473be94661e091Christopher Tate } else if (preference == mAutoRestore) { 111fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate boolean curState = mAutoRestore.isChecked(); 112fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate try { 113fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mBackupManager.setAutoRestore(curState); 114fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate } catch (RemoteException e) { 115fac0ea781f0c99a446ab6588006b2ac0330cb774Christopher Tate mAutoRestore.setChecked(!curState); 116a5a67306a4c7a066d97802333a473be94661e091Christopher Tate } 117e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 118b14e1e04939ca610fd5f2439f879265450b0a6cdAmith Yamasani return super.onPreferenceTreeClick(preferenceScreen, preference); 119e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 120e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 121e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani private void showEraseBackupDialog() { 122e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mBackup.setChecked(true); 123e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 124e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mDialogType = DIALOG_ERASE_BACKUP; 125e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani CharSequence msg = getResources().getText(R.string.backup_erase_dialog_message); 126d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani // TODO: DialogFragment? 127d79934731c8d33f6fc63b21c120b9ffba5d06f54Amith Yamasani mConfirmDialog = new AlertDialog.Builder(getActivity()).setMessage(msg) 128e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani .setTitle(R.string.backup_erase_dialog_title) 129e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani .setPositiveButton(android.R.string.ok, this) 130e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani .setNegativeButton(android.R.string.cancel, this) 131e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani .show(); 132e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 133e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 134e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani /* 135e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * Creates toggles for each available location provider 136e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani */ 137e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani private void updateToggles() { 138e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani ContentResolver res = getContentResolver(); 139a5a67306a4c7a066d97802333a473be94661e091Christopher Tate 140df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate boolean backupEnabled = false; 141df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate Intent configIntent = null; 142df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate String configSummary = null; 143df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate try { 144df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate backupEnabled = mBackupManager.isBackupEnabled(); 145df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate String transport = mBackupManager.getCurrentTransport(); 146df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate configIntent = mBackupManager.getConfigurationIntent(transport); 147df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate configSummary = mBackupManager.getDestinationString(transport); 148df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate } catch (RemoteException e) { 149df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate // leave it 'false' and disable the UI; there's no backup manager 150df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate mBackup.setEnabled(false); 151df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate } 152a5a67306a4c7a066d97802333a473be94661e091Christopher Tate mBackup.setChecked(backupEnabled); 153a5a67306a4c7a066d97802333a473be94661e091Christopher Tate 154a5a67306a4c7a066d97802333a473be94661e091Christopher Tate mAutoRestore.setChecked(Settings.Secure.getInt(res, 155c99cffbffcf38f0e6bf10c9ff541b1bb5180316eChristopher Tate Settings.Secure.BACKUP_AUTO_RESTORE, 1) == 1); 156a5a67306a4c7a066d97802333a473be94661e091Christopher Tate mAutoRestore.setEnabled(backupEnabled); 157df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate 15870bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio final boolean configureEnabled = (configIntent != null) && backupEnabled; 15970bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio mConfigure.setEnabled(configureEnabled); 160df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate mConfigure.setIntent(configIntent); 16170bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio setConfigureSummary(configSummary); 1624f33878f208e729cf96b708c57686555d2493129Christopher Tate} 16370bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio 16470bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio private void setConfigureSummary(String summary) { 16570bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio if (summary != null) { 16670bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio mConfigure.setSummary(summary); 167df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate } else { 16858e62926b9ceca72275b657b2fa7b9e54fc1a931Christopher Tate mConfigure.setSummary(R.string.backup_configure_account_default_summary); 169df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate } 170e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 171e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 17270bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio private void updateConfigureSummary() { 17370bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio try { 17470bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio String transport = mBackupManager.getCurrentTransport(); 17570bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio String summary = mBackupManager.getDestinationString(transport); 17670bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio setConfigureSummary(summary); 17770bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio } catch (RemoteException e) { 17870bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio // Not much we can do here 17970bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio } 18070bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio } 18170bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio 182e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani public void onClick(DialogInterface dialog, int which) { 183e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani if (which == DialogInterface.BUTTON_POSITIVE) { 184e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani //updateProviders(); 18530e4d965121ae7f049f090862a5c246515a0bf34Bjorn Bringert if (mDialogType == DIALOG_ERASE_BACKUP) { 186e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani setBackupEnabled(false); 18770bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio updateConfigureSummary(); 188e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 189e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 190e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mDialogType = 0; 191e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 192e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani 193e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani /** 194e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * Informs the BackupManager of a change in backup state - if backup is disabled, 195e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * the data on the server will be erased. 196e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani * @param enable whether to enable backup 197e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani */ 198e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani private void setBackupEnabled(boolean enable) { 199df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate if (mBackupManager != null) { 200e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani try { 201df6a7e55ccffd4a8b17780ee07b9f11988b98aaaChristopher Tate mBackupManager.setBackupEnabled(enable); 202e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } catch (RemoteException e) { 203e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mBackup.setChecked(!enable); 204a5a67306a4c7a066d97802333a473be94661e091Christopher Tate mAutoRestore.setEnabled(!enable); 205e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani return; 206e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 207e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 208e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani mBackup.setChecked(enable); 209a5a67306a4c7a066d97802333a473be94661e091Christopher Tate mAutoRestore.setEnabled(enable); 21070bc797a926abdf14bc0d34d9b49a066663fbca7Fabrice Di Meglio mConfigure.setEnabled(enable); 211e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani } 212b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani 213b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani @Override 214b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani protected int getHelpResource() { 215b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani return R.string.help_url_backup_reset; 216b0b37ae21c172491bc170659b5f429601858ddc1Amith Yamasani } 217e65c943f974966e21c6f18dc9a95107ea1f07631Amith Yamasani} 218