| 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; |
| } |
| } |