mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2024-12-23 00:20:32 +00:00
Disable media tunneling if the device is known for not supporting it
Revert removing the Utils related to media tunneling.
This commit is contained in:
parent
78e577d260
commit
8b63b437d8
@ -76,6 +76,10 @@ public final class NewPipeSettings {
|
|||||||
|
|
||||||
saveDefaultVideoDownloadDirectory(context);
|
saveDefaultVideoDownloadDirectory(context);
|
||||||
saveDefaultAudioDownloadDirectory(context);
|
saveDefaultAudioDownloadDirectory(context);
|
||||||
|
|
||||||
|
if (isFirstRun) { // NOSONAR: isFirstRun is never null
|
||||||
|
setMediaTunneling(context);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void saveDefaultVideoDownloadDirectory(final Context context) {
|
static void saveDefaultVideoDownloadDirectory(final Context context) {
|
||||||
@ -152,4 +156,18 @@ public final class NewPipeSettings {
|
|||||||
return showSearchSuggestions(context, sharedPreferences,
|
return showSearchSuggestions(context, sharedPreferences,
|
||||||
R.string.show_remote_search_suggestions_key);
|
R.string.show_remote_search_suggestions_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if device does not support media tunneling
|
||||||
|
* and disable that exoplayer feature if necessary.
|
||||||
|
* @see DeviceUtils#shouldSupportMediaTunneling()
|
||||||
|
* @param context
|
||||||
|
*/
|
||||||
|
public static void setMediaTunneling(@NonNull final Context context) {
|
||||||
|
if (!DeviceUtils.shouldSupportMediaTunneling()) {
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(context).edit()
|
||||||
|
.putBoolean(context.getString(R.string.disable_media_tunneling_key), true)
|
||||||
|
.apply();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,6 +128,17 @@ public final class SettingMigrations {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static final Migration MIGRATION_5_6 = new Migration(5, 6) {
|
||||||
|
@Override
|
||||||
|
protected void migrate(@NonNull final Context context) {
|
||||||
|
// PR #8875 added a new settings page for exoplayer introducing a specific setting
|
||||||
|
// to disable media tunneling. However, media tunneling should be disabled by default
|
||||||
|
// for some devices, because they are known for not supporting media tunneling
|
||||||
|
// which can result in a black screen while playing videos.
|
||||||
|
NewPipeSettings.setMediaTunneling(context);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of all implemented migrations.
|
* List of all implemented migrations.
|
||||||
* <p>
|
* <p>
|
||||||
@ -140,12 +151,13 @@ public final class SettingMigrations {
|
|||||||
MIGRATION_2_3,
|
MIGRATION_2_3,
|
||||||
MIGRATION_3_4,
|
MIGRATION_3_4,
|
||||||
MIGRATION_4_5,
|
MIGRATION_4_5,
|
||||||
|
MIGRATION_5_6,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Version number for preferences. Must be incremented every time a migration is necessary.
|
* Version number for preferences. Must be incremented every time a migration is necessary.
|
||||||
*/
|
*/
|
||||||
private static final int VERSION = 5;
|
private static final int VERSION = 6;
|
||||||
|
|
||||||
|
|
||||||
public static void initMigrations(@NonNull final Context context, final boolean isFirstRun) {
|
public static void initMigrations(@NonNull final Context context, final boolean isFirstRun) {
|
||||||
|
@ -36,6 +36,31 @@ public final class DeviceUtils {
|
|||||||
private static Boolean isTV = null;
|
private static Boolean isTV = null;
|
||||||
private static Boolean isFireTV = null;
|
private static Boolean isFireTV = null;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Devices that do not support media tunneling
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Formuler Z8 Pro, Z8, CC, Z Alpha, Z+ Neo.
|
||||||
|
*/
|
||||||
|
private static final boolean HI3798MV200 = Build.VERSION.SDK_INT == 24
|
||||||
|
&& Build.DEVICE.equals("Hi3798MV200");
|
||||||
|
/**
|
||||||
|
* Zephir TS43UHD-2.
|
||||||
|
*/
|
||||||
|
private static final boolean CVT_MT5886_EU_1G = Build.VERSION.SDK_INT == 24
|
||||||
|
&& Build.DEVICE.equals("cvt_mt5886_eu_1g");
|
||||||
|
/**
|
||||||
|
* Hilife TV.
|
||||||
|
*/
|
||||||
|
private static final boolean REALTEKATV = Build.VERSION.SDK_INT == 25
|
||||||
|
&& Build.DEVICE.equals("RealtekATV");
|
||||||
|
/**
|
||||||
|
* Philips QM16XE.
|
||||||
|
*/
|
||||||
|
private static final boolean QM16XE_U = Build.VERSION.SDK_INT == 23
|
||||||
|
&& Build.DEVICE.equals("QM16XE_U");
|
||||||
|
|
||||||
private DeviceUtils() {
|
private DeviceUtils() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -224,4 +249,20 @@ public final class DeviceUtils {
|
|||||||
return point.y;
|
return point.y;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Some devices have broken tunneled video playback but claim to support it.
|
||||||
|
* See https://github.com/TeamNewPipe/NewPipe/issues/5911
|
||||||
|
* @Note Add a new {@link org.schabi.newpipe.settings.SettingMigrations.Migration} which calls
|
||||||
|
* {@link org.schabi.newpipe.settings.NewPipeSettings#setMediaTunneling(Context)}
|
||||||
|
* when adding a new device to the method
|
||||||
|
* @return {@code false} if affected device; {@code true} otherwise
|
||||||
|
*/
|
||||||
|
public static boolean shouldSupportMediaTunneling() {
|
||||||
|
// Maintainers note: add a new SettingsMigration which calls
|
||||||
|
return !HI3798MV200
|
||||||
|
&& !CVT_MT5886_EU_1G
|
||||||
|
&& !REALTEKATV
|
||||||
|
&& !QM16XE_U;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user