pull/32/head
			
			
		
		
							parent
							
								
									ac3757429d
								
							
						
					
					
						commit
						90c98f2012
					
				@ -1,15 +1,86 @@ | 
				
			|||||||
package io.legado.app.ui.config | 
					package io.legado.app.ui.config | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import android.content.SharedPreferences | 
				
			||||||
import android.os.Bundle | 
					import android.os.Bundle | 
				
			||||||
 | 
					import androidx.appcompat.app.AlertDialog | 
				
			||||||
import androidx.preference.PreferenceFragmentCompat | 
					import androidx.preference.PreferenceFragmentCompat | 
				
			||||||
 | 
					import io.legado.app.App | 
				
			||||||
import io.legado.app.R | 
					import io.legado.app.R | 
				
			||||||
 | 
					import io.legado.app.lib.theme.ColorUtils | 
				
			||||||
 | 
					import io.legado.app.utils.getCompatColor | 
				
			||||||
 | 
					import io.legado.app.utils.getPrefBoolean | 
				
			||||||
 | 
					import io.legado.app.utils.putPrefInt | 
				
			||||||
 | 
					import io.legado.app.utils.upTint | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class ThemeConfigFragment : PreferenceFragmentCompat() { | 
					class ThemeConfigFragment : PreferenceFragmentCompat(), SharedPreferences.OnSharedPreferenceChangeListener { | 
				
			||||||
 | 
					
 | 
				
			||||||
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { | 
					    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { | 
				
			||||||
        addPreferencesFromResource(R.xml.pref_config_theme) | 
					        addPreferencesFromResource(R.xml.pref_config_theme) | 
				
			||||||
    } | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    override fun onResume() { | 
				
			||||||
 | 
					        super.onResume() | 
				
			||||||
 | 
					        preferenceManager.sharedPreferences.registerOnSharedPreferenceChangeListener(this) | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    override fun onPause() { | 
				
			||||||
 | 
					        preferenceManager.sharedPreferences.unregisterOnSharedPreferenceChangeListener(this) | 
				
			||||||
 | 
					        super.onPause() | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { | 
				
			||||||
 | 
					        sharedPreferences ?: return | 
				
			||||||
 | 
					        when (key) { | 
				
			||||||
 | 
					            "colorPrimary", "colorAccent", "colorBackground" -> if (!ColorUtils.isColorLight( | 
				
			||||||
 | 
					                    sharedPreferences.getInt( | 
				
			||||||
 | 
					                        "colorBackground", | 
				
			||||||
 | 
					                        App.INSTANCE.getCompatColor(R.color.md_grey_100) | 
				
			||||||
 | 
					                    ) | 
				
			||||||
 | 
					                ) | 
				
			||||||
 | 
					            ) { | 
				
			||||||
 | 
					                AlertDialog.Builder(App.INSTANCE) | 
				
			||||||
 | 
					                    .setTitle("白天背景太暗") | 
				
			||||||
 | 
					                    .setMessage("将会恢复默认背景?") | 
				
			||||||
 | 
					                    .setPositiveButton(R.string.ok) { dialog, which -> | 
				
			||||||
 | 
					                        App.INSTANCE.putPrefInt("colorBackground", App.INSTANCE.getCompatColor(R.color.md_grey_100)) | 
				
			||||||
 | 
					                        upTheme(false) | 
				
			||||||
 | 
					                    } | 
				
			||||||
 | 
					                    .setNegativeButton(R.string.cancel) { dialogInterface, i -> upTheme(false) } | 
				
			||||||
 | 
					                    .show().upTint | 
				
			||||||
 | 
					            } else { | 
				
			||||||
 | 
					                upTheme(false) | 
				
			||||||
 | 
					            } | 
				
			||||||
 | 
					            "colorPrimaryNight", "colorAccentNight", "colorBackgroundNight" -> if (ColorUtils.isColorLight( | 
				
			||||||
 | 
					                    sharedPreferences.getInt( | 
				
			||||||
 | 
					                        "colorBackgroundNight", | 
				
			||||||
 | 
					                        App.INSTANCE.getCompatColor(R.color.md_grey_800) | 
				
			||||||
 | 
					                    ) | 
				
			||||||
 | 
					                ) | 
				
			||||||
 | 
					            ) { | 
				
			||||||
 | 
					                AlertDialog.Builder(App.INSTANCE) | 
				
			||||||
 | 
					                    .setTitle("夜间背景太亮") | 
				
			||||||
 | 
					                    .setMessage("将会恢复默认背景?") | 
				
			||||||
 | 
					                    .setPositiveButton(R.string.ok) { dialog, which -> | 
				
			||||||
 | 
					                        App.INSTANCE.putPrefInt( | 
				
			||||||
 | 
					                            "colorBackgroundNight", | 
				
			||||||
 | 
					                            App.INSTANCE.getCompatColor(R.color.md_grey_800) | 
				
			||||||
 | 
					                        ) | 
				
			||||||
 | 
					                        upTheme(true) | 
				
			||||||
 | 
					                    } | 
				
			||||||
 | 
					                    .setNegativeButton(R.string.cancel) { dialogInterface, i -> upTheme(true) } | 
				
			||||||
 | 
					                    .show() | 
				
			||||||
 | 
					            } else { | 
				
			||||||
 | 
					                upTheme(true) | 
				
			||||||
 | 
					            } | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private fun upTheme(isNightTheme: Boolean) { | 
				
			||||||
 | 
					        if (App.INSTANCE.getPrefBoolean("isNightTheme", false) == isNightTheme) { | 
				
			||||||
 | 
					            App.INSTANCE.upThemeStore() | 
				
			||||||
 | 
					        } | 
				
			||||||
 | 
					    } | 
				
			||||||
 | 
					
 | 
				
			||||||
} | 
					} | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue