Merge "Don't reset message view when becoming active again."

This commit is contained in:
Makoto Onuki 2010-11-22 10:42:18 -08:00 committed by Android (Google) Code Review
commit 9cb0ad3cd6
3 changed files with 31 additions and 20 deletions

View File

@ -88,7 +88,7 @@ public class MessageFileViewFragment extends MessageViewFragmentBase {
synchronized (mLock) { synchronized (mLock) {
mFileEmailUri = fileEmailUri; mFileEmailUri = fileEmailUri;
} }
openMessageIfStarted(); loadMessageIfResumed();
} }
@Override @Override

View File

@ -220,7 +220,7 @@ public class MessageViewFragment extends MessageViewFragmentBase {
synchronized (mLock) { synchronized (mLock) {
mMessageIdToOpen = messageId; mMessageIdToOpen = messageId;
} }
openMessageIfStarted(); loadMessageIfResumed();
} }
@Override @Override

View File

@ -147,7 +147,8 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
// contains the HTML content as set in WebView. // contains the HTML content as set in WebView.
private String mHtmlTextWebView; private String mHtmlTextWebView;
private boolean mStarted; private boolean mResumed;
private boolean mLoadWhenResumed;
private boolean mIsMessageLoadedForTest; private boolean mIsMessageLoadedForTest;
@ -347,10 +348,6 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
Log.d(Email.LOG_TAG, "MessageViewFragment onStart"); Log.d(Email.LOG_TAG, "MessageViewFragment onStart");
} }
super.onStart(); super.onStart();
mStarted = true;
if (isMessageSpecified()) {
openMessageIfStarted();
}
} }
@Override @Override
@ -360,17 +357,17 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
} }
super.onResume(); super.onResume();
// Dynamic configuration of WebView mResumed = true;
WebSettings.TextSize textZoom; if (isMessageSpecified()) {
switch (Preferences.getPreferences(mContext).getTextZoom()) { if (mLoadWhenResumed) {
case Preferences.TEXT_ZOOM_TINY: textZoom = WebSettings.TextSize.SMALLEST; break; loadMessageIfResumed();
case Preferences.TEXT_ZOOM_SMALL: textZoom = WebSettings.TextSize.SMALLER; break; } else {
case Preferences.TEXT_ZOOM_NORMAL: textZoom = WebSettings.TextSize.NORMAL; break; // This means, the user comes back from other (full-screen) activities.
case Preferences.TEXT_ZOOM_LARGE: textZoom = WebSettings.TextSize.LARGER; break; // In this case we've already loaded the content, so don't load it again,
case Preferences.TEXT_ZOOM_HUGE: textZoom = WebSettings.TextSize.LARGEST; break; // which results in resetting all view state, including WebView zoom/pan
default: textZoom = WebSettings.TextSize.NORMAL; break; // and the current tab.
}
} }
mMessageContentView.getSettings().setTextSize(textZoom);
} }
@Override @Override
@ -378,6 +375,7 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
if (Email.DEBUG_LIFECYCLE && Email.DEBUG) { if (Email.DEBUG_LIFECYCLE && Email.DEBUG) {
Log.d(Email.LOG_TAG, "MessageViewFragment onPause"); Log.d(Email.LOG_TAG, "MessageViewFragment onPause");
} }
mResumed = false;
super.onPause(); super.onPause();
} }
@ -386,7 +384,6 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
if (Email.DEBUG_LIFECYCLE && Email.DEBUG) { if (Email.DEBUG_LIFECYCLE && Email.DEBUG) {
Log.d(Email.LOG_TAG, "MessageViewFragment onStop"); Log.d(Email.LOG_TAG, "MessageViewFragment onStop");
} }
mStarted = false;
super.onStop(); super.onStop();
} }
@ -464,10 +461,12 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
resetView(); resetView();
} }
protected final void openMessageIfStarted() { protected final void loadMessageIfResumed() {
if (!mStarted) { if (!mResumed) {
mLoadWhenResumed = true;
return; return;
} }
mLoadWhenResumed = false;
cancelAllTasks(); cancelAllTasks();
resetView(); resetView();
mLoadMessageTask = new LoadMessageTask(true); mLoadMessageTask = new LoadMessageTask(true);
@ -481,6 +480,18 @@ public abstract class MessageViewFragmentBase extends Fragment implements View.O
mMessageContentView.getSettings().setBlockNetworkLoads(true); mMessageContentView.getSettings().setBlockNetworkLoads(true);
mMessageContentView.scrollTo(0, 0); mMessageContentView.scrollTo(0, 0);
mMessageContentView.loadUrl("file:///android_asset/empty.html"); mMessageContentView.loadUrl("file:///android_asset/empty.html");
// Dynamic configuration of WebView
WebSettings.TextSize textZoom;
switch (Preferences.getPreferences(mContext).getTextZoom()) {
case Preferences.TEXT_ZOOM_TINY: textZoom = WebSettings.TextSize.SMALLEST; break;
case Preferences.TEXT_ZOOM_SMALL: textZoom = WebSettings.TextSize.SMALLER; break;
case Preferences.TEXT_ZOOM_NORMAL: textZoom = WebSettings.TextSize.NORMAL; break;
case Preferences.TEXT_ZOOM_LARGE: textZoom = WebSettings.TextSize.LARGER; break;
case Preferences.TEXT_ZOOM_HUGE: textZoom = WebSettings.TextSize.LARGEST; break;
default: textZoom = WebSettings.TextSize.NORMAL; break;
}
mMessageContentView.getSettings().setTextSize(textZoom);
} }
mAttachmentsScroll.scrollTo(0, 0); mAttachmentsScroll.scrollTo(0, 0);
mInviteScroll.scrollTo(0, 0); mInviteScroll.scrollTo(0, 0);