From 8daa75ec00b06fae1fff55c04efecc7fcc1496fa Mon Sep 17 00:00:00 2001 From: A117870935 Date: Mon, 15 May 2023 01:05:37 +0530 Subject: [PATCH] NMC-2051: Customized bottom sheet. NMC-1929: Collabora related customization with test cases. --- .../android/OCFileListBottomSheetDialogIT.kt | 113 ++++++++++++++++++ .../ui/fileactions/FileActionsBottomSheet.kt | 18 ++- .../TrashbinFileActionsBottomSheet.kt | 16 +-- .../java/com/nextcloud/utils/BuildHelper.kt | 5 +- .../android/ui/dialog/SendFilesDialog.kt | 2 - .../GalleryFragmentBottomSheetDialog.kt | 17 --- .../fragment/OCFileListBottomSheetDialog.kt | 82 +++++-------- .../main/res/drawable/ic_encrypted_folder.xml | 12 ++ .../main/res/drawable/ic_file_collection.xml | 12 ++ app/src/main/res/drawable/ic_new_txt_doc.xml | 34 ++++++ app/src/main/res/drawable/ic_upload_file.xml | 12 ++ .../res/layout/file_actions_bottom_sheet.xml | 2 + .../layout/file_actions_bottom_sheet_item.xml | 4 +- ...file_list_actions_bottom_sheet_creator.xml | 10 +- ...ile_list_actions_bottom_sheet_fragment.xml | 72 ++++++++--- .../layout/fragment_gallery_bottom_sheet.xml | 14 ++- ...ring_permissions_bottom_sheet_fragment.xml | 1 + .../main/res/layout/send_files_fragment.xml | 1 + .../main/res/layout/send_share_fragment.xml | 1 + app/src/main/res/values-de/strings.xml | 2 + app/src/main/res/values-night/colors.xml | 65 ++++++++++ app/src/main/res/values/colors.xml | 90 ++++++++++++++ app/src/main/res/values/dims.xml | 4 +- app/src/main/res/values/strings.xml | 2 + app/src/main/res/values/styles.xml | 2 +- 25 files changed, 473 insertions(+), 120 deletions(-) create mode 100644 app/src/androidTest/java/com/nmc/android/OCFileListBottomSheetDialogIT.kt create mode 100644 app/src/main/res/drawable/ic_encrypted_folder.xml create mode 100644 app/src/main/res/drawable/ic_file_collection.xml create mode 100644 app/src/main/res/drawable/ic_new_txt_doc.xml create mode 100644 app/src/main/res/drawable/ic_upload_file.xml diff --git a/app/src/androidTest/java/com/nmc/android/OCFileListBottomSheetDialogIT.kt b/app/src/androidTest/java/com/nmc/android/OCFileListBottomSheetDialogIT.kt new file mode 100644 index 000000000000..a0200d2a1a75 --- /dev/null +++ b/app/src/androidTest/java/com/nmc/android/OCFileListBottomSheetDialogIT.kt @@ -0,0 +1,113 @@ +package com.nmc.android + +import android.os.Looper +import androidx.activity.result.contract.ActivityResultContract +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.intent.rule.IntentsTestRule +import androidx.test.espresso.matcher.ViewMatchers.isCompletelyDisplayed +import androidx.test.espresso.matcher.ViewMatchers.withText +import com.google.android.material.bottomsheet.BottomSheetBehavior +import com.google.gson.Gson +import com.nextcloud.client.device.DeviceInfo +import com.nextcloud.client.documentscan.AppScanOptionalFeature +import com.nextcloud.utils.EditorUtils +import com.owncloud.android.AbstractIT +import com.owncloud.android.datamodel.ArbitraryDataProvider +import com.owncloud.android.datamodel.ArbitraryDataProviderImpl +import com.owncloud.android.datamodel.OCFile +import com.owncloud.android.lib.common.Creator +import com.owncloud.android.lib.common.DirectEditing +import com.owncloud.android.lib.resources.status.CapabilityBooleanType +import com.owncloud.android.ui.activity.FileDisplayActivity +import com.owncloud.android.ui.fragment.OCFileListBottomSheetActions +import com.owncloud.android.ui.fragment.OCFileListBottomSheetDialog +import com.owncloud.android.utils.MimeTypeUtil +import com.owncloud.android.utils.theme.CapabilityUtils +import org.junit.Before +import org.junit.Rule +import org.junit.Test +import org.mockito.Mock +import org.mockito.MockitoAnnotations + +class OCFileListBottomSheetDialogIT : AbstractIT() { + + @Mock + private lateinit var actions: OCFileListBottomSheetActions + + @get:Rule + val activityRule = IntentsTestRule(FileDisplayActivity::class.java, true, true) + + @Before + fun setUp() { + MockitoAnnotations.initMocks(this) + } + + @Test + fun validateCreateTextDocumentMenuOption() { + if (Looper.myLooper() == null) { + Looper.prepare() + } + + val info = DeviceInfo() + val ocFile = OCFile("/test.md") + + // add direct editing info + val creatorMap = mutableMapOf() + creatorMap["1"] = Creator( + "1", + "md", + "markdown file", + ".md", + MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN, + false + ) + + val directEditing = DirectEditing( + creators = creatorMap + ) + + val json = Gson().toJson(directEditing) + ArbitraryDataProviderImpl(targetContext).storeOrUpdateKeyValue( + user.accountName, + ArbitraryDataProvider.DIRECT_EDITING, + json + ) + + val capability = activityRule.activity.capabilities + capability.richDocuments = CapabilityBooleanType.TRUE + capability.richDocumentsDirectEditing = CapabilityBooleanType.TRUE + capability.richDocumentsTemplatesAvailable = CapabilityBooleanType.TRUE + capability.accountName = user.accountName + CapabilityUtils.updateCapability(capability) + + val appScanOptionalFeature: AppScanOptionalFeature = object : AppScanOptionalFeature() { + override fun getScanContract(): ActivityResultContract { + throw UnsupportedOperationException("Document scan is not available") + } + } + + val editorUtils = EditorUtils(ArbitraryDataProviderImpl(targetContext)) + val sut = OCFileListBottomSheetDialog( + activityRule.activity, + actions, + info, + user, + ocFile, + activityRule.activity.themeUtils, + activityRule.activity.viewThemeUtils, + editorUtils, + appScanOptionalFeature + ) + + activityRule.activity.runOnUiThread { sut.show() } + + waitForIdleSync() + + sut.behavior.state = BottomSheetBehavior.STATE_EXPANDED + + shortSleep() + + onView(withText("Create text document")).check(matches(isCompletelyDisplayed())) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt b/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt index 63ccd3b66f2c..7aca2f7f77bb 100644 --- a/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt +++ b/app/src/main/java/com/nextcloud/ui/fileactions/FileActionsBottomSheet.kt @@ -18,9 +18,9 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.annotation.IdRes -import androidx.appcompat.content.res.AppCompatResources import androidx.core.os.bundleOf import androidx.core.view.isEmpty +import androidx.core.content.res.ResourcesCompat import androidx.core.view.isVisible import androidx.fragment.app.FragmentManager import androidx.fragment.app.setFragmentResult @@ -98,8 +98,6 @@ class FileActionsBottomSheet : bottomSheetDialog.behavior.state = BottomSheetBehavior.STATE_EXPANDED bottomSheetDialog.behavior.skipCollapsed = true - viewThemeUtils.platform.colorViewBackground(binding.bottomSheet, ColorRole.SURFACE) - return binding.root } @@ -151,7 +149,11 @@ class FileActionsBottomSheet : private fun setMultipleFilesThumbnail() { context?.let { - val drawable = viewThemeUtils.platform.tintDrawable(it, R.drawable.file_multiple, ColorRole.PRIMARY) + // NMC Customization + val drawable = viewThemeUtils.platform.colorDrawable( + ResourcesCompat.getDrawable(it.resources, R.drawable.file_multiple, null)!!, + it.resources.getColor(R.color.primary, null) + ) binding.thumbnailLayout.thumbnail.setImageDrawable(drawable) } } @@ -292,12 +294,8 @@ class FileActionsBottomSheet : } text.setText(action.title) if (action.icon != null) { - val drawable = - viewThemeUtils.platform.tintDrawable( - requireContext(), - AppCompatResources.getDrawable(requireContext(), action.icon)!! - ) - icon.setImageDrawable(drawable) + // NMC customization + icon.setImageResource(action.icon) } } return itemBinding.root diff --git a/app/src/main/java/com/nextcloud/ui/trashbinFileActions/TrashbinFileActionsBottomSheet.kt b/app/src/main/java/com/nextcloud/ui/trashbinFileActions/TrashbinFileActionsBottomSheet.kt index b97c9bae97bc..277e8c3cfe97 100644 --- a/app/src/main/java/com/nextcloud/ui/trashbinFileActions/TrashbinFileActionsBottomSheet.kt +++ b/app/src/main/java/com/nextcloud/ui/trashbinFileActions/TrashbinFileActionsBottomSheet.kt @@ -12,7 +12,7 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.annotation.IdRes -import androidx.appcompat.content.res.AppCompatResources +import androidx.core.content.res.ResourcesCompat import androidx.core.os.bundleOf import androidx.core.view.isEmpty import androidx.core.view.isVisible @@ -136,7 +136,11 @@ class TrashbinFileActionsBottomSheet : private fun setMultipleFilesThumbnail() { context?.let { - val drawable = viewThemeUtils.platform.tintDrawable(it, R.drawable.file_multiple, ColorRole.PRIMARY) + // NMC Customization + val drawable = viewThemeUtils.platform.colorDrawable( + ResourcesCompat.getDrawable(it.resources, R.drawable.file_multiple, null)!!, + it.resources.getColor(R.color.primary, null) + ) binding.thumbnailLayout.thumbnail.setImageDrawable(drawable) } } @@ -198,12 +202,8 @@ class TrashbinFileActionsBottomSheet : } text.setText(action.title) if (action.icon != null) { - val drawable = - viewThemeUtils.platform.tintDrawable( - requireContext(), - AppCompatResources.getDrawable(requireContext(), action.icon)!! - ) - icon.setImageDrawable(drawable) + // NMC customization + icon.setImageResource(action.icon) } } return itemBinding.root diff --git a/app/src/main/java/com/nextcloud/utils/BuildHelper.kt b/app/src/main/java/com/nextcloud/utils/BuildHelper.kt index 4eca26f03780..29fad1c04023 100644 --- a/app/src/main/java/com/nextcloud/utils/BuildHelper.kt +++ b/app/src/main/java/com/nextcloud/utils/BuildHelper.kt @@ -6,10 +6,9 @@ */ package com.nextcloud.utils -import com.owncloud.android.BuildConfig - object BuildHelper { const val GPLAY: String = "gplay" - fun isFlavourGPlay(): Boolean = GPLAY == BuildConfig.FLAVOR + // NMC Customization to have it false always + fun isFlavourGPlay(): Boolean = false } diff --git a/app/src/main/java/com/owncloud/android/ui/dialog/SendFilesDialog.kt b/app/src/main/java/com/owncloud/android/ui/dialog/SendFilesDialog.kt index 09f2edbfe502..607370e63ebd 100644 --- a/app/src/main/java/com/owncloud/android/ui/dialog/SendFilesDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/dialog/SendFilesDialog.kt @@ -19,7 +19,6 @@ import android.view.ViewGroup import android.widget.Toast import androidx.recyclerview.widget.GridLayoutManager import com.google.android.material.bottomsheet.BottomSheetDialogFragment -import com.nextcloud.android.common.ui.theme.utils.ColorRole import com.nextcloud.client.di.Injectable import com.nextcloud.client.utils.IntentUtil.createSendIntent import com.owncloud.android.R @@ -58,7 +57,6 @@ class SendFilesDialog : binding = SendFilesFragmentBinding.inflate(inflater, container, false) setupSendButtonRecyclerView() - viewThemeUtils?.platform?.colorViewBackground(binding.bottomSheet, ColorRole.SURFACE) return binding.root } diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt b/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt index 05118c06796f..af7d200e5efe 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/GalleryFragmentBottomSheetDialog.kt @@ -42,23 +42,6 @@ class GalleryFragmentBottomSheetDialog(private val actions: GalleryFragmentBotto } private fun setupLayout() { - viewThemeUtils.platform.colorViewBackground(binding.bottomSheet, ColorRole.SURFACE) - - listOf( - binding.tickMarkShowImages, - binding.tickMarkShowVideos - ).forEach { - viewThemeUtils.platform.colorImageView(it, ColorRole.PRIMARY) - } - - listOf( - binding.btnSelectMediaFolder, - binding.btnHideVideos, - binding.btnHideImages - ).forEach { - viewThemeUtils.material.colorMaterialButtonText(it) - } - when (currentMediaState) { MediaState.MEDIA_STATE_PHOTOS_ONLY -> { binding.tickMarkShowImages.visibility = View.VISIBLE diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt index 1d7990290a90..6dd0164dfe41 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/OCFileListBottomSheetDialog.kt @@ -11,7 +11,6 @@ import android.os.Bundle import android.view.View import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.gson.Gson -import com.nextcloud.android.common.ui.theme.utils.ColorRole import com.nextcloud.client.account.User import com.nextcloud.client.device.DeviceInfo import com.nextcloud.client.di.Injectable @@ -28,6 +27,7 @@ import com.owncloud.android.ui.activity.FileActivity import com.owncloud.android.utils.MimeTypeUtil import com.owncloud.android.utils.theme.ThemeUtils import com.owncloud.android.utils.theme.ViewThemeUtils +import androidx.core.content.ContextCompat @Suppress("LongParameterList") class OCFileListBottomSheetDialog( @@ -50,7 +50,8 @@ class OCFileListBottomSheetDialog( binding = FileListActionsBottomSheetFragmentBinding.inflate(layoutInflater) setContentView(binding.getRoot()) - applyBranding() + // NMC Customization + reorderUploadFromOtherAppsView() binding.addToCloud.text = context.resources.getString( R.string.add_to_cloud, themeUtils.getDefaultDisplayNameForRootFolder(context) @@ -63,24 +64,10 @@ class OCFileListBottomSheetDialog( binding.menuDirectCameraUpload.visibility = View.GONE } - createRichWorkspace() setupClickListener() filterActionsForOfflineOperations() } - private fun applyBranding() { - viewThemeUtils.platform.run { - binding.run { - colorImageView(menuIconUploadFiles, ColorRole.PRIMARY) - colorImageView(menuIconUploadFromApp, ColorRole.PRIMARY) - colorImageView(menuIconDirectCameraUpload, ColorRole.PRIMARY) - colorImageView(menuIconScanDocUpload, ColorRole.PRIMARY) - colorImageView(menuIconMkdir, ColorRole.PRIMARY) - colorImageView(menuIconAddFolderInfo, ColorRole.PRIMARY) - } - } - } - @Suppress("ComplexCondition") private fun checkTemplateVisibility() { val capability = fileActivity.capabilities @@ -112,21 +99,24 @@ class OCFileListBottomSheetDialog( FileListActionsBottomSheetCreatorBinding.inflate(layoutInflater) val creatorView: View = creatorViewBinding.getRoot() - - creatorViewBinding.creatorName.text = String.format( - fileActivity.getString(R.string.editor_placeholder), - fileActivity.getString(R.string.create_new), - creator.name - ) - - creatorViewBinding.creatorThumbnail.setImageDrawable( - MimeTypeUtil.getFileTypeIcon( - creator.mimetype, - creator.extension, - creatorViewBinding.creatorThumbnail.context, - viewThemeUtils - ) - ) + //for NMC we have different text and icon for Markdown(.md) menu + if (creator.mimetype == MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN) { + creatorViewBinding.creatorName.text = fileActivity.getString(R.string.create_text_document) + creatorViewBinding.creatorThumbnail.setImageDrawable( + ContextCompat.getDrawable( + context, + R.drawable.ic_new_txt_doc)) + } else { + creatorViewBinding.creatorName.text = String.format(fileActivity.getString(R.string.editor_placeholder), + fileActivity.getString(R.string.create_new), + creator.name) + + creatorViewBinding.creatorThumbnail.setImageDrawable( + MimeTypeUtil.getFileTypeIcon(creator.mimetype, + creator.extension, + creatorViewBinding.creatorThumbnail.context, + viewThemeUtils)) + } creatorView.setOnClickListener { actions.showTemplate(creator, creatorViewBinding.creatorName.text.toString()) @@ -138,25 +128,6 @@ class OCFileListBottomSheetDialog( } } - private fun createRichWorkspace() { - if (editorUtils.isEditorAvailable(user, MimeTypeUtil.MIMETYPE_TEXT_MARKDOWN) && !file.isEncrypted) { - // richWorkspace - // == "": no info set -> show button - // == null: disabled on server side -> hide button - // != "": info set -> hide button - if (file.richWorkspace == null || "" != file.richWorkspace) { - binding.menuCreateRichWorkspace.visibility = View.GONE - binding.menuCreateRichWorkspaceDivider.visibility = View.GONE - } else { - binding.menuCreateRichWorkspace.visibility = View.VISIBLE - binding.menuCreateRichWorkspaceDivider.visibility = View.VISIBLE - } - } else { - binding.menuCreateRichWorkspace.visibility = View.GONE - binding.menuCreateRichWorkspaceDivider.visibility = View.GONE - } - } - private fun setupClickListener() { binding.run { menuCreateRichWorkspace.setOnClickListener { @@ -210,6 +181,17 @@ class OCFileListBottomSheetDialog( } } + private fun reorderUploadFromOtherAppsView() { + // move the upload from other app option + // below Create new folder or Create new e2ee folder + // NMC-3095 requirement + binding.actionLinear.removeView(binding.menuUploadFromApp) + binding.actionLinear.addView( + binding.menuUploadFromApp, + binding.actionLinear.indexOfChild(binding.menuEncryptedMkdir) + 1 + ) + } + private fun filterActionsForOfflineOperations() { fileActivity.connectivityService.isNetworkAndServerAvailable { result: Boolean? -> if (file.isRootDirectory) { diff --git a/app/src/main/res/drawable/ic_encrypted_folder.xml b/app/src/main/res/drawable/ic_encrypted_folder.xml new file mode 100644 index 000000000000..351565589c6a --- /dev/null +++ b/app/src/main/res/drawable/ic_encrypted_folder.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_file_collection.xml b/app/src/main/res/drawable/ic_file_collection.xml new file mode 100644 index 000000000000..8825d1f461cf --- /dev/null +++ b/app/src/main/res/drawable/ic_file_collection.xml @@ -0,0 +1,12 @@ + + + diff --git a/app/src/main/res/drawable/ic_new_txt_doc.xml b/app/src/main/res/drawable/ic_new_txt_doc.xml new file mode 100644 index 000000000000..2b0783479d48 --- /dev/null +++ b/app/src/main/res/drawable/ic_new_txt_doc.xml @@ -0,0 +1,34 @@ + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_upload_file.xml b/app/src/main/res/drawable/ic_upload_file.xml new file mode 100644 index 000000000000..3c16034fc8f9 --- /dev/null +++ b/app/src/main/res/drawable/ic_upload_file.xml @@ -0,0 +1,12 @@ + + + diff --git a/app/src/main/res/layout/file_actions_bottom_sheet.xml b/app/src/main/res/layout/file_actions_bottom_sheet.xml index cf2c493069b9..b4340d3e822f 100644 --- a/app/src/main/res/layout/file_actions_bottom_sheet.xml +++ b/app/src/main/res/layout/file_actions_bottom_sheet.xml @@ -13,6 +13,7 @@ style="@style/Widget.Material3.BottomSheet" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@color/bottom_sheet_bg_color" android:layout_gravity="bottom" app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"> @@ -68,6 +69,7 @@ android:ellipsize="start" android:lines="1" android:textAppearance="@style/TextAppearance.Material3.HeadlineSmall" + android:textColor="@color/bottom_sheet_txt_color" tools:text="@string/placeholder_extension" /> diff --git a/app/src/main/res/layout/file_actions_bottom_sheet_item.xml b/app/src/main/res/layout/file_actions_bottom_sheet_item.xml index 576726071cd0..3af941c60930 100644 --- a/app/src/main/res/layout/file_actions_bottom_sheet_item.xml +++ b/app/src/main/res/layout/file_actions_bottom_sheet_item.xml @@ -29,7 +29,7 @@ android:layout_width="@dimen/iconized_single_line_item_icon_size" android:layout_height="@dimen/iconized_single_line_item_icon_size" android:contentDescription="@null" - app:tint="@color/primary" + app:tint="@color/bottom_sheet_icon_color" tools:src="@drawable/ic_delete" /> diff --git a/app/src/main/res/layout/file_list_actions_bottom_sheet_creator.xml b/app/src/main/res/layout/file_list_actions_bottom_sheet_creator.xml index ccb1fa4d2d7e..db2bc705b0b2 100644 --- a/app/src/main/res/layout/file_list_actions_bottom_sheet_creator.xml +++ b/app/src/main/res/layout/file_list_actions_bottom_sheet_creator.xml @@ -8,12 +8,15 @@ --> @@ -22,8 +25,7 @@ android:id="@+id/creator_thumbnail" android:layout_width="24dp" android:layout_height="24dp" - android:layout_marginTop="@dimen/standard_margin" - android:layout_marginBottom="@dimen/standard_margin" + app:tint="@color/bottom_sheet_icon_color" android:contentDescription="@null" android:src="@drawable/file_ppt" /> @@ -32,8 +34,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:layout_marginStart="@dimen/bottom_sheet_text_start_margin" + android:layout_marginStart="@dimen/standard_margin" android:text="@string/create_new_presentation" - android:textColor="@color/text_color" + android:textColor="@color/bottom_sheet_txt_color" android:textSize="@dimen/bottom_sheet_text_size" /> diff --git a/app/src/main/res/layout/file_list_actions_bottom_sheet_fragment.xml b/app/src/main/res/layout/file_list_actions_bottom_sheet_fragment.xml index 2f1b5239dacf..272cc7e1f369 100644 --- a/app/src/main/res/layout/file_list_actions_bottom_sheet_fragment.xml +++ b/app/src/main/res/layout/file_list_actions_bottom_sheet_fragment.xml @@ -10,6 +10,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="@color/bottom_sheet_bg_color" android:orientation="vertical" android:paddingBottom="@dimen/standard_half_padding" app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"> @@ -26,7 +27,8 @@ android:paddingBottom="@dimen/standard_half_padding" android:text="@string/add_to_cloud" android:textAppearance="@style/TextAppearance.Material3.HeadlineSmall" - android:textColor="@color/text_color" /> + android:textColor="@color/text_color" + android:visibility="gone" /> @@ -48,7 +51,7 @@ android:gravity="center_vertical" android:orientation="horizontal" android:paddingLeft="@dimen/standard_padding" - android:paddingTop="@dimen/standard_half_padding" + android:paddingTop="@dimen/standard_padding" android:paddingRight="@dimen/standard_padding" android:paddingBottom="@dimen/standard_half_padding" tools:ignore="UseCompoundDrawables"> @@ -58,8 +61,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@null" - android:src="@drawable/ic_action_upload" - app:tint="@color/primary" /> + android:src="@drawable/ic_upload_file" + app:tint="@color/bottom_sheet_icon_color" /> @@ -90,8 +93,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:contentDescription="@null" - android:src="@drawable/ic_import" - app:tint="@color/primary" /> + android:src="@drawable/ic_file_collection" + app:tint="@color/bottom_sheet_icon_color" /> @@ -124,7 +127,7 @@ android:layout_height="wrap_content" android:contentDescription="@null" android:src="@drawable/ic_camera" - app:tint="@color/primary" /> + app:tint="@color/bottom_sheet_icon_color" /> @@ -187,7 +190,7 @@ android:layout_height="wrap_content" android:contentDescription="@null" android:src="@drawable/ic_action_create_dir" - app:tint="@color/primary" /> + app:tint="@color/bottom_sheet_icon_color" /> + + + + + + + @@ -264,7 +298,7 @@ android:layout_gravity="center_vertical" android:layout_marginStart="@dimen/bottom_sheet_text_start_margin" android:text="@string/create_new_spreadsheet" - android:textColor="@color/text_color" + android:textColor="@color/bottom_sheet_txt_color" android:textSize="@dimen/bottom_sheet_text_size" /> @@ -294,7 +328,7 @@ android:layout_gravity="center_vertical" android:layout_marginStart="@dimen/bottom_sheet_text_start_margin" android:text="@string/create_new_presentation" - android:textColor="@color/text_color" + android:textColor="@color/bottom_sheet_txt_color" android:textSize="@dimen/bottom_sheet_text_size" /> @@ -321,7 +355,8 @@ android:layout_marginStart="@dimen/bottom_sheet_menu_item_divider_standard_margin" android:layout_marginTop="@dimen/standard_half_margin" android:layout_marginBottom="@dimen/standard_half_margin" - android:background="@color/list_divider_background" /> + android:background="@color/list_divider_background" + android:visibility="gone" /> diff --git a/app/src/main/res/layout/fragment_gallery_bottom_sheet.xml b/app/src/main/res/layout/fragment_gallery_bottom_sheet.xml index 507cec6908bc..aa720ff688bb 100644 --- a/app/src/main/res/layout/fragment_gallery_bottom_sheet.xml +++ b/app/src/main/res/layout/fragment_gallery_bottom_sheet.xml @@ -15,10 +15,10 @@ android:layout_height="match_parent"> + android:textColor="@color/bottom_sheet_txt_color" + app:icon="@drawable/ic_camera" + app:iconTint="@color/bottom_sheet_icon_color"/> + android:textColor="@color/bottom_sheet_txt_color" + app:icon="@drawable/ic_video_camera" + app:iconTint="@color/bottom_sheet_icon_color"/> + android:textColor="@color/bottom_sheet_txt_color" + app:icon="@drawable/nav_photos" + app:iconTint="@color/bottom_sheet_icon_color"/> diff --git a/app/src/main/res/layout/send_files_fragment.xml b/app/src/main/res/layout/send_files_fragment.xml index d256a9433067..085cb14f043b 100644 --- a/app/src/main/res/layout/send_files_fragment.xml +++ b/app/src/main/res/layout/send_files_fragment.xml @@ -15,6 +15,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" + android:background="@color/bottom_sheet_bg_color" app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"> Verzeichnis konnte nicht erstellt werden Link erstellen Neu + Neues Textdokument erstellen Neues Dokument Neuer Ordner + Verschlüsselten Ordner erstellen Neue Präsentation Neue Tabelle Ordnerbeschreibung hinzufügen diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index db1e1d218038..e51fe9edd7db 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -39,4 +39,69 @@ @android:color/white #101418 + + + #FFFFFF + @color/grey_30 + @color/grey_30 + #CCCCCC + @color/grey_70 + @color/grey_80 + #2D2D2D + @color/grey_70 + @color/grey_70 + + + @color/grey_80 + @color/grey_0 + + + @color/grey_80 + @color/grey_0 + + + @color/grey_60 + @color/grey_0 + @color/grey_0 + @color/grey_30 + #FFFFFF + @color/grey_30 + @color/grey_80 + #FFFFFF + + + @color/grey_80 + @color/grey_30 + @color/grey_0 + + + @color/grey_80 + @color/grey_0 + @color/grey_80 + + + @color/grey_70 + @color/grey_60 + + + @color/grey_70 + @color/grey_70 + + + #FFFFFF + @color/grey_30 + @color/grey_0 + @color/grey_0 + @color/grey_0 + @color/grey_0 + @color/grey_60 + @color/grey_0 + #FFFFFF + #7d94f9 + + + #121212 + @color/grey_0 + @color/grey_80 + @color/grey_80 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 36d7459ecdaf..5e5aafeb02d4 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -89,4 +89,94 @@ #A5A5A5 #F7F9FF + + + #191919 + @color/primary + #191919 + #191919 + @color/grey_30 + @android:color/white + #FFFFFF + @color/grey_0 + #CCCCCC + #77c4ff + #B3FFFFFF + @color/grey_10 + + + #101010 + #F2F2F2 + #E5E5E5 + #B2B2B2 + #666666 + #4C4C4C + #333333 + + + @color/design_snackbar_background_color + @color/white + + + #FFFFFF + #191919 + + + @color/grey_0 + #191919 + @color/primary + #191919 + @color/primary + @color/grey_30 + @color/white + #191919 + + + #FFFFFF + #191919 + #191919 + + + #FFFFFF + #191919 + #FFFFFF + + + @color/primary + #F399C7 + #FFFFFF + @color/grey_30 + @color/grey_10 + @color/grey_0 + + + @color/primary + @color/grey_30 + @color/grey_30 + #CCCCCC + + + #191919 + @color/grey_30 + #191919 + #191919 + #191919 + #191919 + @color/grey_30 + #191919 + #000000 + #191919 + #F6E5EB + #C16F81 + #0D39DF + #0099ff + #2238df + + + @color/grey_0 + #191919 + @color/grey_0 + @color/grey_30 + #77b6bb + #5077b6bb diff --git a/app/src/main/res/values/dims.xml b/app/src/main/res/values/dims.xml index d320c92a664a..d94e37c76b46 100644 --- a/app/src/main/res/values/dims.xml +++ b/app/src/main/res/values/dims.xml @@ -15,8 +15,8 @@ 12sp 20dp 64dp - 40dp - 56dp + 16dp + 48dp 80dp 40dp 100dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7e699376c89e..9f57d2ae9fcb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -889,6 +889,7 @@ Scan document from camera Upload content from other apps New folder + Create new encrypted folder Virus detected. Upload cannot be completed! Tags Unable to fetch sharees. @@ -1081,6 +1082,7 @@ Cancel upload Delete New + Create text document %1$s %2$s File request diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 17cdbaabca4a..c91bf49c9ced 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -447,7 +447,7 @@