From 558248b87ecdd1b6f36d664c44bb0634630bfd68 Mon Sep 17 00:00:00 2001 From: Hardcore Sushi Date: Mon, 31 May 2021 12:37:25 +0200 Subject: [PATCH] Apply alert dialog style to identity name preference --- .../sushi/hardcore/aira/SettingsActivity.kt | 19 ++++++++++++------- app/src/main/res/layout/dialog_edit_text.xml | 15 +++++++++++++++ app/src/main/res/values/strings.xml | 3 ++- app/src/main/res/xml/preferences.xml | 2 +- 4 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/layout/dialog_edit_text.xml diff --git a/app/src/main/java/sushi/hardcore/aira/SettingsActivity.kt b/app/src/main/java/sushi/hardcore/aira/SettingsActivity.kt index 2da237d..3b12ff5 100644 --- a/app/src/main/java/sushi/hardcore/aira/SettingsActivity.kt +++ b/app/src/main/java/sushi/hardcore/aira/SettingsActivity.kt @@ -22,6 +22,7 @@ import com.bumptech.glide.request.transition.Transition import sushi.hardcore.aira.background_service.AIRAService import sushi.hardcore.aira.databinding.ActivitySettingsBinding import sushi.hardcore.aira.databinding.ChangeAvatarDialogBinding +import sushi.hardcore.aira.databinding.DialogEditTextBinding import sushi.hardcore.aira.utils.AvatarPicker import sushi.hardcore.aira.utils.StringUtils @@ -46,9 +47,7 @@ class SettingsActivity: AppCompatActivity() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences, rootKey) findPreference("identityAvatar")?.let { identityAvatarPreference = it } - val identityNamePreference = findPreference("identityName") val paddingPreference = findPreference("psecPadding") - identityNamePreference?.isPersistent = false paddingPreference?.isPersistent = false AIRADatabase.getIdentityAvatar(Constants.getDatabaseFolder(activity))?.let { avatar -> displayAvatar(avatar) @@ -58,7 +57,6 @@ class SettingsActivity: AppCompatActivity() { override fun onServiceConnected(name: ComponentName?, service: IBinder) { val binder = service as AIRAService.AIRABinder airaService = binder.getService() - identityNamePreference?.text = airaService.identityName paddingPreference?.isChecked = airaService.usePadding } override fun onServiceDisconnected(name: ComponentName?) {} @@ -84,10 +82,17 @@ class SettingsActivity: AppCompatActivity() { dialogBuilder.setView(dialogBinding.root).show() false } - identityNamePreference?.setOnPreferenceChangeListener { _, newValue -> - if (airaService.changeName(newValue as String)) { - identityNamePreference.text = newValue - } + findPreference("identityName")?.setOnPreferenceClickListener { + val dialogBinding = DialogEditTextBinding.inflate(layoutInflater) + dialogBinding.editText.setText(airaService.identityName) + AlertDialog.Builder(activity, R.style.CustomAlertDialog) + .setTitle(it.title) + .setView(dialogBinding.root) + .setPositiveButton(R.string.ok) { _, _ -> + airaService.changeName(dialogBinding.editText.text.toString()) + } + .setNegativeButton(R.string.cancel, null) + .show() false } findPreference("deleteIdentity")?.setOnPreferenceClickListener { diff --git a/app/src/main/res/layout/dialog_edit_text.xml b/app/src/main/res/layout/dialog_edit_text.xml new file mode 100644 index 0000000..87e4fa1 --- /dev/null +++ b/app/src/main/res/layout/dialog_edit_text.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ff96232..1951596 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -104,4 +104,5 @@ Show your IPs Clickable indicator Avatar - + Name + \ No newline at end of file diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 0be71f0..5cae84c 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -9,7 +9,7 @@ android:summary="The avatar of your identity. Shown to all active sessions." android:icon="@drawable/ic_face"/> -