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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion app/res/values-es/strings.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2009 University of Washington Licensed under the Apache
License, Version 2.0 (the "License"); you may not use this file except
Expand Down Expand Up @@ -355,6 +355,7 @@
<string name="login_link_connectid_no">No</string>
<string name="login_menu_connect_sign_in">Registrarse en PersonalId</string>
<string name="login_menu_connect_forget">Olvidar usuario de PersonalId</string>
<string name="menu_refresh_opportunities">Actualizar Oportunidades</string>
<string name="connect_app_install_unknown_error">La instalación de la aplicación falló debido a un error desconocido</string>
<string name="connect_app_installed">Aplicación instalada</string>
<string name="app_with_id_not_found">La aplicación CommCare requerida no está instalada en el dispositivo</string>
Expand Down Expand Up @@ -479,4 +480,7 @@
<string name="play_service_update_error">Asegúrese de que los servicios de Google Play sean compatibles con el dispositivo y estén actualizados.</string>
<string name="nav_drawer_open">Abrir el panel de navegación</string>
<string name="nav_drawer_close">Cerrar el panel de navegación</string>

<string name="setup_refresh_opportunities_no_jobs">No se encontraron oportunidades</string>
<string name="setup_refresh_opportunities_with_jobs">Nuevas oportunidades encontradas, haz clic en Oportunidades para obtener más información.</string>
</resources>
6 changes: 5 additions & 1 deletion app/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2009 University of Washington Licensed under the Apache
License, Version 2.0 (the "License"); you may not use this file except
Expand Down Expand Up @@ -354,6 +354,7 @@ License.
<string name="login_link_connectid_no">Non</string>
<string name="login_menu_connect_sign_in">Inscrivez-vous à PersonalId</string>
<string name="login_menu_connect_forget">Oublier l\'utilisateur PersonalId</string>
<string name="menu_refresh_opportunities">Actualiser les Opportunités</string>
<string name="connect_app_install_unknown_error">L\'installation de l\'application a échoué en raison d\'une erreur inconnue</string>
<string name="connect_app_installed">Application installée</string>
<string name="app_with_id_not_found">L\'application CommCare requise n\'est pas installée sur l\'appareil</string>
Expand Down Expand Up @@ -481,4 +482,7 @@ License.
<string name="play_service_update_error">Veuillez vous assurer que les services Google Play sont pris en charge sur l\'appareil et sont à jour.</string>
<string name="nav_drawer_open">Ouvrir le tiroir de navigation</string>
<string name="nav_drawer_close">Fermer le tiroir de navigation</string>

<string name="setup_refresh_opportunities_no_jobs">Aucune opportunité trouvée</string>
<string name="setup_refresh_opportunities_with_jobs">Nouvelles opportunités trouvées, cliquez sur Opportunités pour en savoir plus.</string>
</resources>
4 changes: 4 additions & 0 deletions app/res/values-hi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -353,6 +353,7 @@ License.
<string name="login_link_connectid_no">नहीं</string>
<string name="login_menu_connect_sign_in">PersonalId के लिए साइन अप करें</string>
<string name="login_menu_connect_forget">PersonalId उपयोगकर्ता को भूल जाएं</string>
<string name="menu_refresh_opportunities">अवसर रीफ्रेश करें</string>
<string name="connect_app_install_unknown_error">अज्ञात त्रुटि के कारण एप्लिकेशन इंस्टॉल करने में विफल रहा</string>
<string name="connect_app_installed">एप्लिकेशन इंस्टॉल किया गया</string>
<string name="app_with_id_not_found">आवश्यक CommCare एप्लिकेशन डिवाइस पर इंस्टॉल नहीं है</string>
Expand Down Expand Up @@ -477,4 +478,7 @@ License.
<string name="play_service_update_error">कृपया सुनिश्चित करें कि डिवाइस पर Google Play सेवाएं समर्थित हैं और अद्यतित हैं।</string>
<string name="nav_drawer_open">नेविगेशन ड्रॉअर खोलें</string>
<string name="nav_drawer_close">नेविगेशन ड्रॉअर बंद करें</string>

<string name="setup_refresh_opportunities_no_jobs">कोई अवसर नहीं मिला</string>
<string name="setup_refresh_opportunities_with_jobs">नए अवसर मिले, अधिक जानने के लिए अवसर पर क्लिक करें।</string>
</resources>
6 changes: 5 additions & 1 deletion app/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2009 University of Washington Licensed under the Apache
License, Version 2.0 (the "License"); you may not use this file except
Expand Down Expand Up @@ -371,6 +371,7 @@
<string name="login_link_connectid_no">Não</string>
<string name="login_menu_connect_sign_in">Inscreva-se no PersonalId</string>
<string name="login_menu_connect_forget">Esqueça o usuário do PersonalId</string>
<string name="menu_refresh_opportunities">Atualizar Oportunidades</string>
<string name="connect_app_install_unknown_error">Falha na instalação do aplicativo devido a um erro desconhecido</string>
<string name="connect_app_installed">Aplicação instalada</string>
<string name="app_with_id_not_found">O aplicativo CommCare necessário não está instalado no dispositivo</string>
Expand Down Expand Up @@ -487,4 +488,7 @@
<string name="play_service_update_error">Certifique-se de que os serviços do Google Play sejam suportados no dispositivo e estejam atualizados.</string>
<string name="nav_drawer_open">Abrir o menu de navegação</string>
<string name="nav_drawer_close">Fechar o menu de navegação</string>

<string name="setup_refresh_opportunities_no_jobs">Nenhuma oportunidade encontrada</string>
<string name="setup_refresh_opportunities_with_jobs">Novas oportunidades encontradas, clique em Oportunidades para saber mais.</string>
</resources>
10 changes: 7 additions & 3 deletions app/res/values-sw/strings.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2009 University of Washington Licensed under the Apache
License, Version 2.0 (the "License"); you may not use this file except
Expand Down Expand Up @@ -357,6 +357,7 @@
<string name="login_link_connectid_no">Hapana</string>
<string name="login_menu_connect_sign_in">Jisajili kwa PersonalId</string>
<string name="login_menu_connect_forget">Sahau mtumiaji wa PersonalId</string>
<string name="menu_refresh_opportunities">Onyesha Fursa</string>
<string name="connect_app_install_unknown_error">Usakinishaji wa programu haukufaulu kwa sababu ya hitilafu isiyojulikana</string>
<string name="connect_app_installed">Programu imesakinishwa</string>
<string name="app_with_id_not_found">Programu ya CommCare Inayohitajika haijasakinishwa kwenye kifaa</string>
Expand Down Expand Up @@ -485,6 +486,9 @@
<string name="nav_drawer_payments">Malipo</string>
<string name="nav_drawer_manage_profile">Dhibiti Wasifu</string>
<string name="play_service_update_error">Tafadhali hakikisha kuwa huduma za Google Play zinatumika kwenye kifaa na zimesasishwa.</string>
<string name="nav_drawer_open">Öppna navigeringsmenyn</string>
<string name="nav_drawer_close">Stäng navigeringsmenyn</string>
<string name="nav_drawer_open">Fungua drawer ya uabiri</string>
<string name="nav_drawer_close">Funga drawer ya uabiri</string>

<string name="setup_refresh_opportunities_no_jobs">Hakuna fursa zilizopatikana</string>
<string name="setup_refresh_opportunities_with_jobs">Fursa mpya zimepatikana, bofya Fursa kujifunza zaidi.</string>
</resources>
4 changes: 4 additions & 0 deletions app/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -476,6 +476,7 @@
<string name="login_menu_connect_sign_in">Sign up for PersonalID</string>

<string name="login_menu_connect_forget">Forget PersonalID user</string>
<string name="menu_refresh_opportunities">Refresh Opportunities</string>

<string name="connect_app_install_unknown_error">App install failed due to an unknown error</string>
<string name="connect_app_installed">App installed</string>
Expand Down Expand Up @@ -657,4 +658,7 @@
<string name="play_service_update_error">Please make sure Google Play services is supported on the device and is up to date.</string>
<string name="nav_drawer_open">Open navigation drawer</string>
<string name="nav_drawer_close">Close navigation drawer</string>

<string name="setup_refresh_opportunities_no_jobs">No Opportunities found</string>
<string name="setup_refresh_opportunities_with_jobs">New opportunities found, click on Opportunities to learn more.</string>
</resources>
67 changes: 56 additions & 11 deletions app/src/org/commcare/activities/CommCareSetupActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,16 @@
import org.commcare.AppUtils;
import org.commcare.CommCareApp;
import org.commcare.CommCareApplication;
import org.commcare.android.database.connect.models.ConnectUserRecord;
import org.commcare.connect.ConnectConstants;
import org.commcare.connect.ConnectNavHelper;
import org.commcare.connect.PersonalIdManager;
import org.commcare.connect.database.ConnectUserDatabaseUtil;
import org.commcare.connect.database.ConnectJobUtils;
import org.commcare.connect.network.connect.ConnectApiHandler;
import org.commcare.connect.network.connect.models.ConnectOpportunitiesResponseModel;
import org.commcare.connect.network.connectId.PersonalIdApiErrorHandler;
import androidx.annotation.Nullable;
import org.commcare.dalvik.BuildConfig;
import org.commcare.dalvik.R;
import org.commcare.engine.resource.AppInstallStatus;
Expand Down Expand Up @@ -67,6 +74,7 @@
import org.javarosa.core.reference.ReferenceManager;
import org.javarosa.core.services.Logger;
import org.javarosa.core.services.locale.Localization;
import org.jetbrains.annotations.NotNull;

import java.io.IOException;
import java.security.SignatureException;
Expand Down Expand Up @@ -127,6 +135,8 @@ public enum UiState {
private static final int MENU_INSTALL_FROM_LIST = Menu.FIRST + 3;
private static final int MENU_PERSONAL_ID_FORGET = Menu.FIRST + 4;

private static final int MENU_REFRESH_OPPORTUNITIES = Menu.FIRST + 5;

// Activity request codes
public static final int BARCODE_CAPTURE = 1;
public static final int OFFLINE_INSTALL = 3;
Expand Down Expand Up @@ -500,6 +510,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, MENU_OFFLINE_INSTALL, 0, Localization.get("menu.archive")).setIcon(android.R.drawable.ic_menu_upload);
menu.add(0, MENU_INSTALL_FROM_LIST, 2, Localization.get("menu.app.list.install"));
menu.add(0, MENU_PERSONAL_ID_FORGET, 3, getString(R.string.login_menu_connect_forget));
menu.add(0, MENU_REFRESH_OPPORTUNITIES, 4, getString(R.string.menu_refresh_opportunities));
return true;
}

Expand All @@ -510,6 +521,12 @@ public boolean onPrepareOptionsMenu(Menu menu) {
if (item != null) {
item.setVisible(!fromManager && !fromExternal && PersonalIdManager.getInstance().isloggedIn());
}

MenuItem refreshItem = menu.findItem(MENU_REFRESH_OPPORTUNITIES);
boolean showRefreshMenu = !fromExternal &&
PersonalIdManager.getInstance().isloggedIn() &&
!ConnectUserDatabaseUtil.hasConnectAccess(this);
refreshItem.setVisible(showRefreshMenu);
return true;
}

Expand Down Expand Up @@ -637,6 +654,9 @@ public boolean onOptionsItemSelected(MenuItem item) {
PersonalIdManager.getInstance().forgetUser(AnalyticsParamValue.PERSONAL_ID_FORGOT_USER_SETUP_PAGE);
updateConnectButton();
break;
case MENU_REFRESH_OPPORTUNITIES:
refreshOpportunities();
break;
default:
super.onOptionsItemSelected(item);
}
Expand All @@ -652,9 +672,10 @@ private Map<Integer, String> createMenuItemToAnalyticsParamMapping() {
}

private void updateConnectButton() {
installFragment.updateConnectButton(!fromManager && !fromExternal && PersonalIdManager.getInstance().isloggedIn(), v -> {
boolean isConnectEnabled = !fromManager && !fromExternal && PersonalIdManager.getInstance().isloggedIn()
&& ConnectUserDatabaseUtil.hasConnectAccess(this);
installFragment.updateConnectButton(isConnectEnabled, v -> {
ConnectNavHelper.INSTANCE.unlockAndGoToConnectJobsList(this, success -> {
//No extra action necessary
});
});
}
Expand Down Expand Up @@ -797,16 +818,14 @@ public void failTargetMismatch() {

@Override
public CustomProgressDialog generateProgressDialog(int taskId) {
if (taskId != DIALOG_INSTALL_PROGRESS) {
Log.w(TAG, "taskId passed to generateProgressDialog does not match "
+ "any valid possibilities in CommCareSetupActivity");
return null;
}
if (isSingleAppBuild()) {
return ConsumerAppsUtil.getGenericConsumerAppsProgressDialog(taskId, true);
} else {
return generateNormalInstallDialog(taskId);
if (taskId == DIALOG_INSTALL_PROGRESS) {
if (isSingleAppBuild()) {
return ConsumerAppsUtil.getGenericConsumerAppsProgressDialog(taskId, true);
} else {
return generateNormalInstallDialog(taskId);
}
}
return CustomProgressDialog.newInstance(null, getString(R.string.please_wait), taskId);
}

private CustomProgressDialog generateNormalInstallDialog(int taskId) {
Expand Down Expand Up @@ -983,4 +1002,30 @@ public void checkManagedConfiguration() {
startResourceInstall();
}
}

private void refreshOpportunities() {
CommCareActivity activity = this;
ConnectUserRecord user = ConnectUserDatabaseUtil.getUser(activity);
new ConnectApiHandler<ConnectOpportunitiesResponseModel>() {

@Override
public void onFailure(@NonNull PersonalIdOrConnectApiErrorCodes errorCode, @Nullable Throwable t) {
String error = PersonalIdApiErrorHandler.handle(activity, errorCode, t);
Toast.makeText(activity, error, Toast.LENGTH_LONG).show();
}

@Override
public void onSuccess(ConnectOpportunitiesResponseModel data) {
ConnectJobUtils.storeJobs(activity, data.getValidJobs(), true);
boolean connectAccess = !data.getValidJobs().isEmpty() || !data.getCorruptJobs().isEmpty();
user.setHasConnectAccess(connectAccess);
String toastMessage = getString(R.string.setup_refresh_opportunities_no_jobs);
if(connectAccess){
toastMessage = getString(R.string.setup_refresh_opportunities_with_jobs);
}
Toast.makeText(activity, toastMessage, Toast.LENGTH_LONG).show();
updateConnectButton();
}
}.getConnectOpportunities(activity, user);
}
}
18 changes: 10 additions & 8 deletions app/src/org/commcare/activities/LoginActivityUIController.java
Original file line number Diff line number Diff line change
Expand Up @@ -562,14 +562,16 @@ protected void refreshConnectView() {
passwordOrPin.setInputType(InputType.TYPE_CLASS_TEXT);
}
setLoginInputsVisibility(appState != Connect);
if (PersonalIdManager.getInstance().isloggedIn()) {
connectLoginButton.setText(activity.getString(R.string.connect_button_logged_in));
setConnectButtonVisible(true);
String welcomeText = activity.getString(R.string.login_welcome_connect_signed_in,
ConnectUserDatabaseUtil.getUser(activity).getName());
welcomeMessage.setText(welcomeText);
} else {
setConnectButtonVisible(false);
boolean isPersonalIdLoggedIn = PersonalIdManager.getInstance().isloggedIn();
if (isPersonalIdLoggedIn) {
setWelcomeMessage();
}
setConnectButtonVisible(isPersonalIdLoggedIn && ConnectUserDatabaseUtil.hasConnectAccess(activity));
}

private void setWelcomeMessage() {
String welcomeText = activity.getString(R.string.login_welcome_connect_signed_in,
ConnectUserDatabaseUtil.getUser(activity).getName());
welcomeMessage.setText(welcomeText);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ public class ConnectUserRecord extends Persisted {
@Persisting(value = 15)
private String requiredLock = PersonalIdSessionData.PIN;

@Persisting(value = 16)
private boolean hasConnectAccess;

public ConnectUserRecord() {
registrationPhase = ConnectConstants.PERSONALID_NO_ACTIVITY;
lastPasswordDate = new Date();
Expand All @@ -90,7 +93,7 @@ public ConnectUserRecord() {
}

public ConnectUserRecord(String primaryPhone, String userId, String password, String name, String pin,
Date lastPinVerifyDate, String photo, boolean isDemo,String requiredLock) {
Date lastPinVerifyDate, String photo, boolean isDemo,String requiredLock, boolean hasConnectAccess) {
this();
this.primaryPhone = primaryPhone;
this.userId = userId;
Expand All @@ -102,6 +105,7 @@ public ConnectUserRecord(String primaryPhone, String userId, String password, St
this.isDemo = isDemo;
connectTokenExpiration = new Date();
this.requiredLock = requiredLock;
this.hasConnectAccess = hasConnectAccess;
}

public String getUserId() {
Expand Down Expand Up @@ -192,7 +196,7 @@ public Date getConnectTokenExpiration() {
return connectTokenExpiration;
}

public static ConnectUserRecord fromV14(ConnectUserRecordV14 oldRecord) {
public static ConnectUserRecord fromV16(ConnectUserRecordV16 oldRecord, boolean hasConnectAccess) {
ConnectUserRecord newRecord = new ConnectUserRecord();
newRecord.userId = oldRecord.getUserId();
newRecord.password = oldRecord.getPassword();
Expand All @@ -206,6 +210,8 @@ public static ConnectUserRecord fromV14(ConnectUserRecordV14 oldRecord) {
newRecord.secondaryPhoneVerified = true;
newRecord.photo = oldRecord.getPhoto();
newRecord.isDemo = oldRecord.isDemo();
newRecord.requiredLock = oldRecord.getRequiredLock();
newRecord.hasConnectAccess = hasConnectAccess;
return newRecord;
}

Expand All @@ -221,4 +227,13 @@ public String getPhoto() {
public String getRequiredLock() {
return requiredLock;
}

public boolean hasConnectAccess() {
return hasConnectAccess;
}

public void setHasConnectAccess(boolean hasConnectAccess) {
this.hasConnectAccess = hasConnectAccess;
}

}
Loading