зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1277467 - Pre: Add ForegroundAwareDelegate to help track if Gecko tabs are user-visible r=sebastian
MozReview-Commit-ID: KZavLxL4u8V --HG-- extra : rebase_source : 9c19cd72e0dc19d5c80bb1bf7fd2177c14862056
This commit is contained in:
Родитель
bf02c9e2f4
Коммит
c09864a3eb
|
@ -0,0 +1,38 @@
|
|||
/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
package org.mozilla.gecko.delegates;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.CallSuper;
|
||||
|
||||
import org.mozilla.gecko.BrowserApp;
|
||||
import org.mozilla.gecko.tabs.TabsPanel;
|
||||
|
||||
public abstract class TabsTrayVisibilityAwareDelegate extends BrowserAppDelegate {
|
||||
private boolean tabsTrayVisible;
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
public void onCreate(BrowserApp browserApp, Bundle savedInstanceState) {
|
||||
tabsTrayVisible = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
public void onTabsTrayShown(BrowserApp browserApp, TabsPanel tabsPanel) {
|
||||
tabsTrayVisible = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
public void onTabsTrayHidden(BrowserApp browserApp, TabsPanel tabsPanel) {
|
||||
tabsTrayVisible = false;
|
||||
}
|
||||
|
||||
protected boolean isTabsTrayVisible() {
|
||||
return tabsTrayVisible;
|
||||
}
|
||||
}
|
|
@ -17,14 +17,13 @@ import org.json.JSONException;
|
|||
import org.json.JSONObject;
|
||||
import org.mozilla.gecko.AboutPages;
|
||||
import org.mozilla.gecko.BrowserApp;
|
||||
import org.mozilla.gecko.delegates.BrowserAppDelegate;
|
||||
import org.mozilla.gecko.GeckoProfile;
|
||||
import org.mozilla.gecko.Tab;
|
||||
import org.mozilla.gecko.Tabs;
|
||||
import org.mozilla.gecko.db.BrowserContract;
|
||||
import org.mozilla.gecko.db.BrowserDB;
|
||||
import org.mozilla.gecko.db.UrlAnnotations;
|
||||
import org.mozilla.gecko.tabs.TabsPanel;
|
||||
import org.mozilla.gecko.delegates.ForegroundAwareDelegate;
|
||||
import org.mozilla.gecko.util.Experiments;
|
||||
import org.mozilla.gecko.util.ThreadUtils;
|
||||
|
||||
|
@ -35,7 +34,7 @@ import ch.boye.httpclientandroidlib.util.TextUtils;
|
|||
/**
|
||||
* Promote "Add to home screen" if user visits website often.
|
||||
*/
|
||||
public class AddToHomeScreenPromotion extends BrowserAppDelegate implements Tabs.OnTabsChangedListener {
|
||||
public class AddToHomeScreenPromotion extends ForegroundAwareDelegate implements Tabs.OnTabsChangedListener {
|
||||
private static class URLHistory {
|
||||
public final long visits;
|
||||
public final long lastVisit;
|
||||
|
@ -54,15 +53,14 @@ public class AddToHomeScreenPromotion extends BrowserAppDelegate implements Tabs
|
|||
|
||||
private WeakReference<Activity> activityReference;
|
||||
private boolean isEnabled;
|
||||
private boolean isInForeground;
|
||||
private int minimumVisits;
|
||||
private int lastVisitMinimumAgeMs;
|
||||
private int lastVisitMaximumAgeMs;
|
||||
|
||||
@Override
|
||||
public void onCreate(BrowserApp browserApp, Bundle savedInstanceState) {
|
||||
super.onCreate(browserApp, savedInstanceState);
|
||||
activityReference = new WeakReference<Activity>(browserApp);
|
||||
isInForeground = true;
|
||||
|
||||
initializeExperiment(browserApp);
|
||||
}
|
||||
|
@ -77,16 +75,6 @@ public class AddToHomeScreenPromotion extends BrowserAppDelegate implements Tabs
|
|||
Tabs.unregisterOnTabsChangedListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabsTrayShown(BrowserApp browserApp, TabsPanel tabsPanel) {
|
||||
isInForeground = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTabsTrayHidden(BrowserApp browserApp, TabsPanel tabsPanel) {
|
||||
isInForeground = true;
|
||||
}
|
||||
|
||||
private void initializeExperiment(Context context) {
|
||||
if (!SwitchBoard.isInExperiment(context, Experiments.PROMOTE_ADD_TO_HOMESCREEN)) {
|
||||
Log.v(LOGTAG, "Experiment not enabled");
|
||||
|
|
|
@ -263,6 +263,7 @@ gbjar.sources += ['java/org/mozilla/gecko/' + x for x in [
|
|||
'delegates/BrowserAppDelegate.java',
|
||||
'delegates/BrowserAppDelegateWithReference.java',
|
||||
'delegates/ScreenshotDelegate.java',
|
||||
'delegates/TabsTrayVisibilityAwareDelegate.java',
|
||||
'DevToolsAuthHelper.java',
|
||||
'distribution/Distribution.java',
|
||||
'distribution/DistributionStoreCallback.java',
|
||||
|
|
Загрузка…
Ссылка в новой задаче