Override the state description of volume seekbar.

This overrides the state description of seekbar in order to adjust the
progress percentage. The percentage of seekbar is not matching with the
percentage said by talkback feature when the volume changes. This CL
rounds the percentage to match what is said by talkback.

Bug: 285458191
Test: Enabled talkback and checked percentages of sliders of all sounds
and vibrations volumes. Video attached in bug link.
Test: atest VolumeSeekBarPreferenceTest.

Change-Id: Iedcf3eccb13b7f8ee1a4ca521f0783c55d7a1902
This commit is contained in:
Michael Mikhail
2023-07-07 18:37:45 +00:00
parent 5da1b03545
commit b222b96407
3 changed files with 171 additions and 9 deletions

View File

@@ -0,0 +1,44 @@
/*
* Copyright (C) 2023 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.
*/
package com.android.settings.notification;
import android.content.Context;
import android.net.Uri;
import android.preference.SeekBarVolumizer;
/**
* Testable wrapper around {@link SeekBarVolumizer} constructor.
*/
public class SeekBarVolumizerFactory {
private final Context mContext;
public SeekBarVolumizerFactory(Context context) {
mContext = context;
}
/**
* Creates a new SeekBarVolumizer.
*
* @param streamType of the audio manager.
* @param defaultUri of the volume.
* @param sbvc callback of the seekbar volumizer.
* @return a SeekBarVolumizer.
*/
public SeekBarVolumizer create(int streamType, Uri defaultUri, SeekBarVolumizer.Callback sbvc) {
return new SeekBarVolumizer(mContext, streamType, defaultUri, sbvc);
}
}