Skip to content

Commit dd462a3

Browse files
authored
Merge pull request #485 from lucasnlm/bump-gdx
Add Android Auto support
2 parents 49840ac + bd6cf4c commit dd462a3

File tree

58 files changed

+550
-212
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+550
-212
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ Feel free to contribute with [issues](https://github.com/lucasnlm/antimine-andro
3636
## Features
3737

3838
- Support to [Android Wear OS](https://developer.android.com/wear)
39+
- Support to [Android Auto](https://www.android.com/auto/)
3940
- No guessing algorithm
4041
- Multiple themes colors (including dynamic colors and AMOLED)
4142
- Multiple skins (including the classic)

about/src/main/res/layout/activity_container.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
xmlns:app="http://schemas.android.com/apk/res-auto"
44
android:layout_width="match_parent"
55
android:layout_height="match_parent"
6+
android:paddingVertical="@dimen/root_vertical_spacing"
7+
android:paddingHorizontal="@dimen/root_horizontal_spacing"
68
android:fitsSystemWindows="true">
79

810
<com.google.android.material.appbar.MaterialToolbar

about/src/main/res/layout/fragment_about_info.xml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,16 @@
55
android:layout_width="match_parent"
66
android:layout_height="match_parent"
77
android:fitsSystemWindows="true"
8-
android:paddingHorizontal="@dimen/main_activity_padding"
8+
android:paddingHorizontal="@dimen/root_horizontal_spacing"
99
tools:context="dev.lucasnlm.antimine.about.AboutActivity">
1010

1111
<LinearLayout
1212
android:id="@+id/version_layout"
1313
android:layout_width="wrap_content"
14-
android:layout_height="wrap_content"
15-
android:gravity="center_horizontal"
14+
android:layout_height="0dp"
15+
android:gravity="center"
1616
android:orientation="vertical"
17-
app:layout_constraintBottom_toTopOf="@+id/buttons"
17+
app:layout_constraintBottom_toTopOf="@+id/musicCard"
1818
app:layout_constraintEnd_toEndOf="parent"
1919
app:layout_constraintHorizontal_bias="0.5"
2020
app:layout_constraintStart_toStartOf="parent"
@@ -39,6 +39,7 @@
3939
android:textAllCaps="true"
4040
android:textAppearance="?android:attr/textAppearanceMedium"
4141
android:textColor="?android:attr/textColorPrimary"
42+
android:textSize="@dimen/base_font_size"
4243
android:textStyle="bold" />
4344

4445
<TextView
@@ -47,6 +48,7 @@
4748
android:layout_height="wrap_content"
4849
android:textAppearance="?android:attr/textAppearanceMedium"
4950
android:textColor="?android:attr/textColorPrimary"
51+
android:textSize="@dimen/base_font_size"
5052
tools:text="Version 7.1.0" />
5153

5254
<TextView
@@ -55,6 +57,7 @@
5557
android:layout_height="wrap_content"
5658
android:text="Instant Build"
5759
android:textColor="?android:attr/textColorSecondary"
60+
android:textSize="@dimen/base_font_size"
5861
tools:ignore="HardcodedText" />
5962
</LinearLayout>
6063

about/src/main/res/layout/fragment_licenses.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
android:layout_width="match_parent"
66
android:layout_height="match_parent"
77
android:fitsSystemWindows="false"
8+
android:paddingVertical="@dimen/root_vertical_spacing"
9+
android:paddingHorizontal="@dimen/root_horizontal_spacing"
810
tools:context="dev.lucasnlm.antimine.licenses.LicenseActivity">
911

1012
<androidx.recyclerview.widget.RecyclerView

about/src/main/res/layout/view_third_party.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
android:padding="16dp"
1515
android:textColor="?android:attr/textColorSecondary"
1616
android:textStyle="bold"
17+
android:textSize="@dimen/base_font_size"
1718
app:layout_constraintEnd_toEndOf="parent"
1819
app:layout_constraintStart_toStartOf="parent"
1920
app:layout_constraintTop_toTopOf="parent"

app/build.gradle.kts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ android {
1313

1414
defaultConfig {
1515
// versionCode and versionName must be hardcoded to support F-droid
16-
versionCode = 1706001
17-
versionName = "17.6.0"
16+
versionCode = 1706031
17+
versionName = "17.6.3"
1818
minSdk = libs.versions.minSdk.get().toInt()
1919
targetSdk = libs.versions.targetSdk.get().toInt()
2020
compileSdk = libs.versions.compileSdk.get().toInt()
@@ -90,7 +90,7 @@ android {
9090
}
9191

9292
create("googleInstant") {
93-
versionCode = 163
93+
versionCode = 164
9494
dimension = "version"
9595
applicationId = "dev.lucasnlm.antimine"
9696
versionNameSuffix = " I"
@@ -100,6 +100,17 @@ android {
100100
}
101101
}
102102

103+
create("auto") {
104+
dimension = "version"
105+
applicationId = "dev.lucasnlm.antimine"
106+
versionNameSuffix = " C"
107+
108+
if (isGoogleBuild) {
109+
plugins.apply("com.google.gms.google-services")
110+
plugins.apply("com.bugsnag.android.gradle")
111+
}
112+
}
113+
103114
create("foss") {
104115
dimension = "version"
105116
// There"s a typo on F-Droid release :(
@@ -114,6 +125,7 @@ android {
114125
}
115126

116127
val googleImplementation by configurations
128+
val autoImplementation by configurations
117129
val googleInstantImplementation by configurations
118130
val fossImplementation by configurations
119131

@@ -131,11 +143,14 @@ dependencies {
131143
implementation(project(":gdx"))
132144

133145
googleImplementation(project(":proprietary"))
146+
autoImplementation(project(":proprietary"))
134147
googleInstantImplementation(project(":proprietary"))
135148
googleInstantImplementation(project(":instant"))
136149
fossImplementation(project(":foss"))
137150
fossImplementation(project(":donation"))
138151

152+
autoImplementation(project(":audio"))
153+
autoImplementation(project(":auto"))
139154
googleImplementation(project(":audio"))
140155
fossImplementation(project(":audio"))
141156
googleInstantImplementation(project(":audio-low"))

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
android:hardwareAccelerated="true"
3939
android:icon="@mipmap/ic_launcher"
4040
android:isGame="true"
41+
android:appCategory="game"
4142
android:label="@string/app_name"
4243
android:localeConfig="@xml/locales_config"
4344
android:roundIcon="@mipmap/ic_launcher_round"

app/src/main/java/dev/lucasnlm/antimine/GameActivity.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import androidx.lifecycle.lifecycleScope
2222
import com.badlogic.gdx.backends.android.AndroidFragmentApplication
2323
import com.google.android.material.dialog.MaterialAlertDialogBuilder
2424
import com.google.android.material.snackbar.Snackbar
25+
import dev.lucasnlm.antimine.common.auto.AutoExt.isAndroidAuto
2526
import dev.lucasnlm.antimine.common.level.view.GameRenderFragment
2627
import dev.lucasnlm.antimine.common.level.viewmodel.GameEvent
2728
import dev.lucasnlm.antimine.common.level.viewmodel.GameViewModel
@@ -789,7 +790,7 @@ class GameActivity :
789790
}
790791

791792
lifecycleScope.launch {
792-
if (preferencesRepository.showTutorialDialog()) {
793+
if (preferencesRepository.showTutorialDialog() && !isAndroidAuto()) {
793794
val firstLocale = ConfigurationCompat.getLocales(resources.configuration).get(0)
794795
val lang = firstLocale?.language
795796

app/src/main/java/dev/lucasnlm/antimine/MainApplication.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package dev.lucasnlm.antimine
33
import androidx.multidex.MultiDexApplication
44
import com.badlogic.gdx.utils.GdxNativesLoader
55
import com.google.android.material.color.DynamicColors
6+
import dev.lucasnlm.antimine.common.auto.AutoExt.isAndroidAuto
67
import dev.lucasnlm.antimine.common.io.di.CommonIoModule
78
import dev.lucasnlm.antimine.common.level.di.LevelModule
89
import dev.lucasnlm.antimine.core.di.CommonModule
@@ -55,7 +56,11 @@ open class MainApplication : MultiDexApplication() {
5556
if (featureFlagManager.isFoss) {
5657
preferencesRepository.setPremiumFeatures(true)
5758
} else {
58-
adsManager.start(this)
59+
if (applicationContext.isAndroidAuto()) {
60+
preferencesRepository.setPremiumFeatures(true)
61+
} else {
62+
adsManager.start(this)
63+
}
5964
}
6065

6166
val lastAppVersion = preferencesRepository.lastAppVersion()

app/src/main/java/dev/lucasnlm/antimine/main/MainActivity.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import androidx.lifecycle.lifecycleScope
1212
import dev.lucasnlm.antimine.GameActivity
1313
import dev.lucasnlm.antimine.R
1414
import dev.lucasnlm.antimine.about.AboutActivity
15+
import dev.lucasnlm.antimine.common.auto.AutoExt.isAndroidAuto
1516
import dev.lucasnlm.antimine.common.io.models.SaveStatus
1617
import dev.lucasnlm.antimine.common.level.repository.MinefieldRepository
1718
import dev.lucasnlm.antimine.common.level.repository.SavesRepository
@@ -284,7 +285,7 @@ class MainActivity : ThemedActivity() {
284285
startActivity(intent)
285286
}
286287

287-
if (playGamesManager.hasGooglePlayGames()) {
288+
if (playGamesManager.hasGooglePlayGames() && !isAndroidAuto()) {
288289
binding.playGames.setOnClickListener {
289290
soundManager.playClickSound()
290291
analyticsManager.sentEvent(Analytics.OpenGooglePlayGames)
@@ -384,7 +385,8 @@ class MainActivity : ThemedActivity() {
384385
private fun launchGooglePlayGames() {
385386
if (playGamesManager.hasGooglePlayGames() &&
386387
playGamesManager.shouldRequestLogin() &&
387-
preferenceRepository.keepRequestPlayGames()
388+
preferenceRepository.keepRequestPlayGames() &&
389+
!isAndroidAuto()
388390
) {
389391
playGamesManager.keepRequestingLogin(false)
390392

0 commit comments

Comments
 (0)