Bug 1366672 - Part3: use AnimatedProgressBar to replace ProgressView
MozReview-Commit-ID: KTr4ce5UvIq
--- a/mobile/android/app/src/main/res/layout/gecko_app.xml
+++ b/mobile/android/app/src/main/res/layout/gecko_app.xml
@@ -136,24 +136,26 @@
android:layout_height="match_parent"
android:layout_width="match_parent"
style="@style/GeckoActionBar.ActionMode"/>
</ViewFlipper>
</LinearLayout>
- <org.mozilla.gecko.toolbar.ToolbarProgressView android:id="@id/page_progress"
- android:layout_width="match_parent"
- android:layout_height="14dp"
- android:layout_marginTop="-8dp"
- android:layout_below="@id/browser_chrome"
- android:src="@drawable/progress"
- android:background="@null"
- android:visibility="gone" />
+ <org.mozilla.gecko.widget.AnimatedProgressBar
+ android:id="@id/page_progress"
+ style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
+ android:layout_width="match_parent"
+ android:layout_height="14dp"
+ android:layout_below="@id/browser_chrome"
+ android:layout_marginTop="-8dp"
+ android:background="@null"
+ android:src="@drawable/progress"
+ android:visibility="gone" />
</view>
<FrameLayout android:id="@+id/tab_history_panel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:visibility="gone" />
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -86,17 +86,16 @@ import org.mozilla.gecko.tabs.TabHistory
import org.mozilla.gecko.tabs.TabHistoryPage;
import org.mozilla.gecko.tabs.TabsPanel;
import org.mozilla.gecko.telemetry.TelemetryUploadService;
import org.mozilla.gecko.telemetry.TelemetryCorePingDelegate;
import org.mozilla.gecko.telemetry.measurements.SearchCountMeasurements;
import org.mozilla.gecko.toolbar.AutocompleteHandler;
import org.mozilla.gecko.toolbar.BrowserToolbar;
import org.mozilla.gecko.toolbar.BrowserToolbar.TabEditingState;
-import org.mozilla.gecko.toolbar.ToolbarProgressView;
import org.mozilla.gecko.trackingprotection.TrackingProtectionPrompt;
import org.mozilla.gecko.updater.PostUpdateHandler;
import org.mozilla.gecko.updater.UpdateServiceHelper;
import org.mozilla.gecko.util.ActivityUtils;
import org.mozilla.gecko.util.Clipboard;
import org.mozilla.gecko.util.ContextUtils;
import org.mozilla.gecko.util.DrawableUtil;
import org.mozilla.gecko.util.EventCallback;
@@ -106,16 +105,17 @@ import org.mozilla.gecko.util.HardwareUt
import org.mozilla.gecko.util.IntentUtils;
import org.mozilla.gecko.util.MenuUtils;
import org.mozilla.gecko.util.PrefUtils;
import org.mozilla.gecko.util.StringUtils;
import org.mozilla.gecko.util.ThreadUtils;
import org.mozilla.gecko.util.WindowUtil;
import org.mozilla.gecko.widget.ActionModePresenter;
import org.mozilla.gecko.widget.AnchoredPopup;
+import org.mozilla.gecko.widget.AnimatedProgressBar;
import org.mozilla.gecko.widget.GeckoActionProvider;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ContentResolver;
@@ -236,17 +236,17 @@ public class BrowserApp extends GeckoApp
public ViewGroup mBrowserChrome;
public ViewFlipper mActionBarFlipper;
public ActionModeCompatView mActionBar;
private VideoPlayer mVideoPlayer;
private BrowserToolbar mBrowserToolbar;
private View doorhangerOverlay;
// We can't name the TabStrip class because it's not included on API 9.
private TabStripInterface mTabStrip;
- private ToolbarProgressView mProgressView;
+ private AnimatedProgressBar mProgressView;
private FirstrunAnimationContainer mFirstrunAnimationContainer;
private HomeScreen mHomeScreen;
private TabsPanel mTabsPanel;
private boolean showSplashScreen = false;
private SplashScreen splashScreen;
/**
* Container for the home screen implementation. This will be populated with any valid
@@ -667,17 +667,17 @@ public class BrowserApp extends GeckoApp
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
});
- mProgressView = (ToolbarProgressView) findViewById(R.id.page_progress);
+ mProgressView = (AnimatedProgressBar) findViewById(R.id.page_progress);
mProgressView.setDynamicToolbar(mDynamicToolbar);
mBrowserToolbar.setProgressBar(mProgressView);
// Initialize Tab History Controller.
tabHistoryController = new TabHistoryController(new OnShowTabHistory() {
@Override
public void onShowHistory(final List<TabHistoryPage> historyPageList, final int toIndex) {
runOnUiThread(new Runnable() {
--- a/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
+++ b/mobile/android/base/java/org/mozilla/gecko/toolbar/BrowserToolbar.java
@@ -29,18 +29,18 @@ import org.mozilla.gecko.menu.MenuPopup;
import org.mozilla.gecko.preferences.GeckoPreferences;
import org.mozilla.gecko.tabs.TabHistoryController;
import org.mozilla.gecko.toolbar.ToolbarDisplayLayout.OnStopListener;
import org.mozilla.gecko.toolbar.ToolbarDisplayLayout.OnTitleChangeListener;
import org.mozilla.gecko.toolbar.ToolbarDisplayLayout.UpdateFlags;
import org.mozilla.gecko.util.Clipboard;
import org.mozilla.gecko.util.MenuUtils;
import org.mozilla.gecko.util.WindowUtil;
+import org.mozilla.gecko.widget.AnimatedProgressBar;
import org.mozilla.gecko.widget.themed.ThemedImageButton;
-import org.mozilla.gecko.widget.themed.ThemedImageView;
import org.mozilla.gecko.widget.themed.ThemedRelativeLayout;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
@@ -113,17 +113,17 @@ public abstract class BrowserToolbar ext
}
protected final ToolbarDisplayLayout urlDisplayLayout;
protected final ToolbarEditLayout urlEditLayout;
protected final View urlBarEntry;
protected boolean isSwitchingTabs;
protected final ThemedImageButton tabsButton;
- private ToolbarProgressView progressBar;
+ private AnimatedProgressBar progressBar;
protected final TabCounter tabsCounter;
protected final View menuButton;
private MenuPopup menuPopup;
protected final List<View> focusOrder;
private OnActivateListener activateListener;
private OnFocusChangeListener focusChangeListener;
private OnStartEditingListener startEditingListener;
@@ -349,26 +349,25 @@ public abstract class BrowserToolbar ext
final int height = getHeight();
canvas.drawRect(0, height - shadowSize, getWidth(), height, shadowPaint);
}
public void onParentFocus() {
urlEditLayout.onParentFocus();
}
- public void setProgressBar(ToolbarProgressView progressBar) {
+ public void setProgressBar(AnimatedProgressBar progressBar) {
this.progressBar = progressBar;
}
public void setTabHistoryController(TabHistoryController tabHistoryController) {
this.tabHistoryController = tabHistoryController;
}
public void refresh() {
- progressBar.setImageDrawable(getResources().getDrawable(R.drawable.progress));
urlDisplayLayout.dismissSiteIdentityPopup();
urlEditLayout.refresh();
}
public boolean onBackPressed() {
// If we exit editing mode during the animation,
// we're put into an inconsistent state (bug 1017276).
if (isEditing() && !isAnimating()) {
@@ -435,26 +434,27 @@ public abstract class BrowserToolbar ext
if (tabs.isSelectedTab(tab)) {
final EnumSet<UpdateFlags> flags = EnumSet.noneOf(UpdateFlags.class);
// Progress-related handling
switch (msg) {
case START:
updateProgressVisibility(tab, Tab.LOAD_PROGRESS_INIT);
- // Fall through.
+ break;
case ADDED:
case LOCATION_CHANGE:
case LOAD_ERROR:
case LOADED:
case STOP:
flags.add(UpdateFlags.PROGRESS);
if (progressBar.getVisibility() == View.VISIBLE) {
- progressBar.animateProgress(tab.getLoadProgress());
+ progressBar.setProgress(tab.getLoadProgress());
}
+ updateProgressVisibility();
break;
case SELECTED:
flags.add(UpdateFlags.PROGRESS);
updateProgressVisibility();
break;
}