Merge changes Id0882547,I427e08a3 into main

* changes:
  [Audiosharing] Change text color.
  [Audiosharing] When user enters a bad code, apply error color on summary.
This commit is contained in:
Chelsea Hao
2024-08-01 05:50:04 +00:00
committed by Android (Google) Code Review
5 changed files with 52 additions and 49 deletions

View File

@@ -43,23 +43,12 @@ class AudioStreamPreference extends TwoTargetPreference {
* Update preference UI based on connection status
*
* @param isConnected Is this stream connected
* @param summary Summary text
* @param onPreferenceClickListener Click listener for the preference
*/
void setIsConnected(
boolean isConnected,
String summary,
@Nullable OnPreferenceClickListener onPreferenceClickListener) {
if (mIsConnected == isConnected
&& getSummary() == summary
&& getOnPreferenceClickListener() == onPreferenceClickListener) {
// Nothing to update.
return;
void setIsConnected(boolean isConnected) {
if (mIsConnected != isConnected) {
mIsConnected = isConnected;
notifyChanged();
}
mIsConnected = isConnected;
setSummary(summary);
setOnPreferenceClickListener(onPreferenceClickListener);
notifyChanged();
}
@VisibleForTesting

View File

@@ -16,8 +16,12 @@
package com.android.settings.connecteddevice.audiosharing.audiostreams;
import static android.text.Spanned.SPAN_EXCLUSIVE_INCLUSIVE;
import android.os.Handler;
import android.os.Looper;
import android.text.SpannableString;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import androidx.annotation.Nullable;
@@ -26,6 +30,7 @@ import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.Utils;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
@@ -68,15 +73,31 @@ class AudioStreamStateHandler {
// Update UI
ThreadUtils.postOnMainThread(
() ->
preference.setIsConnected(
newState
== AudioStreamsProgressCategoryController.AudioStreamState
.SOURCE_ADDED,
getSummary() != EMPTY_STRING_RES
? preference.getContext().getString(getSummary())
: "",
getOnClickListener(controller)));
() -> {
String summary =
getSummary() != EMPTY_STRING_RES
? preference.getContext().getString(getSummary())
: "";
if (newState
== AudioStreamsProgressCategoryController.AudioStreamState
.ADD_SOURCE_BAD_CODE) {
SpannableString summarySpan = new SpannableString(summary);
int colorError = Utils.getColorErrorDefaultColor(preference.getContext());
summarySpan.setSpan(
new ForegroundColorSpan(colorError),
0,
summary.length(),
SPAN_EXCLUSIVE_INCLUSIVE);
preference.setSummary(summarySpan);
} else {
preference.setSummary(summary);
}
preference.setIsConnected(
newState
== AudioStreamsProgressCategoryController.AudioStreamState
.SOURCE_ADDED);
preference.setOnPreferenceClickListener(getOnClickListener(controller));
});
}
/**