Remove 'Add account' button from ListPicker

pull/1004/head
Alex Baker 4 years ago
parent 08a7170c73
commit 20fcdf83f5

@ -19,21 +19,16 @@ import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
import org.tasks.LocalBroadcastManager import org.tasks.LocalBroadcastManager
import org.tasks.R
import org.tasks.dialogs.DialogBuilder import org.tasks.dialogs.DialogBuilder
import org.tasks.filters.FilterProvider import org.tasks.filters.FilterProvider
import org.tasks.gtasks.ListSelectionHandler
import org.tasks.injection.DialogFragmentComponent import org.tasks.injection.DialogFragmentComponent
import org.tasks.injection.InjectingDialogFragment import org.tasks.injection.InjectingDialogFragment
import org.tasks.sync.AddAccountDialog
import org.tasks.sync.SyncAdapters
import javax.inject.Inject import javax.inject.Inject
class ListPicker : InjectingDialogFragment(), ListSelectionHandler { class ListPicker : InjectingDialogFragment() {
@Inject lateinit var dialogBuilder: DialogBuilder @Inject lateinit var dialogBuilder: DialogBuilder
@Inject lateinit var filterAdapter: FilterAdapter @Inject lateinit var filterAdapter: FilterAdapter
@Inject lateinit var filterProvider: FilterProvider @Inject lateinit var filterProvider: FilterProvider
@Inject lateinit var syncAdapters: SyncAdapters
@Inject lateinit var localBroadcastManager: LocalBroadcastManager @Inject lateinit var localBroadcastManager: LocalBroadcastManager
private var disposables: CompositeDisposable? = null private var disposables: CompositeDisposable? = null
@ -47,7 +42,7 @@ class ListPicker : InjectingDialogFragment(), ListSelectionHandler {
if (savedInstanceState != null) { if (savedInstanceState != null) {
filterAdapter.restore(savedInstanceState) filterAdapter.restore(savedInstanceState)
} }
return createDialog(filterAdapter, dialogBuilder, syncAdapters, this) return createDialog(filterAdapter, dialogBuilder, this::selectedList)
} }
override fun onResume() { override fun onResume() {
@ -70,9 +65,7 @@ class ListPicker : InjectingDialogFragment(), ListSelectionHandler {
override fun inject(component: DialogFragmentComponent) = component.inject(this) override fun inject(component: DialogFragmentComponent) = component.inject(this)
override fun addAccount() = AddAccountDialog.showAddAccountDialog(activity, dialogBuilder) private fun selectedList(list: Filter?) {
override fun selectedList(list: Filter?) {
targetFragment!!.onActivityResult( targetFragment!!.onActivityResult(
targetRequestCode, targetRequestCode,
Activity.RESULT_OK, Activity.RESULT_OK,
@ -113,8 +106,7 @@ class ListPicker : InjectingDialogFragment(), ListSelectionHandler {
private fun createDialog( private fun createDialog(
filterAdapter: FilterAdapter, filterAdapter: FilterAdapter,
dialogBuilder: DialogBuilder, dialogBuilder: DialogBuilder,
syncAdapters: SyncAdapters, handler: (Filter?) -> Unit): AlertDialog {
handler: ListSelectionHandler): AlertDialog {
val builder = dialogBuilder val builder = dialogBuilder
.newDialog() .newDialog()
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
@ -123,18 +115,15 @@ class ListPicker : InjectingDialogFragment(), ListSelectionHandler {
-1 -1
) { dialog: DialogInterface, which: Int -> ) { dialog: DialogInterface, which: Int ->
if (which == 0) { if (which == 0) {
handler.selectedList(null) handler.invoke(null)
} else { } else {
val item = filterAdapter.getItem(which) val item = filterAdapter.getItem(which)
if (item is GtasksFilter || item is CaldavFilter) { if (item is GtasksFilter || item is CaldavFilter) {
handler.selectedList(item as Filter) handler.invoke(item as Filter)
} }
} }
dialog.dismiss() dialog.dismiss()
} }
if (!syncAdapters.isSyncEnabled) {
builder.setNeutralButton(R.string.add_account) { _, _ -> handler.addAccount() }
}
return builder.show() return builder.show()
} }
} }

@ -1,9 +0,0 @@
package org.tasks.gtasks
import com.todoroo.astrid.api.Filter
interface ListSelectionHandler {
fun addAccount()
fun selectedList(list: Filter?)
}
Loading…
Cancel
Save