Skip to content

Commit 8970bb7

Browse files
committed
NMC-2258: Snackbar theme customized.
NMC-2047: Customized floating action button.
1 parent 2a0b507 commit 8970bb7

File tree

11 files changed

+245
-10
lines changed

11 files changed

+245
-10
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.nmc.android.utils
2+
3+
import android.content.Context
4+
import android.content.res.ColorStateList
5+
import android.graphics.Color
6+
import com.google.android.material.floatingactionbutton.FloatingActionButton
7+
import com.owncloud.android.R
8+
9+
object FabThemeUtils {
10+
@JvmStatic
11+
fun colorFloatingActionButton(
12+
context: Context,
13+
button: FloatingActionButton
14+
) {
15+
val primaryColor = context.resources.getColor(R.color.primary, null)
16+
val disableColor = context.resources.getColor(R.color.grey_0, null)
17+
18+
val bgStates = arrayOf(
19+
intArrayOf(android.R.attr.state_enabled),
20+
intArrayOf(-android.R.attr.state_enabled),
21+
)
22+
val bgColors = intArrayOf(
23+
primaryColor,
24+
disableColor
25+
)
26+
27+
button.backgroundTintList = ColorStateList(bgStates, bgColors)
28+
29+
val imageStates = arrayOf(
30+
intArrayOf(android.R.attr.state_enabled),
31+
intArrayOf(-android.R.attr.state_enabled),
32+
)
33+
val imageColors = intArrayOf(
34+
Color.WHITE,
35+
disableColor
36+
)
37+
38+
button.imageTintList = ColorStateList(imageStates, imageColors)
39+
}
40+
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ public void onUrlLoaded(String loadedUrl) {
8888
R.string.timeout_richDocuments, Snackbar.LENGTH_INDEFINITE)
8989
.setAction(R.string.common_cancel, v -> closeView());
9090

91-
viewThemeUtils.material.themeSnackbar(snackbar);
9291
setLoadingSnackbar(snackbar);
9392
snackbar.show();
9493
}

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,6 @@ public static void copyAndShareFileLink(FileActivity activity,
745745
Snackbar snackbar = Snackbar.make(activity.findViewById(android.R.id.content), R.string.clipboard_text_copied,
746746
Snackbar.LENGTH_LONG)
747747
.setAction(R.string.share, v -> showShareLinkDialog(activity, file, link));
748-
viewThemeUtils.material.themeSnackbar(snackbar);
749748
snackbar.show();
750749
}
751750
}
@@ -815,7 +814,6 @@ private void onUpdateShareInformation(RemoteOperationResult result, @StringRes i
815814
snackbar = Snackbar.make(sharingFragment.getView(), result.getMessage(), Snackbar.LENGTH_LONG);
816815
}
817816

818-
viewThemeUtils.material.themeSnackbar(snackbar);
819817
snackbar.show();
820818
}
821819
}
@@ -892,7 +890,6 @@ private void onCreateShareViaLinkOperationFinish(CreateShareViaLinkOperation ope
892890
operation,
893891
getResources()),
894892
Snackbar.LENGTH_LONG);
895-
viewThemeUtils.material.themeSnackbar(snackbar);
896893
snackbar.show();
897894
}
898895
}

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

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import com.nextcloud.ui.fileactions.FileAction;
5353
import com.nextcloud.ui.fileactions.FileActionsBottomSheet;
5454
import com.nextcloud.utils.EditorUtils;
55+
import com.nmc.android.utils.FabThemeUtils;
5556
import com.nextcloud.utils.ShortcutUtil;
5657
import com.nextcloud.utils.extensions.BundleExtensionsKt;
5758
import com.nextcloud.utils.extensions.FileExtensionsKt;
@@ -340,7 +341,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
340341

341342
if (mFabMain != null) {
342343
// is not available in FolderPickerActivity
343-
viewThemeUtils.material.themeFAB(mFabMain);
344+
//NMC customization
345+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
344346
}
345347

346348
Log_OC.i(TAG, "onCreateView() end");
@@ -505,7 +507,8 @@ public void registerFabListener() {
505507
}
506508

507509
// is not available in FolderPickerActivity
508-
viewThemeUtils.material.themeFAB(mFabMain);
510+
//NMC customization
511+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
509512
mFabMain.setOnClickListener(v -> {
510513
var currentDir = getCurrentFile();
511514
if (currentDir == null) {
@@ -2283,7 +2286,8 @@ public void setFabVisible(final boolean visible) {
22832286
activity.runOnUiThread(() -> {
22842287
if (visible) {
22852288
mFabMain.show();
2286-
viewThemeUtils.material.themeFAB(mFabMain);
2289+
// NMC customization
2290+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
22872291
} else {
22882292
mFabMain.hide();
22892293
}
@@ -2315,10 +2319,12 @@ public void setFabEnabled(final boolean enabled) {
23152319
getActivity().runOnUiThread(() -> {
23162320
if (enabled) {
23172321
mFabMain.setEnabled(true);
2318-
viewThemeUtils.material.themeFAB(mFabMain);
2322+
//NMC customization
2323+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
23192324
} else {
23202325
mFabMain.setEnabled(false);
2321-
viewThemeUtils.material.themeFAB(mFabMain);
2326+
//NMC customization
2327+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
23222328
}
23232329
});
23242330
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.android.material.floatingactionbutton.FloatingActionButton;
2020
import com.nextcloud.android.lib.richWorkspace.RichWorkspaceDirectEditingRemoteOperation;
2121
import com.nextcloud.utils.extensions.FileExtensionsKt;
22+
import com.nmc.android.utils.FabThemeUtils;
2223
import com.owncloud.android.R;
2324
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
2425
import com.owncloud.android.ui.activity.FileDisplayActivity;
@@ -85,7 +86,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
8586
fabMain.setOnClickListener(v -> edit());
8687

8788
fabMain.setImageResource(R.drawable.ic_edit);
88-
viewThemeUtils.material.themeFAB(fabMain);
89+
//NMC customization
90+
FabThemeUtils.colorFloatingActionButton(requireActivity(), fabMain);
8991

9092
return view;
9193
}

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

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,69 @@
3939
<color name="fontAppbar">@android:color/white</color>
4040

4141
<color name="actionbar_color">#101418</color>
42+
43+
<!-- NMC Colors -->
44+
<color name="icon_color">#FFFFFF</color>
45+
<color name="sort_text_color">@color/grey_30</color>
46+
<color name="list_icon_color">@color/grey_30</color>
47+
<color name="warning_icon_color">#CCCCCC</color>
48+
<color name="divider_color">@color/grey_70</color>
49+
<color name="spinner_bg_color">@color/grey_80</color>
50+
<color name="refresh_layout_bg_color">#2D2D2D</color>
51+
<color name="primary_button_disabled_color">@color/grey_70</color>
52+
<color name="toolbar_divider_color">@color/grey_70</color>
53+
54+
<!-- Snackbar Colors -->
55+
<color name="snackbar_bg_color">@color/grey_80</color>
56+
<color name="snackbar_txt_color">@color/grey_0</color>
57+
58+
<!-- Alert Dialog Colors -->
59+
<color name="alert_bg_color">@color/grey_80</color>
60+
<color name="alert_txt_color">@color/grey_0</color>
61+
62+
<!-- NavigationView colors -->
63+
<color name="nav_selected_bg_color">@color/grey_60</color>
64+
<color name="nav_txt_unselected_color">@color/grey_0</color>
65+
<color name="nav_txt_selected_color">@color/grey_0</color>
66+
<color name="nav_icon_unselected_color">@color/grey_30</color>
67+
<color name="nav_icon_selected_color">#FFFFFF</color>
68+
<color name="nav_divider_color">@color/grey_30</color>
69+
<color name="nav_bg_color">@color/grey_80</color>
70+
<color name="drawer_quota_txt_color">#FFFFFF</color>
71+
72+
<!-- Bottom Sheet Colors -->
73+
<color name="bottom_sheet_bg_color">@color/grey_80</color>
74+
<color name="bottom_sheet_icon_color">@color/grey_30</color>
75+
<color name="bottom_sheet_txt_color">@color/grey_0</color>
76+
77+
<!-- Popup Menu Colors -->
78+
<color name="popup_menu_bg">@color/grey_80</color>
79+
<color name="popup_menu_txt_color">@color/grey_0</color>
80+
<color name="overflow_bg_color">@color/grey_80</color>
81+
82+
<!-- Switch Compat Colors -->
83+
<color name="switch_thumb_disabled">@color/grey_70</color>
84+
<color name="switch_track_disabled">@color/grey_60</color>
85+
86+
<!-- Checkbox Colors -->
87+
<color name="checkbox_checked_disabled">@color/grey_70</color>
88+
<color name="checkbox_unchecked_disabled">@color/grey_70</color>
89+
90+
<!-- Share Colors -->
91+
<color name="share_title_txt_color">#FFFFFF</color>
92+
<color name="share_subtitle_txt_color">@color/grey_30</color>
93+
<color name="share_info_txt_color">@color/grey_0</color>
94+
<color name="share_search_border_color">@color/grey_0</color>
95+
<color name="share_btn_txt_color">@color/grey_0</color>
96+
<color name="share_list_item_txt_color">@color/grey_0</color>
97+
<color name="share_disabled_txt_color">@color/grey_60</color>
98+
<color name="share_txt_color">@color/grey_0</color>
99+
<color name="share_et_divider">#FFFFFF</color>
100+
<color name="share_blue_color">#7d94f9</color>
101+
102+
<!-- Scan Colors -->
103+
<color name="scan_doc_bg_color">#121212</color>
104+
<color name="scan_text_color">@color/grey_0</color>
105+
<color name="scan_edit_bottom_color">@color/grey_80</color>
106+
<color name="scan_count_bg_color">@color/grey_80</color>
42107
</resources>

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
<item name="windowActionBar">false</item>
2020
<item name="windowActionModeOverlay">true</item>
2121
<item name="windowNoTitle">true</item>
22+
<!-- SnackBar Styling -->
23+
<item name="snackbarStyle">@style/SnackBarBackgroundStyle</item>
24+
<item name="snackbarButtonStyle">@style/SnackBarActionButtonStyle</item>
25+
<item name="snackbarTextViewStyle">@style/SnackBarTextViewStyle</item>
2226
<item name="textInputStyle">@style/Widget.App.TextInputLayout</item>
2327
<item name="popupMenuStyle">@style/Nextcloud.Widget.PopupMenu</item>
2428
<item name="bottomSheetDialogTheme">@style/ThemeOverlay.App.BottomSheetDialog</item>

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

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,94 @@
8989
<color name="fontSecondaryAppbar">#A5A5A5</color>
9090

9191
<color name="actionbar_color">#F7F9FF</color>
92+
93+
<!-- NMC Colors -->
94+
<color name="icon_color">#191919</color>
95+
<color name="sort_text_color">@color/primary</color>
96+
<color name="list_icon_color">#191919</color>
97+
<color name="warning_icon_color">#191919</color>
98+
<color name="divider_color">@color/grey_30</color>
99+
<color name="spinner_bg_color">@android:color/white</color>
100+
<color name="refresh_layout_bg_color">#FFFFFF</color>
101+
<color name="primary_button_disabled_color">@color/grey_0</color>
102+
<color name="toolbar_divider_color">#CCCCCC</color>
103+
<color name="et_highlight_color">#77c4ff</color>
104+
<color name="white_trans_70">#B3FFFFFF</color>
105+
<color name="progress_bar_background">@color/grey_10</color>
106+
107+
<!-- Grey Colors -->
108+
<color name="dark_grey">#101010</color>
109+
<color name="grey_0">#F2F2F2</color>
110+
<color name="grey_10">#E5E5E5</color>
111+
<color name="grey_30">#B2B2B2</color>
112+
<color name="grey_60">#666666</color>
113+
<color name="grey_70">#4C4C4C</color>
114+
<color name="grey_80">#333333</color>
115+
116+
<!-- Snackbar Colors -->
117+
<color name="snackbar_bg_color">@color/design_snackbar_background_color</color>
118+
<color name="snackbar_txt_color">@color/white</color>
119+
120+
<!-- Alert Dialog Colors -->
121+
<color name="alert_bg_color">#FFFFFF</color>
122+
<color name="alert_txt_color">#191919</color>
123+
124+
<!-- NavigationView colors -->
125+
<color name="nav_selected_bg_color">@color/grey_0</color>
126+
<color name="nav_txt_unselected_color">#191919</color>
127+
<color name="nav_txt_selected_color">@color/primary</color>
128+
<color name="nav_icon_unselected_color">#191919</color>
129+
<color name="nav_icon_selected_color">@color/primary</color>
130+
<color name="nav_divider_color">@color/grey_30</color>
131+
<color name="nav_bg_color">@color/white</color>
132+
<color name="drawer_quota_txt_color">#191919</color>
133+
134+
<!-- Bottom Sheet Colors -->
135+
<color name="bottom_sheet_bg_color">#FFFFFF</color>
136+
<color name="bottom_sheet_icon_color">#191919</color>
137+
<color name="bottom_sheet_txt_color">#191919</color>
138+
139+
<!-- Popup Menu Colors -->
140+
<color name="popup_menu_bg">#FFFFFF</color>
141+
<color name="popup_menu_txt_color">#191919</color>
142+
<color name="overflow_bg_color">#FFFFFF</color>
143+
144+
<!-- Switch Compat Colors -->
145+
<color name="switch_thumb_checked_enabled">@color/primary</color>
146+
<color name="switch_track_checked_enabled">#F399C7</color>
147+
<color name="switch_thumb_unchecked_enabled">#FFFFFF</color>
148+
<color name="switch_track_unchecked_enabled">@color/grey_30</color>
149+
<color name="switch_thumb_disabled">@color/grey_10</color>
150+
<color name="switch_track_disabled">@color/grey_0</color>
151+
152+
<!-- Checkbox Colors -->
153+
<color name="checkbox_checked_enabled">@color/primary</color>
154+
<color name="checkbox_unchecked_enabled">@color/grey_30</color>
155+
<color name="checkbox_checked_disabled">@color/grey_30</color>
156+
<color name="checkbox_unchecked_disabled">#CCCCCC</color>
157+
158+
<!-- Share Colors -->
159+
<color name="share_title_txt_color">#191919</color>
160+
<color name="share_subtitle_txt_color">@color/grey_30</color>
161+
<color name="share_info_txt_color">#191919</color>
162+
<color name="share_search_border_color">#191919</color>
163+
<color name="share_btn_txt_color">#191919</color>
164+
<color name="share_list_item_txt_color">#191919</color>
165+
<color name="share_disabled_txt_color">@color/grey_30</color>
166+
<color name="share_txt_color">#191919</color>
167+
<color name="share_et_divider">#000000</color>
168+
<color name="share_warning_txt_color">#191919</color>
169+
<color name="sharing_warning_bg_color">#F6E5EB</color>
170+
<color name="sharing_warning_border_color">#C16F81</color>
171+
<color name="share_color">#0D39DF</color>
172+
<color name="shared_with_me_color">#0099ff</color>
173+
<color name="share_blue_color">#2238df</color>
174+
175+
<!-- Scan Colors -->
176+
<color name="scan_doc_bg_color">@color/grey_0</color>
177+
<color name="scan_text_color">#191919</color>
178+
<color name="scan_edit_bottom_color">@color/grey_0</color>
179+
<color name="scan_count_bg_color">@color/grey_30</color>
180+
<color name="neptune">#77b6bb</color>
181+
<color name="neptune_50">#5077b6bb</color>
92182
</resources>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
4+
<style name="SnackBarBackgroundStyle" parent="Widget.Material3.Snackbar">
5+
<item name="android:backgroundTint">@color/snackbar_bg_color</item>
6+
<item name="backgroundTint">@color/snackbar_bg_color</item>
7+
</style>
8+
9+
<style name="SnackBarActionButtonStyle" parent="Widget.Material3.Button.TextButton.Snackbar">
10+
<item name="android:textColor">@color/white</item>
11+
</style>
12+
13+
<style name="SnackBarTextViewStyle" parent="Widget.Material3.Snackbar.TextView">
14+
<item name="android:textColor">@color/snackbar_txt_color</item>
15+
</style>
16+
</resources>

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
<item name="colorPrimaryDark">@color/primary_dark</item>
2828
<item name="colorSecondary">@color/secondary_text_color</item>
2929
<item name="searchViewStyle">@style/ownCloud.SearchView</item>
30+
<!-- SnackBar Styling -->
31+
<item name="snackbarStyle">@style/SnackBarBackgroundStyle</item>
32+
<item name="snackbarButtonStyle">@style/SnackBarActionButtonStyle</item>
33+
<item name="snackbarTextViewStyle">@style/SnackBarTextViewStyle</item>
3034
<item name="android:actionModeBackground">@color/action_mode_background</item>
3135
<item name="android:datePickerDialogTheme">@style/FallbackDatePickerDialogTheme</item>
3236
<item name="android:navigationBarColor">@color/bg_default</item>
@@ -47,6 +51,10 @@
4751
<item name="android:windowBackground">@color/bg_default</item>
4852
<item name="colorSecondary">@color/secondary_text_color</item>
4953
<item name="dialogTheme">@style/FallbackTheming.Dialog</item>
54+
<!-- SnackBar Styling -->
55+
<item name="snackbarStyle">@style/SnackBarBackgroundStyle</item>
56+
<item name="snackbarButtonStyle">@style/SnackBarActionButtonStyle</item>
57+
<item name="snackbarTextViewStyle">@style/SnackBarTextViewStyle</item>
5058
<item name="android:actionModeBackground">@color/action_mode_background</item>
5159
<item name="android:datePickerDialogTheme">@style/FallbackDatePickerDialogTheme</item>
5260
<item name="android:navigationBarColor">@color/bg_default</item>
@@ -291,6 +299,10 @@
291299
<style name="Theme.ownCloud.Dialog.NoTitle" parent="@style/Theme.ownCloud.Dialog">
292300
<item name="windowNoTitle">true</item>
293301
<item name="colorAccent">@color/color_accent</item>
302+
<!-- SnackBar Styling -->
303+
<item name="snackbarStyle">@style/SnackBarBackgroundStyle</item>
304+
<item name="snackbarButtonStyle">@style/SnackBarActionButtonStyle</item>
305+
<item name="snackbarTextViewStyle">@style/SnackBarTextViewStyle</item>
294306
</style>
295307

296308
<style name="NavigationView_ItemTextAppearance">

0 commit comments

Comments
 (0)