@@ -9,8 +9,13 @@ package com.owncloud.android.ui.fragment
99
1010import android.os.Build
1111import android.os.Bundle
12+ import android.view.ContextThemeWrapper
13+ import android.view.Gravity
1214import android.view.View
15+ import android.widget.LinearLayout
16+ import androidx.core.content.ContextCompat
1317import com.google.android.material.bottomsheet.BottomSheetDialog
18+ import com.google.android.material.button.MaterialButton
1419import com.google.gson.Gson
1520import com.nextcloud.android.common.ui.theme.utils.ColorRole
1621import com.nextcloud.client.account.User
@@ -21,7 +26,6 @@ import com.nextcloud.utils.BuildHelper.isFlavourGPlay
2126import com.nextcloud.utils.EditorUtils
2227import com.owncloud.android.MainApp
2328import com.owncloud.android.R
24- import com.owncloud.android.databinding.FileListActionsBottomSheetCreatorBinding
2529import com.owncloud.android.databinding.FileListActionsBottomSheetFragmentBinding
2630import com.owncloud.android.datamodel.ArbitraryDataProvider
2731import com.owncloud.android.datamodel.ArbitraryDataProviderImpl
@@ -81,24 +85,35 @@ class OCFileListBottomSheetDialog(
8185
8286 if (! hasPermission) {
8387 binding.menuUploadFiles.visibility = View .GONE
84- binding.uploadContentFromOtherApps .text = context.getString(R .string.upload_files)
88+ binding.menuUploadFromApp .text = context.getString(R .string.upload_files)
8589 }
8690 }
8791 }
8892
8993 private fun applyBranding () {
90- viewThemeUtils.platform .run {
94+ viewThemeUtils.material .run {
9195 binding.run {
92- colorImageView(menuIconUploadFiles, ColorRole .PRIMARY )
93- colorImageView(menuIconUploadFromApp, ColorRole .PRIMARY )
94- colorImageView(menuIconDirectCameraUpload, ColorRole .PRIMARY )
95- colorImageView(menuIconScanDocUpload, ColorRole .PRIMARY )
96- colorImageView(menuIconMkdir, ColorRole .PRIMARY )
97- colorImageView(menuIconAddFolderInfo, ColorRole .PRIMARY )
98-
99- colorViewBackground(binding.bottomSheet, ColorRole .SURFACE )
96+ colorMaterialButtonContent(menuUploadFiles, ColorRole .PRIMARY )
97+ colorMaterialButtonContent(menuUploadFromApp, ColorRole .PRIMARY )
98+ colorMaterialButtonContent(menuDirectCameraUpload, ColorRole .PRIMARY )
99+ colorMaterialButtonContent(menuScanDocUpload, ColorRole .PRIMARY )
100+ colorMaterialButtonContent(menuMkdir, ColorRole .PRIMARY )
101+ colorMaterialButtonContent(menuCreateRichWorkspace, ColorRole .PRIMARY )
100102 }
101103 }
104+
105+ viewThemeUtils.platform.colorViewBackground(binding.bottomSheet, ColorRole .SURFACE )
106+
107+ val textColor = ContextCompat .getColor(context, R .color.text_color)
108+
109+ binding.run {
110+ menuUploadFiles.setTextColor(textColor)
111+ menuUploadFromApp.setTextColor(textColor)
112+ menuDirectCameraUpload.setTextColor(textColor)
113+ menuScanDocUpload.setTextColor(textColor)
114+ menuMkdir.setTextColor(textColor)
115+ menuCreateRichWorkspace.setTextColor(textColor)
116+ }
102117 }
103118
104119 @Suppress(" ComplexCondition" )
@@ -110,50 +125,76 @@ class OCFileListBottomSheetDialog(
110125 capability.richDocumentsTemplatesAvailable.isTrue &&
111126 ! file.isEncrypted
112127 ) {
113- binding.templates.visibility = View .VISIBLE
128+ binding.menuNewDocument.visibility = View .VISIBLE
129+ binding.menuNewSpreadsheet.visibility = View .VISIBLE
130+ binding.menuNewPresentation.visibility = View .VISIBLE
114131 }
115132 }
116133
117- @Suppress(" DEPRECATION" )
134+ @Suppress(" DEPRECATION" , " LongMethod " , " MagicNumber " )
118135 private fun initCreatorContainer () {
119136 val json = ArbitraryDataProviderImpl (context)
120137 .getValue(user, ArbitraryDataProvider .DIRECT_EDITING )
121138
122- if (! json.isEmpty () && ! file.isEncrypted) {
139+ if (json.isNotEmpty () && ! file.isEncrypted) {
123140 val directEditing = Gson ().fromJson(json, DirectEditing ::class .java)
124141 if (directEditing.creators.isEmpty()) {
125142 return
126143 }
127144
128145 binding.creatorsContainer.visibility = View .VISIBLE
146+ binding.creators.removeAllViews()
147+
148+ val itemHeight = context.resources.getDimensionPixelSize(R .dimen.bottom_sheet_item_height)
149+ val standardPadding = context.resources.getDimensionPixelSize(R .dimen.standard_padding)
150+ val iconSize = context.resources.getDimensionPixelSize(R .dimen.iconized_single_line_item_icon_size)
129151
130152 for (creator in directEditing.creators.values) {
131- val creatorViewBinding =
132- FileListActionsBottomSheetCreatorBinding .inflate(layoutInflater)
153+ val creatorButton = MaterialButton (
154+ ContextThemeWrapper (
155+ context,
156+ R .style.ThemeOverlay_App_Button_BottomSheetItem
157+ ),
158+ null ,
159+ com.google.android.material.R .attr.materialButtonStyle
160+ ).apply {
161+ id = View .generateViewId()
162+ layoutParams = LinearLayout .LayoutParams (
163+ LinearLayout .LayoutParams .MATCH_PARENT ,
164+ itemHeight
165+ )
133166
134- val creatorView: View = creatorViewBinding.getRoot()
167+ gravity = Gravity .START or Gravity .CENTER_VERTICAL
168+ setPaddingRelative(standardPadding, 0 , standardPadding, 0 )
135169
136- creatorViewBinding.creatorName.text = String .format(
137- fileActivity.getString(R .string.editor_placeholder),
138- fileActivity.getString(R .string.create_new),
139- creator.name
140- )
170+ val buttonText = String .format(
171+ fileActivity.getString(R .string.editor_placeholder),
172+ fileActivity.getString(R .string.create_new),
173+ creator.name
174+ )
175+ text = buttonText
176+ setTextColor(ContextCompat .getColor(context, R .color.text_color))
177+ textSize = 16f
178+ isAllCaps = false
141179
142- creatorViewBinding.creatorThumbnail.setImageDrawable(
143- MimeTypeUtil .getFileTypeIcon(
180+ icon = MimeTypeUtil .getFileTypeIcon(
144181 creator.mimetype,
145182 creator.extension,
146- creatorViewBinding.creatorThumbnail. context,
183+ context,
147184 viewThemeUtils
148185 )
149- )
150-
151- creatorView.setOnClickListener {
152- actions.showTemplate(creator, creatorViewBinding.creatorName.text.toString())
153- dismiss()
186+ this .iconSize = iconSize
187+ this .iconPadding = standardPadding
188+ iconGravity = MaterialButton .ICON_GRAVITY_START
189+ iconTint = null
190+
191+ setOnClickListener {
192+ actions.showTemplate(creator, buttonText)
193+ dismiss()
194+ }
154195 }
155196
156- binding.creators.addView(creatorView )
197+ binding.creators.addView(creatorButton )
157198 }
158199 }
159200 }
0 commit comments