Skip to content

Commit

Permalink
Accept pending licenses
Browse files Browse the repository at this point in the history
  • Loading branch information
davigonz committed Apr 9, 2019
1 parent fea4e15 commit 01977a3
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 41 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -353,11 +353,6 @@ class ShareActivity : FileActivity(), ShareFragmentListener {
searchShareesFragment.refreshUsersOrGroupsListFromDB()
}

val publicShareDialogFragment = publicShareFragment
if (publicShareDialogFragment?.isAdded == true) { // only if added to the view hierarchy!!
publicShareDialogFragment.refreshModelFromStorageManager()
}

val editShareFragment = editShareFragment
if (editShareFragment?.isAdded == true) {
editShareFragment.refreshUiFromDB()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,12 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelProviders
import com.owncloud.android.R
import com.owncloud.android.ViewModelFactory
import com.owncloud.android.capabilities.db.OCCapability
import com.owncloud.android.capabilities.viewmodel.OCCapabilityViewModel
import com.owncloud.android.datamodel.OCFile
import com.owncloud.android.lib.common.utils.Log_OC
import com.owncloud.android.lib.resources.shares.RemoteShare
import com.owncloud.android.lib.resources.shares.ShareType
import com.owncloud.android.lib.resources.status.RemoteCapability
import com.owncloud.android.lib.resources.status.OwnCloudVersion
import com.owncloud.android.operations.common.OperationType
import com.owncloud.android.shares.db.OCShare
Expand Down Expand Up @@ -90,7 +91,7 @@ class PublicShareDialogFragment : DialogFragment() {
/**
* Capabilities of the server
*/
private var capabilities: RemoteCapability? = null
private var capabilities: OCCapability? = null

/**
* Listener for changes in password switch
Expand Down Expand Up @@ -131,24 +132,30 @@ class PublicShareDialogFragment : DialogFragment() {
* Get expiration date imposed by the server, if any
*/
private val imposedExpirationDate: Long
get() = if (capabilities?.filesSharingPublicExpireDateEnforced?.isTrue == true) {

get() = if (capabilities?.filesSharingPublicExpireDateEnforced == OCCapability.ENABLED) {
DateUtils.addDaysToDate(
Date(),
capabilities?.filesSharingPublicExpireDateDays!!
)
.time
} else -1

var viewModelFactory: ViewModelProvider.Factory = ViewModelFactory.build {
var ocShareViewModelFactory: ViewModelProvider.Factory = ViewModelFactory.build {
OCShareViewModel(
account!!,
file?.remotePath!!,
listOf(ShareType.PUBLIC_LINK)
)
}

var ocCapabilityViewModelFactory: ViewModelProvider.Factory = ViewModelFactory.build {
OCCapabilityViewModel(
account!!
)
}

private lateinit var ocShareViewModel: OCShareViewModel
private lateinit var ocCapabilityViewModel: OCCapabilityViewModel

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -223,7 +230,11 @@ class PublicShareDialogFragment : DialogFragment() {
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
ocShareViewModel = ViewModelProviders.of(this, viewModelFactory).get(OCShareViewModel::class.java)
ocShareViewModel = ViewModelProviders.of(this, ocShareViewModelFactory).
get(OCShareViewModel::class.java)

ocCapabilityViewModel =
ViewModelProviders.of(this, ocCapabilityViewModelFactory).get(OCCapabilityViewModel::class.java)

initPasswordListener()
initExpirationListener()
Expand Down Expand Up @@ -452,8 +463,7 @@ class PublicShareDialogFragment : DialogFragment() {
super.onActivityCreated(savedInstanceState)
Log_OC.d(TAG, "onActivityCreated")

// Load known capabilities of the server from DB
refreshModelFromStorageManager()
refreshCapabilities()
}

override fun onSaveInstanceState(outState: Bundle) {
Expand Down Expand Up @@ -604,18 +614,38 @@ class PublicShareDialogFragment : DialogFragment() {
}
}

/**
* Get known server capabilities from DB
*
* Depends on the parent Activity provides a [com.owncloud.android.datamodel.FileDataStorageManager]
* instance ready to use. If not ready, does nothing.
*/
fun refreshModelFromStorageManager() {
if ((listener as BaseActivity).storageManager != null) {
capabilities = (listener as BaseActivity).storageManager.getCapability(account?.name)

updateInputFormAccordingToServerCapabilities()
}
private fun refreshCapabilities() {
ocCapabilityViewModel.getCapabilityForAccount().observe(
this,
Observer { resource ->
when (resource?.status) {
Status.SUCCESS -> {
capabilities = resource.data
updateInputFormAccordingToServerCapabilities()
(activity as BaseActivity).dismissLoadingDialog()
}
Status.ERROR -> {
val errorMessage = ErrorMessageAdapter.getResultMessage(
resource.code,
resource.exception,
OperationType.GET_SHARES,
resources
)
showError(errorMessage)
capabilities = resource.data
(activity as BaseActivity).dismissLoadingDialog()
}
Status.LOADING -> {
(activity as BaseActivity).showLoadingDialog(R.string.common_loading)
capabilities = resource.data
updateInputFormAccordingToServerCapabilities()
}
else -> {
Log.d(TAG, "Unknown status when loading capabilities")
}
}
}
)
}

/**
Expand All @@ -642,7 +672,7 @@ class PublicShareDialogFragment : DialogFragment() {
)
}

if (capabilities?.filesSharingPublicUpload?.isTrue == true && isSharedFolder) {
if (capabilities?.filesSharingPublicUpload == OCCapability.ENABLED && isSharedFolder) {
shareViaLinkEditPermissionGroup?.visibility = View.VISIBLE
}

Expand All @@ -653,8 +683,8 @@ class PublicShareDialogFragment : DialogFragment() {
// - Allow editing capability is set
if (!(isSharedFolder &&
serverVersion.isPublicSharingWriteOnlySupported &&
capabilities?.filesSharingPublicSupportsUploadOnly?.isTrue == true &&
capabilities?.filesSharingPublicUpload?.isTrue == true)
capabilities?.filesSharingPublicSupportsUploadOnly == OCCapability.ENABLED &&
capabilities?.filesSharingPublicUpload == OCCapability.ENABLED)
) {
shareViaLinkEditPermissionGroup?.visibility = View.GONE
}
Expand All @@ -676,7 +706,7 @@ class PublicShareDialogFragment : DialogFragment() {
}

// Hide expiration date switch if date is enforced to prevent it is removed
if (capabilities?.filesSharingPublicExpireDateEnforced?.isTrue == true) {
if (capabilities?.filesSharingPublicExpireDateEnforced == OCCapability.ENABLED) {
shareViaLinkExpirationLabel?.text = getString(R.string.share_via_link_expiration_date_enforced_label)
shareViaLinkExpirationSwitch?.visibility = View.GONE
shareViaLinkExpirationExplanationLabel?.visibility = View.VISIBLE
Expand All @@ -687,29 +717,32 @@ class PublicShareDialogFragment : DialogFragment() {
}

// Set password label when opening the dialog
if (shareViaLinkEditPermissionReadOnly.isChecked && capabilities?.filesSharingPublicPasswordEnforcedReadOnly?.isTrue == true ||
shareViaLinkEditPermissionReadAndWrite.isChecked && capabilities?.filesSharingPublicPasswordEnforcedReadWrite?.isTrue == true ||
shareViaLinkEditPermissionUploadFiles.isChecked && capabilities?.filesSharingPublicPasswordEnforcedUploadOnly?.isTrue == true
if (shareViaLinkEditPermissionReadOnly.isChecked &&
capabilities?.filesSharingPublicPasswordEnforcedReadOnly == OCCapability.ENABLED ||
shareViaLinkEditPermissionReadAndWrite.isChecked &&
capabilities?.filesSharingPublicPasswordEnforcedReadWrite == OCCapability.ENABLED ||
shareViaLinkEditPermissionUploadFiles.isChecked &&
capabilities?.filesSharingPublicPasswordEnforcedUploadOnly == OCCapability.ENABLED
) {
setPasswordEnforced()
}

// Set password label depending on the checked permission option
shareViaLinkEditPermissionGroup?.setOnCheckedChangeListener { group, checkedId ->
if (checkedId == shareViaLinkEditPermissionReadOnly.id) {
if (capabilities?.filesSharingPublicPasswordEnforcedReadOnly?.isTrue == true) {
if (capabilities?.filesSharingPublicPasswordEnforcedReadOnly == OCCapability.ENABLED) {
setPasswordEnforced()
} else {
setPasswordNotEnforced()
}
} else if (checkedId == shareViaLinkEditPermissionReadAndWrite.id) {
if (capabilities?.filesSharingPublicPasswordEnforcedReadWrite?.isTrue == true) {
if (capabilities?.filesSharingPublicPasswordEnforcedReadWrite == OCCapability.ENABLED) {
setPasswordEnforced()
} else {
setPasswordNotEnforced()
}
} else if (checkedId == shareViaLinkEditPermissionUploadFiles.id) {
if (capabilities?.filesSharingPublicPasswordEnforcedUploadOnly?.isTrue == true) {
if (capabilities?.filesSharingPublicPasswordEnforcedUploadOnly == OCCapability.ENABLED) {
setPasswordEnforced()
} else {
setPasswordNotEnforced()
Expand All @@ -718,12 +751,12 @@ class PublicShareDialogFragment : DialogFragment() {
}

// When there's no password enforced for capability
val hasPasswordEnforcedFor = capabilities?.filesSharingPublicPasswordEnforcedReadOnly?.isTrue == true ||
capabilities?.filesSharingPublicPasswordEnforcedReadWrite?.isTrue == true ||
capabilities?.filesSharingPublicPasswordEnforcedUploadOnly?.isTrue == true
val hasPasswordEnforcedFor = capabilities?.filesSharingPublicPasswordEnforcedReadOnly == OCCapability.ENABLED ||
capabilities?.filesSharingPublicPasswordEnforcedReadWrite == OCCapability.ENABLED ||
capabilities?.filesSharingPublicPasswordEnforcedUploadOnly == OCCapability.ENABLED

// hide password switch if password is enforced to prevent it is removed
if (!hasPasswordEnforcedFor && capabilities?.filesSharingPublicPasswordEnforced?.isTrue == true) {
if (!hasPasswordEnforcedFor && capabilities?.filesSharingPublicPasswordEnforced == OCCapability.ENABLED) {
setPasswordEnforced()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe
*/
private val isPublicShareDisabled: Boolean
get() = capabilities != null && capabilities?.filesSharingPublicEnabled == OCCapability.DISABLED

var ocShareViewModelFactory: ViewModelProvider.Factory = ViewModelFactory.build {
OCShareViewModel(
account!!,
Expand All @@ -208,7 +209,6 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe
}

private lateinit var ocShareViewModel: OCShareViewModel

private lateinit var ocCapabilityViewModel: OCCapabilityViewModel

/**
Expand Down Expand Up @@ -285,7 +285,8 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
ocShareViewModel = ViewModelProviders.of(this, ocShareViewModelFactory).get(OCShareViewModel::class.java)
ocShareViewModel = ViewModelProviders.of(this, ocShareViewModelFactory)
.get(OCShareViewModel::class.java)

ocCapabilityViewModel =
ViewModelProviders.of(this, ocCapabilityViewModelFactory).get(OCCapabilityViewModel::class.java)
Expand Down

0 comments on commit 01977a3

Please sign in to comment.