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
9 changes: 9 additions & 0 deletions app/src/org/commcare/navdrawer/BaseDrawerActivity.kt
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package org.commcare.navdrawer

import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
import android.view.View
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import org.commcare.activities.CommCareActivity
import org.commcare.connect.ConnectActivityCompleteListener
import org.commcare.connect.ConnectNavHelper.unlockAndGoToConnectJobsList
Expand All @@ -17,9 +20,14 @@ import org.javarosa.core.services.Logger

abstract class BaseDrawerActivity<T> : CommCareActivity<T>() {
private var drawerController: BaseDrawerController? = null
private lateinit var takePhotoLauncher: ActivityResultLauncher<Intent>

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
takePhotoLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
drawerController?.handlePhotoResult(result)
}
checkForDrawerSetUp()
if (drawerController != null) {
NotificationBroadcastHelper.registerForNotifications(this, this) {
Expand Down Expand Up @@ -58,6 +66,7 @@ abstract class BaseDrawerActivity<T> : CommCareActivity<T>() {
this,
drawerRefs,
shouldHighlightSeatedApp(),
takePhotoLauncher,
) { navItemType: NavItemType, recordId: String? ->
handleDrawerItemClick(navItemType, recordId)
}
Expand Down
24 changes: 9 additions & 15 deletions app/src/org/commcare/navdrawer/BaseDrawerController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import android.graphics.Color
import android.view.MenuItem
import android.view.View
import android.widget.Toast
import androidx.activity.result.ActivityResult
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GravityCompat
Expand Down Expand Up @@ -42,11 +42,11 @@ class BaseDrawerController(
private val activity: CommCareActivity<*>,
private val binding: DrawerViewRefs,
private val highlightSeatedApp: Boolean,
private val takePhotoLauncher: ActivityResultLauncher<Intent>,
private val onItemClicked: (NavItemType, String?) -> Unit,
) {
private lateinit var drawerToggle: ActionBarDrawerToggle
private lateinit var navDrawerAdapter: NavDrawerAdapter
private lateinit var takePhotoLauncher: ActivityResultLauncher<Intent>
private var hasRefreshed = false
private var showingError = false
var lastPhotoUploadFailed: Boolean = false
Expand All @@ -63,7 +63,6 @@ class BaseDrawerController(
fun setupDrawer() {
setupActionBarDrawerToggle()
initializeAdapter()
initTakePhotoLauncher()
setupListeners()
setupViews()
refreshDrawerContent()
Expand Down Expand Up @@ -337,19 +336,14 @@ class BaseDrawerController(

fun handleOptionsItem(item: MenuItem): Boolean = drawerToggle.onOptionsItemSelected(item)

private fun initTakePhotoLauncher() {
takePhotoLauncher =
activity.registerForActivityResult(
ActivityResultContracts.StartActivityForResult(),
) { result ->
if (result.resultCode == RESULT_OK) {
result.data
?.getStringExtra(MicroImageActivity.MICRO_IMAGE_BASE_64_RESULT_KEY)
?.let { photoBase64 ->
uploadUserPhoto(photoBase64)
}
fun handlePhotoResult(result: ActivityResult) {
if (result.resultCode == RESULT_OK) {
result.data
?.getStringExtra(MicroImageActivity.MICRO_IMAGE_BASE_64_RESULT_KEY)
?.let { photoBase64 ->
uploadUserPhoto(photoBase64)
}
}
}
}

private fun launchCameraForPhotoEdit() {
Expand Down
Loading