mirror of
https://codeberg.org/timelimit/timelimit-android.git
synced 2025-10-03 09:49:25 +02:00
Add explaination for unlocking during annoy
This commit is contained in:
parent
d7d2f5eef3
commit
d72b6801dd
4 changed files with 80 additions and 2 deletions
|
@ -88,8 +88,16 @@ class AnnoyActivity : AppCompatActivity(), ActivityViewModelHolder {
|
|||
}
|
||||
}.observe(this) { binding.reasonText = it }
|
||||
|
||||
binding.unlockTemporarilyButton.setOnClickListener { logic.annoyLogic.doManualTempUnlock() }
|
||||
binding.parentUnlockButton.setOnClickListener { showAuthenticationScreen() }
|
||||
binding.unlockTemporarilyButton.setOnClickListener {
|
||||
AnnoyUnlockDialogFragment.newInstance(AnnoyUnlockDialogFragment.UnlockDuration.Short)
|
||||
.show(supportFragmentManager)
|
||||
}
|
||||
|
||||
binding.parentUnlockButton.setOnClickListener {
|
||||
AnnoyUnlockDialogFragment.newInstance(AnnoyUnlockDialogFragment.UnlockDuration.Long)
|
||||
.show(supportFragmentManager)
|
||||
}
|
||||
|
||||
binding.useBackdoorButton.setOnClickListener { BackdoorDialogFragment().show(supportFragmentManager) }
|
||||
|
||||
model.authenticatedUser.observe(this) { user ->
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
/*
|
||||
* TimeLimit Copyright <C> 2019 - 2022 Jonas Lochmann
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation version 3 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package io.timelimit.android.ui.manipulation
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import io.timelimit.android.R
|
||||
import io.timelimit.android.extensions.showSafe
|
||||
import io.timelimit.android.logic.DefaultAppLogic
|
||||
import io.timelimit.android.ui.main.ActivityViewModelHolder
|
||||
|
||||
class AnnoyUnlockDialogFragment: DialogFragment() {
|
||||
companion object {
|
||||
private const val DIALOG_TAG = "AnnoyUnlockDialogFragment"
|
||||
private const val UNLOCK_DURATION = "unlockDuration"
|
||||
|
||||
fun newInstance(duration: UnlockDuration) = AnnoyUnlockDialogFragment().apply {
|
||||
arguments = Bundle().apply {
|
||||
putSerializable(UNLOCK_DURATION, duration)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
val duration = requireArguments().getSerializable(UNLOCK_DURATION) as UnlockDuration
|
||||
val activity = requireActivity() as ActivityViewModelHolder
|
||||
val logic = DefaultAppLogic.with(requireContext())
|
||||
|
||||
return AlertDialog.Builder(requireContext(), theme)
|
||||
.setMessage(R.string.annoy_unlock_dialog_text)
|
||||
.setNegativeButton(R.string.generic_cancel, null)
|
||||
.setPositiveButton(R.string.annoy_unlock_dialog_action) { _, _ ->
|
||||
when (duration) {
|
||||
UnlockDuration.Short -> logic.annoyLogic.doManualTempUnlock()
|
||||
UnlockDuration.Long -> activity.showAuthenticationScreen()
|
||||
}.let {/* require handling all cases */}
|
||||
}
|
||||
.create()
|
||||
}
|
||||
|
||||
fun show(fragmentManager: FragmentManager) = showSafe(fragmentManager, DIALOG_TAG)
|
||||
|
||||
enum class UnlockDuration {
|
||||
Short, Long
|
||||
}
|
||||
}
|
|
@ -119,6 +119,10 @@
|
|||
<string name="annoy_reason">
|
||||
Folgendes wurde manipuliert: %s
|
||||
</string>
|
||||
<string name="annoy_unlock_dialog_text">Nach dem Entsperren sollte die Ursache
|
||||
für das Sperren behoben werden. Ansonsten wird das Gerät bald wieder gesperrt.
|
||||
</string>
|
||||
<string name="annoy_unlock_dialog_action">Entsperren</string>
|
||||
|
||||
<string name="authentication_required_overlay_title">Melden Sie sich an, um Einstellungen zu ändern</string>
|
||||
<string name="authentication_required_overlay_text">Die Einstellungen werden wieder gesperrt, wenn Sie TimeLimit verlassen</string>
|
||||
|
|
|
@ -163,6 +163,10 @@
|
|||
<string name="annoy_reason">
|
||||
This was manipulated: %s
|
||||
</string>
|
||||
<string name="annoy_unlock_dialog_text">After unlocking, you should fix the cause for the blocking.
|
||||
Otherwise, the device will be locked again.
|
||||
</string>
|
||||
<string name="annoy_unlock_dialog_action">Unlock</string>
|
||||
|
||||
<string name="authentication_required_overlay_title">Sign in to change settings</string>
|
||||
<string name="authentication_required_overlay_text">The settings will be locked again when you leave TimeLimit</string>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue