Browse Source

Feedback: open the right settings on TV when no email client installed

merge-requests/2231/head
Nicolas Pomepuy 1 year ago
parent
commit
eba0ba0bae
  1. 1
      application/resources/src/main/java/org/videolan/resources/Constants.kt
  2. 7
      application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesActivity.kt
  3. 25
      application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesFragment.kt
  4. 11
      application/vlc-android/src/org/videolan/vlc/gui/FeedbackActivity.kt

1
application/resources/src/main/java/org/videolan/resources/Constants.kt

@ -242,6 +242,7 @@ const val TV_SEARCH_ACTIVITY = "org.videolan.television.ui.SearchActivity"
const val MOBILE_SEARCH_ACTIVITY = "org.videolan.vlc.gui.SearchActivity"
const val TV_MAIN_ACTIVITY = "org.videolan.television.ui.MainTvActivity"
const val TV_CONFIRMATION_ACTIVITY = "org.videolan.television.ui.dialogs.ConfirmationTvActivity"
const val TV_PREFERENCE_ACTIVITY = "org.videolan.television.ui.preferences.PreferencesActivity"
const val MOBILE_MAIN_ACTIVITY = "org.videolan.vlc.gui.MainActivity"
const val MOVIEPEDIA_ACTIVITY = "org.videolan.moviepedia.ui.MoviepediaActivity"
const val TV_AUDIOPLAYER_ACTIVITY = "org.videolan.television.ui.audioplayer.AudioPlayerActivity"

7
application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesActivity.kt

@ -38,9 +38,11 @@ import org.videolan.tools.Settings
import org.videolan.vlc.PlaybackService
import org.videolan.vlc.gui.PinCodeActivity
import org.videolan.vlc.gui.PinCodeReason
import org.videolan.vlc.gui.preferences.EXTRA_PREF_END_POINT
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
class PreferencesActivity : BaseTvActivity() {
var extraEndPoint: String? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -50,6 +52,11 @@ class PreferencesActivity : BaseTvActivity() {
val intent = PinCodeActivity.getIntent(this, PinCodeReason.CHECK)
startActivityForResult(intent, 0)
}
if (savedInstanceState == null) {
if (intent.hasExtra(EXTRA_PREF_END_POINT)) {
extraEndPoint = intent.getStringExtra(EXTRA_PREF_END_POINT)
}
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {

25
application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesFragment.kt

@ -35,9 +35,24 @@ import androidx.preference.CheckBoxPreference
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import org.videolan.medialibrary.interfaces.Medialibrary
import org.videolan.resources.*
import org.videolan.tools.*
import org.videolan.resources.AndroidDevices
import org.videolan.resources.KEY_AUDIO_LAST_PLAYLIST
import org.videolan.resources.KEY_CURRENT_AUDIO
import org.videolan.resources.KEY_CURRENT_AUDIO_RESUME_ARTIST
import org.videolan.resources.KEY_CURRENT_AUDIO_RESUME_THUMB
import org.videolan.resources.KEY_CURRENT_AUDIO_RESUME_TITLE
import org.videolan.resources.KEY_CURRENT_MEDIA
import org.videolan.resources.KEY_CURRENT_MEDIA_RESUME
import org.videolan.resources.KEY_MEDIA_LAST_PLAYLIST
import org.videolan.resources.KEY_MEDIA_LAST_PLAYLIST_RESUME
import org.videolan.tools.AUDIO_RESUME_PLAYBACK
import org.videolan.tools.KEY_VIDEO_APP_SWITCH
import org.videolan.tools.PLAYBACK_HISTORY
import org.videolan.tools.RESULT_RESTART
import org.videolan.tools.SCREEN_ORIENTATION
import org.videolan.tools.Settings
import org.videolan.tools.Settings.isPinCodeSet
import org.videolan.tools.VIDEO_RESUME_PLAYBACK
import org.videolan.vlc.R
import org.videolan.vlc.gui.PinCodeActivity
import org.videolan.vlc.gui.PinCodeReason
@ -60,6 +75,12 @@ class PreferencesFragment : BasePreferenceFragment(), SharedPreferences.OnShared
findPreference<Preference>(KEY_VIDEO_APP_SWITCH)?.isVisible = AndroidDevices.hasPiP
findPreference<Preference>("remote_access_category")?.isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
findPreference<Preference>("permissions_title")?.isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
(activity as? PreferencesActivity)?.extraEndPoint?.let {
if (it == "remote_access_category") findPreference<Preference>("remote_access_category")?.let {
onPreferenceTreeClick(it)
(activity as? PreferencesActivity)?.extraEndPoint = null
}
}
}
override fun onStart() {

11
application/vlc-android/src/org/videolan/vlc/gui/FeedbackActivity.kt

@ -45,7 +45,9 @@ import org.videolan.resources.AppContextProvider
import org.videolan.resources.CRASH_HAPPENED
import org.videolan.resources.CRASH_ML_CTX
import org.videolan.resources.CRASH_ML_MSG
import org.videolan.resources.TV_PREFERENCE_ACTIVITY
import org.videolan.resources.util.applyOverscanMargin
import org.videolan.tools.Settings
import org.videolan.tools.isVisible
import org.videolan.tools.setGone
import org.videolan.tools.setVisible
@ -55,6 +57,7 @@ import org.videolan.vlc.R
import org.videolan.vlc.databinding.AboutFeedbackActivityBinding
import org.videolan.vlc.gui.helpers.FeedbackUtil
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.preferences.EXTRA_PREF_END_POINT
import org.videolan.vlc.gui.preferences.PreferencesActivity
import org.videolan.vlc.util.FileUtils
import org.videolan.vlc.util.Permissions
@ -182,7 +185,13 @@ class FeedbackActivity : BaseActivity(), DebugLogService.Client.Callback {
}
binding.openSettings.setOnClickListener {
lifecycleScope.launch {
PreferencesActivity.launchWithPref(this@FeedbackActivity, "enable_remote_access")
if (Settings.tvUI) {
val intent = Intent(Intent.ACTION_VIEW).setClassName(this@FeedbackActivity, TV_PREFERENCE_ACTIVITY)
intent.putExtra(EXTRA_PREF_END_POINT, "remote_access_category")
startActivity(intent)
}
else
PreferencesActivity.launchWithPref(this@FeedbackActivity, "enable_remote_access")
}
}
binding.emailSupportCard.setOnClickListener {

Loading…
Cancel
Save