Kaynağa Gözat

Merge branch 'setting'

Wayne 6 yıl önce
ebeveyn
işleme
2ea4ad0c43

+ 1 - 1
src/main/java/com/kdanmobile/reader/screen/view/ReadingModeSelectView.kt

@@ -41,7 +41,7 @@ class ReadingModeSelectView : ConstraintLayout {
     var isLock: Boolean = false
         set(value) {
             field = value
-            setReadModeBtnLockVisible(isLock)
+            setReadModeBtnLockVisible(field)
         }
 
     constructor(context: Context) : super(context) {

+ 1 - 0
src/main/java/com/kdanmobile/reader/setting/ReaderSettingActivity.kt

@@ -12,6 +12,7 @@ import com.kdanmobile.reader.screen.view.ReadingModeSelectView
 import com.kdanmobile.reader.screen.view.TurnPageModeSelectView
 import kotlinx.android.synthetic.main.activity_reader_setting.*
 
+@Deprecated("Please use ReaderSettingDialogFragment")
 class ReaderSettingActivity : AppCompatActivity() {
 
     private lateinit var viewModel: ReaderSettingViewModel

+ 10 - 1
src/main/java/com/kdanmobile/reader/setting/ReaderSettingDialogFragment.kt

@@ -31,6 +31,9 @@ open class ReaderSettingDialogFragment : DialogFragment() {
     private var readerSettingListener: ReaderSettingListener? = null
     private var initialized = true
 
+    protected open fun hasPermissionToUseSmartCrop(): Boolean { return false }
+    protected open fun hasPermissionToChangeTheme(): Boolean { return false }
+    protected open fun onNoPermissionToUSeSmartCrop() {}
     protected open fun onNoPermissionToChangeTheme() {}
 
     fun setReaderSettingListener(readerSettingListener: ReaderSettingListener?) {
@@ -97,6 +100,12 @@ open class ReaderSettingDialogFragment : DialogFragment() {
         setupToolbarSettingView()
 
         rowSwitchView_smartCrop.onCheckedChangeListener = CompoundButton.OnCheckedChangeListener { _, isChecked ->
+            if (viewModel.isCropModeEnable.value == isChecked) return@OnCheckedChangeListener
+            if (isChecked && !hasPermissionToUseSmartCrop()) {
+                rowSwitchView_smartCrop.isChecked = false
+                onNoPermissionToUSeSmartCrop()
+                return@OnCheckedChangeListener
+            }
             viewModel.setCropModeEnable(isChecked)
             if (!initialized) {
                 readerSettingListener?.onCropModeEnableChanged(isChecked)
@@ -122,7 +131,7 @@ open class ReaderSettingDialogFragment : DialogFragment() {
     }
 
     private fun setupReadingModeView() {
-        readingModeSelectView.isLock = true
+        readingModeSelectView.isLock = !hasPermissionToChangeTheme()
         readingModeSelectView.onReadModeSelectListener = object : ReadingModeSelectView.OnReadModeSelectListener {
             override fun onReadModeSelect(readMode: Int) {
                 viewModel.setReadMode(readMode)