Browse Source

Keypad fixes

master
preyearegmi 6 years ago
parent
commit
feb53404b2
  1. 3
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/security/securitykeypad/SecurityKeyboardManager.java
  2. 33
      app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/security/securitykeypad/SecurityKeyboardView.java
  3. 46
      app/src/main/res/layout/activity_transaction_password_prompt.xml
  4. 7
      app/src/main/res/layout/security_keyboard_view.xml
  5. 5
      app/src/main/res/values/attrs.xml

3
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/security/securitykeypad/SecurityKeyboardManager.java

@ -41,6 +41,9 @@ public class SecurityKeyboardManager {
}
public SecurityKeyboardManager bindWithSecurityWidgetView(SecurityKeyboardWidgetBinder binder) {
if (binder == null)
throw new IllegalArgumentException("Binding view must implement " + SecurityKeyboardWidgetBinder.class.getSimpleName());

33
app/src/main/java/com/gmeremit/online/gmeremittance_native/utils/security/securitykeypad/SecurityKeyboardView.java

@ -1,10 +1,12 @@
package com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.support.v4.view.GestureDetectorCompat;
import android.util.AttributeSet;
import android.view.GestureDetector;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.widget.EditText;
@ -42,18 +44,18 @@ public class SecurityKeyboardView extends RelativeLayout implements SecurityKeyb
public SecurityKeyboardView(Context context) {
super(context);
init(context);
init(context, null);
}
public SecurityKeyboardView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
init(context, attrs);
}
public SecurityKeyboardView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
init(context, attrs);
}
@ -65,11 +67,34 @@ public class SecurityKeyboardView extends RelativeLayout implements SecurityKeyb
this.keyboardBallonView = keyboardBallonView;
}
private void init(Context context) {
private void init(Context context, AttributeSet attrs) {
boolean shouldCenterGravityInput = false;
int keypadCursorPaddingStart=0;
if (attrs != null) {
TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.SecurityKeyboardView);
shouldCenterGravityInput = a.getBoolean(R.styleable.SecurityKeyboardView_centerGravityInput, false);
keypadCursorPaddingStart=a.getInteger(R.styleable.SecurityKeyboardView_keypadCursorPaddingStart,10);
a.recycle();
}
View v = View.inflate(context, R.layout.security_keyboard_view, this);
securityKeyboard = (EditText) v.findViewById(R.id.securityKeyboardEditText);
horizontalScrollView = (HorizontalScrollView) v.findViewById(R.id.securityKeyboardScrollView);
keyLayout = (LinearLayout) v.findViewById(R.id.keyLayout);
if (shouldCenterGravityInput) {
keyLayout.setGravity(Gravity.CENTER);
securityKeyboard.setTextAlignment(TEXT_ALIGNMENT_CENTER);
}
if(keypadCursorPaddingStart!=0) {
float density = context.getResources().getDisplayMetrics().density;
int paddingPixel = (int) (keypadCursorPaddingStart * density);
keyLayout.setPadding(paddingPixel, 0, 0, 0);
}
clearImageButton = (ImageButton) v.findViewById(R.id.securityKeyboardClearAllImageView);
myViewGestureDetector = new SecurityKeyboardManagerGestureDetector();
gestureDetector = new GestureDetectorCompat(context, myViewGestureDetector);

46
app/src/main/res/layout/activity_transaction_password_prompt.xml

@ -1,9 +1,11 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/rootView"
android:fitsSystemWindows="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="true"
android:layout_height="match_parent">
android:fitsSystemWindows="true"
android:orientation="vertical">
<!--<FrameLayout-->
<!--android:layout_height="?actionBarSize"-->
<!--android:background="@drawable/ic_rounded_password_prompt_red_header_bg"-->
@ -19,49 +21,59 @@
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="20dp"
android:gravity="center"
android:layout_marginTop="8dp"
android:padding="20dp"
android:text="@string/enter_login_password_text"
android:textColor="@color/black"
android:textSize="20sp" />
<com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeyboardView
<ImageView
android:layout_marginTop="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:layout_marginBottom="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_penny_test_pending" />
<com.gmeremit.online.gmeremittance_native.utils.security.securitykeypad.SecurityKeyboardView
android:id="@+id/securityKeyboard"
android:layout_width="match_parent"
app:centerGravityInput="false"
android:layout_height="wrap_content"
/>
android:layout_gravity="center_vertical"
android:layout_marginEnd="5dp"
android:layout_marginStart="5dp" />
<com.gmeremit.online.gmeremittance_native.customwidgets.GmeErrorTextView
android:id="@+id/passwordErrorTxt"
android:paddingTop="2dp"
android:paddingBottom="2dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="13dp"
android:layout_marginRight="13dp"
/>
android:paddingBottom="2dp"
android:paddingTop="2dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<FrameLayout
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:id="@+id/keypadContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
android:layout_alignParentBottom="true"
android:layout_gravity="bottom">
</FrameLayout>
<RelativeLayout
android:layout_alignParentBottom="true"
android:id="@+id/keypadBallon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
android:layout_alignParentBottom="true" />
</RelativeLayout>

7
app/src/main/res/layout/security_keyboard_view.xml

@ -39,10 +39,11 @@
<LinearLayout
android:paddingTop="8dp"
android:paddingStart="8dp"
android:paddingEnd="8dp"
android:layout_centerVertical="true"
android:layout_marginEnd="40dp"
android:id="@+id/keyLayout"
android:gravity="center_vertical"
android:importantForAccessibility="no"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="false"

5
app/src/main/res/values/attrs.xml

@ -22,4 +22,9 @@
<declare-styleable name="GmeErrorTextView">
<attr name="txtErrorfontName" format="string"/>
</declare-styleable>
<declare-styleable name="SecurityKeyboardView">
<attr name="centerGravityInput" format="boolean"/>
<attr name="keypadCursorPaddingStart" format="integer"/>
</declare-styleable>
</resources>
Loading…
Cancel
Save