Commit 3dd42c06 authored by Ted Choc's avatar Ted Choc Committed by Commit Bot

Fix blank search engine promo on the FRE.

By default the view pager only keeps one page to either
side of the current page, which results in the FRE pages
being regenerated.  This causes the search promo to become
invalid as it has been shown and the user successfully choose
an option.  As a two step mitigation, we up the number of pages
kept to be able to support the current FRE.  Then we also add
additional logic that will just skip the page if it is somehow
able to get into the invalid state again.

BUG=740897

Change-Id: I889900ce20d06248ca95765c54dbc84a60be4f5e
Reviewed-on: https://chromium-review.googlesource.com/567420Reviewed-by: default avatarYusuf Ozuysal <yusufo@chromium.org>
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487136}
parent a3727f9e
...@@ -11,6 +11,7 @@ import android.view.View; ...@@ -11,6 +11,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import org.chromium.base.ThreadUtils;
import org.chromium.base.metrics.RecordUserAction; import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.R; import org.chromium.chrome.R;
import org.chromium.chrome.browser.locale.DefaultSearchEngineDialogHelper; import org.chromium.chrome.browser.locale.DefaultSearchEngineDialogHelper;
...@@ -43,14 +44,16 @@ public class DefaultSearchEngineFirstRunFragment extends FirstRunPage { ...@@ -43,14 +44,16 @@ public class DefaultSearchEngineFirstRunFragment extends FirstRunPage {
assert TemplateUrlService.getInstance().isLoaded(); assert TemplateUrlService.getInstance().isLoaded();
mSearchEnginePromoDialoType = LocaleManager.getInstance().getSearchEnginePromoShowType(); mSearchEnginePromoDialoType = LocaleManager.getInstance().getSearchEnginePromoShowType();
Runnable dismissRunnable = new Runnable() { if (mSearchEnginePromoDialoType != LocaleManager.SEARCH_ENGINE_PROMO_DONT_SHOW) {
@Override Runnable dismissRunnable = new Runnable() {
public void run() { @Override
advanceToNextPage(); public void run() {
} advanceToNextPage();
}; }
new DefaultSearchEngineDialogHelper( };
mSearchEnginePromoDialoType, mEngineLayout, mButton, dismissRunnable); new DefaultSearchEngineDialogHelper(
mSearchEnginePromoDialoType, mEngineLayout, mButton, dismissRunnable);
}
return rootView; return rootView;
} }
...@@ -58,7 +61,19 @@ public class DefaultSearchEngineFirstRunFragment extends FirstRunPage { ...@@ -58,7 +61,19 @@ public class DefaultSearchEngineFirstRunFragment extends FirstRunPage {
@Override @Override
public void setUserVisibleHint(boolean isVisibleToUser) { public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser); super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) recordShown();
if (isVisibleToUser) {
if (mSearchEnginePromoDialoType == LocaleManager.SEARCH_ENGINE_PROMO_DONT_SHOW) {
ThreadUtils.postOnUiThread(new Runnable() {
@Override
public void run() {
advanceToNextPage();
}
});
}
recordShown();
}
} }
private void recordShown() { private void recordShown() {
......
...@@ -239,6 +239,7 @@ public class FirstRunActivity extends AsyncInitializationActivity implements Fir ...@@ -239,6 +239,7 @@ public class FirstRunActivity extends AsyncInitializationActivity implements Fir
mPager = new FirstRunViewPager(this); mPager = new FirstRunViewPager(this);
mPager.setId(R.id.fre_pager); mPager.setId(R.id.fre_pager);
mPager.setOffscreenPageLimit(3);
setContentView(mPager); setContentView(mPager);
mFirstRunFlowSequencer = new FirstRunFlowSequencer(this, mFreProperties) { mFirstRunFlowSequencer = new FirstRunFlowSequencer(this, mFreProperties) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment