ThemedMaterialSwitch.

This commit is contained in:
Docile-Alligator 2025-06-12 22:58:25 -04:00
parent 4da3215217
commit 35efe4f555
19 changed files with 81 additions and 97 deletions

View File

@ -236,6 +236,10 @@ public class Infinity extends Application implements LifecycleObserver {
return mAppComponent;
}
public CustomThemeWrapper getCustomThemeWrapper() {
return customThemeWrapper;
}
@Subscribe
public void onToggleSecureModeEvent(ToggleSecureModeEvent secureModeEvent) {
isSecureMode = secureModeEvent.isSecureMode;

View File

@ -0,0 +1,29 @@
package ml.docilealligator.infinityforreddit.customviews
import android.R
import android.content.Context
import android.content.res.ColorStateList
import android.util.AttributeSet
import com.google.android.material.materialswitch.MaterialSwitch
import ml.docilealligator.infinityforreddit.Infinity
class ThemedMaterialSwitch @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = com.google.android.material.R.attr.materialSwitchStyle
): MaterialSwitch(context, attrs, defStyleAttr) {
init {
val app = context.applicationContext
if (app is Infinity) {
val customThemeWrapper = (context.applicationContext as Infinity).customThemeWrapper
setThumbTintList(ColorStateList.valueOf(customThemeWrapper.colorAccent))
val states = arrayOf(
intArrayOf(R.attr.state_checked)
)
val colors = intArrayOf(
customThemeWrapper.colorPrimary
)
setTrackTintList(ColorStateList(states, colors))
}
}
}

View File

@ -1,7 +1,6 @@
package ml.docilealligator.infinityforreddit.customviews.preference;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.View;
@ -66,15 +65,6 @@ public class CustomFontSwitchPreference extends SwitchPreference implements Cust
});
if (customThemeWrapper != null) {
materialSwitch.setThumbTintList(ColorStateList.valueOf(customThemeWrapper.getColorAccent()));
int[][] states = new int[][] {
new int[] { android.R.attr.state_checked }
};
int[] colors = new int[] {
customThemeWrapper.getColorPrimary()
};
materialSwitch.setTrackTintList(new ColorStateList(states, colors));
if (iconImageView instanceof ImageView) {
if (isEnabled()) {
((ImageView) iconImageView).setColorFilter(customThemeWrapper.getPrimaryIconColor(), android.graphics.PorterDuff.Mode.SRC_IN);

View File

@ -152,7 +152,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_text_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -183,7 +183,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_link_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -214,7 +214,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_image_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -245,7 +245,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_gif_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -276,7 +276,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_video_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -307,7 +307,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_gallery_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -369,7 +369,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/only_nsfw_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -400,7 +400,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/only_spoiler_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -152,7 +152,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_text_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -183,7 +183,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_link_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -214,7 +214,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_image_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -245,7 +245,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_gif_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -276,7 +276,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_video_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -307,7 +307,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_gallery_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -369,7 +369,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/only_nsfw_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -400,7 +400,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/only_spoiler_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -147,45 +147,6 @@
</com.google.android.material.chip.ChipGroup>
<!--<LinearLayout
android:id="@+id/visibility_wrapper_linear_layout_create_multi_reddit_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground">
<TextView
android:id="@+id/visibility_text_view_create_multi_reddit_activity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/private_multi_reddit"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/visibility_switch_create_multi_reddit_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
</LinearLayout>
<TextView
android:id="@+id/select_subreddit_text_view_create_multi_reddit_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="@string/select_subreddits_and_users"
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground" />-->
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -149,7 +149,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_text_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -180,7 +180,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_link_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -211,7 +211,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_image_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -242,7 +242,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_gif_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -273,7 +273,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_video_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -304,7 +304,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/post_type_gallery_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -368,7 +368,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/only_nsfw_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -399,7 +399,7 @@
android:fontFamily="?attr/font_default"
android:textSize="?attr/font_default" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/only_spoiler_switch_customize_post_filter_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -183,7 +183,7 @@
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_gallery_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -183,7 +183,7 @@
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_image_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -183,7 +183,7 @@
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_link_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -184,7 +184,7 @@
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_poll_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -180,7 +180,7 @@
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_text_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -183,7 +183,7 @@
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_post_video_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -181,7 +181,7 @@
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/receive_post_reply_notifications_switch_material_submit_crosspost_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -84,7 +84,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/show_tab_names_switch_material_customize_main_page_tabs_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -524,7 +524,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/show_favorite_multireddits_switch_material_customize_main_page_tabs_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -555,7 +555,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/show_multireddits_switch_material_customize_main_page_tabs_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -586,7 +586,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/show_favorite_subscribed_subreddits_switch_material_customize_main_page_tabs_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -617,7 +617,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/show_subscribed_subreddits_switch_material_customize_main_page_tabs_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -37,7 +37,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/enable_nsfw_switch_nsfw_and_spoiler_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -70,7 +70,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/blur_nsfw_switch_nsfw_and_spoiler_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -103,7 +103,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/do_not_blur_nsfw_in_nsfw_subreddits_switch_nsfw_and_spoiler_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -135,7 +135,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/blur_spoiler_switch_nsfw_and_spoiler_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -184,7 +184,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/disable_nsfw_forever_switch_nsfw_and_spoiler_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -51,7 +51,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/mark_posts_as_read_switch_post_history_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -85,7 +85,7 @@
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/font_16" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/read_posts_limit_switch_post_history_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -138,7 +138,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/mark_posts_as_read_after_voting_switch_post_history_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -170,7 +170,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/mark_posts_as_read_on_scroll_switch_post_history_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@ -202,7 +202,7 @@
android:textSize="?attr/font_16"
android:fontFamily="?attr/font_family" />
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/hide_read_posts_automatically_switch_post_history_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -34,7 +34,7 @@
</LinearLayout>
<com.google.android.material.materialswitch.MaterialSwitch
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch
android:id="@+id/theme_item_switch_item_custom_theme_switch_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.materialswitch.MaterialSwitch xmlns:android="http://schemas.android.com/apk/res/android"
<ml.docilealligator.infinityforreddit.customviews.ThemedMaterialSwitch xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/material_switch_switch_preference"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />