diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 28a6ea731..c6143ecdf 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -157,7 +157,8 @@ + + + + + + + diff --git a/res/menu/account_settings_add_account_option.xml b/res/menu/account_settings_add_account_option.xml index dbfe765f1..e93a17b67 100644 --- a/res/menu/account_settings_add_account_option.xml +++ b/res/menu/account_settings_add_account_option.xml @@ -18,7 +18,6 @@ diff --git a/res/values/strings.xml b/res/values/strings.xml index b332a6a14..629bb0e79 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -54,6 +54,8 @@ + + @@ -936,8 +938,6 @@ save attachment. The username or password for %s is incorrect. Update them now? - - General settings Default account @@ -984,6 +984,8 @@ save attachment. Append text to messages you send Notification settings + + Data usage Edit quick response @@ -1102,9 +1104,12 @@ save attachment. from %2$s + + Settings + - Email Preferences + General Preferences Application Preferences diff --git a/res/xml/account_settings_preferences.xml b/res/xml/account_settings_preferences.xml index f1a82b47d..6a3db204c 100644 --- a/res/xml/account_settings_preferences.xml +++ b/res/xml/account_settings_preferences.xml @@ -16,62 +16,74 @@ + + + + + + + + + + - - - - - - - - + android:key="data_usage" + android:title="@string/account_settings_data_usage"> - + - + + + - - - - mGeneratedHeaders; - private boolean mResumed; // Async Tasks private LoadAccountListTask mLoadAccountListTask; @@ -194,18 +193,6 @@ public class AccountSettings extends PreferenceActivity { public void onResume() { super.onResume(); updateAccounts(); - mResumed = true; - - // When we're resuming, enable/disable the add account button - if (hasHeaders()) { - invalidateOptionsMenu(); - } - } - - @Override - public void onPause() { - super.onPause(); - mResumed = false; } @Override @@ -325,8 +312,8 @@ public class AccountSettings extends PreferenceActivity { */ private boolean shouldShowNewAccount() { // If in single pane mode, only add accounts at top level - if (!isMultiPane()) { - if (!hasHeaders()) return false; + if (!onIsMultiPane()) { + return hasHeaders(); } else { // If in multi pane mode, only add accounts when showing a top level fragment // Note: null is OK; This is the case when we first launch the activity @@ -559,9 +546,7 @@ public class AccountSettings extends PreferenceActivity { mCurrentFragment = f; // When we're changing fragments, enable/disable the add account button - if (mResumed && hasHeaders()) { - invalidateOptionsMenu(); - } + invalidateOptionsMenu(); } /** @@ -718,7 +703,7 @@ public class AccountSettings extends PreferenceActivity { // Then update the UI as appropriate: // If single pane, return to the header list. If multi, rebuild header list - if (isMultiPane()) { + if (onIsMultiPane()) { Header prefsHeader = getAppPreferencesHeader(); this.switchToHeader(prefsHeader.fragment, prefsHeader.fragmentArguments); mDeletingAccountId = account.mId; diff --git a/src/com/android/email/activity/setup/AccountSettingsFragment.java b/src/com/android/email/activity/setup/AccountSettingsFragment.java index 8582bf39b..5f8f18992 100644 --- a/src/com/android/email/activity/setup/AccountSettingsFragment.java +++ b/src/com/android/email/activity/setup/AccountSettingsFragment.java @@ -67,7 +67,6 @@ public class AccountSettingsFragment extends PreferenceFragment { private static final String BUNDLE_KEY_ACCOUNT_ID = "AccountSettingsFragment.AccountId"; private static final String BUNDLE_KEY_ACCOUNT_EMAIL = "AccountSettingsFragment.Email"; - private static final String PREFERENCE_CATEGORY_TOP = "account_settings"; public static final String PREFERENCE_DESCRIPTION = "account_description"; private static final String PREFERENCE_NAME = "account_name"; private static final String PREFERENCE_SIGNATURE = "account_signature"; @@ -76,6 +75,7 @@ public class AccountSettingsFragment extends PreferenceFragment { private static final String PREFERENCE_BACKGROUND_ATTACHMENTS = "account_background_attachments"; private static final String PREFERENCE_DEFAULT = "account_default"; + private static final String PREFERENCE_CATEGORY_DATA_USAGE = "data_usage"; private static final String PREFERENCE_CATEGORY_NOTIFICATIONS = "account_notifications"; private static final String PREFERENCE_NOTIFY = "account_notify"; private static final String PREFERENCE_VIBRATE_WHEN = "account_settings_vibrate_when"; @@ -360,10 +360,6 @@ public class AccountSettingsFragment extends PreferenceFragment { // Once loaded the data is ready to be saved, as well mSaveOnExit = false; - PreferenceCategory topCategory = - (PreferenceCategory) findPreference(PREFERENCE_CATEGORY_TOP); - topCategory.setTitle(mContext.getString(R.string.account_settings_title_fmt)); - mAccountDescription = (EditTextPreference) findPreference(PREFERENCE_DESCRIPTION); mAccountDescription.setSummary(mAccount.getDisplayName()); mAccountDescription.setText(mAccount.getDisplayName()); @@ -452,6 +448,9 @@ public class AccountSettingsFragment extends PreferenceFragment { }); // Add check window preference + PreferenceCategory dataUsageCategory = + (PreferenceCategory) findPreference(PREFERENCE_CATEGORY_DATA_USAGE); + mSyncWindow = null; if (HostAuth.SCHEME_EAS.equals(protocol)) { mSyncWindow = new ListPreference(mContext); @@ -460,7 +459,9 @@ public class AccountSettingsFragment extends PreferenceFragment { mSyncWindow.setEntryValues(R.array.account_settings_mail_window_values); mSyncWindow.setValue(String.valueOf(mAccount.getSyncLookback())); mSyncWindow.setSummary(mSyncWindow.getEntry()); - mSyncWindow.setOrder(5); + + // Must correspond to the hole in the XML file that's reserved. + mSyncWindow.setOrder(2); mSyncWindow.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { public boolean onPreferenceChange(Preference preference, Object newValue) { final String summary = newValue.toString(); @@ -471,14 +472,14 @@ public class AccountSettingsFragment extends PreferenceFragment { return false; } }); - topCategory.addPreference(mSyncWindow); + dataUsageCategory.addPreference(mSyncWindow); } // Show "background attachments" for IMAP & EAS - hide it for POP3. mAccountBackgroundAttachments = (CheckBoxPreference) findPreference(PREFERENCE_BACKGROUND_ATTACHMENTS); if (HostAuth.SCHEME_POP3.equals(mAccount.mHostAuthRecv.mProtocol)) { - topCategory.removePreference(mAccountBackgroundAttachments); + dataUsageCategory.removePreference(mAccountBackgroundAttachments); } else { mAccountBackgroundAttachments.setChecked( 0 != (mAccount.getFlags() & Account.FLAGS_BACKGROUND_ATTACHMENTS)); @@ -558,7 +559,7 @@ public class AccountSettingsFragment extends PreferenceFragment { mSyncContacts = (CheckBoxPreference) findPreference(PREFERENCE_SYNC_CONTACTS); mSyncCalendar = (CheckBoxPreference) findPreference(PREFERENCE_SYNC_CALENDAR); mSyncEmail = (CheckBoxPreference) findPreference(PREFERENCE_SYNC_EMAIL); - if (mAccount.mHostAuthRecv.mProtocol.equals("eas")) { + if (mAccount.mHostAuthRecv.mProtocol.equals(HostAuth.SCHEME_EAS)) { android.accounts.Account acct = new android.accounts.Account(mAccount.mEmailAddress, AccountManagerTypes.TYPE_EXCHANGE); mSyncContacts.setChecked(ContentResolver @@ -571,11 +572,9 @@ public class AccountSettingsFragment extends PreferenceFragment { .getSyncAutomatically(acct, EmailContent.AUTHORITY)); mSyncEmail.setOnPreferenceChangeListener(mPreferenceChangeListener); } else { - PreferenceCategory serverCategory = (PreferenceCategory) findPreference( - PREFERENCE_CATEGORY_SERVER); - serverCategory.removePreference(mSyncContacts); - serverCategory.removePreference(mSyncCalendar); - serverCategory.removePreference(mSyncEmail); + dataUsageCategory.removePreference(mSyncContacts); + dataUsageCategory.removePreference(mSyncCalendar); + dataUsageCategory.removePreference(mSyncEmail); } // Temporary home for delete account