Merge "Focus the correct field when composing messages."
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 675099d..c135e5c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -16,6 +16,12 @@
limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Names of packages and authorities that are common to all apps
+ and read from resources -->
+
+ <!-- Name of the search suggestions authority that looks up recent suggestions. This
+ needs to be modified in AndroidManifest.xml and res/xml/searchable.xml as well. -->
+ <string name="suggestions_authority" translatable="false">com.android.mail.suggestionsprovider</string>
<!-- Layout tests strings -->
<string name="mock_content_provider" translatable="false">Mock Content Provider</string>
diff --git a/src/com/android/mail/providers/SuggestionsProvider.java b/src/com/android/mail/providers/SuggestionsProvider.java
index 2a0d4ba..a887dc3 100644
--- a/src/com/android/mail/providers/SuggestionsProvider.java
+++ b/src/com/android/mail/providers/SuggestionsProvider.java
@@ -74,7 +74,7 @@
@Override
public boolean onCreate() {
- final String authority = MailAppProvider.getInstance().getSuggestionAuthority();
+ final String authority = getContext().getString(R.string.suggestions_authority);
setupSuggestions(authority, MODE);
super.onCreate();
return true;
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index 4d57837..3b03ea5 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -362,8 +362,13 @@
// Only restart the loader if the defaultInboxUri is not the same as
// the folder we are already loading.
final boolean changed = !oldUri.equals(newUri);
- if (settings != null && settings.defaultInbox != null
- && (mFolder == null || mFolder.type == UIProvider.FolderType.INBOX) && changed) {
+ if (settings != null
+ && settings.defaultInbox != null
+ && (mFolder == null
+ // we really only want CHANGES to the inbox setting, not just
+ // the first setting of it.
+ || (mFolder.type == UIProvider.FolderType.INBOX && !oldUri.equals(Uri.EMPTY))
+ && changed)) {
loadAccountInbox();
}
}
@@ -755,8 +760,8 @@
*/
protected void restoreState(Bundle savedState) {
final Intent intent = mActivity.getIntent();
+ boolean handled = false;
if (savedState != null) {
- boolean handled = false;
if (savedState.containsKey(SAVED_ACCOUNT)) {
mAccount = ((Account) savedState.getParcelable(SAVED_ACCOUNT));
mActionBarView.setAccount(mAccount);
@@ -773,34 +778,33 @@
showConversation(mCurrentConversation);
handled = true;
}
- if (!handled) {
- // Nothing was saved; just load the account inbox.
- loadAccountInbox();
- }
- restartOptionalLoader(LOADER_ACCOUNT_SETTINGS, null /* args */);
} else if (intent != null) {
if (Intent.ACTION_VIEW.equals(intent.getAction())) {
if (intent.hasExtra(Utils.EXTRA_ACCOUNT)) {
mAccount = ((Account) intent.getParcelableExtra(Utils.EXTRA_ACCOUNT));
- mActionBarView.setAccount(mAccount);
- restartOptionalLoader(LOADER_ACCOUNT_SETTINGS, null /* args */);
- mActivity.invalidateOptionsMenu();
} else if (intent.hasExtra(Utils.EXTRA_ACCOUNT_STRING)) {
mAccount = Account.newinstance(intent
.getStringExtra(Utils.EXTRA_ACCOUNT_STRING));
+ }
+ if (mAccount != null) {
mActionBarView.setAccount(mAccount);
- restartOptionalLoader(LOADER_ACCOUNT_SETTINGS, null /* args */);
mActivity.invalidateOptionsMenu();
}
+ Folder folder = null;
if (intent.hasExtra(Utils.EXTRA_FOLDER)) {
// Open the folder.
LogUtils.d(LOG_TAG, "SHOW THE FOLDER at %s",
intent.getParcelableExtra(Utils.EXTRA_FOLDER));
- onFolderChanged((Folder) intent.getParcelableExtra(Utils.EXTRA_FOLDER));
+ folder = (Folder) intent.getParcelableExtra(Utils.EXTRA_FOLDER);
+
} else if (intent.hasExtra(Utils.EXTRA_FOLDER_STRING)) {
// Open the folder.
- onFolderChanged(new Folder(intent.getStringExtra(Utils.EXTRA_FOLDER_STRING)));
+ folder = new Folder(intent.getStringExtra(Utils.EXTRA_FOLDER_STRING));
+ }
+ if (folder != null) {
+ onFolderChanged(folder);
+ handled = true;
}
if (intent.hasExtra(Utils.EXTRA_CONVERSATION)) {
@@ -810,7 +814,14 @@
setCurrentConversation((Conversation) intent
.getParcelableExtra(Utils.EXTRA_CONVERSATION));
showConversation(mCurrentConversation);
+ handled = true;
}
+
+ if (!handled) {
+ // Nothing was saved; just load the account inbox.
+ loadAccountInbox();
+ }
+ restartOptionalLoader(LOADER_ACCOUNT_SETTINGS, null /* args */);
} else if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
// Save this search query for future suggestions.
final String query = intent.getStringExtra(SearchManager.QUERY);