pull/123/head
FongMi 3 years ago
parent b55e8a7320
commit fabc6a886d
  1. 50
      app/src/mobile/java/com/fongmi/android/tv/cast/CastOptionsProvider.java
  2. 15
      app/src/mobile/res/layout/dialog_cast.xml

@ -1,50 +0,0 @@
package com.fongmi.android.tv.cast;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.ui.activity.MainActivity;
import com.google.android.gms.cast.LaunchOptions;
import com.google.android.gms.cast.MediaMetadata;
import com.google.android.gms.cast.framework.CastOptions;
import com.google.android.gms.cast.framework.OptionsProvider;
import com.google.android.gms.cast.framework.SessionProvider;
import com.google.android.gms.cast.framework.media.CastMediaOptions;
import com.google.android.gms.cast.framework.media.ImageHints;
import com.google.android.gms.cast.framework.media.ImagePicker;
import com.google.android.gms.cast.framework.media.MediaIntentReceiver;
import com.google.android.gms.cast.framework.media.NotificationOptions;
import com.google.android.gms.common.images.WebImage;
import java.util.Arrays;
import java.util.List;
public class CastOptionsProvider implements OptionsProvider {
@NonNull
@Override
public CastOptions getCastOptions(Context context) {
NotificationOptions notificationOptions = new NotificationOptions.Builder().setActions(Arrays.asList(MediaIntentReceiver.ACTION_SKIP_NEXT, MediaIntentReceiver.ACTION_TOGGLE_PLAYBACK, MediaIntentReceiver.ACTION_STOP_CASTING), new int[]{1, 2}).setTargetActivityClassName(MainActivity.class.getName()).build();
CastMediaOptions mediaOptions = new CastMediaOptions.Builder().setImagePicker(new ImagePickerImpl()).setNotificationOptions(notificationOptions).setExpandedControllerActivityClassName(MainActivity.class.getName()).build();
LaunchOptions launchOptions = new LaunchOptions.Builder().setAndroidReceiverCompatible(true).build();
return new CastOptions.Builder().setLaunchOptions(launchOptions).setReceiverApplicationId(context.getString(R.string.app_id)).setCastMediaOptions(mediaOptions).build();
}
@Nullable
@Override
public List<SessionProvider> getAdditionalSessionProviders(@NonNull Context context) {
return null;
}
private static class ImagePickerImpl extends ImagePicker {
@Override
public WebImage onPickImage(MediaMetadata mediaMetadata, @NonNull ImageHints hints) {
if (mediaMetadata == null || !mediaMetadata.hasImages()) return null;
return mediaMetadata.getImages().get(0);
}
}
}

@ -15,21 +15,6 @@
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/cast_select"
android:textColor="?android:attr/textColorPrimary"
android:textSize="16sp" />
<androidx.mediarouter.app.MediaRouteButton
android:id="@+id/cast"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="20dp"
android:mediaRouteTypes="user" />
<ImageView
android:id="@+id/scan"
android:layout_width="wrap_content"

Loading…
Cancel
Save