فهرست منبع

Move disableFocus logic to PassCodeEditText

Signed-off-by: alperozturk <alper_ozturk@proton.me>
alperozturk 1 سال پیش
والد
کامیت
cb0d0caaf8

+ 0 - 6
app/src/main/java/com/owncloud/android/ui/activity/PassCodeActivity.java

@@ -172,7 +172,6 @@ public class PassCodeActivity extends AppCompatActivity implements Injectable {
     /**
      * Binds the appropriate listeners to the input boxes receiving each digit of the pass code.
      */
-    @SuppressLint("ClickableViewAccessibility")
     protected void setTextListeners() {
         for (int i = 0; i < passCodeEditTexts.length; i++) {
             final PassCodeEditText editText = passCodeEditTexts[i];
@@ -185,11 +184,6 @@ public class PassCodeActivity extends AppCompatActivity implements Injectable {
 
             int finalIndex = i;
             editText.setOnFocusChangeListener((v, hasFocus) -> onPassCodeEditTextFocusChange(finalIndex));
-
-            // Disable focus change via tap gesture
-            editText.setSelectAllOnFocus(false);
-            editText.setTextIsSelectable(false);
-            editText.setOnTouchListener((v, event) -> true);
         }
     }
 

+ 14 - 0
app/src/main/java/com/owncloud/android/ui/components/PassCodeEditText.kt

@@ -20,13 +20,27 @@
  */
 package com.owncloud.android.ui.components
 
+import android.annotation.SuppressLint
 import android.content.Context
 import android.util.AttributeSet
 import android.view.KeyEvent
+import android.view.MotionEvent
+import android.view.View
 import androidx.appcompat.widget.AppCompatEditText
 
+@SuppressLint("ClickableViewAccessibility")
 class PassCodeEditText(context: Context, attrs: AttributeSet?): AppCompatEditText(context, attrs) {
 
+    init {
+        disableFocusChangeViaTap()
+    }
+
+    private fun disableFocusChangeViaTap() {
+        setSelectAllOnFocus(false)
+        setTextIsSelectable(false)
+        setOnTouchListener { _: View?, _: MotionEvent? -> true }
+    }
+
     override fun onKeyPreIme(keyCode: Int, event: KeyEvent): Boolean {
         val isBackButtonPressed = (event.keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_UP)
         if (isBackButtonPressed) {