blob: 93370552a59c14f4cd242bbff016f422766979ea [file] [log] [blame]
package org.skia.skottie;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import com.airbnb.lottie.LottieAnimationView;
import com.airbnb.lottie.LottieDrawable;
import com.airbnb.lottie.RenderMode;
public class PerfActivity extends Activity {
int rawAssets[] = {
R.raw.star, R.raw.movie_loading, R.raw.uk, R.raw.white_material_wave_loading,
R.raw.check_animation, R.raw.confetti, R.raw.gears,
R.raw.hand_sanitizer, R.raw.heart_preloader, R.raw.i_was_scared_after_that_brouhaha,
R.raw.im_thirsty, R.raw.true_will, R.raw.workout_monkey_stay_healthy,
R.raw.ripple_loading_animation, R.raw.signature, R.raw.asdasd, R.raw.celebration,
R.raw.check
};
@Override
protected void onCreate(Bundle savedInstanceState) {
//Remove title bar
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
//Remove notification bar
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onCreate(savedInstanceState);
// Run activity with:
// adb shell am start -n org.skia.skottie/.PerfActivity --ei renderer 0 --ei file 0
// renderer is 0 to 2, file is 0 to 14
Intent intent = getIntent();
int renderer = intent.getIntExtra("renderer", 0);
int file = intent.getIntExtra("file", 0);
if (file < 0 || file >= rawAssets.length) {
return;
}
switch (renderer) {
case 0:
// render with airbnb hardware lottie player
runLottie(rawAssets[file], true);
break;
case 1:
// render with airbnb software lottie player
runLottie(rawAssets[file], false);
break;
case 2:
// render with skottie player
runSkottie(rawAssets[file]);
break;
default:
break;
}
}
void runSkottie(int id) {
SkottieView view = new SkottieView(this);
view.setSource(getResources().openRawResource(id));
view.start();
setContentView(view);
}
void runLottie(int id, boolean useHardware) {
LottieAnimationView lottie = new LottieAnimationView(this);
lottie.setAnimation(id);
if (useHardware) {
lottie.setRenderMode(RenderMode.HARDWARE);
} else {
lottie.setRenderMode(RenderMode.SOFTWARE);
}
lottie.setRepeatMode(LottieDrawable.RESTART);
lottie.setRepeatCount(LottieDrawable.INFINITE);
lottie.playAnimation();
setContentView(lottie);
}
}