Bug 1358805 - part 4: Allow custom tabs to pin the dynamic toolbar r=droeh
MozReview-Commit-ID: BXoLU0BGrZq
--- a/mobile/android/base/java/org/mozilla/gecko/customtabs/CustomTabsActivity.java
+++ b/mobile/android/base/java/org/mozilla/gecko/customtabs/CustomTabsActivity.java
@@ -34,16 +34,18 @@ import android.widget.ProgressBar;
import org.mozilla.gecko.EventDispatcher;
import org.mozilla.gecko.GeckoApp;
import org.mozilla.gecko.R;
import org.mozilla.gecko.SnackbarBuilder;
import org.mozilla.gecko.Tab;
import org.mozilla.gecko.Tabs;
import org.mozilla.gecko.Telemetry;
import org.mozilla.gecko.TelemetryContract;
+import org.mozilla.gecko.gfx.DynamicToolbarAnimator;
+import org.mozilla.gecko.gfx.DynamicToolbarAnimator.PinReason;
import org.mozilla.gecko.menu.GeckoMenu;
import org.mozilla.gecko.menu.GeckoMenuInflater;
import org.mozilla.gecko.util.Clipboard;
import org.mozilla.gecko.util.ColorUtil;
import org.mozilla.gecko.util.GeckoBundle;
import org.mozilla.gecko.util.IntentUtils;
import org.mozilla.gecko.widget.ActionModePresenter;
import org.mozilla.gecko.widget.GeckoPopupMenu;
@@ -211,16 +213,24 @@ public class CustomTabsActivity extends
if (tab == null) {
finish();
} else {
// we are restoring
actionBarPresenter.update(tab);
}
}
super.onResume();
+
+ mLayerView.getDynamicToolbarAnimator().setPinned(true, PinReason.CUSTOM_TAB);
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ mLayerView.getDynamicToolbarAnimator().setPinned(false, PinReason.CUSTOM_TAB);
}
// Usually should use onCreateOptionsMenu() to initialize menu items. But GeckoApp overwrite
// it to support custom menu(Bug 739412). Then the parameter *menu* in this.onCreateOptionsMenu()
// and this.onPrepareOptionsMenu() are different instances - GeckoApp.onCreatePanelMenu() changed it.
// CustomTabsActivity only use standard menu in ActionBar, so initialize menu here.
@Override
public boolean onCreatePanelMenu(final int id, final Menu menu) {
--- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DynamicToolbarAnimator.java
+++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/gfx/DynamicToolbarAnimator.java
@@ -22,17 +22,18 @@ public class DynamicToolbarAnimator {
private static final String LOGTAG = "GeckoDynamicToolbarAnimator";
public static enum PinReason {
DISABLED(0),
RELAYOUT(1),
ACTION_MODE(2),
FULL_SCREEN(3),
CARET_DRAG(4),
- PAGE_LOADING(5);
+ PAGE_LOADING(5),
+ CUSTOM_TAB(6);
public final int mValue;
PinReason(final int value) {
mValue = value;
}
}
public interface MetricsListener {