Skip to content

Commit 989f4c7

Browse files
committed
Customized SearchView theme.
1 parent b11ea53 commit 989f4c7

File tree

15 files changed

+215
-22
lines changed

15 files changed

+215
-22
lines changed

app/src/main/java/com/nextcloud/client/logger/ui/LogsActivity.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import androidx.lifecycle.ViewModelProvider
1717
import androidx.recyclerview.widget.LinearLayoutManager
1818
import androidx.recyclerview.widget.RecyclerView
1919
import com.nextcloud.client.di.ViewModelFactory
20+
import com.nmc.android.utils.SearchViewThemeUtils.themeSearchView
2021
import com.owncloud.android.R
2122
import com.owncloud.android.databinding.LogsActivityBinding
2223
import com.owncloud.android.ui.activity.ToolbarActivity
@@ -80,7 +81,8 @@ class LogsActivity : ToolbarActivity() {
8081

8182
(menu.findItem(R.id.action_search).actionView as SearchView).apply {
8283
setOnQueryTextListener(searchBoxListener)
83-
viewThemeUtils.androidx.themeToolbarSearchView(this)
84+
//NMC customization
85+
themeSearchView(this@LogsActivity, this)
8486
}
8587
return super.onCreateOptionsMenu(menu)
8688
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.nmc.android.utils
2+
3+
import android.content.Context
4+
import android.widget.ImageView
5+
import androidx.appcompat.widget.AppCompatAutoCompleteTextView
6+
import androidx.appcompat.widget.SearchView
7+
import com.owncloud.android.R
8+
9+
object SearchViewThemeUtils {
10+
fun themeSearchView(context: Context, searchView: SearchView) {
11+
val fontColor = context.resources.getColor(R.color.fontAppbar, null)
12+
val editText: AppCompatAutoCompleteTextView = searchView.findViewById(R.id.search_src_text)
13+
editText.textSize = 16F
14+
editText.setTextColor(fontColor)
15+
editText.highlightColor = context.resources.getColor(R.color.et_highlight_color, null)
16+
editText.setHintTextColor(context.resources.getColor(R.color.fontSecondaryAppbar, null))
17+
val closeButton: ImageView = searchView.findViewById(R.id.search_close_btn)
18+
closeButton.setColorFilter(fontColor)
19+
val searchButton: ImageView = searchView.findViewById(R.id.search_button)
20+
searchButton.setImageResource(R.drawable.ic_search)
21+
searchButton.setColorFilter(fontColor)
22+
}
23+
}

app/src/main/java/com/owncloud/android/ui/activity/FileDisplayActivity.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
import com.nextcloud.utils.extensions.IntentExtensionsKt;
7373
import com.nextcloud.utils.fileNameValidator.FileNameValidator;
7474
import com.nextcloud.utils.view.FastScrollUtils;
75+
import com.nmc.android.utils.SearchViewThemeUtils;
7576
import com.owncloud.android.MainApp;
7677
import com.owncloud.android.R;
7778
import com.owncloud.android.databinding.FilesBinding;
@@ -303,19 +304,19 @@ private void notifyGPlayPermissionChanges() {
303304
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.R) {
304305
return;
305306
}
306-
307+
307308
if (PermissionUtil.checkSelfPermission(this, Manifest.permission.MANAGE_EXTERNAL_STORAGE)) {
308309
return;
309310
}
310-
311+
311312
if (preferences.isAutoUploadGPlayWarningShown()) {
312313
return;
313314
}
314-
315+
315316
boolean showInfoDialog = false;
316317
for (SyncedFolder syncedFolder : syncedFolderProvider.getSyncedFolders()) {
317318
// move or delete after success
318-
if (syncedFolder.getUploadAction() == FileUploadWorker.LOCAL_BEHAVIOUR_MOVE ||
319+
if (syncedFolder.getUploadAction() == FileUploadWorker.LOCAL_BEHAVIOUR_MOVE ||
319320
syncedFolder.getUploadAction() == FileUploadWorker.LOCAL_BEHAVIOUR_DELETE) {
320321
showInfoDialog = true;
321322
break;
@@ -516,19 +517,19 @@ private void checkOutdatedServer() {
516517
DisplayUtils.showServerOutdatedSnackbar(this, Snackbar.LENGTH_LONG);
517518
}
518519
}
519-
520+
520521
private void checkNotifications() {
521522
new Thread(() -> {
522523
try {
523524
RemoteOperationResult<List<Notification>> result = new GetNotificationsRemoteOperation()
524525
.execute(clientFactory.createNextcloudClient(accountManager.getUser()));
525-
526+
526527
if (result.isSuccess() && !result.getResultData().isEmpty()) {
527528
runOnUiThread(() -> mNotificationButton.setVisibility(View.VISIBLE));
528529
} else {
529530
runOnUiThread(() -> mNotificationButton.setVisibility(View.GONE));
530531
}
531-
532+
532533
} catch (ClientFactory.CreationException e) {
533534
Log_OC.e(TAG, "Could not fetch notifications!");
534535
}
@@ -677,7 +678,7 @@ protected void onNewIntent(Intent intent) {
677678
}
678679
}
679680
}
680-
681+
681682
private void showReEnableAutoUploadDialog() {
682683
new MaterialAlertDialogBuilder(this, R.style.Theme_ownCloud_Dialog)
683684
.setTitle(R.string.re_enable_auto_upload)
@@ -882,7 +883,8 @@ public boolean onCreateOptionsMenu(Menu menu) {
882883
searchView.setIconified(false);
883884
});
884885

885-
viewThemeUtils.androidx.themeToolbarSearchView(searchView);
886+
//NMC customization
887+
SearchViewThemeUtils.INSTANCE.themeSearchView(this, searchView);
886888

887889
// populate list of menu items to show/hide when drawer is opened/closed
888890
mDrawerMenuItemstoShowHideList = new ArrayList<>(1);
@@ -1289,7 +1291,7 @@ protected void onResume() {
12891291
}
12901292
//show in-app review dialog to user
12911293
inAppReviewHelper.showInAppReview(this);
1292-
1294+
12931295
checkNotifications();
12941296

12951297
Log_OC.v(TAG, "onResume() end");

app/src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import com.nextcloud.utils.extensions.FileExtensionsKt;
5757
import com.nextcloud.utils.extensions.IntentExtensionsKt;
5858
import com.nextcloud.utils.fileNameValidator.FileNameValidator;
59+
import com.nmc.android.utils.SearchViewThemeUtils;
5960
import com.owncloud.android.MainApp;
6061
import com.owncloud.android.R;
6162
import com.owncloud.android.databinding.ReceiveExternalFilesBinding;
@@ -1068,7 +1069,8 @@ public boolean onQueryTextChange(String newText) {
10681069
}
10691070
});
10701071

1071-
viewThemeUtils.androidx.themeToolbarSearchView(searchView);
1072+
//NMC customization
1073+
SearchViewThemeUtils.INSTANCE.themeSearchView(this, searchView);
10721074
}
10731075

10741076
@Override

app/src/main/java/com/owncloud/android/ui/activity/UploadFilesActivity.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import android.widget.TextView;
3030

3131
import com.nextcloud.client.account.User;
32+
import com.nmc.android.utils.SearchViewThemeUtils;
3233
import com.nextcloud.client.di.Injectable;
3334
import com.nextcloud.client.jobs.upload.FileUploadHelper;
3435
import com.nextcloud.client.jobs.upload.FileUploadWorker;
@@ -287,8 +288,10 @@ public boolean onCreateOptionsMenu(Menu menu) {
287288

288289
final MenuItem item = menu.findItem(R.id.action_search);
289290
mSearchView = (SearchView) MenuItemCompat.getActionView(item);
290-
viewThemeUtils.androidx.themeToolbarSearchView(mSearchView);
291-
viewThemeUtils.platform.tintTextDrawable(this, menu.findItem(R.id.action_choose_storage_path).getIcon());
291+
//NMC customization
292+
SearchViewThemeUtils.INSTANCE.themeSearchView(this, mSearchView);
293+
viewThemeUtils.platform.colorDrawable(menu.findItem(R.id.action_choose_storage_path).getIcon(),
294+
getResources().getColor(R.color.fontAppbar, null));
292295

293296
mSearchView.setOnSearchClickListener(v -> mToolbarSpinner.setVisibility(View.GONE));
294297

app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchHeaderViewHolder.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,5 @@ class UnifiedSearchHeaderViewHolder(
2222

2323
fun bind(section: UnifiedSearchSection) {
2424
binding.title.text = section.name
25-
viewThemeUtils.platform.colorPrimaryTextViewElement(binding.title)
2625
}
2726
}

app/src/main/java/com/owncloud/android/ui/adapter/UnifiedSearchItemViewHolder.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ class UnifiedSearchItemViewHolder(
121121

122122
val defaultDrawable = MimeTypeUtil.getFileTypeIcon(mimetype, entry.title, context, viewThemeUtils)
123123
val drawable: Drawable = ResourcesCompat.getDrawable(context.resources, iconId, null) ?: defaultDrawable
124-
return viewThemeUtils.platform.tintDrawable(context, drawable, ColorRole.PRIMARY)
124+
// NMC Customization: No tinting required
125+
return drawable
125126
}
126127

127128
private inner class RoundIfNeededListener(private val entry: SearchResultEntry) :

app/src/main/java/com/owncloud/android/ui/fragment/ExtendedListFragment.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
import com.google.android.material.button.MaterialButton;
4444
import com.nextcloud.client.account.UserAccountManager;
4545
import com.nextcloud.client.di.Injectable;
46+
import com.nmc.android.utils.SearchViewThemeUtils;
4647
import com.nextcloud.client.preferences.AppPreferences;
4748
import com.nextcloud.client.preferences.AppPreferencesImpl;
4849
import com.nextcloud.utils.extensions.FragmentExtensionsKt;
@@ -174,7 +175,8 @@ public boolean isGridEnabled() {
174175
public void onCreateOptionsMenu(Menu menu, @NonNull MenuInflater inflater) {
175176
final MenuItem item = menu.findItem(R.id.action_search);
176177
searchView = (SearchView) MenuItemCompat.getActionView(item);
177-
viewThemeUtils.androidx.themeToolbarSearchView(searchView);
178+
//NMC customization
179+
SearchViewThemeUtils.INSTANCE.themeSearchView(requireActivity(), searchView);
178180
closeButton = searchView.findViewById(androidx.appcompat.R.id.search_close_btn);
179181
searchView.setOnQueryTextListener(this);
180182
searchView.setOnCloseListener(this);

app/src/main/java/com/owncloud/android/ui/fragment/UnifiedSearchFragment.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import com.nextcloud.client.core.AsyncRunner
3030
import com.nextcloud.client.di.Injectable
3131
import com.nextcloud.client.di.ViewModelFactory
3232
import com.nextcloud.client.network.ClientFactory
33+
import com.nmc.android.utils.SearchViewThemeUtils.themeSearchView
3334
import com.owncloud.android.R
3435
import com.owncloud.android.databinding.ListFragmentBinding
3536
import com.owncloud.android.datamodel.FileDataStorageManager
@@ -175,7 +176,8 @@ class UnifiedSearchFragment :
175176
// Required to align with TextView width.
176177
// Because this fragment is opened with TextView onClick on the previous screen
177178
maxWidth = Integer.MAX_VALUE
178-
viewThemeUtils.androidx.themeToolbarSearchView(this)
179+
// NMC Customization
180+
themeSearchView(requireActivity(), this)
179181
setQuery(vm.query.value, false)
180182
setOnQueryTextListener(this@UnifiedSearchFragment)
181183
isIconified = false

app/src/main/java/com/owncloud/android/ui/preview/PreviewTextFileFragment.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.nextcloud.ui.fileactions.FileActionsBottomSheet;
2222
import com.nextcloud.utils.extensions.BundleExtensionsKt;
2323
import com.nextcloud.utils.extensions.FileExtensionsKt;
24+
import com.nmc.android.utils.SearchViewThemeUtils;
2425
import com.owncloud.android.R;
2526
import com.owncloud.android.datamodel.OCFile;
2627
import com.owncloud.android.lib.common.utils.Log_OC;
@@ -248,7 +249,8 @@ public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflat
248249
menuItem.setVisible(true);
249250
searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
250251
searchView.setMaxWidth(Integer.MAX_VALUE);
251-
viewThemeUtils.androidx.themeToolbarSearchView(searchView);
252+
//NMC customization
253+
SearchViewThemeUtils.INSTANCE.themeSearchView(requireActivity(), searchView);
252254

253255
if (searchOpen) {
254256
searchView.setIconified(false);

0 commit comments

Comments
 (0)