Skip to content

Commit 304f3be

Browse files
authored
Merge branch 'feature/subscriptions' into alpha-development
2 parents 7f0e9bd + 63b12fc commit 304f3be

File tree

8 files changed

+83
-10
lines changed

8 files changed

+83
-10
lines changed

app/build.gradle

+8-2
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ android {
8787

8888
resValue "string", "analiticsapikey", "$System.env.GOOGLE_ANALITICS_ID"
8989
resValue "string", "google_maps_key", "$System.env.GOOGLEAPIKEY"
90+
resValue "string", "revenuecat_apikey", "$System.env.REVENUECATKEY"
9091
resValue "string", "app_name_domoticz", 'Domoticz'
9192
buildConfigField "boolean", "LITE_VERSION", "false"
9293
buildConfigField "boolean", "PAID_OOTT", "false"
@@ -109,6 +110,7 @@ android {
109110

110111
resValue "string", "analiticsapikey", "$System.env.GOOGLE_ANALITICS_ID"
111112
resValue "string", "google_maps_key", "$System.env.GOOGLEAPIKEY"
113+
resValue "string", "revenuecat_apikey", "$System.env.REVENUECATKEY"
112114
resValue "string", "app_name_domoticz", 'Domoticz Lite'
113115
buildConfigField "boolean", "LITE_VERSION", "true"
114116
buildConfigField "boolean", "PAID_OOTT", "false"
@@ -124,6 +126,7 @@ android {
124126
resValue "string", "ADMOB_COMP_KEY", "$System.env.ADMOB_COMP_KEY"
125127
resValue "string", "ADMOB_APP_KEY", "$System.env.ADMOBAPPKEY"
126128
resValue "string", "ADMOB_ADS_KEY", "$System.env.ADMOBADSKEY"
129+
resValue "string", "revenuecat_apikey", "$System.env.REVENUECATKEY"
127130

128131
resValue "string", "analiticsapikey", "$System.env.GOOGLE_ANALITICS_ID"
129132
resValue "string", "google_maps_key", "$System.env.GOOGLEAPIKEY"
@@ -142,6 +145,7 @@ android {
142145
resValue "string", "ADMOB_COMP_KEY", "$System.env.ADMOB_COMP_KEY"
143146
resValue "string", "ADMOB_APP_KEY", "$System.env.ADMOBAPPKEY"
144147
resValue "string", "ADMOB_ADS_KEY", "$System.env.ADMOBADSKEY"
148+
resValue "string", "revenuecat_apikey", "$System.env.REVENUECATKEY"
145149

146150
resValue "string", "analiticsapikey", "$System.env.GOOGLE_ANALITICS_ID"
147151
resValue "string", "google_maps_key", "$System.env.GOOGLEAPIKEY"
@@ -188,11 +192,12 @@ dependencies {
188192
implementation 'androidx.recyclerview:recyclerview:1.2.1'
189193
implementation 'androidx.cardview:cardview:1.0.0'
190194
implementation 'androidx.biometric:biometric:1.1.0'
191-
implementation 'com.google.android.material:material:1.5.0'
192-
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
195+
implementation 'com.google.android.material:material:1.6.0'
196+
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
193197
implementation 'androidx.annotation:annotation:1.3.0'
194198
implementation 'org.reactivestreams:reactive-streams:1.0.3'
195199
implementation 'io.reactivex.rxjava2:rxjava:2.2.10'
200+
implementation 'com.revenuecat.purchases:purchases:5.0.0-rc3'
196201

197202
implementation 'com.google.firebase:firebase-core:19.0.1'
198203
implementation 'com.google.firebase:firebase-iid:21.1.0'
@@ -201,6 +206,7 @@ dependencies {
201206
implementation "com.google.firebase:firebase-messaging:22.0.0"
202207
implementation "com.google.firebase:firebase-ads:19.8.0"
203208

209+
implementation 'com.google.android.ads.consent:consent-library:1.0.8'
204210
implementation "com.google.android.gms:play-services-analytics:17.0.1"
205211
implementation "com.google.android.gms:play-services-wearable:17.1.0"
206212
implementation "com.google.android.gms:play-services-maps:17.0.1"

app/proguard-rules.pro

+1
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@
1515
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
1616
# public *;
1717
#}
18+
-keep class com.revenuecat.purchases.** { *; }

app/src/free/AndroidManifest.xml

+12
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,31 @@
2424
package="nl.hnogames.domoticz">
2525

2626
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
27+
<uses-permission android:name="nl.hnogames.domoticz.premium.permission.MAPS_RECEIVE" />
2728
<uses-permission android:name="android.permission.VIBRATE" />
2829
<uses-permission android:name="android.permission.INTERNET" />
2930
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3031
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
3132
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
3233
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
34+
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
35+
<uses-permission android:name="android.permission.BLUETOOTH" />
36+
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
37+
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
3338
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3439
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
40+
<uses-permission android:name="android.permission.NFC" />
41+
<uses-permission android:name="android.permission.CAMERA" />
42+
<uses-permission android:name="android.permission.RECORD_AUDIO" />
43+
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
3544
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
3645
<uses-permission android:name="android.permission.WAKE_LOCK" />
3746
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
3847
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
3948
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
49+
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
50+
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
51+
<uses-permission android:name="com.android.vending.BILLING" />
4052

4153
<supports-screens
4254
android:anyDensity="true"

app/src/main/java/nl/hnogames/domoticz/app/AppController.java

+53
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import android.os.RemoteException;
3131
import android.preference.PreferenceManager;
3232
import android.util.Log;
33+
import android.widget.Toast;
3334

3435
import com.android.volley.DefaultRetryPolicy;
3536
import com.android.volley.Request;
@@ -42,6 +43,14 @@
4243
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
4344
import com.google.android.gms.common.GooglePlayServicesRepairableException;
4445
import com.google.android.gms.security.ProviderInstaller;
46+
import com.revenuecat.purchases.CustomerInfo;
47+
import com.revenuecat.purchases.EntitlementInfo;
48+
import com.revenuecat.purchases.EntitlementInfos;
49+
import com.revenuecat.purchases.Purchases;
50+
import com.revenuecat.purchases.PurchasesConfiguration;
51+
import com.revenuecat.purchases.PurchasesError;
52+
import com.revenuecat.purchases.interfaces.ReceiveCustomerInfoCallback;
53+
import com.revenuecat.purchases.interfaces.ReceivePurchaserInfoListener;
4554

4655
import org.altbeacon.beacon.BeaconConsumer;
4756
import org.altbeacon.beacon.BeaconManager;
@@ -62,10 +71,12 @@
6271
import javax.net.ssl.SSLContext;
6372
import javax.net.ssl.X509TrustManager;
6473

74+
import androidx.annotation.NonNull;
6575
import androidx.core.app.NotificationCompat;
6676
import androidx.multidex.MultiDex;
6777
import androidx.multidex.MultiDexApplication;
6878
import de.duenndns.ssl.MemorizingTrustManager;
79+
import nl.hnogames.domoticz.BuildConfig;
6980
import nl.hnogames.domoticz.MainActivity;
7081
import nl.hnogames.domoticz.R;
7182
import nl.hnogames.domoticz.containers.BeaconInfo;
@@ -103,6 +114,8 @@ public static synchronized AppController getInstance() {
103114
return mInstance;
104115
}
105116

117+
public static boolean IsPremiumEnabled = false;
118+
106119
@Override
107120
public void onCreate() {
108121
super.onCreate();
@@ -129,6 +142,46 @@ public void onCreate() {
129142
e.printStackTrace();
130143
}
131144
}
145+
146+
HandleSubscriptions();
147+
}
148+
149+
public void HandleSubscriptions(){
150+
Purchases.setDebugLogsEnabled(BuildConfig.DEBUG);
151+
String key = getString(R.string.revenuecat_apikey);
152+
153+
Purchases.configure(new PurchasesConfiguration.Builder(this, key).build());
154+
Purchases.getSharedInstance().getCustomerInfo(new ReceiveCustomerInfoCallback() {
155+
@Override
156+
public void onReceived(@NonNull CustomerInfo customerInfo) {
157+
if(BuildConfig.DEBUG)
158+
Toast.makeText(getApplicationContext(), "Customer info received", Toast.LENGTH_LONG).show();
159+
EntitlementInfos entitlements = customerInfo.getEntitlements();
160+
161+
if(entitlements == null)
162+
{
163+
if(BuildConfig.DEBUG)
164+
Toast.makeText(getApplicationContext(), "No entitlements received", Toast.LENGTH_LONG).show();
165+
return;
166+
}
167+
else {
168+
EntitlementInfo premium = entitlements.get("premium");
169+
if (premium !=null && premium.isActive()) {
170+
if(BuildConfig.DEBUG)
171+
Toast.makeText(getApplicationContext(), "premium is active", Toast.LENGTH_LONG).show();
172+
IsPremiumEnabled = true;
173+
} else {
174+
if(BuildConfig.DEBUG)
175+
Toast.makeText(getApplicationContext(), "premium is not active", Toast.LENGTH_LONG).show();
176+
}
177+
}
178+
}
179+
180+
@Override
181+
public void onError(@NonNull PurchasesError purchasesError) {
182+
Toast.makeText(getApplicationContext(), purchasesError.getMessage(), Toast.LENGTH_LONG).show();
183+
}
184+
});
132185
}
133186

134187
public void StopBeaconScanning() {

app/src/paid/AndroidManifest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
4949
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
5050
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
51+
<uses-permission android:name="com.android.vending.BILLING" />
5152

5253
<supports-screens
5354
android:anyDensity="true"

app/version.properties

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Wed May 25 20:27:32 CEST 2022
2-
VERSION_BUILD=8770
3-
VERSION_CODE=620
1+
#Tue May 24 20:09:27 CEST 2022
2+
VERSION_BUILD=8783
3+
VERSION_CODE=625
44
VERSION_PATCH=320

build.gradle

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ buildscript {
1313

1414
//noinspection GroovyAssignabilityCheck
1515
dependencies {
16-
classpath 'com.android.tools.build:gradle:7.0.1'
17-
classpath 'com.google.gms:google-services:4.3.4'
18-
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.5.2'
16+
classpath 'com.android.tools.build:gradle:7.0.4'
17+
classpath 'com.google.gms:google-services:4.3.10'
18+
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
1919
}
2020
}
2121

domoticzapi/version.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#Wed May 25 20:27:32 CEST 2022
1+
#Tue May 24 20:09:27 CEST 2022
22
VERSION_BUILD=3675
33
VERSION_CODE=254
4-
VERSION_PATCH=254
4+
VERSION_PATCH=254

0 commit comments

Comments
 (0)