Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connect QA Branch #2738

Merged
merged 6 commits into from
Apr 4, 2024
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
2 changes: 1 addition & 1 deletion app/assets/locales/android_translatable_strings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ login.password=Password
login.pin.password=PIN
login.primed.prompt=Your password has been saved for you! Just press 'Log In'.
login.button=Log In
login.app.direct=Login to your app directly.
login.app.connect=Go to Connect Jobs
login.sync=Synchronize with server
login.bad.password=We couldn't find a user with this password. Please try another!
login.welcome.single=Welcome back! Please log in.
Expand Down
4 changes: 2 additions & 2 deletions app/res/layout/connect_payment_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
/>

<TextView
android:id="@+id/date"
android:id="@+id/confirm"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
Expand All @@ -28,7 +28,7 @@
/>

<TextView
android:id="@+id/status"
android:id="@+id/date"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/name"
android:layout_width="wrap_content"
Expand Down
51 changes: 50 additions & 1 deletion app/res/layout/fragment_connect_delivery_progress.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,60 @@
app:layout_constraintEnd_toStartOf="@id/connect_delivery_refresh"
/>

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/connect_delivery_progress_alert_tile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/connect_delivery_refresh"
android:layout_marginTop="2dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
android:background="@drawable/dots_rect_back"

>
<ImageView
android:id="@+id/connect_payment_confirm_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:src="@drawable/monetary_support"
/>
<TextView
android:id="@+id/connect_payment_confirm_label"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toEndOf="@id/connect_payment_confirm_icon"
app:layout_constraintEnd_toEndOf="parent"
/>
<TextView
android:id="@+id/connect_payment_confirm_yes_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/connect_payment_confirm_label"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="10dp"
android:textColor="@color/blue"
android:text="@string/connect_payment_confirm_yes"/>
<TextView
android:id="@+id/connect_payment_confirm_no_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/connect_payment_confirm_label"
app:layout_constraintEnd_toStartOf="@id/connect_payment_confirm_yes_button"
android:layout_marginEnd="40dp"
android:textColor="@color/blue"
android:text="@string/connect_payment_confirm_no"/>
</androidx.constraintlayout.widget.ConstraintLayout>

<com.google.android.material.tabs.TabLayout
android:id="@+id/connect_delivery_progress_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/connect_delivery_refresh"
app:layout_constraintTop_toBottomOf="@id/connect_delivery_progress_alert_tile"
android:layout_marginTop="5dp"
android:background="@color/solid_blue"
app:tabTextColor="@color/white" />

Expand Down
3 changes: 0 additions & 3 deletions app/res/layout/fragment_connect_progress_delivery.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="20dp"
android:indeterminateOnly="false"
android:progressDrawable="@drawable/progress_ring"
android:rotation="-90"/>
Expand Down Expand Up @@ -83,7 +82,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="center"
android:layout_marginTop="20dp"
android:text="@string/connect_progress_warning"/>

<TextView
Expand Down Expand Up @@ -124,7 +122,6 @@
android:id="@+id/connect_progress_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:text="@string/connect_progress_launch" />
Expand Down
30 changes: 0 additions & 30 deletions app/res/layout/screen_login.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,26 +82,6 @@
android:textColor="@color/cc_neutral_color"
android:textSize="@dimen/text_medium" />

<Button
android:id="@+id/connect_login_button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:paddingBottom="@dimen/content_start"
android:paddingTop="@dimen/content_start"
android:visibility="gone"
android:text="@string/login_button_connect"/>

<TextView
android:id="@+id/login_or"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="@dimen/content_min_margin"
android:textColor="@color/cc_neutral_color"
android:textSize="@dimen/text_medium"
android:text="@string/choice_or" />

<Spinner
android:id="@+id/app_selection_spinner"
android:layout_width="match_parent"
Expand All @@ -112,16 +92,6 @@
android:textSize="@dimen/text_medium"
android:visibility="gone" />

<TextView
android:id="@+id/app_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="@dimen/content_min_margin"
android:textColor="@color/cc_neutral_color"
android:textSize="@dimen/text_medium"
android:visibility="gone"/>

<AutoCompleteTextView
android:id="@+id/edit_username"
style="@style/LoginEditTextV2"
Expand Down
23 changes: 21 additions & 2 deletions app/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
<string name="ConnectLearnProgressURL">https://%s/api/opportunity/%d/learn_progress</string>
<string name="ConnectClaimJobURL">https://%s/api/opportunity/%d/claim</string>
<string name="ConnectDeliveriesURL">https://%s/api/opportunity/%d/delivery_progress</string>
<string name="ConnectPaymentConfirmationURL">https://%s/api/payment/%s/confirm</string>

<string name="key_server">https://pact.dimagi.com/keys/getkey</string>
<string name="your_comment">Your comment</string>
Expand Down Expand Up @@ -485,6 +486,7 @@
<!-- ConnectID strings -->
<string name="connect_id_enabled">ConnectID Enabled</string>
<string name="login_button_connect">Unlock ConnectID</string>
<string name="login_password_by_connect">Via ConnectID (or press here)</string>
<string name="login_welcome_connect_signed_out">Unlock ConnectID first and then enter your app.</string>
<string name="login_welcome_connect_signed_in">Welcome %s!</string>

Expand Down Expand Up @@ -717,8 +719,25 @@
<string name="connect_results_summary_verifications_description">Pending Verification: %d\nNot Approved: %d\nApproved: %d</string>
<string name="connect_results_summary_payments_title">Payment Status</string>
<string name="connect_results_summary_payments_description">Earned Amount: %s\nTransferred Amount: %s</string>
<string name="connect_results_payment_title">You received money</string>
<string name="connect_results_payment_description">You received %s</string>
<string name="connect_results_payment_date">Issued %s</string>
<string name="connect_results_payment_description">Paid %s</string>
<string name="connect_results_payment_confirm">Confirm</string>
<string name="connect_results_payment_confirm_undo">Undo confirm</string>
<string name="connect_results_payment_confirmed">Confirmed</string>
<string name="connect_results_payment_not_confirmed">Not Confirmed</string>

<string name="connect_payment_confirm_text">You got paid!\n%s %s paid %s.\nHave you received the payment?</string>
<string name="connect_payment_confirm_yes">Yes!</string>
<string name="connect_payment_confirm_no">Ask later</string>
<string name="connect_payment_confirm_failed">Failed to send confirmation, we will ask again later.</string>

<string name="login_button_connectid">Login with ConnectID</string>
<string name="login_link_connectid_title">Link to ConnectID?</string>
<string name="login_link_connectid_message">Do you want to link this login to your ConnectID account? You will not need to type your password in the future.</string>
<string name="login_unlink_connectid_title">Unlink ConnectID?</string>
<string name="login_unlink_connectid_message">I see you logged in with your password although ConnectID was configured for auto-login. Would you like to sever this login from ConnectID?</string>
<string name="login_link_connectid_yes">Yes</string>
<string name="login_link_connectid_no">No</string>

<string name="login_menu_connect_sign_in">Sign up for ConnectID</string>
<string name="login_menu_connect_sign_out">Sign out of ConnectID</string>
Expand Down
34 changes: 13 additions & 21 deletions app/src/org/commcare/activities/CommCareSetupActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,7 @@ public enum UiState {
private static final int MENU_SMS = Menu.FIRST + 2;
private static final int MENU_FROM_LIST = Menu.FIRST + 3;
private static final int MENU_CONNECT_SIGN_IN = Menu.FIRST + 4;
private static final int MENU_CONNECT_SIGN_OUT = Menu.FIRST + 5;
private static final int MENU_CONNECT_FORGET = Menu.FIRST + 6;
private static final int MENU_CONNECT_FORGET = Menu.FIRST + 5;

// Activity request codes
public static final int BARCODE_CAPTURE = 1;
Expand Down Expand Up @@ -489,7 +488,6 @@ public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_ARCHIVE, 0, Localization.get("menu.archive")).setIcon(android.R.drawable.ic_menu_upload);
menu.add(0, MENU_FROM_LIST, 2, Localization.get("menu.app.list.install"));
menu.add(0, MENU_CONNECT_SIGN_IN, 3, getString(R.string.login_menu_connect_sign_in));
menu.add(0, MENU_CONNECT_SIGN_OUT, 3, getString(R.string.login_menu_connect_sign_out));
menu.add(0, MENU_CONNECT_FORGET, 3, getString(R.string.login_menu_connect_forget));
return true;
}
Expand All @@ -498,7 +496,6 @@ public boolean onCreateOptionsMenu(Menu menu) {
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(MENU_CONNECT_SIGN_IN).setVisible(!fromManager && !fromExternal && ConnectManager.shouldShowSignInMenuOption());
menu.findItem(MENU_CONNECT_SIGN_OUT).setVisible(!fromManager && !fromExternal && ConnectManager.shouldShowSignOutMenuOption());
menu.findItem(MENU_CONNECT_FORGET).setVisible(!fromManager && !fromExternal && ConnectManager.shouldShowSignOutMenuOption());

return true;
Expand Down Expand Up @@ -623,13 +620,12 @@ public boolean onOptionsItemSelected(MenuItem item) {
startActivityForResult(i, GET_APPS_FROM_HQ);
break;
case MENU_CONNECT_SIGN_IN:
//Exactly like pressing the Connect button, but the first time happens this way
handleConnectButtonPress();
break;
case MENU_CONNECT_SIGN_OUT:
FirebaseAnalyticsUtil.reportCccSignOut();
ConnectManager.signOut();
updateConnectButton();
//Setup ConnectID and proceed to jobs page if successful
ConnectManager.handleConnectButtonPress(this, success -> {
if(success) {
ConnectManager.goToConnectJobsList();
}
});
break;
case MENU_CONNECT_FORGET:
ConnectManager.forgetUser();
Expand All @@ -640,16 +636,12 @@ public boolean onOptionsItemSelected(MenuItem item) {
}

private void updateConnectButton() {
installFragment.updateConnectButton(this, !fromManager && !fromExternal, v -> {
handleConnectButtonPress();
});
}

private void handleConnectButtonPress() {
ConnectManager.handleConnectButtonPress(this, success -> {
if(success) {
ConnectManager.goToConnectJobsList();
}
installFragment.updateConnectButton(this, !fromManager && !fromExternal && ConnectManager.isConnectIdIntroduced(), v -> {
ConnectManager.unlockConnect(this, success -> {
if(success) {
ConnectManager.goToConnectJobsList();
}
});
});
}

Expand Down
10 changes: 2 additions & 8 deletions app/src/org/commcare/activities/DispatchActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import org.commcare.AppUtils;
import org.commcare.CommCareApp;
import org.commcare.CommCareApplication;
import org.commcare.activities.connect.ConnectManager;
import org.commcare.android.database.global.models.ApplicationRecord;
import org.commcare.android.database.user.models.SessionStateDescriptor;
import org.commcare.commcaresupportlibrary.CommCareLauncher;
Expand Down Expand Up @@ -203,7 +204,7 @@ private void dispatch() {
launchHomeScreen();
}
} catch (SessionUnavailableException sue) {
if(!userTriggeredLogout || !getAppLaunchedFromConnect()) {
if(!userTriggeredLogout || !ConnectManager.wasAppLaunchedFromConnect(currentApp.getUniqueId())) {
launchLoginScreen();
}
else {
Expand Down Expand Up @@ -293,8 +294,6 @@ private void launchLoginScreen() {
i.putExtra(LoginActivity.EXTRA_APP_ID, sesssionEndpointAppID);
}

i.putExtra(CommCareLauncher.EXTRA_FROM_CONNECT, getAppLaunchedFromConnect());

startActivityForResult(i, LOGIN_USER);
waitingForActivityResultFromLogin = true;
} else {
Expand All @@ -310,9 +309,6 @@ private String getSessionEndpointAppId() {
return getIntent().getStringExtra(SESSION_ENDPOINT_APP_ID);
}

private boolean getAppLaunchedFromConnect() {
return getIntent().getBooleanExtra(CommCareLauncher.EXTRA_FROM_CONNECT, false);
}

private void launchHomeScreen() {
Intent i;
Expand All @@ -325,8 +321,6 @@ private void launchHomeScreen() {
i = new Intent(this, StandardHomeActivity.class);
}
i.putExtra(START_FROM_LOGIN, startFromLogin);
i.putExtra(CommCareLauncher.EXTRA_FROM_CONNECT,
getIntent().getBooleanExtra(CommCareLauncher.EXTRA_FROM_CONNECT, false));
i.putExtra(LoginActivity.LOGIN_MODE, lastLoginMode);
i.putExtra(LoginActivity.MANUAL_SWITCH_TO_PW_MODE, userManuallyEnteredPasswordMode);
startFromLogin = false;
Expand Down
4 changes: 2 additions & 2 deletions app/src/org/commcare/activities/HomeScreenBaseActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,6 @@ protected void userTriggeredLogout() {
return;
}
CommCareApplication.instance().closeUserSession();
ConnectManager.signOut();
setResult(RESULT_OK);
finish();
}
Expand Down Expand Up @@ -1465,7 +1464,8 @@ private void handleDeveloperModeClicks() {

@Override
public boolean isBackEnabled() {
if (getIntent().getBooleanExtra(CommCareLauncher.EXTRA_FROM_CONNECT, false)) {
String appId = CommCareApplication.instance().getCurrentApp().getUniqueId();
if (ConnectManager.wasAppLaunchedFromConnect(appId)) {
return true;
}
return false;
Expand Down
Loading