[Android] Fix the incognito mode not working in the browser

Nicolas Pomepuy git at videolan.org
Mon Jan 6 09:11:08 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Mon Jan  6 09:37:17 2025 +0100| [601454cb18e73619079c273818056435866e7516] | committer: Duncan McNamara

Fix the incognito mode not working in the browser

> https://code.videolan.org/videolan/vlc-android/commit/601454cb18e73619079c273818056435866e7516
---

 .../src/org/videolan/vlc/gui/MainActivity.kt            |  1 +
 .../src/org/videolan/vlc/gui/SecondaryActivity.kt       | 17 +++++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt
index e678a1ce24..c6762aef83 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt
@@ -160,6 +160,7 @@ class MainActivity : ContentActivity(),
             }?.show()
             settings.putSingle(PERMISSION_NEXT_ASK, System.currentTimeMillis() + TimeUnit.DAYS.toMillis(2))
         }
+        updateIncognitoModeIcon()
         configurationChanged(getScreenWidth())
     }
 
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/SecondaryActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/SecondaryActivity.kt
index 35277cceaf..b67fdbba47 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/SecondaryActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/SecondaryActivity.kt
@@ -29,10 +29,13 @@ 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
+import androidx.lifecycle.lifecycleScope
 import com.google.android.material.appbar.AppBarLayout
+import kotlinx.coroutines.launch
 import org.videolan.libvlc.Dialog
 import org.videolan.medialibrary.interfaces.Medialibrary
 import org.videolan.medialibrary.interfaces.media.MediaWrapper
@@ -42,8 +45,12 @@ import org.videolan.resources.KEY_FOLDER
 import org.videolan.resources.KEY_GROUP
 import org.videolan.resources.util.applyOverscanMargin
 import org.videolan.resources.util.parcelable
+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
@@ -52,6 +59,7 @@ 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
@@ -141,6 +149,7 @@ class SecondaryActivity : ContentActivity(), IDialogManager {
 
     override fun onPrepareOptionsMenu(menu: Menu?): Boolean {
         menu?.findItem(R.id.ml_menu_refresh)?.isVisible = Permissions.canReadStorage(this)
+        menu?.findItem(R.id.incognito_mode)?.isChecked = Settings.getInstance(this).getBoolean(KEY_INCOGNITO, false)
         return super.onPrepareOptionsMenu(menu)
     }
 
@@ -154,6 +163,14 @@ class SecondaryActivity : ContentActivity(), IDialogManager {
                 }
                 return true
             }
+            R.id.incognito_mode -> {
+                lifecycleScope.launch {
+                    if (showPinIfNeeded()) return at launch
+                    Settings.getInstance (this at SecondaryActivity).putSingle(KEY_INCOGNITO, !Settings.getInstance(this at SecondaryActivity).getBoolean(KEY_INCOGNITO, false))
+                    item.isChecked = !item.isChecked
+                }
+                return true
+            }
         }
         return super.onOptionsItemSelected(item)
     }



More information about the Android mailing list