commit
5573eb85a1
@ -0,0 +1,72 @@ |
|||||||
|
package net.pokeranalytics.android.ui.interfaces |
||||||
|
|
||||||
|
import android.content.Context |
||||||
|
import androidx.appcompat.app.AlertDialog |
||||||
|
import androidx.fragment.app.Fragment |
||||||
|
import io.realm.Realm |
||||||
|
import io.realm.kotlin.where |
||||||
|
import net.pokeranalytics.android.R |
||||||
|
import net.pokeranalytics.android.model.realm.Filter |
||||||
|
import net.pokeranalytics.android.ui.activity.FiltersActivity |
||||||
|
import net.pokeranalytics.android.util.Preferences |
||||||
|
import timber.log.Timber |
||||||
|
|
||||||
|
interface FilterHandler { |
||||||
|
|
||||||
|
fun createFilter() |
||||||
|
fun applyFilter() |
||||||
|
fun removeFilter() |
||||||
|
|
||||||
|
fun saveFilter(context: Context, filterId:String) { |
||||||
|
Preferences.setActiveFilterId(filterId, context) |
||||||
|
this.applyFilter() |
||||||
|
} |
||||||
|
|
||||||
|
fun currentFilter(context: Context, realm: Realm): Filter? { |
||||||
|
return Preferences.getActiveFilterId(context)?.let { |
||||||
|
realm.where<Filter>().equalTo("id", it).findFirst() |
||||||
|
} ?: run { |
||||||
|
null |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Manage filters |
||||||
|
*/ |
||||||
|
fun manageFilters(fragment: Fragment) { |
||||||
|
|
||||||
|
val context = fragment.requireContext() |
||||||
|
|
||||||
|
val filterSelected = Preferences.getActiveFilterId(context) != null |
||||||
|
|
||||||
|
val choices = ArrayList<CharSequence>() |
||||||
|
choices.add(fragment.getString(R.string.new_str)) |
||||||
|
|
||||||
|
if (filterSelected) { |
||||||
|
choices.add(fragment.getString(R.string.modify_current_filter)) |
||||||
|
choices.add(fragment.getString(R.string.load_from_db)) |
||||||
|
choices.add(fragment.getString(R.string.remove_filter)) |
||||||
|
} |
||||||
|
|
||||||
|
val builder = AlertDialog.Builder(context) |
||||||
|
builder.setTitle(R.string.filter_selection) |
||||||
|
.setCancelable(true) |
||||||
|
.setItems(choices.toTypedArray()) { _, which -> |
||||||
|
Timber.d("Click on $which") |
||||||
|
when (which) { |
||||||
|
0 -> FiltersActivity.newInstanceForResult(fragment = fragment, requestCode = 0) |
||||||
|
1 -> FiltersActivity.newInstanceForResult(fragment = fragment, requestCode = 0) |
||||||
|
2 -> FiltersActivity.newInstanceForResult(fragment = fragment, requestCode = 0) |
||||||
|
3 -> { |
||||||
|
Preferences.removeActiveFilterId(context) |
||||||
|
removeFilter() |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.setNegativeButton(R.string.cancel) { _, _ -> |
||||||
|
Timber.d("Click on cancel") |
||||||
|
} |
||||||
|
|
||||||
|
builder.show() |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue