зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1377579 - Add progress bar to GeckoView-based custom tabs. r=snorp
This commit is contained in:
Родитель
f2a78cd788
Коммит
5bad4263c8
|
@ -27,6 +27,16 @@
|
|||
android:layout_height="match_parent"
|
||||
android:scrollbars="none"/>
|
||||
|
||||
<ProgressBar
|
||||
android:id="@id/page_progress"
|
||||
style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="4dp"
|
||||
android:layout_alignTop="@id/gecko_view"
|
||||
android:background="@drawable/url_bar_bg"
|
||||
android:progressDrawable="@drawable/progressbar"
|
||||
tools:progress="70"/>
|
||||
|
||||
<View android:id="@+id/custom_tabs_doorhanger_overlay"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
|
|
@ -28,6 +28,7 @@ import android.view.Menu;
|
|||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ProgressBar;
|
||||
|
||||
import org.mozilla.gecko.ActivityHandlerHelper;
|
||||
import org.mozilla.gecko.EventDispatcher;
|
||||
|
@ -61,6 +62,7 @@ public class CustomTabsActivity extends AppCompatActivity
|
|||
private GeckoPopupMenu popupMenu;
|
||||
private View doorhangerOverlay;
|
||||
private ActionBarPresenter actionBarPresenter;
|
||||
private ProgressBar mProgressView;
|
||||
// A state to indicate whether this activity is finishing with customize animation
|
||||
private boolean usingCustomAnimation = false;
|
||||
|
||||
|
@ -86,6 +88,8 @@ public class CustomTabsActivity extends AppCompatActivity
|
|||
|
||||
doorhangerOverlay = findViewById(R.id.custom_tabs_doorhanger_overlay);
|
||||
|
||||
mProgressView = (ProgressBar) findViewById(R.id.page_progress);
|
||||
updateProgress(10);
|
||||
final Toolbar toolbar = (Toolbar) findViewById(R.id.actionbar);
|
||||
setSupportActionBar(toolbar);
|
||||
final ActionBar actionBar = getSupportActionBar();
|
||||
|
@ -388,6 +392,19 @@ public class CustomTabsActivity extends AppCompatActivity
|
|||
forwardMenuItem.setEnabled(mCanGoForward);
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the state of the progress bar.
|
||||
* @param progress The current loading progress; must be between 0 and 100
|
||||
*/
|
||||
private void updateProgress(final int progress) {
|
||||
if (mCanStop) {
|
||||
mProgressView.setVisibility(View.VISIBLE);
|
||||
mProgressView.setProgress(progress);
|
||||
} else {
|
||||
mProgressView.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update loading status of current page
|
||||
*/
|
||||
|
@ -498,6 +515,7 @@ public class CustomTabsActivity extends AppCompatActivity
|
|||
public void onLocationChange(GeckoView view, String url) {
|
||||
mCurrentUrl = url;
|
||||
updateActionBar();
|
||||
updateProgress(60);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -518,12 +536,14 @@ public class CustomTabsActivity extends AppCompatActivity
|
|||
mCanStop = true;
|
||||
updateActionBar();
|
||||
updateCanStop();
|
||||
updateProgress(20);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageStop(GeckoView view, boolean success) {
|
||||
mCanStop = false;
|
||||
updateCanStop();
|
||||
updateProgress(100);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Загрузка…
Ссылка в новой задаче