Skip to content

Commit

Permalink
Demo Setting UI Components
Browse files Browse the repository at this point in the history
  • Loading branch information
Kimblebee committed Jul 18, 2023
1 parent 7bf8722 commit 94a2631
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavController
import com.google.jetpackcamera.settings.ui.DarkModeSetting
import com.google.jetpackcamera.settings.ui.DefaultCameraFacing
import com.google.jetpackcamera.settings.ui.DemoMultipleSetting
import com.google.jetpackcamera.settings.ui.DemoSwitchSetting
import com.google.jetpackcamera.settings.ui.FlashModeSetting
import com.google.jetpackcamera.settings.ui.SectionHeader
import com.google.jetpackcamera.settings.ui.SettingsPageHeader
Expand Down Expand Up @@ -77,4 +79,15 @@ fun SettingsList(uiState: SettingsUiState, viewModel: SettingsViewModel) {
uiState = uiState,
setDarkMode = viewModel::setDarkMode
)

SectionHeader(title = "Demo Settings")

DemoSwitchSetting(
currentDemoSwitchValue = uiState.cameraAppSettings.demo_switch,
viewModelFunction = viewModel::setDemoSwitch
)
DemoMultipleSetting(
currentDemoPopupValue = uiState.cameraAppSettings.demo_multiple,
setDemoMultipleStatus = viewModel::setDemoMultiple
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import androidx.compose.foundation.selection.selectable
import androidx.compose.foundation.selection.selectableGroup
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.Lock
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
Expand All @@ -50,6 +51,7 @@ import com.google.jetpackcamera.settings.R
import com.google.jetpackcamera.settings.SettingsUiState
import com.google.jetpackcamera.settings.model.DarkModeStatus
import com.google.jetpackcamera.settings.model.CameraAppSettings
import com.google.jetpackcamera.settings.model.DemoMultipleStatus
import com.google.jetpackcamera.settings.model.FlashModeStatus


Expand Down Expand Up @@ -154,6 +156,49 @@ fun FlashModeSetting(uiState: SettingsUiState, setFlashMode: (FlashModeStatus) -
)
}


@Composable
fun DemoSwitchSetting(currentDemoSwitchValue: Boolean, viewModelFunction: () -> Unit) {
SwitchSettingUI(
title = stringResource(id = R.string.demo_switch_title),
description = stringResource(id = R.string.demo_switch_description),
leadingIcon = null,
onClick = viewModelFunction,
settingValue = currentDemoSwitchValue,
enabled = true
)
}

@Composable
fun DemoMultipleSetting(currentDemoPopupValue: DemoMultipleStatus, setDemoMultipleStatus: (DemoMultipleStatus) -> Unit) {
BasicPopupSetting(title = stringResource(id = R.string.demo_multiple_choice_title),
description = stringResource(id = R.string.demo_multiple_choice_description) + currentDemoPopupValue,
// use string resources, i just want this to stay short ^^
leadingIcon = null,
popupContents = {
Column(Modifier.selectableGroup()) {
// you can shove another composable object in here, but for now, we'll be putting in single
// choice radio buttons to select from
ChoiceRow(
text = stringResource(id = R.string.demo_choice_apple),
selected = currentDemoPopupValue == DemoMultipleStatus.APPLE,
onClick = { setDemoMultipleStatus(DemoMultipleStatus.APPLE) }
)
ChoiceRow(
text = stringResource(id = R.string.demo_choice_banana),
selected = currentDemoPopupValue == DemoMultipleStatus.BANANA,
onClick = { setDemoMultipleStatus(DemoMultipleStatus.BANANA) }
)
ChoiceRow(
text = stringResource(id = R.string.demo_choice_cantaloupe),
selected = currentDemoPopupValue == DemoMultipleStatus.CANTALOUPE,
onClick = { setDemoMultipleStatus(DemoMultipleStatus.CANTALOUPE) }
)
}
}
)
}

/**
* Setting UI sub-Components
* small and whimsical :)
Expand Down
11 changes: 11 additions & 0 deletions feature/settings/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,15 @@
<string name="flash_mode_status_on">Flash is On</string>
<string name="flash_mode_status_off">Flash is Off</string>

<!--Demo Switch Setting-->
<string name="demo_switch_title">Demo Switch</string>
<string name="demo_switch_description">This is a Description</string>

<!--Demo Popup Setting-->
<string name="demo_multiple_choice_title">Demo Multiple Choice</string>
<string name="demo_multiple_choice_description">Current Choice: </string>
<string name="demo_choice_apple">Apple</string>
<string name="demo_choice_banana">Banana</string>
<string name="demo_choice_cantaloupe">Cantaloupe</string>

</resources>

0 comments on commit 94a2631

Please sign in to comment.