[Audiosharing] Add prefix to device list item text in adapter.

Bug: 305620450
Test: atest
Change-Id: Icd8f7032d9bcf1be133d6b3f4c165ca98e0dfa60
This commit is contained in:
Yiyi Shen
2023-12-08 17:04:43 +08:00
parent 79028d1c8f
commit ab3136a51d
8 changed files with 31 additions and 19 deletions

View File

@@ -17,16 +17,17 @@
<FrameLayout <FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:orientation="vertical">
<Button <Button
android:id="@+id/device_button" android:id="@+id/device_button"
android:overScrollMode="never" style="@style/SettingsLibActionButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textAlignment="center" android:layout_marginTop="4dp"
android:text=""/> android:background="@drawable/audio_sharing_rounded_bg_ripple"
android:textAlignment="center" />
</FrameLayout> </FrameLayout>

View File

@@ -50,7 +50,7 @@
android:src="@drawable/audio_sharing_guidance" android:src="@drawable/audio_sharing_guidance"
android:visibility="gone" /> android:visibility="gone" />
<com.android.internal.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/btn_list" android:id="@+id/btn_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View File

@@ -31,11 +31,13 @@
android:layout_gravity="center" android:layout_gravity="center"
android:paddingBottom="24dp" /> android:paddingBottom="24dp" />
<com.android.internal.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/device_btn_list" android:id="@+id/device_btn_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" /> android:layout_gravity="center"
android:nestedScrollingEnabled="false"
android:overScrollMode="never" />
<Button <Button
android:id="@+id/cancel_btn" android:id="@+id/cancel_btn"

View File

@@ -22,7 +22,8 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import com.android.internal.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R; import com.android.settings.R;
import java.util.ArrayList; import java.util.ArrayList;
@@ -32,11 +33,13 @@ public class AudioSharingDeviceAdapter extends RecyclerView.Adapter<RecyclerView
private static final String TAG = "AudioSharingDeviceAdapter"; private static final String TAG = "AudioSharingDeviceAdapter";
private final ArrayList<AudioSharingDeviceItem> mDevices; private final ArrayList<AudioSharingDeviceItem> mDevices;
private final OnClickListener mOnClickListener; private final OnClickListener mOnClickListener;
private final String mPrefix;
public AudioSharingDeviceAdapter( public AudioSharingDeviceAdapter(
ArrayList<AudioSharingDeviceItem> devices, OnClickListener listener) { ArrayList<AudioSharingDeviceItem> devices, OnClickListener listener, String prefix) {
mDevices = devices; mDevices = devices;
mOnClickListener = listener; mOnClickListener = listener;
mPrefix = prefix;
} }
private class AudioSharingDeviceViewHolder extends RecyclerView.ViewHolder { private class AudioSharingDeviceViewHolder extends RecyclerView.ViewHolder {
@@ -49,7 +52,7 @@ public class AudioSharingDeviceAdapter extends RecyclerView.Adapter<RecyclerView
public void bindView(int position) { public void bindView(int position) {
if (mButtonView != null) { if (mButtonView != null) {
mButtonView.setText(mDevices.get(position).getName()); mButtonView.setText(mPrefix + mDevices.get(position).getName());
mButtonView.setOnClickListener( mButtonView.setOnClickListener(
v -> mOnClickListener.onClick(mDevices.get(position))); v -> mOnClickListener.onClick(mDevices.get(position)));
} else { } else {

View File

@@ -28,9 +28,9 @@ import android.widget.TextView;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.widget.LinearLayoutManager;
import com.android.internal.widget.RecyclerView;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -139,7 +139,8 @@ public class AudioSharingDialogFragment extends InstrumentedDialogFragment {
(AudioSharingDeviceItem item) -> { (AudioSharingDeviceItem item) -> {
sListener.onItemClick(item); sListener.onItemClick(item);
dismiss(); dismiss();
})); },
"Connect "));
recyclerView.setLayoutManager( recyclerView.setLayoutManager(
new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false)); new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
recyclerView.setVisibility(View.VISIBLE); recyclerView.setVisibility(View.VISIBLE);

View File

@@ -28,9 +28,9 @@ import android.widget.TextView;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.widget.LinearLayoutManager;
import com.android.internal.widget.RecyclerView;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -110,7 +110,8 @@ public class AudioSharingDisconnectDialogFragment extends InstrumentedDialogFrag
(AudioSharingDeviceItem item) -> { (AudioSharingDeviceItem item) -> {
sListener.onItemClick(item); sListener.onItemClick(item);
dismiss(); dismiss();
})); },
"Disconnect "));
recyclerView.setLayoutManager( recyclerView.setLayoutManager(
new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false)); new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
Button cancelBtn = rootView.findViewById(R.id.cancel_btn); Button cancelBtn = rootView.findViewById(R.id.cancel_btn);

View File

@@ -34,6 +34,7 @@ import android.widget.TextView;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.flags.Flags; import com.android.settings.flags.Flags;
@@ -154,7 +155,7 @@ public class AudioSharingDialogFragmentTest {
Button shareBtn = rootView.findViewById(R.id.share_btn); Button shareBtn = rootView.findViewById(R.id.share_btn);
assertThat(dialog.isShowing()).isTrue(); assertThat(dialog.isShowing()).isTrue();
assertThat(subtitle1.getVisibility()).isEqualTo(View.VISIBLE); assertThat(subtitle1.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(TEST_DEVICE_NAME1).isEqualTo(subtitle1.getText()); assertThat(subtitle1.getText().toString()).isEqualTo(TEST_DEVICE_NAME1);
assertThat(guidance.getVisibility()).isEqualTo(View.GONE); assertThat(guidance.getVisibility()).isEqualTo(View.GONE);
assertThat(shareBtn.getVisibility()).isEqualTo(View.VISIBLE); assertThat(shareBtn.getVisibility()).isEqualTo(View.VISIBLE);
} }
@@ -205,10 +206,13 @@ public class AudioSharingDialogFragmentTest {
TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1); TextView subtitle1 = rootView.findViewById(R.id.share_audio_subtitle1);
ImageView guidance = rootView.findViewById(R.id.share_audio_guidance); ImageView guidance = rootView.findViewById(R.id.share_audio_guidance);
Button shareBtn = rootView.findViewById(R.id.share_btn); Button shareBtn = rootView.findViewById(R.id.share_btn);
RecyclerView recyclerView = rootView.findViewById(R.id.btn_list);
assertThat(dialog.isShowing()).isTrue(); assertThat(dialog.isShowing()).isTrue();
assertThat(subtitle1.getVisibility()).isEqualTo(View.GONE); assertThat(subtitle1.getVisibility()).isEqualTo(View.GONE);
assertThat(guidance.getVisibility()).isEqualTo(View.GONE); assertThat(guidance.getVisibility()).isEqualTo(View.GONE);
assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE); assertThat(shareBtn.getVisibility()).isEqualTo(View.GONE);
assertThat(recyclerView.getVisibility()).isEqualTo(View.VISIBLE);
assertThat(recyclerView.getAdapter().getItemCount()).isEqualTo(3);
} }
@Test @Test

View File

@@ -31,8 +31,8 @@ import android.view.View;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.widget.RecyclerView;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.flags.Flags; import com.android.settings.flags.Flags;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat; import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;