Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into 1.0.0-Release-Candidate
Browse files Browse the repository at this point in the history
  • Loading branch information
temcguir committed Apr 17, 2024
2 parents 34c34d2 + 17c50b5 commit dd5c589
Show file tree
Hide file tree
Showing 49 changed files with 950 additions and 906 deletions.
2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 10 additions & 9 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,23 +22,22 @@ plugins {
}

android {
compileSdk = libs.versions.compileSdk.get().toInt()
namespace = "com.google.jetpackcamera"
compileSdk = 34

defaultConfig {
applicationId = "com.google.jetpackcamera"
minSdk = 21
targetSdk = 34
minSdk = libs.versions.minSdk.get().toInt()
targetSdk = libs.versions.targetSdk.get().toInt()
versionCode = 1
versionName = "1.0.0-RC01"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

buildTypes {
getByName("debug") {
signingConfig = signingConfigs.getByName("debug")
}
getByName("release") {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
Expand All @@ -57,16 +56,18 @@ android {
jvmToolchain(17)
}
buildFeatures {
buildConfig = true
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = "1.4.0"
kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
}
packagingOptions {
packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
@Suppress("UnstableApiUsage")
testOptions {
managedDevices {
localDevices {
Expand Down
12 changes: 11 additions & 1 deletion app/src/androidTest/java/com/google/jetpackcamera/UiTestUtil.kt
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,12 @@ import androidx.compose.ui.test.junit4.ComposeTestRule
import androidx.compose.ui.test.onNodeWithTag
import androidx.compose.ui.test.performClick
import androidx.test.core.app.ActivityScenario
import com.google.jetpackcamera.feature.preview.PreviewUiState
import com.google.jetpackcamera.feature.quicksettings.ui.QUICK_SETTINGS_FLIP_CAMERA_BUTTON
import com.google.jetpackcamera.quicksettings.R
import com.google.jetpackcamera.settings.model.CameraAppSettings
import com.google.jetpackcamera.settings.model.LensFacing
import java.lang.IllegalStateException
import java.util.concurrent.atomic.AtomicReference

const val APP_START_TIMEOUT_MILLIS = 10_000L
Expand All @@ -42,7 +44,15 @@ object UiTestUtil {
): CameraAppSettings {
return getActivity(
activityScenario
).previewViewModel!!.previewUiState.value.currentCameraSettings
).previewViewModel!!.previewUiState.value.let {
when (it) {
is PreviewUiState.Ready -> it.currentCameraSettings
else -> throw IllegalStateException(
"Can only retrieve camera app settings from PreviewUiState.Ready," +
" but state was ${it::class}"
)
}
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ import kotlinx.coroutines.flow.stateIn

@HiltViewModel
class MainActivityViewModel @Inject constructor(
val settingsRepository: SettingsRepository
settingsRepository: SettingsRepository
) : ViewModel() {
val uiState: StateFlow<MainActivityUiState> = settingsRepository.cameraAppSettings.map {
val uiState: StateFlow<MainActivityUiState> = settingsRepository.defaultCameraAppSettings.map {
Success(it)
}.stateIn(
scope = viewModelScope,
Expand All @@ -42,6 +42,6 @@ class MainActivityViewModel @Inject constructor(
}

sealed interface MainActivityUiState {
object Loading : MainActivityUiState
data object Loading : MainActivityUiState
data class Success(val cameraAppSettings: CameraAppSettings) : MainActivityUiState
}
13 changes: 8 additions & 5 deletions app/src/main/java/com/google/jetpackcamera/ui/JcaApp.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,11 @@ import com.google.jetpackcamera.ui.Routes.SETTINGS_ROUTE
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun JcaApp(
/*TODO(b/306236646): remove after still capture*/
previewMode: PreviewMode,
onPreviewViewModel: (PreviewViewModel) -> Unit,
onRequestWindowColorMode: (Int) -> Unit
/*TODO(b/306236646): remove after still capture*/
onRequestWindowColorMode: (Int) -> Unit,
modifier: Modifier = Modifier
) {
val permissionState =
rememberPermissionState(permission = Manifest.permission.CAMERA)
Expand All @@ -50,11 +51,12 @@ fun JcaApp(
JetpackCameraNavHost(
onPreviewViewModel = onPreviewViewModel,
previewMode = previewMode,
onRequestWindowColorMode = onRequestWindowColorMode
onRequestWindowColorMode = onRequestWindowColorMode,
modifier = modifier
)
} else {
CameraPermission(
modifier = Modifier.fillMaxSize(),
modifier = modifier.fillMaxSize(),
cameraPermissionState = permissionState
)
}
Expand All @@ -65,9 +67,10 @@ private fun JetpackCameraNavHost(
previewMode: PreviewMode,
onPreviewViewModel: (PreviewViewModel) -> Unit,
onRequestWindowColorMode: (Int) -> Unit,
modifier: Modifier = Modifier,
navController: NavHostController = rememberNavController()
) {
NavHost(navController = navController, startDestination = PREVIEW_ROUTE) {
NavHost(navController = navController, startDestination = PREVIEW_ROUTE, modifier = modifier) {
composable(PREVIEW_ROUTE) {
PreviewScreen(
onPreviewViewModel = onPreviewViewModel,
Expand Down
24 changes: 12 additions & 12 deletions app/src/main/java/com/google/jetpackcamera/ui/PermissionsUi.kt
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ import com.google.jetpackcamera.R

@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun CameraPermission(modifier: Modifier = Modifier, cameraPermissionState: PermissionState) {
fun CameraPermission(cameraPermissionState: PermissionState, modifier: Modifier = Modifier) {
PermissionTemplate(
modifier = modifier,
permissionState = cameraPermissionState,
Expand All @@ -64,14 +64,14 @@ fun CameraPermission(modifier: Modifier = Modifier, cameraPermissionState: Permi
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun PermissionTemplate(
modifier: Modifier = Modifier,
permissionState: PermissionState,
onSkipPermission: (() -> Unit)? = null,
painter: Painter,
iconAccessibilityText: String,
title: String,
bodyText: String,
requestButtonText: String
requestButtonText: String,
modifier: Modifier = Modifier,
onSkipPermission: (() -> Unit)? = null
) {
Column(
modifier = modifier.background(MaterialTheme.colorScheme.primary),
Expand Down Expand Up @@ -110,7 +110,7 @@ fun PermissionTemplate(
}

@Composable
fun PermissionImage(modifier: Modifier = Modifier, painter: Painter, accessibilityText: String) {
fun PermissionImage(painter: Painter, accessibilityText: String, modifier: Modifier = Modifier) {
Box(modifier = modifier) {
Icon(
modifier = Modifier
Expand All @@ -126,9 +126,9 @@ fun PermissionImage(modifier: Modifier = Modifier, painter: Painter, accessibili
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun PermissionButtonSection(
modifier: Modifier = Modifier,
permissionState: PermissionState,
requestButtonText: String,
modifier: Modifier = Modifier,
onSkipPermission: (() -> Unit)?
) {
Box(modifier = modifier) {
Expand Down Expand Up @@ -159,9 +159,9 @@ fun PermissionButtonSection(
@OptIn(ExperimentalPermissionsApi::class)
@Composable
fun PermissionButton(
modifier: Modifier = Modifier,
permissionState: PermissionState,
requestButtonText: String
requestButtonText: String,
modifier: Modifier = Modifier
) {
Button(
modifier = modifier,
Expand All @@ -181,13 +181,13 @@ fun PermissionButton(
}

@Composable
fun PermissionText(modifier: Modifier = Modifier, title: String, bodyText: String) {
fun PermissionText(title: String, bodyText: String, modifier: Modifier = Modifier) {
Box(
modifier = modifier
.height(IntrinsicSize.Min)
) {
Column(
modifier = modifier
modifier = Modifier
.fillMaxSize()
.align(Alignment.Center)
) {
Expand All @@ -213,7 +213,7 @@ fun PermissionText(modifier: Modifier = Modifier, title: String, bodyText: Strin
}

@Composable
fun PermissionTitleText(modifier: Modifier = Modifier, text: String, color: Color) {
fun PermissionTitleText(text: String, color: Color, modifier: Modifier = Modifier) {
Text(
modifier = modifier,
color = color,
Expand All @@ -224,7 +224,7 @@ fun PermissionTitleText(modifier: Modifier = Modifier, text: String, color: Colo
}

@Composable
fun PermissionBodyText(modifier: Modifier = Modifier, text: String, color: Color) {
fun PermissionBodyText(text: String, color: Color, modifier: Modifier = Modifier) {
Text(
modifier = modifier,
color = color,
Expand Down
4 changes: 2 additions & 2 deletions benchmark/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ plugins {

android {
namespace = "com.google.jetpackcamera.benchmark"
compileSdk = 34
compileSdk = libs.versions.compileSdk.get().toInt()

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
Expand All @@ -35,7 +35,7 @@ android {
defaultConfig {
//Our app has a minSDK of 21, but in order for the benchmark tool to function, it must be 23
minSdk = 23
targetSdk = 34
targetSdk = libs.versions.targetSdk.get().toInt()

// allows the benchmark to be run on an emulator
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] =
Expand Down
10 changes: 10 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,14 @@ gradle.taskGraph.whenReady {
task.dependsOn(tasks["installGitHooks"])
}
}
}

// Task to print all the module paths in the project e.g. :core:data
// Used by module graph generator script
tasks.register("printModulePaths") {
subprojects {
if (subprojects.size == 0) {
println(this.path)
}
}
}
7 changes: 4 additions & 3 deletions core/common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ plugins {

android {
namespace = "com.google.jetpackcamera.core.common"
compileSdk = 34
compileSdk = libs.versions.compileSdk.get().toInt()

defaultConfig {
minSdk = 21
targetSdk = 34
minSdk = libs.versions.minSdk.get().toInt()
testOptions.targetSdk = libs.versions.targetSdk.get().toInt()
lint.targetSdk = libs.versions.targetSdk.get().toInt()

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
Expand Down
8 changes: 5 additions & 3 deletions data/settings/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,12 @@ plugins {

android {
namespace = "com.google.jetpackcamera.data.settings"
compileSdk = 34
compileSdk = libs.versions.compileSdk.get().toInt()

defaultConfig {
minSdk = 21
targetSdk = 34
minSdk = libs.versions.minSdk.get().toInt()
testOptions.targetSdk = libs.versions.targetSdk.get().toInt()
lint.targetSdk = libs.versions.targetSdk.get().toInt()

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles("consumer-rules.pro")
Expand All @@ -42,6 +43,7 @@ android {
jvmToolchain(17)
}

@Suppress("UnstableApiUsage")
testOptions {
managedDevices {
localDevices {
Expand Down
Loading

0 comments on commit dd5c589

Please sign in to comment.