Browse Source

Manage back press for the MainActivity

merge-requests/2314/head
Nicolas Pomepuy 9 months ago
committed by Duncan McNamara
parent
commit
7a73ec9a0c
  1. 34
      application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt

34
application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt

@ -21,18 +21,18 @@
package org.videolan.vlc.gui package org.videolan.vlc.gui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.annotation.TargetApi
import android.app.Activity import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.KeyEvent import android.view.KeyEvent
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import androidx.activity.OnBackPressedCallback
import androidx.activity.addCallback
import androidx.appcompat.view.ActionMode import androidx.appcompat.view.ActionMode
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.net.toUri import androidx.core.net.toUri
@ -69,7 +69,6 @@ import org.videolan.vlc.BuildConfig
import org.videolan.vlc.R import org.videolan.vlc.R
import org.videolan.vlc.StartActivity import org.videolan.vlc.StartActivity
import org.videolan.vlc.gui.audio.AudioBrowserFragment import org.videolan.vlc.gui.audio.AudioBrowserFragment
import org.videolan.vlc.gui.browser.BaseBrowserFragment
import org.videolan.vlc.gui.dialogs.NotificationPermissionManager import org.videolan.vlc.gui.dialogs.NotificationPermissionManager
import org.videolan.vlc.gui.dialogs.PermissionListDialog import org.videolan.vlc.gui.dialogs.PermissionListDialog
import org.videolan.vlc.gui.dialogs.UPDATE_DATE import org.videolan.vlc.gui.dialogs.UPDATE_DATE
@ -100,6 +99,7 @@ private const val TAG = "VLC/MainActivity"
class MainActivity : ContentActivity(), class MainActivity : ContentActivity(),
INavigator by Navigator() INavigator by Navigator()
{ {
private lateinit var backPressedCallback: OnBackPressedCallback
var refreshing: Boolean = false var refreshing: Boolean = false
set(value) { set(value) {
field = value field = value
@ -200,8 +200,16 @@ class MainActivity : ContentActivity(),
} }
} }
settings.putSingle(KEY_OBSOLETE_RESTORE_FILE_WARNED, true) settings.putSingle(KEY_OBSOLETE_RESTORE_FILE_WARNED, true)
backPressedCallback = onBackPressedDispatcher.addCallback(enabled = true) {
if (AndroidUtil.isNougatOrLater && isInMultiWindowMode) {
UiTools.confirmExit(this@MainActivity)
return@addCallback
}
}
backPressedCallback.isEnabled = AndroidUtil.isNougatOrLater && isInMultiWindowMode
} }
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
//Only the partial permission is granted for Android 11+ //Only the partial permission is granted for Android 11+
@ -268,26 +276,6 @@ class MainActivity : ContentActivity(),
reloadPreferences() reloadPreferences()
} }
@TargetApi(Build.VERSION_CODES.N)
override fun onBackPressed() {
/* Close playlist search if open or Slide down the audio player if it is shown entirely. */
if (isAudioPlayerReady && (audioPlayer.backPressed() || slideDownAudioPlayer()))
return
// If it's the directory view, a "backpressed" action shows a parent.
val fragment = currentFragment
if (fragment is BaseBrowserFragment && fragment.goBack()) {
return
}
if (AndroidUtil.isNougatOrLater && isInMultiWindowMode) {
UiTools.confirmExit(this)
return
}
finish()
}
override fun startSupportActionMode(callback: ActionMode.Callback): ActionMode? { override fun startSupportActionMode(callback: ActionMode.Callback): ActionMode? {
appBarLayout.setExpanded(true) appBarLayout.setExpanded(true)
return super.startSupportActionMode(callback) return super.startSupportActionMode(callback)

Loading…
Cancel
Save