Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cfd49ec

Browse files
Merge pull request #209 from MihaiCristianCondrea/codex/fix-fixme-comments-safely
Resolve FIXMEs and wire startup, consent, and support utilities
2 parents 6f39181 + 42264b8 commit cfd49ec

File tree

11 files changed

+83
-18
lines changed

11 files changed

+83
-18
lines changed

‎app/src/main/java/com/d4rk/androidtutorials/java/data/repository/DefaultSupportRepository.java‎

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,15 @@ public BillingFlowLauncher initiatePurchase(String productId) {
127127
}
128128

129129
String finalOfferToken = offerToken;
130+
BillingFlowParams.ProductDetailsParams.Builder paramsBuilder =
131+
BillingFlowParams.ProductDetailsParams.newBuilder()
132+
.setProductDetails(details);
133+
if (finalOfferToken != null && !finalOfferToken.isEmpty()) {
134+
paramsBuilder.setOfferToken(finalOfferToken);
135+
}
136+
130137
List<BillingFlowParams.ProductDetailsParams> productDetailsParamsList =
131-
Collections.singletonList(
132-
BillingFlowParams.ProductDetailsParams.newBuilder()
133-
.setProductDetails(details)
134-
.setOfferToken(finalOfferToken) // FIXME: Argument 'finalOfferToken' might be null
135-
.build()
136-
);
138+
Collections.singletonList(paramsBuilder.build());
137139

138140
BillingFlowParams flowParams = BillingFlowParams.newBuilder()
139141
.setProductDetailsParamsList(productDetailsParamsList)

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/components/navigation/BottomSheetMenuFragment.java‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.d4rk.androidtutorials.java.R;
1414
import com.d4rk.androidtutorials.java.databinding.DialogBottomSheetMenuBinding;
1515
import com.d4rk.androidtutorials.java.ui.screens.settings.SettingsActivity;
16+
import com.d4rk.androidtutorials.java.utils.ReviewHelper;
1617
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
1718

1819
public class BottomSheetMenuFragment extends BottomSheetDialogFragment {
@@ -52,6 +53,11 @@ public View onCreateView(@NonNull LayoutInflater inflater,
5253
dismiss();
5354
});
5455

56+
binding.menuRate.setOnClickListener(v -> {
57+
ReviewHelper.forceLaunchInAppReview(requireActivity());
58+
dismiss();
59+
});
60+
5561
binding.menuShare.setOnClickListener(v -> {
5662
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
5763
sharingIntent.setType("text/plain");

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java‎

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,19 +104,27 @@ protected void onCreate(Bundle savedInstanceState) {
104104
}
105105
}
106106
);
107+
mainViewModel = new ViewModelProvider(this).get(MainViewModel.class);
108+
107109
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
108-
if (!prefs.getBoolean(getString(R.string.key_onboarding_complete), false)) {
110+
boolean onboardingComplete = prefs.getBoolean(getString(R.string.key_onboarding_complete), false);
111+
boolean shouldShowStartup = mainViewModel.shouldShowStartupScreen();
112+
if (!onboardingComplete) {
113+
if (shouldShowStartup) {
114+
mainViewModel.markStartupScreenShown();
115+
}
109116
startActivity(new Intent(this, StartupActivity.class));
110117
finish();
111118
return;
112119
}
120+
if (shouldShowStartup) {
121+
mainViewModel.markStartupScreenShown();
122+
}
113123
mBinding = ActivityMainBinding.inflate(getLayoutInflater());
114124
setContentView(mBinding.getRoot());
115125

116126
StartupInitializer.schedule(this);
117127

118-
mainViewModel = new ViewModelProvider(this).get(MainViewModel.class);
119-
120128
// Fallback: show the consent form again if required.
121129
ConsentInformation consentInformation = UserMessagingPlatform.getConsentInformation(this);
122130
if (consentInformation.getConsentStatus() == ConsentInformation.ConsentStatus.REQUIRED) {

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainViewModel.java‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,14 @@ public void applySettings(String[] themeValues,
9999
/**
100100
* Checks if we need to show the startup screen.
101101
*/
102-
public boolean shouldShowStartupScreen() {// FIXME: Method 'shouldShowStartupScreen()' is never used
102+
public boolean shouldShowStartupScreen() {
103103
return shouldShowStartupScreenUseCase.invoke();
104104
}
105105

106106
/**
107107
* Mark startup screen as shown.
108108
*/
109-
public void markStartupScreenShown() {// FIXME: Method 'markStartupScreenShown()' is never used
109+
public void markStartupScreenShown() {
110110
markStartupScreenShownUseCase.invoke();
111111
}
112112

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/SettingsActivity.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ public CharSequence provideSummary(ListPreference preference) {
6565
return null;
6666
}
6767

68+
public SettingsViewModel getSettingsViewModel() {
69+
return settingsViewModel;
70+
}
71+
6872
@Override
6973
protected void onDestroy() {
7074
super.onDestroy();

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/SettingsFragment.java‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import androidx.preference.ListPreference;
1515
import androidx.preference.Preference;
1616
import androidx.preference.PreferenceFragmentCompat;
17+
import androidx.preference.SwitchPreferenceCompat;
1718

1819
import com.d4rk.androidtutorials.java.BuildConfig;
1920
import com.d4rk.androidtutorials.java.R;
@@ -25,6 +26,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
2526
@Override
2627
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
2728
setPreferencesFromResource(R.xml.preferences_settings, rootKey);
29+
SettingsActivity activity = (SettingsActivity) requireActivity();
30+
SettingsViewModel settingsViewModel = activity.getSettingsViewModel();
2831
ListPreference labelVisibilityMode = findPreference(getString(R.string.key_bottom_navigation_bar_labels));
2932
if (labelVisibilityMode != null) {
3033
labelVisibilityMode.setOnPreferenceChangeListener((preference, newValue) -> {
@@ -33,6 +36,16 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
3336
return true;
3437
});
3538
}
39+
SwitchPreferenceCompat consentAnalyticsPreference =
40+
findPreference(getString(R.string.key_consent_analytics));
41+
if (consentAnalyticsPreference != null) {
42+
consentAnalyticsPreference.setOnPreferenceChangeListener((preference, newValue) -> {
43+
if (newValue instanceof Boolean && settingsViewModel != null) {
44+
settingsViewModel.setConsentAccepted((Boolean) newValue);
45+
}
46+
return true;
47+
});
48+
}
3649
ListPreference defaultTab = findPreference(getString(R.string.key_default_tab));
3750
if (defaultTab != null) {
3851
defaultTab.setOnPreferenceChangeListener((preference, newValue) -> {

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/SettingsViewModel.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public String getDarkMode() {
7070
return getDarkModeUseCase.invoke();
7171
}
7272

73-
public void setConsentAccepted(boolean accepted) {// FIXME: Method 'setConsentAccepted(boolean)' is never used
73+
public void setConsentAccepted(boolean accepted) {
7474
setConsentAcceptedUseCase.invoke(accepted);
7575
}
7676
}

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java‎

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
import androidx.lifecycle.ViewModelProvider;
88

99
import com.android.billingclient.api.ProductDetails;
10-
import com.d4rk.androidtutorials.java.ads.AdUtils;
1110
import com.d4rk.androidtutorials.java.data.repository.SupportRepository;
1211
import com.d4rk.androidtutorials.java.databinding.ActivitySupportBinding;
1312
import com.d4rk.androidtutorials.java.ui.components.navigation.BaseActivity;
13+
import com.google.android.gms.ads.AdRequest;
1414

1515
import java.util.List;
1616

@@ -30,8 +30,9 @@ protected void onCreate(Bundle savedInstanceState) {
3030

3131
supportViewModel = new ViewModelProvider(this).get(SupportViewModel.class);
3232

33-
AdUtils.loadBanner(binding.supportNativeAd);
34-
AdUtils.loadBanner(binding.bannerAdView);
33+
AdRequest adRequest = supportViewModel.initMobileAds();
34+
binding.supportNativeAd.loadAd(adRequest);
35+
binding.bannerAdView.loadAd(adRequest);
3536

3637
binding.buttonWebAd.setOnClickListener(v ->
3738
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://bit.ly/3p8bpjj"))));

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportViewModel.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public SupportRepository.BillingFlowLauncher initiatePurchase(String productId)
4747
return initiatePurchaseUseCase.invoke(productId);
4848
}
4949

50-
public AdRequest initMobileAds() {// FIXME: Method 'initMobileAds()' is never used
50+
public AdRequest initMobileAds() {
5151
return initMobileAdsUseCase.invoke();
5252
}
5353
}

‎app/src/main/java/com/d4rk/androidtutorials/java/utils/ReviewHelper.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public static void launchInAppReviewIfEligible(Activity activity,
2525
launchReview(activity, onReviewLaunched);
2626
}
2727

28-
public static void forceLaunchInAppReview(Activity activity) {// FIXME: Method 'forceLaunchInAppReview(android.app.Activity)' is never used
28+
public static void forceLaunchInAppReview(Activity activity) {
2929
launchReview(activity, null);
3030
}
3131

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /