Loading packages/SystemUI/res/anim/volume_dialog_ringer_close.xml 0 → 100644 +22 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?><!-- ~ Copyright (C) 2025 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:controlX1="0.20" android:controlY1="0.00" android:controlX2="0.00" android:controlY2="1.00" /> No newline at end of file packages/SystemUI/res/anim/volume_dialog_ringer_open.xml 0 → 100644 +22 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?><!-- ~ Copyright (C) 2025 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:controlX1="0.05" android:controlY1="0.70" android:controlX2="0.10" android:controlY2="1.00" /> No newline at end of file packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt +16 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.widget.ImageButton import androidx.annotation.LayoutRes import androidx.compose.ui.util.fastForEachIndexed import androidx.constraintlayout.motion.widget.MotionLayout import androidx.constraintlayout.motion.widget.MotionScene import androidx.dynamicanimation.animation.FloatValueHolder import androidx.dynamicanimation.animation.SpringAnimation import androidx.dynamicanimation.animation.SpringForce Loading @@ -47,6 +48,7 @@ import com.android.systemui.volume.dialog.ui.viewmodel.VolumeDialogViewModel import javax.inject.Inject import kotlin.properties.Delegates import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.flow.mapLatest Loading @@ -55,6 +57,7 @@ private const val CLOSE_DRAWER_DELAY = 300L // Ensure roundness and color of button is updated when progress is changed by a minimum fraction. private const val BUTTON_MIN_VISIBLE_CHANGE = 0.05F @OptIn(ExperimentalCoroutinesApi::class) @VolumeDialogScope class VolumeDialogRingerViewBinder @Inject Loading Loading @@ -208,6 +211,13 @@ constructor( ringerState.orientation, ringerBackgroundView, ) drawerContainer .getTransition(R.id.close_to_open_transition) .setInterpolatorInfo( MotionScene.Transition.INTERPOLATE_REFERENCE_ID, null, R.anim.volume_dialog_ringer_open, ) drawerContainer.transitionToState( R.id.volume_dialog_ringer_drawer_open ) Loading Loading @@ -370,6 +380,12 @@ constructor( orientation: Int, ) { setTransition(R.id.close_to_open_transition) getTransition(R.id.close_to_open_transition) .setInterpolatorInfo( MotionScene.Transition.INTERPOLATE_REFERENCE_ID, null, R.anim.volume_dialog_ringer_close, ) updateCloseState(this, selectedIndex, orientation, ringerBackground) transitionToState(R.id.volume_dialog_ringer_drawer_close) } Loading Loading
packages/SystemUI/res/anim/volume_dialog_ringer_close.xml 0 → 100644 +22 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?><!-- ~ Copyright (C) 2025 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:controlX1="0.20" android:controlY1="0.00" android:controlX2="0.00" android:controlY2="1.00" /> No newline at end of file
packages/SystemUI/res/anim/volume_dialog_ringer_open.xml 0 → 100644 +22 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?><!-- ~ Copyright (C) 2025 The Android Open Source Project ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <pathInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:controlX1="0.05" android:controlY1="0.70" android:controlX2="0.10" android:controlY2="1.00" /> No newline at end of file
packages/SystemUI/src/com/android/systemui/volume/dialog/ringer/ui/binder/VolumeDialogRingerViewBinder.kt +16 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import android.widget.ImageButton import androidx.annotation.LayoutRes import androidx.compose.ui.util.fastForEachIndexed import androidx.constraintlayout.motion.widget.MotionLayout import androidx.constraintlayout.motion.widget.MotionScene import androidx.dynamicanimation.animation.FloatValueHolder import androidx.dynamicanimation.animation.SpringAnimation import androidx.dynamicanimation.animation.SpringForce Loading @@ -47,6 +48,7 @@ import com.android.systemui.volume.dialog.ui.viewmodel.VolumeDialogViewModel import javax.inject.Inject import kotlin.properties.Delegates import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.flow.mapLatest Loading @@ -55,6 +57,7 @@ private const val CLOSE_DRAWER_DELAY = 300L // Ensure roundness and color of button is updated when progress is changed by a minimum fraction. private const val BUTTON_MIN_VISIBLE_CHANGE = 0.05F @OptIn(ExperimentalCoroutinesApi::class) @VolumeDialogScope class VolumeDialogRingerViewBinder @Inject Loading Loading @@ -208,6 +211,13 @@ constructor( ringerState.orientation, ringerBackgroundView, ) drawerContainer .getTransition(R.id.close_to_open_transition) .setInterpolatorInfo( MotionScene.Transition.INTERPOLATE_REFERENCE_ID, null, R.anim.volume_dialog_ringer_open, ) drawerContainer.transitionToState( R.id.volume_dialog_ringer_drawer_open ) Loading Loading @@ -370,6 +380,12 @@ constructor( orientation: Int, ) { setTransition(R.id.close_to_open_transition) getTransition(R.id.close_to_open_transition) .setInterpolatorInfo( MotionScene.Transition.INTERPOLATE_REFERENCE_ID, null, R.anim.volume_dialog_ringer_close, ) updateCloseState(this, selectedIndex, orientation, ringerBackground) transitionToState(R.id.volume_dialog_ringer_drawer_close) } Loading