package net.osdn.gokigen.joggingtimer.presentation.ui.main
+import android.util.Log
+import androidx.compose.foundation.ExperimentalFoundationApi
+import androidx.compose.foundation.background
+import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Icon
-import androidx.compose.material.IconButton
import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
+import androidx.wear.compose.material.Button
+import androidx.wear.compose.material.ButtonDefaults
import net.osdn.gokigen.joggingtimer.R
import net.osdn.gokigen.joggingtimer.stopwatch.timer.ITimerCounter
@Composable
fun BtnStop(navController: NavHostController, timerCounter: ITimerCounter)
{
- // ストップ状態時のボタン
- Row(
+ // 計測ストップ状態時のボタン配置
+ Row(modifier = Modifier
+ .padding(horizontal = 10.dp)
+ .fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,
) {
//////////////////// 記録一覧画面へ遷移 ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { navController.navigate("RecordListScreen") },
enabled = true,
) {
}
//////////////////// カウンター表示の切り替え ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { timerCounter.toggleCounterMode() },
enabled = true
) {
}
//////////////////// カウンターのスタート ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { timerCounter.start() },
enabled = true
) {
}
}
+@OptIn(ExperimentalFoundationApi::class)
@Composable
fun BtnStart(timerCounter: ITimerCounter)
{
- // スタート状態時のボタン
- Row(
- horizontalArrangement = Arrangement.SpaceBetween
+ // タイム計測実行中時のボタン配置
+ Row(modifier = Modifier
+ .padding(horizontal = 10.dp)
+ .fillMaxWidth(),
+ horizontalArrangement = Arrangement.SpaceBetween,
) {
- //////////////////// カウンターのストップ ////////////////////
- IconButton(
- onClick = { timerCounter.stop() },
+ //////////////////// カウンターのストップ (長押し) ////////////////////
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black)
+ .combinedClickable(
+ enabled = true,
+ onClick = { },
+ onLongClick = {
+ Log.v("STOP", "STOP: onLongClick (2)")
+ timerCounter.stop()
+ }
+ ),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
+ onClick = { },
enabled = true
) {
Icon(
}
//////////////////// カウンター表示の切り替え ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { timerCounter.toggleCounterMode() },
enabled = true
) {
}
//////////////////// タイムスタンプ記録 ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { timerCounter.timeStamp() },
enabled = true
) {
@Composable
fun BtnFinished(navController: NavHostController, timerCounter: ITimerCounter)
{
- // カウントストップ時のボタン
- Row(
- horizontalArrangement = Arrangement.SpaceBetween
+ // 計測終了時のボタン
+ Row(modifier = Modifier
+ .padding(horizontal = 10.dp)
+ .fillMaxWidth(),
+ horizontalArrangement = Arrangement.SpaceBetween,
) {
//////////////////// 記録一覧画面へ遷移 ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { navController.navigate("RecordListScreen") },
enabled = true,
) {
}
//////////////////// カウンターのリセット ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { timerCounter.reset() },
enabled = true
) {
}
//////////////////// カウンターのスタート ////////////////////
- IconButton(
+ Button(
+ modifier = Modifier
+ .height(48.dp)
+ .width(48.dp)
+ .padding(2.dp)
+ .background(color = Color.Black),
+ shape = RoundedCornerShape(10.dp),
+ colors = ButtonDefaults.primaryButtonColors(backgroundColor = Color.Black),
onClick = { timerCounter.start() },
enabled = true
) {