From a280dfaf3b8ed0c767e8305ceddfbe4a49379fb8 Mon Sep 17 00:00:00 2001 From: J-Jamet Date: Fri, 8 Apr 2022 18:23:02 +0200 Subject: [PATCH] Better magikeyboard views --- .../magikeyboard/MagikeyboardService.kt | 27 ++++++++ .../res/drawable/key_background_normal.xml | 7 ++- app/src/main/res/drawable/key_border.xml | 31 ++++++++++ .../main/res/layout/keyboard_container.xml | 62 ++++++++++++++++--- app/src/main/res/values/colors.xml | 1 + 5 files changed, 119 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/drawable/key_border.xml diff --git a/app/src/main/java/com/kunzisoft/keepass/magikeyboard/MagikeyboardService.kt b/app/src/main/java/com/kunzisoft/keepass/magikeyboard/MagikeyboardService.kt index be05f7ce9..04c438cc3 100644 --- a/app/src/main/java/com/kunzisoft/keepass/magikeyboard/MagikeyboardService.kt +++ b/app/src/main/java/com/kunzisoft/keepass/magikeyboard/MagikeyboardService.kt @@ -30,9 +30,12 @@ import android.view.* import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import android.widget.FrameLayout +import android.widget.ImageView import android.widget.PopupWindow import android.widget.TextView import androidx.core.content.ContextCompat +import androidx.core.graphics.BlendModeColorFilterCompat +import androidx.core.graphics.BlendModeCompat import com.kunzisoft.keepass.R import com.kunzisoft.keepass.activities.EntrySelectionLauncherActivity import com.kunzisoft.keepass.adapters.FieldsAdapter @@ -55,7 +58,10 @@ class MagikeyboardService : InputMethodService(), KeyboardView.OnKeyboardActionL private var mDatabase: Database? = null private var keyboardView: KeyboardView? = null + private var entryContainer: View? = null private var entryText: TextView? = null + private var databaseText: TextView? = null + private var databaseColorView: ImageView? = null private var packageText: TextView? = null private var keyboard: Keyboard? = null private var keyboardEntry: Keyboard? = null @@ -91,7 +97,10 @@ class MagikeyboardService : InputMethodService(), KeyboardView.OnKeyboardActionL override fun onCreateInputView(): View { val rootKeyboardView = layoutInflater.inflate(R.layout.keyboard_container, null) + entryContainer = rootKeyboardView.findViewById(R.id.magikeyboard_entry_container) entryText = rootKeyboardView.findViewById(R.id.magikeyboard_entry_text) + databaseText = rootKeyboardView.findViewById(R.id.magikeyboard_database_text) + databaseColorView = rootKeyboardView.findViewById(R.id.magikeyboard_database_color) packageText = rootKeyboardView.findViewById(R.id.magikeyboard_package_text) keyboardView = rootKeyboardView.findViewById(R.id.magikeyboard_view) @@ -163,6 +172,24 @@ class MagikeyboardService : InputMethodService(), KeyboardView.OnKeyboardActionL keyboardView?.isHapticFeedbackEnabled = PreferencesUtil.isKeyboardVibrationEnable(this) playSoundDuringCLick = PreferencesUtil.isKeyboardSoundEnable(this) } + setDatabaseViews() + } + + private fun setDatabaseViews() { + if (mDatabase == null) { + entryContainer?.visibility = View.GONE + } else { + entryContainer?.visibility = View.VISIBLE + } + databaseText?.text = mDatabase?.name ?: "" + val databaseColor = mDatabase?.customColor + if (databaseColor != null) { + databaseColorView?.drawable?.colorFilter = BlendModeColorFilterCompat + .createBlendModeColorFilterCompat(databaseColor, BlendModeCompat.SRC_IN) + databaseColorView?.visibility = View.VISIBLE + } else { + databaseColorView?.visibility = View.GONE + } } private fun populateEntryInfoInView(entryInfo: EntryInfo) { diff --git a/app/src/main/res/drawable/key_background_normal.xml b/app/src/main/res/drawable/key_background_normal.xml index b93917116..dcb49411e 100644 --- a/app/src/main/res/drawable/key_background_normal.xml +++ b/app/src/main/res/drawable/key_background_normal.xml @@ -25,6 +25,9 @@ android:right="0dp" android:top="12dp" android:bottom="12dp"/> - - + + \ No newline at end of file diff --git a/app/src/main/res/drawable/key_border.xml b/app/src/main/res/drawable/key_border.xml new file mode 100644 index 000000000..703d63b17 --- /dev/null +++ b/app/src/main/res/drawable/key_border.xml @@ -0,0 +1,31 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/keyboard_container.xml b/app/src/main/res/layout/keyboard_container.xml index dadd17db4..653d4ecf9 100644 --- a/app/src/main/res/layout/keyboard_container.xml +++ b/app/src/main/res/layout/keyboard_container.xml @@ -20,25 +20,73 @@ - + android:layout_gravity="center" + android:paddingStart="24dp" + android:paddingEnd="24dp" + android:paddingLeft="24dp" + android:paddingRight="24dp" + android:paddingTop="4dp" + android:paddingBottom="4dp" + android:layout_marginTop="4dp" + android:background="@drawable/key_border" + android:orientation="vertical"> + + + + + + + android:textSize="12sp" + tools:text="com.kunzisoft.keepass" + android:textColor="@color/grey_blue_slighter"/> #202124 #E0202124 #3E4247 + #4F5F66 #3c474c #263238 #5E97F6