summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Jia <davidjia@google.com>2023-12-01 21:33:17 +0000
committerDavid Jia <davidjia@google.com>2023-12-07 18:22:10 +0000
commit368572b731459ece3fb9d70eb11198ea92bc0870 (patch)
tree50ff5afdf8d00fefa49e04d8723f46f77d2d85fc
parent3ae0900e248937bd7439b3d3c22360f2a7265153 (diff)
downloadjetpack-camera-app-upstream.tar.gz
Third-Party Import of: https://github.com/google/jetpack-camera-appupstream
Request Document: go/android3p For CL Reviewers: go/android3p#cl-review For Build Team: go/ab-third-party-imports Bug: http://b/309514655 Test: manual - built successfully Change-Id: I4330a42c6fd18f8a3fbfb9ef5ab9273be34fecf9
-rw-r--r--Android.bp17
-rw-r--r--METADATA20
-rw-r--r--MODULE_LICENSE_APACHE20
-rw-r--r--OWNERS7
-rw-r--r--app/Android.bp35
-rw-r--r--app/src/main/AndroidManifest.xml5
-rw-r--r--app/src/main/java/com/google/jetpackcamera/JetpackCameraApplication.kt4
-rw-r--r--app/src/main/java/com/google/jetpackcamera/MainActivity.kt4
-rw-r--r--app/src/main/java/com/google/jetpackcamera/ui/JcaApp.kt27
-rw-r--r--app/src/main/java/com/google/jetpackcamera/ui/PermissionsUi.kt31
-rw-r--r--camera-viewfinder-compose/Android.bp23
-rw-r--r--camera-viewfinder-compose/src/main/AndroidManifest.xml4
-rw-r--r--camera-viewfinder-compose/src/main/java/com/google/jetpackcamera/viewfinder/CameraPreview.kt15
-rw-r--r--core/common/Android.bp19
-rw-r--r--core/common/src/main/AndroidManifest.xml4
-rw-r--r--data/settings/Android.bp43
-rw-r--r--data/settings/src/main/AndroidManifest.xml4
-rw-r--r--domain/camera/Android.bp25
-rw-r--r--domain/camera/src/main/AndroidManifest.xml5
-rw-r--r--domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CameraXCameraUseCase.kt55
-rw-r--r--domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CoroutineCameraProvider.kt2
-rw-r--r--feature/preview/Android.bp35
-rw-r--r--feature/preview/src/main/AndroidManifest.xml4
-rw-r--r--feature/quicksettings/Android.bp28
-rw-r--r--feature/quicksettings/src/main/AndroidManifest.xml4
-rw-r--r--feature/settings/Android.bp31
-rw-r--r--feature/settings/src/main/AndroidManifest.xml4
-rw-r--r--feature/settings/src/main/java/com/google/jetpackcamera/settings/ui/SettingsComponents.kt8
28 files changed, 383 insertions, 80 deletions
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..efeb54e
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,17 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+subdirs = [
+ "app",
+ "core/common",
+ "camera-viewfinder-compose",
+ "data/settings",
+ "domain/camera",
+ "feature",
+
+ ]
+
+
diff --git a/METADATA b/METADATA
new file mode 100644
index 0000000..11465c3
--- /dev/null
+++ b/METADATA
@@ -0,0 +1,20 @@
+name: "jetpack-camera-app"
+description:
+ "Jetpack Camera App is (will be) a fully functional camera app, focused on "
+ "features used by app developers, and built entirely with CameraX, Kotlin "
+ "and Jetpack Compose. It follows Android design and development best "
+ "practices and it's intended to be a useful reference for developers."
+
+third_party {
+ url {
+ type: HOMEPAGE
+ value: "https://github.com/google/jetpack-camera-app"
+ }
+ url {
+ type: GIT
+ value: "https://github.com/google/jetpack-camera-app"
+ }
+ version: "3ae0900e248937bd7439b3d3c22360f2a7265153"
+ last_upgrade_date { year: 2023 month: 11 day: 17 }
+ license_type: NOTICE
+}
diff --git a/MODULE_LICENSE_APACHE2 b/MODULE_LICENSE_APACHE2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/MODULE_LICENSE_APACHE2
diff --git a/OWNERS b/OWNERS
new file mode 100644
index 0000000..6a44f69
--- /dev/null
+++ b/OWNERS
@@ -0,0 +1,7 @@
+# Default owners are top 3 active developers of the past 1 or 2 years
+# or people with more than 10 commits last year.
+# Please update this list if you find better owner candidates.
+trevormcguire@google.com
+yasith@google.com
+davidjia@google.com
+kcrevecoeur@google.com
diff --git a/app/Android.bp b/app/Android.bp
new file mode 100644
index 0000000..778e3cd
--- /dev/null
+++ b/app/Android.bp
@@ -0,0 +1,35 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+android_app {
+ name: "jetpack-camera-app",
+ static_libs:[
+ "androidx.compose.material3_material3",
+ "androidx.compose.ui_ui-tooling-preview",
+ "androidx.compose.ui_ui-tooling",
+ "androidx.lifecycle_lifecycle-viewmodel-compose",
+ "androidx.activity_activity-compose",
+ "androidx.core_core-ktx",
+ "androidx.lifecycle_lifecycle-runtime-ktx",
+ "androidx.navigation_navigation-compose",
+ "hilt_android",
+ "androidx.compose.runtime_runtime",
+ "jetpack-camera-app_data_settings",
+ "jetpack-camera-app_feature_preview",
+ "jetpack-camera-app_feature_settings",
+ ],
+ srcs: [
+ "src/main/**/*.kt",
+ ],
+
+ resource_dirs: [
+ "src/main/res",
+ ],
+ manifest: "src/main/AndroidManifest.xml",
+ sdk_version: "34",
+ min_sdk_version: "21",
+}
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 40f0301..4e5c9ce 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -15,7 +15,8 @@
~ limitations under the License.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools">
+ xmlns:tools="http://schemas.android.com/tools"
+ package="com.google.jetpackcamera">
<uses-feature
android:name="android.hardware.camera"
@@ -50,4 +51,4 @@
</activity>
</application>
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/app/src/main/java/com/google/jetpackcamera/JetpackCameraApplication.kt b/app/src/main/java/com/google/jetpackcamera/JetpackCameraApplication.kt
index aca5cdd..fc87bfc 100644
--- a/app/src/main/java/com/google/jetpackcamera/JetpackCameraApplication.kt
+++ b/app/src/main/java/com/google/jetpackcamera/JetpackCameraApplication.kt
@@ -21,5 +21,5 @@ import dagger.hilt.android.HiltAndroidApp
/**
* [Application] class for JetpackCameraApp.
*/
-@HiltAndroidApp
-class JetpackCameraApplication : Application()
+@HiltAndroidApp(Application::class)
+class JetpackCameraApplication : Hilt_JetpackCameraApplication()
diff --git a/app/src/main/java/com/google/jetpackcamera/MainActivity.kt b/app/src/main/java/com/google/jetpackcamera/MainActivity.kt
index 64d39a7..a499bb9 100644
--- a/app/src/main/java/com/google/jetpackcamera/MainActivity.kt
+++ b/app/src/main/java/com/google/jetpackcamera/MainActivity.kt
@@ -56,8 +56,8 @@ import kotlinx.coroutines.launch
/**
* Activity for the JetpackCameraApp.
*/
-@AndroidEntryPoint
-class MainActivity : ComponentActivity() {
+@AndroidEntryPoint(ComponentActivity::class)
+class MainActivity : Hilt_MainActivity() {
private val viewModel: MainActivityViewModel by viewModels()
@VisibleForTesting
diff --git a/app/src/main/java/com/google/jetpackcamera/ui/JcaApp.kt b/app/src/main/java/com/google/jetpackcamera/ui/JcaApp.kt
index 64b9754..8fadcbf 100644
--- a/app/src/main/java/com/google/jetpackcamera/ui/JcaApp.kt
+++ b/app/src/main/java/com/google/jetpackcamera/ui/JcaApp.kt
@@ -23,32 +23,32 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
-import com.google.accompanist.permissions.ExperimentalPermissionsApi
-import com.google.accompanist.permissions.isGranted
-import com.google.accompanist.permissions.rememberPermissionState
+//import com.google.accompanist.permissions.ExperimentalPermissionsApi
+//import com.google.accompanist.permissions.isGranted
+//import com.google.accompanist.permissions.rememberPermissionState
import com.google.jetpackcamera.feature.preview.PreviewScreen
import com.google.jetpackcamera.feature.preview.PreviewViewModel
import com.google.jetpackcamera.settings.SettingsScreen
import com.google.jetpackcamera.ui.Routes.PREVIEW_ROUTE
import com.google.jetpackcamera.ui.Routes.SETTINGS_ROUTE
-@OptIn(ExperimentalPermissionsApi::class)
+//@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun JcaApp(
onPreviewViewModel: (PreviewViewModel) -> Unit
/*TODO(b/306236646): remove after still capture*/
) {
- val permissionState =
- rememberPermissionState(permission = Manifest.permission.CAMERA)
+// val permissionState = Manifest.permission.CAMERA
+// rememberPermissionState(permission = Manifest.permission.CAMERA)
- if (permissionState.status.isGranted) {
+// if (permissionState.status.isGranted) {
JetpackCameraNavHost(onPreviewViewModel)
- } else {
- CameraPermission(
- modifier = Modifier.fillMaxSize(),
- cameraPermissionState = permissionState
- )
- }
+// } else {
+// CameraPermission(
+// modifier = Modifier.fillMaxSize(),
+// cameraPermissionState = permissionState
+// )
+// }
}
@Composable
@@ -70,3 +70,4 @@ private fun JetpackCameraNavHost(
}
}
}
+
diff --git a/app/src/main/java/com/google/jetpackcamera/ui/PermissionsUi.kt b/app/src/main/java/com/google/jetpackcamera/ui/PermissionsUi.kt
index 5100dff..adb56e1 100644
--- a/app/src/main/java/com/google/jetpackcamera/ui/PermissionsUi.kt
+++ b/app/src/main/java/com/google/jetpackcamera/ui/PermissionsUi.kt
@@ -43,16 +43,16 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
-import com.google.accompanist.permissions.ExperimentalPermissionsApi
-import com.google.accompanist.permissions.PermissionState
+//import com.google.accompanist.permissions.ExperimentalPermissionsApi
+//import com.google.accompanist.permissions.PermissionState
import com.google.jetpackcamera.R
-@OptIn(ExperimentalPermissionsApi::class)
+//@OptIn(ExperimentalPermissionsApi::class)
@Composable
-fun CameraPermission(modifier: Modifier = Modifier, cameraPermissionState: PermissionState) {
+fun CameraPermission(modifier: Modifier = Modifier) {
PermissionTemplate(
modifier = modifier,
- permissionState = cameraPermissionState,
+// permissionState = cameraPermissionState,
painter = painterResource(id = R.drawable.photo_camera),
iconAccessibilityText = stringResource(id = R.string.camera_permission_accessibility_text),
title = stringResource(id = R.string.camera_permission_screen_title),
@@ -61,11 +61,11 @@ fun CameraPermission(modifier: Modifier = Modifier, cameraPermissionState: Permi
)
}
-@OptIn(ExperimentalPermissionsApi::class)
+//@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun PermissionTemplate(
modifier: Modifier = Modifier,
- permissionState: PermissionState,
+// permissionState: PermissionState,
onSkipPermission: (() -> Unit)? = null,
painter: Painter,
iconAccessibilityText: String,
@@ -100,7 +100,7 @@ fun PermissionTemplate(
.fillMaxWidth()
.align(Alignment.CenterHorizontally)
.height(IntrinsicSize.Min),
- permissionState = permissionState,
+// permissionState = permissionState,
requestButtonText = requestButtonText,
onSkipPermission = onSkipPermission
)
@@ -123,11 +123,11 @@ fun PermissionImage(modifier: Modifier = Modifier, painter: Painter, accessibili
}
}
-@OptIn(ExperimentalPermissionsApi::class)
+//@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun PermissionButtonSection(
modifier: Modifier = Modifier,
- permissionState: PermissionState,
+// permissionState: PermissionState,
requestButtonText: String,
onSkipPermission: (() -> Unit)?
) {
@@ -138,7 +138,7 @@ fun PermissionButtonSection(
.align(Alignment.Center)
) {
PermissionButton(
- permissionState = permissionState,
+// permissionState = permissionState,
requestButtonText = requestButtonText
)
Spacer(modifier = Modifier.height(20.dp))
@@ -156,11 +156,11 @@ fun PermissionButtonSection(
}
}
-@OptIn(ExperimentalPermissionsApi::class)
+//@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun PermissionButton(
modifier: Modifier = Modifier,
- permissionState: PermissionState,
+// permissionState: PermissionState,
requestButtonText: String
) {
Button(
@@ -169,7 +169,9 @@ fun PermissionButton(
containerColor = MaterialTheme.colorScheme.primaryContainer,
contentColor = MaterialTheme.colorScheme.onPrimaryContainer
),
- onClick = { permissionState.launchPermissionRequest() }
+ onClick = {
+// permissionState.launchPermissionRequest()
+ }
) {
Text(
modifier = Modifier.padding(10.dp),
@@ -233,3 +235,4 @@ fun PermissionBodyText(modifier: Modifier = Modifier, text: String, color: Color
textAlign = TextAlign.Center
)
}
+
diff --git a/camera-viewfinder-compose/Android.bp b/camera-viewfinder-compose/Android.bp
new file mode 100644
index 0000000..2b55a3f
--- /dev/null
+++ b/camera-viewfinder-compose/Android.bp
@@ -0,0 +1,23 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+android_library {
+ name: "jetpack-camera-app_camera-viewfinder-compose",
+ srcs: ["src/main/**/*.kt"],
+ static_libs: [
+ "androidx.compose.material3_material3",
+ "androidx.compose.runtime_runtime",
+ "androidx.compose.ui_ui-tooling-preview",
+ "androidx.compose.ui_ui-tooling",
+ "androidx.camera_camera-core",
+ "androidx.camera_camera-viewfinder",
+ "androidx.core_core",
+ ],
+ sdk_version: "34",
+ min_sdk_version: "21",
+ manifest:"src/main/AndroidManifest.xml"
+}
+
diff --git a/camera-viewfinder-compose/src/main/AndroidManifest.xml b/camera-viewfinder-compose/src/main/AndroidManifest.xml
index 5c675bb..426a891 100644
--- a/camera-viewfinder-compose/src/main/AndroidManifest.xml
+++ b/camera-viewfinder-compose/src/main/AndroidManifest.xml
@@ -14,6 +14,6 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<manifest>
+<manifest package="com.google.jetpackcamera.viewfinder">
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/camera-viewfinder-compose/src/main/java/com/google/jetpackcamera/viewfinder/CameraPreview.kt b/camera-viewfinder-compose/src/main/java/com/google/jetpackcamera/viewfinder/CameraPreview.kt
index 0bdc770..97009b8 100644
--- a/camera-viewfinder-compose/src/main/java/com/google/jetpackcamera/viewfinder/CameraPreview.kt
+++ b/camera-viewfinder-compose/src/main/java/com/google/jetpackcamera/viewfinder/CameraPreview.kt
@@ -21,7 +21,6 @@ import android.view.Surface
import android.view.View
import androidx.camera.core.Preview.SurfaceProvider
import androidx.camera.core.SurfaceRequest
-import androidx.camera.view.PreviewView.ImplementationMode
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
@@ -39,6 +38,20 @@ import kotlinx.coroutines.flow.mapNotNull
private const val TAG = "Preview"
+enum class ImplementationMode {
+ /**
+ * Use a [SurfaceView] for the preview when possible. If the device
+ * doesn't support [SurfaceView], [PreviewView] will fall back to use a
+ * [TextureView] instead.
+ */
+ PERFORMANCE,
+
+ /**
+ * Use a [TextureView] for the preview.
+ */
+ COMPATIBLE
+}
+
@Composable
fun CameraPreview(
modifier: Modifier,
diff --git a/core/common/Android.bp b/core/common/Android.bp
new file mode 100644
index 0000000..552b888
--- /dev/null
+++ b/core/common/Android.bp
@@ -0,0 +1,19 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+android_library {
+ name: "jetpack-camera-app_core_common",
+ srcs: ["src/main/**/*.kt"],
+ static_libs: [
+ "androidx.core_core-ktx",
+ "hilt_android",
+ "androidx.appcompat_appcompat",
+ "com.google.android.material_material",
+ ],
+ sdk_version: "34",
+ min_sdk_version: "21",
+ manifest:"src/main/AndroidManifest.xml"
+}
diff --git a/core/common/src/main/AndroidManifest.xml b/core/common/src/main/AndroidManifest.xml
index 5c675bb..1609b38 100644
--- a/core/common/src/main/AndroidManifest.xml
+++ b/core/common/src/main/AndroidManifest.xml
@@ -14,6 +14,6 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<manifest>
+<manifest package="com.google.jetpackcamera.core.common">
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/data/settings/Android.bp b/data/settings/Android.bp
new file mode 100644
index 0000000..2abb0b4
--- /dev/null
+++ b/data/settings/Android.bp
@@ -0,0 +1,43 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+java_library {
+ name: "jetpack-camera-app-protos-java-gen",
+ installable: false,
+ proto: {
+ type: "lite",
+ canonical_path_from_root: false,
+ local_include_dirs: ["src/main/proto"],
+ },
+ srcs: [
+ "src/main/proto/**/*.proto",
+ ],
+ min_sdk_version: "21",
+ sdk_version: "34",
+
+ static_libs: [
+ "libprotobuf-java-lite",
+ ]
+}
+
+
+android_library {
+ name: "jetpack-camera-app_data_settings",
+ srcs: [
+ "src/main/**/*.kt",
+ ],
+ static_libs: [
+ "hilt_android",
+ "kotlinx-coroutines-core",
+ "androidx.datastore_datastore",
+ "jetpack-camera-app-protos-java-gen",
+ "libprotobuf-java-lite",
+ ],
+ sdk_version: "34",
+ min_sdk_version: "21",
+ manifest:"src/main/AndroidManifest.xml",
+}
+
diff --git a/data/settings/src/main/AndroidManifest.xml b/data/settings/src/main/AndroidManifest.xml
index 5c675bb..da78212 100644
--- a/data/settings/src/main/AndroidManifest.xml
+++ b/data/settings/src/main/AndroidManifest.xml
@@ -14,6 +14,6 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<manifest>
+<manifest package="com.google.jetpackcamera.data.settings">
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/domain/camera/Android.bp b/domain/camera/Android.bp
new file mode 100644
index 0000000..b22d7e4
--- /dev/null
+++ b/domain/camera/Android.bp
@@ -0,0 +1,25 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+android_library {
+ name: "jetpack-camera-app_domain_camera",
+ srcs: ["src/main/**/*.kt"],
+ static_libs: [
+ "androidx.concurrent_concurrent-futures-ktx",
+ "hilt_android",
+ "androidx.camera_camera-core",
+ "androidx.camera_camera-viewfinder",
+ "androidx.camera_camera-camera2",
+ "androidx.camera_camera-lifecycle",
+ "androidx.camera_camera-extensions",
+ "jetpack-camera-app_data_settings",
+ "jetpack-camera-app_core_common",
+ ],
+ sdk_version: "34",
+ min_sdk_version: "21",
+ manifest:"src/main/AndroidManifest.xml"
+}
+
diff --git a/domain/camera/src/main/AndroidManifest.xml b/domain/camera/src/main/AndroidManifest.xml
index 1e7c244..2aa7dee 100644
--- a/domain/camera/src/main/AndroidManifest.xml
+++ b/domain/camera/src/main/AndroidManifest.xml
@@ -14,6 +14,7 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.google.jetpackcamera.domain.camera">
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CameraXCameraUseCase.kt b/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CameraXCameraUseCase.kt
index 556e778..e04bdd9 100644
--- a/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CameraXCameraUseCase.kt
+++ b/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CameraXCameraUseCase.kt
@@ -33,10 +33,10 @@ import androidx.camera.core.UseCaseGroup
import androidx.camera.core.ViewPort
import androidx.camera.core.ZoomState
import androidx.camera.lifecycle.ProcessCameraProvider
-import androidx.camera.video.MediaStoreOutputOptions
-import androidx.camera.video.Recorder
-import androidx.camera.video.Recording
-import androidx.camera.video.VideoCapture
+//import androidx.camera.video.MediaStoreOutputOptions
+//import androidx.camera.video.Recorder
+//import androidx.camera.video.Recording
+//import androidx.camera.video.VideoCapture
import androidx.concurrent.futures.await
import androidx.core.content.ContextCompat
import com.google.jetpackcamera.domain.camera.CameraUseCase.Companion.INVALID_ZOOM_SCALE
@@ -71,11 +71,11 @@ constructor(
// TODO apply flash from settings
private val imageCaptureUseCase = ImageCapture.Builder().build()
- private val recorder = Recorder.Builder().setExecutor(
- defaultDispatcher.asExecutor()
- ).build()
- private val videoCaptureUseCase = VideoCapture.withOutput(recorder)
- private var recording: Recording? = null
+// private val recorder = Recorder.Builder().setExecutor(
+// defaultDispatcher.asExecutor()
+// ).build()
+// private val videoCaptureUseCase = VideoCapture.withOutput(recorder)
+// private var recording: Recording? = null
private lateinit var previewUseCase: Preview
private lateinit var useCaseGroup: UseCaseGroup
@@ -161,27 +161,27 @@ constructor(
ContentValues().apply {
put(MediaStore.Video.Media.DISPLAY_NAME, name)
}
- val mediaStoreOutput =
- MediaStoreOutputOptions.Builder(
- application.contentResolver,
- MediaStore.Video.Media.EXTERNAL_CONTENT_URI
- )
- .setContentValues(contentValues)
- .build()
-
- recording =
- videoCaptureUseCase.output
- .prepareRecording(application, mediaStoreOutput)
- .start(ContextCompat.getMainExecutor(application)) { videoRecordEvent ->
- run {
- Log.d(TAG, videoRecordEvent.toString())
- }
- }
+// val mediaStoreOutput =
+// MediaStoreOutputOptions.Builder(
+// application.contentResolver,
+// MediaStore.Video.Media.EXTERNAL_CONTENT_URI
+// )
+// .setContentValues(contentValues)
+// .build()
+
+// recording =
+// videoCaptureUseCase.output
+// .prepareRecording(application, mediaStoreOutput)
+// .start(ContextCompat.getMainExecutor(application)) { videoRecordEvent ->
+// run {
+// Log.d(TAG, videoRecordEvent.toString())
+// }
+// }
}
override fun stopVideoRecording() {
Log.d(TAG, "stopRecording")
- recording?.stop()
+// recording?.stop()
}
override fun setZoomScale(scale: Float): Float {
@@ -267,7 +267,7 @@ constructor(
)
.addUseCase(previewUseCase)
.addUseCase(imageCaptureUseCase)
- .addUseCase(videoCaptureUseCase)
+// .addUseCase(videoCaptureUseCase)
if (captureMode == CaptureMode.SINGLE_STREAM) {
useCaseGroupBuilder.addEffect(SingleSurfaceForcingEffect())
@@ -320,3 +320,4 @@ constructor(
else -> throw IllegalArgumentException("Invalid lens facing type: $lensFacing")
}
}
+
diff --git a/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CoroutineCameraProvider.kt b/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CoroutineCameraProvider.kt
index a056ec0..e55ae35 100644
--- a/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CoroutineCameraProvider.kt
+++ b/domain/camera/src/main/java/com/google/jetpackcamera/domain/camera/CoroutineCameraProvider.kt
@@ -71,5 +71,5 @@ private class CoroutineLifecycleOwner(coroutineContext: CoroutineContext) :
}
}
- override fun getLifecycle() = lifecycleRegistry
+ override public val lifecycle: Lifecycle = lifecycleRegistry
}
diff --git a/feature/preview/Android.bp b/feature/preview/Android.bp
new file mode 100644
index 0000000..ed5c86e
--- /dev/null
+++ b/feature/preview/Android.bp
@@ -0,0 +1,35 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+android_library {
+ name: "jetpack-camera-app_feature_preview",
+ srcs: ["src/main/**/*.kt"],
+ resource_dirs: [
+ "src/main/res",
+ ],
+ static_libs: [
+ "androidx.compose.runtime_runtime",
+ "androidx.compose.material3_material3",
+ "androidx.compose.ui_ui-tooling-preview",
+ "hilt_android",
+ "androidx.hilt_hilt-navigation-compose",
+ "androidx.compose.ui_ui-tooling",
+ "kotlinx_coroutines_guava",
+ "androidx.datastore_datastore",
+ "libprotobuf-java-lite",
+ "androidx.camera_camera-core",
+ "androidx.camera_camera-viewfinder",
+ "jetpack-camera-app_data_settings",
+ "jetpack-camera-app_domain_camera",
+ "jetpack-camera-app_camera-viewfinder-compose",
+ "jetpack-camera-app_feature_quicksettings",
+
+ ],
+ sdk_version: "34",
+ min_sdk_version: "21",
+ manifest:"src/main/AndroidManifest.xml"
+}
+
diff --git a/feature/preview/src/main/AndroidManifest.xml b/feature/preview/src/main/AndroidManifest.xml
index 5c675bb..1fb3b89 100644
--- a/feature/preview/src/main/AndroidManifest.xml
+++ b/feature/preview/src/main/AndroidManifest.xml
@@ -14,6 +14,6 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<manifest>
+<manifest package="com.google.jetpackcamera.feature.preview">
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/feature/quicksettings/Android.bp b/feature/quicksettings/Android.bp
new file mode 100644
index 0000000..8b0e3b6
--- /dev/null
+++ b/feature/quicksettings/Android.bp
@@ -0,0 +1,28 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+android_library {
+ name: "jetpack-camera-app_feature_quicksettings",
+ srcs: ["src/main/**/*.kt"],
+ static_libs: [
+ "androidx.compose.material3_material3",
+ "androidx.compose.runtime_runtime",
+ "androidx.compose.ui_ui-tooling-preview",
+ "androidx.compose.ui_ui-tooling",
+ "androidx.camera_camera-core",
+ "androidx.camera_camera-viewfinder",
+ "kotlinx_coroutines_guava",
+ "jetpack-camera-app_data_settings",
+ ],
+ sdk_version: "34",
+ min_sdk_version: "21",
+ manifest:"src/main/AndroidManifest.xml",
+ resource_dirs: [
+ "src/main/res",
+ ],
+}
+
+
diff --git a/feature/quicksettings/src/main/AndroidManifest.xml b/feature/quicksettings/src/main/AndroidManifest.xml
index 5c675bb..331bca7 100644
--- a/feature/quicksettings/src/main/AndroidManifest.xml
+++ b/feature/quicksettings/src/main/AndroidManifest.xml
@@ -14,6 +14,6 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<manifest>
+<manifest package="com.google.jetpackcamera.quicksettings">
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/feature/settings/Android.bp b/feature/settings/Android.bp
new file mode 100644
index 0000000..2e21fb8
--- /dev/null
+++ b/feature/settings/Android.bp
@@ -0,0 +1,31 @@
+package {
+ default_applicable_licenses: [
+ "Android-Apache-2.0",
+ ],
+}
+
+android_library {
+ name: "jetpack-camera-app_feature_settings",
+ srcs: ["src/main/**/*.kt"],
+ resource_dirs: [
+ "src/main/res",
+ ],
+ static_libs: [
+ "androidx.compose.material3_material3",
+ "androidx.compose.material_material-icons-core",
+ "androidx.compose.runtime_runtime",
+ "androidx.compose.ui_ui-tooling-preview",
+ "hilt_android",
+ "androidx.compose.ui_ui-tooling",
+ "kotlinx_coroutines_guava",
+ "androidx.datastore_datastore",
+ "libprotobuf-java-lite",
+ "jetpack-camera-app_data_settings",
+ "androidx.hilt_hilt-navigation-compose",
+
+ ],
+ sdk_version: "34",
+ min_sdk_version: "21",
+ manifest:"src/main/AndroidManifest.xml"
+}
+
diff --git a/feature/settings/src/main/AndroidManifest.xml b/feature/settings/src/main/AndroidManifest.xml
index 5c675bb..cfecf54 100644
--- a/feature/settings/src/main/AndroidManifest.xml
+++ b/feature/settings/src/main/AndroidManifest.xml
@@ -14,6 +14,6 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<manifest>
+<manifest package="com.google.jetpackcamera.settings">
-</manifest> \ No newline at end of file
+</manifest>
diff --git a/feature/settings/src/main/java/com/google/jetpackcamera/settings/ui/SettingsComponents.kt b/feature/settings/src/main/java/com/google/jetpackcamera/settings/ui/SettingsComponents.kt
index 31b2d08..738d489 100644
--- a/feature/settings/src/main/java/com/google/jetpackcamera/settings/ui/SettingsComponents.kt
+++ b/feature/settings/src/main/java/com/google/jetpackcamera/settings/ui/SettingsComponents.kt
@@ -26,7 +26,7 @@ import androidx.compose.foundation.selection.selectable
import androidx.compose.foundation.selection.selectableGroup
import androidx.compose.foundation.selection.toggleable
import androidx.compose.material.icons.Icons
-import androidx.compose.material.icons.filled.ArrowBack
+import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
@@ -68,7 +68,7 @@ fun SettingsPageHeader(modifier: Modifier = Modifier, title: String, navBack: ()
},
navigationIcon = {
IconButton(onClick = { navBack() }) {
- Icon(Icons.Filled.ArrowBack, stringResource(id = R.string.nav_back_accessibility))
+ Icon(Icons.AutoMirrored.Filled.ArrowBack, stringResource(id = R.string.nav_back_accessibility))
}
}
)
@@ -332,8 +332,8 @@ fun SettingUI(
) {
ListItem(
modifier = modifier,
- headlineText = { Text(title) },
- supportingText = when (description) {
+ headlineContent = { Text(title) },
+ supportingContent = when (description) {
null -> null
else -> {
{ Text(description) }