Delay setting night mode to show ripple animation
Bug: 183944309
Test: Manual
Change-Id: I7a5df8d12b35316b7d0711b99426cde25c7a1430
diff --git a/src/com/android/customization/model/mode/DarkModeSectionController.java b/src/com/android/customization/model/mode/DarkModeSectionController.java
index de63983..382162e 100644
--- a/src/com/android/customization/model/mode/DarkModeSectionController.java
+++ b/src/com/android/customization/model/mode/DarkModeSectionController.java
@@ -25,6 +25,8 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
+import android.os.Handler;
+import android.os.Looper;
import android.os.PowerManager;
import android.text.TextUtils;
import android.view.LayoutInflater;
@@ -124,7 +126,10 @@
return;
}
UiModeManager uiModeManager = context.getSystemService(UiModeManager.class);
- uiModeManager.setNightModeActivated(viewActivated);
+ int shortDelay = context.getResources().getInteger(android.R.integer.config_shortAnimTime);
+ new Handler(Looper.getMainLooper()).postDelayed(
+ () -> uiModeManager.setNightModeActivated(viewActivated),
+ /* delayMillis= */ shortDelay);
}
private class BatterySaverStateReceiver extends BroadcastReceiver {
diff --git a/src/com/android/customization/picker/mode/DarkModeSectionView.java b/src/com/android/customization/picker/mode/DarkModeSectionView.java
index 64b4622..6fc0a57 100644
--- a/src/com/android/customization/picker/mode/DarkModeSectionView.java
+++ b/src/com/android/customization/picker/mode/DarkModeSectionView.java
@@ -45,8 +45,7 @@
switchView.setOnCheckedChangeListener((buttonView, isChecked) ->
switchView.setChecked(mIsDarkModeActivated)
);
- setOnClickListener(
- view -> switchView.postDelayed(() -> modeToggleClicked(), /* delayMillis= */ 100));
+ setOnClickListener(view -> modeToggleClicked());
}
private void modeToggleClicked() {