@@ -48,24 +48,55 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
4848        setPreferencesFromResource (R .xml .preferences_settings , rootKey );
4949        SettingsActivity  activity  = (SettingsActivity ) requireActivity ();
5050        SettingsViewModel  settingsViewModel  = activity .getSettingsViewModel ();
51-         ListPreference  labelVisibilityMode  = findPreference (getString (R .string .key_bottom_navigation_bar_labels ));
51+         setupLabelVisibilityPreference ();
52+         setupConsentAnalyticsPreference (settingsViewModel );
53+         setupDefaultTabPreference ();
54+         setupOpenSourceLicensesPreference ();
55+         setupNotificationsPreference ();
56+         setupDeviceInfoPreference ();
57+     }
58+ 
59+     @ Override 
60+     public  void  onViewCreated (@ NonNull  View  view , @ Nullable  Bundle  savedInstanceState ) {
61+         super .onViewCreated (view , savedInstanceState );
62+         setDivider (null );
63+         setDividerHeight (0 );
64+         settingsList  = getListView ();
65+         RecyclerView  listView  = settingsList ;
66+         int  verticalPadding  = getResources ().getDimensionPixelSize (R .dimen .preference_list_vertical_padding );
67+         listView .setPadding (listView .getPaddingLeft (), verticalPadding ,
68+                 listView .getPaddingRight (), verticalPadding );
69+         listView .setClipToPadding (false );
70+         listView .addItemDecoration (new  PreferenceSpacingDecoration (requireContext ()));
71+         setupPreferenceCardStyling (listView );
72+     }
73+ 
74+     private  void  setupLabelVisibilityPreference () {
75+         ListPreference  labelVisibilityMode  =
76+                 findPreference (getString (R .string .key_bottom_navigation_bar_labels ));
5277        if  (labelVisibilityMode  != null ) {
5378            labelVisibilityMode .setOnPreferenceChangeListener ((preference , newValue ) -> {
5479                RequireRestartDialog  restartDialog  = new  RequireRestartDialog ();
5580                restartDialog .show (getChildFragmentManager (), RequireRestartDialog .class .getName ());
5681                return  true ;
5782            });
5883        }
84+     }
85+ 
86+     private  void  setupConsentAnalyticsPreference (@ NonNull  SettingsViewModel  settingsViewModel ) {
5987        SwitchPreferenceCompat  consentAnalyticsPreference  =
6088                findPreference (getString (R .string .key_consent_analytics ));
6189        if  (consentAnalyticsPreference  != null ) {
6290            consentAnalyticsPreference .setOnPreferenceChangeListener ((preference , newValue ) -> {
63-                 if  (newValue  instanceof  Boolean  &&  settingsViewModel  !=  null ) {
91+                 if  (newValue  instanceof  Boolean ) {
6492                    settingsViewModel .setConsentAccepted ((Boolean ) newValue );
6593                }
6694                return  true ;
6795            });
6896        }
97+     }
98+ 
99+     private  void  setupDefaultTabPreference () {
69100        ListPreference  defaultTab  = findPreference (getString (R .string .key_default_tab ));
70101        if  (defaultTab  != null ) {
71102            defaultTab .setOnPreferenceChangeListener ((preference , newValue ) -> {
@@ -74,64 +105,72 @@ public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
74105                return  true ;
75106            });
76107        }
108+     }
109+ 
110+     private  void  setupOpenSourceLicensesPreference () {
77111        Preference  ossPreference  = findPreference (getString (R .string .key_open_source_licenses ));
78112        if  (ossPreference  != null ) {
79113            ossPreference .setOnPreferenceClickListener (preference  -> {
80114                OpenSourceLicensesUtils .openLicensesScreen (requireContext ());
81115                return  true ;
82116            });
83117        }
118+     }
119+ 
120+     private  void  setupNotificationsPreference () {
84121        Preference  notificationsSettings  = findPreference (getString (R .string .key_notifications_settings ));
85122        if  (notificationsSettings  != null ) {
86123            notificationsSettings .setOnPreferenceClickListener (preference  -> {
87124                Context  context  = getContext ();
88-                 if  (context  != null ) {
89-                     Intent  intent ;
90- 
91-                     if  (Build .VERSION .SDK_INT  >= Build .VERSION_CODES .O ) {
92-                         intent  = new  Intent (Settings .ACTION_APP_NOTIFICATION_SETTINGS );
93-                         intent .putExtra (Settings .EXTRA_APP_PACKAGE , context .getPackageName ());
94-                     } else  {
95-                         intent  = new  Intent (Settings .ACTION_APPLICATION_DETAILS_SETTINGS );
96-                         Uri  uri  = Uri .fromParts ("package" , context .getPackageName (), null );
97-                         intent .setData (uri );
98-                     }
99-                     startActivity (intent );
100-                     return  true ;
101-                 } else  {
125+                 if  (context  == null ) {
102126                    return  false ;
103127                }
104-             });
105-         }
106-         Preference  deviceInfoPreference  = findPreference (getString (R .string .key_device_info ));
107-         if  (deviceInfoPreference  != null ) {
108-             String  version  = String .format (getResources ().getString (R .string .app_build ), String .format ("%s %s" , getResources ().getString (R .string .manufacturer ), Build .MANUFACTURER ), String .format ("%s %s" , getResources ().getString (R .string .device_model ), Build .MODEL ), String .format ("%s %s" , getResources ().getString (R .string .android_version ), Build .VERSION .RELEASE ), String .format ("%s %s" , getResources ().getString (R .string .api_level ), Build .VERSION .SDK_INT ), String .format ("%s %s" , getResources ().getString (R .string .arch ), TextUtils .join ("," , Build .SUPPORTED_ABIS )));
109-             deviceInfoPreference .setSummary (version );
110-             deviceInfoPreference .setOnPreferenceClickListener (preference  -> {
111-                 ClipboardManager  clipboard  = (ClipboardManager ) requireContext ().getSystemService (Context .CLIPBOARD_SERVICE );
112-                 ClipData  clip  = ClipData .newPlainText ("text" , version );
113-                 clipboard .setPrimaryClip (clip );
114-                 if  (Build .VERSION .SDK_INT  <= Build .VERSION_CODES .S_V2 ) {
115-                     Toast .makeText (getContext (), R .string .snack_copied_to_clipboard , Toast .LENGTH_SHORT ).show ();
128+                 Intent  intent ;
129+                 if  (Build .VERSION .SDK_INT  >= Build .VERSION_CODES .O ) {
130+                     intent  = new  Intent (Settings .ACTION_APP_NOTIFICATION_SETTINGS );
131+                     intent .putExtra (Settings .EXTRA_APP_PACKAGE , context .getPackageName ());
132+                 } else  {
133+                     intent  = new  Intent (Settings .ACTION_APPLICATION_DETAILS_SETTINGS );
134+                     Uri  uri  = Uri .fromParts ("package" , context .getPackageName (), null );
135+                     intent .setData (uri );
116136                }
137+                 startActivity (intent );
117138                return  true ;
118139            });
119140        }
120141    }
121142
122-     @ Override 
123-     public  void  onViewCreated (@ NonNull  View  view , @ Nullable  Bundle  savedInstanceState ) {
124-         super .onViewCreated (view , savedInstanceState );
125-         setDivider (null );
126-         setDividerHeight (0 );
127-         settingsList  = getListView ();
128-         RecyclerView  listView  = settingsList ;
129-         int  verticalPadding  = getResources ().getDimensionPixelSize (R .dimen .preference_list_vertical_padding );
130-         listView .setPadding (listView .getPaddingLeft (), verticalPadding ,
131-                 listView .getPaddingRight (), verticalPadding );
132-         listView .setClipToPadding (false );
133-         listView .addItemDecoration (new  PreferenceSpacingDecoration (requireContext ()));
134-         setupPreferenceCardStyling (listView );
143+     private  void  setupDeviceInfoPreference () {
144+         Preference  deviceInfoPreference  = findPreference (getString (R .string .key_device_info ));
145+         if  (deviceInfoPreference  == null ) {
146+             return ;
147+         }
148+         String  version  = buildDeviceInfoSummary ();
149+         deviceInfoPreference .setSummary (version );
150+         deviceInfoPreference .setOnPreferenceClickListener (preference  -> {
151+             ClipboardManager  clipboard  =
152+                     (ClipboardManager ) requireContext ().getSystemService (Context .CLIPBOARD_SERVICE );
153+             ClipData  clip  = ClipData .newPlainText ("text" , version );
154+             clipboard .setPrimaryClip (clip );
155+             if  (Build .VERSION .SDK_INT  <= Build .VERSION_CODES .S_V2 ) {
156+                 Toast .makeText (getContext (), R .string .snack_copied_to_clipboard ,
157+                         Toast .LENGTH_SHORT ).show ();
158+             }
159+             return  true ;
160+         });
161+     }
162+ 
163+     @ NonNull 
164+     private  String  buildDeviceInfoSummary () {
165+         return  String .format (getResources ().getString (R .string .app_build ),
166+                 String .format ("%s %s" , getResources ().getString (R .string .manufacturer ),
167+                         Build .MANUFACTURER ),
168+                 String .format ("%s %s" , getResources ().getString (R .string .device_model ), Build .MODEL ),
169+                 String .format ("%s %s" , getResources ().getString (R .string .android_version ),
170+                         Build .VERSION .RELEASE ),
171+                 String .format ("%s %s" , getResources ().getString (R .string .api_level ), Build .VERSION .SDK_INT ),
172+                 String .format ("%s %s" , getResources ().getString (R .string .arch ),
173+                         TextUtils .join ("," , Build .SUPPORTED_ABIS )));
135174    }
136175
137176    @ Override 
0 commit comments