diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Extensions.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Extensions.kt index d9faa1b..3d80e05 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Extensions.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/utils/Extensions.kt @@ -1,7 +1,10 @@ package cy.agorise.bitsybitshareswallet.utils +import android.app.Activity import android.content.Context import android.content.res.ColorStateList +import android.view.View +import android.view.inputmethod.InputMethodManager import android.widget.Toast import androidx.core.content.ContextCompat import com.google.android.material.floatingactionbutton.FloatingActionButton @@ -42,4 +45,12 @@ fun String.containsDigits(): Boolean { */ fun String.containsVowels(): Boolean { return Pattern.matches("[aeiou]", this) +} + +/** + * Allows to hide the Keyboard from any view + */ +fun View.hideKeyboard(){ + val inputMethodManager = context.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager + inputMethodManager.hideSoftInputFromWindow(this.windowToken, 0) } \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/views/MyTextInputEditText.java b/app/src/main/java/cy/agorise/bitsybitshareswallet/views/MyTextInputEditText.java deleted file mode 100644 index d5d17d6..0000000 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/views/MyTextInputEditText.java +++ /dev/null @@ -1,43 +0,0 @@ -package cy.agorise.bitsybitshareswallet.views; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.inputmethod.EditorInfo; -import android.view.inputmethod.InputConnection; - -import com.google.android.material.textfield.TextInputEditText; - -// An EditText that lets you use actions ("Done", "Go", etc.) on multi-line edits. -public class MyTextInputEditText extends TextInputEditText -{ - public MyTextInputEditText(Context context) - { - super(context); - } - - public MyTextInputEditText(Context context, AttributeSet attrs) - { - super(context, attrs); - } - - public MyTextInputEditText(Context context, AttributeSet attrs, int defStyle) - { - super(context, attrs, defStyle); - } - - @Override - public InputConnection onCreateInputConnection(EditorInfo outAttrs) { - InputConnection connection = super.onCreateInputConnection(outAttrs); - int imeActions = outAttrs.imeOptions&EditorInfo.IME_MASK_ACTION; - if ((imeActions&EditorInfo.IME_ACTION_DONE) != 0) { - // clear the existing action - outAttrs.imeOptions ^= imeActions; - // set the DONE action - outAttrs.imeOptions |= EditorInfo.IME_ACTION_DONE; - } - if ((outAttrs.imeOptions&EditorInfo.IME_FLAG_NO_ENTER_ACTION) != 0) { - outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION; - } - return connection; - } -} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/views/MyTextInputEditText.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/views/MyTextInputEditText.kt new file mode 100644 index 0000000..6286704 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/views/MyTextInputEditText.kt @@ -0,0 +1,37 @@ +package cy.agorise.bitsybitshareswallet.views + +import android.content.Context +import android.graphics.Rect +import android.util.AttributeSet +import android.view.inputmethod.EditorInfo +import android.view.inputmethod.InputConnection +import com.google.android.material.textfield.TextInputEditText +import cy.agorise.bitsybitshareswallet.utils.hideKeyboard + + +/** + * A TextInputEditText that hides the keyboard when the focus is removed from it and also lets you + * use actions ("Done", "Go", etc.) on multi-line edits. + */ +class MyTextInputEditText(context: Context?, attrs: AttributeSet?) : TextInputEditText(context, attrs){ + + override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection { + val connection = super.onCreateInputConnection(outAttrs) + val imeActions = outAttrs.imeOptions and EditorInfo.IME_MASK_ACTION + if (imeActions and EditorInfo.IME_ACTION_DONE != 0) { + // clear the existing action + outAttrs.imeOptions = outAttrs.imeOptions xor imeActions + // set the DONE action + outAttrs.imeOptions = outAttrs.imeOptions or EditorInfo.IME_ACTION_DONE + } + if (outAttrs.imeOptions and EditorInfo.IME_FLAG_NO_ENTER_ACTION != 0) { + outAttrs.imeOptions = outAttrs.imeOptions and EditorInfo.IME_FLAG_NO_ENTER_ACTION.inv() + } + return connection + } + + override fun onFocusChanged(focused: Boolean, direction: Int, previouslyFocusedRect: Rect?) { + super.onFocusChanged(focused, direction, previouslyFocusedRect) + if (!focused) this.hideKeyboard() + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_create_account.xml b/app/src/main/res/layout/fragment_create_account.xml index ff32d01..1ae07fd 100644 --- a/app/src/main/res/layout/fragment_create_account.xml +++ b/app/src/main/res/layout/fragment_create_account.xml @@ -9,39 +9,26 @@ android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" - android:paddingBottom="@dimen/activity_vertical_margin"> + android:paddingBottom="@dimen/activity_vertical_margin" + android:focusable="true" + android:focusableInTouchMode="true" + android:clickable="true"> - - + + - - - - - - - - - - - - - - - + android:inputType="text" + android:digits="abcdefghijklmnopqrstuvwxyz0123456789-" + android:singleLine="true"/> + - - + android:orientation="vertical" + android:focusable="true" + android:focusableInTouchMode="true" + android:clickable="true"> - - - + android:layout_height="match_parent" + tools:context=".fragments.SendTransactionFragment"> + android:focusable="true" + android:focusableInTouchMode="true" + android:clickable="true"> - - -