Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion app/res/navigation/nav_graph_personalid.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
android:id="@+id/action_personalid_biometric_config_to_personalid_message"
app:destination="@id/personalid_message_display"
app:popUpTo="@id/personalid_biometric_config" />
<action
android:id="@+id/action_personalid_biometric_config_to_personalid_name"
app:destination="@id/personalid_name"
app:popUpTo="@id/personalid_biometric_config" />
</fragment>

<fragment
Expand Down Expand Up @@ -140,7 +144,7 @@
app:destination="@id/personalid_message_display" />
<action
android:id="@+id/action_personalid_phone_fragment_to_personalid_biometric_config"
app:destination="@id/personalid_biometric_config" />
app:destination="@id/personalid_biometric_config"/>
<action
android:id="@+id/action_personalid_phone_fragment_self"
app:destination="@id/personalid_phone_fragment" />
Expand Down
1 change: 1 addition & 0 deletions app/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,7 @@
<string name="connect_verify_phone_resend">Não recebeu o seu código? Reenviar</string>
<string name="connect_verify_phone_error">Erro ao verificar o código SMS</string>
<string name="connect_verify_phone_resend_code">Reenviar código</string>
<string name="connect_verify_skip_phone_number">Vejo que é um utilizador de demonstração, por isso vamos saltar o OTP</string>
<string name="connect_verify_phone_resend_wait">Não recebeu o seu código? Reenviar em %d s</string>
<string name="connect_verify_phone_change">mudar</string>
<string name="connect_verify_phone_verify">Verificar código</string>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-sw/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,7 @@
<string name="connect_verify_phone_label_deactivate">Ili kuzima akaunti yako, tafadhali weka msimbo uliotumwa kwa SMS kwa nambari yako msingi ya simu.</string>
<string name="connect_verify_phone_error">Hitilafu katika kuthibitisha nambari ya SMS</string>
<string name="connect_verify_phone_resend_code">Tuma tena Msimbo</string>
<string name="connect_verify_skip_phone_number">Ninaona wewe ni mtumiaji wa onyesho kwa hivyo tutaruka OTP</string>
<string name="connect_messaging_title">Kutuma ujumbe</string>
<string name="connect_messaging_channel_list_title">Vituo</string>
<string name="connect_messaging_channel_list_unconsented">Kituo ambacho hakijaidhinishwa</string>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-ti/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,7 @@
<string name="connect_verify_phone_resend">ኮድካ ኣይተቐበልካን ዲኻ? ዳግማይ ስደድ</string>
<string name="connect_verify_phone_error">ኮድ ኤስኤምኤስ ኣብ ምርግጋጽ ጌጋ</string>
<string name="connect_verify_phone_resend_code">ዳግማይ ምልኣኽ ኮድ</string>
<string name="connect_verify_skip_phone_number">ዲሞ ተጠቃሚ ምዃንካ ይርእየካ ኣለኹ ስለዚ OTP ክንዝልፎ ኢና።</string>
<string name="connect_verify_phone_resend_wait">ኮድካ ኣይተቐበልካን ዲኻ? ኣብ %d s ዳግማይ ስደድ</string>
<string name="connect_verify_phone_change">ቁፅሪ ተሌፎን ቐይር።</string>
<string name="connect_verify_phone_verify">ኮድ ኣረጋግፅ።</string>
Expand Down
1 change: 1 addition & 0 deletions app/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -528,6 +528,7 @@
<string name="connect_verify_phone_resend">Didn\'t receive your code? Resend</string>
<string name="connect_verify_phone_error">Error verifying SMS code</string>
<string name="connect_verify_phone_resend_code">Resend Code</string>
<string name="connect_verify_skip_phone_number">I see you\'re a demo user, so we\'ll skip the OTP</string>

<string name="connect_verify_phone_resend_wait">Didn\'t receive your code? Resend in %d s</string>
<string name="connect_verify_phone_change">Change</string>
Expand Down
3 changes: 0 additions & 3 deletions app/src/org/commcare/AppUtils.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package org.commcare;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.text.TextUtils;

import org.commcare.android.database.app.models.UserKeyRecord;
Expand All @@ -27,7 +25,6 @@
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,9 @@
import android.view.ViewGroup;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.biometric.BiometricManager;
import androidx.biometric.BiometricPrompt;
import androidx.fragment.app.Fragment;
import androidx.navigation.NavDirections;
import androidx.navigation.Navigation;

import org.commcare.activities.connect.PersonalIdActivity;
import org.commcare.activities.connect.viewmodel.PersonalIdSessionDataViewModel;
import org.commcare.android.database.connect.models.PersonalIdSessionData;
import org.commcare.connect.ConnectConstants;
import org.commcare.connect.PersonalIdManager;
import org.commcare.connect.database.ConnectDatabaseHelper;
Expand All @@ -28,7 +23,17 @@

import java.util.Locale;

import androidx.annotation.NonNull;
import androidx.biometric.BiometricManager;
import androidx.biometric.BiometricPrompt;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.NavDirections;
import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment;

import static android.app.Activity.RESULT_OK;
import static org.commcare.utils.ViewUtils.showSnackBarWithOk;

/**
* Fragment that handles biometric or PIN verification for Connect ID authentication.
Expand All @@ -40,6 +45,8 @@ public class PersonalIdBiometricConfigFragment extends Fragment {
private BiometricPrompt.AuthenticationCallback biometricCallback;
private static final String KEY_ATTEMPTING_FINGERPRINT = "attempting_fingerprint";
private ScreenPersonalidVerifyBinding binding;
private PersonalIdSessionDataViewModel personalIdSessionDataViewModel;
private PersonalIdSessionData personalIdSessionData;

public PersonalIdBiometricConfigFragment() {
// Required empty public constructor
Expand All @@ -57,6 +64,8 @@ public void onCreate(Bundle savedInstanceState) {
if (savedInstanceState != null) {
isAttemptingFingerprint = savedInstanceState.getBoolean(KEY_ATTEMPTING_FINGERPRINT);
}
personalIdSessionDataViewModel = new ViewModelProvider(requireActivity()).get(PersonalIdSessionDataViewModel.class);
personalIdSessionData = personalIdSessionDataViewModel.getPersonalIdSessionData();
}

@Override
Expand Down Expand Up @@ -243,7 +252,15 @@ private void navigateForward(boolean enrollmentFailed) {
boolean isConfigured = fingerprint == BiometricsHelper.ConfigurationStatus.Configured ||
pin == BiometricsHelper.ConfigurationStatus.Configured;
if (isConfigured) {
Navigation.findNavController(binding.connectVerifyFingerprintButton).navigate(navigateToOtpScreen());
if (Boolean.FALSE.equals(personalIdSessionData.getDemoUser())) {
NavHostFragment.findNavController(this).navigate(navigateToOtpScreen());
} else {
View view = getView();
if (view != null) {
showSnackBarWithOk(view, getString(R.string.connect_verify_skip_phone_number),
v -> NavHostFragment.findNavController(this).navigate(navigateToNameScreen()));
}
}
}
}
}
Expand All @@ -261,4 +278,8 @@ private NavDirections navigateToOtpScreen() {
return PersonalIdBiometricConfigFragmentDirections.actionPersonalidBiometricConfigToPersonalidOtpPage(
((PersonalIdActivity)requireActivity()).primaryPhone);
}

private NavDirections navigateToNameScreen() {
return PersonalIdBiometricConfigFragmentDirections.actionPersonalidBiometricConfigToPersonalidName();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import org.jetbrains.annotations.Nullable;

import java.util.HashMap;
import androidx.navigation.fragment.NavHostFragment;

public class PersonalIdPhoneFragment extends Fragment {

Expand Down
21 changes: 21 additions & 0 deletions app/src/org/commcare/utils/ViewUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package org.commcare.utils;

import android.view.View;

import com.google.android.material.snackbar.Snackbar;

public class ViewUtils {
/**
* Displays a SnackBar with the given message and an "OK" button.
* The SnackBar will remain visible indefinitely until the "OK" button is pressed.
*
* @param view The view to find a parent from. This view is used to create the SnackBar.
* @param message The message text to show in the SnackBar.
* @param okClickListener The callback to be invoked when the "OK" button is clicked.
*/
public static void showSnackBarWithOk(View view, String message, View.OnClickListener okClickListener) {
Snackbar.make(view, message, Snackbar.LENGTH_INDEFINITE)
.setAction("OK", okClickListener)
.show();
}
}
Loading