Overflow menu option changes title when cert is (un)loaded

This commit is contained in:
Corewala 2022-05-19 13:13:17 -04:00
parent 506976b25e
commit cf3402e91f
5 changed files with 38 additions and 22 deletions

View File

@ -257,24 +257,20 @@ class GemActivity : AppCompatActivity() {
inSearch = true
}
R.id.overflow_menu_sign -> {
if(!prefs.getString(Buran.PREF_KEY_CLIENT_CERT_URI, null).isNullOrEmpty()) {
if (prefs.getBoolean("use_biometrics", false) and certPassword.isNullOrEmpty()) {
biometricSecureRequest(binding.addressEdit.text.toString())
}else if(certPassword.isNullOrEmpty()){
if (certPassword.isNullOrEmpty()) {
certPassword = prefs.getString(
Buran.PREF_KEY_CLIENT_CERT_PASSWORD,
null
)
}
refresh()
}else{
certPassword = null
refresh()
updateClientCertIcon()
if (prefs.getBoolean("use_biometrics", false) and certPassword.isNullOrEmpty()) {
biometricSecureRequest(binding.addressEdit.text.toString())
}else if(certPassword.isNullOrEmpty()){
if (certPassword.isNullOrEmpty()) {
certPassword = prefs.getString(
Buran.PREF_KEY_CLIENT_CERT_PASSWORD,
null
)
}
refresh()
}else{
Snackbar.make(binding.root, getString(R.string.no_certificate), Snackbar.LENGTH_LONG).show()
certPassword = null
refresh()
updateClientCertIcon()
}
}
@ -315,6 +311,16 @@ class GemActivity : AppCompatActivity() {
}
}
}
if(!prefs.getString(Buran.PREF_KEY_CLIENT_CERT_URI, null).isNullOrEmpty()){
OverflowPopup.setItemVisibility(R.id.overflow_menu_sign, true)
if(certPassword.isNullOrEmpty()){
OverflowPopup.setItemTitle(R.id.overflow_menu_sign, getString(R.string.load_cert))
}else{
OverflowPopup.setItemTitle(R.id.overflow_menu_sign, getString(R.string.unload_cert))
}
}else{
OverflowPopup.setItemVisibility(R.id.overflow_menu_sign, false)
}
}
binding.home.setOnClickListener {

View File

@ -16,9 +16,11 @@ import corewala.buran.R
object OverflowPopup {
lateinit var popup: PopupMenu
fun show(view: View?, onMenuOption: (menuId: Int) -> Unit){
if(view != null) {
val popup = PopupMenu(view.context, view)
popup = PopupMenu(view.context, view)
val inflater: MenuInflater = popup.menuInflater
inflater.inflate(R.menu.overflow_menu, popup.menu)
popup.setOnMenuItemClickListener { menuItem ->
@ -31,6 +33,14 @@ object OverflowPopup {
}
}
fun setItemTitle(id: Int, title: String){
popup.menu.findItem(id).title = title
}
fun setItemVisibility(id: Int, visible: Boolean){
popup.menu.findItem(id).isVisible = visible
}
fun insertMenuItemIcons(context: Context, popupMenu: PopupMenu) {
val menu: Menu = popupMenu.menu
if (hasIcon(menu)) {

View File

@ -6,7 +6,7 @@
android:title="@string/search"/>
<item
android:id="@+id/overflow_menu_sign"
android:title="@string/sign"/>
android:title="@string/load_cert"/>
<item
android:id="@+id/overflow_menu_bookmark"
android:title="@string/add_bookmark"/>

View File

@ -73,8 +73,8 @@
<string name="confirm_your_identity">Confirmez votre identité</string>
<string name="use_biometric_unlock">Utilisez vos informations biométriques pour continuer</string>
<string name="biometric_cert_verification">Certificat Client biométrique</string>
<string name="sign">Certificat</string>
<string name="no_certificate">Aucun Certificat Client sélectionné</string>
<string name="load_cert">Chargez Certificat</string>
<string name="unload_cert">Déchargez Certificat</string>
<string name="set_home_capsule">Choisir comme capsule d\'accueil</string>
<string name="check_for_updates">Rechercher des nouvelles versions</string>
<string name="new_version_available">Nouvelle version disponible</string>

View File

@ -73,8 +73,8 @@
<string name="confirm_your_identity">Confirm your identity</string>
<string name="use_biometric_unlock">Verify your biometric credentials to continue</string>
<string name="biometric_cert_verification">Client Certificate biometrics</string>
<string name="sign">Certificate</string>
<string name="no_certificate">No Client Certificate selected</string>
<string name="load_cert">Load Certificate</string>
<string name="unload_cert">Unload Certificate</string>
<string name="set_home_capsule">Set home capsule</string>
<string name="check_for_updates">Check for updates</string>
<string name="new_version_available">New version available</string>