Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3d92c69e authored by Shan Huang's avatar Shan Huang Committed by Android (Google) Code Review
Browse files

Merge "Put wired charging ripple back."

parents c0c3a0c2 a805a2df
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -55,7 +55,6 @@ class ChargingRippleView(context: Context?, attrs: AttributeSet?) : View(context
        rippleShader.progress = 0f
        rippleShader.sparkleStrength = RIPPLE_SPARKLE_STRENGTH
        ripplePaint.shader = rippleShader
        visibility = View.GONE
    }

    override fun onConfigurationChanged(newConfig: Configuration?) {
@@ -86,12 +85,10 @@ class ChargingRippleView(context: Context?, attrs: AttributeSet?) : View(context
        animator.addListener(object : AnimatorListenerAdapter() {
            override fun onAnimationEnd(animation: Animator?) {
                rippleInProgress = false
                visibility = View.GONE
                onAnimationEnd?.run()
            }
        })
        animator.start()
        visibility = View.VISIBLE
        rippleInProgress = true
    }

@@ -100,6 +97,11 @@ class ChargingRippleView(context: Context?, attrs: AttributeSet?) : View(context
    }

    override fun onDraw(canvas: Canvas?) {
        if (canvas == null || !canvas.isHardwareAccelerated) {
            // Drawing with the ripple shader requires hardware acceleration, so skip
            // if it's unsupported.
            return
        }
        // To reduce overdraw, we mask the effect to a circle whose radius is big enough to cover
        // the active effect area. Values here should be kept in sync with the
        // animation implementation in the ripple shader.
+9 −7
Original line number Diff line number Diff line
@@ -28,15 +28,15 @@ import com.android.internal.annotations.VisibleForTesting
import com.android.internal.logging.UiEvent
import com.android.internal.logging.UiEventLogger
import com.android.settingslib.Utils
import com.android.systemui.R
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.statusbar.commandline.Command
import com.android.systemui.statusbar.commandline.CommandRegistry
import com.android.systemui.statusbar.policy.BatteryController
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.util.leak.RotationUtils
import com.android.systemui.R
import com.android.systemui.flags.Flags
import com.android.systemui.util.time.SystemClock
import java.io.PrintWriter
import javax.inject.Inject
@@ -53,8 +53,8 @@ private const val BASE_DEBOUNCE_TIME = 2000
@SysUISingleton
class WiredChargingRippleController @Inject constructor(
    commandRegistry: CommandRegistry,
    batteryController: BatteryController,
    configurationController: ConfigurationController,
    private val batteryController: BatteryController,
    private val configurationController: ConfigurationController,
    featureFlags: FeatureFlags,
    private val context: Context,
    private val windowManager: WindowManager,
@@ -88,6 +88,11 @@ class WiredChargingRippleController @Inject constructor(

    init {
        pluggedIn = batteryController.isPluggedIn
        commandRegistry.registerCommand("charging-ripple") { ChargingRippleCommand() }
        updateRippleColor()
    }

    fun registerCallbacks() {
        val batteryStateChangeCallback = object : BatteryController.BatteryStateChangeCallback {
            override fun onBatteryLevelChanged(
                level: Int,
@@ -123,9 +128,6 @@ class WiredChargingRippleController @Inject constructor(
            }
        }
        configurationController.addCallback(configurationChangedListener)

        commandRegistry.registerCommand("charging-ripple") { ChargingRippleCommand() }
        updateRippleColor()
    }

    // Lazily debounce ripple to avoid triggering ripple constantly (e.g. from flaky chargers).
+4 −1
Original line number Diff line number Diff line
@@ -203,6 +203,7 @@ import com.android.systemui.statusbar.PowerButtonReveal;
import com.android.systemui.statusbar.PulseExpansionHandler;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.charging.WiredChargingRippleController;
import com.android.systemui.statusbar.connectivity.NetworkController;
import com.android.systemui.statusbar.core.StatusBarInitializer;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
@@ -786,7 +787,8 @@ public class StatusBar extends CoreStartable implements
            NotifPipelineFlags notifPipelineFlags,
            InteractionJankMonitor jankMonitor,
            DeviceStateManager deviceStateManager,
            DreamOverlayStateController dreamOverlayStateController) {
            DreamOverlayStateController dreamOverlayStateController,
            WiredChargingRippleController wiredChargingRippleController) {
        super(context);
        mNotificationsController = notificationsController;
        mFragmentService = fragmentService;
@@ -912,6 +914,7 @@ public class StatusBar extends CoreStartable implements

        deviceStateManager.registerCallback(mMainExecutor,
                new FoldStateListener(mContext, this::onFoldedStateChanged));
        wiredChargingRippleController.registerCallbacks();
    }

    @Override
+5 −2
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.NotificationViewHierarchyManager;
import com.android.systemui.statusbar.PulseExpansionHandler;
import com.android.systemui.statusbar.SysuiStatusBarStateController;
import com.android.systemui.statusbar.charging.WiredChargingRippleController;
import com.android.systemui.statusbar.connectivity.NetworkController;
import com.android.systemui.statusbar.notification.DynamicPrivacyController;
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
@@ -233,7 +234,8 @@ public interface StatusBarPhoneModule {
            NotifPipelineFlags notifPipelineFlags,
            InteractionJankMonitor jankMonitor,
            DeviceStateManager deviceStateManager,
            DreamOverlayStateController dreamOverlayStateController) {
            DreamOverlayStateController dreamOverlayStateController,
            WiredChargingRippleController wiredChargingRippleController) {
        return new StatusBar(
                context,
                notificationsController,
@@ -330,7 +332,8 @@ public interface StatusBarPhoneModule {
                notifPipelineFlags,
                jankMonitor,
                deviceStateManager,
                dreamOverlayStateController
                dreamOverlayStateController,
                wiredChargingRippleController
        );
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -63,6 +63,7 @@ class WiredChargingRippleControllerTest : SysuiTestCase() {
                commandRegistry, batteryController, configurationController,
                featureFlags, context, windowManager, systemClock, uiEventLogger)
        controller.rippleView = rippleView // Replace the real ripple view with a mock instance
        controller.registerCallbacks()
    }

    @Test
Loading