Skip to content
Snippets Groups Projects
Commit 6e622d9b authored by Nicolas Pomepuy's avatar Nicolas Pomepuy Committed by Duncan McNamara
Browse files

Fix the PIN unlock feature when using a DialogActivity

parent 1d50b34a
No related branches found
No related tags found
1 merge request!1753Parental control
......@@ -37,6 +37,7 @@ import org.videolan.vlc.util.showVlcDialog
class DialogActivity : BaseActivity() {
override fun getSnackAnchorView(overAudioPlayer:Boolean): View? = findViewById<View>(android.R.id.content)
private var preventFinish = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
......@@ -85,6 +86,18 @@ class DialogActivity : BaseActivity() {
finish()
}
override fun finish() {
if (preventFinish) {
preventFinish = false
return
}
super.finish()
}
fun preventFinish() {
preventFinish = true
}
companion object {
var dialog : Dialog? = null
......
......@@ -9,6 +9,7 @@ import androidx.activity.viewModels
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.MutableLiveData
import org.videolan.tools.Settings
import org.videolan.vlc.gui.DialogActivity
import org.videolan.vlc.gui.PinCodeActivity
import org.videolan.vlc.gui.PinCodeReason
......@@ -19,6 +20,7 @@ class PinCodeDelegate : BaseHeadlessFragment() {
model.complete(result.resultCode == Activity.RESULT_OK)
if (result.resultCode == Activity.RESULT_OK && unlock) pinUnlocked.postValue(true)
exit()
(activity as? DialogActivity)?.finish()
}
@TargetApi(Build.VERSION_CODES.O)
......@@ -44,6 +46,7 @@ suspend fun FragmentActivity.checkPIN(unlock:Boolean = false) : Boolean {
}
model.setupDeferred()
supportFragmentManager.beginTransaction().add(fragment, PinCodeDelegate.TAG).commitAllowingStateLoss()
if (this is DialogActivity) this.preventFinish()
return model.deferredGrant.await()
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment