From 39ad32bbd0c7a33ab931f26eae060a98ad13588b Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Tue, 8 Sep 2020 12:48:25 +0300 Subject: [PATCH] Collection membership: implement leaving collections. --- .../ui/etebase/CollectionMembersFragment.kt | 32 ++++++++++++--- .../ui/etebase/ViewCollectionFragment.kt | 18 +++------ ...base_view_collection_members_no_access.xml | 40 +++++++++++++++++++ app/src/main/res/values/strings.xml | 2 + 4 files changed, 74 insertions(+), 18 deletions(-) create mode 100644 app/src/main/res/layout/etebase_view_collection_members_no_access.xml diff --git a/app/src/main/java/com/etesync/syncadapter/ui/etebase/CollectionMembersFragment.kt b/app/src/main/java/com/etesync/syncadapter/ui/etebase/CollectionMembersFragment.kt index 6048a60c..ef9cc387 100644 --- a/app/src/main/java/com/etesync/syncadapter/ui/etebase/CollectionMembersFragment.kt +++ b/app/src/main/java/com/etesync/syncadapter/ui/etebase/CollectionMembersFragment.kt @@ -6,6 +6,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Button import android.widget.CheckBox import android.widget.EditText import android.widget.TextView @@ -21,6 +22,7 @@ import com.etesync.syncadapter.CachedCollection import com.etesync.syncadapter.Constants import com.etesync.syncadapter.R import com.etesync.syncadapter.resource.LocalCalendar +import com.etesync.syncadapter.syncadapter.requestSync import com.etesync.syncadapter.ui.BaseActivity import org.jetbrains.anko.doAsync import org.jetbrains.anko.uiThread @@ -28,9 +30,15 @@ import org.jetbrains.anko.uiThread class CollectionMembersFragment : Fragment() { private val model: AccountViewModel by activityViewModels() private val collectionModel: CollectionViewModel by activityViewModels() + private var isAdmin: Boolean = false override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val ret = inflater.inflate(R.layout.etebase_view_collection_members, container, false) + val ret = if (collectionModel.value!!.col.accessLevel == CollectionAccessLevel.Admin) { + isAdmin = true + inflater.inflate(R.layout.etebase_view_collection_members, container, false) + } else { + inflater.inflate(R.layout.etebase_view_collection_members_no_access, container, false) + } if (savedInstanceState == null) { collectionModel.observe(this) { @@ -45,10 +53,6 @@ class CollectionMembersFragment : Fragment() { } private fun initUi(inflater: LayoutInflater, v: View, cachedCollection: CachedCollection) { - v.findViewById(R.id.add_member).setOnClickListener { - addMemberClicked() - } - val meta = cachedCollection.meta val colorSquare = v.findViewById(R.id.color) val color = LocalCalendar.parseColor(meta.color) @@ -70,6 +74,24 @@ class CollectionMembersFragment : Fragment() { val desc = v.findViewById(R.id.description) as TextView desc.text = meta.description + if (isAdmin) { + v.findViewById(R.id.add_member).setOnClickListener { + addMemberClicked() + } + } else { + v.findViewById