From be575b70a0619e5e2fcfd9cdef25cc7b46de3f77 Mon Sep 17 00:00:00 2001 From: "Carsten \"Tomcat\" Book" Date: Mon, 24 Nov 2014 16:43:18 +0100 Subject: [PATCH] Backed out changeset 4c73bc9c874e (bug 1100904) --- mobile/android/base/BrowserApp.java | 4 --- mobile/android/base/home/DynamicPanel.java | 6 +++++ mobile/android/base/home/HomePager.java | 29 ++++++++++++++-------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/mobile/android/base/BrowserApp.java b/mobile/android/base/BrowserApp.java index f936467ab5b9..2593bde3eab4 100644 --- a/mobile/android/base/BrowserApp.java +++ b/mobile/android/base/BrowserApp.java @@ -7,7 +7,6 @@ package org.mozilla.gecko; import java.io.File; import java.io.FileNotFoundException; -import java.lang.Override; import java.lang.reflect.Method; import java.net.URLEncoder; import java.util.EnumSet; @@ -25,7 +24,6 @@ import org.mozilla.gecko.DynamicToolbar.VisibilityTransition; import org.mozilla.gecko.GeckoProfileDirectories.NoMozillaDirectoryException; import org.mozilla.gecko.Tabs.TabEvents; import org.mozilla.gecko.animation.PropertyAnimator; -import org.mozilla.gecko.animation.TransitionsTracker; import org.mozilla.gecko.animation.ViewHelper; import org.mozilla.gecko.db.BrowserContract.Combined; import org.mozilla.gecko.db.BrowserContract.SearchHistory; @@ -1973,8 +1971,6 @@ public class BrowserApp extends GeckoApp final PropertyAnimator animator = new PropertyAnimator(250); animator.setUseHardwareLayer(false); - TransitionsTracker.track(animator); - mBrowserToolbar.startEditing(url, animator); final String panelId = selectedTab.getMostRecentHomePanel(); diff --git a/mobile/android/base/home/DynamicPanel.java b/mobile/android/base/home/DynamicPanel.java index 62e7738ea07a..13bac2c309ba 100644 --- a/mobile/android/base/home/DynamicPanel.java +++ b/mobile/android/base/home/DynamicPanel.java @@ -262,6 +262,12 @@ public class DynamicPanel extends HomeFragment { public void requestDataset(DatasetRequest request) { Log.d(LOGTAG, "Requesting request: " + request); + // Ignore dataset requests while the fragment is not + // allowed to load its content. + if (!getCanLoadHint()) { + return; + } + final Bundle bundle = new Bundle(); bundle.putParcelable(DATASET_REQUEST, request); diff --git a/mobile/android/base/home/HomePager.java b/mobile/android/base/home/HomePager.java index 5d16c8f05c16..826d334ecf10 100644 --- a/mobile/android/base/home/HomePager.java +++ b/mobile/android/base/home/HomePager.java @@ -223,7 +223,7 @@ public class HomePager extends ViewPager { final HomeAdapter adapter = new HomeAdapter(mContext, fm); adapter.setOnAddPanelListener(mAddPanelListener); - adapter.setCanLoadHint(true); + adapter.setCanLoadHint(!shouldAnimate); setAdapter(adapter); // Don't show the tabs strip until we have the @@ -243,6 +243,7 @@ public class HomePager extends ViewPager { @Override public void onPropertyAnimationEnd() { setLayerType(View.LAYER_TYPE_NONE, null); + adapter.setCanLoadHint(true); } }); @@ -372,7 +373,9 @@ public class HomePager extends ViewPager { final HomeAdapter adapter = (HomeAdapter) getAdapter(); // Disable any fragment loading until we have the initial - // panel selection done. + // panel selection done. Store previous value to restore + // it if necessary once the UI is fully updated. + final boolean canLoadHint = adapter.getCanLoadHint(); adapter.setCanLoadHint(false); // Destroy any existing panels currently loaded @@ -433,15 +436,19 @@ public class HomePager extends ViewPager { } } - // The selection is updated asynchronously so we need to post to - // UI thread to give the pager time to commit the new page selection - // internally and load the right initial panel. - ThreadUtils.getUiHandler().post(new Runnable() { - @Override - public void run() { - adapter.setCanLoadHint(true); - } - }); + // If the load hint was originally true, this means the pager + // is not animating and it's fine to restore the load hint back. + if (canLoadHint) { + // The selection is updated asynchronously so we need to post to + // UI thread to give the pager time to commit the new page selection + // internally and load the right initial panel. + ThreadUtils.getUiHandler().post(new Runnable() { + @Override + public void run() { + adapter.setCanLoadHint(true); + } + }); + } } public void setOnPanelChangeListener(OnPanelChangeListener listener) {