Skip to content

Navigation Menu

Sign in
Appearance settings

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

Provide feedback

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

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 0dc6b98

Browse files
Refactor: Introduce LessonUiUtils to simplify lesson UI setup
This commit introduces a new `LessonUiUtils` class to centralize and simplify the setup of the description section in various lesson activities. Key changes include: - A new `setupDescriptionSection` method in `LessonUiUtils` that handles setting the description text, header, layout preview header, and loading the banner ad. - Refactoring multiple lesson activities (`LinearLayoutActivity`, `ChronometerActivity`, `ImageButtonsActivity`, etc.) to use the new utility method, reducing repetitive code. - Minor code cleanup, including import reordering in several files.
1 parent 86f0f20 commit 0dc6b98

File tree

28 files changed

+136
-68
lines changed

28 files changed

+136
-68
lines changed

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/alertdialog/AlertDialogActivity.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Intent;
44
import android.os.Bundle;
5+
56
import com.d4rk.androidtutorials.java.R;
67
import com.d4rk.androidtutorials.java.databinding.ActivityAlertDialogBinding;
78
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/alerts/snackbar/SnackBarActivity.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.content.Intent;
44
import android.os.Bundle;
5+
56
import com.d4rk.androidtutorials.java.R;
67
import com.d4rk.androidtutorials.java.databinding.ActivitySnackBarBinding;
78
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/shortcuts/tabs/ShortcutsCategoryActivity.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,20 @@
55
import android.view.View;
66
import android.view.ViewGroup;
77

8+
import androidx.recyclerview.widget.LinearLayoutManager;
9+
import androidx.recyclerview.widget.RecyclerView;
10+
811
import com.d4rk.androidtutorials.java.R;
912
import com.d4rk.androidtutorials.java.ads.AdUtils;
13+
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
1014
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.basics.shortcuts.ShortcutItem;
1115
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.basics.shortcuts.ShortcutsAdapter;
1216
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.basics.shortcuts.ShortcutsRepository;
13-
import com.d4rk.androidtutorials.java.ui.components.navigation.UpNavigationActivity;
1417
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeHelper;
1518
import com.google.android.gms.ads.AdView;
1619

1720
import java.util.List;
1821

19-
import androidx.recyclerview.widget.LinearLayoutManager;
20-
import androidx.recyclerview.widget.RecyclerView;
21-
2222
import me.zhanghai.android.fastscroll.FastScrollScrollView;
2323
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
2424

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/ButtonsActivity.java‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
package com.d4rk.androidtutorials.java.ui.screens.android.lessons.buttons.buttons;
22

33
import android.os.Bundle;
4+
45
import com.d4rk.androidtutorials.java.R;
5-
import com.d4rk.androidtutorials.java.ads.AdUtils;
66
import com.d4rk.androidtutorials.java.databinding.ActivityButtonsBinding;
77
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;
88
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.buttons.buttons.tabs.ButtonsTabCodeFragment;
99
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.buttons.buttons.tabs.ButtonsTabLayoutFragment;
1010
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.common.LessonCodeTabsActivity;
11+
import com.d4rk.androidtutorials.java.ui.utils.LessonUiUtils;
1112
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeHelper;
1213
import com.google.android.material.snackbar.Snackbar;
1314

14-
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
1515
import java.util.Arrays;
1616

17+
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
18+
1719
public class ButtonsActivity extends SyntaxFabActivity {
1820
private ActivityButtonsBinding binding;
1921

@@ -24,10 +26,9 @@ protected void onCreate(Bundle savedInstanceState) {
2426
setContentView(binding.getRoot());
2527
EdgeToEdgeHelper.applyEdgeToEdge(getWindow(), binding.getRoot());
2628

27-
binding.descriptionSection.descriptionHeader.getRoot().setText(R.string.description);
28-
binding.layoutPreviewHeader.getRoot().setText(R.string.layout_preview);
29-
binding.descriptionSection.descriptionText.setText(R.string.summary_buttons);
30-
AdUtils.loadBanner(binding.descriptionSection.adView);
29+
LessonUiUtils.setupDescriptionSection(binding.descriptionSection,
30+
R.string.summary_buttons,
31+
true);
3132

3233
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
3334
binding.buttonNormal.setOnClickListener(view -> Snackbar.make(binding.getRoot(), getString(R.string.button_normal) + " " + getString(R.string.snack_bar_clicked), Snackbar.LENGTH_SHORT).show());

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/buttons/tabs/ButtonsTabLayoutFragment.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.d4rk.androidtutorials.java.ads.AdUtils;
1414
import com.d4rk.androidtutorials.java.databinding.FragmentButtonsLayoutBinding;
1515
import com.d4rk.androidtutorials.java.utils.CodeViewUtils;
16+
1617
import java.util.LinkedHashMap;
1718
import java.util.Map;
1819

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/image/ImageButtonsActivity.java‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
import android.content.Intent;
44
import android.os.Bundle;
5+
56
import com.d4rk.androidtutorials.java.R;
6-
import com.d4rk.androidtutorials.java.ads.AdUtils;
77
import com.d4rk.androidtutorials.java.databinding.ActivityImageButtonsBinding;
88
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;
99
import com.d4rk.androidtutorials.java.ui.screens.android.CodeActivity;
10+
import com.d4rk.androidtutorials.java.ui.utils.LessonUiUtils;
1011
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeHelper;
1112
import com.google.android.material.snackbar.Snackbar;
1213

@@ -20,10 +21,9 @@ protected void onCreate(Bundle savedInstanceState) {
2021
setContentView(binding.getRoot());
2122
EdgeToEdgeHelper.applyEdgeToEdge(getWindow(), binding.getRoot());
2223

23-
binding.descriptionSection.descriptionHeader.getRoot().setText(R.string.description);
24-
binding.layoutPreviewHeader.getRoot().setText(R.string.layout_preview);
25-
binding.descriptionSection.descriptionText.setText(R.string.summary_image_buttons);
26-
AdUtils.loadBanner(binding.descriptionSection.adView);
24+
LessonUiUtils.setupDescriptionSection(binding.descriptionSection,
25+
R.string.summary_image_buttons,
26+
true);
2727

2828
binding.imageButton.setOnClickListener(v ->
2929
Snackbar.make(binding.getRoot(), R.string.snack_image_button, Snackbar.LENGTH_SHORT).show()

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/buttons/switches/SwitchActivity.java‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
import android.content.Intent;
44
import android.os.Bundle;
5+
56
import com.d4rk.androidtutorials.java.R;
6-
import com.d4rk.androidtutorials.java.ads.AdUtils;
77
import com.d4rk.androidtutorials.java.databinding.ActivitySwitchBinding;
88
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;
99
import com.d4rk.androidtutorials.java.ui.screens.android.CodeActivity;
10+
import com.d4rk.androidtutorials.java.ui.utils.LessonUiUtils;
1011
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeHelper;
1112
import com.google.android.material.snackbar.Snackbar;
1213

@@ -22,10 +23,9 @@ protected void onCreate(Bundle savedInstanceState) {
2223
setContentView(binding.getRoot());
2324

2425
EdgeToEdgeHelper.applyEdgeToEdge(getWindow(), binding.getRoot());
25-
binding.descriptionSection.descriptionHeader.getRoot().setText(R.string.description);
26-
binding.layoutPreviewHeader.getRoot().setText(R.string.layout_preview);
27-
binding.descriptionSection.descriptionText.setText(R.string.summary_toggle);
28-
AdUtils.loadBanner(binding.descriptionSection.adView);
26+
LessonUiUtils.setupDescriptionSection(binding.descriptionSection,
27+
R.string.summary_toggle,
28+
true);
2929

3030
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
3131
setOnClickListeners();

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/chronometer/ChronometerActivity.java‎

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

99
import com.d4rk.androidtutorials.java.R;
10-
import com.d4rk.androidtutorials.java.ads.AdUtils;
1110
import com.d4rk.androidtutorials.java.databinding.ActivityChronometerBinding;
1211
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;
1312
import com.d4rk.androidtutorials.java.ui.screens.android.CodeActivity;
13+
import com.d4rk.androidtutorials.java.ui.utils.LessonUiUtils;
1414
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeHelper;
1515

1616
public class ChronometerActivity extends SyntaxFabActivity {
@@ -24,10 +24,9 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
2424

2525
EdgeToEdgeHelper.applyEdgeToEdge(getWindow(), binding.getRoot());
2626

27-
binding.descriptionSection.descriptionHeader.getRoot().setText(R.string.description);
28-
binding.layoutPreviewHeader.getRoot().setText(R.string.layout_preview);
29-
binding.descriptionSection.descriptionText.setText(R.string.summary_chronometer);
30-
AdUtils.loadBanner(binding.descriptionSection.adView);
27+
LessonUiUtils.setupDescriptionSection(binding.descriptionSection,
28+
R.string.summary_chronometer,
29+
true);
3130

3231
setupSyntaxFab(binding.floatingButtonShowSyntax, () -> {
3332
Intent intent = new Intent(this, CodeActivity.class);

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/ClockActivity.java‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
package com.d4rk.androidtutorials.java.ui.screens.android.lessons.clocks.clock;
22

33
import android.os.Bundle;
4+
45
import com.d4rk.androidtutorials.java.R;
5-
import com.d4rk.androidtutorials.java.ads.AdUtils;
66
import com.d4rk.androidtutorials.java.databinding.ActivityClockBinding;
77
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;
88
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.clocks.clock.tabs.ClockTabCodeFragment;
99
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.clocks.clock.tabs.ClockTabLayoutFragment;
1010
import com.d4rk.androidtutorials.java.ui.screens.android.lessons.common.LessonCodeTabsActivity;
11+
import com.d4rk.androidtutorials.java.ui.utils.LessonUiUtils;
1112
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeHelper;
1213

13-
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
1414
import java.util.Arrays;
1515

16+
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
17+
1618
public class ClockActivity extends SyntaxFabActivity {
1719
private ActivityClockBinding binding;
1820

@@ -23,10 +25,9 @@ protected void onCreate(Bundle savedInstanceState) {
2325
setContentView(binding.getRoot());
2426
EdgeToEdgeHelper.applyEdgeToEdge(getWindow(), binding.getRoot());
2527

26-
binding.descriptionSection.descriptionHeader.getRoot().setText(R.string.description);
27-
binding.layoutPreviewHeader.getRoot().setText(R.string.layout_preview);
28-
binding.descriptionSection.descriptionText.setText(R.string.summary_clocks);
29-
AdUtils.loadBanner(binding.descriptionSection.adView);
28+
LessonUiUtils.setupDescriptionSection(binding.descriptionSection,
29+
R.string.summary_clocks,
30+
true);
3031

3132

3233
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();

‎app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/datepicker/DatePickerActivity.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.DatePickerDialog;
44
import android.content.Intent;
55
import android.os.Bundle;
6+
67
import com.d4rk.androidtutorials.java.databinding.ActivityDatePickerBinding;
78
import com.d4rk.androidtutorials.java.ui.components.navigation.SyntaxFabActivity;
89
import com.d4rk.androidtutorials.java.ui.screens.android.CodeActivity;

0 commit comments

Comments
(0)

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