| 
					
				 | 
			
			
				@@ -27,98 +27,6 @@ class SettingsGeneralController : SettingsController() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         titleRes = R.string.pref_category_general 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            key = Keys.lang 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            titleRes = R.string.pref_language 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            entryValues = arrayOf("", "ar", "bg", "bn", "ca", "cs", "de", "el", "en-US", "en-GB", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "es", "fr", "hi", "hu", "in", "it", "ja", "ko", "lv", "ms", "nb-rNO", "nl", "pl", "pt", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    "pt-BR", "ro", "ru", "sc", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh-rCN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            entries = entryValues.map { value -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                val locale = LocaleHelper.getLocaleFromString(value.toString()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                locale?.getDisplayName(locale)?.capitalize() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        ?: context.getString(R.string.system_default) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }.toTypedArray() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            defaultValue = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onChange { newValue -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                val activity = activity ?: return@onChange false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                val app = activity.application 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                LocaleHelper.changeLocale(newValue.toString()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                LocaleHelper.updateConfiguration(app, app.resources.configuration) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                activity.recreate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            key = Keys.dateFormat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            titleRes = R.string.pref_date_format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            entryValues = arrayOf("", "MM/dd/yy", "dd/MM/yy", "yyyy-MM-dd") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            entries = entryValues.map { value -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (value == "") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    context.getString(R.string.system_default) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }.toTypedArray() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            defaultValue = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            key = Keys.themeMode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            titleRes = R.string.pref_theme_mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                entriesRes = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        R.string.theme_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        R.string.theme_light, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        R.string.theme_dark) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                entryValues = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Values.THEME_MODE_SYSTEM, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Values.THEME_MODE_LIGHT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Values.THEME_MODE_DARK) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                defaultValue = Values.THEME_MODE_SYSTEM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                entriesRes = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        R.string.theme_light, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        R.string.theme_dark) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                entryValues = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Values.THEME_MODE_LIGHT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Values.THEME_MODE_DARK) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                defaultValue = Values.THEME_MODE_LIGHT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onChange { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                activity?.recreate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            key = Keys.themeDark 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            titleRes = R.string.pref_theme_dark 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            entriesRes = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    R.string.theme_dark_default, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    R.string.theme_dark_blue, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    R.string.theme_dark_amoled) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            entryValues = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    Values.THEME_DARK_DEFAULT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    Values.THEME_DARK_BLUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    Values.THEME_DARK_AMOLED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            defaultValue = Values.THEME_DARK_DEFAULT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            preferences.themeMode().asObservable() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    .subscribeUntilDestroy { isVisible = it != Values.THEME_MODE_LIGHT } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            onChange { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (preferences.themeMode().getOrDefault() != Values.THEME_MODE_LIGHT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    activity?.recreate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         intListPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             key = Keys.startScreen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             titleRes = R.string.pref_start_screen 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -140,6 +48,103 @@ class SettingsGeneralController : SettingsController() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        preferenceCategory { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            titleRes = R.string.pref_category_display 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                key = Keys.lang 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                titleRes = R.string.pref_language 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                entryValues = arrayOf("", "ar", "bg", "bn", "ca", "cs", "de", "el", "en-US", "en-GB", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        "es", "fr", "hi", "hu", "in", "it", "ja", "ko", "lv", "ms", "nb-rNO", "nl", "pl", "pt", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        "pt-BR", "ro", "ru", "sc", "sr", "sv", "th", "tl", "tr", "uk", "vi", "zh-rCN") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                entries = entryValues.map { value -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    val locale = LocaleHelper.getLocaleFromString(value.toString()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    locale?.getDisplayName(locale)?.capitalize() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            ?: context.getString(R.string.system_default) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }.toTypedArray() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                defaultValue = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onChange { newValue -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    val activity = activity ?: return@onChange false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    val app = activity.application 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    LocaleHelper.changeLocale(newValue.toString()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    LocaleHelper.updateConfiguration(app, app.resources.configuration) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    activity.recreate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                key = Keys.dateFormat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                titleRes = R.string.pref_date_format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                entryValues = arrayOf("", "MM/dd/yy", "dd/MM/yy", "yyyy-MM-dd") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                entries = entryValues.map { value -> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (value == "") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        context.getString(R.string.system_default) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }.toTypedArray() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                defaultValue = "" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                key = Keys.themeMode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                titleRes = R.string.pref_theme_mode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    entriesRes = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            R.string.theme_system, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            R.string.theme_light, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            R.string.theme_dark) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    entryValues = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Values.THEME_MODE_SYSTEM, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Values.THEME_MODE_LIGHT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Values.THEME_MODE_DARK) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    defaultValue = Values.THEME_MODE_SYSTEM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    entriesRes = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            R.string.theme_light, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            R.string.theme_dark) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    entryValues = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Values.THEME_MODE_LIGHT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Values.THEME_MODE_DARK) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    defaultValue = Values.THEME_MODE_LIGHT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onChange { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    activity?.recreate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            listPreference { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                key = Keys.themeDark 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                titleRes = R.string.pref_theme_dark 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                entriesRes = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        R.string.theme_dark_default, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        R.string.theme_dark_blue, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        R.string.theme_dark_amoled) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                entryValues = arrayOf( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Values.THEME_DARK_DEFAULT, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Values.THEME_DARK_BLUE, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Values.THEME_DARK_AMOLED) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                defaultValue = Values.THEME_DARK_DEFAULT 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                summary = "%s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                preferences.themeMode().asObservable() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .subscribeUntilDestroy { isVisible = it != Values.THEME_MODE_LIGHT } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                onChange { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (preferences.themeMode().getOrDefault() != Values.THEME_MODE_LIGHT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        activity?.recreate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         preferenceCategory { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             titleRes = R.string.pref_category_security 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |