Skip to content

Commit fb0b8f8

Browse files
authored
Merge pull request #464 from lucasnlm/fix-firebase
Fix firebase OOM
2 parents d284533 + 4a4ca3c commit fb0b8f8

File tree

43 files changed

+300
-178
lines changed

Some content is hidden

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

43 files changed

+300
-178
lines changed

about/build.gradle

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,8 @@ android {
2323
}
2424

2525
compileOptions {
26-
sourceCompatibility JavaVersion.VERSION_17
27-
targetCompatibility JavaVersion.VERSION_17
28-
}
29-
30-
kotlin {
31-
jvmToolchain(17)
26+
sourceCompatibility = JavaVersion.VERSION_17
27+
targetCompatibility = JavaVersion.VERSION_17
3228
}
3329

3430
buildFeatures {
@@ -47,11 +43,11 @@ dependencies {
4743
implementation project(':external')
4844

4945
// Google
50-
implementation 'com.google.android.material:material:1.9.0'
46+
implementation 'com.google.android.material:material:1.10.0'
5147

5248
// AndroidX
5349
implementation 'androidx.appcompat:appcompat:1.6.1'
54-
implementation 'androidx.activity:activity-ktx:1.7.2'
50+
implementation 'androidx.activity:activity-ktx:1.8.0'
5551
implementation 'androidx.fragment:fragment-ktx:1.6.1'
5652

5753
// RecyclerView

about/src/main/java/dev/lucasnlm/antimine/licenses/views/LicensesFragment.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import com.google.android.material.divider.MaterialDividerItemDecoration
1111
import dev.lucasnlm.antimine.about.R
1212
import dev.lucasnlm.antimine.about.databinding.FragmentLicensesBinding
1313
import dev.lucasnlm.antimine.licenses.viewmodel.LicenseViewModel
14+
import kotlinx.coroutines.launch
1415
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
1516

1617
class LicensesFragment : Fragment(R.layout.fragment_licenses) {
@@ -21,7 +22,7 @@ class LicensesFragment : Fragment(R.layout.fragment_licenses) {
2122
inflater: LayoutInflater,
2223
container: ViewGroup?,
2324
savedInstanceState: Bundle?,
24-
): View? {
25+
): View {
2526
binding = FragmentLicensesBinding.inflate(inflater, container, false)
2627
return binding.root
2728
}
@@ -32,7 +33,7 @@ class LicensesFragment : Fragment(R.layout.fragment_licenses) {
3233
) {
3334
super.onViewCreated(view, savedInstanceState)
3435

35-
lifecycleScope.launchWhenResumed {
36+
lifecycleScope.launch {
3637
viewModel
3738
.observeState()
3839
.collect {

app/build.gradle

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
1-
apply plugin: 'com.android.application'
2-
3-
if (System.getenv('IS_GOOGLE_BUILD')) {
4-
apply plugin: 'com.google.gms.google-services'
5-
apply plugin: 'com.google.firebase.crashlytics'
6-
apply plugin: 'com.google.firebase.firebase-perf'
1+
plugins {
2+
id 'com.android.application'
3+
id('kotlin-android')
74
}
85

9-
apply plugin: 'kotlin-android'
10-
apply plugin: 'kotlin-kapt'
11-
126
android {
137
namespace 'dev.lucasnlm.antimine'
148

159
defaultConfig {
1610
// versionCode and versionName must be hardcoded to support F-droid
17-
versionCode 1705001
18-
versionName '17.5.0'
11+
versionCode 1705011
12+
versionName '17.5.1'
1913
minSdk 21
2014
targetSdk 34
2115
compileSdk 34
@@ -56,8 +50,8 @@ android {
5650
}
5751

5852
compileOptions {
59-
targetCompatibility JavaVersion.VERSION_17
60-
sourceCompatibility JavaVersion.VERSION_17
53+
targetCompatibility = JavaVersion.VERSION_17
54+
sourceCompatibility = JavaVersion.VERSION_17
6155
}
6256

6357
kotlinOptions {
@@ -77,13 +71,21 @@ android {
7771
dimension 'version'
7872
applicationId 'dev.lucasnlm.antimine'
7973
versionNameSuffix ' S'
74+
75+
apply plugin: 'com.google.gms.google-services'
76+
apply plugin: 'com.google.firebase.crashlytics'
77+
apply plugin: 'com.google.firebase.firebase-perf'
8078
}
8179

8280
googleInstant {
8381
versionCode 160
8482
dimension 'version'
8583
applicationId 'dev.lucasnlm.antimine'
8684
versionNameSuffix ' I'
85+
86+
apply plugin: 'com.google.gms.google-services'
87+
apply plugin: 'com.google.firebase.crashlytics'
88+
apply plugin: 'com.google.firebase.firebase-perf'
8789
}
8890

8991
foss {
@@ -95,10 +97,6 @@ android {
9597
}
9698
}
9799

98-
kapt {
99-
correctErrorTypes true
100-
}
101-
102100
dependencies {
103101
// Dependencies must be hardcoded to support F-droid
104102

@@ -129,7 +127,7 @@ dependencies {
129127
implementation 'androidx.preference:preference-ktx:1.2.1'
130128
implementation 'androidx.recyclerview:recyclerview:1.3.1'
131129
implementation 'androidx.multidex:multidex:2.0.1'
132-
implementation 'androidx.activity:activity-ktx:1.7.2'
130+
implementation 'androidx.activity:activity-ktx:1.8.0'
133131
implementation 'androidx.fragment:fragment-ktx:1.6.1'
134132

135133
// Lifecycle
@@ -142,7 +140,7 @@ dependencies {
142140
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
143141

144142
// Google
145-
implementation 'com.google.android.material:material:1.9.0'
143+
implementation 'com.google.android.material:material:1.10.0'
146144

147145
// Koin
148146
implementation 'io.insert-koin:koin-android:3.1.2'
@@ -188,3 +186,17 @@ tasks.withType(Test).configureEach {
188186
println "Executing test ${desc.name} [${desc.className}] with result: ${result.resultType}"
189187
}
190188
}
189+
190+
// The following code disables Google Services when building for F-Droid
191+
if (System.getenv('IS_GOOGLE_BUILD') == null) {
192+
android.applicationVariants.configureEach { variant ->
193+
if (variant.flavorName == 'foss') {
194+
project.tasks.names.findAll { it.contains("Google") }
195+
.forEach { taskName ->
196+
project.tasks.named(taskName).configure {
197+
enabled = false
198+
}
199+
}
200+
}
201+
}
202+
}

app/proguard-rules.pro

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
-dontwarn org.openjsse.**
3434

3535
# For Google Play Services
36+
-keepattributes Signature
37+
-keep class com.google.android.gms.** { *; }
3638
-keep class io.grpc.** {*;}
3739
-keep public class com.google.android.gms.ads.** {
3840
public *;
@@ -54,8 +56,11 @@
5456
-dontwarn sun.nio.ch.**
5557
-dontwarn sun.misc.**
5658

57-
# LibGDX
59+
# Firebase
60+
-keep class com.google.android.gms.** { *; }
61+
-keep class com.google.firebase.** { *; }
5862

63+
# LibGDX
5964
-keep class com.badlogic.gdx.scenes.** { *; }
6065

6166
-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,10 @@ class GameActivity :
118118
override fun onCreate(savedInstanceState: Bundle?) {
119119
super.onCreate(savedInstanceState)
120120

121+
themeRepository.getTheme().palette.background.toAndroidColor().let {
122+
window.decorView.setBackgroundColor(it)
123+
}
124+
121125
setContentView(binding.root)
122126

123127
if (!preferencesRepository.isPremiumEnabled()) {
@@ -126,9 +130,15 @@ class GameActivity :
126130

127131
bindViewModel()
128132
bindToolbar()
129-
loadGameOrTutorial()
130133
bindTapToBegin()
131134

135+
lifecycleScope.launch {
136+
delay(100)
137+
withContext(Dispatchers.Main) {
138+
loadGameOrTutorial()
139+
}
140+
}
141+
132142
playGamesManager.showPlayPopUp(this)
133143
playGamesStartUp()
134144

app/src/test/java/dev/lucasnlm/antimine/mocks/MockPreferencesRepository.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package dev.lucasnlm.antimine.mocks
22

33
import dev.lucasnlm.antimine.preferences.PreferencesRepository
4+
import dev.lucasnlm.antimine.preferences.models.Action
45
import dev.lucasnlm.antimine.preferences.models.ControlStyle
56
import dev.lucasnlm.antimine.preferences.models.Minefield
67

@@ -296,4 +297,10 @@ class MockPreferencesRepository : PreferencesRepository {
296297
override fun setLastAppVersion(versionCode: Int) {
297298
// Not implemented
298299
}
300+
301+
override fun defaultSwitchButton(): Action = Action.SwitchMark
302+
303+
override fun setDefaultSwitchButton(action: Action) {
304+
// Not implemented
305+
}
299306
}

audio-low/build.gradle

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@ android {
2020
}
2121

2222
compileOptions {
23-
sourceCompatibility JavaVersion.VERSION_17
24-
targetCompatibility JavaVersion.VERSION_17
23+
sourceCompatibility = JavaVersion.VERSION_17
24+
targetCompatibility = JavaVersion.VERSION_17
2525
}
2626

27-
kotlin {
28-
jvmToolchain(17)
29-
}
27+
3028
}
3129

3230
dependencies {}

audio/build.gradle

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@ android {
2020
}
2121

2222
compileOptions {
23-
sourceCompatibility JavaVersion.VERSION_17
24-
targetCompatibility JavaVersion.VERSION_17
23+
sourceCompatibility = JavaVersion.VERSION_17
24+
targetCompatibility = JavaVersion.VERSION_17
2525
}
2626

27-
kotlin {
28-
jvmToolchain(17)
29-
}
27+
3028
}
3129

3230
dependencies {}

build.gradle

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
1-
buildscript {
2-
repositories {
3-
mavenCentral()
4-
google()
5-
}
6-
7-
dependencies {
8-
classpath 'com.android.tools.build:gradle:8.1.2'
9-
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.10'
1+
plugins {
2+
id('com.android.application') version '8.1.2' apply false
3+
id('com.android.library') version '8.1.2' apply false
4+
id('org.jetbrains.kotlin.android') version '1.9.10' apply false
105

11-
if (System.getenv('IS_GOOGLE_BUILD')) {
12-
classpath 'com.google.gms:google-services:4.4.0'
13-
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
14-
classpath 'com.google.firebase:perf-plugin:1.4.2'
15-
}
16-
}
6+
id('com.google.gms.google-services') version '4.4.0' apply false
7+
id('com.google.firebase.crashlytics') version '2.9.9' apply false
8+
id('com.google.firebase.firebase-perf') version '1.4.2' apply false
179
}
1810

1911
allprojects {

common/build.gradle

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
plugins {
22
id 'com.android.library'
33
id 'kotlin-android'
4-
id 'kotlin-kapt'
54
}
65

76
android {
@@ -16,8 +15,8 @@ android {
1615
}
1716

1817
compileOptions {
19-
sourceCompatibility JavaVersion.VERSION_17
20-
targetCompatibility JavaVersion.VERSION_17
18+
sourceCompatibility = JavaVersion.VERSION_17
19+
targetCompatibility = JavaVersion.VERSION_17
2120
}
2221

2322
kotlinOptions {
@@ -30,10 +29,6 @@ android {
3029
}
3130
}
3231

33-
kapt {
34-
correctErrorTypes true
35-
}
36-
3732
dependencies {
3833
// Dependencies must be hardcoded to support F-droid
3934

@@ -45,17 +40,17 @@ dependencies {
4540
implementation project(':ui')
4641
implementation project(':gdx')
4742
implementation project(':sgtatham')
48-
implementation project(':sgtatham')
43+
implementation project(':control')
4944

5045
// AndroidX
5146
implementation 'androidx.appcompat:appcompat:1.6.1'
5247
implementation 'androidx.preference:preference-ktx:1.2.1'
5348
implementation 'androidx.recyclerview:recyclerview:1.3.1'
54-
implementation 'androidx.activity:activity-ktx:1.7.2'
49+
implementation 'androidx.activity:activity-ktx:1.8.0'
5550
implementation 'androidx.fragment:fragment-ktx:1.6.1'
5651

5752
// Google
58-
implementation 'com.google.android.material:material:1.9.0'
53+
implementation 'com.google.android.material:material:1.10.0'
5954

6055
// Constraint
6156
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

0 commit comments

Comments
 (0)