aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Keith <javelinanddart@gmail.com>2019-02-18 00:04:57 +0100
committerPaul Keith <javelinanddart@gmail.com>2019-05-14 04:12:54 +0200
commit70f6d6b61ee17d6fd0310b17fd6aaacbb3272de2 (patch)
tree82c318e33648bf98a2501e20116e1f35bf4759ab
parent9cb69f81bd7da9e8b0c9fdeb8d654dac4f26958f (diff)
downloadlineage-sdk-70f6d6b61ee17d6fd0310b17fd6aaacbb3272de2.tar.gz
lineage-sdk-70f6d6b61ee17d6fd0310b17fd6aaacbb3272de2.tar.bz2
lineage-sdk-70f6d6b61ee17d6fd0310b17fd6aaacbb3272de2.zip
sdk: Change night/day mode transition behavior
* Update 2x a minute rather than 1x a minute as a result of dropping TWILIGHT_ADJUSTMENT_TIME from 1hr to 30min in an earlier change * Use an AccelerateDecelerateInterpolator for transitioning from day to night mode and back to make the transition smoother for the user * Update copyright while we're at it Change-Id: I438f265c6cd9a2487b75744beccaf2bbac21b36e
-rw-r--r--lineage/lib/main/java/org/lineageos/platform/internal/display/ColorTemperatureController.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/lineage/lib/main/java/org/lineageos/platform/internal/display/ColorTemperatureController.java b/lineage/lib/main/java/org/lineageos/platform/internal/display/ColorTemperatureController.java
index 40bc681f..9e7fd73e 100644
--- a/lineage/lib/main/java/org/lineageos/platform/internal/display/ColorTemperatureController.java
+++ b/lineage/lib/main/java/org/lineageos/platform/internal/display/ColorTemperatureController.java
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2016 The CyanogenMod Project
+ * 2018-2019 The LineageOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,7 +25,7 @@ import android.text.format.DateUtils;
import android.util.MathUtils;
import android.util.Range;
import android.util.Slog;
-import android.view.animation.LinearInterpolator;
+import android.view.animation.AccelerateDecelerateInterpolator;
import org.lineageos.platform.internal.display.TwilightTracker.TwilightState;
@@ -58,6 +59,7 @@ public class ColorTemperatureController extends LiveDisplayFeature {
private int mDayTemperature;
private int mNightTemperature;
+ private AccelerateDecelerateInterpolator mInterpolator;
private ValueAnimator mAnimator;
private final LineageHardwareManager mHardware;
@@ -97,6 +99,8 @@ public class ColorTemperatureController extends LiveDisplayFeature {
mColorTemperatureRange.getLower(),
mDefaultDayTemperature,
mColorTemperatureRange.getUpper());
+
+ mInterpolator = new AccelerateDecelerateInterpolator();
}
@Override
@@ -202,8 +206,8 @@ public class ColorTemperatureController extends LiveDisplayFeature {
setDisplayTemperature(temperature);
if (isTransitioning()) {
- // fire again in a minute
- mHandler.postDelayed(mTransitionRunnable, DateUtils.MINUTE_IN_MILLIS);
+ // fire again in 30 seconds
+ mHandler.postDelayed(mTransitionRunnable, DateUtils.MINUTE_IN_MILLIS / 2);
}
}
@@ -234,7 +238,7 @@ public class ColorTemperatureController extends LiveDisplayFeature {
mAnimator = ValueAnimator.ofInt(current, balance);
mAnimator.setDuration(duration);
- mAnimator.setInterpolator(new LinearInterpolator());
+ mAnimator.setInterpolator(mInterpolator);
mAnimator.addUpdateListener(new AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(final ValueAnimator animation) {
@@ -291,7 +295,7 @@ public class ColorTemperatureController extends LiveDisplayFeature {
* @param sunrise
* @return float between 0 and 1
*/
- private static float adj(long now, long sunset, long sunrise) {
+ private float adj(long now, long sunset, long sunrise) {
if (sunset < 0 || sunrise < 0
|| now < (sunset - TWILIGHT_ADJUSTMENT_TIME)
|| now > (sunrise + TWILIGHT_ADJUSTMENT_TIME)) {
@@ -301,12 +305,12 @@ public class ColorTemperatureController extends LiveDisplayFeature {
// Scale the transition into night mode in 0.5hr before civil sunset
if (now <= sunset) {
- return (float) (sunset - now) / TWILIGHT_ADJUSTMENT_TIME;
+ return mInterpolator.getInterpolation((float) (sunset - now) / TWILIGHT_ADJUSTMENT_TIME);
}
// Scale the transition into day mode in 0.5hr after civil sunrise
if (now >= sunrise) {
- return (float) (now - sunrise) / TWILIGHT_ADJUSTMENT_TIME;
+ return mInterpolator.getInterpolation((float) (now - sunrise) / TWILIGHT_ADJUSTMENT_TIME);
}
// More than 0.5hr past civil sunset