From 6fe180e9a724a09679d2c11ecca1f9c96acbe116 Mon Sep 17 00:00:00 2001 From: luca Date: Thu, 28 Nov 2019 10:03:14 +0100 Subject: [PATCH] added a base controller --- .../sampleapp/activities/ActivitySearch.kt | 2 +- .../sampleapp/activities/ArticlesActivity.kt | 2 +- .../activities/AttachmentsActivity.kt | 2 +- .../sampleapp/activities/GroupsActivity.kt | 2 +- .../activities/NotificationsActivity.kt | 10 ++++- .../sampleapp/activities/ObjectsActivity.kt | 2 +- .../activities/OrganizationsActivity.kt | 2 +- .../sampleapp/activities/OverviewsActivity.kt | 2 +- .../activities/PrioritiesActivity.kt | 2 +- .../sampleapp/activities/RolesActivity.kt | 2 +- .../sampleapp/activities/StatesActivity.kt | 2 +- .../sampleapp/activities/TagsActivity.kt | 2 +- .../sampleapp/activities/TicketsActivity.kt | 2 +- .../sampleapp/activities/UsersActivity.kt | 2 +- .../controllers/ArticlesController.kt | 33 ++++------------- .../controllers/AttachmentsController.kt | 31 +++------------- .../sampleapp/controllers/BaseController.kt | 28 ++++++++++++++ .../sampleapp/controllers/GroupsController.kt | 35 ++++-------------- .../controllers/NotificationsController.kt | 29 +++------------ .../controllers/ObjectsController.kt | 31 +++------------- .../controllers/OrganizationsController.kt | 35 ++++-------------- .../controllers/OverviewsController.kt | 31 +++------------- .../controllers/PrioritiesController.kt | 35 ++++-------------- .../sampleapp/controllers/RolesController.kt | 31 +++------------- .../sampleapp/controllers/StatesController.kt | 35 ++++-------------- .../sampleapp/controllers/TagsController.kt | 31 +++------------- .../controllers/TicketsController.kt | 37 +++++-------------- .../sampleapp/controllers/UsersController.kt | 35 ++++-------------- 28 files changed, 140 insertions(+), 353 deletions(-) create mode 100644 sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/BaseController.kt diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ActivitySearch.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ActivitySearch.kt index a92ab1a..7c5de3a 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ActivitySearch.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ActivitySearch.kt @@ -79,7 +79,7 @@ class ActivitySearch : AppCompatActivity() { tickets.addAll(searchResult?.assets?.tickets?.values ?: listOf()) }, onPost = { - controller.setTickets(tickets) + controller.setItems(tickets) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ArticlesActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ArticlesActivity.kt index b24ba35..dc50274 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ArticlesActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ArticlesActivity.kt @@ -72,7 +72,7 @@ class ArticlesActivity : AppCompatActivity() { articles.addAll(client?.ticketArticles(ticket) ?: listOf()) }, onPost = { - controller.setArticles(articles) + controller.setItems(articles) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/AttachmentsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/AttachmentsActivity.kt index 3fcbf6e..8c16152 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/AttachmentsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/AttachmentsActivity.kt @@ -59,6 +59,6 @@ class AttachmentsActivity : AppCompatActivity() { list.setController(controller) attachments.addAll(article.attachments) - controller.setAttachments(attachments) + controller.setItems(attachments) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/GroupsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/GroupsActivity.kt index 18627e1..965677a 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/GroupsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/GroupsActivity.kt @@ -63,7 +63,7 @@ class GroupsActivity : AppCompatActivity() { groups.addAll(client?.groups() ?: listOf()) }, onPost = { - controller.setGroups(groups) + controller.setItems(groups) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/NotificationsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/NotificationsActivity.kt index f6bccd4..fc53373 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/NotificationsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/NotificationsActivity.kt @@ -5,6 +5,7 @@ import androidx.appcompat.app.AppCompatActivity import com.kirkbushman.sampleapp.R import com.kirkbushman.sampleapp.SampleApplication import com.kirkbushman.sampleapp.controllers.NotificationsController +import com.kirkbushman.sampleapp.controllers.OnClickCallback import com.kirkbushman.sampleapp.doAsync import com.kirkbushman.zammad.models.OnlineNotification import kotlinx.android.synthetic.main.activity_users.* @@ -14,7 +15,12 @@ class NotificationsActivity : AppCompatActivity() { private val client by lazy { SampleApplication.instance.getClient() } private val notifications = ArrayList() - private val controller by lazy { NotificationsController() } + private val controller by lazy { + NotificationsController(object : OnClickCallback { + + override fun onClick(position: Int) {} + }) + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -34,7 +40,7 @@ class NotificationsActivity : AppCompatActivity() { notifications.addAll(client?.onlineNotifications() ?: listOf()) }, onPost = { - controller.setNotifications(notifications) + controller.setItems(notifications) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ObjectsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ObjectsActivity.kt index d5bfc17..40a15ad 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ObjectsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/ObjectsActivity.kt @@ -44,7 +44,7 @@ class ObjectsActivity : AppCompatActivity() { objects.addAll(client?.objects() ?: emptyList()) }, onPost = { - controller.setObjects(objects) + controller.setItems(objects) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OrganizationsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OrganizationsActivity.kt index f881c00..ec70ae8 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OrganizationsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OrganizationsActivity.kt @@ -63,7 +63,7 @@ class OrganizationsActivity : AppCompatActivity() { organizations.addAll(client?.organizations() ?: listOf()) }, onPost = { - controller.setOrganizations(organizations) + controller.setItems(organizations) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OverviewsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OverviewsActivity.kt index 67ac056..d91b79e 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OverviewsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/OverviewsActivity.kt @@ -44,7 +44,7 @@ class OverviewsActivity : AppCompatActivity() { overviews.addAll(client?.overviews() ?: listOf()) }, onPost = { - controller.setOverviews(overviews) + controller.setItems(overviews) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/PrioritiesActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/PrioritiesActivity.kt index 732a911..395a4bc 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/PrioritiesActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/PrioritiesActivity.kt @@ -63,7 +63,7 @@ class PrioritiesActivity : AppCompatActivity() { priorities.addAll(client?.ticketPrioritites() ?: listOf()) }, onPost = { - controller.setPriorities(priorities) + controller.setItems(priorities) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/RolesActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/RolesActivity.kt index 313fb1d..f4dc3e4 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/RolesActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/RolesActivity.kt @@ -44,7 +44,7 @@ class RolesActivity : AppCompatActivity() { roles.addAll(client?.roles() ?: listOf()) }, onPost = { - controller.setRoles(roles) + controller.setItems(roles) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/StatesActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/StatesActivity.kt index 7e3bed7..d79a960 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/StatesActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/StatesActivity.kt @@ -63,7 +63,7 @@ class StatesActivity : AppCompatActivity() { states.addAll(client?.ticketStates() ?: listOf()) }, onPost = { - controller.setStates(states) + controller.setItems(states) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TagsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TagsActivity.kt index 437e447..cec7701 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TagsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TagsActivity.kt @@ -40,7 +40,7 @@ class TagsActivity : AppCompatActivity() { tags.addAll(client?.tags() ?: listOf()) }, onPost = { - controller.setTags(tags) + controller.setItems(tags) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TicketsActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TicketsActivity.kt index c80601d..1513fab 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TicketsActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/TicketsActivity.kt @@ -74,7 +74,7 @@ class TicketsActivity : AppCompatActivity() { tickets.addAll(client?.tickets() ?: listOf()) }, onPost = { - controller.setTickets(tickets) + controller.setItems(tickets) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/UsersActivity.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/UsersActivity.kt index 02027bd..551b357 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/UsersActivity.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/activities/UsersActivity.kt @@ -63,7 +63,7 @@ class UsersActivity : AppCompatActivity() { users.addAll(client?.users() ?: listOf()) }, onPost = { - controller.setUsers(users) + controller.setItems(users) }) } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ArticlesController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ArticlesController.kt index ecc2b97..42f4c50 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ArticlesController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ArticlesController.kt @@ -1,36 +1,17 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController import com.kirkbushman.sampleapp.models.article -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.zammad.models.TicketArticle -class ArticlesController(private val callback: OnArticleCallback) : EpoxyController() { +class ArticlesController(callback: OnArticleCallback) : BaseController(callback) { - private val articles = ArrayList() + override fun onItem(item: TicketArticle) { - fun setArticles(articles: Collection) { - this.articles.clear() - this.articles.addAll(articles) - requestModelBuild() - } - - override fun buildModels() { - - if (articles.isEmpty()) { - empty { - id("empty_items") - } - } - - articles.forEach { - - article { - id(it.id) - article(it) - clickListener { _, _, _, position -> callback.onClick(position) } - attachmentsClick { _, _, _, position -> callback.onAttachmentsClick(position) } - } + article { + id(item.id) + article(item) + clickListener { _, _, _, position -> callback.onClick(position) } + attachmentsClick { _, _, _, position -> (callback as OnArticleCallback).onAttachmentsClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/AttachmentsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/AttachmentsController.kt index 1a8a535..d81ffa6 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/AttachmentsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/AttachmentsController.kt @@ -1,35 +1,16 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController import com.kirkbushman.sampleapp.models.attachment -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.zammad.models.ArticleAttachment -class AttachmentsController(private val callback: OnClickCallback) : EpoxyController() { +class AttachmentsController(callback: OnClickCallback) : BaseController(callback) { - private val attachments = ArrayList() + override fun onItem(item: ArticleAttachment) { - fun setAttachments(attachments: Collection) { - this.attachments.clear() - this.attachments.addAll(attachments) - requestModelBuild() - } - - override fun buildModels() { - - if (attachments.isEmpty()) { - empty { - id("empty_items") - } - } - - attachments.forEach { - - attachment { - id(it.id) - attachment(it) - clickListener { _, _, _, position -> callback.onClick(position) } - } + attachment { + id(item.id) + attachment(item) + clickListener { _, _, _, position -> callback.onClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/BaseController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/BaseController.kt new file mode 100644 index 0000000..9c85e67 --- /dev/null +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/BaseController.kt @@ -0,0 +1,28 @@ +package com.kirkbushman.sampleapp.controllers + +import com.airbnb.epoxy.EpoxyController +import com.kirkbushman.sampleapp.models.empty + +abstract class BaseController(protected val callback: OnClickCallback) : EpoxyController() { + + private val items = ArrayList() + + fun setItems(items: Collection) { + this.items.clear() + this.items.addAll(items) + requestModelBuild() + } + + override fun buildModels() { + + if (items.isEmpty()) { + empty { + id("empty_items") + } + } + + items.forEach { onItem(it) } + } + + abstract fun onItem(item: T) +} diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/GroupsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/GroupsController.kt index b49bbbe..01b8ad7 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/GroupsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/GroupsController.kt @@ -1,37 +1,18 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.group import com.kirkbushman.zammad.models.Group -class GroupsController(private val callback: OnUpDelCallback) : EpoxyController() { +class GroupsController(callback: OnUpDelCallback) : BaseController(callback) { - private val groups = ArrayList() + override fun onItem(item: Group) { - fun setGroups(groups: Collection) { - this.groups.clear() - this.groups.addAll(groups) - requestModelBuild() - } - - override fun buildModels() { - - if (groups.isEmpty()) { - empty { - id("empty_items") - } - } - - groups.forEach { - - group { - id(it.id) - group(it) - clickListener { _, _, _, position -> callback.onClick(position) } - updateListener { _, _, _, position -> callback.onUpdateClick(position) } - deleteListener { _, _, _, position -> callback.onDeleteClick(position) } - } + group { + id(item.id) + group(item) + clickListener { _, _, _, position -> callback.onClick(position) } + updateListener { _, _, _, position -> (callback as OnUpDelCallback).onUpdateClick(position) } + deleteListener { _, _, _, position -> (callback as OnUpDelCallback).onDeleteClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/NotificationsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/NotificationsController.kt index 4c436e2..06672ed 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/NotificationsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/NotificationsController.kt @@ -1,34 +1,15 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.notification import com.kirkbushman.zammad.models.OnlineNotification -class NotificationsController : EpoxyController() { +class NotificationsController(callback: OnClickCallback) : BaseController(callback) { - private val notifications = ArrayList() + override fun onItem(item: OnlineNotification) { - fun setNotifications(notifications: Collection) { - this.notifications.clear() - this.notifications.addAll(notifications) - requestModelBuild() - } - - override fun buildModels() { - - if (notifications.isEmpty()) { - empty { - id("empty_items") - } - } - - notifications.forEach { - - notification { - id(it.id) - notification(it) - } + notification { + id(item.id) + notification(item) } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ObjectsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ObjectsController.kt index c7ea479..8f95ef3 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ObjectsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/ObjectsController.kt @@ -1,36 +1,17 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController import com.kirkbushman.sampleapp.models.`object` -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.zammad.models.Object -class ObjectsController(private val callback: OnClickCallback) : EpoxyController() { +class ObjectsController(callback: OnClickCallback) : BaseController(callback) { - private val objects = ArrayList() + override fun onItem(item: Object) { - fun setObjects(items: Collection) { - this.objects.clear() - this.objects.addAll(items) - requestModelBuild() - } - - override fun buildModels() { - - if (objects.isEmpty()) { - empty { - id("empty_items") - } - } - - objects.forEach { - - `object` { + `object` { - id(it.id) - `object`(it) - clickListener { _, _, _, position -> callback.onClick(position) } - } + id(item.id) + `object`(item) + clickListener { _, _, _, position -> callback.onClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OrganizationsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OrganizationsController.kt index 61c01a6..abdf232 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OrganizationsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OrganizationsController.kt @@ -1,37 +1,18 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.organization import com.kirkbushman.zammad.models.Organization -class OrganizationsController(private val callback: OnUpDelCallback) : EpoxyController() { +class OrganizationsController(callback: OnUpDelCallback) : BaseController(callback) { - private val organizations = ArrayList() + override fun onItem(item: Organization) { - fun setOrganizations(organizations: Collection) { - this.organizations.clear() - this.organizations.addAll(organizations) - requestModelBuild() - } - - override fun buildModels() { - - if (organizations.isEmpty()) { - empty { - id("empty_items") - } - } - - organizations.forEach { - - organization { - id(it.id) - organization(it) - clickListener { _, _, _, position -> callback.onClick(position) } - updateListener { _, _, _, position -> callback.onUpdateClick(position) } - deleteListener { _, _, _, position -> callback.onDeleteClick(position) } - } + organization { + id(item.id) + organization(item) + clickListener { _, _, _, position -> callback.onClick(position) } + updateListener { _, _, _, position -> (callback as OnUpDelCallback).onUpdateClick(position) } + deleteListener { _, _, _, position -> (callback as OnUpDelCallback).onDeleteClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OverviewsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OverviewsController.kt index 66abd50..01af284 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OverviewsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/OverviewsController.kt @@ -1,35 +1,16 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.overview import com.kirkbushman.zammad.models.Overview -class OverviewsController(private val callback: OnClickCallback) : EpoxyController() { +class OverviewsController(callback: OnClickCallback) : BaseController(callback) { - private val overviews = ArrayList() + override fun onItem(item: Overview) { - fun setOverviews(overviews: Collection) { - this.overviews.clear() - this.overviews.addAll(overviews) - requestModelBuild() - } - - override fun buildModels() { - - if (overviews.isEmpty()) { - empty { - id("empty_items") - } - } - - overviews.forEach { - - overview { - id(it.id) - overview(it) - clickListener { _, _, _, position -> callback.onClick(position) } - } + overview { + id(item.id) + overview(item) + clickListener { _, _, _, position -> callback.onClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/PrioritiesController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/PrioritiesController.kt index 05b38a7..7838095 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/PrioritiesController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/PrioritiesController.kt @@ -1,37 +1,18 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.priority import com.kirkbushman.zammad.models.TicketPriority -class PrioritiesController(private val callback: OnUpDelCallback) : EpoxyController() { +class PrioritiesController(callback: OnUpDelCallback) : BaseController(callback) { - private val priorities = ArrayList() + override fun onItem(item: TicketPriority) { - fun setPriorities(priorities: Collection) { - this.priorities.clear() - this.priorities.addAll(priorities) - requestModelBuild() - } - - override fun buildModels() { - - if (priorities.isEmpty()) { - empty { - id("empty_items") - } - } - - priorities.forEach { - - priority { - id(it.id) - priority(it) - clickListener { _, _, _, position -> callback.onClick(position) } - updateListener { _, _, _, position -> callback.onUpdateClick(position) } - deleteListener { _, _, _, position -> callback.onDeleteClick(position) } - } + priority { + id(item.id) + priority(item) + clickListener { _, _, _, position -> callback.onClick(position) } + updateListener { _, _, _, position -> (callback as OnUpDelCallback).onUpdateClick(position) } + deleteListener { _, _, _, position -> (callback as OnUpDelCallback).onDeleteClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/RolesController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/RolesController.kt index 7fbc53e..a17b925 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/RolesController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/RolesController.kt @@ -1,35 +1,16 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.role import com.kirkbushman.zammad.models.Role -class RolesController(private val callback: OnClickCallback) : EpoxyController() { +class RolesController(callback: OnClickCallback) : BaseController(callback) { - private val roles = ArrayList() + override fun onItem(item: Role) { - fun setRoles(roles: Collection) { - this.roles.clear() - this.roles.addAll(roles) - requestModelBuild() - } - - override fun buildModels() { - - if (roles.isEmpty()) { - empty { - id("empty_items") - } - } - - roles.forEach { - - role { - id(it.id) - role(it) - clickListener { _, _, _, position -> callback.onClick(position) } - } + role { + id(item.id) + role(item) + clickListener { _, _, _, position -> callback.onClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/StatesController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/StatesController.kt index ae53cf9..ebabbbb 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/StatesController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/StatesController.kt @@ -1,37 +1,18 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.state import com.kirkbushman.zammad.models.TicketState -class StatesController(private val callback: OnUpDelCallback) : EpoxyController() { +class StatesController(callback: OnUpDelCallback) : BaseController(callback) { - private val states = ArrayList() + override fun onItem(item: TicketState) { - fun setStates(states: Collection) { - this.states.clear() - this.states.addAll(states) - requestModelBuild() - } - - override fun buildModels() { - - if (states.isEmpty()) { - empty { - id("empty_items") - } - } - - states.forEach { - - state { - id(it.id) - state(it) - clickListener { _, _, _, position -> callback.onClick(position) } - updateListener { _, _, _, position -> callback.onUpdateClick(position) } - deleteListener { _, _, _, position -> callback.onDeleteClick(position) } - } + state { + id(item.id) + state(item) + clickListener { _, _, _, position -> callback.onClick(position) } + updateListener { _, _, _, position -> (callback as OnUpDelCallback).onUpdateClick(position) } + deleteListener { _, _, _, position -> (callback as OnUpDelCallback).onDeleteClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TagsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TagsController.kt index 773078e..cfb1127 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TagsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TagsController.kt @@ -1,35 +1,16 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.tag import com.kirkbushman.zammad.models.Tag -class TagsController(private val callback: OnClickCallback) : EpoxyController() { +class TagsController(callback: OnClickCallback) : BaseController(callback) { - private val tags = ArrayList() + override fun onItem(item: Tag) { - fun setTags(tags: Collection) { - this.tags.clear() - this.tags.addAll(tags) - requestModelBuild() - } - - override fun buildModels() { - - if (tags.isEmpty()) { - empty { - id("empty_items") - } - } - - tags.forEach { - - tag { - id(it.id) - tag(it) - clickListener { _, _, _, position -> callback.onClick(position) } - } + tag { + id(item.id) + tag(item) + clickListener { _, _, _, position -> callback.onClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TicketsController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TicketsController.kt index 00cad87..5b59c5d 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TicketsController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/TicketsController.kt @@ -1,38 +1,19 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.ticket import com.kirkbushman.zammad.models.Ticket -class TicketsController(private val callback: OnTicketCallback) : EpoxyController() { +class TicketsController(callback: OnTicketCallback) : BaseController(callback) { - private val tickets = ArrayList() + override fun onItem(item: Ticket) { - fun setTickets(tickets: Collection) { - this.tickets.clear() - this.tickets.addAll(tickets) - requestModelBuild() - } - - override fun buildModels() { - - if (tickets.isEmpty()) { - empty { - id("empty_items") - } - } - - tickets.forEach { - - ticket { - id(it.id) - ticket(it) - clickListener { _, _, _, position -> callback.onClick(position) } - articleListener { _, _, _, position -> callback.onArticleClick(position) } - updateListener { _, _, _, position -> callback.onUpdateClick(position) } - deleteListener { _, _, _, position -> callback.onDeleteClick(position) } - } + ticket { + id(item.id) + ticket(item) + clickListener { _, _, _, position -> callback.onClick(position) } + articleListener { _, _, _, position -> (callback as OnTicketCallback).onArticleClick(position) } + updateListener { _, _, _, position -> (callback as OnTicketCallback).onUpdateClick(position) } + deleteListener { _, _, _, position -> (callback as OnTicketCallback).onDeleteClick(position) } } } } diff --git a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/UsersController.kt b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/UsersController.kt index 987e6da..0f8c2da 100644 --- a/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/UsersController.kt +++ b/sampleapp/src/main/java/com/kirkbushman/sampleapp/controllers/UsersController.kt @@ -1,37 +1,18 @@ package com.kirkbushman.sampleapp.controllers -import com.airbnb.epoxy.EpoxyController -import com.kirkbushman.sampleapp.models.empty import com.kirkbushman.sampleapp.models.user import com.kirkbushman.zammad.models.User -class UsersController(private val callback: OnUpDelCallback) : EpoxyController() { +class UsersController(callback: OnUpDelCallback) : BaseController(callback) { - private val users = ArrayList() + override fun onItem(item: User) { - fun setUsers(users: Collection) { - this.users.clear() - this.users.addAll(users) - requestModelBuild() - } - - override fun buildModels() { - - if (users.isEmpty()) { - empty { - id("empty_items") - } - } - - users.forEach { - - user { - id(it.id) - user(it) - clickListener { _, _, _, position -> callback.onClick(position) } - updateListener { _, _, _, position -> callback.onUpdateClick(position) } - deleteListener { _, _, _, position -> callback.onDeleteClick(position) } - } + user { + id(item.id) + user(item) + clickListener { _, _, _, position -> callback.onClick(position) } + updateListener { _, _, _, position -> (callback as OnUpDelCallback).onUpdateClick(position) } + deleteListener { _, _, _, position -> (callback as OnUpDelCallback).onDeleteClick(position) } } } }