From a6da0c5bddfc021a3a1b8d182e3fb8a8479412fb Mon Sep 17 00:00:00 2001 From: Iago Date: Wed, 14 Jul 2021 13:49:27 -0300 Subject: [PATCH] add prop and change layout modal android --- .../rnfingerprint/FingerprintAuthModule.java | 5 +- .../com/rnfingerprint/FingerprintDialog.java | 43 ++++++++-- .../main/res/layout/background_rounded.xml | 5 ++ .../main/res/layout/fingerprint_dialog.xml | 82 +++++++++++-------- android/src/main/res/values/styles.xml | 9 ++ 5 files changed, 98 insertions(+), 46 deletions(-) create mode 100644 android/src/main/res/layout/background_rounded.xml create mode 100644 android/src/main/res/values/styles.xml diff --git a/android/src/main/java/com/rnfingerprint/FingerprintAuthModule.java b/android/src/main/java/com/rnfingerprint/FingerprintAuthModule.java index cc0c1de0..dc54baba 100644 --- a/android/src/main/java/com/rnfingerprint/FingerprintAuthModule.java +++ b/android/src/main/java/com/rnfingerprint/FingerprintAuthModule.java @@ -59,10 +59,7 @@ public void isSupported(final Callback reactErrorCallback, final Callback reactS int result = isFingerprintAuthAvailable(); if (result == FingerprintAuthConstants.IS_SUPPORTED) { - // TODO: once this package supports Android's Face Unlock, - // implement a method to find out which type of biometry - // (not just fingerprint) is actually supported - reactSuccessCallback.invoke("Fingerprint"); + reactSuccessCallback.invoke("Is supported."); } else { reactErrorCallback.invoke("Not supported.", result); } diff --git a/android/src/main/java/com/rnfingerprint/FingerprintDialog.java b/android/src/main/java/com/rnfingerprint/FingerprintDialog.java index c4876afd..b8adf22b 100644 --- a/android/src/main/java/com/rnfingerprint/FingerprintDialog.java +++ b/android/src/main/java/com/rnfingerprint/FingerprintDialog.java @@ -12,6 +12,10 @@ import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; +import android.graphics.Color; +import android.widget.LinearLayout; +import android.graphics.drawable.Drawable; +import android.graphics.PorterDuff; import com.facebook.react.bridge.ReadableMap; @@ -25,11 +29,15 @@ public class FingerprintDialog extends DialogFragment implements FingerprintHand private ImageView mFingerprintImage; private TextView mFingerprintSensorDescription; private TextView mFingerprintError; + private View mLine; + private LinearLayout mfingerprint_container; private String authReason; private int imageColor = 0; private int imageErrorColor = 0; - private String dialogTitle = ""; + private String textColor = "#333333"; + private String lineColor = "#2782E5"; + private String backgroundColor = "#ffffff"; private String cancelText = ""; private String sensorDescription = ""; private String sensorErrorDescription = ""; @@ -45,7 +53,7 @@ public void onAttach(Context context) { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Material_Light_Dialog); + setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogStyle); setCancelable(false); } @@ -67,6 +75,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa this.mFingerprintError = (TextView) v.findViewById(R.id.fingerprint_error); this.mFingerprintError.setText(this.errorText); + this.mfingerprint_container = (LinearLayout) v.findViewById(R.id.fingerprint_container); + this.mLine = (View) v.findViewById(R.id.line_division); + final Button mCancelButton = (Button) v.findViewById(R.id.cancel_button); mCancelButton.setText(this.cancelText); mCancelButton.setOnClickListener(new View.OnClickListener() { @@ -76,7 +87,20 @@ public void onClick(View view) { } }); - getDialog().setTitle(this.dialogTitle); + try{ + Drawable backgroundModal = mfingerprint_container.getBackground(); + backgroundModal.setColorFilter(Color.parseColor(this.backgroundColor), PorterDuff.Mode.SRC_IN); + + mLine.setBackgroundColor(Color.parseColor(this.lineColor)); + + mCancelButton.setTextColor(Color.parseColor(this.textColor)); + mFingerprintError.setTextColor(Color.parseColor(this.textColor)); + mFingerprintDescription.setTextColor(Color.parseColor(this.textColor)); + mFingerprintSensorDescription.setTextColor(Color.parseColor(this.textColor)); + }catch (Exception e){ + + } + getDialog().setOnKeyListener(new DialogInterface.OnKeyListener() { public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { if (keyCode != KeyEvent.KEYCODE_BACK || mFingerprintHandler == null) { @@ -130,8 +154,16 @@ public void setAuthConfig(final ReadableMap config) { return; } - if (config.hasKey("title")) { - this.dialogTitle = config.getString("title"); + if (config.hasKey("textColor")) { + this.textColor = config.getString("textColor"); + } + + if (config.hasKey("backgroundColor")) { + this.backgroundColor = config.getString("backgroundColor"); + } + + if (config.hasKey("lineColor")) { + this.lineColor = config.getString("lineColor"); } if (config.hasKey("cancelText")) { @@ -172,7 +204,6 @@ public void onAuthenticated() { @Override public void onError(String errorString, int errorCode) { - this.mFingerprintError.setText(errorString); this.mFingerprintImage.setColorFilter(this.imageErrorColor); this.mFingerprintSensorDescription.setText(this.sensorErrorDescription); } diff --git a/android/src/main/res/layout/background_rounded.xml b/android/src/main/res/layout/background_rounded.xml new file mode 100644 index 00000000..e362efb0 --- /dev/null +++ b/android/src/main/res/layout/background_rounded.xml @@ -0,0 +1,5 @@ + + + + /> + \ No newline at end of file diff --git a/android/src/main/res/layout/fingerprint_dialog.xml b/android/src/main/res/layout/fingerprint_dialog.xml index fe631909..86c63732 100644 --- a/android/src/main/res/layout/fingerprint_dialog.xml +++ b/android/src/main/res/layout/fingerprint_dialog.xml @@ -5,75 +5,85 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" + android:background="@layout/background_rounded" android:weightSum="1"> - - - + android:padding="8dp" + android:orientation="vertical"> + + + - + + + + + + +