mirror of
https://github.com/samsonjs/media.git
synced 2026-04-11 12:15:47 +00:00
dev: add setting theme for TrackSelectionDialogBuilder
This commit is contained in:
parent
99d245f7a6
commit
88d7587ca7
1 changed files with 10 additions and 3 deletions
|
|
@ -24,6 +24,7 @@ import android.content.DialogInterface;
|
|||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.StyleRes;
|
||||
import com.google.android.exoplayer2.source.TrackGroupArray;
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
|
||||
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector.SelectionOverride;
|
||||
|
|
@ -49,6 +50,7 @@ public final class TrackSelectionDialogBuilder {
|
|||
}
|
||||
|
||||
private final Context context;
|
||||
@StyleRes private int themeResId;
|
||||
private final CharSequence title;
|
||||
private final MappedTrackInfo mappedTrackInfo;
|
||||
private final int rendererIndex;
|
||||
|
|
@ -121,6 +123,11 @@ public final class TrackSelectionDialogBuilder {
|
|||
newOverrides.isEmpty() ? null : newOverrides.get(0)));
|
||||
}
|
||||
|
||||
public TrackSelectionDialogBuilder setTheme(int themeResId) {
|
||||
this.themeResId = themeResId;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets whether the selection is initially shown as disabled.
|
||||
*
|
||||
|
|
@ -214,7 +221,7 @@ public final class TrackSelectionDialogBuilder {
|
|||
}
|
||||
|
||||
private Dialog buildForPlatform() {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context);
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(context, themeResId);
|
||||
|
||||
// Inflate with the builder's context to ensure the correct style is used.
|
||||
LayoutInflater dialogInflater = LayoutInflater.from(builder.getContext());
|
||||
|
|
@ -238,8 +245,8 @@ public final class TrackSelectionDialogBuilder {
|
|||
// the APK size even with shrinking. See https://issuetracker.google.com/161514204.
|
||||
// LINT.IfChange
|
||||
Class<?> builderClazz = Class.forName("androidx.appcompat.app.AlertDialog$Builder");
|
||||
Constructor<?> builderConstructor = builderClazz.getConstructor(Context.class);
|
||||
Object builder = builderConstructor.newInstance(context);
|
||||
Constructor<?> builderConstructor = builderClazz.getConstructor(Context.class, int.class);
|
||||
Object builder = builderConstructor.newInstance(context, themeResId);
|
||||
|
||||
// Inflate with the builder's context to ensure the correct style is used.
|
||||
Context builderContext = (Context) builderClazz.getMethod("getContext").invoke(builder);
|
||||
|
|
|
|||
Loading…
Reference in a new issue