Files
palemoon27/mobile/android/base/firstrun/FirstrunPane.java
T
2018-07-24 23:11:02 +08:00

81 lines
2.3 KiB
Java

/* -*- 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.goanna.firstrun;
import android.content.Context;
import android.support.v4.app.FragmentManager;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import com.nineoldandroids.animation.Animator;
import com.nineoldandroids.animation.AnimatorListenerAdapter;
import com.nineoldandroids.animation.ObjectAnimator;
import org.mozilla.goanna.R;
import org.mozilla.goanna.animation.TransitionsTracker;
public class FirstrunPane extends LinearLayout {
public static final String PREF_FIRSTRUN_ENABLED = "startpane_enabled";
public static interface OnFinishListener {
public void onFinish();
}
private FirstrunPager pager;
private boolean visible;
private OnFinishListener onFinishListener;
public FirstrunPane(Context context) {
this(context, null);
}
public FirstrunPane(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void load(FragmentManager fm) {
visible = true;
pager = (FirstrunPager) findViewById(R.id.firstrun_pager);
pager.load(fm, new OnFinishListener() {
@Override
public void onFinish() {
hide();
}
});
}
public boolean isVisible() {
return visible;
}
public void hide() {
visible = false;
pager.hide();
if (onFinishListener != null) {
onFinishListener.onFinish();
}
animateHide();
}
private void animateHide() {
final Animator alphaAnimator = ObjectAnimator.ofFloat(this, "alpha", 0);
alphaAnimator.setDuration(150);
alphaAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
FirstrunPane.this.setVisibility(View.GONE);
}
});
TransitionsTracker.track(alphaAnimator);
alphaAnimator.start();
}
public void registerOnFinishListener(OnFinishListener listener) {
this.onFinishListener = listener;
}
}