mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1199859 - Add "Next" sliding. r=mfinkle
This commit is contained in:
parent
a22ce6d287
commit
0ac70a5384
@ -2584,7 +2584,7 @@ public class BrowserApp extends GeckoApp
|
||||
final ViewStub firstrunPagerStub = (ViewStub) findViewById(R.id.firstrun_pager_stub);
|
||||
mFirstrunPane = (FirstrunPane) firstrunPagerStub.inflate();
|
||||
mFirstrunPane.load(getApplicationContext(), getSupportFragmentManager());
|
||||
mFirstrunPane.registerOnFinishListener(new FirstrunPane.PagerNavigation() {
|
||||
mFirstrunPane.registerOnFinishListener(new FirstrunPane.OnFinishListener() {
|
||||
@Override
|
||||
public void onFinish() {
|
||||
BrowserApp.this.mFirstrunPane = null;
|
||||
|
@ -22,8 +22,9 @@ import org.mozilla.gecko.animation.TransitionsTracker;
|
||||
import java.util.List;
|
||||
|
||||
public class FirstrunPager extends ViewPager {
|
||||
|
||||
private Context context;
|
||||
protected FirstrunPane.PagerNavigation listener;
|
||||
protected FirstrunPanel.PagerNavigation pagerNavigation;
|
||||
|
||||
public FirstrunPager(Context context) {
|
||||
this(context, null);
|
||||
@ -34,7 +35,7 @@ public class FirstrunPager extends ViewPager {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public void load(Context appContext, FragmentManager fm, FirstrunPane.PagerNavigation listener) {
|
||||
public void load(Context appContext, FragmentManager fm, final FirstrunPane.OnFinishListener onFinishListener) {
|
||||
final List<FirstrunPagerConfig.FirstrunPanelConfig> panels;
|
||||
|
||||
if (RestrictedProfiles.isUserRestricted(context)) {
|
||||
@ -44,7 +45,22 @@ public class FirstrunPager extends ViewPager {
|
||||
}
|
||||
|
||||
setAdapter(new ViewPagerAdapter(fm, panels));
|
||||
this.listener = listener;
|
||||
this.pagerNavigation = new FirstrunPanel.PagerNavigation() {
|
||||
@Override
|
||||
public void next() {
|
||||
final int currentPage = FirstrunPager.this.getCurrentItem();
|
||||
if (currentPage < FirstrunPager.this.getChildCount() - 1) {
|
||||
FirstrunPager.this.setCurrentItem(currentPage + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finish() {
|
||||
if (onFinishListener != null) {
|
||||
onFinishListener.onFinish();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
animateLoad();
|
||||
}
|
||||
@ -73,17 +89,23 @@ public class FirstrunPager extends ViewPager {
|
||||
}
|
||||
|
||||
private class ViewPagerAdapter extends FragmentPagerAdapter {
|
||||
private List<FirstrunPagerConfig.FirstrunPanelConfig> panels;
|
||||
private final List<FirstrunPagerConfig.FirstrunPanelConfig> panels;
|
||||
private final Fragment[] fragments;
|
||||
|
||||
public ViewPagerAdapter(FragmentManager fm, List<FirstrunPagerConfig.FirstrunPanelConfig> panels) {
|
||||
super(fm);
|
||||
this.panels = panels;
|
||||
this.fragments = new Fragment[panels.size()];
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int i) {
|
||||
final Fragment fragment = Fragment.instantiate(context, panels.get(i).getClassname());
|
||||
((FirstrunPanel) fragment).setPagerNavigation(listener);
|
||||
Fragment fragment = this.fragments[i];
|
||||
if (fragment == null) {
|
||||
fragment = Fragment.instantiate(context, panels.get(i).getClassname());
|
||||
((FirstrunPanel) fragment).setPagerNavigation(pagerNavigation);
|
||||
fragments[i] = fragment;
|
||||
}
|
||||
return fragment;
|
||||
}
|
||||
|
||||
|
@ -20,14 +20,13 @@ import org.mozilla.gecko.animation.TransitionsTracker;
|
||||
public class FirstrunPane extends LinearLayout {
|
||||
public static final String PREF_FIRSTRUN_ENABLED = "startpane_enabled";
|
||||
|
||||
public static interface PagerNavigation {
|
||||
public void next();
|
||||
public static interface OnFinishListener {
|
||||
public void onFinish();
|
||||
}
|
||||
|
||||
private FirstrunPager pager;
|
||||
private boolean visible;
|
||||
private PagerNavigation pagerNavigation;
|
||||
private OnFinishListener onFinishListener;
|
||||
|
||||
public FirstrunPane(Context context) {
|
||||
this(context, null);
|
||||
@ -39,15 +38,7 @@ public class FirstrunPane extends LinearLayout {
|
||||
public void load(Context appContext, FragmentManager fm) {
|
||||
visible = true;
|
||||
pager = (FirstrunPager) findViewById(R.id.firstrun_pager);
|
||||
pager.load(appContext, fm, new PagerNavigation() {
|
||||
@Override
|
||||
public void next() {
|
||||
final int currentPage = pager.getCurrentItem();
|
||||
if (currentPage < pager.getChildCount() - 1) {
|
||||
pager.setCurrentItem(currentPage + 1);
|
||||
}
|
||||
}
|
||||
|
||||
pager.load(appContext, fm, new OnFinishListener() {
|
||||
@Override
|
||||
public void onFinish() {
|
||||
hide();
|
||||
@ -62,8 +53,8 @@ public class FirstrunPane extends LinearLayout {
|
||||
public void hide() {
|
||||
visible = false;
|
||||
pager.hide();
|
||||
if (pagerNavigation != null) {
|
||||
pagerNavigation.onFinish();
|
||||
if (onFinishListener != null) {
|
||||
onFinishListener.onFinish();
|
||||
}
|
||||
animateHide();
|
||||
}
|
||||
@ -83,7 +74,7 @@ public class FirstrunPane extends LinearLayout {
|
||||
alphaAnimator.start();
|
||||
}
|
||||
|
||||
public void registerOnFinishListener(PagerNavigation listener) {
|
||||
this.pagerNavigation = listener;
|
||||
public void registerOnFinishListener(OnFinishListener listener) {
|
||||
this.onFinishListener = listener;
|
||||
}
|
||||
}
|
||||
|
@ -10,9 +10,13 @@ import android.support.v4.app.Fragment;
|
||||
public class FirstrunPanel extends Fragment {
|
||||
|
||||
public static final int TITLE_RES = -1;
|
||||
protected FirstrunPane.PagerNavigation pagerNavigation;
|
||||
public interface PagerNavigation {
|
||||
void next();
|
||||
void finish();
|
||||
}
|
||||
protected PagerNavigation pagerNavigation;
|
||||
|
||||
public void setPagerNavigation(FirstrunPane.PagerNavigation listener) {
|
||||
public void setPagerNavigation(PagerNavigation listener) {
|
||||
this.pagerNavigation = listener;
|
||||
}
|
||||
|
||||
@ -24,7 +28,7 @@ public class FirstrunPanel extends Fragment {
|
||||
|
||||
protected void close() {
|
||||
if (pagerNavigation != null) {
|
||||
pagerNavigation.onFinish();
|
||||
pagerNavigation.finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -27,6 +27,7 @@ import java.util.List;
|
||||
public class ImportPanel extends FirstrunPanel {
|
||||
public static final String LOGTAG = "GeckoImportPanel";
|
||||
public static final int TITLE_RES = R.string.firstrun_import_title;
|
||||
private static final int AUTOADVANCE_DELAY_MS = 1500;
|
||||
|
||||
// These match the item positions in R.array.pref_import_android_entries.
|
||||
private static int BOOKMARKS_INDEX = 0;
|
||||
@ -121,7 +122,13 @@ public class ImportPanel extends FirstrunPanel {
|
||||
choiceButton.setVisibility(View.GONE);
|
||||
|
||||
dialog.dismiss();
|
||||
next();
|
||||
|
||||
ThreadUtils.postDelayedToUiThread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
next();
|
||||
}
|
||||
}, AUTOADVANCE_DELAY_MS);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -57,7 +57,7 @@
|
||||
|
||||
<ImageView android:id="@+id/confirm_check"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="60dp"
|
||||
android:visibility="gone"
|
||||
android:src="@drawable/overlay_check"/>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user