Skip to content

Commit c7e98e5

Browse files
committed
Customized popup menu, overflow menu and Fastscroller.
1 parent def5dba commit c7e98e5

File tree

11 files changed

+203
-11
lines changed

11 files changed

+203
-11
lines changed

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import java.util.concurrent.Executors;
5151

5252
import androidx.annotation.NonNull;
53+
import androidx.appcompat.view.ContextThemeWrapper;
5354

5455
/**
5556
* Adapter to display all auto-synced folders and/or instant upload media folders.
@@ -298,7 +299,9 @@ public void onBindHeaderViewHolder(SectionedViewHolder commonHolder, final int s
298299
}
299300

300301
private void onOverflowIconClicked(int section, SyncedFolderDisplayItem item, View view) {
301-
PopupMenu popup = new PopupMenu(context, view);
302+
//NMC Customisation
303+
ContextThemeWrapper ctw = new ContextThemeWrapper(context, R.style.CustomPopupTheme);
304+
PopupMenu popup = new PopupMenu(ctw, view);
302305
popup.inflate(R.menu.synced_folders_adapter);
303306
popup.setOnMenuItemClickListener(i -> optionsItemSelected(i, section, item));
304307
popup.getMenu()

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
@@ -70,6 +70,7 @@
7070
import java.util.Arrays;
7171

7272
import androidx.annotation.NonNull;
73+
import androidx.appcompat.view.ContextThemeWrapper;
7374

7475
/**
7576
* This Adapter populates a ListView with following types of uploads: pending, active, completed. Filtering possible.
@@ -530,7 +531,9 @@ private void showItemConflictPopup(User user,
530531
OCUpload item,
531532
String status,
532533
View view) {
533-
PopupMenu popup = new PopupMenu(MainApp.getAppContext(), view);
534+
//NMC Customisation
535+
ContextThemeWrapper ctw = new ContextThemeWrapper(MainApp.getAppContext(), R.style.CustomPopupTheme);
536+
PopupMenu popup = new PopupMenu(ctw, view);
534537
popup.inflate(R.menu.upload_list_item_file_conflict);
535538
popup.setOnMenuItemClickListener(i -> {
536539
int itemId = i.getItemId();

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import android.view.View;
3535
import android.view.ViewGroup;
3636

37+
import com.nmc.android.utils.DrawableThemeUtils;
3738
import com.owncloud.android.BuildConfig;
3839
import com.owncloud.android.R;
3940
import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -53,6 +54,7 @@
5354

5455
import androidx.annotation.NonNull;
5556
import androidx.annotation.Nullable;
57+
import androidx.core.content.ContextCompat;
5658
import androidx.fragment.app.FragmentActivity;
5759
import androidx.recyclerview.widget.GridLayoutManager;
5860
import androidx.recyclerview.widget.RecyclerView;
@@ -263,7 +265,8 @@ public void onCreateOptionsMenu(Menu menu, @NonNull MenuInflater inflater) {
263265
MenuItem menuItem = menu.findItem(R.id.action_three_dot_icon);
264266

265267
if (menuItem != null) {
266-
viewThemeUtils.platform.colorMenuItemText(requireContext(), menuItem);
268+
//NMC customization
269+
menuItem.setIcon(viewThemeUtils.platform.colorDrawable(menuItem.getIcon(), ContextCompat.getColor(requireContext(), R.color.fontAppbar)));
267270
}
268271

269272
}

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
@@ -744,7 +744,8 @@ public boolean onCreateActionMode(ActionMode mode, Menu menu) {
744744
MenuInflater inflater = getActivity().getMenuInflater();
745745
inflater.inflate(R.menu.custom_menu_placeholder, menu);
746746
final MenuItem item = menu.findItem(R.id.custom_menu_placeholder_item);
747-
item.setIcon(viewThemeUtils.platform.colorDrawable(item.getIcon(), ContextCompat.getColor(requireContext(), R.color.white)));
747+
//NMC customization
748+
item.setIcon(viewThemeUtils.platform.colorDrawable(item.getIcon(), ContextCompat.getColor(requireContext(), R.color.fontAppbar)));
748749
mode.invalidate();
749750

750751
//set actionMode color

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,8 @@ public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflat
348348
super.onCreateOptionsMenu(menu, inflater);
349349
inflater.inflate(R.menu.custom_menu_placeholder, menu);
350350
final MenuItem item = menu.findItem(R.id.custom_menu_placeholder_item);
351-
item.setIcon(viewThemeUtils.platform.colorDrawable(item.getIcon(), ContextCompat.getColor(requireContext(), R.color.white)));
351+
//NMC customization
352+
item.setIcon(viewThemeUtils.platform.colorDrawable(item.getIcon(), ContextCompat.getColor(requireContext(), R.color.fontAppbar)));
352353
}
353354

354355
@Override

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
7878
import com.owncloud.android.ui.fragment.FileFragment;
7979
import com.owncloud.android.utils.MimeTypeUtil;
80+
import com.owncloud.android.utils.theme.ViewThemeUtils;
8081

8182
import java.lang.ref.WeakReference;
8283
import java.util.ArrayList;
@@ -91,6 +92,7 @@
9192
import androidx.appcompat.content.res.AppCompatResources;
9293
import androidx.appcompat.widget.AppCompatImageButton;
9394
import androidx.core.graphics.drawable.DrawableCompat;
95+
import androidx.core.content.ContextCompat;
9496
import androidx.drawerlayout.widget.DrawerLayout;
9597
import androidx.fragment.app.FragmentActivity;
9698
import androidx.fragment.app.FragmentManager;
@@ -135,6 +137,7 @@ public class PreviewMediaFragment extends FileFragment implements OnTouchListene
135137
@Inject ClientFactory clientFactory;
136138
@Inject UserAccountManager accountManager;
137139
@Inject BackgroundJobManager backgroundJobManager;
140+
@Inject ViewThemeUtils viewThemeUtils;
138141
FragmentPreviewMediaBinding binding;
139142
private ViewGroup emptyListView;
140143
private ExoPlayer exoPlayer;
@@ -399,6 +402,9 @@ public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflat
399402
super.onCreateOptionsMenu(menu, inflater);
400403
menu.removeItem(R.id.action_search);
401404
inflater.inflate(R.menu.custom_menu_placeholder, menu);
405+
//NMC customization
406+
final MenuItem item = menu.findItem(R.id.custom_menu_placeholder_item);
407+
item.setIcon(viewThemeUtils.platform.colorDrawable(item.getIcon(), ContextCompat.getColor(requireContext(), R.color.fontAppbar)));
402408
}
403409

404410
@Override

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import javax.inject.Inject;
5757

5858
import androidx.annotation.VisibleForTesting;
59+
import androidx.appcompat.view.ContextThemeWrapper;
5960
import androidx.core.content.res.ResourcesCompat;
6061
import androidx.recyclerview.widget.LinearLayoutManager;
6162

@@ -198,7 +199,9 @@ public boolean onOptionsItemSelected(MenuItem item) {
198199

199200
@Override
200201
public void onOverflowIconClicked(TrashbinFile file, View view) {
201-
PopupMenu popup = new PopupMenu(this, view);
202+
//NMC Customisation
203+
ContextThemeWrapper ctw = new ContextThemeWrapper(this, R.style.CustomPopupTheme);
204+
PopupMenu popup = new PopupMenu(ctw, view);
202205
popup.inflate(R.menu.item_trashbin);
203206

204207
popup.setOnMenuItemClickListener(item -> {

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
@@ -118,7 +118,8 @@ class FilesSpecificViewThemeUtils @Inject constructor(
118118
.setThumbDrawable(getThumbDrawable(context))
119119
.setPopupStyle {
120120
PopupStyles.MD2.accept(it)
121-
it.background = FastScrollPopupBackground(context, scheme.primary)
121+
//NMC customisation
122+
it.background = FastScrollPopupBackground(context, context.resources.getColor(R.color.primary, null))
122123
}
123124
}
124125
}
@@ -132,7 +133,7 @@ class FilesSpecificViewThemeUtils @Inject constructor(
132133
me.zhanghai.android.fastscroll.R.drawable.afs_md2_thumb,
133134
null
134135
)
135-
return androidViewThemeUtils.tintPrimaryDrawable(context, thumbDrawable)!!
136+
return androidViewThemeUtils.colorDrawable(thumbDrawable!!, context.resources.getColor(R.color.primary, null))
136137
}
137138

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

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

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,70 @@
4848
<!-- App bar -->
4949
<color name="appbar">#1E1E1E</color>
5050
<color name="fontAppbar">@android:color/white</color>
51+
52+
<!-- NMC Colors -->
53+
<color name="icon_color">#FFFFFF</color>
54+
<color name="sort_text_color">@color/grey_30</color>
55+
<color name="list_icon_color">@color/grey_30</color>
56+
<color name="warning_icon_color">#CCCCCC</color>
57+
<color name="divider_color">@color/grey_70</color>
58+
<color name="spinner_bg_color">@color/grey_80</color>
59+
<color name="refresh_layout_bg_color">#2D2D2D</color>
60+
<color name="primary_button_disabled_color">@color/grey_70</color>
61+
<color name="toolbar_divider_color">@color/grey_70</color>
62+
63+
<!-- Snackbar Colors -->
64+
<color name="snackbar_bg_color">@color/grey_80</color>
65+
<color name="snackbar_txt_color">@color/grey_0</color>
66+
67+
<!-- Alert Dialog Colors -->
68+
<color name="alert_bg_color">@color/grey_80</color>
69+
<color name="alert_txt_color">@color/grey_0</color>
70+
71+
<!-- NavigationView colors -->
72+
<color name="nav_selected_bg_color">@color/grey_60</color>
73+
<color name="nav_txt_unselected_color">@color/grey_0</color>
74+
<color name="nav_txt_selected_color">@color/grey_0</color>
75+
<color name="nav_icon_unselected_color">@color/grey_30</color>
76+
<color name="nav_icon_selected_color">#FFFFFF</color>
77+
<color name="nav_divider_color">@color/grey_30</color>
78+
<color name="nav_bg_color">@color/grey_80</color>
79+
<color name="drawer_quota_txt_color">#FFFFFF</color>
80+
81+
<!-- Bottom Sheet Colors -->
82+
<color name="bottom_sheet_bg_color">@color/grey_80</color>
83+
<color name="bottom_sheet_icon_color">@color/grey_30</color>
84+
<color name="bottom_sheet_txt_color">@color/grey_0</color>
85+
86+
<!-- Popup Menu Colors -->
87+
<color name="popup_menu_bg">@color/grey_80</color>
88+
<color name="popup_menu_txt_color">@color/grey_0</color>
89+
<color name="overflow_bg_color">@color/grey_80</color>
90+
91+
<!-- Switch Compat Colors -->
92+
<color name="switch_thumb_checked_disabled">@color/grey_70</color>
93+
<color name="switch_track_checked_disabled">@color/grey_60</color>
94+
<color name="switch_thumb_unchecked_disabled">@color/grey_70</color>
95+
<color name="switch_track_unchecked_disabled">@color/grey_60</color>
96+
97+
<!-- Checkbox Colors -->
98+
<color name="checkbox_checked_disabled">@color/grey_70</color>
99+
<color name="checkbox_unchecked_disabled">@color/grey_70</color>
100+
101+
<!-- Share Colors -->
102+
<color name="share_title_txt_color">#FFFFFF</color>
103+
<color name="share_subtitle_txt_color">@color/grey_30</color>
104+
<color name="share_info_txt_color">@color/grey_0</color>
105+
<color name="share_search_border_color">@color/grey_0</color>
106+
<color name="share_btn_txt_color">@color/grey_0</color>
107+
<color name="share_list_item_txt_color">@color/grey_0</color>
108+
<color name="share_disabled_txt_color">@color/grey_60</color>
109+
<color name="share_txt_color">@color/grey_0</color>
110+
<color name="share_et_divider">#FFFFFF</color>
111+
112+
<!-- Scan Colors -->
113+
<color name="scan_doc_bg_color">#121212</color>
114+
<color name="scan_text_color">@color/grey_0</color>
115+
<color name="scan_edit_bottom_color">@color/grey_80</color>
116+
<color name="scan_count_bg_color">@color/grey_80</color>
51117
</resources>

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

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

0 commit comments

Comments
 (0)