Skip to content

Commit 6947302

Browse files
committed
Customized floating action button.
1 parent 1d6c53c commit 6947302

File tree

4 files changed

+143
-6
lines changed

4 files changed

+143
-6
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/fragment/OCFileListFragment.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import com.nextcloud.common.NextcloudClient;
5555
import com.nextcloud.ui.fileactions.FileActionsBottomSheet;
5656
import com.nextcloud.utils.EditorUtils;
57+
import com.nmc.android.utils.FabThemeUtils;
5758
import com.nextcloud.utils.ShortcutUtil;
5859
import com.nextcloud.utils.extensions.BundleExtensionsKt;
5960
import com.nextcloud.utils.extensions.IntentExtensionsKt;
@@ -327,7 +328,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
327328

328329
if (mFabMain != null) {
329330
// is not available in FolderPickerActivity
330-
viewThemeUtils.material.themeFAB(mFabMain);
331+
//NMC customization
332+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
331333
}
332334

333335
Log_OC.i(TAG, "onCreateView() end");
@@ -479,7 +481,8 @@ public void registerFabListener() {
479481

480482
if (mFabMain != null) {
481483
// is not available in FolderPickerActivity
482-
viewThemeUtils.material.themeFAB(mFabMain);
484+
//NMC customization
485+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
483486
mFabMain.setOnClickListener(v -> {
484487
final OCFileListBottomSheetDialog dialog =
485488
new OCFileListBottomSheetDialog(activity,
@@ -1993,7 +1996,8 @@ public void setFabVisible(final boolean visible) {
19931996
getActivity().runOnUiThread(() -> {
19941997
if (visible) {
19951998
mFabMain.show();
1996-
viewThemeUtils.material.themeFAB(mFabMain);
1999+
//NMC customization
2000+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
19972001
} else {
19982002
mFabMain.hide();
19992003
}
@@ -2043,10 +2047,12 @@ public void setFabEnabled(final boolean enabled) {
20432047
getActivity().runOnUiThread(() -> {
20442048
if (enabled) {
20452049
mFabMain.setEnabled(true);
2046-
viewThemeUtils.material.themeFAB(mFabMain);
2050+
//NMC customization
2051+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
20472052
} else {
20482053
mFabMain.setEnabled(false);
2049-
viewThemeUtils.material.themeFAB(mFabMain);
2054+
//NMC customization
2055+
FabThemeUtils.colorFloatingActionButton(requireContext(), mFabMain);
20502056
}
20512057
});
20522058
}

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.client.account.UserAccountManager;
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;
@@ -89,7 +90,8 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
8990
fabMain.setOnClickListener(v -> edit());
9091

9192
fabMain.setImageResource(R.drawable.ic_edit);
92-
viewThemeUtils.material.themeFAB(fabMain);
93+
//NMC customization
94+
FabThemeUtils.colorFloatingActionButton(requireActivity(), fabMain);
9395

9496
return view;
9597
}

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

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

0 commit comments

Comments
 (0)