Skip to content

Commit bfb3de2

Browse files
Update versionCode.
Refactoring. Implemented AccessRoles screen for Shares too.
1 parent 0e7315a commit bfb3de2

File tree

11 files changed

+182
-282
lines changed

11 files changed

+182
-282
lines changed

app/build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ android {
1616
applicationId "org.permanent.PermanentArchive"
1717
minSdkVersion 26
1818
targetSdkVersion 32
19-
versionCode 40
20-
versionName "1.5.0"
19+
versionCode 41
20+
versionName "1.6.0"
2121

2222
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
2323
}
@@ -45,6 +45,7 @@ android {
4545
buildConfigField "String", "BASE_API_URL", "\"https://www.permanent.org/api/\""
4646
buildConfigField "String", "PAYMENT_INTENT_URL", "\"https://us-central1-prpledgeprod.cloudfunctions.net/donation/payment-sheet\""
4747
buildConfigField "String", "ADD_STORAGE_URL", "\"https://www.permanent.org/add-storage/\""
48+
buildConfigField "String", "ACCESS_ROLES_URL", "\"https://desk.zoho.com/portal/permanent/en/kb/articles/roles-for-collaboration-and-sharing/\""
4849
buildConfigField "String", "HELP_URL", "\"https://desk.zoho.com/portal/permanent/en/home/\""
4950
buildConfigField "String", "TERMS_URL", "\"https://www.permanent.org/terms/\""
5051
manifestPlaceholders = ['appAuthRedirectScheme': "${applicationId.toLowerCase()}"]
@@ -56,6 +57,7 @@ android {
5657
buildConfigField "String", "BASE_API_URL", "\"https://staging.permanent.org/api/\""
5758
buildConfigField "String", "PAYMENT_INTENT_URL", "\"https://us-central1-prpledgestaging.cloudfunctions.net/donation/payment-sheet\""
5859
buildConfigField "String", "ADD_STORAGE_URL", "\"https://staging.permanent.org/add-storage/\""
60+
buildConfigField "String", "ACCESS_ROLES_URL", "\"https://desk.zoho.com/portal/permanent/en/kb/articles/roles-for-collaboration-and-sharing/\""
5961
buildConfigField "String", "HELP_URL", "\"https://desk.zoho.com/portal/permanent/en/home/\""
6062
buildConfigField "String", "TERMS_URL", "\"https://www.permanent.org/terms/\""
6163
manifestPlaceholders = ['appAuthRedirectScheme': "${applicationId}"]

app/src/main/java/org/permanent/permanent/ui/AccessRolesFragment.kt

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ package org.permanent.permanent.ui
22

33
import android.app.Dialog
44
import android.content.DialogInterface
5+
import android.content.Intent
56
import android.graphics.Typeface
7+
import android.net.Uri
68
import android.os.Bundle
79
import android.view.LayoutInflater
810
import android.view.View
@@ -16,9 +18,11 @@ import androidx.lifecycle.ViewModelProvider
1618
import com.google.android.material.bottomsheet.BottomSheetBehavior
1719
import com.google.android.material.bottomsheet.BottomSheetDialog
1820
import com.google.android.material.snackbar.Snackbar
21+
import org.permanent.permanent.BuildConfig
1922
import org.permanent.permanent.R
2023
import org.permanent.permanent.databinding.FragmentAccessRolesBinding
2124
import org.permanent.permanent.models.AccessRole
25+
import org.permanent.permanent.models.Share
2226
import org.permanent.permanent.network.models.Shareby_urlVO
2327
import org.permanent.permanent.ui.shareManagement.ShareManagementFragment
2428
import org.permanent.permanent.viewmodels.AccessRolesViewModel
@@ -27,7 +31,7 @@ import org.permanent.permanent.viewmodels.SingleLiveEvent
2731
class AccessRolesFragment : PermanentBottomSheetFragment() {
2832
private lateinit var binding: FragmentAccessRolesBinding
2933
private lateinit var viewModel: AccessRolesViewModel
30-
private val onAccessRoleUpdated = SingleLiveEvent<AccessRole>()
34+
private val onAccessRoleUpdated = SingleLiveEvent<AccessRole?>()
3135

3236
fun setBundleArguments(
3337
shareByUrlVo: Shareby_urlVO,
@@ -37,6 +41,14 @@ class AccessRolesFragment : PermanentBottomSheetFragment() {
3741
this.arguments = bundle
3842
}
3943

44+
fun setBundleArguments(
45+
share: Share,
46+
) {
47+
val bundle = Bundle()
48+
bundle.putParcelable(ShareManagementFragment.PARCELABLE_SHARE_KEY, share)
49+
this.arguments = bundle
50+
}
51+
4052
override fun onCreateView(
4153
inflater: LayoutInflater,
4254
container: ViewGroup?,
@@ -48,6 +60,7 @@ class AccessRolesFragment : PermanentBottomSheetFragment() {
4860
binding.lifecycleOwner = this
4961
binding.viewModel = viewModel
5062
viewModel.setShareLink(arguments?.getParcelable(ShareManagementFragment.SHARE_BY_URL_VO_KEY))
63+
viewModel.setShare(arguments?.getParcelable(ShareManagementFragment.PARCELABLE_SHARE_KEY))
5164
initCurrentAccessRole()
5265

5366
return binding.root
@@ -58,7 +71,6 @@ class AccessRolesFragment : PermanentBottomSheetFragment() {
5871
AccessRole.CONTRIBUTOR -> binding.radioGroup.check(R.id.rbContributor)
5972
AccessRole.EDITOR -> binding.radioGroup.check(R.id.rbEditor)
6073
AccessRole.CURATOR -> binding.radioGroup.check(R.id.rbCurator)
61-
AccessRole.MANAGER -> binding.radioGroup.check(R.id.rbManager)
6274
AccessRole.OWNER -> binding.radioGroup.check(R.id.rbOwner)
6375
else -> {
6476
binding.radioGroup.check(R.id.rbViewer)
@@ -102,21 +114,29 @@ class AccessRolesFragment : PermanentBottomSheetFragment() {
102114
dismiss()
103115
}
104116

105-
private val onAccessRoleUpdatedObserver = Observer<AccessRole> {
117+
private val onAccessRoleUpdatedObserver = Observer<AccessRole?> {
106118
onAccessRoleUpdated.value = it
107119
dismiss()
108120
}
109121

110-
fun getOnAccessRoleUpdated(): MutableLiveData<AccessRole> = onAccessRoleUpdated
122+
private val showAccessRolesDocObserver = Observer<Void> {
123+
val intent = Intent(Intent.ACTION_VIEW)
124+
intent.data = Uri.parse(BuildConfig.ACCESS_ROLES_URL)
125+
startActivity(intent)
126+
}
127+
128+
fun getOnAccessRoleUpdated(): MutableLiveData<AccessRole?> = onAccessRoleUpdated
111129

112130
override fun connectViewModelEvents() {
131+
viewModel.getShowAccessRolesDocumentation().observe(this, showAccessRolesDocObserver)
113132
viewModel.getOnAccessRoleUpdated().observe(this, onAccessRoleUpdatedObserver)
114133
viewModel.getOnCloseSheetRequest().observe(this, onCloseSheetObserver)
115134
viewModel.getShowSnackbar().observe(this, showSnackbar)
116135
viewModel.getShowSnackbarSuccess().observe(this, showSnackbarSuccess)
117136
}
118137

119138
override fun disconnectViewModelEvents() {
139+
viewModel.getShowAccessRolesDocumentation().removeObserver(showAccessRolesDocObserver)
120140
viewModel.getOnAccessRoleUpdated().removeObserver(onAccessRoleUpdatedObserver)
121141
viewModel.getOnCloseSheetRequest().removeObserver(onCloseSheetObserver)
122142
viewModel.getShowSnackbar().observe(this, showSnackbar)

app/src/main/java/org/permanent/permanent/ui/members/ItemOptionsFragment.kt

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,8 @@ import org.permanent.permanent.R
1111
import org.permanent.permanent.databinding.FragmentItemOptionsBinding
1212
import org.permanent.permanent.models.Account
1313
import org.permanent.permanent.models.ProfileItem
14-
import org.permanent.permanent.models.Share
1514
import org.permanent.permanent.ui.PermanentBottomSheetFragment
1615
import org.permanent.permanent.ui.public.PublicProfileFragment.Companion.PARCELABLE_PROFILE_ITEM_KEY
17-
import org.permanent.permanent.ui.shareManagement.ShareManagementFragment.Companion.PARCELABLE_SHARE_KEY
1816
import org.permanent.permanent.viewmodels.ItemOptionsViewModel
1917
import org.permanent.permanent.viewmodels.SingleLiveEvent
2018

@@ -24,11 +22,9 @@ class ItemOptionsFragment : PermanentBottomSheetFragment() {
2422
private lateinit var binding: FragmentItemOptionsBinding
2523
private lateinit var viewModel: ItemOptionsViewModel
2624
private val onShowEditMemberDialogRequest = MutableLiveData<Account>()
27-
private val onShowEditShareDialogRequest = MutableLiveData<Share>()
2825
private val onEditProfileItemRequest = MutableLiveData<ProfileItem>()
2926
private val onDeleteProfileItemRequest = MutableLiveData<ProfileItem>()
3027
private val onMemberRemoved = SingleLiveEvent<String>()
31-
private val onShareRemoved = SingleLiveEvent<Share>()
3228
private val onShowSnackbar = SingleLiveEvent<String>()
3329
private val onShowSnackbarSuccess = SingleLiveEvent<String>()
3430

@@ -38,12 +34,6 @@ class ItemOptionsFragment : PermanentBottomSheetFragment() {
3834
this.arguments = bundle
3935
}
4036

41-
fun setBundleArguments(share: Share) {
42-
val bundle = Bundle()
43-
bundle.putParcelable(PARCELABLE_SHARE_KEY, share)
44-
this.arguments = bundle
45-
}
46-
4737
fun setBundleArguments(profileItem: ProfileItem) {
4838
val bundle = Bundle()
4939
bundle.putParcelable(PARCELABLE_PROFILE_ITEM_KEY, profileItem)
@@ -55,14 +45,13 @@ class ItemOptionsFragment : PermanentBottomSheetFragment() {
5545
container: ViewGroup?,
5646
savedInstanceState: Bundle?
5747
): View {
58-
viewModel = ViewModelProvider(this).get(ItemOptionsViewModel::class.java)
48+
viewModel = ViewModelProvider(this)[ItemOptionsViewModel::class.java]
5949
binding = FragmentItemOptionsBinding.inflate(inflater, container, false)
6050
binding.executePendingBindings()
6151
binding.lifecycleOwner = this
6252
binding.viewModel = viewModel
6353

6454
viewModel.setMember(arguments?.getParcelable(PARCELABLE_ACCOUNT_KEY))
65-
viewModel.setShare(arguments?.getParcelable(PARCELABLE_SHARE_KEY))
6655
val profileItem: ProfileItem? = arguments?.getParcelable(PARCELABLE_PROFILE_ITEM_KEY)
6756
viewModel.setProfileItem(profileItem)
6857
if (profileItem != null) binding.btnDelete.setText(R.string.delete_button)
@@ -75,11 +64,6 @@ class ItemOptionsFragment : PermanentBottomSheetFragment() {
7564
dismiss()
7665
}
7766

78-
private val onEditShareObserver = Observer<Share> { share ->
79-
onShowEditShareDialogRequest.value = share
80-
dismiss()
81-
}
82-
8367
private val onEditProfileItemObserver = Observer<ProfileItem> { profileItem ->
8468
onEditProfileItemRequest.value = profileItem
8569
dismiss()
@@ -95,11 +79,6 @@ class ItemOptionsFragment : PermanentBottomSheetFragment() {
9579
dismiss()
9680
}
9781

98-
private val onShareRemovedObserver = Observer<Share> { share ->
99-
onShareRemoved.value = share
100-
dismiss()
101-
}
102-
10382
private val onShowSnackbarSuccessObserver = Observer<String> {
10483
onShowSnackbarSuccess.value = it
10584
}
@@ -110,27 +89,21 @@ class ItemOptionsFragment : PermanentBottomSheetFragment() {
11089

11190
fun getShowEditMemberDialogRequest(): MutableLiveData<Account> = onShowEditMemberDialogRequest
11291

113-
fun getShowEditShareDialogRequest(): MutableLiveData<Share> = onShowEditShareDialogRequest
114-
11592
fun getEditProfileItemRequest(): MutableLiveData<ProfileItem> = onEditProfileItemRequest
11693

11794
fun getDeleteProfileItemRequest(): MutableLiveData<ProfileItem> = onDeleteProfileItemRequest
11895

11996
fun getOnMemberRemoved(): MutableLiveData<String> = onMemberRemoved
12097

121-
fun getOnShareRemoved(): MutableLiveData<Share> = onShareRemoved
122-
12398
fun getShowSnackbar(): MutableLiveData<String> = onShowSnackbar
12499

125100
fun getShowSnackbarSuccess(): MutableLiveData<String> = onShowSnackbarSuccess
126101

127102
override fun connectViewModelEvents() {
128103
viewModel.getOnEditMemberRequest().observe(this, onEditMemberObserver)
129-
viewModel.getOnEditShareRequest().observe(this, onEditShareObserver)
130104
viewModel.getOnEditProfileItemRequest().observe(this, onEditProfileItemObserver)
131105
viewModel.getOnDeleteProfileItemRequest().observe(this, onDeleteProfileItemObserver)
132106
viewModel.getOnMemberRemoved().observe(this, onMemberRemovedObserver)
133-
viewModel.getOnShareRemoved().observe(this, onShareRemovedObserver)
134107
viewModel.getShowSnackbarRequest().observe(this, onShowSnackbarObserver)
135108
viewModel.getShowSnackbarSuccessRequest().observe(this, onShowSnackbarSuccessObserver)
136109
}
@@ -140,7 +113,6 @@ class ItemOptionsFragment : PermanentBottomSheetFragment() {
140113
viewModel.getOnEditProfileItemRequest().removeObserver(onEditProfileItemObserver)
141114
viewModel.getOnDeleteProfileItemRequest().removeObserver(onDeleteProfileItemObserver)
142115
viewModel.getOnMemberRemoved().removeObserver(onMemberRemovedObserver)
143-
viewModel.getOnShareRemoved().removeObserver(onShareRemovedObserver)
144116
viewModel.getShowSnackbarRequest().removeObserver(onShowSnackbarObserver)
145117
viewModel.getShowSnackbarSuccessRequest().removeObserver(onShowSnackbarSuccessObserver)
146118
}

0 commit comments

Comments
 (0)