Skip to content

Commit 78d7bba

Browse files
authored
Merge pull request #6 from hegocre/feature/rewrite
Allow portrait orientation
2 parents 3941dd1 + 7021188 commit 78d7bba

4 files changed

Lines changed: 57 additions & 32 deletions

File tree

gradle.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@
1818
# org.gradle.parallel=true
1919
android.enableJetifier=true
2020
android.useAndroidX=true
21-
android.enableR8.fullMode=true
21+
android.enableR8.fullMode=true
22+
org.gradle.unsafe.configuration-cache=true

mobile/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
applicationId "es.hegocre.scorecounter"
1111
minSdkVersion 24
1212
targetSdkVersion 33
13-
versionCode 311100001
14-
versionName "1.1.0"
13+
versionCode 311110000
14+
versionName "1.1.1"
1515
resConfigs 'ca', 'es', 'en'
1616
}
1717

mobile/src/main/AndroidManifest.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
android:name="es.hegocre.scorecounter.MainActivity"
1616
android:configChanges="orientation|screenSize|keyboardHidden"
1717
android:exported="true"
18-
android:screenOrientation="sensorLandscape"
1918
android:theme="@android:style/Theme.Material.Light.NoActionBar">
2019
<intent-filter>
2120
<action android:name="android.intent.action.MAIN" />

mobile/src/main/java/es/hegocre/scorecounter/MainActivity.kt

Lines changed: 53 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
package es.hegocre.scorecounter
22

33
import android.content.Context
4+
import android.content.res.Configuration
45
import android.os.Build
56
import android.os.Bundle
7+
import android.view.WindowManager
68
import androidx.activity.ComponentActivity
79
import androidx.activity.compose.setContent
810
import androidx.activity.viewModels
9-
import androidx.compose.foundation.background
1011
import androidx.compose.foundation.gestures.detectTapGestures
1112
import androidx.compose.foundation.isSystemInDarkTheme
1213
import androidx.compose.foundation.layout.*
@@ -21,6 +22,7 @@ import androidx.compose.ui.Modifier
2122
import androidx.compose.ui.geometry.Offset
2223
import androidx.compose.ui.graphics.Color
2324
import androidx.compose.ui.input.pointer.pointerInput
25+
import androidx.compose.ui.platform.LocalConfiguration
2426
import androidx.compose.ui.platform.LocalContext
2527
import androidx.compose.ui.res.stringResource
2628
import androidx.compose.ui.unit.dp
@@ -36,6 +38,10 @@ class MainActivity : ComponentActivity() {
3638
val scoreViewModel by viewModels<ScoreViewModel>()
3739

3840
WindowCompat.setDecorFitsSystemWindows(window, false)
41+
val rotationAnimation = WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE
42+
val winParams = window.attributes
43+
winParams.rotationAnimation = rotationAnimation
44+
window.attributes = winParams
3945

4046
setContent {
4147
val darkTheme = isSystemInDarkTheme()
@@ -60,33 +66,52 @@ class MainActivity : ComponentActivity() {
6066
)
6167
}
6268

63-
Row {
64-
ScoreView(
65-
score = scoreViewModel.score1,
66-
onScoreAdd = { scoreViewModel.score1++ },
67-
onScoreSub = { scoreViewModel.score1-- },
68-
onScoreReset = { scoreViewModel.score1 = 0 },
69-
modifier = Modifier
70-
.weight(1f)
71-
.fillMaxHeight()
72-
)
73-
Spacer(
74-
modifier = Modifier
75-
.fillMaxHeight()
76-
.width(4.dp)
77-
.background(MaterialTheme.colorScheme.onSurface)
78-
)
79-
ScoreView(
80-
score = scoreViewModel.score2,
81-
onScoreAdd = { scoreViewModel.score2++ },
82-
onScoreSub = { scoreViewModel.score2-- },
83-
onScoreReset = { scoreViewModel.score2 = 0 },
84-
modifier = Modifier
85-
.weight(1f)
86-
.fillMaxHeight()
87-
)
69+
val configuration = LocalConfiguration.current
70+
71+
if (configuration.orientation == Configuration.ORIENTATION_PORTRAIT) {
72+
Column {
73+
ScoreView(
74+
score = scoreViewModel.score1,
75+
onScoreAdd = { scoreViewModel.score1++ },
76+
onScoreSub = { scoreViewModel.score1-- },
77+
onScoreReset = { scoreViewModel.score1 = 0 },
78+
modifier = Modifier.weight(1f)
79+
)
80+
Divider(thickness = 4.dp, color = MaterialTheme.colorScheme.onSurface)
81+
ScoreView(
82+
score = scoreViewModel.score2,
83+
onScoreAdd = { scoreViewModel.score2++ },
84+
onScoreSub = { scoreViewModel.score2-- },
85+
onScoreReset = { scoreViewModel.score2 = 0 },
86+
modifier = Modifier.weight(1f)
87+
)
88+
}
89+
} else {
90+
Row {
91+
ScoreView(
92+
score = scoreViewModel.score1,
93+
onScoreAdd = { scoreViewModel.score1++ },
94+
onScoreSub = { scoreViewModel.score1-- },
95+
onScoreReset = { scoreViewModel.score1 = 0 },
96+
modifier = Modifier.weight(1f)
97+
)
98+
Divider(
99+
color = MaterialTheme.colorScheme.onSurface,
100+
modifier = Modifier
101+
.fillMaxHeight()
102+
.width(4.dp)
103+
)
104+
ScoreView(
105+
score = scoreViewModel.score2,
106+
onScoreAdd = { scoreViewModel.score2++ },
107+
onScoreSub = { scoreViewModel.score2-- },
108+
onScoreReset = { scoreViewModel.score2 = 0 },
109+
modifier = Modifier.weight(1f)
110+
)
111+
}
88112
}
89113

114+
90115
if (showTutorialDialog) {
91116
context.getSharedPreferences("preferences", Context.MODE_PRIVATE)
92117
.edit().putBoolean("isFirstLaunch", false).apply()
@@ -134,14 +159,14 @@ fun ScoreView(
134159
)
135160
Column(modifier = Modifier.fillMaxSize()) {
136161
Box(modifier = Modifier
137-
.fillMaxWidth()
162+
.fillMaxSize()
138163
.weight(1f)
139164
.pointerInput(Unit) {
140165
detectTapGestures(onTap = onScoreAdd, onLongPress = onScoreReset)
141166
}
142167
)
143168
Box(modifier = Modifier
144-
.fillMaxWidth()
169+
.fillMaxSize()
145170
.weight(1f)
146171
.pointerInput(Unit) {
147172
detectTapGestures(onTap = onScoreSub, onLongPress = onScoreReset)

0 commit comments

Comments
 (0)