Skip to content

Commit d2cbeb7

Browse files
Merge pull request #63 from MihaiCristianCondrea/codex/refactor-supportrepository-and-decouple-ui-dependencies
Refactor support repository into data layer
2 parents 9522040 + 37eda18 commit d2cbeb7

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.d4rk.androidtutorials.java.ui.screens.support.repository;
1+
package com.d4rk.androidtutorials.java.data.repository;
22

33
import android.content.Context;
44

@@ -12,6 +12,8 @@
1212
import com.android.billingclient.api.ProductDetails;
1313
import com.android.billingclient.api.QueryProductDetailsParams;
1414
import com.d4rk.androidtutorials.java.data.model.AdLoadParams;
15+
import com.d4rk.androidtutorials.java.data.repository.SupportRepository.BillingFlowLauncher;
16+
import com.d4rk.androidtutorials.java.data.repository.SupportRepository.OnProductDetailsListener;
1517
import com.google.android.gms.ads.AdRequest;
1618
import com.google.android.gms.ads.MobileAds;
1719

@@ -21,13 +23,13 @@
2123
import java.util.List;
2224
import java.util.Map;
2325

24-
public class SupportRepository implements com.d4rk.androidtutorials.java.data.repository.SupportRepository {
26+
public class DefaultSupportRepository implements SupportRepository {
2527

2628
private final Context context;
2729
private final Map<String, ProductDetails> productDetailsMap = new HashMap<>();
2830
private BillingClient billingClient;
2931

30-
public SupportRepository(Context context) {
32+
public DefaultSupportRepository(Context context) {
3133
this.context = context.getApplicationContext();
3234
}
3335

@@ -73,7 +75,7 @@ public void onBillingServiceDisconnected() {
7375
* Query your product details for in-app items.
7476
* Typically called after billing client is connected.
7577
*/
76-
public void queryProductDetails(List<String> productIds, com.d4rk.androidtutorials.java.data.repository.SupportRepository.OnProductDetailsListener listener) {
78+
public void queryProductDetails(List<String> productIds, OnProductDetailsListener listener) {
7779
if (billingClient == null || !billingClient.isReady()) {
7880
return;
7981
}
@@ -119,7 +121,7 @@ public void queryProductDetails(List<String> productIds, com.d4rk.androidtutoria
119121
/**
120122
* Launch the billing flow for a particular product.
121123
*/
122-
public void initiatePurchase(String productId, com.d4rk.androidtutorials.java.data.repository.SupportRepository.BillingFlowLauncher launcher) {
124+
public void initiatePurchase(String productId, BillingFlowLauncher launcher) {
123125
ProductDetails details = productDetailsMap.get(productId);
124126
if (details != null && billingClient != null && launcher != null) {
125127
// Note: In a real app, you would select a specific offer. For simplicity,

app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
import com.d4rk.androidtutorials.java.data.repository.DefaultHomeRepository;
99
import com.d4rk.androidtutorials.java.data.repository.DefaultMainRepository;
1010
import com.d4rk.androidtutorials.java.data.repository.DefaultQuizRepository;
11+
import com.d4rk.androidtutorials.java.data.repository.DefaultSupportRepository;
1112
import com.d4rk.androidtutorials.java.data.repository.HomeRepository;
1213
import com.d4rk.androidtutorials.java.data.repository.MainRepository;
1314
import com.d4rk.androidtutorials.java.data.repository.QuizRepository;
15+
import com.d4rk.androidtutorials.java.data.repository.SupportRepository;
1416
import com.d4rk.androidtutorials.java.data.source.DefaultHomeLocalDataSource;
1517
import com.d4rk.androidtutorials.java.data.source.DefaultHomeRemoteDataSource;
1618
import com.d4rk.androidtutorials.java.data.source.DefaultQuizLocalDataSource;
@@ -46,7 +48,6 @@
4648
import com.d4rk.androidtutorials.java.ui.screens.help.repository.HelpRepository;
4749
import com.d4rk.androidtutorials.java.ui.screens.settings.repository.SettingsRepository;
4850
import com.d4rk.androidtutorials.java.ui.screens.startup.repository.StartupRepository;
49-
import com.d4rk.androidtutorials.java.ui.screens.support.repository.SupportRepository;
5051

5152
import java.util.concurrent.ExecutorService;
5253
import java.util.concurrent.Executors;
@@ -228,7 +229,7 @@ public LoadConsentFormUseCase provideLoadConsentFormUseCase(StartupRepository re
228229
@Provides
229230
@Singleton
230231
public SupportRepository provideSupportRepository(Application application) {
231-
return new SupportRepository(application);
232+
return new DefaultSupportRepository(application);
232233
}
233234

234235
@Provides

0 commit comments

Comments
 (0)