Skip to content

Commit bc23641

Browse files
Merge pull request #6 from D4rK7355608/codex/refactor-codebase-and-address-identified-issues
Refactor font handling and cleanup
2 parents 9fced1a + 4f6ce00 commit bc23641

File tree

18 files changed

+63
-150
lines changed

18 files changed

+63
-150
lines changed

app/src/main/java/com/d4rk/androidtutorials/java/ads/managers/AppOpenAd.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public interface OnShowAdCompleteListener {
8282
}
8383

8484
private static class AppOpenAdManager {
85-
private static final String AD_UNIT_ID = "\n" + "ca-app-pub-5294151573817700/9123330876";
85+
private static final String AD_UNIT_ID = "ca-app-pub-5294151573817700/9123330876";
8686
private com.google.android.gms.ads.appopen.AppOpenAd appOpenAd = null;
8787
private boolean isLoadingAd = false;
8888
private boolean isShowingAd = false;

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/basics/viewbinding/ViewBindingTutorialActivity.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
import android.os.Bundle;
88

99
import androidx.appcompat.app.AppCompatActivity;
10-
import androidx.core.content.res.ResourcesCompat;
1110
import androidx.preference.PreferenceManager;
1211

1312
import com.d4rk.androidtutorials.java.R;
1413
import com.d4rk.androidtutorials.java.databinding.ActivityViewBindingTutorialBinding;
1514
import com.d4rk.androidtutorials.java.utils.EdgeToEdgeDelegate;
1615
import com.google.android.gms.ads.AdRequest;
17-
import com.google.android.gms.ads.MobileAds;
16+
import com.d4rk.androidtutorials.java.utils.FontManager;
17+
import android.util.Log;
1818

1919
import java.io.BufferedReader;
2020
import java.io.IOException;
@@ -33,7 +33,6 @@ protected void onCreate(Bundle savedInstanceState) {
3333
setContentView(binding.getRoot());
3434

3535
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
36-
MobileAds.initialize(this);
3736

3837
EdgeToEdgeDelegate edgeToEdgeDelegate = new EdgeToEdgeDelegate(this);
3938
edgeToEdgeDelegate.applyEdgeToEdge(binding.scrollView);
@@ -52,15 +51,8 @@ protected void onCreate(Bundle savedInstanceState) {
5251
InputStream bindingFragment = getResources().openRawResource(R.raw.text_binding_fragment);
5352
binding.bindingFragmentsText.setText(readTextFromInputStream(bindingFragment));
5453

55-
SharedPreferences preferenceManager = PreferenceManager.getDefaultSharedPreferences(this);
56-
Typeface monospaceFont = switch (preferenceManager.getString(getString(R.string.key_monospace_font), "0")) {
57-
case "1" -> ResourcesCompat.getFont(this, R.font.font_fira_code);
58-
case "2" -> ResourcesCompat.getFont(this, R.font.font_jetbrains_mono);
59-
case "3" -> ResourcesCompat.getFont(this, R.font.font_noto_sans_mono);
60-
case "4" -> ResourcesCompat.getFont(this, R.font.font_poppins);
61-
case "5" -> ResourcesCompat.getFont(this, R.font.font_roboto_mono);
62-
default -> ResourcesCompat.getFont(this, R.font.font_audiowide);
63-
};
54+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
55+
Typeface monospaceFont = FontManager.getMonospaceFont(this, prefs);
6456
binding.bindingText.setTypeface(monospaceFont);
6557
binding.bindingActivitiesText.setTypeface(monospaceFont);
6658
binding.bindingFragmentsText.setTypeface(monospaceFont);
@@ -74,7 +66,7 @@ private String readTextFromInputStream(InputStream inputStream) {
7466
builder.append(line).append('\n');
7567
}
7668
} catch (IOException e) {
77-
e.printStackTrace();
69+
Log.e("ViewBindingActivity", "Error reading file", e);
7870
}
7971
return builder.toString();
8072
}

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99

1010
import androidx.annotation.NonNull;
1111
import androidx.annotation.Nullable;
12-
import androidx.core.content.res.ResourcesCompat;
1312
import androidx.fragment.app.Fragment;
1413
import androidx.preference.PreferenceManager;
1514

1615
import com.d4rk.androidtutorials.java.R;
1716
import com.d4rk.androidtutorials.java.databinding.FragmentSameCodeBinding;
1817
import com.google.android.gms.ads.AdRequest;
19-
import com.google.android.gms.ads.MobileAds;
18+
import com.d4rk.androidtutorials.java.utils.FontManager;
19+
import android.util.Log;
2020

2121
import java.io.BufferedReader;
2222
import java.io.IOException;
@@ -32,7 +32,6 @@ public class ButtonsTabCodeFragment extends Fragment {
3232
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
3333
binding = FragmentSameCodeBinding.inflate(inflater, container, false);
3434
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
35-
MobileAds.initialize(requireContext());
3635
binding.adView.loadAd(new AdRequest.Builder().build());
3736
StringBuilder builder = new StringBuilder();
3837
InputStream inputStream = getResources().openRawResource(R.raw.text_buttons_java);
@@ -43,7 +42,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
4342
}
4443
binding.textViewCode.setText(builder.toString());
4544
} catch (IOException e) {
46-
e.printStackTrace();
45+
Log.e("ButtonsTabCode", "Error reading code", e);
4746
}
4847
binding.textViewWarning.setText(R.string.same_code_buttons);
4948
return binding.getRoot();
@@ -52,15 +51,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
5251
@Override
5352
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
5453
super.onViewCreated(view, savedInstanceState);
55-
SharedPreferences preferenceManager = PreferenceManager.getDefaultSharedPreferences(requireContext());
56-
Typeface monospaceFont = switch (preferenceManager.getString(getString(R.string.key_monospace_font), "0")) {
57-
case "1" -> ResourcesCompat.getFont(requireContext(), R.font.font_fira_code);
58-
case "2" -> ResourcesCompat.getFont(requireContext(), R.font.font_jetbrains_mono);
59-
case "3" -> ResourcesCompat.getFont(requireContext(), R.font.font_noto_sans_mono);
60-
case "4" -> ResourcesCompat.getFont(requireContext(), R.font.font_poppins);
61-
case "5" -> ResourcesCompat.getFont(requireContext(), R.font.font_roboto_mono);
62-
default -> ResourcesCompat.getFont(requireContext(), R.font.font_audiowide);
63-
};
54+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
55+
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
6456
binding.textViewCode.setTypeface(monospaceFont);
6557
}
6658
}

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

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99

1010
import androidx.annotation.NonNull;
1111
import androidx.annotation.Nullable;
12-
import androidx.core.content.res.ResourcesCompat;
1312
import androidx.fragment.app.Fragment;
1413
import androidx.preference.PreferenceManager;
1514

1615
import com.d4rk.androidtutorials.java.R;
1716
import com.d4rk.androidtutorials.java.databinding.FragmentButtonsLayoutBinding;
1817
import com.google.android.gms.ads.AdRequest;
19-
import com.google.android.gms.ads.MobileAds;
18+
import com.d4rk.androidtutorials.java.utils.FontManager;
19+
import android.util.Log;
2020
import com.google.android.material.textview.MaterialTextView;
2121

2222
import java.io.IOException;
@@ -35,7 +35,6 @@ public class ButtonsTabLayoutFragment extends Fragment {
3535
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
3636
binding = FragmentButtonsLayoutBinding.inflate(inflater, container, false);
3737
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
38-
MobileAds.initialize(requireContext());
3938
binding.adView.loadAd(new AdRequest.Builder().build());
4039
buttonXMLResources.put(R.raw.text_button_normal_xml, binding.textViewButtonNormalXml);
4140
buttonXMLResources.put(R.raw.text_button_outlined_xml, binding.textViewButtonOutlinedXml);
@@ -66,7 +65,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
6665
textView.setText(text);
6766
}
6867
} catch (IOException e) {
69-
e.printStackTrace();
68+
Log.e("ButtonsTab", "Error reading button resource", e);
7069
}
7170
}
7271
return binding.getRoot();
@@ -75,15 +74,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
7574
@Override
7675
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
7776
super.onViewCreated(view, savedInstanceState);
78-
SharedPreferences preferenceManager = PreferenceManager.getDefaultSharedPreferences(requireContext());
79-
Typeface monospaceFont = switch (preferenceManager.getString(getString(R.string.key_monospace_font), "0")) {
80-
case "1" -> ResourcesCompat.getFont(requireContext(), R.font.font_fira_code);
81-
case "2" -> ResourcesCompat.getFont(requireContext(), R.font.font_jetbrains_mono);
82-
case "3" -> ResourcesCompat.getFont(requireContext(), R.font.font_noto_sans_mono);
83-
case "4" -> ResourcesCompat.getFont(requireContext(), R.font.font_poppins);
84-
case "5" -> ResourcesCompat.getFont(requireContext(), R.font.font_roboto_mono);
85-
default -> ResourcesCompat.getFont(requireContext(), R.font.font_audiowide);
86-
};
77+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
78+
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
8779
binding.textViewButtonNormalXml.setTypeface(monospaceFont);
8880
binding.textViewButtonOutlinedXml.setTypeface(monospaceFont);
8981
binding.textViewButtonElevatedXml.setTypeface(monospaceFont);

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/clocks/clock/tabs/ClockTabLayoutFragment.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@
1010

1111
import androidx.annotation.NonNull;
1212
import androidx.annotation.Nullable;
13-
import androidx.core.content.res.ResourcesCompat;
1413
import androidx.fragment.app.Fragment;
1514
import androidx.preference.PreferenceManager;
1615

1716
import com.d4rk.androidtutorials.java.R;
1817
import com.d4rk.androidtutorials.java.databinding.FragmentClockLayoutBinding;
1918
import com.google.android.gms.ads.AdRequest;
20-
import com.google.android.gms.ads.MobileAds;
19+
import com.d4rk.androidtutorials.java.utils.FontManager;
20+
import android.util.Log;
2121

2222
import java.io.ByteArrayOutputStream;
2323
import java.io.IOException;
@@ -32,7 +32,6 @@ public class ClockTabLayoutFragment extends Fragment {
3232
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
3333
binding = FragmentClockLayoutBinding.inflate(inflater, container, false);
3434
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
35-
MobileAds.initialize(requireContext());
3635
binding.adView.loadAd(new AdRequest.Builder().build());
3736
setTextView(binding.textViewDigitalClockXml, R.raw.text_clock_digital_xml);
3837
setTextView(binding.textViewTextClockXml, R.raw.text_clock_xml);
@@ -51,22 +50,15 @@ private void setTextView(TextView textView, int rawResource) {
5150
String text = result.toString();
5251
textView.setText(text);
5352
} catch (IOException e) {
54-
e.printStackTrace();
53+
Log.e("ClockTab", "Error reading clock layout", e);
5554
}
5655
}
5756

5857
@Override
5958
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
6059
super.onViewCreated(view, savedInstanceState);
61-
SharedPreferences preferenceManager = PreferenceManager.getDefaultSharedPreferences(requireContext());
62-
Typeface monospaceFont = switch (preferenceManager.getString(getString(R.string.key_monospace_font), "0")) {
63-
case "1" -> ResourcesCompat.getFont(requireContext(), R.font.font_fira_code);
64-
case "2" -> ResourcesCompat.getFont(requireContext(), R.font.font_jetbrains_mono);
65-
case "3" -> ResourcesCompat.getFont(requireContext(), R.font.font_noto_sans_mono);
66-
case "4" -> ResourcesCompat.getFont(requireContext(), R.font.font_poppins);
67-
case "5" -> ResourcesCompat.getFont(requireContext(), R.font.font_roboto_mono);
68-
default -> ResourcesCompat.getFont(requireContext(), R.font.font_audiowide);
69-
};
60+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
61+
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
7062
binding.textViewDigitalClockXml.setTypeface(monospaceFont);
7163
binding.textViewTextClockXml.setTypeface(monospaceFont);
7264
binding.textViewAnalogClockXml.setTypeface(monospaceFont);

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/linear/tabs/LinearLayoutTabLayoutFragment.java

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99

1010
import androidx.annotation.NonNull;
1111
import androidx.annotation.Nullable;
12-
import androidx.core.content.res.ResourcesCompat;
1312
import androidx.fragment.app.Fragment;
1413
import androidx.preference.PreferenceManager;
1514

1615
import com.d4rk.androidtutorials.java.R;
1716
import com.d4rk.androidtutorials.java.databinding.FragmentLinearLayoutLayoutBinding;
1817
import com.google.android.gms.ads.AdRequest;
19-
import com.google.android.gms.ads.MobileAds;
18+
import com.d4rk.androidtutorials.java.utils.FontManager;
19+
import android.util.Log;
2020

2121
import java.io.BufferedReader;
2222
import java.io.IOException;
@@ -31,7 +31,6 @@ public class LinearLayoutTabLayoutFragment extends Fragment {
3131
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
3232
binding = FragmentLinearLayoutLayoutBinding.inflate(inflater, container, false);
3333
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
34-
MobileAds.initialize(requireContext());
3534
binding.adView.loadAd(new AdRequest.Builder().build());
3635
StringBuilder verticalBuilder = new StringBuilder();
3736
try (BufferedReader readerVertical = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.text_linear_layout_vertical_xml)))) {
@@ -41,7 +40,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
4140
}
4241
binding.textViewVerticalXml.setText(verticalBuilder.toString());
4342
} catch (IOException e) {
44-
e.printStackTrace();
43+
Log.e("LinearLayoutTab", "Error reading vertical layout", e);
4544
}
4645
StringBuilder horizontalBuilder = new StringBuilder();
4746
try (BufferedReader readerHorizontal = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.text_linear_layout_horizontal_xml)))) {
@@ -51,23 +50,16 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
5150
}
5251
binding.textViewHorizontalXml.setText(horizontalBuilder.toString());
5352
} catch (IOException e) {
54-
e.printStackTrace();
53+
Log.e("LinearLayoutTab", "Error reading horizontal layout", e);
5554
}
5655
return binding.getRoot();
5756
}
5857

5958
@Override
6059
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
6160
super.onViewCreated(view, savedInstanceState);
62-
SharedPreferences preferenceManager = PreferenceManager.getDefaultSharedPreferences(requireContext());
63-
Typeface monospaceFont = switch (preferenceManager.getString(getString(R.string.key_monospace_font), "0")) {
64-
case "1" -> ResourcesCompat.getFont(requireContext(), R.font.font_fira_code);
65-
case "2" -> ResourcesCompat.getFont(requireContext(), R.font.font_jetbrains_mono);
66-
case "3" -> ResourcesCompat.getFont(requireContext(), R.font.font_noto_sans_mono);
67-
case "4" -> ResourcesCompat.getFont(requireContext(), R.font.font_poppins);
68-
case "5" -> ResourcesCompat.getFont(requireContext(), R.font.font_roboto_mono);
69-
default -> ResourcesCompat.getFont(requireContext(), R.font.font_audiowide);
70-
};
61+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
62+
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
7163
binding.textViewVerticalXml.setTypeface(monospaceFont);
7264
binding.textViewHorizontalXml.setTypeface(monospaceFont);
7365
}

app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/android/lessons/layouts/relative/tabs/RelativeLayoutTabLayoutFragment.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99

1010
import androidx.annotation.NonNull;
1111
import androidx.annotation.Nullable;
12-
import androidx.core.content.res.ResourcesCompat;
1312
import androidx.fragment.app.Fragment;
1413
import androidx.preference.PreferenceManager;
1514

1615
import com.d4rk.androidtutorials.java.R;
1716
import com.d4rk.androidtutorials.java.databinding.FragmentLayoutBinding;
1817
import com.google.android.gms.ads.AdRequest;
19-
import com.google.android.gms.ads.MobileAds;
18+
import com.d4rk.androidtutorials.java.utils.FontManager;
19+
import android.util.Log;
2020

2121
import java.io.BufferedReader;
2222
import java.io.IOException;
@@ -32,7 +32,6 @@ public class RelativeLayoutTabLayoutFragment extends Fragment {
3232
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
3333
binding = FragmentLayoutBinding.inflate(inflater, container, false);
3434
new FastScrollerBuilder(binding.scrollView).useMd2Style().build();
35-
MobileAds.initialize(requireContext());
3635
binding.adView.loadAd(new AdRequest.Builder().build());
3736
StringBuilder builder = new StringBuilder();
3837
InputStream inputStream = getResources().openRawResource(R.raw.text_relative_layout_xml);
@@ -43,23 +42,16 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
4342
}
4443
binding.textView.setText(builder.toString());
4544
} catch (IOException e) {
46-
e.printStackTrace();
45+
Log.e("RelativeLayoutTab", "Error reading layout text", e);
4746
}
4847
return binding.getRoot();
4948
}
5049

5150
@Override
5251
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
5352
super.onViewCreated(view, savedInstanceState);
54-
SharedPreferences preferenceManager = PreferenceManager.getDefaultSharedPreferences(requireContext());
55-
Typeface monospaceFont = switch (preferenceManager.getString(getString(R.string.key_monospace_font), "0")) {
56-
case "1" -> ResourcesCompat.getFont(requireContext(), R.font.font_fira_code);
57-
case "2" -> ResourcesCompat.getFont(requireContext(), R.font.font_jetbrains_mono);
58-
case "3" -> ResourcesCompat.getFont(requireContext(), R.font.font_noto_sans_mono);
59-
case "4" -> ResourcesCompat.getFont(requireContext(), R.font.font_poppins);
60-
case "5" -> ResourcesCompat.getFont(requireContext(), R.font.font_roboto_mono);
61-
default -> ResourcesCompat.getFont(requireContext(), R.font.font_audiowide);
62-
};
53+
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext());
54+
Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs);
6355
binding.textView.setTypeface(monospaceFont);
6456
}
6557
}

0 commit comments

Comments
 (0)