Browse Source

Rework the PiP conditions

Fixes #3199
merge-requests/1594/merge
Nicolas Pomepuy 12 months ago
parent
commit
caebf7e61c
  1. 15
      application/resources/src/main/java/org/videolan/resources/AndroidDevices.kt
  2. 1
      application/vlc-android/src/org/videolan/vlc/gui/helpers/PlayerOptionsDelegate.kt
  3. 2
      application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt

15
application/resources/src/main/java/org/videolan/resources/AndroidDevices.kt

@ -37,8 +37,13 @@ import org.videolan.resources.util.getPackageInfoCompat
import org.videolan.tools.containsName
import org.videolan.tools.getFileNameFromPath
import org.videolan.tools.startsWith
import java.io.*
import java.util.*
import java.io.BufferedReader
import java.io.Closeable
import java.io.File
import java.io.FileReader
import java.io.IOException
import java.util.Locale
import java.util.StringTokenizer
import kotlin.math.absoluteValue
@TargetApi(VERSION_CODES.N)
@ -53,7 +58,9 @@ object AndroidDevices {
val isTv: Boolean
val isAmazon = Build.MANUFACTURER == "Amazon"
val isChromeBook: Boolean
//Is the system PiP available on this device system
val hasPiP: Boolean
//Is PiP or custom PiP allowed on this device
val pipAllowed: Boolean
private val noMediaStyleManufacturers = arrayOf("huawei", "symphony teleca")
val showMediaStyle = !isManufacturerBannedForMediastyleNotifications
@ -128,8 +135,8 @@ object AndroidDevices {
isChromeBook = pm != null && pm.hasSystemFeature("org.chromium.arc.device_management")
isTv = isAndroidTv || !isChromeBook && !hasTsp
hasPlayServices = pm == null || hasPlayServices(pm)
hasPiP = AndroidUtil.isOOrLater && pm != null && pm.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE) || AndroidUtil.isNougatOrLater && isAndroidTv
pipAllowed = hasPiP || hasTsp && !AndroidUtil.isOOrLater
hasPiP = pm != null && pm.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)
pipAllowed = hasPiP || (hasTsp && !AndroidUtil.isOOrLater)
val tm = ctx.getSystemService<TelephonyManager>()
isPhone = tm == null || tm.phoneType != TelephonyManager.PHONE_TYPE_NONE
}

1
application/vlc-android/src/org/videolan/vlc/gui/helpers/PlayerOptionsDelegate.kt

@ -3,6 +3,7 @@ package org.videolan.vlc.gui.helpers
import android.annotation.SuppressLint
import android.content.DialogInterface
import android.content.Intent
import android.content.pm.PackageManager
import android.support.v4.media.session.PlaybackStateCompat
import android.view.Gravity
import android.view.LayoutInflater

2
application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt

@ -70,7 +70,7 @@ object PreferenceVisibilityManager {
TV_FOLDERS_FIRST, BROWSER_SHOW_HIDDEN_FILES, PLAYLIST_MODE_VIDEO, PLAYLIST_MODE_AUDIO -> forTv
"show_update" -> !forTv && BuildConfig.DEBUG
AUDIO_DUCKING -> !AndroidUtil.isOOrLater
POPUP_FORCE_LEGACY -> AndroidUtil.isOOrLater && !forTv
POPUP_FORCE_LEGACY -> AndroidDevices.pipAllowed
RESUME_PLAYBACK -> AndroidDevices.isPhone && !forTv
KEY_AOUT -> VlcMigrationHelper.getAudioOutputFromDevice() == VlcMigrationHelper.AudioOutput.ALL
"audio_digital_output" -> sharedPreferences.getString("aout", "0") != "2"

Loading…
Cancel
Save