Skip to content

Commit

Permalink
Merge branch 'connect_qa' of https://github.com/dimagi/commcare-android
Browse files Browse the repository at this point in the history
… into dv/connect_initial
  • Loading branch information
OrangeAndGreen committed Apr 4, 2024
2 parents 02dbb9d + 52517b1 commit d75466c
Show file tree
Hide file tree
Showing 30 changed files with 1,145 additions and 388 deletions.
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

0 comments on commit d75466c

Please sign in to comment.