blob: ae3fa416c3d269d4804e741b0a52c210b3891fe8 [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;
}
}