Browse Source

Refactor the incognito mode change in UiTools

merge-requests/2174/head
Nicolas Pomepuy 1 year ago
parent
commit
6c5a808378
  1. 5
      application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt
  2. 8
      application/vlc-android/src/org/videolan/vlc/gui/SecondaryActivity.kt
  3. 90
      application/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt

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

@ -71,7 +71,6 @@ import org.videolan.vlc.gui.helpers.INavigator
import org.videolan.vlc.gui.helpers.Navigator
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.UiTools.isTablet
import org.videolan.vlc.gui.helpers.UiTools.showPinIfNeeded
import org.videolan.vlc.gui.video.VideoGridFragment
import org.videolan.vlc.interfaces.Filterable
import org.videolan.vlc.interfaces.IRefreshable
@ -263,9 +262,7 @@ class MainActivity : ContentActivity(),
}
R.id.incognito_mode -> {
lifecycleScope.launch {
if (showPinIfNeeded()) return@launch
Settings.getInstance (this@MainActivity).putSingle(KEY_INCOGNITO, !Settings.getInstance(this@MainActivity).getBoolean(KEY_INCOGNITO, false))
item.isChecked = !item.isChecked
if (!UiTools.updateIncognitoMode(this@MainActivity, item)) return@launch
updateIncognitoModeIcon()
}
true

8
application/vlc-android/src/org/videolan/vlc/gui/SecondaryActivity.kt

@ -29,7 +29,6 @@ import android.view.Menu
import android.view.MenuItem
import android.view.View
import androidx.coordinatorlayout.widget.CoordinatorLayout
import androidx.core.content.ContextCompat
import androidx.core.os.bundleOf
import androidx.core.view.WindowInsetsControllerCompat
import androidx.fragment.app.Fragment
@ -49,8 +48,6 @@ import org.videolan.tools.KEY_INCOGNITO
import org.videolan.tools.RESULT_RESCAN
import org.videolan.tools.RESULT_RESTART
import org.videolan.tools.Settings
import org.videolan.tools.putSingle
import org.videolan.vlc.BuildConfig
import org.videolan.vlc.R
import org.videolan.vlc.gui.audio.AudioAlbumsSongsFragment
import org.videolan.vlc.gui.audio.AudioBrowserFragment
@ -59,7 +56,6 @@ import org.videolan.vlc.gui.browser.KEY_MEDIA
import org.videolan.vlc.gui.browser.MLStorageBrowserFragment
import org.videolan.vlc.gui.browser.NetworkBrowserFragment
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.UiTools.showPinIfNeeded
import org.videolan.vlc.gui.network.MRLPanelFragment
import org.videolan.vlc.gui.video.VideoGridFragment
import org.videolan.vlc.reloadLibrary
@ -165,9 +161,7 @@ class SecondaryActivity : ContentActivity(), IDialogManager {
}
R.id.incognito_mode -> {
lifecycleScope.launch {
if (showPinIfNeeded()) return@launch
Settings.getInstance (this@SecondaryActivity).putSingle(KEY_INCOGNITO, !Settings.getInstance(this@SecondaryActivity).getBoolean(KEY_INCOGNITO, false))
item.isChecked = !item.isChecked
if (!UiTools.updateIncognitoMode(this@SecondaryActivity, item)) return@launch
}
return true
}

90
application/vlc-android/src/org/videolan/vlc/gui/helpers/UiTools.kt

@ -39,10 +39,19 @@ import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.renderscript.*
import android.renderscript.Allocation
import android.renderscript.Element
import android.renderscript.RSInvalidStateException
import android.renderscript.RenderScript
import android.renderscript.ScriptIntrinsicBlur
import android.text.TextUtils
import android.view.*
import android.view.animation.*
import android.view.DragEvent
import android.view.Menu
import android.view.MenuItem
import android.view.View
import android.view.WindowManager
import android.view.animation.AccelerateDecelerateInterpolator
import android.view.animation.OvershootInterpolator
import android.view.inputmethod.InputMethodManager
import android.widget.ImageView
import android.widget.TextView
@ -71,7 +80,10 @@ import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.snackbar.Snackbar
import kotlinx.coroutines.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import nl.dionsegijn.konfetti.core.Party
import nl.dionsegijn.konfetti.core.Position
import nl.dionsegijn.konfetti.core.Rotation
@ -83,19 +95,64 @@ import org.videolan.libvlc.util.AndroidUtil
import org.videolan.medialibrary.MLServiceLocator
import org.videolan.medialibrary.Tools
import org.videolan.medialibrary.interfaces.Medialibrary
import org.videolan.medialibrary.interfaces.media.*
import org.videolan.medialibrary.interfaces.media.Album
import org.videolan.medialibrary.interfaces.media.Artist
import org.videolan.medialibrary.interfaces.media.Folder
import org.videolan.medialibrary.interfaces.media.Genre
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.medialibrary.interfaces.media.Playlist
import org.videolan.medialibrary.interfaces.media.VideoGroup
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.resources.*
import org.videolan.resources.ACTION_DISCOVER_DEVICE
import org.videolan.resources.AppContextProvider
import org.videolan.resources.CATEGORY_ALBUMS
import org.videolan.resources.CATEGORY_ARTISTS
import org.videolan.resources.CATEGORY_GENRES
import org.videolan.resources.CATEGORY_NOW_PLAYING
import org.videolan.resources.CATEGORY_NOW_PLAYING_PIP
import org.videolan.resources.CATEGORY_SONGS
import org.videolan.resources.EXTRA_PATH
import org.videolan.resources.HEADER_DIRECTORIES
import org.videolan.resources.HEADER_MOVIES
import org.videolan.resources.HEADER_NETWORK
import org.videolan.resources.HEADER_PERMISSION
import org.videolan.resources.HEADER_PLAYLISTS
import org.videolan.resources.HEADER_SERVER
import org.videolan.resources.HEADER_STREAM
import org.videolan.resources.HEADER_TV_SHOW
import org.videolan.resources.HEADER_VIDEO
import org.videolan.resources.ID_ABOUT_TV
import org.videolan.resources.ID_REMOTE_ACCESS
import org.videolan.resources.ID_SETTINGS
import org.videolan.resources.ID_SPONSOR
import org.videolan.resources.TAG_ITEM
import org.videolan.resources.TV_CONFIRMATION_ACTIVITY
import org.videolan.resources.util.launchForeground
import org.videolan.tools.*
import org.videolan.tools.BitmapCache
import org.videolan.tools.KEY_APP_THEME
import org.videolan.tools.KEY_INCOGNITO
import org.videolan.tools.MultiSelectHelper
import org.videolan.tools.Settings
import org.videolan.tools.dp
import org.videolan.tools.isStarted
import org.videolan.tools.putSingle
import org.videolan.tools.setGone
import org.videolan.vlc.BuildConfig.VLC_VERSION_NAME
import org.videolan.vlc.MediaParsingService
import org.videolan.vlc.R
import org.videolan.vlc.StartActivity
import org.videolan.vlc.VlcMigrationHelper
import org.videolan.vlc.gui.*
import org.videolan.vlc.gui.AuthorsActivity
import org.videolan.vlc.gui.BaseActivity
import org.videolan.vlc.gui.InfoActivity
import org.videolan.vlc.gui.LibrariesActivity
import org.videolan.vlc.gui.LibraryWithLicense
import org.videolan.vlc.gui.browser.MediaBrowserFragment
import org.videolan.vlc.gui.dialogs.*
import org.videolan.vlc.gui.dialogs.AboutVersionDialog
import org.videolan.vlc.gui.dialogs.AddToGroupDialog
import org.videolan.vlc.gui.dialogs.LicenseDialog
import org.videolan.vlc.gui.dialogs.SavePlaylistDialog
import org.videolan.vlc.gui.dialogs.VideoTracksDialog
import org.videolan.vlc.gui.helpers.BitmapUtil.vectorToBitmap
import org.videolan.vlc.gui.helpers.hf.PinCodeDelegate
import org.videolan.vlc.gui.helpers.hf.checkPIN
@ -491,6 +548,21 @@ object UiTools {
// if (VLCBilling.getInstance(activity.application).status == BillingStatus.FAILURE || VLCBilling.getInstance(activity.application).skuDetails.isEmpty()) donationsButton.setGone() else donationsButton.setVisible()
// }
/**
* Update the incognito mode setting
*
* @param activity the activity that launched the change
* @param item the menu item that was clicked
* @return true if the change has been applied, false otherwise
*/
fun updateIncognitoMode(activity: FragmentActivity, item: MenuItem): Boolean {
if (activity.showPinIfNeeded()) return false
Settings.getInstance(activity).putSingle(KEY_INCOGNITO, !Settings.getInstance(activity).getBoolean(KEY_INCOGNITO, false))
item.isChecked = !item.isChecked
return true
}
fun setKeyboardVisibility(v: View?, show: Boolean) {
if (v == null) return
val inputMethodManager = v.context.applicationContext.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager

Loading…
Cancel
Save