diff --git a/app/src/org/commcare/CommCareApplication.java b/app/src/org/commcare/CommCareApplication.java index 8a2f19448f..a20513e8f9 100644 --- a/app/src/org/commcare/CommCareApplication.java +++ b/app/src/org/commcare/CommCareApplication.java @@ -1177,7 +1177,7 @@ public ModernHttpRequester buildHttpRequester(Context context, String url, networkService = CommCareNetworkServiceGenerator.createNoAuthCommCareNetworkService(); } else if(authInfo instanceof AuthInfo.CurrentAuth) { //Try to get SSO token - AuthInfo.TokenAuth tokenAuth = ConnectIDSSOHelper.acquireSSOTokenSync(context); + AuthInfo.TokenAuth tokenAuth = ConnectIDSSOHelper.acquireSsoTokenSync(context); if(tokenAuth != null) { authInfo = tokenAuth; } diff --git a/app/src/org/commcare/activities/LoginActivity.java b/app/src/org/commcare/activities/LoginActivity.java index 700f7c7ab2..7fdacdda0a 100644 --- a/app/src/org/commcare/activities/LoginActivity.java +++ b/app/src/org/commcare/activities/LoginActivity.java @@ -318,8 +318,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent intent) uiController.refreshForNewApp(); invalidateOptionsMenu(); usernameBeforeRotation = passwordOrPinBeforeRotation = null; - } - else { + } else { ConnectIDManager.handleFinishedActivity(requestCode, resultCode, intent); } @@ -437,7 +436,7 @@ private void updateConnectButton() { } private void checkForSavedCredentials() { - if(ConnectIDManager.isUnlocked()) { + if (ConnectIDManager.isUnlocked()) { int selectorIndex = uiController.getSelectedAppIndex(); String selectedAppId = appIdDropdownList.size() > 0 ? appIdDropdownList.get(selectorIndex) : ""; String seatedAppId = CommCareApplication.instance().getCurrentApp().getUniqueId(); @@ -611,7 +610,7 @@ protected boolean populateAppSpinner(ArrayList readyApps) { appIdDropdownList.clear(); boolean includeDefault = ConnectIDManager.requiresUnlock(); - if(includeDefault) { + if (includeDefault) { appNames.add(Localization.get("login.app.direct")); appIdDropdownList.add(""); } @@ -624,10 +623,9 @@ protected boolean populateAppSpinner(ArrayList readyApps) { // Want to set the spinner's selection to match whatever the currently seated app is String currAppId = CommCareApplication.instance().getCurrentApp().getUniqueId(); int position = 0; - if(selectedAppIndex >= 0) { + if (selectedAppIndex >= 0) { position = selectedAppIndex; - } - else if(!includeDefault) { + } else if (!includeDefault) { position = appIdDropdownList.indexOf(currAppId); } uiController.setMultipleAppsUIState(appNames, position); @@ -638,7 +636,7 @@ else if(!includeDefault) { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { - if(!ConnectIDManager.requiresUnlock() || position > 0) { + if (!ConnectIDManager.requiresUnlock() || position > 0) { // Retrieve the app record corresponding to the app selected selectedAppIndex = position; String appId = appIdDropdownList.get(selectedAppIndex); @@ -661,8 +659,7 @@ public void onItemSelected(AdapterView parent, View view, int position, long checkForSavedCredentials(); } } - } - else { + } else { uiController.setLoginInputsVisibility(false); } } diff --git a/app/src/org/commcare/activities/LoginActivityUIController.java b/app/src/org/commcare/activities/LoginActivityUIController.java index 3bc2c402dc..dbccfaacf2 100644 --- a/app/src/org/commcare/activities/LoginActivityUIController.java +++ b/app/src/org/commcare/activities/LoginActivityUIController.java @@ -219,7 +219,7 @@ public void refreshView() { // Decide whether or not to show the app selection spinner based upon # of usable apps ArrayList readyApps = MultipleAppsUtil.getUsableAppRecords(); boolean promptIncluded = false; - if (readyApps.size() == 1 && (!ConnectIDManager.isConnectIDIntroduced() || ConnectIDManager.isUnlocked())) { + if (readyApps.size() == 1 && (!ConnectIDManager.isConnectIdIntroduced() || ConnectIDManager.isUnlocked())) { setLoginInputsVisibility(true); // Set this app as the last selected app, for use in choosing what app to initialize // on first startup @@ -229,7 +229,7 @@ public void refreshView() { setSingleAppUIState(); - if(ConnectIDManager.isUnlocked()) { + if (ConnectIDManager.isUnlocked()) { appLabel.setVisibility(View.VISIBLE); appLabel.setText(r.getDisplayName()); } @@ -260,7 +260,7 @@ public void refreshView() { notificationButtonView.setVisibility(View.GONE); } - if(ConnectIDManager.isConnectIDIntroduced()) { + if (ConnectIDManager.isConnectIdIntroduced()) { setLoginInputsVisibility(!promptIncluded); } } @@ -273,12 +273,11 @@ public void setLoginInputsVisibility(boolean visible) { public void updateConnectLoginState() { boolean emphasizeConnectSignin = false; - if(ConnectIDManager.isConnectIDIntroduced()) { + if (ConnectIDManager.isConnectIdIntroduced()) { String welcomeText; - if(ConnectIDManager.isUnlocked()) { + if (ConnectIDManager.isUnlocked()) { welcomeText = activity.getString(R.string.login_welcome_connect_signed_in, ConnectIDDatabaseHelper.getUser(activity).getName()); - } - else { + } else { welcomeText = activity.getString(R.string.login_welcome_connect_signed_out); emphasizeConnectSignin = true; } @@ -478,7 +477,7 @@ protected boolean isAppSelectorVisible() { } protected int getSelectedAppIndex() { - return spinner.getSelectedItemPosition(); + return spinner.getSelectedItemPosition(); } protected void setPermissionsGrantedState() { diff --git a/app/src/org/commcare/activities/connect/ConnectIDConsentActivity.java b/app/src/org/commcare/activities/connect/ConnectIDConsentActivity.java index 05720c9a56..f18c9f4ede 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDConsentActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDConsentActivity.java @@ -8,6 +8,9 @@ import org.commcare.interfaces.CommCareActivityUIController; import org.commcare.interfaces.WithUIController; +/** + * @author dviggiano + */ public class ConnectIDConsentActivity extends CommCareActivity implements WithUIController { private ConnectIDConsentActivityUIController uiController; diff --git a/app/src/org/commcare/activities/connect/ConnectIDConsentActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDConsentActivityUIController.java index 3e9b9a7547..f966a70627 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDConsentActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDConsentActivityUIController.java @@ -10,6 +10,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_consent) public class ConnectIDConsentActivityUIController implements CommCareActivityUIController { diff --git a/app/src/org/commcare/activities/connect/ConnectIDConstants.java b/app/src/org/commcare/activities/connect/ConnectIDConstants.java index 68fca2eedf..3369b1dfcb 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDConstants.java +++ b/app/src/org/commcare/activities/connect/ConnectIDConstants.java @@ -1,5 +1,8 @@ package org.commcare.activities.connect; +/** + * @author dviggiano + */ public class ConnectIDConstants { public static final int ConnectIDTaskIDOffset = 1000; public static final String METHOD = "METHOD"; diff --git a/app/src/org/commcare/activities/connect/ConnectIDDatabaseHelper.java b/app/src/org/commcare/activities/connect/ConnectIDDatabaseHelper.java index de3dca68a4..edfe01f6e5 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDDatabaseHelper.java +++ b/app/src/org/commcare/activities/connect/ConnectIDDatabaseHelper.java @@ -19,11 +19,14 @@ import java.util.Date; import java.util.Vector; +/** + * @author dviggiano + */ public class ConnectIDDatabaseHelper { private static final Object connectDbHandleLock = new Object(); private static SQLiteDatabase connectDatabase; - private static byte[] getConnectDBPassphrase(Context context) { + private static byte[] getConnectDbPassphrase(Context context) { try { for (ConnectKeyRecord r : CommCareApplication.instance().getGlobalStorage(ConnectKeyRecord.class)) { return EncryptionUtils.decryptFromBase64String(context, r.getEncryptedPassphrase()); @@ -32,7 +35,8 @@ private static byte[] getConnectDBPassphrase(Context context) { //If we get here, the passphrase hasn't been created yet byte[] passphrase = EncryptionUtils.generatePassphrase(); - ConnectKeyRecord record = new ConnectKeyRecord(EncryptionUtils.encryptToBase64String(context, passphrase)); + String encoded = EncryptionUtils.encryptToBase64String(context, passphrase); + ConnectKeyRecord record = new ConnectKeyRecord(encoded); CommCareApplication.instance().getGlobalStorage(ConnectKeyRecord.class).write(record); return passphrase; @@ -44,7 +48,7 @@ private static byte[] getConnectDBPassphrase(Context context) { public static void init(Context context) { synchronized (connectDbHandleLock) { - byte[] passphrase = getConnectDBPassphrase(context); + byte[] passphrase = getConnectDbPassphrase(context); SQLiteDatabase database = new DatabaseConnectOpenHelper(context).getWritableDatabase(passphrase); database.close(); } @@ -56,7 +60,7 @@ private static SqlStorage getConnectStorage(Context c public SQLiteDatabase getHandle() { synchronized (connectDbHandleLock) { if (connectDatabase == null || !connectDatabase.isOpen()) { - byte[] passphrase = getConnectDBPassphrase(context); + byte[] passphrase = getConnectDbPassphrase(context); connectDatabase = new DatabaseConnectOpenHelper(this.c).getWritableDatabase(passphrase); } @@ -85,9 +89,10 @@ public static void forgetUser(Context context) { } public static ConnectLinkedAppRecord getAppData(Context context, String appId, String username) { - Vector records = getConnectStorage(context, ConnectLinkedAppRecord.class).getRecordsForValues( - new String[]{ConnectLinkedAppRecord.META_APP_ID, ConnectLinkedAppRecord.META_USER_ID}, - new Object[]{appId, username}); + Vector records = getConnectStorage(context, ConnectLinkedAppRecord.class) + .getRecordsForValues( + new String[]{ConnectLinkedAppRecord.META_APP_ID, ConnectLinkedAppRecord.META_USER_ID}, + new Object[]{appId, username}); return records.isEmpty() ? null : records.firstElement(); } @@ -96,10 +101,10 @@ public static void deleteAppData(Context context, ConnectLinkedAppRecord record) storage.remove(record); } - public static void storeApp(Context context, String appID, String userID, String passwordOrPin) { - ConnectLinkedAppRecord record = getAppData(context, appID, userID); + public static void storeApp(Context context, String appId, String userId, String passwordOrPin) { + ConnectLinkedAppRecord record = getAppData(context, appId, userId); if (record == null) { - record = new ConnectLinkedAppRecord(appID, userID, passwordOrPin); + record = new ConnectLinkedAppRecord(appId, userId, passwordOrPin); } else if (!record.getPassword().equals(passwordOrPin)) { record.setPassword(passwordOrPin); } @@ -111,13 +116,13 @@ public static void storeApp(Context context, ConnectLinkedAppRecord record) { getConnectStorage(context, ConnectLinkedAppRecord.class).write(record); } - public static void storeHQToken(Context context, String appID, String userID, String token, Date expiration) { - ConnectLinkedAppRecord record = getAppData(context, appID, userID); + public static void storeHqToken(Context context, String appId, String userId, String token, Date expiration) { + ConnectLinkedAppRecord record = getAppData(context, appId, userId); if (record == null) { - record = new ConnectLinkedAppRecord(appID, userID, ""); + record = new ConnectLinkedAppRecord(appId, userId, ""); } - record.updateHQToken(token, expiration); + record.updateHqToken(token, expiration); getConnectStorage(context, ConnectLinkedAppRecord.class).write(record); } diff --git a/app/src/org/commcare/activities/connect/ConnectIDLoginActivity.java b/app/src/org/commcare/activities/connect/ConnectIDLoginActivity.java index 5b6e4a6fb1..0690a01a55 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDLoginActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDLoginActivity.java @@ -13,7 +13,6 @@ import androidx.annotation.NonNull; import androidx.biometric.BiometricManager; import androidx.biometric.BiometricPrompt; -import androidx.core.content.ContextCompat; import org.commcare.google.services.analytics.AnalyticsParamValue; import org.commcare.google.services.analytics.FirebaseAnalyticsUtil; @@ -22,6 +21,9 @@ import org.commcare.interfaces.CommCareActivityUIController; import org.commcare.interfaces.WithUIController; +/** + * @author dviggiano + */ public class ConnectIDLoginActivity extends CommCareActivity implements WithUIController { private BiometricPrompt.AuthenticationCallback biometricPromptCallbacks; diff --git a/app/src/org/commcare/activities/connect/ConnectIDLoginActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDLoginActivityUIController.java index 927a068735..d09464c244 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDLoginActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDLoginActivityUIController.java @@ -9,6 +9,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_login) public class ConnectIDLoginActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_pin_button) diff --git a/app/src/org/commcare/activities/connect/ConnectIDManager.java b/app/src/org/commcare/activities/connect/ConnectIDManager.java index 8a8a58609a..a5cb695f4f 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDManager.java +++ b/app/src/org/commcare/activities/connect/ConnectIDManager.java @@ -21,8 +21,11 @@ import java.util.Locale; import java.util.Map; +/** + * @author dviggiano + */ public class ConnectIDManager { - public enum ConnectIDStatus { + public enum ConnectIdStatus { NotIntroduced, Registering, LoggedOut, @@ -34,7 +37,7 @@ public interface ConnectActivityCompleteListener { } private static ConnectIDManager manager = null; - private ConnectIDStatus connectStatus = ConnectIDStatus.NotIntroduced; + private ConnectIdStatus connectStatus = ConnectIdStatus.NotIntroduced; private CommCareActivity parentActivity; private ConnectActivityCompleteListener loginListener; private ConnectIDTask phase = ConnectIDTask.CONNECT_NO_ACTIVITY; @@ -66,15 +69,15 @@ public static void init(CommCareActivity parent) { ConnectUserRecord user = ConnectIDDatabaseHelper.getUser(manager.parentActivity); if (user != null) { if (user.getRegistrationPhase() != ConnectIDTask.CONNECT_NO_ACTIVITY) { - manager.connectStatus = ConnectIDStatus.Registering; - } else if (manager.connectStatus == ConnectIDStatus.NotIntroduced) { - manager.connectStatus = ConnectIDStatus.LoggedOut; + manager.connectStatus = ConnectIdStatus.Registering; + } else if (manager.connectStatus == ConnectIdStatus.NotIntroduced) { + manager.connectStatus = ConnectIdStatus.LoggedOut; } } } - public static boolean isConnectIDIntroduced() { - if (!AppManagerDeveloperPreferences.isConnectIDEnabled()) { + public static boolean isConnectIdIntroduced() { + if (!AppManagerDeveloperPreferences.isConnectIdEnabled()) { return false; } @@ -85,15 +88,16 @@ public static boolean isConnectIDIntroduced() { } public static boolean requiresUnlock() { - return isConnectIDIntroduced() && !isUnlocked(); + return isConnectIdIntroduced() && !isUnlocked(); } public static boolean isUnlocked() { - return AppManagerDeveloperPreferences.isConnectIDEnabled() && getInstance().connectStatus == ConnectIDStatus.LoggedIn; + return AppManagerDeveloperPreferences.isConnectIdEnabled() + && getInstance().connectStatus == ConnectIdStatus.LoggedIn; } public static boolean shouldShowSignInMenuOption() { - if (!AppManagerDeveloperPreferences.isConnectIDEnabled()) { + if (!AppManagerDeveloperPreferences.isConnectIdEnabled()) { return false; } @@ -104,7 +108,7 @@ public static boolean shouldShowSignInMenuOption() { } public static boolean shouldShowSignOutMenuOption() { - if (!AppManagerDeveloperPreferences.isConnectIDEnabled()) { + if (!AppManagerDeveloperPreferences.isConnectIdEnabled()) { return false; } @@ -123,7 +127,7 @@ public static String getConnectButtonText(Context context) { } public static boolean shouldShowConnectButton() { - if (!AppManagerDeveloperPreferences.isConnectIDEnabled()) { + if (!AppManagerDeveloperPreferences.isConnectIdEnabled()) { return false; } @@ -134,8 +138,8 @@ public static boolean shouldShowConnectButton() { } public static void signOut() { - if (getInstance().connectStatus == ConnectIDStatus.LoggedIn) { - getInstance().connectStatus = ConnectIDStatus.LoggedOut; + if (getInstance().connectStatus == ConnectIdStatus.LoggedIn) { + getInstance().connectStatus = ConnectIdStatus.LoggedOut; } } @@ -148,7 +152,7 @@ public static void forgetUser() { ConnectIDDatabaseHelper.forgetUser(manager.parentActivity); - manager.connectStatus = ConnectIDStatus.NotIntroduced; + manager.connectStatus = ConnectIdStatus.NotIntroduced; manager.loginListener = null; manager.phase = ConnectIDTask.CONNECT_NO_ACTIVITY; manager.primaryPhone = null; @@ -209,14 +213,14 @@ private void continueWorkflow() { params.put(ConnectIDConstants.METHOD, String.format(Locale.getDefault(), "%d", ConnectIDPhoneVerificationActivity.MethodRegistrationPrimary)); params.put(ConnectIDConstants.PHONE, user.getPrimaryPhone()); params.put(ConnectIDConstants.CHANGE, "true"); - params.put(ConnectIDConstants.USERNAME, user.getUserID()); + params.put(ConnectIDConstants.USERNAME, user.getUserId()); params.put(ConnectIDConstants.PASSWORD, user.getPassword()); } case CONNECT_REGISTRATION_CHANGE_PRIMARY_PHONE -> { params.put(ConnectIDConstants.METHOD, ConnectIDConstants.METHOD_CHANGE_PRIMARY); } case CONNECT_REGISTRATION_CONFIGURE_PASSWORD -> { - params.put(ConnectIDConstants.USERNAME, user.getUserID()); + params.put(ConnectIDConstants.USERNAME, user.getUserId()); params.put(ConnectIDConstants.PASSWORD, user.getPassword()); params.put(ConnectIDConstants.METHOD, passwordOnlyWorkflow ? "true" : "false"); } @@ -233,7 +237,8 @@ private void continueWorkflow() { params.put(ConnectIDConstants.METHOD, ConnectIDConstants.METHOD_RECOVER_PRIMARY); } case CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE -> { - params.put(ConnectIDConstants.METHOD, String.format(Locale.getDefault(), "%d", ConnectIDPhoneVerificationActivity.MethodRecoveryPrimary)); + params.put(ConnectIDConstants.METHOD, String.format(Locale.getDefault(), "%d", + ConnectIDPhoneVerificationActivity.MethodRecoveryPrimary)); params.put(ConnectIDConstants.PHONE, recoveryPhone); params.put(ConnectIDConstants.CHANGE, "false"); params.put(ConnectIDConstants.USERNAME, recoveryPhone); @@ -251,7 +256,8 @@ private void continueWorkflow() { params.put(ConnectIDConstants.BUTTON, R.string.connect_recovery_alt_button); } case CONNECT_RECOVERY_VERIFY_ALT_PHONE -> { - params.put(ConnectIDConstants.METHOD, String.format(Locale.getDefault(), "%d", ConnectIDPhoneVerificationActivity.MethodRecoveryAlternate)); + params.put(ConnectIDConstants.METHOD, String.format(Locale.getDefault(), "%d", + ConnectIDPhoneVerificationActivity.MethodRecoveryAlternate)); params.put(ConnectIDConstants.PHONE, null); params.put(ConnectIDConstants.CHANGE, "false"); params.put(ConnectIDConstants.USERNAME, recoveryPhone); @@ -303,10 +309,12 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten } } case CONNECT_REGISTRATION_CONSENT -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_PRIMARY_PHONE : ConnectIDTask.CONNECT_NO_ACTIVITY; + nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_PRIMARY_PHONE : + ConnectIDTask.CONNECT_NO_ACTIVITY; } case CONNECT_REGISTRATION_PRIMARY_PHONE -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_MAIN : ConnectIDTask.CONNECT_REGISTRATION_CONSENT; + nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_MAIN : + ConnectIDTask.CONNECT_REGISTRATION_CONSENT; if (success) { manager.primaryPhone = intent.getStringExtra(ConnectIDConstants.PHONE); @@ -318,7 +326,8 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten } } case CONNECT_REGISTRATION_MAIN -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_BIOMETRICS : ConnectIDTask.CONNECT_REGISTRATION_PRIMARY_PHONE; + nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_BIOMETRICS : + ConnectIDTask.CONNECT_REGISTRATION_PRIMARY_PHONE; if (success) { ConnectUserRecord user = ConnectUserRecord.getUserFromIntent(intent); ConnectUserRecord dbUser = ConnectIDDatabaseHelper.getUser(manager.parentActivity); @@ -327,7 +336,7 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten dbUser.setAlternatePhone(user.getAlternatePhone()); user = dbUser; } else { - manager.connectStatus = ConnectIDStatus.Registering; + manager.connectStatus = ConnectIdStatus.Registering; } ConnectIDDatabaseHelper.storeUser(manager.parentActivity, user); rememberPhase = true; @@ -340,23 +349,29 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten //If no biometric configured, proceed with password only boolean configured = intent.getBooleanExtra(ConnectIDConstants.CONFIGURED, false); manager.passwordOnlyWorkflow = intent.getBooleanExtra(ConnectIDConstants.PASSWORD, false); - nextRequestCode = !manager.passwordOnlyWorkflow && configured ? ConnectIDTask.CONNECT_REGISTRATION_UNLOCK_BIOMETRIC : ConnectIDTask.CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE; + nextRequestCode = !manager.passwordOnlyWorkflow && configured ? + ConnectIDTask.CONNECT_REGISTRATION_UNLOCK_BIOMETRIC : + ConnectIDTask.CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE; } } case CONNECT_REGISTRATION_UNLOCK_BIOMETRIC -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE : ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_BIOMETRICS; + nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE : + ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_BIOMETRICS; rememberPhase = success; } case CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE -> { - nextRequestCode = manager.passwordOnlyWorkflow ? ConnectIDTask.CONNECT_REGISTRATION_MAIN : ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_BIOMETRICS; + nextRequestCode = manager.passwordOnlyWorkflow ? ConnectIDTask.CONNECT_REGISTRATION_MAIN : + ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_BIOMETRICS; if (success) { boolean changeNumber = intent != null && intent.getBooleanExtra(ConnectIDConstants.CHANGE, false); - nextRequestCode = changeNumber ? ConnectIDTask.CONNECT_REGISTRATION_CHANGE_PRIMARY_PHONE : ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_PASSWORD; + nextRequestCode = changeNumber ? ConnectIDTask.CONNECT_REGISTRATION_CHANGE_PRIMARY_PHONE : + ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_PASSWORD; rememberPhase = !changeNumber; } } case CONNECT_REGISTRATION_ALTERNATE_PHONE -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_SUCCESS : ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_PASSWORD; + nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_SUCCESS : + ConnectIDTask.CONNECT_REGISTRATION_CONFIGURE_PASSWORD; if (success) { rememberPhase = true; ConnectUserRecord user = ConnectIDDatabaseHelper.getUser(manager.parentActivity); @@ -367,7 +382,8 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten } } case CONNECT_REGISTRATION_CHANGE_PRIMARY_PHONE -> { - //Note that we return to primary phone verification (whether they did or didn't change the phone number) + //Note that we return to primary phone verification + // (whether they did or didn't change the phone number) nextRequestCode = ConnectIDTask.CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE; if (success) { rememberPhase = true; @@ -379,7 +395,8 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten } } case CONNECT_REGISTRATION_CONFIGURE_PASSWORD -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_ALTERNATE_PHONE : ConnectIDTask.CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE; + nextRequestCode = success ? ConnectIDTask.CONNECT_REGISTRATION_ALTERNATE_PHONE : + ConnectIDTask.CONNECT_REGISTRATION_VERIFY_PRIMARY_PHONE; if (success) { rememberPhase = true; @@ -402,14 +419,16 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten case CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE -> { if (success) { //If the user forgot their password, proceed directly to alt OTP - nextRequestCode = manager.forgotPassword ? ConnectIDTask.CONNECT_RECOVERY_ALT_PHONE_MESSAGE : ConnectIDTask.CONNECT_RECOVERY_VERIFY_PASSWORD; + nextRequestCode = manager.forgotPassword ? ConnectIDTask.CONNECT_RECOVERY_ALT_PHONE_MESSAGE : + ConnectIDTask.CONNECT_RECOVERY_VERIFY_PASSWORD; //Remember the secret key for use through the rest of the recovery process manager.recoverySecret = intent.getStringExtra(ConnectIDConstants.SECRET); } } case CONNECT_RECOVERY_VERIFY_PASSWORD -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_RECOVERY_SUCCESS : ConnectIDTask.CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE; + nextRequestCode = success ? ConnectIDTask.CONNECT_RECOVERY_SUCCESS : + ConnectIDTask.CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE; if (success) { manager.forgotPassword = intent.getBooleanExtra(ConnectIDConstants.FORGOT, false); if (manager.forgotPassword) { @@ -421,7 +440,8 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten if (username != null && name != null && password != null) { //TODO: Need to get secondary phone from server - ConnectUserRecord user = new ConnectUserRecord(manager.recoveryPhone, username, password, name, ""); + ConnectUserRecord user = new ConnectUserRecord(manager.recoveryPhone, username, + password, name, ""); user.setLastPasswordDate(new Date()); ConnectIDDatabaseHelper.storeUser(manager.parentActivity, user); } @@ -434,7 +454,8 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten } } case CONNECT_RECOVERY_VERIFY_ALT_PHONE -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_RECOVERY_CHANGE_PASSWORD : ConnectIDTask.CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE; + nextRequestCode = success ? ConnectIDTask.CONNECT_RECOVERY_CHANGE_PASSWORD : + ConnectIDTask.CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE; if (success) { String username = intent.getStringExtra(ConnectIDConstants.USERNAME); @@ -443,13 +464,15 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten if (username != null && name != null) { //NOTE: They'll choose a new password next - ConnectUserRecord user = new ConnectUserRecord(manager.recoveryPhone, username, "", name, altPhone); + ConnectUserRecord user = new ConnectUserRecord(manager.recoveryPhone, username, + "", name, altPhone); ConnectIDDatabaseHelper.storeUser(manager.parentActivity, user); } } } case CONNECT_RECOVERY_CHANGE_PASSWORD -> { - nextRequestCode = success ? ConnectIDTask.CONNECT_RECOVERY_SUCCESS : ConnectIDTask.CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE; + nextRequestCode = success ? ConnectIDTask.CONNECT_RECOVERY_SUCCESS : + ConnectIDTask.CONNECT_RECOVERY_VERIFY_PRIMARY_PHONE; if (success) { //Update password manager.forgotPassword = false; @@ -465,12 +488,12 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten CONNECT_REGISTRATION_SUCCESS -> { //Finish workflow, user registered/recovered and logged in rememberPhase = true; - manager.connectStatus = ConnectIDStatus.LoggedIn; + manager.connectStatus = ConnectIdStatus.LoggedIn; manager.loginListener.connectActivityComplete(true); } case CONNECT_UNLOCK_BIOMETRIC -> { if (success) { - manager.connectStatus = ConnectIDStatus.LoggedIn; + manager.connectStatus = ConnectIdStatus.LoggedIn; manager.loginListener.connectActivityComplete(true); } else if (intent != null && intent.getBooleanExtra(ConnectIDConstants.PASSWORD, false)) { nextRequestCode = ConnectIDTask.CONNECT_UNLOCK_PASSWORD; @@ -487,7 +510,7 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten manager.forgotPassword = true; } else { manager.forgotPassword = false; - manager.connectStatus = ConnectIDStatus.LoggedIn; + manager.connectStatus = ConnectIdStatus.LoggedIn; manager.loginListener.connectActivityComplete(true); FirebaseAnalyticsUtil.reportCccSignIn(AnalyticsParamValue.CCC_SIGN_IN_METHOD_PASSWORD); @@ -511,25 +534,25 @@ public static void handleFinishedActivity(int requestCode, int resultCode, Inten manager.continueWorkflow(); } - public static void rememberAppCredentials(String appID, String userID, String passwordOrPin) { + public static void rememberAppCredentials(String appId, String userId, String passwordOrPin) { ConnectIDManager manager = getInstance(); if (isUnlocked()) { - ConnectIDDatabaseHelper.storeApp(manager.parentActivity, appID, userID, passwordOrPin); + ConnectIDDatabaseHelper.storeApp(manager.parentActivity, appId, userId, passwordOrPin); } } - public static void forgetAppCredentials(String appID, String userID) { - ConnectLinkedAppRecord record = ConnectIDDatabaseHelper.getAppData(manager.parentActivity, appID, userID); + public static void forgetAppCredentials(String appId, String userId) { + ConnectLinkedAppRecord record = ConnectIDDatabaseHelper.getAppData(manager.parentActivity, appId, userId); if (record != null) { ConnectIDDatabaseHelper.deleteAppData(manager.parentActivity, record); } } - public static AuthInfo.ProvidedAuth getCredentialsForApp(String appID, String userID) { + public static AuthInfo.ProvidedAuth getCredentialsForApp(String appId, String userId) { if (isUnlocked()) { - ConnectLinkedAppRecord record = ConnectIDDatabaseHelper.getAppData(manager.parentActivity, appID, userID); + ConnectLinkedAppRecord record = ConnectIDDatabaseHelper.getAppData(manager.parentActivity, appId, userId); if (record != null && record.getPassword().length() > 0) { - return new AuthInfo.ProvidedAuth(record.getUserID(), record.getPassword(), false); + return new AuthInfo.ProvidedAuth(record.getUserId(), record.getPassword(), false); } } @@ -547,11 +570,11 @@ public static AuthInfo.TokenAuth getConnectToken() { return null; } - public static AuthInfo.TokenAuth getTokenCredentialsForApp(String appID, String userID) { + public static AuthInfo.TokenAuth getTokenCredentialsForApp(String appId, String userId) { if (isUnlocked()) { - ConnectLinkedAppRecord record = ConnectIDDatabaseHelper.getAppData(manager.parentActivity, appID, userID); - if (record != null && (new Date()).compareTo(record.getHQTokenExpiration()) < 0) { - return new AuthInfo.TokenAuth(record.getHQToken()); + ConnectLinkedAppRecord record = ConnectIDDatabaseHelper.getAppData(manager.parentActivity, appId, userId); + if (record != null && (new Date()).compareTo(record.getHqTokenExpiration()) < 0) { + return new AuthInfo.TokenAuth(record.getHqToken()); } } diff --git a/app/src/org/commcare/activities/connect/ConnectIDMessageActivity.java b/app/src/org/commcare/activities/connect/ConnectIDMessageActivity.java index 361724ffd4..f8ae47633c 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDMessageActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDMessageActivity.java @@ -7,6 +7,9 @@ import org.commcare.interfaces.CommCareActivityUIController; import org.commcare.interfaces.WithUIController; +/** + * @author dviggiano + */ public class ConnectIDMessageActivity extends CommCareActivity implements WithUIController { private ConnectIDMessageActivityUIController uiController; diff --git a/app/src/org/commcare/activities/connect/ConnectIDMessageActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDMessageActivityUIController.java index 473a28b337..e1b6686444 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDMessageActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDMessageActivityUIController.java @@ -8,6 +8,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_message) public class ConnectIDMessageActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_message_title) diff --git a/app/src/org/commcare/activities/connect/ConnectIDNetworkHelper.java b/app/src/org/commcare/activities/connect/ConnectIDNetworkHelper.java index facf1a70ba..08c96f202c 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDNetworkHelper.java +++ b/app/src/org/commcare/activities/connect/ConnectIDNetworkHelper.java @@ -28,11 +28,15 @@ import okhttp3.ResponseBody; import retrofit2.Response; +/** + * @author dviggiano + */ public class ConnectIDNetworkHelper { public interface INetworkResultHandler { void processSuccess(int responseCode, InputStream responseData); void processFailure(int responseCode, IOException e); + void processNetworkFailure(); } @@ -62,19 +66,24 @@ private static ConnectIDNetworkHelper getInstance() { return Loader.INSTANCE; } - public static PostResult postSync(Context context, String url, AuthInfo authInfo, HashMap params, boolean useFormEncoding) { + public static PostResult postSync(Context context, String url, AuthInfo authInfo, + HashMap params, boolean useFormEncoding) { return getInstance().postSyncInternal(context, url, authInfo, params, useFormEncoding); } - public static boolean post(Context context, String url, AuthInfo authInfo, HashMap params, boolean useFormEncoding, INetworkResultHandler handler) { + public static boolean post(Context context, String url, AuthInfo authInfo, + HashMap params, boolean useFormEncoding, + INetworkResultHandler handler) { return getInstance().postInternal(context, url, authInfo, params, useFormEncoding, handler); } - public static boolean get(Context context, String url, AuthInfo authInfo, Multimap params, INetworkResultHandler handler) { + public static boolean get(Context context, String url, AuthInfo authInfo, + Multimap params, INetworkResultHandler handler) { return getInstance().getInternal(context, url, authInfo, params, handler); } - private PostResult postSyncInternal(Context context, String url, AuthInfo authInfo, HashMap params, boolean useFormEncoding) { + private PostResult postSyncInternal(Context context, String url, AuthInfo authInfo, + HashMap params, boolean useFormEncoding) { isBusy = true; showProgressDialog(context); HashMap headers = new HashMap<>(); @@ -124,7 +133,9 @@ private PostResult postSyncInternal(Context context, String url, AuthInfo authIn return new PostResult(responseCode, stream, exception); } - private boolean postInternal(Context context, String url, AuthInfo authInfo, HashMap params, boolean useFormEncoding, INetworkResultHandler handler) { + private boolean postInternal(Context context, String url, AuthInfo authInfo, + HashMap params, boolean useFormEncoding, + INetworkResultHandler handler) { if (isBusy) { return false; } @@ -174,7 +185,8 @@ private HashMap getContentHeadersForXFormPost(RequestBody postBo return headers; } - private boolean getInternal(Context context, String url, AuthInfo authInfo, Multimap params, INetworkResultHandler handler) { + private boolean getInternal(Context context, String url, AuthInfo authInfo, + Multimap params, INetworkResultHandler handler) { if (isBusy) { return false; } @@ -238,10 +250,9 @@ public void processOther(int responseCode) { @Override public void handleIOException(IOException exception) { onFinishProcessing(context); - if(exception instanceof UnknownHostException) { + if (exception instanceof UnknownHostException) { handler.processNetworkFailure(); - } - else { + } else { handler.processFailure(-1, exception); } } @@ -287,14 +298,15 @@ private void onFinishProcessing(Context context) { } private static final int NETWORK_ACTIVITY_ID = 7000; + private void showProgressDialog(Context context) { - if(context instanceof CommCareActivity) { + if (context instanceof CommCareActivity) { ((CommCareActivity)context).showProgressDialog(NETWORK_ACTIVITY_ID); } } private void dismissProgressDialog(Context context) { - if(context instanceof CommCareActivity) { + if (context instanceof CommCareActivity) { ((CommCareActivity)context).dismissProgressDialogForTask(NETWORK_ACTIVITY_ID); } } diff --git a/app/src/org/commcare/activities/connect/ConnectIDPasswordActivity.java b/app/src/org/commcare/activities/connect/ConnectIDPasswordActivity.java index cb6db2c011..9eb98e86de 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPasswordActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPasswordActivity.java @@ -18,6 +18,9 @@ import java.io.InputStream; import java.util.HashMap; +/** + * @author dviggiano + */ public class ConnectIDPasswordActivity extends CommCareActivity implements WithUIController { private ConnectIDPasswordActivityUIController uiController; diff --git a/app/src/org/commcare/activities/connect/ConnectIDPasswordActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDPasswordActivityUIController.java index b42c20302c..62cab2e42b 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPasswordActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPasswordActivityUIController.java @@ -12,6 +12,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_password) public class ConnectIDPasswordActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_password_message) diff --git a/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivity.java b/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivity.java index d40a954560..dde86ba232 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivity.java @@ -22,6 +22,9 @@ import java.io.InputStream; import java.util.HashMap; +/** + * @author dviggiano + */ public class ConnectIDPasswordVerificationActivity extends CommCareActivity implements WithUIController { public static final int PASSWORD_FAIL = 1; diff --git a/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivityUIController.java index c031989513..ca7e5d8abd 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPasswordVerificationActivityUIController.java @@ -10,6 +10,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_password_verify) public class ConnectIDPasswordVerificationActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_password_verify_input) diff --git a/app/src/org/commcare/activities/connect/ConnectIDPhoneActivity.java b/app/src/org/commcare/activities/connect/ConnectIDPhoneActivity.java index b5611c1eeb..7b19367974 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPhoneActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPhoneActivity.java @@ -29,6 +29,9 @@ import java.util.HashMap; import java.util.Locale; +/** + * @author dviggiano + */ public class ConnectIDPhoneActivity extends CommCareActivity implements WithUIController { @@ -142,7 +145,7 @@ public void handleButtonPress() { params.put("new_phone_number", phone); } - boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(urlId), new AuthInfo.ProvidedAuth(user.getUserID(), user.getPassword(), false), params, false, new ConnectIDNetworkHelper.INetworkResultHandler() { + boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(urlId), new AuthInfo.ProvidedAuth(user.getUserId(), user.getPassword(), false), params, false, new ConnectIDNetworkHelper.INetworkResultHandler() { @Override public void processSuccess(int responseCode, InputStream responseData) { finish(true, phone); diff --git a/app/src/org/commcare/activities/connect/ConnectIDPhoneActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDPhoneActivityUIController.java index 8aa4d2f8f2..644f574c00 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPhoneActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPhoneActivityUIController.java @@ -12,6 +12,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_primary_phone) public class ConnectIDPhoneActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_primary_phone_title) diff --git a/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivity.java b/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivity.java index 7ccdec05f8..0cc216171f 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivity.java @@ -24,6 +24,9 @@ import java.util.HashMap; import java.util.Locale; +/** + * @author dviggiano + */ public class ConnectIDPhoneVerificationActivity extends CommCareActivity implements WithUIController { public static final int MethodRegistrationPrimary = 1; @@ -56,7 +59,7 @@ protected void onCreate(Bundle savedInstanceState) { updateMessage(); - requestSMSCode(); + requestSmsCode(); startHandler(); } @@ -102,7 +105,7 @@ public void run() { double elapsedMinutes = ((new DateTime()).getMillis() - smsTime.getMillis()) / 60000.0; int resendLimitMinutes = 2; double minutesRemaining = resendLimitMinutes - elapsedMinutes; - if(minutesRemaining > 0) { + if (minutesRemaining > 0) { secondsToReset = (int)Math.ceil(minutesRemaining * 60); } } @@ -139,7 +142,7 @@ public void updateMessage() { uiController.setLabelText(getString(R.string.connect_verify_phone_label, phone)); } - public void requestSMSCode() { + public void requestSmsCode() { smsTime = new DateTime(); uiController.setErrorMessage(null); @@ -162,7 +165,8 @@ public void requestSMSCode() { } } - boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(urlId), authInfo, params, false, new ConnectIDNetworkHelper.INetworkResultHandler() { + boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(urlId), authInfo, params, false, + new ConnectIDNetworkHelper.INetworkResultHandler() { @Override public void processSuccess(int responseCode, InputStream responseData) { try { @@ -214,7 +218,7 @@ public void processNetworkFailure() { } } - public void verifySMSCode() { + public void verifySmsCode() { uiController.setErrorMessage(null); int urlId; HashMap params = new HashMap<>(); @@ -238,7 +242,8 @@ public void verifySMSCode() { params.put("token", uiController.getCode()); - boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(urlId), authInfo, params, false, new ConnectIDNetworkHelper.INetworkResultHandler() { + boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(urlId), authInfo, params, false, + new ConnectIDNetworkHelper.INetworkResultHandler() { @Override public void processSuccess(int responseCode, InputStream responseData) { String username = ""; diff --git a/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivityUIController.java index aca88ca833..b72c5a00c7 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPhoneVerificationActivityUIController.java @@ -12,6 +12,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_phone_verify) public class ConnectIDPhoneVerificationActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_phone_verify_label) @@ -35,9 +38,9 @@ public ConnectIDPhoneVerificationActivityUIController(ConnectIDPhoneVerification @Override public void setupUI() { - resendTextView.setOnClickListener(arg0 -> activity.requestSMSCode()); + resendTextView.setOnClickListener(arg0 -> activity.requestSmsCode()); changeTextView.setOnClickListener(arg0 -> activity.changeNumber()); - verifyButton.setOnClickListener(arg0 -> activity.verifySMSCode()); + verifyButton.setOnClickListener(arg0 -> activity.verifySmsCode()); } @Override diff --git a/app/src/org/commcare/activities/connect/ConnectIDPicturesActivity.java b/app/src/org/commcare/activities/connect/ConnectIDPicturesActivity.java index 4cfea6382b..60a476654c 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPicturesActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPicturesActivity.java @@ -20,6 +20,9 @@ import org.commcare.views.dialogs.DialogCreationHelpers; import org.javarosa.core.services.locale.Localization; +/** + * @author dviggiano + */ public class ConnectIDPicturesActivity extends CommCareActivity implements WithUIController, RuntimePermissionRequester { private static final int FACE_REQUEST = 1; diff --git a/app/src/org/commcare/activities/connect/ConnectIDPicturesActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDPicturesActivityUIController.java index 610513369a..7503074e31 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDPicturesActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDPicturesActivityUIController.java @@ -9,6 +9,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_pictures) public class ConnectIDPicturesActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_pictures_face_icon) diff --git a/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivity.java b/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivity.java index 6a66366f93..9f95606d88 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivity.java @@ -1,6 +1,5 @@ package org.commcare.activities.connect; -import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.widget.Toast; @@ -20,6 +19,9 @@ import java.io.InputStream; import java.util.Locale; +/** + * @author dviggiano + */ public class ConnectIDRecoveryDecisionActivity extends CommCareActivity implements WithUIController { private enum ConnectRecoveryState { diff --git a/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivityUIController.java index ff0cbd8535..d15c7cd3e9 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDRecoveryDecisionActivityUIController.java @@ -14,6 +14,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_recovery_decision) public class ConnectIDRecoveryDecisionActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_recovery_message) diff --git a/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivity.java b/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivity.java index 362501c5c8..7c0f1c1ca8 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivity.java @@ -18,6 +18,9 @@ import java.util.Locale; import java.util.Random; +/** + * @author dviggiano + */ public class ConnectIDRegistrationActivity extends CommCareActivity implements WithUIController { private ConnectIDRegistrationActivityUIController uiController; @@ -117,7 +120,7 @@ public void createAccount() { ConnectUserRecord tempUser = new ConnectUserRecord(phone, generateUserId(), generatePassword(), uiController.getNameText(), ""); HashMap params = new HashMap<>(); - params.put("username", tempUser.getUserID()); + params.put("username", tempUser.getUserId()); params.put("password", tempUser.getPassword()); params.put("name", tempUser.getName()); params.put("phone_number", phone); @@ -156,7 +159,7 @@ public void updateAccount() { HashMap params = new HashMap<>(); params.put("name", user.getName()); - boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(R.string.ConnectUpdateProfileURL), new AuthInfo.ProvidedAuth(user.getUserID(), user.getPassword(), false), params, false, new ConnectIDNetworkHelper.INetworkResultHandler() { + boolean isBusy = !ConnectIDNetworkHelper.post(this, getString(R.string.ConnectUpdateProfileURL), new AuthInfo.ProvidedAuth(user.getUserId(), user.getPassword(), false), params, false, new ConnectIDNetworkHelper.INetworkResultHandler() { @Override public void processSuccess(int responseCode, InputStream responseData) { user.setName(newName); diff --git a/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivityUIController.java index 81e96218e1..49c5fe2b44 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDRegistrationActivityUIController.java @@ -12,6 +12,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_registration) public class ConnectIDRegistrationActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_edit_name) diff --git a/app/src/org/commcare/activities/connect/ConnectIDSSOHelper.java b/app/src/org/commcare/activities/connect/ConnectIDSSOHelper.java index 36da6403b7..3fb3949634 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDSSOHelper.java +++ b/app/src/org/commcare/activities/connect/ConnectIDSSOHelper.java @@ -20,9 +20,12 @@ import java.util.Date; import java.util.HashMap; +/** + * @author dviggiano + */ public class ConnectIDSSOHelper { - public static AuthInfo.TokenAuth acquireSSOTokenSync(Context context) { - if(!ConnectIDManager.isUnlocked()) { + public static AuthInfo.TokenAuth acquireSsoTokenSync(Context context) { + if (!ConnectIDManager.isUnlocked()) { return null; } @@ -30,36 +33,36 @@ public static AuthInfo.TokenAuth acquireSSOTokenSync(Context context) { String hqUser; try { hqUser = CommCareApplication.instance().getRecordForCurrentUser().getUsername(); - } catch(Exception e) { + } catch (Exception e) { //No token if no session return null; } ConnectLinkedAppRecord appRecord = ConnectIDDatabaseHelper.getAppData(context, seatedAppId, hqUser); - if(appRecord == null) { + if (appRecord == null) { return null; } //See if we already have a valid token AuthInfo.TokenAuth hqTokenAuth = ConnectIDManager.getTokenCredentialsForApp(seatedAppId, hqUser); - if(hqTokenAuth == null) { + if (hqTokenAuth == null) { //First get a valid Connect token AuthInfo.TokenAuth connectToken = ConnectIDManager.getConnectToken(); - if(connectToken == null) { + if (connectToken == null) { //Retrieve a new connect token connectToken = retrieveConnectToken(context); } - if(connectToken == null) { + if (connectToken == null) { //If we can't get a valid Connect token there's no point continuing return null; } //Link user if necessary - linkHQWorker(context, hqUser, appRecord.getPassword(), connectToken.bearerToken); + linkHqWorker(context, hqUser, appRecord.getPassword(), connectToken.bearerToken); //Retrieve HQ token - hqTokenAuth = retrieveHQToken(context, hqUser, connectToken.bearerToken); + hqTokenAuth = retrieveHqToken(context, hqUser, connectToken.bearerToken); } return hqTokenAuth; @@ -72,13 +75,14 @@ private static AuthInfo.TokenAuth retrieveConnectToken(Context context) { params.put("client_id", "zqFUtAAMrxmjnC1Ji74KAa6ZpY1mZly0J0PlalIa"); params.put("scope", "openid"); params.put("grant_type", "password"); - params.put("username", user.getUserID()); + params.put("username", user.getUserId()); params.put("password", user.getPassword()); String url = context.getString(R.string.ConnectTokenURL); - ConnectIDNetworkHelper.PostResult postResult = ConnectIDNetworkHelper.postSync(context, url, new AuthInfo.NoAuth(), params, true); - if(postResult.responseCode == 200) { + ConnectIDNetworkHelper.PostResult postResult = ConnectIDNetworkHelper.postSync(context, url, + new AuthInfo.NoAuth(), params, true); + if (postResult.responseCode == 200) { try { String responseAsString = new String(StreamsUtil.inputStreamToByteArray(postResult.responseStream)); postResult.responseStream.close(); @@ -103,17 +107,19 @@ private static AuthInfo.TokenAuth retrieveConnectToken(Context context) { return null; } - private static void linkHQWorker(Context context, String hqUsername, String hqPassword, String connectToken) { + private static void linkHqWorker(Context context, String hqUsername, String hqPassword, String connectToken) { String seatedAppId = CommCareApplication.instance().getCurrentApp().getUniqueId(); ConnectLinkedAppRecord appRecord = ConnectIDDatabaseHelper.getAppData(context, seatedAppId, hqUsername); - if(appRecord != null && !appRecord.getWorkerLinked()) { + if (appRecord != null && !appRecord.getWorkerLinked()) { HashMap params = new HashMap<>(); params.put("token", connectToken); - String url = ServerUrls.getKeyServer().replace("phone/keys/", "settings/users/commcare/link_connectid_user/"); + String url = ServerUrls.getKeyServer().replace("phone/keys/", + "settings/users/commcare/link_connectid_user/"); try { - ConnectIDNetworkHelper.PostResult postResult = ConnectIDNetworkHelper.postSync(context, url, new AuthInfo.ProvidedAuth(hqUsername, hqPassword), params, true); + ConnectIDNetworkHelper.PostResult postResult = ConnectIDNetworkHelper.postSync(context, url, + new AuthInfo.ProvidedAuth(hqUsername, hqPassword), params, true); if (postResult.e == null && postResult.responseCode == 200) { postResult.responseStream.close(); @@ -127,7 +133,7 @@ private static void linkHQWorker(Context context, String hqUsername, String hqPa } } - private static AuthInfo.TokenAuth retrieveHQToken(Context context, String hqUsername, String connectToken) { + private static AuthInfo.TokenAuth retrieveHqToken(Context context, String hqUsername, String connectToken) { HashMap params = new HashMap<>(); params.put("client_id", "4eHlQad1oasGZF0lPiycZIjyL0SY1zx7ZblA6SCV"); params.put("scope", "sync"); @@ -144,8 +150,9 @@ private static AuthInfo.TokenAuth retrieveHQToken(Context context, String hqUser String url = "https://" + host + "/oauth/token/"; - ConnectIDNetworkHelper.PostResult postResult = ConnectIDNetworkHelper.postSync(context, url, new AuthInfo.NoAuth(), params, true); - if(postResult.responseCode == 200) { + ConnectIDNetworkHelper.PostResult postResult = ConnectIDNetworkHelper.postSync(context, url, + new AuthInfo.NoAuth(), params, true); + if (postResult.responseCode == 200) { try { String responseAsString = new String(StreamsUtil.inputStreamToByteArray(postResult.responseStream)); JSONObject json = new JSONObject(responseAsString); @@ -158,7 +165,7 @@ private static AuthInfo.TokenAuth retrieveHQToken(Context context, String hqUser expiration.setTime(expiration.getTime() + ((long)seconds * 1000)); String seatedAppId = CommCareApplication.instance().getCurrentApp().getUniqueId(); - ConnectIDDatabaseHelper.storeHQToken(context, seatedAppId, hqUsername, token, expiration); + ConnectIDDatabaseHelper.storeHqToken(context, seatedAppId, hqUsername, token, expiration); return new AuthInfo.TokenAuth(token); } diff --git a/app/src/org/commcare/activities/connect/ConnectIDTask.java b/app/src/org/commcare/activities/connect/ConnectIDTask.java index c3efcea392..34df9a1722 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDTask.java +++ b/app/src/org/commcare/activities/connect/ConnectIDTask.java @@ -1,5 +1,8 @@ package org.commcare.activities.connect; +/** + * @author dviggiano + */ public enum ConnectIDTask { CONNECT_NO_ACTIVITY(ConnectIDConstants.ConnectIDTaskIDOffset, null), CONNECT_REGISTER_OR_RECOVER_DECISION(ConnectIDConstants.ConnectIDTaskIDOffset + 1, ConnectIDRecoveryDecisionActivity.class), diff --git a/app/src/org/commcare/activities/connect/ConnectIDVerificationActivity.java b/app/src/org/commcare/activities/connect/ConnectIDVerificationActivity.java index efe0da8bb5..c896692773 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDVerificationActivity.java +++ b/app/src/org/commcare/activities/connect/ConnectIDVerificationActivity.java @@ -12,6 +12,9 @@ import org.commcare.interfaces.WithUIController; import org.commcare.views.dialogs.CustomProgressDialog; +/** + * @author dviggiano + */ public class ConnectIDVerificationActivity extends CommCareActivity implements WithUIController { diff --git a/app/src/org/commcare/activities/connect/ConnectIDVerificationActivityUIController.java b/app/src/org/commcare/activities/connect/ConnectIDVerificationActivityUIController.java index bb323e5a29..0d3990de31 100644 --- a/app/src/org/commcare/activities/connect/ConnectIDVerificationActivityUIController.java +++ b/app/src/org/commcare/activities/connect/ConnectIDVerificationActivityUIController.java @@ -11,6 +11,9 @@ import org.commcare.views.ManagedUi; import org.commcare.views.UiElement; +/** + * @author dviggiano + */ @ManagedUi(R.layout.screen_connect_verify) public class ConnectIDVerificationActivityUIController implements CommCareActivityUIController { @UiElement(value = R.id.connect_verify_title) diff --git a/app/src/org/commcare/android/database/connect/models/ConnectLinkedAppRecord.java b/app/src/org/commcare/android/database/connect/models/ConnectLinkedAppRecord.java index 15a21dc83f..4cee2fcf38 100644 --- a/app/src/org/commcare/android/database/connect/models/ConnectLinkedAppRecord.java +++ b/app/src/org/commcare/android/database/connect/models/ConnectLinkedAppRecord.java @@ -30,7 +30,7 @@ public class ConnectLinkedAppRecord extends Persisted { @Persisting(4) private boolean workerLinked; - @Persisting(value=5, nullable = true) + @Persisting(value = 5, nullable = true) private String hqToken; @Persisting(6) @@ -40,22 +40,43 @@ public ConnectLinkedAppRecord() { hqTokenExpiration = new Date(); } - public ConnectLinkedAppRecord(String appID, String userID, String password) { - this.appId = appID; - this.userId = userID; + public ConnectLinkedAppRecord(String appId, String userId, String password) { + this.appId = appId; + this.userId = userId; this.password = password; hqTokenExpiration = new Date(); } - public String getUserID() { return userId; } - public String getPassword() { return password; } - public void setPassword(String password) { this.password = password;} - public boolean getWorkerLinked() { return workerLinked; } - public void setWorkerLinked(boolean linked) { workerLinked = linked; } - public String getHQToken() { return hqToken; } - public Date getHQTokenExpiration() { return hqTokenExpiration; } - public void updateHQToken(String token, Date expirationDate) { + public String getUserId() { + return userId; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public boolean getWorkerLinked() { + return workerLinked; + } + + public void setWorkerLinked(boolean linked) { + workerLinked = linked; + } + + public String getHqToken() { + return hqToken; + } + + public Date getHqTokenExpiration() { + return hqTokenExpiration; + } + + public void updateHqToken(String token, Date expirationDate) { hqToken = token; hqTokenExpiration = expirationDate; } diff --git a/app/src/org/commcare/android/database/connect/models/ConnectUserRecord.java b/app/src/org/commcare/android/database/connect/models/ConnectUserRecord.java index 695bfa8fe7..bbe5a724b6 100644 --- a/app/src/org/commcare/android/database/connect/models/ConnectUserRecord.java +++ b/app/src/org/commcare/android/database/connect/models/ConnectUserRecord.java @@ -79,7 +79,7 @@ public void putUserInIntent(Intent intent) { intent.putExtra(ConnectIDConstants.ALT_PHONE, alternatePhone); } - public String getUserID() { return userID; } + public String getUserId() { return userID; } public String getPrimaryPhone() { return primaryPhone; } public void setPrimaryPhone(String primaryPhone) { this.primaryPhone = primaryPhone; } public String getAlternatePhone() { return alternatePhone; } diff --git a/app/src/org/commcare/google/services/analytics/FirebaseAnalyticsUtil.java b/app/src/org/commcare/google/services/analytics/FirebaseAnalyticsUtil.java index 7524e12052..b16d5557a6 100644 --- a/app/src/org/commcare/google/services/analytics/FirebaseAnalyticsUtil.java +++ b/app/src/org/commcare/google/services/analytics/FirebaseAnalyticsUtil.java @@ -93,7 +93,7 @@ private static void setUserProperties(FirebaseAnalytics analyticsInstance) { } analyticsInstance.setUserProperty(CCAnalyticsParam.CCC_ENABLED, - String.valueOf(ConnectIDManager.isConnectIDIntroduced())); + String.valueOf(ConnectIDManager.isConnectIdIntroduced())); } private static String getFreeDiskBucket() { diff --git a/app/src/org/commcare/models/database/connect/DatabaseConnectOpenHelper.java b/app/src/org/commcare/models/database/connect/DatabaseConnectOpenHelper.java index 3e173b84a8..5bf871a80f 100644 --- a/app/src/org/commcare/models/database/connect/DatabaseConnectOpenHelper.java +++ b/app/src/org/commcare/models/database/connect/DatabaseConnectOpenHelper.java @@ -19,56 +19,56 @@ * @author ctsims */ public class DatabaseConnectOpenHelper extends SQLiteOpenHelper { - /** - * V.2 - (change log will go here) - */ - private static final int CONNECT_DB_VERSION = 1; + /** + * V.2 - (change log will go here) + */ + private static final int CONNECT_DB_VERSION = 1; - private static final String CONNECT_DB_LOCATOR = "database_connect"; + private static final String CONNECT_DB_LOCATOR = "database_connect"; - private final Context mContext; + private final Context mContext; - public DatabaseConnectOpenHelper(Context context) { - super(context, CONNECT_DB_LOCATOR, null, CONNECT_DB_VERSION); - this.mContext = context; - } + public DatabaseConnectOpenHelper(Context context) { + super(context, CONNECT_DB_LOCATOR, null, CONNECT_DB_VERSION); + this.mContext = context; + } - @Override - public void onCreate(SQLiteDatabase database) { - database.beginTransaction(); - try { - TableBuilder builder = new TableBuilder(ConnectUserRecord.class); - database.execSQL(builder.getTableCreateString()); + @Override + public void onCreate(SQLiteDatabase database) { + database.beginTransaction(); + try { + TableBuilder builder = new TableBuilder(ConnectUserRecord.class); + database.execSQL(builder.getTableCreateString()); - builder = new TableBuilder(ConnectLinkedAppRecord.class); - database.execSQL(builder.getTableCreateString()); + builder = new TableBuilder(ConnectLinkedAppRecord.class); + database.execSQL(builder.getTableCreateString()); - DbUtil.createNumbersTable(database); + DbUtil.createNumbersTable(database); - database.setVersion(CONNECT_DB_VERSION); + database.setVersion(CONNECT_DB_VERSION); - database.setTransactionSuccessful(); - } finally { - database.endTransaction(); - } + database.setTransactionSuccessful(); + } finally { + database.endTransaction(); } + } - @Override - public SQLiteDatabase getWritableDatabase(String key) { - try { - return super.getWritableDatabase(key); - } catch (SQLiteException sqle) { - DbUtil.trySqlCipherDbUpdate(key, mContext, CONNECT_DB_LOCATOR); - return super.getWritableDatabase(key); - } + @Override + public SQLiteDatabase getWritableDatabase(String key) { + try { + return super.getWritableDatabase(key); + } catch (SQLiteException sqle) { + DbUtil.trySqlCipherDbUpdate(key, mContext, CONNECT_DB_LOCATOR); + return super.getWritableDatabase(key); } + } - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - DataChangeLogger.log(new DataChangeLog.DbUpgradeStart("Connect", oldVersion, newVersion)); - //TODO: Create upgrader once needed - //new GlobalDatabaseUpgrader(mContext).upgrade(db, oldVersion, newVersion); - DataChangeLogger.log(new DataChangeLog.DbUpgradeComplete("Connect", oldVersion, newVersion)); - } + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + DataChangeLogger.log(new DataChangeLog.DbUpgradeStart("Connect", oldVersion, newVersion)); + //TODO: Create upgrader once needed + //new GlobalDatabaseUpgrader(mContext).upgrade(db, oldVersion, newVersion); + DataChangeLogger.log(new DataChangeLog.DbUpgradeComplete("Connect", oldVersion, newVersion)); } +} diff --git a/app/src/org/commcare/preferences/AppManagerDeveloperPreferences.java b/app/src/org/commcare/preferences/AppManagerDeveloperPreferences.java index 06f25eec39..0ef2208073 100644 --- a/app/src/org/commcare/preferences/AppManagerDeveloperPreferences.java +++ b/app/src/org/commcare/preferences/AppManagerDeveloperPreferences.java @@ -97,7 +97,7 @@ public static void setConnectIDEnabled(boolean enabled) { .apply(); } - public static boolean isConnectIDEnabled() { + public static boolean isConnectIdEnabled() { //NOTE: Setting default case to true for initial user testing, but production should keep the default false return GlobalPrivilegesManager.getGlobalPrefsRecord().getBoolean(CONNECT_ID_ENABLED, true); } diff --git a/app/src/org/commcare/utils/BiometricsHelper.java b/app/src/org/commcare/utils/BiometricsHelper.java index 5840de38d8..ebab0e48c5 100644 --- a/app/src/org/commcare/utils/BiometricsHelper.java +++ b/app/src/org/commcare/utils/BiometricsHelper.java @@ -17,8 +17,6 @@ import androidx.core.content.ContextCompat; import androidx.fragment.app.FragmentActivity; -import org.commcare.activities.connect.ConnectIDConstants; -import org.commcare.activities.connect.ConnectIDManager; import org.commcare.activities.connect.ConnectIDTask; import org.commcare.dalvik.R; @@ -45,7 +43,7 @@ public static void configureFingerprint(Activity activity) { } public static void authenticateFingerprint(FragmentActivity activity, BiometricManager biometricManager, BiometricPrompt.AuthenticationCallback biometricPromptCallback) { - if(BiometricsHelper.isFingerprintConfigured(activity, biometricManager)) { + if (BiometricsHelper.isFingerprintConfigured(activity, biometricManager)) { BiometricPrompt prompt = new BiometricPrompt(activity, ContextCompat.getMainExecutor(activity), biometricPromptCallback); @@ -63,9 +61,8 @@ public static void authenticateFingerprint(FragmentActivity activity, BiometricM public static ConfigurationStatus checkPinStatus(Context context, BiometricManager biometricManager) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.Q) { return checkStatus(context, biometricManager, PinBiometric); - } - else { - KeyguardManager manager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); + } else { + KeyguardManager manager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE); boolean isSecure = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? manager.isDeviceSecure() : manager.isKeyguardSecure(); return isSecure ? ConfigurationStatus.Configured : ConfigurationStatus.NotConfigured; @@ -81,9 +78,10 @@ public static void configurePin(Activity activity) { } private static BiometricPrompt.AuthenticationCallback biometricPromptCallbackHolder; + public static void authenticatePin(FragmentActivity activity, BiometricManager biometricManager, BiometricPrompt.AuthenticationCallback biometricPromptCallback) { if (BiometricsHelper.isPinConfigured(activity, biometricManager)) { - if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { BiometricPrompt prompt = new BiometricPrompt(activity, ContextCompat.getMainExecutor(activity), biometricPromptCallback); @@ -95,24 +93,23 @@ public static void authenticatePin(FragmentActivity activity, BiometricManager b .build()); } //else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - //manager.isDeviceSecure() + //manager.isDeviceSecure() //} else { //manager.isKeyguardSecure() biometricPromptCallbackHolder = biometricPromptCallback; - KeyguardManager manager = (KeyguardManager) activity.getSystemService(Context.KEYGUARD_SERVICE); + KeyguardManager manager = (KeyguardManager)activity.getSystemService(Context.KEYGUARD_SERVICE); activity.startActivityForResult(manager.createConfirmDeviceCredentialIntent(activity.getString(R.string.connect_unlock_pin_title), - activity.getString(R.string.connect_unlock_pin_message)), ConnectIDTask.CONNECT_UNLOCK_PIN.getRequestCode()); + activity.getString(R.string.connect_unlock_pin_message)), ConnectIDTask.CONNECT_UNLOCK_PIN.getRequestCode()); } } } public static void handlePinUnlockActivityResult(int requestCode, int resultCode, Intent intent) { - if(requestCode == ConnectIDTask.CONNECT_UNLOCK_PIN.getRequestCode()) { - if(resultCode == Activity.RESULT_OK) { + if (requestCode == ConnectIDTask.CONNECT_UNLOCK_PIN.getRequestCode()) { + if (resultCode == Activity.RESULT_OK) { biometricPromptCallbackHolder.onAuthenticationSucceeded(null); - } - else { + } else { biometricPromptCallbackHolder.onAuthenticationFailed(); } } @@ -120,17 +117,21 @@ public static void handlePinUnlockActivityResult(int requestCode, int resultCode public static ConfigurationStatus checkStatus(Context context, BiometricManager biometricManager, int authenticator) { int val = canAuthenticate(context, biometricManager, authenticator); - switch(val) { - case BiometricManager.BIOMETRIC_SUCCESS -> { return ConfigurationStatus.Configured; } - case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> { return ConfigurationStatus.NotConfigured; } + switch (val) { + case BiometricManager.BIOMETRIC_SUCCESS -> { + return ConfigurationStatus.Configured; + } + case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED -> { + return ConfigurationStatus.NotConfigured; + } } return ConfigurationStatus.NotAvailable; } private static int canAuthenticate(Context context, BiometricManager biometricManager, int authenticator) { - if(authenticator == PinBiometric && Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { - KeyguardManager manager = (KeyguardManager) context.getSystemService(Context.KEYGUARD_SERVICE); + if (authenticator == PinBiometric && Build.VERSION.SDK_INT <= Build.VERSION_CODES.Q) { + KeyguardManager manager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE); boolean isSecure = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? manager.isDeviceSecure() : manager.isKeyguardSecure(); diff --git a/app/src/org/commcare/utils/KeyboardHelper.java b/app/src/org/commcare/utils/KeyboardHelper.java index a5f8327d2d..8e36336b4a 100644 --- a/app/src/org/commcare/utils/KeyboardHelper.java +++ b/app/src/org/commcare/utils/KeyboardHelper.java @@ -5,15 +5,18 @@ import android.view.View; import android.view.inputmethod.InputMethodManager; +/** + * @author dviggiano + */ public class KeyboardHelper { public static void showKeyboardOnInput(Activity activity, View view) { view.requestFocus(); - InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); + InputMethodManager inputMethodManager = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); view.postDelayed(new Runnable() { @Override public void run() { - if(inputMethodManager != null) { + if (inputMethodManager != null) { inputMethodManager.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT); } } diff --git a/app/src/org/commcare/utils/PhoneNumberHelper.java b/app/src/org/commcare/utils/PhoneNumberHelper.java index 2f55fbb982..28f7843a26 100644 --- a/app/src/org/commcare/utils/PhoneNumberHelper.java +++ b/app/src/org/commcare/utils/PhoneNumberHelper.java @@ -8,14 +8,18 @@ import io.michaelrocks.libphonenumber.android.PhoneNumberUtil; import io.michaelrocks.libphonenumber.android.Phonenumber; +/** + * @author dviggiano + */ public class PhoneNumberHelper { private static PhoneNumberUtil utilStatic = null; //Private constructor, class should be used statically - private PhoneNumberHelper() {} + private PhoneNumberHelper() { + } private static PhoneNumberUtil getUtil(Context context) { - if(utilStatic == null) { + if (utilStatic == null) { utilStatic = PhoneNumberUtil.createInstance(context); } @@ -35,8 +39,7 @@ public static boolean isValidPhoneNumber(Context context, String phone) { try { Phonenumber.PhoneNumber phoneNumber = util.parse(phone, null); return util.isValidNumber(phoneNumber); - } - catch(NumberParseException e) { + } catch (NumberParseException e) { //Error parsing number means it isn't valid, fall-through to return false } @@ -47,11 +50,10 @@ public static int getCountryCode(Context context, String phone) { PhoneNumberUtil util = getUtil(context); try { Phonenumber.PhoneNumber phoneNumber = util.parse(phone, null); - if(util.isValidNumber(phoneNumber)) { + if (util.isValidNumber(phoneNumber)) { return phoneNumber.getCountryCode(); } - } - catch(NumberParseException e) { + } catch (NumberParseException e) { //Error parsing number means it isn't valid, fall-through to return false }