Skip to content
6 changes: 0 additions & 6 deletions app/res/menu/menu_connect.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,6 @@
android:icon="@drawable/ic_connect_messaging_base"
android:title="@string/personalid_messaging_menu_title"
app:showAsAction="always" />
<item
android:id="@+id/action_credential"
android:icon="@drawable/ic_credential"
android:title="@string/personalid_credential"
android:visible="false"
app:showAsAction="always" />

<item
android:id="@+id/action_bell"
Expand Down
2 changes: 1 addition & 1 deletion app/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,7 @@
<string name="personalid_capture_photo">Tomar foto</string>
<string name="personalid_configuration_locked_account">Su cuenta ha sido bloqueada. Por favor, contacte con el servicio de asistencia.</string>
<string name="personalid_credential_my_worker_history">Mi Historial Laboral</string>
<string name="personalid_credential">Credencial</string>
<string name="personalid_credential">Historial Laboral</string>
<string name="personalid_credential_worked_on">Trabajado en:</string>
<string name="personalid_credential_earned_on">Obtenido el:</string>
<string name="personalid_credential_active_for">Activo durante:</string>
Expand Down
2 changes: 1 addition & 1 deletion app/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ License.
<string name="personalid_camera_permission_msg">Afin de prendre une photo, CommCare a besoin de l\'autorisation d\'utiliser l\'appareil photo de votre appareil.</string>
<string name="personalid_capture_photo">Prendre une photo</string>
<string name="personalid_credential_my_worker_history">Mon Historique de Travail</string>
<string name="personalid_credential">Titre de Compétences</string>
<string name="personalid_credential">Historique de Travail</string>
<string name="personalid_credential_worked_on">Travaillé Sur :</string>
<string name="personalid_credential_earned_on">Gagné Le :</string>
<string name="personalid_credential_active_for">Actif Pendant :</string>
Expand Down
2 changes: 1 addition & 1 deletion app/res/values-hi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ License.
<string name="personalid_capture_photo">तस्वीर लें</string>
<string name="personalid_configuration_locked_account">आपका खाता लॉक कर दिया गया है। कृपया सहायता से संपर्क करें</string>
<string name="personalid_credential_my_worker_history">मेरा कार्य इतिहास</string>
<string name="personalid_credential">क्रेडेंशियल</string>
<string name="personalid_credential">कार्य इतिहास</string>
<string name="personalid_credential_worked_on">इस पर काम किया:</string>
<string name="personalid_credential_earned_on">इस पर अर्जित किया:</string>
<string name="personalid_credential_active_for">इसके लिए सक्रिय:</string>
Expand Down
2 changes: 1 addition & 1 deletion app/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,7 @@
<string name="personalid_camera_permission_msg">Para tirar uma fotografia, o CommCare precisa de permissão para utilizar a câmara do seu dispositivo.</string>
<string name="personalid_capture_photo">Capturar foto</string>
<string name="personalid_credential_my_worker_history">Meu Histórico de Trabalho</string>
<string name="personalid_credential">Credencial</string>
<string name="personalid_credential">Histórico de Trabalho</string>
<string name="personalid_credential_worked_on">Trabalhou Em:</string>
<string name="personalid_credential_earned_on">Obtido Em:</string>
<string name="personalid_credential_active_for">Ativo Por:</string>
Expand Down
2 changes: 1 addition & 1 deletion app/res/values-sw/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,7 @@
<string name="personalid_camera_permission_msg">Ili kupiga picha, CommCare inahitaji ruhusa ya kutumia kamera ya kifaa chako.</string>
<string name="personalid_capture_photo">Piga Picha</string>
<string name="personalid_credential_my_worker_history">Historia Yangu ya Kazi</string>
<string name="personalid_credential">Kitambulisho</string>
<string name="personalid_credential">Historia ya Kazi</string>
<string name="personalid_credential_worked_on">Ilifanywa Kazi Kwenye:</string>
<string name="personalid_credential_earned_on">Ilipatikana Kwenye:</string>
<string name="personalid_credential_active_for">Inatumika Kwa:</string>
Expand Down
2 changes: 1 addition & 1 deletion app/res/values-ti/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -464,7 +464,7 @@
<string name="personalid_camera_permission_msg">ስእሊ ንምውሳድ፡ ኮምኬር ናይ መሳርሒኻ ካሜራ ንኽጥቀም ፍቓድ የድልዮ።</string>
<string name="personalid_capture_photo">ስእሊ ምቕራጽ</string>
<string name="personalid_credential_my_worker_history">ታሪኽ ስራሐይ</string>
<string name="personalid_credential">ምስክር ወረቐት</string>
<string name="personalid_credential">ታሪኽ ስራሕ</string>
<string name="personalid_credential_worked_on">ዝሰርሓሉ:</string>
<string name="personalid_credential_earned_on">ዝተረኽበሉ:</string>
<string name="personalid_credential_active_for">ንጡፍ ዝኾነሉ:</string>
Expand Down
2 changes: 1 addition & 1 deletion app/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -646,7 +646,7 @@
<string name="connect_claim_job_error">Error claiming job</string>

<string name="personalid_credential_my_worker_history">My Work History</string>
<string name="personalid_credential">Credential</string>
<string name="personalid_credential">Work History</string>
<string name="personalid_credential_worked_on">Worked On:</string>
<string name="personalid_credential_earned_on">Earned On:</string>
<string name="personalid_credential_view_credential">View Credential</string>
Expand Down
5 changes: 0 additions & 5 deletions app/src/org/commcare/activities/connect/ConnectActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -185,11 +185,6 @@ public boolean onOptionsItemSelected(MenuItem item) {
return true;
}

if (item.getItemId() == R.id.action_credential) {
startActivity(new Intent(this, PersonalIdCredentialActivity.class));
return true;
}

if (item.getItemId() == R.id.action_bell) {
ConnectNavHelper.goToNotification(this);
return true;
Expand Down
31 changes: 18 additions & 13 deletions app/src/org/commcare/connect/ConnectNavHelper.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,31 @@ import org.commcare.activities.CommCareActivity
import org.commcare.activities.PushNotificationActivity
import org.commcare.activities.connect.ConnectActivity
import org.commcare.activities.connect.ConnectMessagingActivity
import org.commcare.activities.connect.PersonalIdCredentialActivity
import org.commcare.android.database.connect.models.ConnectJobRecord
import org.commcare.connect.ConnectConstants.GO_TO_JOB_STATUS
import org.commcare.connect.ConnectConstants.OPPORTUNITY_ID
import org.commcare.connect.ConnectConstants.SHOW_LAUNCH_BUTTON
import org.commcare.connect.database.ConnectUserDatabaseUtil

object ConnectNavHelper {
fun unlockAndGoToMessaging(activity: CommCareActivity<*>, listener: ConnectActivityCompleteListener) {
private fun unlockAndGoTo(activity: CommCareActivity<*>, listener: ConnectActivityCompleteListener, navigationAction: (Context) -> Unit) {
val personalIdManager: PersonalIdManager = PersonalIdManager.getInstance()
personalIdManager.init(activity)
personalIdManager.unlockConnect(
activity
) { success: Boolean ->
if (success) {
goToMessaging(activity)
navigationAction(activity)
}
listener.connectActivityComplete(success)
}
}

fun unlockAndGoToMessaging(activity: CommCareActivity<*>, listener: ConnectActivityCompleteListener) {
unlockAndGoTo(activity, listener, ::goToMessaging)
}

fun goToMessaging(context: Context) {
val i = Intent(context, ConnectMessagingActivity::class.java)
context.startActivity(i)
Expand All @@ -37,21 +42,21 @@ object ConnectNavHelper {
context.startActivity(i)
}

fun unlockAndGoToCredentials(activity: CommCareActivity<*>, listener: ConnectActivityCompleteListener) {
unlockAndGoTo(activity, listener, ::goToCredentials)
}

fun goToCredentials(context: Context) {
val i = Intent(context, PersonalIdCredentialActivity::class.java)
context.startActivity(i)
}

Comment on lines +45 to +53
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for making it generic, nit pic (optional):

fun unlockAndGoToCredentials(activity: CommCareActivity<*>, listener: ConnectActivityCompleteListener) {
        unlockAndGoTo(activity, listener){
            val i = Intent(activity, PersonalIdCredentialActivity::class.java)
            activity.startActivity(i)
        }
    }

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we are going to change this code soon to only require unlock in some cases (based on a time threshold) and not everytime, so keeping the non unlock version of these methods separately might be helpful to achive that.

fun unlockAndGoToConnectJobsList(activity: CommCareActivity<*>, listener: ConnectActivityCompleteListener) {
val personalIdManager: PersonalIdManager = PersonalIdManager.getInstance()
personalIdManager.init(activity)
personalIdManager.unlockConnect(
activity
) { success: Boolean ->
if (success) {
goToConnectJobsList(activity)
}
listener.connectActivityComplete(success)
}
unlockAndGoTo(activity, listener, ::goToConnectJobsList)
}

fun goToConnectJobsList(context: Context) {
checkConnectAccess(context);
checkConnectAccess(context)
val i = Intent(context, ConnectActivity::class.java)
context.startActivity(i)
}
Expand Down
12 changes: 12 additions & 0 deletions app/src/org/commcare/navdrawer/BaseDrawerActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager
import org.commcare.activities.CommCareActivity
import org.commcare.connect.ConnectActivityCompleteListener
import org.commcare.connect.ConnectNavHelper.unlockAndGoToConnectJobsList
import org.commcare.connect.ConnectNavHelper.unlockAndGoToCredentials
import org.commcare.connect.ConnectNavHelper.unlockAndGoToMessaging
import org.commcare.navdrawer.BaseDrawerController.NavItemType
import org.commcare.utils.FirebaseMessagingUtil
Expand Down Expand Up @@ -80,6 +81,7 @@ abstract class BaseDrawerActivity<T> : CommCareActivity<T>() {
NavItemType.PAYMENTS -> {}
NavItemType.MESSAGING -> { navigateToMessaging() }
NavItemType.WORK_HISTORY -> {}
NavItemType.CREDENTIAL -> { navigateToCredential() }
}
}

Expand Down Expand Up @@ -111,6 +113,16 @@ abstract class BaseDrawerActivity<T> : CommCareActivity<T>() {
})
}

protected fun navigateToCredential() {
unlockAndGoToCredentials(this, object : ConnectActivityCompleteListener {
override fun connectActivityComplete(success: Boolean) {
if (success) {
closeDrawer()
}
}
})
}

protected fun closeDrawer() {
drawerController?.closeDrawer()
}
Expand Down
26 changes: 18 additions & 8 deletions app/src/org/commcare/navdrawer/BaseDrawerController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ import org.commcare.connect.database.ConnectUserDatabaseUtil
import org.commcare.dalvik.BuildConfig
import org.commcare.dalvik.R
import org.commcare.google.services.analytics.FirebaseAnalyticsUtil
import org.commcare.personalId.PersonalIdFeatureFlagChecker
import org.commcare.personalId.PersonalIdFeatureFlagChecker.FeatureFlag.Companion.WORK_HISTORY
import org.commcare.utils.MultipleAppsUtil
import org.commcare.views.ViewUtil
import org.commcare.views.dialogs.DialogCreationHelpers
Expand All @@ -40,6 +42,7 @@ class BaseDrawerController(
WORK_HISTORY,
MESSAGING,
PAYMENTS,
CREDENTIAL,
}

fun setupDrawer() {
Expand Down Expand Up @@ -172,14 +175,6 @@ class BaseDrawerController(
)
)

// items.add(
// NavDrawerItem.ParentItem(
// activity.getString(R.string.nav_drawer_work_history),
// R.drawable.nav_drawer_worker_history_icon,
// NavItemType.WORK_HISTORY,
// )
// )

if (ConnectMessagingDatabaseHelper.getMessagingChannels(activity).isNotEmpty()) {
val iconId =
if (ConnectMessagingDatabaseHelper.getUnviewedMessages(activity).isNotEmpty())
Expand All @@ -195,6 +190,16 @@ class BaseDrawerController(
)
}

if (shouldShowCredential()) {
items.add(
NavDrawerItem.ParentItem(
activity.getString(R.string.personalid_credential),
R.drawable.ic_credential,
NavItemType.CREDENTIAL,
)
)
}

// if (hasConnectAccess) {
// items.add(
// NavDrawerItem.ParentItem(
Expand All @@ -218,6 +223,11 @@ class BaseDrawerController(
binding.notificationView.visibility = if (isSignedIn) View.VISIBLE else View.GONE
}

private fun shouldShowCredential(): Boolean {
// we are keeping this off for now until we have go ahead to release this feature
return PersonalIdManager.getInstance().isloggedIn() && PersonalIdFeatureFlagChecker.isFeatureEnabled(WORK_HISTORY);
}

fun closeDrawer() {
binding.drawerLayout.closeDrawer(GravityCompat.START)
}
Expand Down
28 changes: 28 additions & 0 deletions app/src/org/commcare/personalId/PersonalIdFeatureFlagChecker.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package org.commcare.personalId

import androidx.annotation.StringDef

/**
* Utility class to check for enabled feature flags related to Personal ID functionality.
*/
class PersonalIdFeatureFlagChecker {

@StringDef
@Retention(AnnotationRetention.SOURCE)
annotation class FeatureFlag {
companion object {
const val WORK_HISTORY = "work_history"
}
}

companion object {

@JvmStatic
fun isFeatureEnabled(@FeatureFlag feature: String): Boolean {
return when(feature) {
FeatureFlag.WORK_HISTORY -> false
else -> throw IllegalStateException("Unknown feature flag: $feature")
}
}
}
}
Loading