From 94bf8ade2971d31b6577e4b5f79e267c43d96a75 Mon Sep 17 00:00:00 2001 From: caodd Date: Tue, 11 Sep 2018 14:59:18 +0800 Subject: [PATCH] fix bug : throw an exception when call ImmutableSingleDataSource's show() or hide() --- .../datasource/ImmutableSingleDataSource.kt | 20 +++++++++++-------- .../datasource/MutableSingleDataSource.kt | 20 +++++++++++-------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/ImmutableSingleDataSource.kt b/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/ImmutableSingleDataSource.kt index b2dd1cc..f7e1bfb 100644 --- a/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/ImmutableSingleDataSource.kt +++ b/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/ImmutableSingleDataSource.kt @@ -7,6 +7,16 @@ class ImmutableSingleDataSource(val data: T) : SingleDataSource { override var group: SingleGroup? = null var visible: Boolean = true + set(value) { + if (field && !value) { + field = value + group?.notifyDataSetChanged(1) + } + if (!field && value) { + field = value + group?.notifyDataSetChanged(0) + } + } override fun haveData(): Boolean { return visible @@ -17,16 +27,10 @@ class ImmutableSingleDataSource(val data: T) : SingleDataSource { } fun show() { - if (!visible) { - visible = true - group?.notifyDataSetChanged(1) - } + visible = true } fun hide() { - if (visible) { - visible = false - group?.notifyDataSetChanged(0) - } + visible = false } } \ No newline at end of file diff --git a/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/MutableSingleDataSource.kt b/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/MutableSingleDataSource.kt index 6d30609..1cf6379 100644 --- a/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/MutableSingleDataSource.kt +++ b/easyadapter/src/main/java/com/github/caoddx/easyadapter/datasource/MutableSingleDataSource.kt @@ -15,6 +15,16 @@ class MutableSingleDataSource(initData: T) : SingleDataSource { } var visible: Boolean = true + set(value) { + if (field && !value) { + field = value + group?.notifyDataSetChanged(1) + } + if (!field && value) { + field = value + group?.notifyDataSetChanged(0) + } + } override fun haveData(): Boolean { return visible @@ -25,16 +35,10 @@ class MutableSingleDataSource(initData: T) : SingleDataSource { } fun show() { - if (!visible) { - visible = true - group?.notifyDataSetChanged(0) - } + visible = true } fun hide() { - if (visible) { - visible = false - group?.notifyDataSetChanged(1) - } + visible = false } } \ No newline at end of file