diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5c81b0dd..61f9b3d3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -356,15 +356,7 @@
android:exported="false"
android:label="@string/support_us"
android:parentActivityName=".ui.screens.support.SupportActivity" />
-
-
-
+
questions);
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/data/source/DefaultQuizLocalDataSource.java b/app/src/main/java/com/d4rk/androidtutorials/java/data/source/DefaultQuizLocalDataSource.java
deleted file mode 100644
index fb3bcaaa..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/data/source/DefaultQuizLocalDataSource.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.d4rk.androidtutorials.java.data.source;
-
-import android.content.res.AssetManager;
-import android.util.JsonReader;
-
-import com.d4rk.androidtutorials.java.data.model.QuizQuestion;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-
-/**
- * Reads quiz questions from the assets folder.
- */
-public class DefaultQuizLocalDataSource implements QuizLocalDataSource {
-
- private final AssetManager assetManager;
- private final ExecutorService executorService;
-
- public DefaultQuizLocalDataSource(AssetManager assetManager, ExecutorService executorService) {
- this.assetManager = assetManager;
- this.executorService = executorService;
- }
-
- @Override
- public void loadQuestions(QuestionsCallback callback) {
- executorService.execute(() -> {
- List result = new ArrayList<>();
- try (InputStream is = assetManager.open("quiz_questions.json");
- JsonReader reader = new JsonReader(new InputStreamReader(is, StandardCharsets.UTF_8))) {
- reader.beginArray();
- while (reader.hasNext()) {
- reader.beginObject();
- String question = null;
- List options = new ArrayList<>();
- int answer = -1;
- while (reader.hasNext()) {
- String name = reader.nextName();
- switch (name) {
- case "question" -> question = reader.nextString();
- case "options" -> {
- reader.beginArray();
- while (reader.hasNext()) {
- options.add(reader.nextString());
- }
- reader.endArray();
- }
- case "answer" -> answer = reader.nextInt();
- default -> reader.skipValue();
- }
- }
- reader.endObject();
- if (question != null && !options.isEmpty() && answer >= 0) {
- result.add(new QuizQuestion(
- question,
- options.toArray(new String[0]),
- answer));
- }
- }
- reader.endArray();
- } catch (IOException e) {
- result = Collections.emptyList();
- }
- callback.onResult(result);
- });
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/data/source/QuizLocalDataSource.java b/app/src/main/java/com/d4rk/androidtutorials/java/data/source/QuizLocalDataSource.java
deleted file mode 100644
index 3a20a989..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/data/source/QuizLocalDataSource.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.d4rk.androidtutorials.java.data.source;
-
-import com.d4rk.androidtutorials.java.data.model.QuizQuestion;
-
-import java.util.List;
-
-/**
- * Contract for reading quiz data from local storage.
- */
-public interface QuizLocalDataSource {
-
- void loadQuestions(QuestionsCallback callback);
-
- interface QuestionsCallback {
- void onResult(List questions);
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java b/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java
index 9e6ae471..904f0ee5 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/di/AppModule.java
@@ -1,24 +1,19 @@
package com.d4rk.androidtutorials.java.di;
import android.app.Application;
-import android.content.res.AssetManager;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.Volley;
import com.d4rk.androidtutorials.java.data.repository.DefaultHomeRepository;
import com.d4rk.androidtutorials.java.data.repository.DefaultMainRepository;
-import com.d4rk.androidtutorials.java.data.repository.DefaultQuizRepository;
import com.d4rk.androidtutorials.java.data.repository.DefaultSupportRepository;
import com.d4rk.androidtutorials.java.data.repository.HomeRepository;
import com.d4rk.androidtutorials.java.data.repository.MainRepository;
-import com.d4rk.androidtutorials.java.data.repository.QuizRepository;
import com.d4rk.androidtutorials.java.data.repository.SupportRepository;
import com.d4rk.androidtutorials.java.data.source.DefaultHomeLocalDataSource;
import com.d4rk.androidtutorials.java.data.source.DefaultHomeRemoteDataSource;
-import com.d4rk.androidtutorials.java.data.source.DefaultQuizLocalDataSource;
import com.d4rk.androidtutorials.java.data.source.HomeLocalDataSource;
import com.d4rk.androidtutorials.java.data.source.HomeRemoteDataSource;
-import com.d4rk.androidtutorials.java.data.source.QuizLocalDataSource;
import com.d4rk.androidtutorials.java.domain.about.GetCurrentYearUseCase;
import com.d4rk.androidtutorials.java.domain.about.GetVersionStringUseCase;
import com.d4rk.androidtutorials.java.domain.help.LaunchReviewFlowUseCase;
@@ -34,7 +29,6 @@
import com.d4rk.androidtutorials.java.domain.main.GetDefaultTabPreferenceUseCase;
import com.d4rk.androidtutorials.java.domain.main.MarkStartupScreenShownUseCase;
import com.d4rk.androidtutorials.java.domain.main.ShouldShowStartupScreenUseCase;
-import com.d4rk.androidtutorials.java.domain.quiz.LoadQuizQuestionsUseCase;
import com.d4rk.androidtutorials.java.domain.settings.ApplyConsentUseCase;
import com.d4rk.androidtutorials.java.domain.settings.GetDarkModeUseCase;
import com.d4rk.androidtutorials.java.domain.settings.OnPreferenceChangedUseCase;
@@ -211,24 +205,6 @@ public SetConsentAcceptedUseCase provideSetConsentAcceptedUseCase(SettingsReposi
return new SetConsentAcceptedUseCase(repository);
}
- @Provides
- @Singleton
- public QuizLocalDataSource provideQuizLocalDataSource(Application application, ExecutorService executorService) {
- AssetManager manager = application.getAssets();
- return new DefaultQuizLocalDataSource(manager, executorService);
- }
-
- @Provides
- @Singleton
- public QuizRepository provideQuizRepository(QuizLocalDataSource local) {
- return new DefaultQuizRepository(local);
- }
-
- @Provides
- public LoadQuizQuestionsUseCase provideLoadQuizQuestionsUseCase(QuizRepository repository) {
- return new LoadQuizQuestionsUseCase(repository);
- }
-
@Provides
@Singleton
public StartupRepository provideStartupRepository(Application application) {
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/domain/quiz/LoadQuizQuestionsUseCase.java b/app/src/main/java/com/d4rk/androidtutorials/java/domain/quiz/LoadQuizQuestionsUseCase.java
deleted file mode 100644
index 6cde5672..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/domain/quiz/LoadQuizQuestionsUseCase.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.d4rk.androidtutorials.java.domain.quiz;
-
-import com.d4rk.androidtutorials.java.data.model.QuizQuestion;
-import com.d4rk.androidtutorials.java.data.repository.QuizRepository;
-
-import java.util.List;
-
-/**
- * Loads quiz questions from assets.
- */
-public class LoadQuizQuestionsUseCase {
- private final QuizRepository repository;
-
- public LoadQuizQuestionsUseCase(QuizRepository repository) {
- this.repository = repository;
- }
-
- public void invoke(Callback callback) {
- repository.loadQuestions(callback::onResult);
- }
-
- public interface Callback {
- void onResult(List questions);
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/notifications/managers/QuizReminderManager.java b/app/src/main/java/com/d4rk/androidtutorials/java/notifications/managers/QuizReminderManager.java
deleted file mode 100644
index ed688205..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/notifications/managers/QuizReminderManager.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.d4rk.androidtutorials.java.notifications.managers;
-
-import android.app.AlarmManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-
-import com.d4rk.androidtutorials.java.notifications.receivers.QuizReminderReceiver;
-
-import java.util.concurrent.TimeUnit;
-
-/**
- * Utility for scheduling daily quiz reminder notifications.
- */
-public class QuizReminderManager {
-
- private final AlarmManager alarmManager;
- private final PendingIntent reminderIntent;
-
- public QuizReminderManager(Context context) {
- alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
- reminderIntent = PendingIntent.getBroadcast(
- context,
- 1,
- new Intent(context, QuizReminderReceiver.class),
- PendingIntent.FLAG_IMMUTABLE
- );
- }
-
- /**
- * Schedule a repeating daily reminder.
- */
- public void scheduleDailyReminder() {
- long trigger = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(1);
- alarmManager.setRepeating(
- AlarmManager.RTC_WAKEUP,
- trigger,
- TimeUnit.DAYS.toMillis(1),
- reminderIntent
- );
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/notifications/receivers/QuizReminderReceiver.java b/app/src/main/java/com/d4rk/androidtutorials/java/notifications/receivers/QuizReminderReceiver.java
deleted file mode 100644
index 6b2d3eac..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/notifications/receivers/QuizReminderReceiver.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.d4rk.androidtutorials.java.notifications.receivers;
-
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-
-import androidx.work.OneTimeWorkRequest;
-import androidx.work.WorkManager;
-
-import com.d4rk.androidtutorials.java.notifications.workers.QuizReminderWorker;
-
-/**
- * BroadcastReceiver that enqueues a {@link QuizReminderWorker}.
- */
-public class QuizReminderReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- OneTimeWorkRequest request = new OneTimeWorkRequest.Builder(
- QuizReminderWorker.class)
- .build();
- WorkManager.getInstance(context).enqueue(request);
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/notifications/workers/QuizReminderWorker.java b/app/src/main/java/com/d4rk/androidtutorials/java/notifications/workers/QuizReminderWorker.java
deleted file mode 100644
index 356a12dd..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/notifications/workers/QuizReminderWorker.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.d4rk.androidtutorials.java.notifications.workers;
-
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.os.Build;
-
-import androidx.annotation.NonNull;
-import androidx.annotation.RequiresApi;
-import androidx.core.app.NotificationCompat;
-import androidx.work.Worker;
-import androidx.work.WorkerParameters;
-
-import com.d4rk.androidtutorials.java.R;
-import com.d4rk.androidtutorials.java.ui.screens.quiz.QuizActivity;
-
-/**
- * Worker that displays the daily quiz reminder notification.
- */
-public class QuizReminderWorker extends Worker {
-
- public QuizReminderWorker(@NonNull Context context, @NonNull WorkerParameters params) {
- super(context, params);
- }
-
- @RequiresApi(api = Build.VERSION_CODES.O)
- @NonNull
- @Override
- public Result doWork() {
- NotificationManager manager = (NotificationManager) getApplicationContext()
- .getSystemService(Context.NOTIFICATION_SERVICE);
- String channelId = "quiz_reminder_channel";
- NotificationChannel channel = new NotificationChannel(
- channelId,
- getApplicationContext().getString(R.string.quiz_reminder_title),
- NotificationManager.IMPORTANCE_HIGH
- );
- manager.createNotificationChannel(channel);
-
- Intent intent = new Intent(getApplicationContext(), QuizActivity.class);
- PendingIntent pendingIntent = PendingIntent.getActivity(
- getApplicationContext(), 0, intent, PendingIntent.FLAG_IMMUTABLE);
-
- NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext(), channelId)
- .setSmallIcon(R.drawable.ic_check_circle)
- .setContentTitle(getApplicationContext().getString(R.string.quiz_reminder_title))
- .setContentText(getApplicationContext().getString(R.string.quiz_reminder_body))
- .setAutoCancel(true)
- .setContentIntent(pendingIntent);
-
- manager.notify(1001, builder.build());
- return Result.success();
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java
index a9f45463..3ab5a374 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/about/AboutFragment.java
@@ -18,7 +18,6 @@
import com.d4rk.androidtutorials.java.R;
import com.d4rk.androidtutorials.java.databinding.FragmentAboutBinding;
import com.d4rk.androidtutorials.java.utils.ConsentUtils;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import dagger.hilt.android.AndroidEntryPoint;
@@ -44,7 +43,7 @@ public android.view.View onCreateView(@NonNull android.view.LayoutInflater infla
if (ConsentUtils.canShowAds(requireContext())) {
MobileAds.initialize(requireContext());
binding.adView.setVisibility(android.view.View.VISIBLE);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
} else {
binding.adView.setVisibility(android.view.View.GONE);
}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java
index 96d60277..b624aef3 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/AndroidStudioFragment.java
@@ -31,7 +31,6 @@
import com.d4rk.androidtutorials.java.ads.views.NativeAdBannerView;
import com.d4rk.androidtutorials.java.utils.ConsentUtils;
import com.google.android.gms.ads.AdListener;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.LoadAdError;
import com.google.android.gms.ads.MobileAds;
import com.google.android.material.card.MaterialCardView;
@@ -369,7 +368,7 @@ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int positi
int type = getItemViewType(pos);
if (type == TYPE_AD) {
AdHolder adHolder = (AdHolder) holder;
- adHolder.adView.loadAd(new AdRequest.Builder().build(), new AdListener() {
+ adHolder.adView.loadAd(new AdListener() {
@Override
public void onAdFailedToLoad(@NonNull LoadAdError error) {
adHolder.adView.setVisibility(View.GONE);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java
index bac5e923..8cb38d87 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/history/AndroidHistory.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityAndroidHistoryBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -21,8 +20,8 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adView.loadAd(new AdRequest.Builder().build());
- binding.adViewBottom.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
+ binding.adViewBottom.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java
index 565e835d..7effc451 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/permissions/PermissionsTutorialActivity.java
@@ -7,7 +7,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityPermissionsTutorialBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -23,8 +22,8 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adViewBottom.loadAd(new AdRequest.Builder().build());
- binding.adViewLarge.loadAd(new AdRequest.Builder().build());
+ binding.adViewBottom.loadAd();
+ binding.adViewLarge.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
binding.buttonMore.setOnClickListener(v -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://developer.android.com/guide/topics/permissions/overview"))));
}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java
index 1c3f7fd0..d4f36431 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/sdk/AndroidSDK.java
@@ -12,7 +12,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityAndroidSdkBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import java.util.Arrays;
@@ -71,8 +70,8 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adViewBottom.loadAd(new AdRequest.Builder().build());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adViewBottom.loadAd();
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
createDynamicTable();
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java
index 7c3bc3d3..c84efba3 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/ShortcutsActivity.java
@@ -11,7 +11,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
public class ShortcutsActivity extends UpNavigationActivity {
@@ -25,7 +24,7 @@ protected void onCreate(Bundle savedInstanceState) {
edgeToEdgeDelegate.applyEdgeToEdge(binding.container);
MobileAds.initialize(this);
- binding.adViewBottom.loadAd(new AdRequest.Builder().build());
+ binding.adViewBottom.loadAd();
getSupportFragmentManager().beginTransaction().replace(R.id.frame_layout_shortcuts, new SettingsFragment()).commit();
ActionBar supportActionBar = getSupportActionBar();
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java
index 05fb19b8..e2e86160 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/BuildShortcutsActivity.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsBuildBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -21,7 +20,7 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java
index c8b4ec0f..e204fe7b 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/CodeShortcutsActivity.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsCodeBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -21,7 +20,7 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java
index a80f0aa2..47e5d322 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/DebuggingShortcutsActivity.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsDebuggingBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -22,7 +21,7 @@ protected void onCreate(Bundle savedInstanceState) {
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
MobileAds.initialize(this);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java
index 294cf17f..fc30b277 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/GeneralShortcutsActivity.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsGeneralBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -21,7 +20,7 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java
index 36939060..bf869319 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/NavigationAndSearchingShortcutsActivity.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsNavigationAndSearchingBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -21,7 +20,7 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java
index ad62352b..bb9c17b7 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/RefactoringShortcutsActivity.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsRefractoringBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -21,7 +20,7 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java
index 00cfcc99..7d465046 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/VersionControlShortcutsActivity.java
@@ -5,7 +5,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityShortcutsVersionControlBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -21,7 +20,7 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java
index a45ae0bc..b150e81d 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java
@@ -16,7 +16,6 @@
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -39,8 +38,8 @@ protected void onCreate(Bundle savedInstanceState) {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
- binding.adViewBottom.loadAd(new AdRequest.Builder().build());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adViewBottom.loadAd();
+ binding.adView.loadAd();
binding.moreAboutViewBindingButton.setOnClickListener(v ->
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://developer.android.com/topic/libraries/view-binding#java"))));
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java
index fb2e8fd1..629aef17 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabCodeFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -32,7 +31,7 @@ public class ButtonsTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentSameCodeBinding binding = FragmentSameCodeBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java
index cdc266da..b80f7d70 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java
@@ -18,7 +18,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -37,7 +36,7 @@ public class ButtonsTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentButtonsLayoutBinding binding = FragmentButtonsLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java
index 7b3f231c..8fe77726 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabCodeFragment.java
@@ -9,7 +9,6 @@
import androidx.fragment.app.Fragment;
import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
public class ClockTabCodeFragment extends Fragment {
@@ -17,7 +16,7 @@ public class ClockTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false);
MobileAds.initialize(requireContext());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
return binding.getRoot();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java
index 18ba23ad..823c6c4e 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java
@@ -18,7 +18,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -32,7 +31,7 @@ public class ClockTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentClockLayoutBinding binding = FragmentClockLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java
index 83374bab..2b9b7029 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabCodeFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -35,7 +34,7 @@ public class RoomTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentCodeBinding binding = FragmentCodeBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java
index fe2e70ea..93b3cf17 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/data/room/tabs/RoomTabLayoutFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -35,7 +34,7 @@ public class RoomTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java
index fd5a157e..5abd2920 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabCodeFragment.java
@@ -9,7 +9,6 @@
import androidx.fragment.app.Fragment;
import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
public class LinearLayoutTabCodeFragment extends Fragment {
@@ -17,7 +16,7 @@ public class LinearLayoutTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false);
MobileAds.initialize(requireContext());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
return binding.getRoot();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java
index 29e3e3d0..0461be3a 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -31,7 +30,7 @@ public class LinearLayoutTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentLinearLayoutLayoutBinding binding = FragmentLinearLayoutLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java
index d1aee623..f22bc95d 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabCodeFragment.java
@@ -9,7 +9,6 @@
import androidx.fragment.app.Fragment;
import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
public class RelativeLayoutTabCodeFragment extends Fragment {
@@ -17,7 +16,7 @@ public class RelativeLayoutTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false);
MobileAds.initialize(requireContext());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
return binding.getRoot();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java
index 5ad17ceb..7d40252f 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -32,7 +31,7 @@ public class RelativeLayoutTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java
index 5462c45b..d9463298 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabCodeFragment.java
@@ -9,7 +9,6 @@
import androidx.fragment.app.Fragment;
import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
public class TableLayoutTabCodeFragment extends Fragment {
@@ -17,7 +16,7 @@ public class TableLayoutTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false);
MobileAds.initialize(requireContext());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
return binding.getRoot();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java
index 20c2e58b..1702cb5d 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/table/tabs/TableLayoutTabLayoutFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -32,7 +31,7 @@ public class TableLayoutTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/RetrofitActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/RetrofitActivity.java
index 3951c1f9..305754d3 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/RetrofitActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/RetrofitActivity.java
@@ -5,6 +5,7 @@
import android.os.Handler;
import android.os.Looper;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.d4rk.androidtutorials.java.R;
@@ -46,7 +47,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
binding.buttonFetch.setEnabled(false);
api.getTodo().enqueue(new Callback<>() {
@Override
- public void onResponse(Call call, Response response) { // FIXME: Not annotated parameter overrides @EverythingIsNonNull parameter
+ public void onResponse(@NonNull Call call, @NonNull Response response) {
if (response.isSuccessful() && response.body() != null) {
binding.textViewResult.setText(response.body().title);
} else {
@@ -56,7 +57,7 @@ public void onResponse(Call call, Response response) { // FIXME: Not
}
@Override
- public void onFailure(Call call, Throwable t) { // FIXME: Not annotated parameter overrides @EverythingIsNonNull parameter
+ public void onFailure(@NonNull Call call, @NonNull Throwable t) {
binding.textViewResult.setText(R.string.snack_general_error);
binding.buttonFetch.setEnabled(true);
}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java
index fb034ed0..11c0abd3 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabCodeFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -35,7 +34,7 @@ public class RetrofitTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentCodeBinding binding = FragmentCodeBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java
index a484472d..c38731da 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/networking/retrofit/tabs/RetrofitTabLayoutFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -35,7 +34,7 @@ public class RetrofitTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java
index e3960037..2d360650 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabCodeFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -32,7 +31,7 @@ public class ProgressBarTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentCodeBinding binding = FragmentCodeBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java
index 825f6d2a..bf743779 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/progress/progressbar/tabs/ProgressBarTabLayoutFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -31,7 +30,7 @@ public class ProgressBarTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentLinearLayoutLayoutBinding binding = FragmentLinearLayoutLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java
index 4a6f974f..544b0e58 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/start/AndroidStartProjectActivity.java
@@ -9,7 +9,6 @@
import com.d4rk.androidtutorials.java.databinding.ActivityAndroidStartProjectBinding;
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
@@ -25,7 +24,7 @@ protected void onCreate(Bundle savedInstanceState) {
edgeToEdgeDelegate.applyEdgeToEdge(binding.constraintLayout);
setSupportActionBar(binding.topAppBar);
- binding.topAppBar.setNavigationOnClickListener(v -> onBackPressed()); // FIXME: 'onBackPressed()' is deprecated
+ binding.topAppBar.setNavigationOnClickListener(v -> getOnBackPressedDispatcher().onBackPressed());
binding.topAppBar.setOnMenuItemClickListener(item -> {
if (item.getItemId() == R.id.action_share) {
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
@@ -40,8 +39,8 @@ protected void onCreate(Bundle savedInstanceState) {
});
MobileAds.initialize(this);
- binding.adViewBottom.loadAd(new AdRequest.Builder().build());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adViewBottom.loadAd();
+ binding.adView.loadAd();
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
binding.textViewThirdStepSummary.setMovementMethod(LinkMovementMethod.getInstance());
}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java
index 75908d6e..a32c0179 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/textboxes/passwordbox/PasswordBoxActivity.java
@@ -61,8 +61,10 @@ private void hidePassword() {
}
private void addKeyListener() {
- binding.buttonShowPassword.setOnClickListener(v ->
- Snackbar.make(binding.getRoot(), binding.editText.getText(), Snackbar.LENGTH_LONG).show()); // FIXME: Argument 'binding.editText.getText()' might be null
+ binding.buttonShowPassword.setOnClickListener(v -> {
+ CharSequence text = binding.editText.getText();
+ Snackbar.make(binding.getRoot(), text != null ? text : "", Snackbar.LENGTH_LONG).show();
+ });
}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java
index 30dbcc32..9a7897a6 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabCodeFragment.java
@@ -9,7 +9,6 @@
import androidx.fragment.app.Fragment;
import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
public class ImagesTabCodeFragment extends Fragment {
@@ -17,7 +16,7 @@ public class ImagesTabCodeFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false);
MobileAds.initialize(requireContext());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
return binding.getRoot();
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java
index 01e66e7e..c2c3fab1 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/views/images/tabs/ImagesTabLayoutFragment.java
@@ -17,7 +17,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -32,7 +31,7 @@ public class ImagesTabLayoutFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
FragmentLayoutBinding binding = FragmentLayoutBinding.inflate(inflater, container, false);
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java
index 2dcab1de..63e6c148 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/CodeFragment.java
@@ -18,7 +18,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -57,7 +56,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
private void setupUI() {
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java
index 04f0d557..35230768 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/LayoutFragment.java
@@ -18,7 +18,6 @@
import com.d4rk.androidtutorials.java.utils.CodeHighlighter;
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
import com.d4rk.androidtutorials.java.utils.FontManager;
-import com.google.android.gms.ads.AdRequest;
import java.io.BufferedReader;
import java.io.IOException;
@@ -57,7 +56,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
private void setupUI() {
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java
index be385d68..b3251b62 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/tabs/NoCodeFragment.java
@@ -11,7 +11,6 @@
import com.d4rk.androidtutorials.java.R;
import com.d4rk.androidtutorials.java.databinding.FragmentNoCodeBinding;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
public class NoCodeFragment extends Fragment {
@@ -32,7 +31,7 @@ public View onCreateView(@NonNull LayoutInflater inflater,
Bundle savedInstanceState) {
FragmentNoCodeBinding binding = FragmentNoCodeBinding.inflate(inflater, container, false);
MobileAds.initialize(requireContext());
- binding.adView.loadAd(new AdRequest.Builder().build());
+ binding.adView.loadAd();
String message = requireArguments().getString(ARG_MESSAGE, String.valueOf(R.string.no_java_code_needed));
binding.textViewNoCodeMessage.setText(message);
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java
index 228abb19..2ef32780 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/home/HomeFragment.java
@@ -14,7 +14,6 @@
import com.d4rk.androidtutorials.java.data.model.PromotedApp;
import com.d4rk.androidtutorials.java.databinding.FragmentHomeBinding;
import com.d4rk.androidtutorials.java.utils.ConsentUtils;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import dagger.hilt.android.AndroidEntryPoint;
@@ -88,9 +87,8 @@ private void initializeAds() {
MobileAds.initialize(requireContext());
binding.smallBannerAd.setVisibility(View.VISIBLE);
binding.largeBannerAd.setVisibility(View.VISIBLE);
- AdRequest request = new AdRequest.Builder().build();
- binding.smallBannerAd.loadAd(request);
- binding.largeBannerAd.loadAd(request);
+ binding.smallBannerAd.loadAd();
+ binding.largeBannerAd.loadAd();
} else {
binding.smallBannerAd.setVisibility(View.GONE);
binding.largeBannerAd.setVisibility(View.GONE);
@@ -107,7 +105,8 @@ private void shareTip(String tip) {
private void shareApp(com.d4rk.androidtutorials.java.data.model.PromotedApp app) {
android.content.Intent sharingIntent = new android.content.Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
- String shareLink = homeViewModel.getPromotedAppIntent(app.packageName()).getData().toString(); // FIXME: Method invocation 'toString' may produce 'NullPointerException'
+ android.net.Uri data = homeViewModel.getPromotedAppIntent(app.packageName()).getData();
+ String shareLink = data != null ? data.toString() : "";
String shareMessage = getString(com.d4rk.androidtutorials.java.R.string.share_message, shareLink);
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareMessage);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(com.d4rk.androidtutorials.java.R.string.share_subject));
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java
index f29ccf56..a680e422 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/main/MainActivity.java
@@ -39,7 +39,6 @@
import com.d4rk.androidtutorials.java.ui.screens.support.SupportActivity;
import com.d4rk.androidtutorials.java.utils.ConsentUtils;
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.material.navigation.NavigationBarView;
import com.google.android.material.snackbar.Snackbar;
@@ -76,13 +75,17 @@ public void onResume(@NonNull LifecycleOwner owner) {
if (ConsentUtils.canShowAds(MainActivity.this)) {
if (mBinding.adView.getVisibility() != View.VISIBLE) {
MobileAds.initialize(MainActivity.this);
- mBinding.adPlaceholder.setVisibility(View.GONE); // FIXME: Method invocation 'setVisibility' may produce 'NullPointerException'
+ if (mBinding.adPlaceholder != null) {
+ mBinding.adPlaceholder.setVisibility(View.GONE);
+ }
mBinding.adView.setVisibility(View.VISIBLE);
- mBinding.adView.loadAd(new AdRequest.Builder().build());
+ mBinding.adView.loadAd();
}
} else {
mBinding.adView.setVisibility(View.GONE);
- mBinding.adPlaceholder.setVisibility(View.VISIBLE); // FIXME: Method invocation 'setVisibility' may produce 'NullPointerException'
+ if (mBinding.adPlaceholder != null) {
+ mBinding.adPlaceholder.setVisibility(View.VISIBLE);
+ }
}
}
}
@@ -90,7 +93,6 @@ public void onResume(@NonNull LifecycleOwner owner) {
private MainViewModel mainViewModel;
private NavController navController;
private int currentNavIndex;
- private AppUpdateNotificationsManager appUpdateNotificationsManager; // FIXME: Private field 'appUpdateNotificationsManager' is assigned but never accessed
private AppUpdateManager appUpdateManager;
private InstallStateUpdatedListener installStateUpdatedListener;
private long backPressedTime;
@@ -173,11 +175,15 @@ private void observeViewModel() {
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
NavigationBarView navBarView = (NavigationBarView) mBinding.navView;
if (useRail) {
- mBinding.navRail.setVisibility(View.VISIBLE); // FIXME: Method invocation 'setVisibility' may produce 'NullPointerException'
+ if (mBinding.navRail != null) {
+ mBinding.navRail.setVisibility(View.VISIBLE);
+ }
navBarView.setVisibility(View.GONE);
edgeToEdgeDelegate.applyEdgeToEdge(mBinding.container);
} else {
- mBinding.navRail.setVisibility(View.GONE); // FIXME: Method invocation 'setVisibility' may produce 'NullPointerException'
+ if (mBinding.navRail != null) {
+ mBinding.navRail.setVisibility(View.GONE);
+ }
navBarView.setVisibility(View.VISIBLE);
edgeToEdgeDelegate.applyEdgeToEdgeBottomBar(mBinding.container, navBarView);
@@ -185,12 +191,16 @@ private void observeViewModel() {
if (mBinding.adView != null) {
if (ConsentUtils.canShowAds(this)) {
MobileAds.initialize(this);
- mBinding.adPlaceholder.setVisibility(View.GONE); // FIXME: Method invocation 'setVisibility' may produce 'NullPointerException'
+ if (mBinding.adPlaceholder != null) {
+ mBinding.adPlaceholder.setVisibility(View.GONE);
+ }
mBinding.adView.setVisibility(View.VISIBLE);
- mBinding.adView.loadAd(new AdRequest.Builder().build());
+ mBinding.adView.loadAd();
} else {
mBinding.adView.setVisibility(View.GONE);
- mBinding.adPlaceholder.setVisibility(View.VISIBLE); // FIXME: Method invocation 'setVisibility' may produce 'NullPointerException'
+ if (mBinding.adPlaceholder != null) {
+ mBinding.adPlaceholder.setVisibility(View.VISIBLE);
+ }
}
}
}
@@ -206,7 +216,9 @@ private void observeViewModel() {
navOrder.put(R.id.navigation_home, 0);
navOrder.put(R.id.navigation_android_studio, 1);
navOrder.put(R.id.navigation_about, 2);
- currentNavIndex = navOrder.get(navController.getCurrentDestination().getId()); // FIXME: Method invocation 'getId' may produce 'NullPointerException'
+ if (navController.getCurrentDestination() != null) {
+ currentNavIndex = navOrder.get(navController.getCurrentDestination().getId());
+ }
NavOptions forwardOptions = new NavOptions.Builder()
.setEnterAnim(R.anim.fragment_spring_enter)
@@ -262,11 +274,15 @@ private void observeViewModel() {
});
mainViewModel.getLoadingState().observe(this, isLoading ->
- mBinding.progressBar.setVisibility(Boolean.TRUE.equals(isLoading) ? View.VISIBLE : View.GONE)); // FIXME: Method invocation 'setVisibility' may produce 'NullPointerException'
+ {
+ if (mBinding.progressBar != null) {
+ mBinding.progressBar.setVisibility(Boolean.TRUE.equals(isLoading) ? View.VISIBLE : View.GONE);
+ }
+ });
}
private void setupUpdateNotifications() {
- appUpdateNotificationsManager = new AppUpdateNotificationsManager(this);
+ new AppUpdateNotificationsManager(this);
}
@@ -286,32 +302,6 @@ public boolean onOptionsItemSelected(android.view.MenuItem item) {
}
// TODO: Call on onResume
- private void checkForImmediateUpdate() { // FIXME: Private method 'checkForImmediateUpdate()' is never used
- appUpdateManager
- .getAppUpdateInfo()
- .addOnSuccessListener(
- appUpdateInfo -> {
- boolean updateAvailable =
- appUpdateInfo.updateAvailability()
- == UpdateAvailability.UPDATE_AVAILABLE;
- if (updateAvailable
- && appUpdateInfo.isUpdateTypeAllowed(
- AppUpdateType.IMMEDIATE)) {
- startImmediateUpdate(appUpdateInfo);
- }
- })
- .addOnFailureListener(
- e -> {
- if (!BuildConfig.DEBUG) {
- Snackbar.make(
- findViewById(android.R.id.content),
- getString(R.string.snack_general_error),
- Snackbar.LENGTH_LONG)
- .show();
- }
- });
- }
-
private void startImmediateUpdate(AppUpdateInfo appUpdateInfo) {
appUpdateManager.startUpdateFlowForResult(
appUpdateInfo,
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/quiz/QuizActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/quiz/QuizActivity.java
deleted file mode 100644
index 1bc070a2..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/quiz/QuizActivity.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package com.d4rk.androidtutorials.java.ui.screens.quiz;
-
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.appcompat.app.ActionBar;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.lifecycle.ViewModelProvider;
-
-import com.airbnb.lottie.LottieAnimationView;
-import com.d4rk.androidtutorials.java.R;
-import com.d4rk.androidtutorials.java.data.model.QuizQuestion;
-import com.d4rk.androidtutorials.java.databinding.ActivityQuizBinding;
-import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
-import com.google.android.material.dialog.MaterialAlertDialogBuilder;
-
-import dagger.hilt.android.AndroidEntryPoint;
-
-@AndroidEntryPoint
-public class QuizActivity extends AppCompatActivity {
-
- private ActivityQuizBinding binding;
- private QuizViewModel viewModel;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- binding = ActivityQuizBinding.inflate(getLayoutInflater());
- setContentView(binding.getRoot());
-
- EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
- edgeToEdgeDelegate.applyEdgeToEdge(binding.container);
-
- ActionBar actionBar = getSupportActionBar();
- if (actionBar != null) {
- actionBar.setDisplayHomeAsUpEnabled(true);
- }
-
- viewModel = new ViewModelProvider(this).get(QuizViewModel.class);
- if (viewModel.getTotalQuestions() == 0) {
- new MaterialAlertDialogBuilder(this)
- .setMessage(R.string.quiz_no_more_questions)
- .setPositiveButton(android.R.string.ok, (d, w) -> finish())
- .setCancelable(false)
- .show();
- return;
- }
- showQuestion(viewModel.getCurrentQuestion());
-
- binding.buttonNext.setOnClickListener(v -> onNextClicked());
- }
-
- private void onNextClicked() {
- int selectedId = binding.optionsGroup.getCheckedRadioButtonId();
- int selectedIndex = -1;
- if (selectedId == binding.option1.getId()) {
- selectedIndex = 0;
- } else if (selectedId == binding.option2.getId()) {
- selectedIndex = 1;
- } else if (selectedId == binding.option3.getId()) {
- selectedIndex = 2;
- } else if (selectedId == binding.option4.getId()) {
- selectedIndex = 3;
- }
- if (selectedIndex != -1) {
- viewModel.answer(selectedIndex);
- }
- if (viewModel.getCurrentIndex().getValue() >= viewModel.getTotalQuestions()) { // FIXME: Unboxing of 'viewModel.getCurrentIndex().getValue()' may produce 'NullPointerException'
- showResult();
- } else {
- showQuestion(viewModel.getCurrentQuestion());
- binding.optionsGroup.clearCheck();
- }
- }
-
- private void showQuestion(QuizQuestion question) {
- if (question == null) {
- return;
- }
- binding.textQuestion.setText(question.question());
- binding.option1.setText(question.options()[0]);
- binding.option2.setText(question.options()[1]);
- binding.option3.setText(question.options()[2]);
- binding.option4.setText(question.options()[3]);
- }
-
- private void showResult() {
- int score = viewModel.getScore().getValue(); // FIXME: Unboxing of 'viewModel.getScore().getValue()' may produce 'NullPointerException'
- int total = viewModel.getTotalQuestions();
- View view = LayoutInflater.from(this).inflate(R.layout.dialog_quiz_result, null, false);
- TextView textResult = view.findViewById(R.id.text_result);
- textResult.setText(getString(R.string.quiz_finished, score, total));
- LottieAnimationView animationView = view.findViewById(R.id.animation_success);
- animationView.playAnimation();
- new MaterialAlertDialogBuilder(this)
- .setView(view)
- .setPositiveButton(android.R.string.ok, (d, w) -> finish())
- .setCancelable(false)
- .show();
- }
-
- @Override
- public boolean onOptionsItemSelected(@NonNull MenuItem item) {
- if (item.getItemId() == android.R.id.home) {
- finish();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/quiz/QuizViewModel.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/quiz/QuizViewModel.java
deleted file mode 100644
index 99ab4a34..00000000
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/quiz/QuizViewModel.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package com.d4rk.androidtutorials.java.ui.screens.quiz;
-
-import androidx.lifecycle.LiveData;
-import androidx.lifecycle.MutableLiveData;
-import androidx.lifecycle.ViewModel;
-
-import com.d4rk.androidtutorials.java.data.model.QuizQuestion;
-import com.d4rk.androidtutorials.java.domain.quiz.LoadQuizQuestionsUseCase;
-
-import java.util.Collections;
-import java.util.List;
-
-import javax.inject.Inject;
-
-import dagger.hilt.android.lifecycle.HiltViewModel;
-
-/**
- * ViewModel managing quiz state and scoring.
- */
-@HiltViewModel
-public class QuizViewModel extends ViewModel {
-
- private final MutableLiveData> questions = new MutableLiveData<>(Collections.emptyList());
- private final MutableLiveData currentIndex = new MutableLiveData<>(0);
- private final MutableLiveData score = new MutableLiveData<>(0);
- private final LoadQuizQuestionsUseCase loadQuizQuestionsUseCase; // FIXME: Field can be converted to a local variable && Private field 'loadQuizQuestionsUseCase' is assigned but never accessed
-
- @Inject
- public QuizViewModel(LoadQuizQuestionsUseCase loadQuizQuestionsUseCase) {
- this.loadQuizQuestionsUseCase = loadQuizQuestionsUseCase;
- loadQuizQuestionsUseCase.invoke(questions::postValue);
- }
-
- public QuizQuestion getCurrentQuestion() {
- List list = questions.getValue();
- if (list == null || list.isEmpty()) return null;
- int index = currentIndex.getValue(); // FIXME: Unboxing of 'currentIndex.getValue()' may produce 'NullPointerException'
- return list.get(Math.min(index, list.size() - 1));
- }
-
- public LiveData getCurrentIndex() {
- return currentIndex;
- }
-
- public LiveData getScore() {
- return score;
- }
-
- public LiveData> getQuestions() { // FIXME: Method 'getQuestions()' is never used
- return questions;
- }
-
- public void answer(int optionIndex) {
- QuizQuestion question = getCurrentQuestion();
- if (question != null && optionIndex == question.answerIndex()) {
- score.setValue(score.getValue() + 1); // FIXME: Unboxing of 'score.getValue()' may produce 'NullPointerException'
- }
- currentIndex.setValue(currentIndex.getValue() + 1); // FIXME: Unboxing of 'currentIndex.getValue()' may produce 'NullPointerException'
- }
-
- public int getTotalQuestions() {
- List list = questions.getValue();
- return list != null ? list.size() : 0;
- }
-}
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/repository/SettingsRepository.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/repository/SettingsRepository.java
index 00e059dc..30f7406b 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/repository/SettingsRepository.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/settings/repository/SettingsRepository.java
@@ -50,8 +50,11 @@ public boolean applyTheme() {
String defaultThemeValue = context.getString(R.string.default_value_theme);
String preference = sharedPreferences.getString(preferenceKey, defaultThemeValue);
+ if (preference == null) {
+ preference = defaultThemeValue;
+ }
int currentNightMode = AppCompatDelegate.getDefaultNightMode();
- int newNightMode = getNewNightMode(currentNightMode, preference, darkModeValues); // FIXME: Argument 'preference' might be null
+ int newNightMode = getNewNightMode(currentNightMode, preference, darkModeValues);
if (newNightMode != currentNightMode) {
AppCompatDelegate.setDefaultNightMode(newNightMode);
return true;
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java
index 0de20f93..935dab0b 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/support/SupportActivity.java
@@ -31,7 +31,7 @@ protected void onCreate(Bundle savedInstanceState) {
supportViewModel = new ViewModelProvider(this).get(SupportViewModel.class);
AdRequest adRequest = supportViewModel.initMobileAds();
- binding.supportNativeAd.loadAd(adRequest);
+ binding.supportNativeAd.loadAd();
binding.bannerAdView.loadAd(adRequest);
binding.buttonWebAd.setOnClickListener(v ->
diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/utils/FontManager.java b/app/src/main/java/com/d4rk/androidtutorials/java/utils/FontManager.java
index 91f395f5..e264a702 100644
--- a/app/src/main/java/com/d4rk/androidtutorials/java/utils/FontManager.java
+++ b/app/src/main/java/com/d4rk/androidtutorials/java/utils/FontManager.java
@@ -19,14 +19,16 @@ public static Typeface getMonospaceFont(Context context, SharedPreferences prefs
prefs.edit().remove(key).apply();
font = "6";
}
- return switch (font) { // FIXME: Dereference of 'font' may produce 'NullPointerException'
+ if (font == null) {
+ font = "6";
+ }
+ return switch (font) {
case "0" -> ResourcesCompat.getFont(context, R.font.font_audiowide);
case "1" -> ResourcesCompat.getFont(context, R.font.font_fira_code);
case "2" -> ResourcesCompat.getFont(context, R.font.font_jetbrains_mono);
case "3" -> ResourcesCompat.getFont(context, R.font.font_noto_sans_mono);
case "4" -> ResourcesCompat.getFont(context, R.font.font_poppins);
case "5" -> ResourcesCompat.getFont(context, R.font.font_roboto_mono);
- case "6" -> ResourcesCompat.getFont(context, R.font.font_google_sans_code); // FIXME: Branch in 'switch' is a duplicate of the default branch
default -> ResourcesCompat.getFont(context, R.font.font_google_sans_code);
};
}
diff --git a/app/src/main/res/layout/activity_quiz.xml b/app/src/main/res/layout/activity_quiz.xml
deleted file mode 100644
index 84c73468..00000000
--- a/app/src/main/res/layout/activity_quiz.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/dialog_quiz_result.xml b/app/src/main/res/layout/dialog_quiz_result.xml
deleted file mode 100644
index da5ce1bd..00000000
--- a/app/src/main/res/layout/dialog_quiz_result.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
diff --git a/app/src/main/res/values-ar-rEG/strings.xml b/app/src/main/res/values-ar-rEG/strings.xml
index db2d9edd..15de9f95 100644
--- a/app/src/main/res/values-ar-rEG/strings.xml
+++ b/app/src/main/res/values-ar-rEG/strings.xml
@@ -439,12 +439,7 @@
صمّم لإمكانية الوصول باستخدام أوصاف المحتوى وتباين مناسب.
قلّل العمل الخلفي غير الضروري لتحسين عمر البطارية.
نصيحة اليوم
- اختبار
السؤال التالي
- اكتمل الاختبار. نتيجتك: %1$d/%2$d
- لا مزيد من الأسئلة، تابع التحديثات القادمة للمزيد.
- تذكير الاختبار اليومي
- عد للاختبار اليومي اليوم.
تطبيقات أخرى من المطور
لقطة شاشة تعرض زر مشروع جديد في Android Studio.
لقطة شاشة تعرض اختيار نوع النشاط أثناء إعداد المشروع.
diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml
index eec5ed78..6b9453ef 100644
--- a/app/src/main/res/values-bg-rBG/strings.xml
+++ b/app/src/main/res/values-bg-rBG/strings.xml
@@ -465,12 +465,7 @@
Проектирайте за достъпност с описания на съдържанието и правилен контраст.
Намалете ненужната работа във фонов режим, за да подобрите живота на батерията.
Съвет на деня
- Тест
Следващ въпрос
- Тестът приключи. Вашият резултат: %1$d/%2$d
- Няма повече въпроси, очаквайте нови в следващи обновления.
- Ежедневно напомняне за тест
- Върнете се за днешния тест.
Още приложения от разработчика
Екранна снимка, показваща бутона Нов проект в Android Studio.
Екранна снимка, показваща избор на тип активност при настройка на проекта.
diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml
index 7c680b34..164d8e94 100644
--- a/app/src/main/res/values-bn-rBD/strings.xml
+++ b/app/src/main/res/values-bn-rBD/strings.xml
@@ -466,12 +466,7 @@
কন্টেন্ট বর্ণনা এবং সঠিক কনট্রাস্ট দিয়ে অ্যাক্সেসিবিলিটির জন্য নকশা করুন।
অপ্রয়োজনীয় ব্যাকগ্রাউন্ড কাজ কমিয়ে ব্যাটারির স্থায়িত্ব বাড়ান।
আজকের উপদেশ
- কুইজ
পরবর্তী প্রশ্ন
- কুইজ শেষ. আপনার স্কোর: %1$d/%2$d
- আর কোনো প্রশ্ন নেই, পরবর্তী আপডেটে দেখুন।
- দৈনিক কুইজ রিমাইন্ডার
- আজকের কুইজে ফিরে আসুন.
ডেভেলপারকে আরো টুল
স্ক্রিনশটে Android Studio-তে নতুন প্রকল্প বোতাম দেখা যাচ্ছে।
স্ক্রিনশটে প্রকল্প সেটআপের সময় অ্যাক্টিভিটি টাইপ নির্বাচন দেখা যাচ্ছে।
diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml
index d9f92d90..64447971 100644
--- a/app/src/main/res/values-de-rDE/strings.xml
+++ b/app/src/main/res/values-de-rDE/strings.xml
@@ -467,12 +467,7 @@
Entwickle barrierefrei mit Inhaltsbeschreibungen und ausreichendem Kontrast.
Reduziere unnötige Hintergrundarbeit, um die Akkulaufzeit zu verbessern.
Tipp des Tages
- Quiz
Nächste Frage
- Quiz abgeschlossen. Deine Punktzahl: %1$d/%2$d
- Keine weiteren Fragen, schau bei zukünftigen Updates vorbei.
- Tägliche Quiz-Erinnerung
- Komm zurück für das heutige Quiz.
Weitere Apps des Entwicklers
Screenshot mit der Schaltfläche Neues Projekt in Android Studio.
Screenshot mit der Auswahl des Aktivitätstyps während der Projekteinrichtung.
diff --git a/app/src/main/res/values-es-rGQ/strings.xml b/app/src/main/res/values-es-rGQ/strings.xml
index 9884bce2..fc1ecd48 100644
--- a/app/src/main/res/values-es-rGQ/strings.xml
+++ b/app/src/main/res/values-es-rGQ/strings.xml
@@ -467,12 +467,7 @@
Diseña para la accesibilidad con descripciones de contenido y contraste adecuado.
Reduce el trabajo en segundo plano innecesario para mejorar la duración de la batería.
Consejo del día
- Cuestionario
Siguiente pregunta
- Cuestionario completado. Tu puntuación: %1$d/%2$d
- No hay más preguntas, revisa futuras actualizaciones para más.
- Recordatorio diario del cuestionario
- Vuelve para el cuestionario de hoy.
Más aplicaciones por el desarrollador
Captura de pantalla que muestra el botón Nuevo proyecto en Android Studio.
Captura de pantalla que muestra la selección del tipo de actividad durante la configuración.
diff --git a/app/src/main/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml
index ec1d6f36..8d73f55f 100644
--- a/app/src/main/res/values-es-rMX/strings.xml
+++ b/app/src/main/res/values-es-rMX/strings.xml
@@ -439,12 +439,7 @@
Diseña para la accesibilidad con descripciones de contenido y contraste adecuado.
Reduce el trabajo en segundo plano innecesario para mejorar la duración de la batería.
Consejo del día
- Cuestionario
Siguiente pregunta
- Cuestionario completado. Tu puntuación: %1$d/%2$d
- No hay más preguntas, revisa futuras actualizaciones para más.
- Recordatorio diario del cuestionario
- Vuelve para el cuestionario de hoy.
Más apps del desarrollador
Captura de pantalla que muestra el botón Nuevo proyecto en Android Studio.
Captura de pantalla que muestra la selección del tipo de actividad durante la configuración.
diff --git a/app/src/main/res/values-fil-rPH/strings.xml b/app/src/main/res/values-fil-rPH/strings.xml
index 1741f20e..76c120d2 100644
--- a/app/src/main/res/values-fil-rPH/strings.xml
+++ b/app/src/main/res/values-fil-rPH/strings.xml
@@ -437,12 +437,7 @@
Magdisenyo para maging accessible gamit ang mga paglalarawan ng nilalaman at tamang contrast.
Bawasan ang hindi kinakailangang gawa sa background upang mapahaba ang buhay ng baterya.
Tip ng Araw
- Pagsusulit
Susunod na Tanong
- Tapos na ang pagsusulit. Ang iyong puntos: %1$d/%2$d
- Wala nang mga tanong, abangan ang susunod na mga update.
- Paalala sa Araw-araw na Pagsusulit
- Bumalik para sa pagsusulit ngayong araw.
Higit pang mga app mula sa developer
Screenshot na nagpapakita ng button na New project sa Android Studio.
Screenshot na nagpapakita ng pagpili ng uri ng activity sa pag-set up ng proyekto.
diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml
index fcaa2fc7..0c2b7a54 100644
--- a/app/src/main/res/values-fr-rFR/strings.xml
+++ b/app/src/main/res/values-fr-rFR/strings.xml
@@ -467,12 +467,7 @@
Concevez en tenant compte de l\'accessibilité avec des descriptions de contenu et un contraste adéquat.
Réduisez le travail en arrière-plan inutile pour améliorer l\'autonomie de la batterie.
Astuce du jour
- Quiz
Question suivante
- Quiz terminé . Votre score : %1$d/%2$d
- Plus de questions, consultez les prochaines mises à jour pour plus.
- Rappel quotidien du quiz
- Revenez pour le quiz du jour .
Plus d\'applications par le développeur
Capture d’écran montrant le bouton Nouveau projet dans Android Studio.
Capture d’écran montrant la sélection du type d’activité pendant la configuration du projet.
diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml
index a5a55855..2146d1ec 100644
--- a/app/src/main/res/values-hi-rIN/strings.xml
+++ b/app/src/main/res/values-hi-rIN/strings.xml
@@ -467,12 +467,7 @@
सामग्री विवरण और उचित कॉन्ट्रास्ट के साथ पहुँचनीयता के लिए डिज़ाइन करें।
बैटरी जीवन बढ़ाने के लिए अनावश्यक पृष्ठभूमि कार्य को कम करें।
दिन का सुझाव
- प्रश्नोत्तरी
अगला प्रश्न
- प्रश्नोत्तरी पूरी हुई. आपका स्कोर: %1$d/%2$d
- कोई और प्रश्न नहीं, अधिक के लिए आगामी अपडेट देखें।
- दैनिक प्रश्नोत्तरी अनुस्मारक
- आज की प्रश्नोत्तरी के लिए वापस आएं.
डेवलपर द्वारा अधिक एप्लिकेशन
स्क्रीनशॉट जिसमें Android Studio में नया प्रोजेक्ट बटन दिख रहा है।
स्क्रीनशॉट जिसमें प्रोजेक्ट सेटअप के दौरान एक्टिविटी प्रकार चुनना दिख रहा है।
diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml
index 42f914ac..3e58bd19 100644
--- a/app/src/main/res/values-hu-rHU/strings.xml
+++ b/app/src/main/res/values-hu-rHU/strings.xml
@@ -484,12 +484,7 @@
Tervezzen az akadálymentesség érdekében tartalmi leírásokkal és megfelelő kontraszttal.
Csökkentse a felesleges háttérmunkát az akkumulátor élettartamának javítása érdekében.
A nap tippje
- Kvíz
Következő kérdés
- Kvíz kész. Pontszámod: %1$d/%2$d
- Nincs több kérdés, továbbiakért nézd meg a frissítéseket.
- Napi kvíz emlékeztető
- Gyere vissza a mai kvízért.
A fejlesztő további alkalmazásai
Képernyőkép az Új projekt gombbal az Android Studioban.
diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml
index a02f9ea7..ffb70e19 100644
--- a/app/src/main/res/values-in-rID/strings.xml
+++ b/app/src/main/res/values-in-rID/strings.xml
@@ -465,12 +465,7 @@
Rancang dengan aksesibilitas menggunakan deskripsi konten dan kontras yang tepat.
Kurangi pekerjaan latar belakang yang tidak perlu untuk meningkatkan daya tahan baterai.
Tip Hari
- Kuis
Pertanyaan Selanjutnya
- Kuis selesai. Skor Anda: %1$d/%2$d
- Tidak ada lagi pertanyaan, cek pembaruan selanjutnya untuk lebih.
- Pengingat Kuis Harian
- Kembali untuk kuis hari ini.
Lebih banyak aplikasi oleh pengembang
Cuplikan layar yang menampilkan tombol Proyek baru di Android Studio.
Cuplikan layar yang menampilkan pemilihan jenis aktivitas saat menyiapkan proyek.
diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml
index 1676bb25..da2a869f 100644
--- a/app/src/main/res/values-it-rIT/strings.xml
+++ b/app/src/main/res/values-it-rIT/strings.xml
@@ -486,12 +486,7 @@
Progetta per l\'accessibilità con descrizioni dei contenuti e contrasto adeguato.
Riduci il lavoro in background non necessario per migliorare la durata della batteria.
Suggerimento del giorno
- Quiz
Prossima domanda
- Quiz completato. Il tuo punteggio: %1$d/%2$d
- Nessun\'altra domanda, controlla gli aggiornamenti futuri per altro.
- Promemoria quiz giornaliero
- Torna per il quiz di oggi.
Altre app dello sviluppatore
Screenshot che mostra il pulsante Nuovo progetto in Android Studio.
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 62ff02cd..f169f920 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -486,12 +486,7 @@
コンテンツの説明と適切なコントラストでアクセシビリティに配慮してデザインしましょう。
不要なバックグラウンド作業を減らしてバッテリー寿命を伸ばしましょう。
今日のヒント
- クイズ
次の質問
- クイズ完了。あなたのスコア: %1$d/%2$d
- これ以上質問はありません。続きは次回の更新をお待ちください。
- 毎日のクイズリマインダー
- 今日のクイズに戻ってきてください。
開発者の他のアプリ
Android Studio の新規プロジェクトボタンを示すスクリーンショット。
diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml
index 3e01a683..8c3dbb0c 100644
--- a/app/src/main/res/values-ko-rKR/strings.xml
+++ b/app/src/main/res/values-ko-rKR/strings.xml
@@ -437,12 +437,7 @@
콘텐츠 설명과 적절한 대비로 접근성을 고려해 디자인하세요.
불필요한 백그라운드 작업을 줄여 배터리 수명을 향상시키세요.
오늘의 팁
- 퀴즈
다음 질문
- 퀴즈 완료. 점수: %1$d/%2$d
- 더 이상 질문이 없습니다. 추후 업데이트를 확인하세요.
- 일일 퀴즈 알림
- 오늘의 퀴즈를 위해 다시 오세요.
개발자의 다른 앱
Android Studio에서 새 프로젝트 버튼을 보여주는 스크린샷.
프로젝트 설정 중 액티비티 유형 선택을 보여주는 스크린샷.
diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml
index 1ec3740c..18d48023 100644
--- a/app/src/main/res/values-pl-rPL/strings.xml
+++ b/app/src/main/res/values-pl-rPL/strings.xml
@@ -484,12 +484,7 @@
Projektuj z myślą o dostępności, używając opisów treści i odpowiedniego kontrastu.
Ogranicz zbędną pracę w tle, aby wydłużyć czas pracy baterii.
Porada dnia
- Quiz
Następne pytanie
- Quiz ukończony. Twój wynik: %1$d/%2$d
- Brak kolejnych pytań, sprawdź przyszłe aktualizacje, by zobaczyć więcej.
- Codzienne przypomnienie o quizie
- Wróć na dzisiejszy quiz.
Więcej aplikacji tego dewelopera
Zrzut ekranu pokazujący przycisk Nowy projekt w Android Studio.
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 4ef73fd6..9756496c 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -439,12 +439,7 @@
Projete com acessibilidade usando descrições de conteúdo e contraste adequado.
Reduza o trabalho em segundo plano desnecessário para melhorar a duração da bateria.
Dica do Dia
- Quiz
Próxima pergunta
- Quiz completo. Sua pontuação: %1$d/%2$d
- Sem mais perguntas, confira as próximas atualizações para mais.
- Lembrete diário do quiz
- Volte para o quiz de hoje.
Mais aplicativos do desenvolvedor
Captura de tela mostrando o botão Novo projeto no Android Studio.
Captura de tela mostrando a seleção do tipo de atividade na configuração do projeto.
diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml
index 09917e7e..b5ecfe51 100644
--- a/app/src/main/res/values-ro-rRO/strings.xml
+++ b/app/src/main/res/values-ro-rRO/strings.xml
@@ -475,12 +475,7 @@
Proiectează pentru accesibilitate cu descrieri de conținut și contrast corespunzător.
Reduceți munca de fundal inutilă pentru a îmbunătăți durata bateriei.
Sfat al zilei
- Chestionar
Întrebarea următoare
- Chestionar complet. Scorul tău: %1$d/%2$d
- Nu mai sunt întrebări, urmărește actualizările viitoare pentru mai multe.
- Memento zilnic pentru chestionar
- Revino pentru chestionarul de astăzi.
Mai multe aplicații ale dezvoltatorului
Captură de ecran cu butonul Proiect nou în Android Studio.
Captură de ecran cu selectarea tipului de activitate în timpul configurării proiectului.
diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml
index 5501e0fa..98da1a57 100644
--- a/app/src/main/res/values-ru-rRU/strings.xml
+++ b/app/src/main/res/values-ru-rRU/strings.xml
@@ -465,12 +465,7 @@
Проектируйте с учетом доступности, используя описания содержимого и правильный контраст.
Сократите ненужную фоновую работу, чтобы увеличить время работы батареи.
День Победы
- Викторина
Следующий вопрос
- Викторина завершена. Ваш результат: %1$d/%2$d
- Вопросы закончились, ждите следующих обновлений.
- Ежедневное напоминание о викторине
- Возвращайтесь на сегодняшнюю викторину.
Больше приложений от разработчика
Скриншот с кнопкой Новый проект в Android Studio.
Скриншот выбора типа активности при настройке проекта.
diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml
index 89b7dba5..dddac5a6 100644
--- a/app/src/main/res/values-sv-rSE/strings.xml
+++ b/app/src/main/res/values-sv-rSE/strings.xml
@@ -437,12 +437,7 @@
Designa för tillgänglighet med innehållsbeskrivningar och rätt kontrast.
Minska onödigt bakgrundsarbete för att förbättra batteritiden.
Dagens tips
- Quiz
Nästa fråga
- Quiz klart. Ditt resultat: %1$d/%2$d
- Inga fler frågor, se kommande uppdateringar för mer.
- Daglig quizpåminnelse
- Kom tillbaka för dagens quiz.
Fler appar av utvecklaren
Skärmdump som visar knappen Nytt projekt i Android Studio.
Skärmdump som visar val av aktivitetstyp vid projektkonfiguration.
diff --git a/app/src/main/res/values-th-rTH/strings.xml b/app/src/main/res/values-th-rTH/strings.xml
index cbc7f638..1873356e 100644
--- a/app/src/main/res/values-th-rTH/strings.xml
+++ b/app/src/main/res/values-th-rTH/strings.xml
@@ -439,12 +439,7 @@
ออกแบบโดยคำนึงถึงการเข้าถึงด้วยคำอธิบายเนื้อหาและความคมชัดที่เหมาะสม.
ลดงานเบื้องหลังที่ไม่จำเป็นเพื่อยืดอายุการใช้งานแบตเตอรี่.
เคล็ดลับประจำวัน
- แบบทดสอบ
คำถามถัดไป
- ทำแบบทดสอบเสร็จสิ้น. คะแนนของคุณ: %1$d/%2$d
- ไม่มีคำถามเพิ่มเติม โปรดติดตามการอัปเดตต่อไป
- การแจ้งเตือนแบบทดสอบรายวัน
- กลับมาทำแบบทดสอบของวันนี้.
แอปอื่นๆ จากนักพัฒนา
ภาพหน้าจอแสดงปุ่มโปรเจ็กต์ใหม่ใน Android Studio.
ภาพหน้าจอแสดงการเลือกประเภทกิจกรรมระหว่างตั้งค่าโปรเจ็กต์.
diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml
index 7eb23b1b..3587b7af 100644
--- a/app/src/main/res/values-tr-rTR/strings.xml
+++ b/app/src/main/res/values-tr-rTR/strings.xml
@@ -437,12 +437,7 @@
İçerik açıklamaları ve uygun kontrastla erişilebilirlik için tasarlayın.
Pil ömrünü artırmak için gereksiz arka plan çalışmalarını azaltın.
Günün İpucu
- Test
Sonraki Soru
- Test tamamlandı. Skorunuz: %1$d/%2$d
- Başka soru yok, daha fazlası için güncellemeleri kontrol edin.
- Günlük Test Hatırlatıcısı
- Bugünün testi için geri gelin.
Geliştiricinin diğer uygulamaları
Android Studio’da Yeni proje düğmesini gösteren ekran görüntüsü.
Proje kurulumunda etkinlik türü seçimini gösteren ekran görüntüsü.
diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml
index 691a6d9f..a9c923fc 100644
--- a/app/src/main/res/values-uk-rUA/strings.xml
+++ b/app/src/main/res/values-uk-rUA/strings.xml
@@ -437,12 +437,7 @@
Проєктуйте з урахуванням доступності, використовуючи описи вмісту та належний контраст.
Зменшуйте непотрібну фонову роботу, щоб покращити час роботи акумулятора.
Порада дня
- Вікторина
Наступне запитання
- Вікторину завершено. Ваш рахунок: %1$d/%2$d
- Більше питань немає, стежте за оновленнями.
- Щоденне нагадування про вікторину
- Поверніться на сьогоднішню вікторину.
Інші додатки розробника
Знімок екрана з кнопкою Новий проєкт у Android Studio.
Знімок екрана вибору типу активності під час налаштування проєкту.
diff --git a/app/src/main/res/values-ur-rPK/strings.xml b/app/src/main/res/values-ur-rPK/strings.xml
index 788a3c9e..d54987d5 100644
--- a/app/src/main/res/values-ur-rPK/strings.xml
+++ b/app/src/main/res/values-ur-rPK/strings.xml
@@ -438,12 +438,7 @@
رسائی کے لیے مواد کی وضاحتوں اور مناسب کنٹراسٹ کے ساتھ ڈیزائن کریں۔
بیٹری کی زندگی بہتر بنانے کے لیے غیر ضروری پس منظر کا کام کم کریں۔
آج کی ٹپ
- کوئز
اگلا سوال
- کوئز مکمل. آپ کا اسکور: %1$d/%2$d
- مزید سوالات نہیں، مزید کے لیے آنے والی اپ ڈیٹس دیکھیں۔
- روزانہ کوئز یاددہانی
- آج کے کوئز کے لیے دوبارہ آئیں.
ڈیولپر کی مزید ایپس
اسکرین شاٹ جس میں اینڈروئیڈ اسٹوڈیو میں نیا پروجیکٹ بٹن دکھایا گیا ہے۔
اسکرین شاٹ جس میں پروجیکٹ سیٹ اپ کے دوران سرگرمی کی قسم کا انتخاب دکھایا گیا ہے۔
diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml
index e3b29446..347dcb87 100644
--- a/app/src/main/res/values-vi-rVN/strings.xml
+++ b/app/src/main/res/values-vi-rVN/strings.xml
@@ -437,12 +437,7 @@
Thiết kế có tính đến khả năng tiếp cận với mô tả nội dung và độ tương phản phù hợp.
Giảm công việc nền không cần thiết để cải thiện thời lượng pin.
Mẹo trong ngày
- Câu đố
Câu hỏi tiếp theo
- Hoàn thành câu đố. Điểm của bạn: %1$d/%2$d
- Hết câu hỏi, hãy xem các bản cập nhật sau để có thêm.
- Nhắc nhở làm quiz hằng ngày
- Quay lại để làm quiz hôm nay.
Các ứng dụng khác của nhà phát triển
Ảnh chụp màn hình hiển thị nút Dự án mới trong Android Studio.
Ảnh chụp màn hình hiển thị lựa chọn loại hoạt động khi thiết lập dự án.
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 09e9aa9b..4045a782 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -437,12 +437,7 @@
使用內容描述和適當的對比來設計無障礙性。
減少不必要的背景作業以改善電池續航。
今日提示
- 小測驗
下一題
- 測驗完成!你的分數:%1$d/%2$d
- 沒有更多題目,請留意之後的更新。
- 每日測驗提醒
- 回來參加今天的測驗吧!
開發人員的其他應用程式
顯示 Android Studio 中新專案按鈕的螢幕截圖。
顯示在專案設定期間選擇活動類型的螢幕截圖。
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8f6fe066..7c2de546 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -476,12 +476,7 @@
Design for accessibility with content descriptions and proper contrast.
Reduce unnecessary background work to improve battery life.
Tip of the day
- Quiz
Next question
- Quiz complete. Your score: %1$d/%2$d
- No more questions, check further updates for more.
- Daily quiz reminder
- Come back for today\'s quiz.
More apps by the developer
Screenshot showing the New project button in Android Studio.
Screenshot showing activity type selection during project setup.
diff --git a/app/src/test/java/com/d4rk/androidtutorials/java/data/repository/DefaultQuizRepositoryTest.java b/app/src/test/java/com/d4rk/androidtutorials/java/data/repository/DefaultQuizRepositoryTest.java
deleted file mode 100644
index 8d258ad8..00000000
--- a/app/src/test/java/com/d4rk/androidtutorials/java/data/repository/DefaultQuizRepositoryTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package com.d4rk.androidtutorials.java.data.repository;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import com.d4rk.androidtutorials.java.data.model.QuizQuestion;
-import com.d4rk.androidtutorials.java.data.source.QuizLocalDataSource;
-
-import org.junit.Test;
-
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-public class DefaultQuizRepositoryTest {
-
- @Test
- public void loadQuestionsReturnsLocalData() throws InterruptedException {
- List expected = List.of(
- new QuizQuestion("Q", new String[]{"A", "B"}, 0)
- );
- FakeQuizLocalDataSource local = new FakeQuizLocalDataSource(expected);
- DefaultQuizRepository repository = new DefaultQuizRepository(local);
- CountDownLatch latch = new CountDownLatch(1);
- repository.loadQuestions(result -> {
- assertEquals(expected, result);
- latch.countDown();
- });
- assertTrue(latch.await(1, TimeUnit.SECONDS));
- }
-
- private record FakeQuizLocalDataSource(
- List questions) implements QuizLocalDataSource {
-
- @Override
- public void loadQuestions(QuestionsCallback callback) {
- callback.onResult(questions);
- }
- }
-}