From 04a32fb573d3840543ced1109cd64898e5b5df92 Mon Sep 17 00:00:00 2001 From: A117870935 Date: Sun, 14 May 2023 01:26:18 +0530 Subject: [PATCH] Customized SearchView theme. --- .../client/logger/ui/LogsActivity.kt | 4 +- .../nmc/android/utils/SearchViewThemeUtils.kt | 24 +++++ .../ui/activity/FileDisplayActivity.kt | 6 +- .../ReceiveExternalFilesActivity.java | 4 +- .../ui/activity/UploadFilesActivity.java | 7 +- .../adapter/UnifiedSearchHeaderViewHolder.kt | 1 - .../ui/adapter/UnifiedSearchItemViewHolder.kt | 3 +- .../ui/fragment/ExtendedListFragment.kt | 4 +- .../ui/fragment/UnifiedSearchFragment.kt | 4 +- .../ui/preview/PreviewTextFileFragment.java | 4 +- .../ui/preview/PreviewTextStringFragment.java | 4 +- .../main/res/layout/unified_search_item.xml | 2 +- app/src/main/res/values-night/colors.xml | 65 ++++++++++++++ app/src/main/res/values/colors.xml | 90 +++++++++++++++++++ app/src/main/res/values/styles.xml | 2 +- 15 files changed, 211 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/com/nmc/android/utils/SearchViewThemeUtils.kt diff --git a/app/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt b/app/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt index 214750cbcffc..d45b84bea6d1 100644 --- a/app/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt +++ b/app/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt @@ -17,6 +17,7 @@ import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.nextcloud.client.di.ViewModelFactory +import com.nmc.android.utils.SearchViewThemeUtils.themeSearchView import com.owncloud.android.R import com.owncloud.android.databinding.LogsActivityBinding import com.owncloud.android.ui.activity.ToolbarActivity @@ -74,7 +75,8 @@ class LogsActivity : ToolbarActivity() { (menu.findItem(R.id.action_search).actionView as SearchView).apply { setOnQueryTextListener(searchBoxListener) - viewThemeUtils.androidx.themeToolbarSearchView(this) + //NMC customization + themeSearchView(this@LogsActivity, this) } return super.onCreateOptionsMenu(menu) } diff --git a/app/src/main/java/com/nmc/android/utils/SearchViewThemeUtils.kt b/app/src/main/java/com/nmc/android/utils/SearchViewThemeUtils.kt new file mode 100644 index 000000000000..c7c4a13b6773 --- /dev/null +++ b/app/src/main/java/com/nmc/android/utils/SearchViewThemeUtils.kt @@ -0,0 +1,24 @@ +package com.nmc.android.utils + +import android.content.Context +import android.widget.ImageView +import androidx.appcompat.widget.AppCompatAutoCompleteTextView +import androidx.appcompat.widget.SearchView +import com.owncloud.android.R + +object SearchViewThemeUtils { + fun themeSearchView(context: Context, searchView: SearchView) { + val fontColor = context.resources.getColor(R.color.fontAppbar, null) + val editText: AppCompatAutoCompleteTextView = + searchView.findViewById(androidx.appcompat.R.id.search_src_text) + editText.textSize = 16F + editText.setTextColor(fontColor) + editText.highlightColor = context.resources.getColor(R.color.et_highlight_color, null) + editText.setHintTextColor(context.resources.getColor(R.color.fontSecondaryAppbar, null)) + val closeButton: ImageView = searchView.findViewById(androidx.appcompat.R.id.search_close_btn) + closeButton.setColorFilter(fontColor) + val searchButton: ImageView = searchView.findViewById(androidx.appcompat.R.id.search_button) + searchButton.setImageResource(R.drawable.ic_search) + searchButton.setColorFilter(fontColor) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt index 87ef694000b3..128f71d776d8 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt +++ b/app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.kt @@ -84,6 +84,7 @@ import com.nextcloud.utils.extensions.lastFragment import com.nextcloud.utils.extensions.logFileSize import com.nextcloud.utils.fileNameValidator.FileNameValidator.checkFolderPath import com.nextcloud.utils.view.FastScrollUtils +import com.nmc.android.utils.SearchViewThemeUtils import com.owncloud.android.MainApp import com.owncloud.android.R import com.owncloud.android.databinding.FilesBinding @@ -867,7 +868,10 @@ class FileDisplayActivity : searchView?.isIconified = false } - searchView?.let { viewThemeUtils.androidx.themeToolbarSearchView(it) } + searchView?.let { + //NMC customization + SearchViewThemeUtils.themeSearchView(this, it) + } // populate list of menu items to show/hide when drawer is opened/closed mDrawerMenuItemstoShowHideList = ArrayList(1) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java index c9b4be929b4d..e412fd784da5 100755 --- a/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java @@ -56,6 +56,7 @@ import com.nextcloud.utils.extensions.FileExtensionsKt; import com.nextcloud.utils.extensions.IntentExtensionsKt; import com.nextcloud.utils.fileNameValidator.FileNameValidator; +import com.nmc.android.utils.SearchViewThemeUtils; import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.databinding.ReceiveExternalFilesBinding; @@ -1084,7 +1085,8 @@ public boolean onQueryTextChange(String newText) { } }); - viewThemeUtils.androidx.themeToolbarSearchView(searchView); + //NMC customization + SearchViewThemeUtils.INSTANCE.themeSearchView(this, searchView); } @Override diff --git a/app/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java index 226bb6d294b2..5d373ac26576 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java @@ -30,6 +30,7 @@ import com.nextcloud.client.account.User; import com.nextcloud.client.core.Clock; +import com.nmc.android.utils.SearchViewThemeUtils; import com.nextcloud.client.di.Injectable; import com.nextcloud.client.jobs.upload.FileUploadHelper; import com.nextcloud.client.jobs.upload.FileUploadWorker; @@ -296,8 +297,10 @@ public boolean onCreateOptionsMenu(Menu menu) { final MenuItem item = menu.findItem(R.id.action_search); mSearchView = (SearchView) MenuItemCompat.getActionView(item); - viewThemeUtils.androidx.themeToolbarSearchView(mSearchView); - viewThemeUtils.platform.tintTextDrawable(this, menu.findItem(R.id.action_choose_storage_path).getIcon()); + //NMC customization + SearchViewThemeUtils.INSTANCE.themeSearchView(this, mSearchView); + viewThemeUtils.platform.colorDrawable(menu.findItem(R.id.action_choose_storage_path).getIcon(), + getResources().getColor(R.color.fontAppbar, null)); mSearchView.setOnSearchClickListener(v -> mToolbarSpinner.setVisibility(View.GONE)); diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchHeaderViewHolder.kt b/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchHeaderViewHolder.kt index e70cc9a97b37..72623ad58e90 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchHeaderViewHolder.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchHeaderViewHolder.kt @@ -21,6 +21,5 @@ class UnifiedSearchHeaderViewHolder( fun bind(section: UnifiedSearchSection) { binding.title.text = section.name - viewThemeUtils.platform.colorPrimaryTextViewElement(binding.title) } } diff --git a/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchItemViewHolder.kt b/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchItemViewHolder.kt index 69f43d235ff0..5f4f660cb190 100644 --- a/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchItemViewHolder.kt +++ b/app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchItemViewHolder.kt @@ -116,6 +116,7 @@ class UnifiedSearchItemViewHolder( val defaultDrawable = MimeTypeUtil.getFileTypeIcon(mimetype, entry.title, context, viewThemeUtils) val drawable: Drawable = ResourcesCompat.getDrawable(context.resources, iconId, null) ?: defaultDrawable - return viewThemeUtils.platform.tintDrawable(context, drawable, ColorRole.PRIMARY) + // NMC Customization: No tinting required + return drawable } } diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.kt b/app/src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.kt index a88da8904661..32d4058c23ed 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.kt @@ -58,6 +58,7 @@ import com.nextcloud.client.preferences.AppPreferences import com.nextcloud.client.preferences.AppPreferencesImpl import com.nextcloud.utils.extensions.getTypedActivity import com.nextcloud.utils.extensions.handleBackButtonEvent +import com.nmc.android.utils.SearchViewThemeUtils import com.owncloud.android.MainApp import com.owncloud.android.R import com.owncloud.android.databinding.ListFragmentBinding @@ -167,7 +168,8 @@ open class ExtendedListFragment : override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { val item = menu.findItem(R.id.action_search) searchView = item.actionView as SearchView? - viewThemeUtils.androidx.themeToolbarSearchView(searchView!!) + // NMC customization + SearchViewThemeUtils.themeSearchView(requireActivity(), searchView!!) closeButton = searchView?.findViewById(androidx.appcompat.R.id.search_close_btn) searchView?.setOnQueryTextListener(this) searchView?.setOnCloseListener(this) diff --git a/app/src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt b/app/src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt index 6089e78466cf..f37b6577fb59 100644 --- a/app/src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt +++ b/app/src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt @@ -35,6 +35,7 @@ import com.nextcloud.client.di.Injectable import com.nextcloud.client.di.ViewModelFactory import com.nextcloud.client.network.ClientFactory import com.nextcloud.utils.extensions.typedActivity +import com.nmc.android.utils.SearchViewThemeUtils.themeSearchView import com.owncloud.android.R import com.owncloud.android.databinding.ListFragmentBinding import com.owncloud.android.datamodel.FileDataStorageManager @@ -180,7 +181,8 @@ class UnifiedSearchFragment : // Required to align with TextView width. // Because this fragment is opened with TextView onClick on the previous screen maxWidth = Integer.MAX_VALUE - viewThemeUtils.androidx.themeToolbarSearchView(this) + // NMC Customization + themeSearchView(requireActivity(), this) setQuery(vm.query.value, false) setOnQueryTextListener(this@UnifiedSearchFragment) isIconified = false diff --git a/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFileFragment.java b/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFileFragment.java index d788e38c3816..09e330bb91e7 100644 --- a/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFileFragment.java +++ b/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFileFragment.java @@ -22,6 +22,7 @@ import com.nextcloud.ui.fileactions.FileActionsBottomSheet; import com.nextcloud.utils.extensions.BundleExtensionsKt; import com.nextcloud.utils.extensions.FileExtensionsKt; +import com.nmc.android.utils.SearchViewThemeUtils; import com.owncloud.android.R; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.utils.Log_OC; @@ -248,7 +249,8 @@ public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflat menuItem.setVisible(true); searchView = (SearchView) MenuItemCompat.getActionView(menuItem); searchView.setMaxWidth(Integer.MAX_VALUE); - viewThemeUtils.androidx.themeToolbarSearchView(searchView); + //NMC customization + SearchViewThemeUtils.INSTANCE.themeSearchView(requireActivity(), searchView); if (searchOpen) { searchView.setIconified(false); diff --git a/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextStringFragment.java b/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextStringFragment.java index b9aa3f092a5f..cc17cce49295 100644 --- a/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextStringFragment.java +++ b/app/src/main/java/com/owncloud/android/ui/preview/PreviewTextStringFragment.java @@ -17,6 +17,7 @@ import android.view.ViewGroup; import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.nmc.android.utils.SearchViewThemeUtils; import com.nextcloud.android.lib.richWorkspace.RichWorkspaceDirectEditingRemoteOperation; import com.nextcloud.utils.extensions.FileExtensionsKt; import com.owncloud.android.R; @@ -112,7 +113,8 @@ public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflat searchView = (SearchView) MenuItemCompat.getActionView(menuItem); searchView.setOnQueryTextListener(this); searchView.setMaxWidth(Integer.MAX_VALUE); - viewThemeUtils.androidx.themeToolbarSearchView(searchView); + //NMC customization + SearchViewThemeUtils.INSTANCE.themeSearchView(requireActivity(), searchView); if (searchOpen) { searchView.setIconified(false); diff --git a/app/src/main/res/layout/unified_search_item.xml b/app/src/main/res/layout/unified_search_item.xml index 396cc117da77..636768a406a9 100755 --- a/app/src/main/res/layout/unified_search_item.xml +++ b/app/src/main/res/layout/unified_search_item.xml @@ -100,7 +100,7 @@ android:visibility="gone" android:background="@color/transparent" app:srcCompat="@drawable/ic_dots_vertical" - app:tint="@color/standard_grey" + app:tint="@color/list_icon_color" android:layout_gravity="center" android:layout_width="50dp" android:layout_height="50dp" 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/styles.xml b/app/src/main/res/values/styles.xml index 17cdbaabca4a..74fd84910970 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -163,7 +163,7 @@ @drawable/ic_close - @drawable/ic_search_grey + @drawable/ic_search