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 }
|
}.observe(this) { binding.reasonText = it }
|
||||||
|
|
||||||
binding.unlockTemporarilyButton.setOnClickListener { logic.annoyLogic.doManualTempUnlock() }
|
binding.unlockTemporarilyButton.setOnClickListener {
|
||||||
binding.parentUnlockButton.setOnClickListener { showAuthenticationScreen() }
|
AnnoyUnlockDialogFragment.newInstance(AnnoyUnlockDialogFragment.UnlockDuration.Short)
|
||||||
|
.show(supportFragmentManager)
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.parentUnlockButton.setOnClickListener {
|
||||||
|
AnnoyUnlockDialogFragment.newInstance(AnnoyUnlockDialogFragment.UnlockDuration.Long)
|
||||||
|
.show(supportFragmentManager)
|
||||||
|
}
|
||||||
|
|
||||||
binding.useBackdoorButton.setOnClickListener { BackdoorDialogFragment().show(supportFragmentManager) }
|
binding.useBackdoorButton.setOnClickListener { BackdoorDialogFragment().show(supportFragmentManager) }
|
||||||
|
|
||||||
model.authenticatedUser.observe(this) { user ->
|
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">
|
<string name="annoy_reason">
|
||||||
Folgendes wurde manipuliert: %s
|
Folgendes wurde manipuliert: %s
|
||||||
</string>
|
</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_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>
|
<string name="authentication_required_overlay_text">Die Einstellungen werden wieder gesperrt, wenn Sie TimeLimit verlassen</string>
|
||||||
|
|
|
@ -163,6 +163,10 @@
|
||||||
<string name="annoy_reason">
|
<string name="annoy_reason">
|
||||||
This was manipulated: %s
|
This was manipulated: %s
|
||||||
</string>
|
</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_title">Sign in to change settings</string>
|
||||||
<string name="authentication_required_overlay_text">The settings will be locked again when you leave TimeLimit</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