use the new radio group dialog for Show Media picking

This commit is contained in:
tibbi 2017-03-10 22:21:52 +01:00
parent 739e1c01a8
commit ee32c1ab3a
4 changed files with 14 additions and 82 deletions

View file

@ -32,7 +32,7 @@ android {
} }
dependencies { dependencies {
compile 'com.simplemobiletools:commons:2.9.4' compile 'com.simplemobiletools:commons:2.9.8'
compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.6.0' compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.6.0'
compile 'com.theartofdev.edmodo:android-image-cropper:2.3.1' compile 'com.theartofdev.edmodo:android-image-cropper:2.3.1'
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2' compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'

View file

@ -1,20 +1,26 @@
package com.simplemobiletools.gallery.activities package com.simplemobiletools.gallery.activities
import android.content.Intent import android.content.Intent
import android.content.res.Resources
import android.os.Bundle import android.os.Bundle
import com.simplemobiletools.commons.dialogs.RadioGroupDialog
import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.extensions.updateTextColors
import com.simplemobiletools.commons.models.RadioItem
import com.simplemobiletools.gallery.R import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.dialogs.ShowMediaDialog
import com.simplemobiletools.gallery.extensions.beVisibleIf import com.simplemobiletools.gallery.extensions.beVisibleIf
import com.simplemobiletools.gallery.extensions.config import com.simplemobiletools.gallery.extensions.config
import com.simplemobiletools.gallery.helpers.IMAGES import com.simplemobiletools.gallery.helpers.IMAGES
import com.simplemobiletools.gallery.helpers.IMAGES_AND_VIDEOS import com.simplemobiletools.gallery.helpers.IMAGES_AND_VIDEOS
import com.simplemobiletools.gallery.helpers.VIDEOS
import kotlinx.android.synthetic.main.activity_settings.* import kotlinx.android.synthetic.main.activity_settings.*
class SettingsActivity : SimpleActivity() { class SettingsActivity : SimpleActivity() {
lateinit var res: Resources
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings) setContentView(R.layout.activity_settings)
res = resources
} }
override fun onResume() { override fun onResume() {
@ -80,7 +86,12 @@ class SettingsActivity : SimpleActivity() {
private fun setupShowMedia() { private fun setupShowMedia() {
settings_show_media.text = getShowMediaText() settings_show_media.text = getShowMediaText()
settings_show_media_holder.setOnClickListener { settings_show_media_holder.setOnClickListener {
ShowMediaDialog(this) { val items = arrayListOf(
RadioItem(IMAGES_AND_VIDEOS, res.getString(R.string.images_and_videos)),
RadioItem(IMAGES, res.getString(R.string.images)),
RadioItem(VIDEOS, res.getString(R.string.videos)))
RadioGroupDialog(this@SettingsActivity, items, config.showMedia) {
config.showMedia = it config.showMedia = it
settings_show_media.text = getShowMediaText() settings_show_media.text = getShowMediaText()
} }

View file

@ -1,46 +0,0 @@
package com.simplemobiletools.gallery.dialogs
import android.app.Activity
import android.support.v7.app.AlertDialog
import android.view.LayoutInflater
import android.widget.RadioGroup
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.extensions.config
import com.simplemobiletools.gallery.helpers.IMAGES
import com.simplemobiletools.gallery.helpers.IMAGES_AND_VIDEOS
import com.simplemobiletools.gallery.helpers.VIDEOS
import kotlinx.android.synthetic.main.dialog_show_media.view.*
class ShowMediaDialog(val activity: Activity, val callback: (newValue: Int) -> Unit) : AlertDialog.Builder(activity), RadioGroup.OnCheckedChangeListener {
val dialog: AlertDialog?
init {
val view = LayoutInflater.from(activity).inflate(R.layout.dialog_show_media, null).dialog_radio_view.apply {
check(getSavedItem())
setOnCheckedChangeListener(this@ShowMediaDialog)
}
dialog = AlertDialog.Builder(activity)
.create().apply {
activity.setupDialogStuff(view, this)
}
}
override fun onCheckedChanged(group: RadioGroup?, checkedId: Int) {
callback.invoke(getNewValue(checkedId))
dialog?.dismiss()
}
fun getNewValue(id: Int) = when (id) {
R.id.dialog_radio_images -> IMAGES
R.id.dialog_radio_videos -> VIDEOS
else -> IMAGES_AND_VIDEOS
}
fun getSavedItem() = when (activity.config.showMedia) {
IMAGES -> R.id.dialog_radio_images
VIDEOS -> R.id.dialog_radio_videos
else -> R.id.dialog_radio_images_and_videos
}
}

View file

@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<RadioGroup
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialog_radio_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/activity_margin">
<com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/dialog_radio_images"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_margin"
android:paddingTop="@dimen/activity_margin"
android:text="@string/images"/>
<com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/dialog_radio_videos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_margin"
android:paddingTop="@dimen/activity_margin"
android:text="@string/videos"/>
<com.simplemobiletools.commons.views.MyCompatRadioButton
android:id="@+id/dialog_radio_images_and_videos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_margin"
android:paddingTop="@dimen/activity_margin"
android:text="@string/images_and_videos"/>
</RadioGroup>