Browse Source

Prevent the permission snackbar to be shown more than once every 2 days

Fixes #2575
merge-requests/1454/head
Nicolas Pomepuy 4 years ago
committed by Duncan McNamara
parent
commit
49e208d6bc
  1. 1
      application/tools/src/main/java/org/videolan/tools/Settings.kt
  2. 4
      application/vlc-android/src/org/videolan/vlc/gui/MainActivity.kt

1
application/tools/src/main/java/org/videolan/tools/Settings.kt

@ -163,6 +163,7 @@ const val SUBTITLE_PREFERRED_LANGUAGE = "subtitle_preferred_language"
const val LAST_LOCK_ORIENTATION = "last_lock_orientation"
const val INITIAL_PERMISSION_ASKED = "initial_permission_asked"
const val PERMISSION_NEVER_ASK = "permission_never_ask"
const val PERMISSION_NEXT_ASK = "permission_next_ask"
const val WIDGETS_BACKGROUND_LAST_COLORS = "widgets_background_last_colors"
const val WIDGETS_FOREGROUND_LAST_COLORS = "widgets_foreground_last_colors"

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

@ -61,6 +61,7 @@ import org.videolan.vlc.util.Permissions
import org.videolan.vlc.util.Util
import org.videolan.vlc.util.WidgetMigration
import org.videolan.vlc.util.getScreenWidth
import java.util.concurrent.TimeUnit
private const val TAG = "VLC/MainActivity"
@ -103,10 +104,11 @@ class MainActivity : ContentActivity(),
override fun onResume() {
super.onResume()
//Only the partial permission is granted for Android 11+
if (!settings.getBoolean(PERMISSION_NEVER_ASK, false) && Permissions.canReadStorage(this) && !Permissions.hasAllAccess(this)) {
if (!settings.getBoolean(PERMISSION_NEVER_ASK, false) && settings.getLong(PERMISSION_NEXT_ASK, 0L) < System.currentTimeMillis() && Permissions.canReadStorage(this) && !Permissions.hasAllAccess(this)) {
UiTools.snackerMessageInfinite(this, getString(R.string.partial_content))?.setAction(R.string.more) {
AllAccessPermissionDialog.newInstance().show(supportFragmentManager, AllAccessPermissionDialog::class.simpleName)
}?.show()
settings.putSingle(PERMISSION_NEXT_ASK, System.currentTimeMillis() + TimeUnit.DAYS.toMillis(2))
}
configurationChanged(getScreenWidth())
}

Loading…
Cancel
Save