|
1 | 1 | package com.d4rk.androidtutorials.java.ui.screens.android.lessons.buttons.buttons.tabs; |
2 | 2 |
|
3 | | -import android.content.SharedPreferences; |
4 | | -import android.graphics.Typeface; |
5 | 3 | import android.os.Bundle; |
6 | | -import android.util.Log; |
7 | 4 | import android.view.LayoutInflater; |
8 | 5 | import android.view.View; |
9 | 6 | import android.view.ViewGroup; |
10 | 7 |
|
11 | 8 | import androidx.annotation.NonNull; |
12 | 9 | import androidx.fragment.app.Fragment; |
13 | | -import androidx.preference.PreferenceManager; |
14 | 10 |
|
15 | 11 | import com.amrdeveloper.codeview.CodeView; |
16 | 12 | import com.d4rk.androidtutorials.java.R; |
17 | 13 | import com.d4rk.androidtutorials.java.ads.AdUtils; |
18 | 14 | import com.d4rk.androidtutorials.java.databinding.FragmentButtonsLayoutBinding; |
19 | | -import com.d4rk.androidtutorials.java.utils.CodeHighlighter; |
20 | 15 | import com.d4rk.androidtutorials.java.utils.CodeViewUtils; |
21 | | -import com.d4rk.androidtutorials.java.utils.FontManager; |
22 | | - |
23 | | -import java.io.BufferedReader; |
24 | | -import java.io.IOException; |
25 | | -import java.io.InputStream; |
26 | | -import java.io.InputStreamReader; |
27 | | -import java.nio.charset.StandardCharsets; |
28 | | -import java.util.HashMap; |
| 16 | +import java.util.LinkedHashMap; |
29 | 17 | import java.util.Map; |
30 | 18 |
|
31 | | -import me.zhanghai.android.fastscroll.FastScrollerBuilder; |
32 | | - |
33 | 19 | public class ButtonsTabLayoutFragment extends Fragment { |
34 | | - private final Map<Integer, CodeView> buttonXMLResources = new HashMap<>(); |
35 | | - |
36 | 20 | @Override |
37 | 21 | public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { |
38 | 22 | FragmentButtonsLayoutBinding binding = FragmentButtonsLayoutBinding.inflate(inflater, container, false); |
39 | | - new FastScrollerBuilder(binding.scrollView).useMd2Style().build(); |
40 | 23 | AdUtils.loadBanner(binding.adView); |
41 | | - |
42 | | - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(requireContext()); |
43 | | - Typeface monospaceFont = FontManager.getMonospaceFont(requireContext(), prefs); |
44 | | - CodeViewUtils.applyDefaults(monospaceFont, buttonXMLResources.values().toArray(new CodeView[0])); |
45 | | - buttonXMLResources.put(R.raw.text_button_normal_xml, binding.codeViewButtonNormalXml); |
46 | | - buttonXMLResources.put(R.raw.text_button_outlined_xml, binding.codeViewButtonOutlinedXml); |
47 | | - buttonXMLResources.put(R.raw.text_button_elevated_xml, binding.codeViewButtonElevatedXml); |
48 | | - buttonXMLResources.put(R.raw.text_button_normal_icon_xml, binding.codeViewButtonNormalIconXml); |
49 | | - buttonXMLResources.put(R.raw.text_button_outlined_icon_xml, binding.codeViewButtonOutlinedIconXml); |
50 | | - buttonXMLResources.put(R.raw.text_button_elevated_icon_xml, binding.codeViewButtonElevatedIconXml); |
51 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_primary_xml, binding.codeViewExtendedFloatingButtonPrimaryXml); |
52 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_secondary_xml, binding.codeViewExtendedFloatingButtonSecondaryXml); |
53 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_surface_xml, binding.codeViewExtendedFloatingButtonSurfaceXml); |
54 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_tertiary_xml, binding.codeViewExtendedFloatingButtonTertiaryXml); |
55 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_primary_icon_xml, binding.codeViewExtendedFloatingButtonPrimaryIconXml); |
56 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_secondary_icon_xml, binding.codeViewExtendedFloatingButtonSecondaryIconXml); |
57 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_surface_icon_xml, binding.codeViewExtendedFloatingButtonSurfaceIconXml); |
58 | | - buttonXMLResources.put(R.raw.text_extended_floating_button_tertiary_icon_xml, binding.codeViewExtendedFloatingButtonTertiaryIconXml); |
59 | | - buttonXMLResources.put(R.raw.text_floating_button_primary_xml, binding.codeViewFloatingButtonPrimaryXml); |
60 | | - buttonXMLResources.put(R.raw.text_floating_button_secondary_xml, binding.codeViewFloatingButtonSecondaryXml); |
61 | | - buttonXMLResources.put(R.raw.text_floating_button_surface_xml, binding.codeViewFloatingButtonSurfaceXml); |
62 | | - buttonXMLResources.put(R.raw.text_floating_button_tertiary_xml, binding.codeViewFloatingButtonTertiaryXml); |
63 | | - for (Map.Entry<Integer, CodeView> entry : buttonXMLResources.entrySet()) { |
64 | | - Integer resourceId = entry.getKey(); |
65 | | - CodeView codeView = entry.getValue(); |
66 | | - try (InputStream inputStream = getResources().openRawResource(resourceId); |
67 | | - BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8))) { |
68 | | - StringBuilder builder = new StringBuilder(); |
69 | | - String line; |
70 | | - while ((line = reader.readLine()) != null) { |
71 | | - builder.append(line).append('\n'); |
72 | | - } |
73 | | - codeView.setText(builder.toString()); |
74 | | - CodeHighlighter.applyXmlTheme(codeView); |
75 | | - } catch (IOException e) { |
76 | | - Log.e("ButtonsTab", "Error reading button resource", e); |
77 | | - } |
| 24 | + Map<Integer, CodeView> buttonXmlResources = new LinkedHashMap<>(); |
| 25 | + buttonXmlResources.put(R.raw.text_button_normal_xml, binding.codeViewButtonNormalXml); |
| 26 | + buttonXmlResources.put(R.raw.text_button_outlined_xml, binding.codeViewButtonOutlinedXml); |
| 27 | + buttonXmlResources.put(R.raw.text_button_elevated_xml, binding.codeViewButtonElevatedXml); |
| 28 | + buttonXmlResources.put(R.raw.text_button_normal_icon_xml, binding.codeViewButtonNormalIconXml); |
| 29 | + buttonXmlResources.put(R.raw.text_button_outlined_icon_xml, binding.codeViewButtonOutlinedIconXml); |
| 30 | + buttonXmlResources.put(R.raw.text_button_elevated_icon_xml, binding.codeViewButtonElevatedIconXml); |
| 31 | + buttonXmlResources.put(R.raw.text_extended_floating_button_primary_xml, binding.codeViewExtendedFloatingButtonPrimaryXml); |
| 32 | + buttonXmlResources.put(R.raw.text_extended_floating_button_secondary_xml, binding.codeViewExtendedFloatingButtonSecondaryXml); |
| 33 | + buttonXmlResources.put(R.raw.text_extended_floating_button_surface_xml, binding.codeViewExtendedFloatingButtonSurfaceXml); |
| 34 | + buttonXmlResources.put(R.raw.text_extended_floating_button_tertiary_xml, binding.codeViewExtendedFloatingButtonTertiaryXml); |
| 35 | + buttonXmlResources.put(R.raw.text_extended_floating_button_primary_icon_xml, binding.codeViewExtendedFloatingButtonPrimaryIconXml); |
| 36 | + buttonXmlResources.put(R.raw.text_extended_floating_button_secondary_icon_xml, binding.codeViewExtendedFloatingButtonSecondaryIconXml); |
| 37 | + buttonXmlResources.put(R.raw.text_extended_floating_button_surface_icon_xml, binding.codeViewExtendedFloatingButtonSurfaceIconXml); |
| 38 | + buttonXmlResources.put(R.raw.text_extended_floating_button_tertiary_icon_xml, binding.codeViewExtendedFloatingButtonTertiaryIconXml); |
| 39 | + buttonXmlResources.put(R.raw.text_floating_button_primary_xml, binding.codeViewFloatingButtonPrimaryXml); |
| 40 | + buttonXmlResources.put(R.raw.text_floating_button_secondary_xml, binding.codeViewFloatingButtonSecondaryXml); |
| 41 | + buttonXmlResources.put(R.raw.text_floating_button_surface_xml, binding.codeViewFloatingButtonSurfaceXml); |
| 42 | + buttonXmlResources.put(R.raw.text_floating_button_tertiary_xml, binding.codeViewFloatingButtonTertiaryXml); |
| 43 | + for (Map.Entry<Integer, CodeView> entry : buttonXmlResources.entrySet()) { |
| 44 | + CodeViewUtils.populateFromRawResource( |
| 45 | + entry.getValue(), |
| 46 | + entry.getKey(), |
| 47 | + CodeViewUtils.HighlightMode.XML, |
| 48 | + "ButtonsTabLayout"); |
78 | 49 | } |
79 | 50 | return binding.getRoot(); |
80 | 51 | } |
|
0 commit comments