Skip to content

Commit 8a395c9

Browse files
committed
Customized popup menu, overflow menu and Fastscroller.
1 parent 22a7527 commit 8a395c9

File tree

12 files changed

+209
-11
lines changed

12 files changed

+209
-11
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import android.view.View
1515
import android.view.ViewGroup
1616
import android.widget.ImageButton
1717
import android.widget.PopupMenu
18+
import androidx.appcompat.view.ContextThemeWrapper
1819
import androidx.annotation.VisibleForTesting
1920
import com.afollestad.sectionedrecyclerview.SectionedRecyclerViewAdapter
2021
import com.afollestad.sectionedrecyclerview.SectionedViewHolder
@@ -287,7 +288,9 @@ class SyncedFolderAdapter(
287288
}
288289

289290
private fun onOverflowIconClicked(section: Int, item: SyncedFolderDisplayItem, view: View) {
290-
val popup = PopupMenu(context, view).apply {
291+
// NMC Customisation
292+
val ctw = ContextThemeWrapper(context, R.style.CustomPopupTheme)
293+
val popup = PopupMenu(ctw, view).apply {
291294
inflate(R.menu.synced_folders_adapter)
292295
setOnMenuItemClickListener { i: MenuItem -> optionsItemSelected(i, section, item) }
293296
menu

app/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
import java.util.Optional;
6060

6161
import androidx.annotation.NonNull;
62+
import androidx.appcompat.view.ContextThemeWrapper;
6263

6364
/**
6465
* This Adapter populates a ListView with following types of uploads: pending, active, completed. Filtering possible.
@@ -623,7 +624,9 @@ private void showItemConflictPopup(User user,
623624
OCUpload item,
624625
String status,
625626
View view) {
626-
PopupMenu popup = new PopupMenu(MainApp.getAppContext(), view);
627+
//NMC Customisation
628+
ContextThemeWrapper ctw = new ContextThemeWrapper(MainApp.getAppContext(), R.style.CustomPopupTheme);
629+
PopupMenu popup = new PopupMenu(ctw, view);
627630
popup.inflate(R.menu.upload_list_item_file_conflict);
628631
popup.setOnMenuItemClickListener(i -> {
629632
int itemId = i.getItemId();

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343

4444
import androidx.annotation.NonNull;
4545
import androidx.annotation.Nullable;
46+
import androidx.core.content.ContextCompat;
4647
import androidx.localbroadcastmanager.content.LocalBroadcastManager;
4748
import androidx.recyclerview.widget.GridLayoutManager;
4849
import androidx.recyclerview.widget.RecyclerView;
@@ -287,7 +288,8 @@ public void onCreateOptionsMenu(Menu menu, @NonNull MenuInflater inflater) {
287288
MenuItem menuItem = menu.findItem(R.id.action_three_dot_icon);
288289

289290
if (menuItem != null) {
290-
viewThemeUtils.platform.colorMenuItemText(requireContext(), menuItem);
291+
//NMC customization
292+
menuItem.setIcon(viewThemeUtils.platform.colorDrawable(menuItem.getIcon(), ContextCompat.getColor(requireContext(), R.color.fontAppbar)));
291293
}
292294

293295
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -757,7 +757,8 @@ public boolean onCreateActionMode(ActionMode mode, Menu menu) {
757757
MenuInflater inflater = getActivity().getMenuInflater();
758758
inflater.inflate(R.menu.custom_menu_placeholder, menu);
759759
final MenuItem item = menu.findItem(R.id.custom_menu_placeholder_item);
760-
item.setIcon(viewThemeUtils.platform.colorDrawable(item.getIcon(), ContextCompat.getColor(requireContext(), R.color.white)));
760+
//NMC customization
761+
item.setIcon(viewThemeUtils.platform.colorDrawable(item.getIcon(), ContextCompat.getColor(requireContext(), R.color.fontAppbar)));
761762
mode.invalidate();
762763

763764
//set actionMode color

app/src/main/java/com/owncloud/android/ui/preview/PreviewImageFragment.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,10 +352,11 @@ class PreviewImageFragment : FileFragment(), Injectable {
352352
val item = menu.findItem(R.id.custom_menu_placeholder_item)
353353

354354
item.icon?.let {
355+
// NMC customization
355356
item.setIcon(
356357
viewThemeUtils.platform.colorDrawable(
357358
it,
358-
ContextCompat.getColor(requireContext(), R.color.white)
359+
ContextCompat.getColor(requireContext(), R.color.fontAppbar)
359360
)
360361
)
361362
}

app/src/main/java/com/owncloud/android/ui/preview/PreviewMediaFragment.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import android.view.ViewGroup
3434
import androidx.annotation.OptIn
3535
import androidx.annotation.StringRes
3636
import androidx.appcompat.content.res.AppCompatResources
37+
import androidx.core.content.ContextCompat
3738
import androidx.core.graphics.drawable.DrawableCompat
3839
import androidx.core.view.MenuHost
3940
import androidx.core.view.MenuProvider
@@ -68,6 +69,7 @@ import com.owncloud.android.ui.dialog.ConfirmationDialogFragment
6869
import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment
6970
import com.owncloud.android.ui.fragment.FileFragment
7071
import com.owncloud.android.utils.MimeTypeUtil
72+
import com.owncloud.android.utils.theme.ViewThemeUtils
7173
import java.lang.ref.WeakReference
7274
import java.util.concurrent.Executors
7375
import javax.inject.Inject
@@ -116,6 +118,9 @@ class PreviewMediaFragment : FileFragment(), OnTouchListener, Injectable {
116118
@Inject
117119
lateinit var backgroundJobManager: BackgroundJobManager
118120

121+
@Inject
122+
lateinit var viewThemeUtils: ViewThemeUtils
123+
119124
lateinit var binding: FragmentPreviewMediaBinding
120125
private var emptyListView: ViewGroup? = null
121126
private var exoPlayer: ExoPlayer? = null
@@ -366,6 +371,16 @@ class PreviewMediaFragment : FileFragment(), OnTouchListener, Injectable {
366371
override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) {
367372
menu.removeItem(R.id.action_search)
368373
menuInflater.inflate(R.menu.custom_menu_placeholder, menu)
374+
// NMC customization
375+
val item = menu.findItem(R.id.custom_menu_placeholder_item)
376+
item.icon?.let {
377+
item.setIcon(
378+
viewThemeUtils.platform.colorDrawable(
379+
it,
380+
ContextCompat.getColor(requireContext(), R.color.fontAppbar)
381+
)
382+
)
383+
}
369384
}
370385

371386
override fun onMenuItemSelected(menuItem: MenuItem): Boolean {

app/src/main/java/com/owncloud/android/ui/trashbin/TrashbinActivity.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import android.widget.TextView
1818
import android.widget.Toast
1919
import androidx.activity.OnBackPressedCallback
2020
import androidx.annotation.VisibleForTesting
21+
import androidx.appcompat.view.ContextThemeWrapper
2122
import androidx.core.content.res.ResourcesCompat
2223
import androidx.recyclerview.widget.LinearLayoutManager
2324
import com.google.android.material.snackbar.Snackbar
@@ -208,7 +209,9 @@ class TrashbinActivity :
208209
}
209210

210211
override fun onOverflowIconClicked(file: TrashbinFile, view: View) {
211-
val popup = PopupMenu(this, view)
212+
// NMC Customization
213+
val ctw = ContextThemeWrapper(this, R.style.CustomPopupTheme)
214+
val popup = PopupMenu(ctw, view)
212215
popup.inflate(R.menu.item_trashbin)
213216
popup.setOnMenuItemClickListener {
214217
trashbinPresenter?.removeTrashbinFile(file)

app/src/main/java/com/owncloud/android/utils/theme/FilesSpecificViewThemeUtils.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,8 @@ class FilesSpecificViewThemeUtils @Inject constructor(
103103
.setThumbDrawable(getThumbDrawable(context))
104104
.setPopupStyle {
105105
PopupStyles.MD2.accept(it)
106-
it.background = FastScrollPopupBackground(context, scheme.primary)
106+
//NMC customisation
107+
it.background = FastScrollPopupBackground(context, context.resources.getColor(R.color.primary, null))
107108
}
108109
}
109110
}
@@ -115,7 +116,7 @@ class FilesSpecificViewThemeUtils @Inject constructor(
115116
me.zhanghai.android.fastscroll.R.drawable.afs_md2_thumb,
116117
null
117118
)
118-
return androidViewThemeUtils.tintPrimaryDrawable(context, thumbDrawable)!!
119+
return androidViewThemeUtils.colorDrawable(thumbDrawable!!, context.resources.getColor(R.color.primary, null))
119120
}
120121

121122
private fun getHomeAsUpIcon(isMenu: Boolean): Int {

app/src/main/res/values-night/colors.xml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,68 @@
3636
<!-- App bar -->
3737
<color name="appbar">#1E1E1E</color>
3838
<color name="fontAppbar">@android:color/white</color>
39+
40+
<!-- NMC Colors -->
41+
<color name="icon_color">#FFFFFF</color>
42+
<color name="sort_text_color">@color/grey_30</color>
43+
<color name="list_icon_color">@color/grey_30</color>
44+
<color name="warning_icon_color">#CCCCCC</color>
45+
<color name="divider_color">@color/grey_70</color>
46+
<color name="spinner_bg_color">@color/grey_80</color>
47+
<color name="refresh_layout_bg_color">#2D2D2D</color>
48+
<color name="primary_button_disabled_color">@color/grey_70</color>
49+
<color name="toolbar_divider_color">@color/grey_70</color>
50+
51+
<!-- Snackbar Colors -->
52+
<color name="snackbar_bg_color">@color/grey_80</color>
53+
<color name="snackbar_txt_color">@color/grey_0</color>
54+
55+
<!-- Alert Dialog Colors -->
56+
<color name="alert_bg_color">@color/grey_80</color>
57+
<color name="alert_txt_color">@color/grey_0</color>
58+
59+
<!-- NavigationView colors -->
60+
<color name="nav_selected_bg_color">@color/grey_60</color>
61+
<color name="nav_txt_unselected_color">@color/grey_0</color>
62+
<color name="nav_txt_selected_color">@color/grey_0</color>
63+
<color name="nav_icon_unselected_color">@color/grey_30</color>
64+
<color name="nav_icon_selected_color">#FFFFFF</color>
65+
<color name="nav_divider_color">@color/grey_30</color>
66+
<color name="nav_bg_color">@color/grey_80</color>
67+
<color name="drawer_quota_txt_color">#FFFFFF</color>
68+
69+
<!-- Bottom Sheet Colors -->
70+
<color name="bottom_sheet_bg_color">@color/grey_80</color>
71+
<color name="bottom_sheet_icon_color">@color/grey_30</color>
72+
<color name="bottom_sheet_txt_color">@color/grey_0</color>
73+
74+
<!-- Popup Menu Colors -->
75+
<color name="popup_menu_bg">@color/grey_80</color>
76+
<color name="popup_menu_txt_color">@color/grey_0</color>
77+
<color name="overflow_bg_color">@color/grey_80</color>
78+
79+
<!-- Switch Compat Colors -->
80+
<color name="switch_thumb_disabled">@color/grey_70</color>
81+
<color name="switch_track_disabled">@color/grey_60</color>
82+
83+
<!-- Checkbox Colors -->
84+
<color name="checkbox_checked_disabled">@color/grey_70</color>
85+
<color name="checkbox_unchecked_disabled">@color/grey_70</color>
86+
87+
<!-- Share Colors -->
88+
<color name="share_title_txt_color">#FFFFFF</color>
89+
<color name="share_subtitle_txt_color">@color/grey_30</color>
90+
<color name="share_info_txt_color">@color/grey_0</color>
91+
<color name="share_search_border_color">@color/grey_0</color>
92+
<color name="share_btn_txt_color">@color/grey_0</color>
93+
<color name="share_list_item_txt_color">@color/grey_0</color>
94+
<color name="share_disabled_txt_color">@color/grey_60</color>
95+
<color name="share_txt_color">@color/grey_0</color>
96+
<color name="share_et_divider">#FFFFFF</color>
97+
98+
<!-- Scan Colors -->
99+
<color name="scan_doc_bg_color">#121212</color>
100+
<color name="scan_text_color">@color/grey_0</color>
101+
<color name="scan_edit_bottom_color">@color/grey_80</color>
102+
<color name="scan_count_bg_color">@color/grey_80</color>
39103
</resources>

app/src/main/res/values/colors.xml

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,93 @@
7575
<color name="appbar">@android:color/white</color>
7676
<color name="fontAppbar">#666666</color>
7777
<color name="fontSecondaryAppbar">#A5A5A5</color>
78+
79+
<!-- NMC Colors -->
80+
<color name="icon_color">#191919</color>
81+
<color name="sort_text_color">@color/primary</color>
82+
<color name="list_icon_color">#191919</color>
83+
<color name="warning_icon_color">#191919</color>
84+
<color name="divider_color">@color/grey_30</color>
85+
<color name="spinner_bg_color">@android:color/white</color>
86+
<color name="refresh_layout_bg_color">#FFFFFF</color>
87+
<color name="primary_button_disabled_color">@color/grey_0</color>
88+
<color name="toolbar_divider_color">#CCCCCC</color>
89+
<color name="et_highlight_color">#77c4ff</color>
90+
<color name="white_trans_70">#B3FFFFFF</color>
91+
<color name="progress_bar_background">@color/grey_10</color>
92+
93+
<!-- Grey Colors -->
94+
<color name="dark_grey">#101010</color>
95+
<color name="grey_0">#F2F2F2</color>
96+
<color name="grey_10">#E5E5E5</color>
97+
<color name="grey_30">#B2B2B2</color>
98+
<color name="grey_60">#666666</color>
99+
<color name="grey_70">#4C4C4C</color>
100+
<color name="grey_80">#333333</color>
101+
102+
<!-- Snackbar Colors -->
103+
<color name="snackbar_bg_color">@color/design_snackbar_background_color</color>
104+
<color name="snackbar_txt_color">@color/white</color>
105+
106+
<!-- Alert Dialog Colors -->
107+
<color name="alert_bg_color">#FFFFFF</color>
108+
<color name="alert_txt_color">#191919</color>
109+
110+
<!-- NavigationView colors -->
111+
<color name="nav_selected_bg_color">@color/grey_0</color>
112+
<color name="nav_txt_unselected_color">#191919</color>
113+
<color name="nav_txt_selected_color">@color/primary</color>
114+
<color name="nav_icon_unselected_color">#191919</color>
115+
<color name="nav_icon_selected_color">@color/primary</color>
116+
<color name="nav_divider_color">@color/grey_30</color>
117+
<color name="nav_bg_color">@color/white</color>
118+
<color name="drawer_quota_txt_color">#191919</color>
119+
120+
<!-- Bottom Sheet Colors -->
121+
<color name="bottom_sheet_bg_color">#FFFFFF</color>
122+
<color name="bottom_sheet_icon_color">#191919</color>
123+
<color name="bottom_sheet_txt_color">#191919</color>
124+
125+
<!-- Popup Menu Colors -->
126+
<color name="popup_menu_bg">#FFFFFF</color>
127+
<color name="popup_menu_txt_color">#191919</color>
128+
<color name="overflow_bg_color">#FFFFFF</color>
129+
130+
<!-- Switch Compat Colors -->
131+
<color name="switch_thumb_checked_enabled">@color/primary</color>
132+
<color name="switch_track_checked_enabled">#F399C7</color>
133+
<color name="switch_thumb_unchecked_enabled">#FFFFFF</color>
134+
<color name="switch_track_unchecked_enabled">@color/grey_30</color>
135+
<color name="switch_thumb_disabled">@color/grey_10</color>
136+
<color name="switch_track_disabled">@color/grey_0</color>
137+
138+
<!-- Checkbox Colors -->
139+
<color name="checkbox_checked_enabled">@color/primary</color>
140+
<color name="checkbox_unchecked_enabled">@color/grey_30</color>
141+
<color name="checkbox_checked_disabled">@color/grey_30</color>
142+
<color name="checkbox_unchecked_disabled">#CCCCCC</color>
143+
144+
<!-- Share Colors -->
145+
<color name="share_title_txt_color">#191919</color>
146+
<color name="share_subtitle_txt_color">@color/grey_30</color>
147+
<color name="share_info_txt_color">#191919</color>
148+
<color name="share_search_border_color">#191919</color>
149+
<color name="share_btn_txt_color">#191919</color>
150+
<color name="share_list_item_txt_color">#191919</color>
151+
<color name="share_disabled_txt_color">@color/grey_30</color>
152+
<color name="share_txt_color">#191919</color>
153+
<color name="share_et_divider">#000000</color>
154+
<color name="share_warning_txt_color">#191919</color>
155+
<color name="sharing_warning_bg_color">#F6E5EB</color>
156+
<color name="sharing_warning_border_color">#C16F81</color>
157+
<color name="share_color">#0D39DF</color>
158+
<color name="shared_with_me_color">#0099ff</color>
159+
160+
<!-- Scan Colors -->
161+
<color name="scan_doc_bg_color">@color/grey_0</color>
162+
<color name="scan_text_color">#191919</color>
163+
<color name="scan_edit_bottom_color">@color/grey_0</color>
164+
<color name="scan_count_bg_color">@color/grey_30</color>
165+
<color name="neptune">#77b6bb</color>
166+
<color name="neptune_50">#5077b6bb</color>
78167
</resources>

0 commit comments

Comments
 (0)