Skip to content

Commit 581c8f1

Browse files
Merge pull request #60 from MihaiCristianCondrea/codex/remove-onresume-and-add-lifecycle-observer
Use lifecycle observer for consent and ad loading
2 parents 084fd5d + eb8d5af commit 581c8f1

File tree

1 file changed

+21
-28
lines changed

1 file changed

+21
-28
lines changed

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

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.app.Activity;
44
import android.content.Intent;
5-
import android.os.Build;
65
import android.os.Bundle;
76
import android.os.Handler;
87
import android.os.Looper;
@@ -13,13 +12,15 @@
1312
import androidx.activity.result.ActivityResultLauncher;
1413
import androidx.activity.result.IntentSenderRequest;
1514
import androidx.activity.result.contract.ActivityResultContracts;
16-
import androidx.annotation.RequiresApi;
15+
import androidx.annotation.NonNull;
1716
import androidx.appcompat.app.ActionBar;
1817
import androidx.appcompat.app.AppCompatActivity;
1918
import androidx.core.content.pm.ShortcutInfoCompat;
2019
import androidx.core.content.pm.ShortcutManagerCompat;
2120
import androidx.core.graphics.drawable.IconCompat;
2221
import androidx.core.splashscreen.SplashScreen;
22+
import androidx.lifecycle.DefaultLifecycleObserver;
23+
import androidx.lifecycle.LifecycleOwner;
2324
import androidx.lifecycle.ViewModelProvider;
2425
import androidx.navigation.NavController;
2526
import androidx.navigation.NavGraph;
@@ -31,8 +32,6 @@
3132
import com.d4rk.androidtutorials.java.R;
3233
import com.d4rk.androidtutorials.java.databinding.ActivityMainBinding;
3334
import com.d4rk.androidtutorials.java.notifications.managers.AppUpdateNotificationsManager;
34-
import com.d4rk.androidtutorials.java.notifications.managers.AppUsageNotificationsManager;
35-
import com.d4rk.androidtutorials.java.notifications.managers.QuizReminderManager;
3635
import com.d4rk.androidtutorials.java.ui.components.navigation.BottomSheetMenuFragment;
3736
import com.d4rk.androidtutorials.java.ui.screens.startup.StartupActivity;
3837
import com.d4rk.androidtutorials.java.ui.screens.startup.StartupViewModel;
@@ -77,6 +76,23 @@ public class MainActivity extends AppCompatActivity {
7776
private AppUpdateNotificationsManager appUpdateNotificationsManager;
7877
private AppUpdateManager appUpdateManager;
7978
private InstallStateUpdatedListener installStateUpdatedListener;
79+
private final DefaultLifecycleObserver lifecycleObserver = new DefaultLifecycleObserver() {
80+
@Override
81+
public void onResume(@NonNull LifecycleOwner owner) {
82+
ConsentUtils.applyStoredConsent(MainActivity.this);
83+
if (mBinding.adView != null) {
84+
if (ConsentUtils.canShowAds(MainActivity.this)) {
85+
if (mBinding.adView.getVisibility() != View.VISIBLE) {
86+
MobileAds.initialize(MainActivity.this);
87+
mBinding.adView.setVisibility(View.VISIBLE);
88+
mBinding.adView.loadAd(new AdRequest.Builder().build());
89+
}
90+
} else {
91+
mBinding.adView.setVisibility(View.GONE);
92+
}
93+
}
94+
}
95+
};
8096

8197
@Override
8298
protected void onCreate(Bundle savedInstanceState) {
@@ -122,6 +138,7 @@ protected void onCreate(Bundle savedInstanceState) {
122138
this.appUpdateManager = mainViewModel.getAppUpdateManager();
123139

124140
registerInstallStateListener();
141+
getLifecycle().addObserver(lifecycleObserver);
125142
getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) {
126143
@Override
127144
public void handleOnBackPressed() {
@@ -240,30 +257,6 @@ public boolean onOptionsItemSelected(android.view.MenuItem item) {
240257
return super.onOptionsItemSelected(item);
241258
}
242259

243-
@RequiresApi(api = Build.VERSION_CODES.O)
244-
@Override
245-
protected void onResume() {
246-
super.onResume();
247-
ConsentUtils.applyStoredConsent(this);
248-
if (mBinding.adView != null) {
249-
if (ConsentUtils.canShowAds(this)) {
250-
if (mBinding.adView.getVisibility() != View.VISIBLE) {
251-
MobileAds.initialize(this);
252-
mBinding.adView.setVisibility(View.VISIBLE);
253-
mBinding.adView.loadAd(new AdRequest.Builder().build());
254-
}
255-
} else {
256-
mBinding.adView.setVisibility(View.GONE);
257-
}
258-
}
259-
AppUsageNotificationsManager appUsageNotificationsManager = new AppUsageNotificationsManager(this);
260-
appUsageNotificationsManager.scheduleAppUsageCheck();
261-
QuizReminderManager quizReminderManager = new QuizReminderManager(this);
262-
quizReminderManager.scheduleDailyReminder();
263-
appUpdateNotificationsManager.checkAndSendUpdateNotification();
264-
checkForImmediateUpdate();
265-
}
266-
267260
private void checkForImmediateUpdate() {
268261
appUpdateManager
269262
.getAppUpdateInfo()

0 commit comments

Comments
 (0)