Update ImageBlurringDialogFragment

Signed-off-by: 1552980358 <1552980358@qq.com>
pull/1209/head
1552980358 3 years ago
parent bf1b5bb813
commit c02331e9be
  1. 53
      app/src/main/java/io/legado/app/ui/config/ImageBlurringDialogFragment.kt
  2. 28
      app/src/main/res/layout/fragment_image_blurring_dialog.xml

@ -0,0 +1,53 @@
package io.legado.app.ui.config
import android.app.Dialog
import android.content.SharedPreferences
import android.os.Bundle
import android.widget.SeekBar
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager
import androidx.preference.PreferenceManager
import io.legado.app.R
import io.legado.app.databinding.FragmentImageBlurringDialogBinding
class ImageBlurringDialogFragment(private val prefName: String, private val block: () -> Unit): DialogFragment() {
companion object {
private const val DEFAULT_VALUE = 0
private const val TAG = "ImageBlurringDialogFragment"
}
private val requireContext get() = requireContext()
private var _fragmentImageBlurringDialogBinding: FragmentImageBlurringDialogBinding? = null
private val fragmentImageBlurringDialog get() = _fragmentImageBlurringDialogBinding!!
private lateinit var sharedPreference: SharedPreferences
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
_fragmentImageBlurringDialogBinding = FragmentImageBlurringDialogBinding.inflate(layoutInflater)
sharedPreference = PreferenceManager.getDefaultSharedPreferences(requireContext)
sharedPreference.getInt(prefName, DEFAULT_VALUE).apply {
fragmentImageBlurringDialog.seekBar.progress = this
fragmentImageBlurringDialog.textViewValue.text = this.toString()
}
fragmentImageBlurringDialog.seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
fragmentImageBlurringDialog.textViewValue.text = progress.toString()
}
override fun onStartTrackingTouch(seekBar: SeekBar?) = Unit
override fun onStopTrackingTouch(seekBar: SeekBar?) = Unit
})
return AlertDialog.Builder(requireContext)
.setTitle(R.string.background_image_blurring_radius)
.setView(fragmentImageBlurringDialog.root)
.setPositiveButton(R.string.dialog_confirm) { _, _ ->
sharedPreference.edit().putInt(prefName, fragmentImageBlurringDialog.seekBar.progress).commit()
block()
}
.setNegativeButton(R.string.dialog_cancel) { _, _ -> }
.create()
}
fun show(fragmentManager: FragmentManager) = show(fragmentManager, TAG)
}

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<androidx.appcompat.widget.AppCompatSeekBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="25"
android:id="@+id/seek_bar" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/text_view_value"
android:layout_gravity="center_horizontal"
android:textSize="17sp"
android:textColor="@color/black"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/background_image_hint" />
</LinearLayout>
Loading…
Cancel
Save