blob: ecb0cd249b39782810ef635a6fc0f80253835652 [file] [log] [blame]
package com.airbnb.lottie.samples;
import android.app.Application;
import android.support.v4.util.Pair;
import android.view.Gravity;
import com.airbnb.lottie.L;
import com.codemonkeylabs.fpslibrary.FrameDataCallback;
import com.codemonkeylabs.fpslibrary.TinyDancer;
public class LottieApplication extends Application implements ILottieApplication {
private int droppedFrames;
private long droppedFramesStartingNs;
private long currentFrameNs;
@Override public void onCreate() {
super.onCreate();
if (L.DBG) {
TinyDancer.create()
.startingGravity(Gravity.TOP | Gravity.END)
.startingXPosition(0)
.startingYPosition(0)
.addFrameDataCallback(new FrameDataCallback() {
@Override
public void doFrame(long previousFrameNs, long currentFrameNs, int droppedFrames) {
LottieApplication.this.droppedFrames += droppedFrames;
LottieApplication.this.currentFrameNs = currentFrameNs;
}
})
.show(this);
}
}
@Override public void startRecordingDroppedFrames() {
droppedFrames = 0;
droppedFramesStartingNs = currentFrameNs;
}
@Override public Pair<Integer, Long> stopRecordingDroppedFrames() {
long duration = currentFrameNs - droppedFramesStartingNs;
Pair<Integer, Long> ret = new Pair<>(droppedFrames, duration);
droppedFrames = 0;
return ret;
}
}