Skip to content

Commit 5e66c38

Browse files
authored
Merge pull request #5 from armancodv/pro-version
pro version
2 parents a19128f + 817d6a1 commit 5e66c38

File tree

7 files changed

+104
-11
lines changed

7 files changed

+104
-11
lines changed

app/build.gradle

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,19 @@ android {
3939
buildFeatures {
4040
viewBinding true
4141
}
42+
43+
flavorDimensions 'default'
44+
productFlavors {
45+
free {
46+
dimension 'default'
47+
applicationId "com.armanco.integral"
48+
}
49+
pro {
50+
dimension 'default'
51+
applicationId "com.armanco.integral_pro"
52+
}
53+
}
54+
4255
}
4356

4457
dependencies {

app/src/main/java/com/armanco/integral/MainActivity.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.armanco.integral
22

33
import android.os.Bundle
4+
import android.view.View
45
import androidx.appcompat.app.AppCompatActivity
56
import androidx.navigation.findNavController
67
import androidx.navigation.fragment.NavHostFragment
78
import androidx.navigation.ui.AppBarConfiguration
89
import androidx.navigation.ui.setupWithNavController
10+
import com.armanco.integral.extensions.isPro
911
import com.google.android.gms.ads.AdRequest
1012
import com.google.android.gms.ads.MobileAds
1113
import dagger.hilt.android.AndroidEntryPoint
@@ -16,7 +18,8 @@ class MainActivity: AppCompatActivity() {
1618
override fun onCreate(savedInstanceState: Bundle?) {
1719
super.onCreate(savedInstanceState)
1820
setContentView(R.layout.activity_main)
19-
initAdMob()
21+
if(!isPro) initAdMob()
22+
else removeAdMob()
2023
initToolbar()
2124
}
2225

@@ -26,6 +29,10 @@ class MainActivity: AppCompatActivity() {
2629
adView?.loadAd(adRequest)
2730
}
2831

32+
private fun removeAdMob() {
33+
adView?.visibility = View.GONE
34+
}
35+
2936
private fun initToolbar() {
3037
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as? NavHostFragment
3138
navHostFragment?.navController?.let { navController ->
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.armanco.integral.extensions
2+
3+
import com.armanco.integral.BuildConfig
4+
5+
val isPro: Boolean
6+
get() {
7+
return when (BuildConfig.FLAVOR) {
8+
"pro" -> true
9+
else -> false
10+
}
11+
}

app/src/main/java/com/armanco/integral/navigation/image/ImageFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.os.Bundle
44
import android.view.View
55
import androidx.fragment.app.Fragment
66
import com.armanco.integral.R
7+
import com.armanco.integral.extensions.isPro
78
import com.google.android.gms.ads.AdListener
89
import com.google.android.gms.ads.AdRequest
910
import com.google.android.gms.ads.InterstitialAd
@@ -17,7 +18,7 @@ class ImageFragment: Fragment(R.layout.fragment_image) {
1718

1819
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
1920
super.onViewCreated(view, savedInstanceState)
20-
showInterstitialAd()
21+
if(!isPro) showInterstitialAd()
2122
arguments?.getInt(IMAGE_KEY)?.let { photoView?.setImageResource(it) }
2223
}
2324

fastlane/Fastfile

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ platform :android do
2828
)
2929
gradle(task: "test")
3030
gradle(
31-
task: 'assembleRelease',
31+
task: 'assembleFreeRelease',
3232
properties: {
3333
"android.injected.signing.store.file" => ENV['KEYSTORE_PATH'],
3434
"android.injected.signing.store.password" => ENV['STORE_PASSWORD'],
@@ -37,8 +37,9 @@ platform :android do
3737
}
3838
)
3939
upload_to_play_store(
40+
package_name: 'com.armanco.integral',
4041
track: 'production',
41-
apk: ENV['APK_PATH'],
42+
apk: ENV['APK_PATH_FREE'],
4243
json_key: ENV['JSON_PATH'],
4344
skip_upload_aab: true
4445
)
@@ -51,7 +52,7 @@ platform :android do
5152
)
5253
gradle(task: "test")
5354
gradle(
54-
task: 'assembleRelease',
55+
task: 'assembleFreeRelease',
5556
properties: {
5657
"android.injected.signing.store.file" => ENV['KEYSTORE_PATH'],
5758
"android.injected.signing.store.password" => ENV['STORE_PASSWORD'],
@@ -60,8 +61,58 @@ platform :android do
6061
}
6162
)
6263
upload_to_play_store(
64+
package_name: 'com.armanco.integral',
6365
track: 'internal',
64-
apk: ENV['APK_PATH'],
66+
apk: ENV['APK_PATH_FREE'],
67+
json_key: ENV['JSON_PATH'],
68+
skip_upload_aab: true
69+
)
70+
end
71+
72+
73+
desc "Deploy a new version to the Google Play (PRO)"
74+
lane :deploy_pro do
75+
validate_play_store_json_key(
76+
json_key: ENV['JSON_PATH']
77+
)
78+
gradle(task: "test")
79+
gradle(
80+
task: 'assembleProRelease',
81+
properties: {
82+
"android.injected.signing.store.file" => ENV['KEYSTORE_PATH'],
83+
"android.injected.signing.store.password" => ENV['STORE_PASSWORD'],
84+
"android.injected.signing.key.alias" => ENV['KEY_ALIAS'],
85+
"android.injected.signing.key.password" => ENV['KEY_PASSWORD'],
86+
}
87+
)
88+
upload_to_play_store(
89+
package_name: 'com.armanco.integral_pro',
90+
track: 'production',
91+
apk: ENV['APK_PATH_PRO'],
92+
json_key: ENV['JSON_PATH'],
93+
skip_upload_aab: true
94+
)
95+
end
96+
97+
desc "Submit a new Internal Test"
98+
lane :internal_pro do
99+
validate_play_store_json_key(
100+
json_key: ENV['JSON_PATH']
101+
)
102+
gradle(task: "test")
103+
gradle(
104+
task: 'assembleProRelease',
105+
properties: {
106+
"android.injected.signing.store.file" => ENV['KEYSTORE_PATH'],
107+
"android.injected.signing.store.password" => ENV['STORE_PASSWORD'],
108+
"android.injected.signing.key.alias" => ENV['KEY_ALIAS'],
109+
"android.injected.signing.key.password" => ENV['KEY_PASSWORD'],
110+
}
111+
)
112+
upload_to_play_store(
113+
package_name: 'com.armanco.integral_pro',
114+
track: 'internal',
115+
apk: ENV['APK_PATH_PRO'],
65116
json_key: ENV['JSON_PATH'],
66117
skip_upload_aab: true
67118
)

fastlane/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,16 @@ Deploy a new version to the Google Play
3131
fastlane android internal
3232
```
3333
Submit a new Internal Test
34+
### android deploy_pro
35+
```
36+
fastlane android deploy_pro
37+
```
38+
Deploy a new version to the Google Play (PRO)
39+
### android internal_pro
40+
```
41+
fastlane android internal_pro
42+
```
43+
Submit a new Internal Test
3444
### android screenshots
3545
```
3646
fastlane android screenshots

fastlane/report.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,27 @@
55

66

77

8-
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000394">
8+
<testcase classname="fastlane.lanes" name="0: default_platform" time="0.000369">
99

1010
</testcase>
1111

1212

13-
<testcase classname="fastlane.lanes" name="1: validate_play_store_json_key" time="0.110202">
13+
<testcase classname="fastlane.lanes" name="1: validate_play_store_json_key" time="0.125023">
1414

1515
</testcase>
1616

1717

18-
<testcase classname="fastlane.lanes" name="2: test" time="3.706068">
18+
<testcase classname="fastlane.lanes" name="2: test" time="44.471435">
1919

2020
</testcase>
2121

2222

23-
<testcase classname="fastlane.lanes" name="3: assembleRelease" time="6.255129">
23+
<testcase classname="fastlane.lanes" name="3: assembleProRelease" time="17.004816">
2424

2525
</testcase>
2626

2727

28-
<testcase classname="fastlane.lanes" name="4: upload_to_play_store" time="310.313027">
28+
<testcase classname="fastlane.lanes" name="4: upload_to_play_store" time="318.299384">
2929

3030
</testcase>
3131

0 commit comments

Comments
 (0)