Merge pull request #3545 from Stypox/kore

Fix Kodi button showing up with unsupported services
pull/3556/head
wb9688 2020-05-07 21:44:09 +02:00 zatwierdzone przez GitHub
commit b990f30a09
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
5 zmienionych plików z 23 dodań i 12 usunięć

Wyświetl plik

@ -632,9 +632,10 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo>
} }
private void updateMenuItemVisibility() { private void updateMenuItemVisibility() {
// show kodi if set in settings // show kodi button if it supports the current service and it is enabled in settings
menu.findItem(R.id.action_play_with_kodi).setVisible( menu.findItem(R.id.action_play_with_kodi).setVisible(
PreferenceManager.getDefaultSharedPreferences(activity).getBoolean( KoreUtil.isServiceSupportedByKore(serviceId)
&& PreferenceManager.getDefaultSharedPreferences(activity).getBoolean(
activity.getString(R.string.show_play_with_kodi_key), false)); activity.getString(R.string.show_play_with_kodi_key), false));
} }
@ -665,8 +666,7 @@ public class VideoDetailFragment extends BaseStateFragment<StreamInfo>
return true; return true;
case R.id.action_play_with_kodi: case R.id.action_play_with_kodi:
try { try {
NavigationHelper.playWithKore(activity, Uri.parse( NavigationHelper.playWithKore(activity, Uri.parse(currentInfo.getUrl()));
url.replace("https", "http")));
} catch (Exception e) { } catch (Exception e) {
if (DEBUG) { if (DEBUG) {
Log.i(TAG, "Failed to start kore", e); Log.i(TAG, "Failed to start kore", e);

Wyświetl plik

@ -593,9 +593,6 @@ public final class MainVideoPlayer extends AppCompatActivity
titleTextView.setSelected(true); titleTextView.setSelected(true);
channelTextView.setSelected(true); channelTextView.setSelected(true);
boolean showKodiButton = PreferenceManager.getDefaultSharedPreferences(this.context)
.getBoolean(this.context.getString(R.string.show_play_with_kodi_key), false);
kodiButton.setVisibility(showKodiButton ? View.VISIBLE : View.GONE);
getRootView().setKeepScreenOn(true); getRootView().setKeepScreenOn(true);
} }
@ -712,6 +709,13 @@ public final class MainVideoPlayer extends AppCompatActivity
protected void onMetadataChanged(@NonNull final MediaSourceTag tag) { protected void onMetadataChanged(@NonNull final MediaSourceTag tag) {
super.onMetadataChanged(tag); super.onMetadataChanged(tag);
// show kodi button if it supports the current service and it is enabled in settings
final boolean showKodiButton =
KoreUtil.isServiceSupportedByKore(tag.getMetadata().getServiceId())
&& PreferenceManager.getDefaultSharedPreferences(context)
.getBoolean(context.getString(R.string.show_play_with_kodi_key), false);
kodiButton.setVisibility(showKodiButton ? View.VISIBLE : View.GONE);
titleTextView.setText(tag.getMetadata().getName()); titleTextView.setText(tag.getMetadata().getName());
channelTextView.setText(tag.getMetadata().getUploaderName()); channelTextView.setText(tag.getMetadata().getUploaderName());
} }
@ -725,13 +729,12 @@ public final class MainVideoPlayer extends AppCompatActivity
public void onKodiShare() { public void onKodiShare() {
onPause(); onPause();
try { try {
NavigationHelper.playWithKore(this.context, NavigationHelper.playWithKore(context, Uri.parse(playerImpl.getVideoUrl()));
Uri.parse(playerImpl.getVideoUrl().replace("https", "http")));
} catch (Exception e) { } catch (Exception e) {
if (DEBUG) { if (DEBUG) {
Log.i(TAG, "Failed to start kore", e); Log.i(TAG, "Failed to start kore", e);
} }
KoreUtil.showInstallKoreDialog(this.context); KoreUtil.showInstallKoreDialog(context);
} }
} }

Wyświetl plik

@ -7,10 +7,16 @@ import android.content.DialogInterface;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
import org.schabi.newpipe.R; import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.ServiceList;
public final class KoreUtil { public final class KoreUtil {
private KoreUtil() { } private KoreUtil() { }
public static boolean isServiceSupportedByKore(final int serviceId) {
return (serviceId == ServiceList.YouTube.getServiceId()
|| serviceId == ServiceList.SoundCloud.getServiceId());
}
public static void showInstallKoreDialog(final Context context) { public static void showInstallKoreDialog(final Context context) {
final AlertDialog.Builder builder = new AlertDialog.Builder(context); final AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(R.string.kore_not_found) builder.setMessage(R.string.kore_not_found)

Wyświetl plik

@ -325,8 +325,9 @@
android:src="@drawable/ic_cast_white_24dp" android:src="@drawable/ic_cast_white_24dp"
android:background="?attr/selectableItemBackground" android:background="?attr/selectableItemBackground"
android:contentDescription="@string/play_with_kodi_title" android:contentDescription="@string/play_with_kodi_title"
android:visibility="gone"
tools:ignore="RtlHardcoded" tools:ignore="RtlHardcoded"
android:visibility="visible"/> tools:visibility="visible"/>
<ImageButton <ImageButton
android:id="@+id/share" android:id="@+id/share"

Wyświetl plik

@ -317,8 +317,9 @@
android:src="@drawable/ic_cast_white_24dp" android:src="@drawable/ic_cast_white_24dp"
android:background="?attr/selectableItemBackground" android:background="?attr/selectableItemBackground"
android:contentDescription="@string/play_with_kodi_title" android:contentDescription="@string/play_with_kodi_title"
android:visibility="gone"
tools:ignore="RtlHardcoded" tools:ignore="RtlHardcoded"
android:visibility="visible"/> tools:visibility="visible"/>
<ImageButton <ImageButton
android:id="@+id/share" android:id="@+id/share"