Enable focus highlighting in track selection dialogs

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=140479099
This commit is contained in:
olly 2016-11-29 07:59:49 -08:00 committed by Oliver Woodman
parent 7bbe213e57
commit bfc2faa269

View File

@ -18,7 +18,9 @@ package com.google.android.exoplayer2.demo;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.res.TypedArray;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Pair; import android.util.Pair;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -100,7 +102,7 @@ import java.util.Locale;
AlertDialog.Builder builder = new AlertDialog.Builder(activity); AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(title) builder.setTitle(title)
.setView(buildView(LayoutInflater.from(builder.getContext()))) .setView(buildView(builder.getContext()))
.setPositiveButton(android.R.string.ok, this) .setPositiveButton(android.R.string.ok, this)
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.create() .create()
@ -108,13 +110,20 @@ import java.util.Locale;
} }
@SuppressLint("InflateParams") @SuppressLint("InflateParams")
private View buildView(LayoutInflater inflater) { private View buildView(Context context) {
LayoutInflater inflater = LayoutInflater.from(context);
View view = inflater.inflate(R.layout.track_selection_dialog, null); View view = inflater.inflate(R.layout.track_selection_dialog, null);
ViewGroup root = (ViewGroup) view.findViewById(R.id.root); ViewGroup root = (ViewGroup) view.findViewById(R.id.root);
TypedArray attributeArray = context.getTheme().obtainStyledAttributes(
new int[] {android.R.attr.selectableItemBackground});
int selectableItemBackgroundResourceId = attributeArray.getResourceId(0, 0);
attributeArray.recycle();
// View for disabling the renderer. // View for disabling the renderer.
disableView = (CheckedTextView) inflater.inflate( disableView = (CheckedTextView) inflater.inflate(
android.R.layout.simple_list_item_single_choice, root, false); android.R.layout.simple_list_item_single_choice, root, false);
disableView.setBackgroundResource(selectableItemBackgroundResourceId);
disableView.setText(R.string.selection_disabled); disableView.setText(R.string.selection_disabled);
disableView.setFocusable(true); disableView.setFocusable(true);
disableView.setOnClickListener(this); disableView.setOnClickListener(this);
@ -123,6 +132,7 @@ import java.util.Locale;
// View for clearing the override to allow the selector to use its default selection logic. // View for clearing the override to allow the selector to use its default selection logic.
defaultView = (CheckedTextView) inflater.inflate( defaultView = (CheckedTextView) inflater.inflate(
android.R.layout.simple_list_item_single_choice, root, false); android.R.layout.simple_list_item_single_choice, root, false);
defaultView.setBackgroundResource(selectableItemBackgroundResourceId);
defaultView.setText(R.string.selection_default); defaultView.setText(R.string.selection_default);
defaultView.setFocusable(true); defaultView.setFocusable(true);
defaultView.setOnClickListener(this); defaultView.setOnClickListener(this);
@ -146,6 +156,7 @@ import java.util.Locale;
: android.R.layout.simple_list_item_single_choice; : android.R.layout.simple_list_item_single_choice;
CheckedTextView trackView = (CheckedTextView) inflater.inflate( CheckedTextView trackView = (CheckedTextView) inflater.inflate(
trackViewLayoutId, root, false); trackViewLayoutId, root, false);
trackView.setBackgroundResource(selectableItemBackgroundResourceId);
trackView.setText(buildTrackName(group.getFormat(trackIndex))); trackView.setText(buildTrackName(group.getFormat(trackIndex)));
if (trackInfo.getTrackFormatSupport(rendererIndex, groupIndex, trackIndex) if (trackInfo.getTrackFormatSupport(rendererIndex, groupIndex, trackIndex)
== RendererCapabilities.FORMAT_HANDLED) { == RendererCapabilities.FORMAT_HANDLED) {
@ -169,6 +180,7 @@ import java.util.Locale;
// View for using random adaptation. // View for using random adaptation.
enableRandomAdaptationView = (CheckedTextView) inflater.inflate( enableRandomAdaptationView = (CheckedTextView) inflater.inflate(
android.R.layout.simple_list_item_multiple_choice, root, false); android.R.layout.simple_list_item_multiple_choice, root, false);
enableRandomAdaptationView.setBackgroundResource(selectableItemBackgroundResourceId);
enableRandomAdaptationView.setText(R.string.enable_random_adaptation); enableRandomAdaptationView.setText(R.string.enable_random_adaptation);
enableRandomAdaptationView.setOnClickListener(this); enableRandomAdaptationView.setOnClickListener(this);
root.addView(inflater.inflate(R.layout.list_divider, root, false)); root.addView(inflater.inflate(R.layout.list_divider, root, false));