@@ -34,22 +34,28 @@ import android.view.KeyEvent
3434import android.view.Menu
3535import android.view.MenuItem
3636import android.view.View
37+ import androidx.core.view.isVisible
3738import androidx.fragment.app.transaction
3839import com.owncloud.android.R
40+ import com.owncloud.android.databinding.MembersActivityBinding
41+ import com.owncloud.android.datamodel.ThumbnailsCacheManager
3942import com.owncloud.android.domain.files.model.OCFile
4043import com.owncloud.android.domain.sharing.shares.model.OCShare
4144import com.owncloud.android.domain.sharing.shares.model.ShareType
4245import com.owncloud.android.domain.utils.Event.EventObserver
4346import com.owncloud.android.extensions.adaptInfiniteEdges
4447import com.owncloud.android.extensions.showErrorInSnackbar
4548import com.owncloud.android.lib.resources.shares.RemoteShare
49+ import com.owncloud.android.presentation.capabilities.CapabilityViewModel
4650import com.owncloud.android.presentation.common.UIResult
4751import com.owncloud.android.presentation.sharing.sharees.EditPrivateShareFragment
4852import com.owncloud.android.presentation.sharing.sharees.SearchShareesFragment
4953import com.owncloud.android.presentation.sharing.sharees.UsersAndGroupsSearchProvider
5054import com.owncloud.android.presentation.sharing.shares.PublicShareDialogFragment
5155import com.owncloud.android.ui.activity.FileActivity
5256import com.owncloud.android.extensions.showDialogFragment
57+ import com.owncloud.android.utils.DisplayUtils
58+ import com.owncloud.android.utils.MimetypeIconUtil
5359import org.koin.androidx.viewmodel.ext.android.viewModel
5460import org.koin.core.parameter.parametersOf
5561import timber.log.Timber
@@ -64,37 +70,63 @@ class ShareActivity : FileActivity(), ShareFragmentListener {
6470 account?.name
6571 )
6672 }
73+ private val capabilityViewModel: CapabilityViewModel by viewModel {
74+ parametersOf(account?.name)
75+ }
6776
6877 override fun onCreate (savedInstanceState : Bundle ? ) {
6978 super .onCreate(savedInstanceState)
7079
71- setContentView(R .layout.share_activity)
80+ if (capabilityViewModel.isOcisServer()) {
81+ setupOcisLayout()
82+ } else {
83+ setupLegacyLayout(savedInstanceState)
84+ }
7285
73- val shareRoot = findViewById<View >(R .id.share_activity_layout)
74- adaptInfiniteEdges(shareRoot)
86+ observePrivateShareCreation()
87+ observePrivateShareEdition()
88+ observeShareDeletion()
89+ }
7590
76- setupStandardToolbar(
77- title = null ,
78- displayHomeAsUpEnabled = true ,
79- homeButtonEnabled = true ,
80- displayShowTitleEnabled = true ,
81- )
82- supportActionBar?.setHomeActionContentDescription(R .string.common_back)
91+ private fun setupOcisLayout () {
92+ val binding = MembersActivityBinding .inflate(layoutInflater)
93+ setContentView(binding.root)
94+ setupToolbar(binding.root)
95+ setupFileHeader(binding)
96+ }
8397
84- supportFragmentManager.transaction {
85- if (savedInstanceState == null && file != null && account != null ) {
86- // Add Share fragment on first creation
87- val fragment = ShareFileFragment .newInstance(file, account!! )
88- replace(
89- R .id.share_fragment_container, fragment,
90- TAG_SHARE_FRAGMENT
91- )
98+ private fun setupLegacyLayout (savedInstanceState : Bundle ? ) {
99+ setContentView(R .layout.share_activity)
100+ setupToolbar(findViewById(R .id.share_activity_layout))
101+ if (savedInstanceState == null && file != null && account != null ) {
102+ supportFragmentManager.transaction {
103+ replace(R .id.share_fragment_container, ShareFileFragment .newInstance(file, account!! ), TAG_SHARE_FRAGMENT )
92104 }
93105 }
106+ }
94107
95- observePrivateShareCreation()
96- observePrivateShareEdition()
97- observeShareDeletion()
108+ private fun setupToolbar (root : View ) {
109+ adaptInfiniteEdges(root)
110+ setupStandardToolbar(title = null , displayHomeAsUpEnabled = true , homeButtonEnabled = true , displayShowTitleEnabled = true )
111+ supportActionBar?.setHomeActionContentDescription(R .string.common_back)
112+ }
113+
114+ private fun setupFileHeader (binding : MembersActivityBinding ) {
115+ binding.itemIcon.setImageResource(MimetypeIconUtil .getFileTypeIconId(file.mimeType, file.fileName))
116+ if (file.isImage) {
117+ val thumbnail = ThumbnailsCacheManager .getBitmapFromDiskCache(file.remoteId.toString())
118+ if (thumbnail != null ) { binding.itemIcon.setImageBitmap(thumbnail) }
119+ }
120+
121+ binding.itemName.text = file.fileName
122+
123+ if (file.isFolder) {
124+ binding.itemSize.isVisible = false
125+ } else {
126+ binding.itemSize.text = DisplayUtils .bytesToHumanReadable(file.length, this , true )
127+ }
128+
129+ binding.permanentLinkButton.isVisible = false
98130 }
99131
100132 /* *************************************************************************************************************
0 commit comments