diff --git a/android/app/src/main/java/github/tornaco/android/thanos/main/NavDataBindingAdapters.java b/android/app/src/main/java/github/tornaco/android/thanos/main/NavDataBindingAdapters.java
new file mode 100644
index 000000000..15e38e4d4
--- /dev/null
+++ b/android/app/src/main/java/github/tornaco/android/thanos/main/NavDataBindingAdapters.java
@@ -0,0 +1,32 @@
+package github.tornaco.android.thanos.main;
+
+import android.graphics.drawable.Drawable;
+import android.graphics.drawable.LayerDrawable;
+import android.widget.ImageView;
+
+import androidx.appcompat.content.res.AppCompatResources;
+import androidx.core.content.ContextCompat;
+import androidx.databinding.BindingAdapter;
+
+import java.util.Objects;
+
+import github.tornaco.android.thanos.R;
+import github.tornaco.android.thanos.dashboard.Tile;
+
+public class NavDataBindingAdapters {
+
+ @BindingAdapter("android:navTile")
+ public static void setCircleBgTint(ImageView imageView, Tile tile) {
+ try {
+ LayerDrawable layerDrawable = (LayerDrawable) AppCompatResources.getDrawable(imageView.getContext(), tile.getIconRes());
+ Drawable findDrawableByLayerId = Objects.requireNonNull(layerDrawable).findDrawableByLayerId(R.id.settings_ic_foreground);
+ if (findDrawableByLayerId != null) {
+ findDrawableByLayerId.setTint(ContextCompat.getColor(imageView.getContext(), tile.getThemeColor()));
+ layerDrawable.setDrawableByLayerId(R.id.settings_ic_foreground, findDrawableByLayerId);
+ }
+ imageView.setImageDrawable(layerDrawable);
+ } catch (Throwable ignored) {
+
+ }
+ }
+}
diff --git a/android/app/src/main/java/github/tornaco/android/thanos/main/NavViewModel.java b/android/app/src/main/java/github/tornaco/android/thanos/main/NavViewModel.java
index cfc1635be..d433c9d10 100644
--- a/android/app/src/main/java/github/tornaco/android/thanos/main/NavViewModel.java
+++ b/android/app/src/main/java/github/tornaco/android/thanos/main/NavViewModel.java
@@ -201,54 +201,54 @@ private void loadPrebuiltFeatures() {
Arrays.asList(
Tile.builder()
.id(R.id.id_one_key_clear)
- .iconRes(R.drawable.ic_rocket_fill)
+ .iconRes(R.drawable.ic_nav_boost)
.title(resources.getString(R.string.feature_title_one_key_boost))
.requiredFeature(BuildProp.THANOX_FEATURE_BG_TASK_CLEAN)
- .themeColor(R.color.md_green_500)
+ .themeColor(R.color.nav_icon_boost)
.build(),
Tile.builder()
.id(R.id.id_background_start)
- .iconRes(R.drawable.ic_forbid_fill)
+ .iconRes(R.drawable.ic_nav_bg_start)
.title(resources.getString(R.string.feature_title_start_restrict))
.category(resources.getString(R.string.feature_category_start_manage))
.requiredFeature(BuildProp.THANOX_FEATURE_START_BLOCKER)
- .themeColor(R.color.md_indigo_a400)
+ .themeColor(R.color.nav_icon_bg_start)
.build(),
Tile.builder()
- .iconRes(R.drawable.ic_refresh_fill)
+ .iconRes(R.drawable.ic_nav_bg_restrict)
.id(R.id.id_background_restrict)
.title(resources.getString(R.string.feature_title_bg_restrict))
.summary(resources.getString(R.string.feature_desc_bg_restrict_brief))
.requiredFeature(BuildProp.THANOX_FEATURE_BG_TASK_CLEAN)
- .themeColor(R.color.md_amber_800)
+ .themeColor(R.color.nav_icon_bg_restrict)
.build(),
Tile.builder()
.id(R.id.id_clean_task_removal)
- .iconRes(R.drawable.ic_clear_all_black_24dp)
+ .iconRes(R.drawable.ic_nav_task_removal)
.title(resources.getString(R.string.feature_title_clean_when_task_removed))
.requiredFeature(BuildProp.THANOX_FEATURE_RECENT_TASK_REMOVAL)
.summary(
resources.getString(
R.string.feature_desc_clean_when_task_removed_brief))
.category(resources.getString(R.string.feature_category_app_clean_up))
- .themeColor(R.color.md_grey_500)
+ .themeColor(R.color.nav_icon_task_removal)
.build(),
Tile.builder()
.id(R.id.id_smart_freeze)
- .iconRes(R.drawable.ic_ac_unit_black_24dp)
+ .iconRes(R.drawable.ic_nav_smart_freeze)
.title(resources.getString(R.string.feature_title_smart_app_freeze))
.summary(resources.getString(R.string.feature_summary_smart_app_freeze))
.requiredFeature(BuildProp.THANOX_FEATURE_EXT_APP_SMART_FREEZE)
- .themeColor(R.color.md_blue_grey_500)
+ .themeColor(R.color.nav_icon_smart_freeze)
.build(),
Tile.builder()
.id(R.id.id_apps_manager)
- .iconRes(R.drawable.ic_apps_fill)
+ .iconRes(R.drawable.ic_nav_app_manager)
.title(resources.getString(R.string.feature_title_apps_manager))
.summary(resources.getString(R.string.feature_summary_apps_manager))
.requiredFeature(BuildProp.THANOX_FEATURE_COMPONENT_MANAGER)
.category(resources.getString(R.string.feature_category_app_manage))
- .themeColor(R.color.md_pink_600)
+ .themeColor(R.color.nav_icon_apps_manager)
.build())));
TileGroup secure =
@@ -258,58 +258,47 @@ private void loadPrebuiltFeatures() {
Arrays.asList(
Tile.builder()
.id(R.id.id_privacy_cheat)
- .iconRes(R.drawable.ic_spy_fill)
+ .iconRes(R.drawable.ic_nav_priv_cheat)
.title(resources.getString(R.string.feature_title_data_cheat))
.category(resources.getString(R.string.feature_category_privacy))
.requiredFeature(BuildProp.THANOX_FEATURE_PRIVACY_DATA_CHEAT)
- .themeColor(R.color.md_grey_700)
- .build(),
- Tile.builder()
- .id(R.id.id_ops_by_app)
- .iconRes(R.drawable.ic_shield_star_fill)
- .requiredFeature(BuildProp.THANOX_FEATURE_PRIVACY_OPS)
- .title(resources.getString(R.string.module_ops_feature_title_app_ops_list))
- .summary(
- resources.getString(R.string.module_ops_feature_summary_app_ops_list))
- .themeColor(R.color.md_lime_600)
- // Dup with apps manager.
- .disabled(true)
+ .themeColor(R.color.nav_icon_priv_cheat)
.build(),
Tile.builder()
.id(R.id.id_ops_by_ops)
- .iconRes(R.drawable.ic_shield_star_fill)
+ .iconRes(R.drawable.ic_nav_ops)
.requiredFeature(BuildProp.THANOX_FEATURE_PRIVACY_OPS)
.title(resources.getString(R.string.module_ops_feature_title_ops_app_list))
.summary(
resources.getString(R.string.module_ops_feature_summary_ops_app_list))
- .themeColor(R.color.md_blue_700)
+ .themeColor(R.color.nav_icon_ops)
.build(),
Tile.builder()
.id(R.id.id_app_lock)
- .iconRes(R.drawable.ic_baseline_phonelink_lock_24)
+ .iconRes(R.drawable.ic_nav_app_lock)
.title(resources.getString(R.string.feature_title_app_lock))
.summary(resources.getString(R.string.feature_summary_app_lock))
- .themeColor(R.color.md_deep_orange_500)
+ .themeColor(R.color.nav_icon_app_lock)
.requiredFeature(BuildProp.THANOX_FEATURE_PRIVACY_APPLOCK)
.build(),
Tile.builder()
.id(R.id.id_task_blur)
- .iconRes(R.drawable.ic_paint_brush_fill)
+ .iconRes(R.drawable.ic_nav_task_blur)
.title(resources.getString(R.string.feature_title_recent_task_blur))
.summary(resources.getString(R.string.feature_summary_recent_task_blur))
.requiredFeature(BuildProp.THANOX_FEATURE_PRIVACY_TASK_BLUR)
- .themeColor(R.color.md_teal_800)
+ .themeColor(R.color.nav_icon_task_blur)
.build(),
Tile.builder()
.id(R.id.id_op_remind)
- .iconRes(R.drawable.module_ops_ic_alarm_warning_fill)
+ .iconRes(R.drawable.ic_nav_op_remind)
.requiredFeature(BuildProp.THANOX_FEATURE_PRIVACY_OPS_REMINDER)
.category(resources.getString(R.string.feature_category_remind))
.title(
resources.getString(R.string.module_ops_feature_title_ops_remind_list))
.summary(
resources.getString(R.string.module_ops_feature_summary_ops_remind))
- .themeColor(R.color.md_amber_800)
+ .themeColor(R.color.nav_icon_op_remind)
.build())));
TileGroup ext =
@@ -319,65 +308,65 @@ private void loadPrebuiltFeatures() {
Arrays.asList(
Tile.builder()
.id(R.id.id_screen_on_notification)
- .iconRes(R.drawable.ic_notification_badge_fill)
+ .iconRes(R.drawable.ic_nav_screen_on_notification)
.title(resources.getString(R.string.feature_title_light_on_notification))
.summary(
resources.getString(R.string.feature_summary_light_on_notification))
.category(resources.getString(R.string.feature_category_notification))
.requiredFeature(BuildProp.THANOX_FEATURE_EXT_N_UP)
- .themeColor(R.color.md_red_500)
+ .themeColor(R.color.nav_icon_screen_on_notification)
.build(),
Tile.builder()
.id(R.id.id_notification_recorder)
- .iconRes(R.drawable.ic_chat_1_fill)
+ .iconRes(R.drawable.ic_nav_nr)
.title(
resources.getString(
R.string
.module_notification_recorder_feature_title_notification_recorder))
.requiredFeature(BuildProp.THANOX_FEATURE_EXT_N_RECORDER)
- .themeColor(R.color.md_cyan_600)
+ .themeColor(R.color.nav_icon_nr)
.build(),
Tile.builder()
.id(R.id.id_trampoline)
- .iconRes(R.drawable.ic_guide_fill)
+ .iconRes(R.drawable.ic_nav_activity_replacement)
.category(resources.getString(R.string.feature_category_ext))
.title(resources.getString(R.string.module_activity_trampoline_app_name))
.requiredFeature(BuildProp.THANOX_FEATURE_APP_TRAMPOLINE)
.summary("\uD83C\uDF6D \uD83C\uDF6D \uD83C\uDF6D")
- .themeColor(R.color.md_green_a700)
+ .themeColor(R.color.nav_icon_activity_replacement)
.build(),
Tile.builder()
.id(R.id.id_profile)
- .iconRes(R.drawable.module_profile_ic_thunderstorms_fill)
+ .iconRes(R.drawable.ic_nav_profile)
.title(resources.getString(R.string.module_profile_feature_name))
.summary(resources.getString(R.string.module_profile_feature_summary))
- .themeColor(R.color.md_indigo_300)
+ .themeColor(R.color.nav_icon_profile)
.requiredFeature(BuildProp.THANOX_FEATURE_PROFILE)
.build(),
Tile.builder()
.id(R.id.id_smart_standby)
- .iconRes(R.drawable.ic_mickey_fill)
+ .iconRes(R.drawable.ic_nav_smart_standby)
.category(resources.getString(R.string.feature_category_apps))
.title(resources.getString(R.string.feature_title_smart_app_standby))
.summary(
resources.getString(R.string.feature_summary_smart_app_standby_brief))
.requiredFeature(BuildProp.THANOX_FEATURE_APP_SMART_STAND_BY)
- .themeColor(R.color.md_deep_orange_300)
+ .themeColor(R.color.nav_icon_smart_standby)
.build(),
Tile.builder()
.id(R.id.id_plugins)
- .iconRes(R.drawable.ic_store_fill)
+ .iconRes(R.drawable.ic_nav_plugins)
.title(resources.getString(R.string.nav_title_plugin))
.requiredFeature(BuildProp.THANOX_FEATURE_PLUGIN_SUPPORT)
.summary(resources.getString(R.string.card_message_plugin_available))
- .themeColor(R.color.md_grey_400)
+ .themeColor(R.color.nav_icon_plugin)
.build(),
Tile.builder()
.id(R.id.id_infinite_z)
- .iconRes(R.drawable.ic_baseline_work_fill_24)
+ .iconRes(R.drawable.ic_nav_app_clone)
.title(resources.getString(R.string.feature_title_infinite_z))
.disabled(!BuildProp.THANOS_BUILD_DEBUG)
- .themeColor(R.color.md_deep_purple_700)
+ .themeColor(R.color.nav_icon_app_clone)
.build())));
tileGroups.add(new TileGroup(loadStatusHeaderInfo()));
diff --git a/android/app/src/main/res/drawable/ic_nav_activity_replacement.xml b/android/app/src/main/res/drawable/ic_nav_activity_replacement.xml
new file mode 100644
index 000000000..e75453f59
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_activity_replacement.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_app_clone.xml b/android/app/src/main/res/drawable/ic_nav_app_clone.xml
new file mode 100644
index 000000000..e034cc4eb
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_app_clone.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_app_lock.xml b/android/app/src/main/res/drawable/ic_nav_app_lock.xml
new file mode 100644
index 000000000..4a5dc7e93
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_app_lock.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_app_manager.xml b/android/app/src/main/res/drawable/ic_nav_app_manager.xml
new file mode 100644
index 000000000..e8349d8e8
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_app_manager.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_bg_restrict.xml b/android/app/src/main/res/drawable/ic_nav_bg_restrict.xml
new file mode 100644
index 000000000..ddee5ec03
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_bg_restrict.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_bg_start.xml b/android/app/src/main/res/drawable/ic_nav_bg_start.xml
new file mode 100644
index 000000000..04a93c718
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_bg_start.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_boost.xml b/android/app/src/main/res/drawable/ic_nav_boost.xml
new file mode 100644
index 000000000..f25e31481
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_boost.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_nr.xml b/android/app/src/main/res/drawable/ic_nav_nr.xml
new file mode 100644
index 000000000..86a7ff423
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_nr.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_op_remind.xml b/android/app/src/main/res/drawable/ic_nav_op_remind.xml
new file mode 100644
index 000000000..6d2205b08
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_op_remind.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_ops.xml b/android/app/src/main/res/drawable/ic_nav_ops.xml
new file mode 100644
index 000000000..0404a7e58
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_ops.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_plugins.xml b/android/app/src/main/res/drawable/ic_nav_plugins.xml
new file mode 100644
index 000000000..799d02f18
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_plugins.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_priv_cheat.xml b/android/app/src/main/res/drawable/ic_nav_priv_cheat.xml
new file mode 100644
index 000000000..4d97dde48
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_priv_cheat.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_profile.xml b/android/app/src/main/res/drawable/ic_nav_profile.xml
new file mode 100644
index 000000000..a8aac3d2e
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_profile.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_screen_on_notification.xml b/android/app/src/main/res/drawable/ic_nav_screen_on_notification.xml
new file mode 100644
index 000000000..0056ba03b
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_screen_on_notification.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_smart_freeze.xml b/android/app/src/main/res/drawable/ic_nav_smart_freeze.xml
new file mode 100644
index 000000000..a28516433
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_smart_freeze.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_smart_standby.xml b/android/app/src/main/res/drawable/ic_nav_smart_standby.xml
new file mode 100644
index 000000000..b7094979c
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_smart_standby.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_task_blur.xml b/android/app/src/main/res/drawable/ic_nav_task_blur.xml
new file mode 100644
index 000000000..780bb14b4
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_task_blur.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/drawable/ic_nav_task_removal.xml b/android/app/src/main/res/drawable/ic_nav_task_removal.xml
new file mode 100644
index 000000000..f10bc9390
--- /dev/null
+++ b/android/app/src/main/res/drawable/ic_nav_task_removal.xml
@@ -0,0 +1,15 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/app/src/main/res/layout/item_feature_dashboard_tile_of_card.xml b/android/app/src/main/res/layout/item_feature_dashboard_tile_of_card.xml
index edfc0776e..79ddc5edb 100644
--- a/android/app/src/main/res/layout/item_feature_dashboard_tile_of_card.xml
+++ b/android/app/src/main/res/layout/item_feature_dashboard_tile_of_card.xml
@@ -34,12 +34,8 @@
android:layout_height="@dimen/dashboard_tile_image_size_large"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dashboard_tile_image_margin_end"
- android:background="@drawable/circle_bg_blue"
- android:featureIcon="@{tile.iconRes}"
- android:padding="10dp"
- android:tint="@color/md_white"
- android:circleBgTint="@{tile.themeColor}"
- tools:src="@drawable/ic_rocket_fill" />
+ android:navTile="@{tile}"
+ tools:src="@drawable/ic_nav_boost" />
+
+
+ #4caf50
+ #f36352
+ #ffa800
+ #be5ee7
+ #2c8aff
+ #ffa800
+ #8262ff
+ #f36352
+ #90ce02
+ #e9244a
+ #939393
+ #51b4cd
+ #8262ff
+ #5d4037
+ #e91e63
+ #ffa800
+ #939393
+ #f36352
+
\ No newline at end of file
diff --git a/android/modules/module_common/src/main/java/github/tornaco/android/thanos/common/CommonDataBindingAdapters.java b/android/modules/module_common/src/main/java/github/tornaco/android/thanos/common/CommonDataBindingAdapters.java
index 4e12e23fa..26ce4d0a4 100644
--- a/android/modules/module_common/src/main/java/github/tornaco/android/thanos/common/CommonDataBindingAdapters.java
+++ b/android/modules/module_common/src/main/java/github/tornaco/android/thanos/common/CommonDataBindingAdapters.java
@@ -39,19 +39,6 @@ public static void setIconTint(ImageView imageView, @ColorRes int res) {
imageView.setColorFilter(ContextCompat.getColor(imageView.getContext(), res));
}
- @BindingAdapter("android:circleBgTint")
- public static void setCircleBgTint(ImageView imageView, @ColorRes int res) {
- if (res == 0) return;
- Drawable bg = AppCompatResources.getDrawable(imageView.getContext(), R.drawable.module_common_circle_bg_blue);
- if (bg == null) return;
- int iconColor = imageView.getContext().getColor(res);
- int lColor = ColorUtils.INSTANCE.lightenColor(iconColor, 0.5f);
-
- imageView.setColorFilter(iconColor);
- bg.setColorFilter(new PorterDuffColorFilter(lColor, PorterDuff.Mode.SRC_IN));
- imageView.setBackground(bg);
- }
-
@BindingAdapter("android:appIcon")
public static void setAppIcon(ImageView imageView, AppInfo appInfo) {
if (appInfo != null && appInfo.getIconDrawable() > 0) {