package com.ftinc.scoop.binding; import android.app.Activity; import android.os.Build; import android.support.annotation.ColorInt; import android.support.annotation.RequiresApi; import android.view.animation.Interpolator; import com.ftinc.scoop.Topping; /** * Project: ThemeEngineTest * Package: com.ftinc.scoop.model * Created by drew.heavner on 6/21/16. */ public class StatusBarBinding extends AnimatedBinding { // Dragons Beware! This will memory leak if not properly unbinded private Activity mActivity; public StatusBarBinding(int toppingId, Activity activity, Interpolator interpolator) { super(toppingId, interpolator); mActivity = activity; } public StatusBarBinding(int toppingId, Activity activity, Interpolator interpolator, long duration) { super(toppingId, interpolator, duration); mActivity = activity; } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override public void update(Topping topping) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { super.update(topping); } } @Override public void unbind() { super.unbind(); mActivity = null; } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override int getCurrentColor() { return mActivity.getWindow().getStatusBarColor(); } @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override void applyColor(@ColorInt int color) { mActivity.getWindow().setStatusBarColor(color); } }