[externa/jetpack-camera-app] Revert hilt workaround am: eefd002b39 am: c69ae1ef46
Original change: https://android-review.googlesource.com/c/platform/external/jetpack-camera-app/+/3132235
Change-Id: I76e9e3c2b98b285789baac4f975de51ede36ff41
Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsScreen.kt b/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsScreen.kt
index 69edca8..af17e30 100644
--- a/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsScreen.kt
+++ b/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsScreen.kt
@@ -60,10 +60,12 @@
onNavigateToPreview: () -> Unit,
openAppSettings: () -> Unit,
permissionStates: MultiplePermissionsState,
- viewModel: PermissionsViewModel = hiltViewModel()
+ viewModel: PermissionsViewModel = hiltViewModel<
+ PermissionsViewModel,
+ PermissionsViewModel.Factory
+ > { factory -> factory.create(permissionStates) }
) {
Log.d(TAG, "PermissionsScreen")
- viewModel.init(permissionStates)
val permissionsUiState: PermissionsUiState by viewModel.permissionsUiState.collectAsState()
if (permissionsUiState is PermissionsUiState.PermissionsNeeded) {
val permissionEnum =
diff --git a/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsViewModel.kt b/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsViewModel.kt
index 9426e55..047442f 100644
--- a/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsViewModel.kt
+++ b/feature/permissions/src/main/java/com/google/jetpackcamera/permissions/PermissionsViewModel.kt
@@ -29,24 +29,23 @@
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.update
-import javax.inject.Inject
/**
* A [ViewModel] for [PermissionsScreen]]
*/
@OptIn(ExperimentalPermissionsApi::class)
-@HiltViewModel
-class PermissionsViewModel @Inject constructor(
-// @Assisted permissionStates: MultiplePermissionsState
+@HiltViewModel(assistedFactory = PermissionsViewModel.Factory::class)
+class PermissionsViewModel @AssistedInject constructor(
+ @Assisted permissionStates: MultiplePermissionsState
) : ViewModel() {
-// @AssistedFactory
-// interface Factory {
-// fun create(runtimeArg: MultiplePermissionsState): PermissionsViewModel
-// }
+ @AssistedFactory
+ interface Factory {
+ fun create(runtimeArg: MultiplePermissionsState): PermissionsViewModel
+ }
private val permissionQueue = mutableListOf<PermissionEnum>()
- fun init(permissionStates: MultiplePermissionsState) {
+ init {
permissionQueue.addAll(getRequestablePermissions(permissionStates))
}
diff --git a/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewScreen.kt b/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewScreen.kt
index bb005bc..90eb918 100644
--- a/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewScreen.kt
+++ b/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewScreen.kt
@@ -72,12 +72,11 @@
previewMode: PreviewMode,
modifier: Modifier = Modifier,
onRequestWindowColorMode: (Int) -> Unit = {},
- viewModel: PreviewViewModel = hiltViewModel()
+ viewModel: PreviewViewModel = hiltViewModel<PreviewViewModel, PreviewViewModel.Factory>
+ { factory -> factory.create(previewMode) }
) {
Log.d(TAG, "PreviewScreen")
- viewModel.init(previewMode)
-
val previewUiState: PreviewUiState by viewModel.previewUiState.collectAsState()
val screenFlashUiState: ScreenFlash.ScreenFlashUiState
diff --git a/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewViewModel.kt b/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewViewModel.kt
index 58c1a03..ca138a8 100644
--- a/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewViewModel.kt
+++ b/feature/preview/src/main/java/com/google/jetpackcamera/feature/preview/PreviewViewModel.kt
@@ -51,7 +51,6 @@
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
-import javax.inject.Inject
private const val TAG = "PreviewViewModel"
private const val IMAGE_CAPTURE_TRACE = "JCA Image Capture"
@@ -59,14 +58,13 @@
/**
* [ViewModel] for [PreviewScreen].
*/
-@HiltViewModel
-class PreviewViewModel @Inject constructor(
-// @Assisted previewMode: PreviewMode,
+@HiltViewModel(assistedFactory = PreviewViewModel.Factory::class)
+class PreviewViewModel @AssistedInject constructor(
+ @Assisted previewMode: PreviewMode,
private val cameraUseCase: CameraUseCase,
private val constraintsRepository: ConstraintsRepository
) : ViewModel() {
- private var previewMode: PreviewMode? = null
private val _previewUiState: MutableStateFlow<PreviewUiState> =
MutableStateFlow(PreviewUiState.NotReady)
@@ -90,8 +88,7 @@
cameraUseCase.initialize(previewMode is PreviewMode.ExternalImageCaptureMode)
}
- fun init(previewMode: PreviewMode) {
- this.previewMode = previewMode
+ init {
viewModelScope.launch {
combine(
cameraUseCase.getCurrentSettings().filterNotNull(),
@@ -395,10 +392,10 @@
}
}
-// @AssistedFactory
-// interface Factory {
-// fun create(previewMode: PreviewMode): PreviewViewModel
-// }
+ @AssistedFactory
+ interface Factory {
+ fun create(previewMode: PreviewMode): PreviewViewModel
+ }
sealed interface ImageCaptureEvent {
data class ImageSaved(