mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-07 11:17:25 +01:00
Start implementing custom theme settings.
This commit is contained in:
parent
71e22b3e36
commit
012736bff6
@ -21,11 +21,14 @@
|
||||
android:theme="@style/AppTheme"
|
||||
android:usesCleartextTraffic="true"
|
||||
tools:replace="android:label">
|
||||
<activity android:name=".Activity.CustomizeThemeActivity"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
<activity
|
||||
android:name=".Activity.SubredditMultiselectionActivity"
|
||||
android:label="@string/subreddit_multiselection_activity_label"
|
||||
android:parentActivityName=".Activity.MainActivity"
|
||||
android:theme="@style/AppTheme.NoActionBar"/>
|
||||
android:theme="@style/AppTheme.NoActionBar" />
|
||||
<activity
|
||||
android:name=".Activity.CreateMultiRedditActivity"
|
||||
android:label="@string/create_multi_reddit_activity_label"
|
||||
|
@ -230,7 +230,7 @@ public abstract class BaseActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
protected void applyAppBarLayoutAndToolbarTheme(AppBarLayout appBarLayout, Toolbar toolbar) {
|
||||
appBarLayout.setBackgroundColor(customThemeWrapper.getToolbarAndTabBackgroundColor());
|
||||
appBarLayout.setBackgroundColor(customThemeWrapper.getColorPrimary());
|
||||
toolbar.setTitleTextColor(customThemeWrapper.getToolbarPrimaryTextAndIconColor());
|
||||
if (toolbar.getNavigationIcon() != null) {
|
||||
toolbar.getNavigationIcon().setColorFilter(customThemeWrapper.getToolbarPrimaryTextAndIconColor(), android.graphics.PorterDuff.Mode.SRC_IN);
|
||||
@ -259,7 +259,7 @@ public abstract class BaseActivity extends AppCompatActivity {
|
||||
}
|
||||
|
||||
protected void applyTabLayoutTheme(TabLayout tabLayout) {
|
||||
int toolbarAndTabBackgroundColor = customThemeWrapper.getToolbarAndTabBackgroundColor();
|
||||
int toolbarAndTabBackgroundColor = customThemeWrapper.getColorPrimary();
|
||||
tabLayout.setBackgroundColor(toolbarAndTabBackgroundColor);
|
||||
tabLayout.setSelectedTabIndicatorColor(customThemeWrapper.getTabLayoutWithCollapsedCollapsingToolbarTabIndicator());
|
||||
tabLayout.setTabTextColors(customThemeWrapper.getTabLayoutWithCollapsedCollapsingToolbarTextColor(),
|
||||
|
@ -0,0 +1,125 @@
|
||||
package ml.docilealligator.infinityforreddit.Activity;
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.Observer;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.google.android.material.appbar.AppBarLayout;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ml.docilealligator.infinityforreddit.Adapter.CustomizeThemeRecyclerViewAdapter;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomTheme;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeSettingsItem;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeViewModel;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
|
||||
public class CustomizeThemeActivity extends BaseActivity {
|
||||
|
||||
public static final String EXTRA_THEME_TYPE = "ETT";
|
||||
public static final int EXTRA_LIGHT_THEME = 0;
|
||||
public static final int EXTRA_DARK_THEME = 1;
|
||||
public static final int EXTRA_AMOLED_THEME = 2;
|
||||
|
||||
@BindView(R.id.appbar_layout_customize_theme_activity)
|
||||
AppBarLayout appBarLayout;
|
||||
@BindView(R.id.toolbar_customize_theme_activity)
|
||||
Toolbar toolbar;
|
||||
@BindView(R.id.recycler_view_customize_theme_activity)
|
||||
RecyclerView recyclerView;
|
||||
@Inject
|
||||
@Named("default")
|
||||
SharedPreferences sharedPreferences;
|
||||
@Inject
|
||||
RedditDataRoomDatabase redditDataRoomDatabase;
|
||||
@Inject
|
||||
CustomThemeWrapper customThemeWrapper;
|
||||
|
||||
public CustomThemeViewModel customThemeViewModel;
|
||||
private CustomizeThemeRecyclerViewAdapter adapter;
|
||||
private int themeType;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
((Infinity) getApplication()).getAppComponent().inject(this);
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_customize_theme);
|
||||
|
||||
ButterKnife.bind(this);
|
||||
|
||||
applyCustomTheme();
|
||||
|
||||
themeType = getIntent().getIntExtra(EXTRA_THEME_TYPE, EXTRA_LIGHT_THEME);
|
||||
|
||||
setSupportActionBar(toolbar);
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
|
||||
adapter = new CustomizeThemeRecyclerViewAdapter();
|
||||
|
||||
customThemeViewModel = new ViewModelProvider(this, new CustomThemeViewModel.Factory(redditDataRoomDatabase))
|
||||
.get(CustomThemeViewModel.class);
|
||||
|
||||
LiveData<CustomTheme> customThemeLiveData;
|
||||
switch (themeType) {
|
||||
case EXTRA_DARK_THEME:
|
||||
toolbar.setTitle(getString(R.string.customize_dark_theme_fragment_title));
|
||||
customThemeLiveData = customThemeViewModel.getDarkCustomTheme();
|
||||
break;
|
||||
case EXTRA_AMOLED_THEME:
|
||||
toolbar.setTitle(getString(R.string.customize_amoled_theme_fragment_title));
|
||||
customThemeLiveData = customThemeViewModel.getAmoledCustomTheme();
|
||||
break;
|
||||
default:
|
||||
toolbar.setTitle(getString(R.string.customize_light_theme_fragment_title));
|
||||
customThemeLiveData = customThemeViewModel.getLightCustomTheme();
|
||||
break;
|
||||
}
|
||||
|
||||
int androidVersion = Build.VERSION.SDK_INT;
|
||||
customThemeLiveData.observe(this, new Observer<CustomTheme>() {
|
||||
@Override
|
||||
public void onChanged(CustomTheme customTheme) {
|
||||
ArrayList<CustomThemeSettingsItem> customThemeSettingsItems =
|
||||
CustomThemeSettingsItem.convertCustomTheme(CustomizeThemeActivity.this, customTheme);
|
||||
if (androidVersion < Build.VERSION_CODES.O) {
|
||||
customThemeSettingsItems.get(customThemeSettingsItems.size() - 2).itemDetails = getString(R.string.theme_item_available_on_android_8);
|
||||
}
|
||||
if (androidVersion < Build.VERSION_CODES.M) {
|
||||
customThemeSettingsItems.get(customThemeSettingsItems.size() - 3).itemDetails = getString(R.string.theme_item_available_on_android_6);
|
||||
}
|
||||
|
||||
adapter.setCustomThemeSettingsItem(customThemeSettingsItems);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SharedPreferences getSharedPreferences() {
|
||||
return sharedPreferences;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CustomThemeWrapper getCustomThemeWrapper() {
|
||||
return customThemeWrapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void applyCustomTheme() {
|
||||
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
|
||||
}
|
||||
}
|
@ -7,7 +7,6 @@ import android.view.MenuItem;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
@ -31,8 +30,6 @@ public class SettingsActivity extends BaseActivity implements
|
||||
|
||||
private static final String TITLE_STATE = "TS";
|
||||
|
||||
@BindView(R.id.coordinator_layout_settings_activity)
|
||||
CoordinatorLayout coordinatorLayout;
|
||||
@BindView(R.id.appbar_layout_settings_activity)
|
||||
AppBarLayout appBarLayout;
|
||||
@BindView(R.id.toolbar_settings_activity)
|
||||
@ -96,7 +93,6 @@ public class SettingsActivity extends BaseActivity implements
|
||||
|
||||
@Override
|
||||
protected void applyCustomTheme() {
|
||||
coordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
|
||||
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
|
||||
}
|
||||
|
||||
|
@ -303,7 +303,7 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
||||
mSpoilerTextColor = customThemeWrapper.getSpoilerTextColor();
|
||||
mNSFWBackgroundColor = customThemeWrapper.getNsfwBackgroundColor();
|
||||
mNSFWTextColor = customThemeWrapper.getNsfwTextColor();
|
||||
mArchivedTintColor = customThemeWrapper.getArchivedTint();
|
||||
mArchivedTintColor = customThemeWrapper.getArchivedIconTint();
|
||||
mLockedTintColor = customThemeWrapper.getLockedIconTint();
|
||||
mCrosspostTintColor = customThemeWrapper.getCrosspostIconTint();
|
||||
mNoPreviewLinkBackgroundColor = customThemeWrapper.getNoPreviewLinkBackgroundColor();
|
||||
@ -321,7 +321,7 @@ public class CommentAndPostRecyclerViewAdapter extends RecyclerView.Adapter<Recy
|
||||
mCommentVerticalBarColor6 = customThemeWrapper.getCommentVerticalBarColor6();
|
||||
mCommentVerticalBarColor7 = customThemeWrapper.getCommentVerticalBarColor7();
|
||||
mSingleCommentThreadBackgroundColor = customThemeWrapper.getSingleCommentThreadBackgroundColor();
|
||||
mVoteAndReplyUnavailableVoteButtonColor = customThemeWrapper.getVoteAndReplyUnavailableVoteButtonColor();
|
||||
mVoteAndReplyUnavailableVoteButtonColor = customThemeWrapper.getVoteAndReplyUnavailableButtonColor();
|
||||
mButtonTextColor = customThemeWrapper.getButtonTextColor();
|
||||
mPostIconAndInfoColor = customThemeWrapper.getPostIconAndInfoColor();
|
||||
mCommentIconAndInfoColor = customThemeWrapper.getCommentIconAndInfoColor();
|
||||
|
@ -0,0 +1,107 @@
|
||||
package ml.docilealligator.infinityforreddit.Adapter;
|
||||
|
||||
import android.content.res.ColorStateList;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Switch;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeSettingsItem;
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
|
||||
public class CustomizeThemeRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
||||
private static final int VIEW_TYPE_COLOR = 1;
|
||||
private static final int VIEW_TYPE_SWITCH = 2;
|
||||
private ArrayList<CustomThemeSettingsItem> customThemeSettingsItems;
|
||||
|
||||
public CustomizeThemeRecyclerViewAdapter() {
|
||||
customThemeSettingsItems = new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
if (position < customThemeSettingsItems.size() - 3) {
|
||||
return VIEW_TYPE_COLOR;
|
||||
}
|
||||
|
||||
return VIEW_TYPE_SWITCH;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
if (viewType == VIEW_TYPE_SWITCH) {
|
||||
return new ThemeSwitchItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_theme_color_item, parent, false));
|
||||
}
|
||||
|
||||
return new ThemeColorItemViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_theme_color_item, parent, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
|
||||
if (holder instanceof ThemeColorItemViewHolder) {
|
||||
CustomThemeSettingsItem customThemeSettingsItem = customThemeSettingsItems.get(position);
|
||||
((ThemeColorItemViewHolder) holder).themeItemNameTextView.setText(customThemeSettingsItem.itemName);
|
||||
((ThemeColorItemViewHolder) holder).themeItemInfoTextView.setText(customThemeSettingsItem.itemDetails);
|
||||
((ThemeColorItemViewHolder) holder).colorImageView.setBackgroundTintList(ColorStateList.valueOf(customThemeSettingsItem.colorValue));
|
||||
holder.itemView.setOnClickListener(view -> {
|
||||
|
||||
});
|
||||
} else if (holder instanceof ThemeSwitchItemViewHolder) {
|
||||
CustomThemeSettingsItem customThemeSettingsItem = customThemeSettingsItems.get(position);
|
||||
((ThemeSwitchItemViewHolder) holder).themeItemNameTextView.setText(customThemeSettingsItem.itemName);
|
||||
((ThemeSwitchItemViewHolder) holder).themeItemInfoTextView.setText(customThemeSettingsItem.itemName);
|
||||
((ThemeSwitchItemViewHolder) holder).themeItemSwitch.setChecked(customThemeSettingsItem.isEnabled);
|
||||
((ThemeSwitchItemViewHolder) holder).themeItemSwitch.setOnClickListener(view -> customThemeSettingsItem.isEnabled = ((ThemeSwitchItemViewHolder) holder).themeItemSwitch.isChecked());
|
||||
holder.itemView.setOnClickListener(view -> ((ThemeSwitchItemViewHolder) holder).themeItemSwitch.performClick());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return customThemeSettingsItems.size();
|
||||
}
|
||||
|
||||
public void setCustomThemeSettingsItem(ArrayList<CustomThemeSettingsItem> customThemeSettingsItems) {
|
||||
this.customThemeSettingsItems.clear();
|
||||
notifyDataSetChanged();
|
||||
this.customThemeSettingsItems.addAll(customThemeSettingsItems);
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
class ThemeColorItemViewHolder extends RecyclerView.ViewHolder {
|
||||
@BindView(R.id.color_image_view_item_theme_color_item)
|
||||
View colorImageView;
|
||||
@BindView(R.id.theme_item_name_text_view_item_theme_color_item)
|
||||
TextView themeItemNameTextView;
|
||||
@BindView(R.id.theme_item_info_text_view_item_theme_color_item)
|
||||
TextView themeItemInfoTextView;
|
||||
|
||||
ThemeColorItemViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
ButterKnife.bind(this, itemView);
|
||||
}
|
||||
}
|
||||
|
||||
class ThemeSwitchItemViewHolder extends RecyclerView.ViewHolder {
|
||||
@BindView(R.id.theme_item_name_text_view_item_theme_switch_item)
|
||||
TextView themeItemNameTextView;
|
||||
@BindView(R.id.theme_item_info_text_view_item_theme_switch_item)
|
||||
TextView themeItemInfoTextView;
|
||||
@BindView(R.id.theme_item_switch_item_theme_switch_item)
|
||||
Switch themeItemSwitch;
|
||||
|
||||
ThemeSwitchItemViewHolder(@NonNull View itemView) {
|
||||
super(itemView);
|
||||
ButterKnife.bind(this, itemView);
|
||||
}
|
||||
}
|
||||
}
|
@ -180,13 +180,13 @@ public class PostRecyclerViewAdapter extends PagedListAdapter<Post, RecyclerView
|
||||
mFlairTextColor = customThemeWrapper.getFlairTextColor();
|
||||
mNSFWBackgroundColor = customThemeWrapper.getNsfwBackgroundColor();
|
||||
mNSFWTextColor = customThemeWrapper.getNsfwTextColor();
|
||||
mArchivedIconTint = customThemeWrapper.getArchivedTint();
|
||||
mArchivedIconTint = customThemeWrapper.getArchivedIconTint();
|
||||
mLockedIconTint = customThemeWrapper.getLockedIconTint();
|
||||
mCrosspostIconTint = customThemeWrapper.getCrosspostIconTint();
|
||||
mNoPreviewLinkBackgroundColor = customThemeWrapper.getNoPreviewLinkBackgroundColor();
|
||||
mUpvotedColor = customThemeWrapper.getUpvoted();
|
||||
mDownvotedColor = customThemeWrapper.getDownvoted();
|
||||
mVoteAndReplyUnavailableVoteButtonColor = customThemeWrapper.getVoteAndReplyUnavailableVoteButtonColor();
|
||||
mVoteAndReplyUnavailableVoteButtonColor = customThemeWrapper.getVoteAndReplyUnavailableButtonColor();
|
||||
mButtonTextColor = customThemeWrapper.getButtonTextColor();
|
||||
mPostIconAndInfoColor = customThemeWrapper.getPostIconAndInfoColor();
|
||||
|
||||
|
@ -7,6 +7,7 @@ import ml.docilealligator.infinityforreddit.Activity.AccountPostsActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.AccountSavedThingActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.CommentActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.CreateMultiRedditActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.CustomizeThemeActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.EditCommentActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.EditPostActivity;
|
||||
import ml.docilealligator.infinityforreddit.Activity.FilteredThingActivity;
|
||||
@ -140,4 +141,6 @@ public interface AppComponent {
|
||||
void inject(SubredditMultiselectionActivity subredditMultiselectionActivity);
|
||||
|
||||
void inject(ThemePreferenceFragment themePreferenceFragment);
|
||||
|
||||
void inject(CustomizeThemeActivity customizeThemeActivity);
|
||||
}
|
||||
|
@ -47,12 +47,14 @@ public class CustomTheme {
|
||||
public int bottomAppBarBackgroundColor;
|
||||
@ColumnInfo(name = "primary_icon_color")
|
||||
public int primaryIconColor;
|
||||
@ColumnInfo(name = "post_icon_and_info_color")
|
||||
public int postIconAndInfoColor;
|
||||
@ColumnInfo(name = "comment_icon_and_info_color")
|
||||
public int commentIconAndInfoColor;
|
||||
@ColumnInfo(name = "toolbar_primary_text_and_icon_color")
|
||||
public int toolbarPrimaryTextAndIconColor;
|
||||
@ColumnInfo(name = "toolbar_and_tab_background_color")
|
||||
public int toolbarAndTabBackgroundColor;
|
||||
@ColumnInfo(name = "toolbar_secondary_text_color")
|
||||
public int toolbarSecondaryTextColor;
|
||||
@ColumnInfo(name = "circular_progress_bar_background")
|
||||
public int circularProgressBarBackground;
|
||||
@ColumnInfo(name = "tab_layout_with_expanded_collapsing_toolbar_tab_background")
|
||||
@ -119,8 +121,8 @@ public class CustomTheme {
|
||||
public int dividerColor;
|
||||
@ColumnInfo(name = "no_preview_link_background_color")
|
||||
public int noPreviewLinkBackgroundColor;
|
||||
@ColumnInfo(name = "vote_and_reply_unavailable_vote_button_color")
|
||||
public int voteAndReplyUnavailableVoteButtonColor;
|
||||
@ColumnInfo(name = "vote_and_reply_unavailable_button_color")
|
||||
public int voteAndReplyUnavailableButtonColor;
|
||||
@ColumnInfo(name = "comment_vertical_bar_color_1")
|
||||
public int commentVerticalBarColor1;
|
||||
@ColumnInfo(name = "comment_vertical_bar_color_2")
|
||||
@ -140,11 +142,11 @@ public class CustomTheme {
|
||||
@ColumnInfo(name = "chip_text_color")
|
||||
public int chipTextColor;
|
||||
@ColumnInfo(name = "is_light_status_bar")
|
||||
public int isLightStatusBar;
|
||||
public boolean isLightStatusBar;
|
||||
@ColumnInfo(name = "is_light_nav_bar")
|
||||
public int isLightNavBar;
|
||||
public boolean isLightNavBar;
|
||||
@ColumnInfo(name = "is_change_status_bar_icon_color_after_toolbar_collapsed_in_immersive_interface")
|
||||
public int isChangeStatusBarIconColorAfterToolbarCollapsedInImmersiveInterface;
|
||||
public boolean isChangeStatusBarIconColorAfterToolbarCollapsedInImmersiveInterface;
|
||||
|
||||
public CustomTheme(@NonNull String name) {
|
||||
this.name = name;
|
||||
|
@ -16,6 +16,15 @@ public interface CustomThemeDao {
|
||||
@Query("SELECT * FROM custom_themes")
|
||||
LiveData<List<CustomTheme>> getAllCustomThemes();
|
||||
|
||||
@Query("SELECT * FROM custom_themes WHERE is_light_theme = 1 LIMIT 1")
|
||||
LiveData<CustomTheme> getLightCustomTheme();
|
||||
|
||||
@Query("SELECT * FROM custom_themes WHERE is_dark_theme = 1 LIMIT 1")
|
||||
LiveData<CustomTheme> getDarkCustomTheme();
|
||||
|
||||
@Query("SELECT * FROM custom_themes WHERE is_amoled_theme = 1 LIMIT 1")
|
||||
LiveData<CustomTheme> getAmoledCustomTheme();
|
||||
|
||||
@Query("SELECT * FROM custom_themes WHERE name = :name AND username = :username COLLATE NOCASE LIMIT 1")
|
||||
CustomTheme getCustomTheme(String name, String username);
|
||||
|
||||
|
@ -8,12 +8,30 @@ import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
|
||||
public class CustomThemeRepository {
|
||||
private LiveData<List<CustomTheme>> mAllCustomThemes;
|
||||
private LiveData<CustomTheme> mLightCustomTheme;
|
||||
private LiveData<CustomTheme> mDarkCustomTheme;
|
||||
private LiveData<CustomTheme> mAmoledCustomTheme;
|
||||
|
||||
CustomThemeRepository(RedditDataRoomDatabase redditDataRoomDatabase) {
|
||||
mAllCustomThemes = redditDataRoomDatabase.customThemeDao().getAllCustomThemes();
|
||||
mLightCustomTheme = redditDataRoomDatabase.customThemeDao().getLightCustomTheme();
|
||||
mDarkCustomTheme = redditDataRoomDatabase.customThemeDao().getDarkCustomTheme();
|
||||
mAmoledCustomTheme = redditDataRoomDatabase.customThemeDao().getAmoledCustomTheme();
|
||||
}
|
||||
|
||||
LiveData<List<CustomTheme>> getAllCustomThemes() {
|
||||
return mAllCustomThemes;
|
||||
}
|
||||
|
||||
public LiveData<CustomTheme> getLightCustomTheme() {
|
||||
return mLightCustomTheme;
|
||||
}
|
||||
|
||||
public LiveData<CustomTheme> getDarkCustomTheme() {
|
||||
return mDarkCustomTheme;
|
||||
}
|
||||
|
||||
public LiveData<CustomTheme> getAmoledCustomTheme() {
|
||||
return mAmoledCustomTheme;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,292 @@
|
||||
package ml.docilealligator.infinityforreddit.CustomTheme;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.R;
|
||||
|
||||
public class CustomThemeSettingsItem {
|
||||
public String itemName;
|
||||
public String itemDetails;
|
||||
public int colorValue;
|
||||
public boolean isEnabled;
|
||||
|
||||
private CustomThemeSettingsItem(String itemName, String itemDetails, int colorValue) {
|
||||
this.itemName = itemName;
|
||||
this.itemDetails = itemDetails;
|
||||
this.colorValue = colorValue;
|
||||
}
|
||||
|
||||
private CustomThemeSettingsItem(String itemName, boolean isEnabled) {
|
||||
this.itemName = itemName;
|
||||
this.isEnabled = isEnabled;
|
||||
}
|
||||
|
||||
public static ArrayList<CustomThemeSettingsItem> convertCustomTheme(Context context, CustomTheme customTheme) {
|
||||
ArrayList<CustomThemeSettingsItem> customThemeSettingsItems = new ArrayList<>();
|
||||
|
||||
if (customTheme == null) {
|
||||
return customThemeSettingsItems;
|
||||
}
|
||||
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_color_primary),
|
||||
context.getString(R.string.theme_item_color_primary_detail),
|
||||
customTheme.colorPrimary));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_color_primary_dark),
|
||||
context.getString(R.string.theme_item_color_primary_dark_detail),
|
||||
customTheme.colorPrimaryDark));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_color_accent),
|
||||
context.getString(R.string.theme_item_color_accent_detail),
|
||||
customTheme.colorAccent));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_color_primary_light_theme),
|
||||
context.getString(R.string.theme_item_color_primary_light_theme_detail),
|
||||
customTheme.colorPrimaryLightTheme));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_primary_text_color),
|
||||
context.getString(R.string.theme_item_primary_text_color_detail),
|
||||
customTheme.primaryTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_secondary_text_color),
|
||||
context.getString(R.string.theme_item_secondary_text_color_detail),
|
||||
customTheme.secondaryTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_post_title_color),
|
||||
context.getString(R.string.theme_item_post_title_color_detail),
|
||||
customTheme.postTitleColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_post_content_color),
|
||||
context.getString(R.string.theme_item_post_content_color_detail),
|
||||
customTheme.postContentColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_color),
|
||||
context.getString(R.string.theme_item_comment_color_detail),
|
||||
customTheme.commentColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_button_text_color),
|
||||
context.getString(R.string.theme_item_button_text_color_detail),
|
||||
customTheme.buttonTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_chip_text_color),
|
||||
context.getString(R.string.theme_item_chip_text_color_detail),
|
||||
customTheme.chipTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_background_color),
|
||||
context.getString(R.string.theme_item_background_color_detail),
|
||||
customTheme.backgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_card_view_background_color),
|
||||
context.getString(R.string.theme_item_card_view_background_color_detail),
|
||||
customTheme.cardViewBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_background_color),
|
||||
context.getString(R.string.theme_item_comment_background_color_detail),
|
||||
customTheme.commentBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_bottom_app_bar_background_color),
|
||||
context.getString(R.string.theme_item_bottom_app_bar_background_color_detail),
|
||||
customTheme.bottomAppBarBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_primary_icon_color),
|
||||
context.getString(R.string.theme_item_primary_icon_color_detail),
|
||||
customTheme.primaryIconColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_post_icon_and_info_color),
|
||||
context.getString(R.string.theme_item_post_icon_and_info_color_detail),
|
||||
customTheme.postIconAndInfoColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_icon_and_info_color),
|
||||
context.getString(R.string.theme_item_comment_icon_and_info_color_detail),
|
||||
customTheme.commentIconAndInfoColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_fab_icon_color),
|
||||
context.getString(R.string.theme_item_fab_icon_color_detail),
|
||||
customTheme.fabIconColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_toolbar_primary_text_and_icon_color),
|
||||
context.getString(R.string.theme_item_toolbar_primary_text_and_icon_color_detail),
|
||||
customTheme.toolbarPrimaryTextAndIconColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_toolbar_secondary_text_color),
|
||||
context.getString(R.string.theme_item_toolbar_secondary_text_color_detail),
|
||||
customTheme.toolbarSecondaryTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_circular_progress_bar_background_color),
|
||||
context.getString(R.string.theme_item_circular_progress_bar_background_color_detail),
|
||||
customTheme.circularProgressBarBackground));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_background),
|
||||
context.getString(R.string.theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_background_detail),
|
||||
customTheme.tabLayoutWithExpandedCollapsingToolbarTabBackground));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_tab_layout_with_expanded_collapsing_toolbar_text_color),
|
||||
context.getString(R.string.theme_item_tab_layout_with_expanded_collapsing_toolbar_text_color_detail),
|
||||
customTheme.tabLayoutWithExpandedCollapsingToolbarTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_indicator),
|
||||
context.getString(R.string.theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_indicator_detail),
|
||||
customTheme.tabLayoutWithExpandedCollapsingToolbarTabIndicator));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_background),
|
||||
context.getString(R.string.theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_background_detail),
|
||||
customTheme.tabLayoutWithCollapsedCollapsingToolbarTabBackground));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_tab_layout_with_collapsed_collapsing_toolbar_text_color),
|
||||
context.getString(R.string.theme_item_tab_layout_with_collapsed_collapsing_toolbar_text_color_detail),
|
||||
customTheme.tabLayoutWithCollapsedCollapsingToolbarTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_indicator),
|
||||
context.getString(R.string.theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_indicator_detail),
|
||||
customTheme.tabLayoutWithCollapsedCollapsingToolbarTabIndicator));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_upvoted_color),
|
||||
context.getString(R.string.theme_item_upvoted_color_detail),
|
||||
customTheme.upvoted));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_downvoted_color),
|
||||
context.getString(R.string.theme_item_downvoted_color_detail),
|
||||
customTheme.downvoted));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_post_type_background_color),
|
||||
context.getString(R.string.theme_item_post_type_background_color_detail),
|
||||
customTheme.postTypeBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_post_type_text_color),
|
||||
context.getString(R.string.theme_item_post_type_text_color_detail),
|
||||
customTheme.postTypeTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_spoiler_background_color),
|
||||
context.getString(R.string.theme_item_spoiler_background_color_detail),
|
||||
customTheme.spoilerBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_spoiler_text_color),
|
||||
context.getString(R.string.theme_item_spoiler_text_color_detail),
|
||||
customTheme.spoilerTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_nsfw_background_color),
|
||||
context.getString(R.string.theme_item_nsfw_background_color_detail),
|
||||
customTheme.nsfwBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_nsfw_text_color),
|
||||
context.getString(R.string.theme_item_nsfw_text_color_detail),
|
||||
customTheme.nsfwTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_flair_background_color),
|
||||
context.getString(R.string.theme_item_flair_background_color_detail),
|
||||
customTheme.flairBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_flair_text_color),
|
||||
context.getString(R.string.theme_item_flair_text_color_detail),
|
||||
customTheme.flairTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_archived_tint),
|
||||
context.getString(R.string.theme_item_archived_tint_detail),
|
||||
customTheme.archivedTint));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_locked_icon_tint),
|
||||
context.getString(R.string.theme_item_locked_icon_tint_detail),
|
||||
customTheme.lockedIconTint));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_crosspost_icon_tint),
|
||||
context.getString(R.string.theme_item_crosspost_icon_tint_detail),
|
||||
customTheme.crosspostIconTint));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_stickied_post_icon_tint),
|
||||
context.getString(R.string.theme_item_stickied_post_icon_tint_detail),
|
||||
customTheme.stickiedPostIconTint));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_subscribed_color),
|
||||
context.getString(R.string.theme_item_subscribed_color_detail),
|
||||
customTheme.subscribed));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_unsubscribed_color),
|
||||
context.getString(R.string.theme_item_unsubscribed_color_detail),
|
||||
customTheme.unsubscribed));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_username_color),
|
||||
context.getString(R.string.theme_item_username_color_detail),
|
||||
customTheme.username));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_subreddit_color),
|
||||
context.getString(R.string.theme_item_subreddit_color_detail),
|
||||
customTheme.subreddit));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_author_flair_text_color),
|
||||
context.getString(R.string.theme_item_author_flair_text_color_detail),
|
||||
customTheme.authorFlairTextColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_submitter_color),
|
||||
context.getString(R.string.theme_item_submitter_color_detail),
|
||||
customTheme.submitter));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_moderator_color),
|
||||
context.getString(R.string.theme_item_moderator_color_detail),
|
||||
customTheme.moderator));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_single_comment_thread_background_color),
|
||||
context.getString(R.string.theme_item_single_comment_thread_background_color_detail),
|
||||
customTheme.singleCommentThreadBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_unread_message_background_color),
|
||||
context.getString(R.string.theme_item_unread_message_background_color_detail),
|
||||
customTheme.unreadMessageBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_divider_color),
|
||||
context.getString(R.string.theme_item_divider_color_detail),
|
||||
customTheme.dividerColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_no_preview_link_background_color),
|
||||
context.getString(R.string.theme_item_no_preview_link_background_color_detail),
|
||||
customTheme.noPreviewLinkBackgroundColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_vote_and_reply_unavailable_button_color),
|
||||
context.getString(R.string.theme_item_vote_and_reply_unavailable_button_color_detail),
|
||||
customTheme.voteAndReplyUnavailableButtonColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_1),
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_1_detail),
|
||||
customTheme.commentVerticalBarColor1));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_2),
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_2_detail),
|
||||
customTheme.commentVerticalBarColor2));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_3),
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_3_detail),
|
||||
customTheme.commentVerticalBarColor3));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_4),
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_4_detail),
|
||||
customTheme.commentVerticalBarColor4));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_5),
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_5_detail),
|
||||
customTheme.commentVerticalBarColor5));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_6),
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_6_detail),
|
||||
customTheme.commentVerticalBarColor6));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_7),
|
||||
context.getString(R.string.theme_item_comment_vertical_bar_color_7_detail),
|
||||
customTheme.commentVerticalBarColor7));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_nav_bar_color),
|
||||
context.getString(R.string.theme_item_nav_bar_color_detail),
|
||||
customTheme.navBarColor));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_light_status_bar),
|
||||
customTheme.isLightStatusBar));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_light_nav_bar),
|
||||
customTheme.isLightNavBar));
|
||||
customThemeSettingsItems.add(new CustomThemeSettingsItem(
|
||||
context.getString(R.string.theme_item_change_status_bar_icon_color_after_toolbar_collapsed_in_immersive_interface),
|
||||
customTheme.isChangeStatusBarIconColorAfterToolbarCollapsedInImmersiveInterface));
|
||||
return customThemeSettingsItems;
|
||||
}
|
||||
}
|
@ -11,15 +11,34 @@ import ml.docilealligator.infinityforreddit.RedditDataRoomDatabase;
|
||||
|
||||
public class CustomThemeViewModel extends ViewModel {
|
||||
private LiveData<List<CustomTheme>> mAllCustomThemes;
|
||||
private LiveData<CustomTheme> mLightCustomTheme;
|
||||
private LiveData<CustomTheme> mDarkCustomTheme;
|
||||
private LiveData<CustomTheme> mAmoledCustomTheme;
|
||||
|
||||
public CustomThemeViewModel(RedditDataRoomDatabase redditDataRoomDatabase) {
|
||||
mAllCustomThemes = new CustomThemeRepository(redditDataRoomDatabase).getAllCustomThemes();
|
||||
CustomThemeRepository customThemeRepository = new CustomThemeRepository(redditDataRoomDatabase);
|
||||
mAllCustomThemes = customThemeRepository.getAllCustomThemes();
|
||||
mLightCustomTheme = customThemeRepository.getLightCustomTheme();
|
||||
mDarkCustomTheme = customThemeRepository.getDarkCustomTheme();
|
||||
mAmoledCustomTheme = customThemeRepository.getAmoledCustomTheme();
|
||||
}
|
||||
|
||||
public LiveData<List<CustomTheme>> getAllCustomThemes() {
|
||||
return mAllCustomThemes;
|
||||
}
|
||||
|
||||
public LiveData<CustomTheme> getLightCustomTheme() {
|
||||
return mLightCustomTheme;
|
||||
}
|
||||
|
||||
public LiveData<CustomTheme> getDarkCustomTheme() {
|
||||
return mDarkCustomTheme;
|
||||
}
|
||||
|
||||
public LiveData<CustomTheme> getAmoledCustomTheme() {
|
||||
return mAmoledCustomTheme;
|
||||
}
|
||||
|
||||
public static class Factory extends ViewModelProvider.NewInstanceFactory {
|
||||
private RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||
|
||||
|
@ -138,9 +138,9 @@ public class CustomThemeWrapper {
|
||||
getDefaultColor("#FFFFFF", "#FFFFFF", "#FFFFFF"));
|
||||
}
|
||||
|
||||
public int getToolbarAndTabBackgroundColor() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.TOOLBAR_AND_TAB_BACKGROUND_COLOR,
|
||||
getDefaultColor("#1565C0", "#282828", "#000000"));
|
||||
public int getToolbarSecondaryTextColor() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.TOOLBAR_SECONDARY_TEXT_COLOR,
|
||||
getDefaultColor("#FFFFFF", "#FFFFFF", "#FFFFFF"));
|
||||
}
|
||||
|
||||
public int getCircularProgressBarBackground() {
|
||||
@ -178,11 +178,6 @@ public class CustomThemeWrapper {
|
||||
getDefaultColor("#FFFFFF", "#FFFFFF", "#FFFFFF"));
|
||||
}
|
||||
|
||||
public int getNavBarColor() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.NAV_BAR_COLOR,
|
||||
getDefaultColor("#FFFFFF", "#121212", "#000000"));
|
||||
}
|
||||
|
||||
public int getUpvoted() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.UPVOTED,
|
||||
getDefaultColor("#E91E63", "#E91E63", "#E91E63"));
|
||||
@ -233,8 +228,8 @@ public class CustomThemeWrapper {
|
||||
getDefaultColor("#FFFFFF", "#FFFFFF", "#FFFFFF"));
|
||||
}
|
||||
|
||||
public int getArchivedTint() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.ARCHIVED_TINT,
|
||||
public int getArchivedIconTint() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.ARCHIVED_ICON_TINT,
|
||||
getDefaultColor("#B4009F", "#B4009F", "#B4009F"));
|
||||
}
|
||||
|
||||
@ -308,8 +303,8 @@ public class CustomThemeWrapper {
|
||||
getDefaultColor("#E0E0E0", "#424242", "#424242"));
|
||||
}
|
||||
|
||||
public int getVoteAndReplyUnavailableVoteButtonColor() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.VOTE_AND_REPLY_UNAVAILABLE_VOTE_BUTTON_COLOR,
|
||||
public int getVoteAndReplyUnavailableButtonColor() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.VOTE_AND_REPLY_UNAVAILABLE_BUTTON_COLOR,
|
||||
getDefaultColor("#F0F0F0", "#3C3C3C", "#3C3C3C"));
|
||||
}
|
||||
|
||||
@ -358,6 +353,11 @@ public class CustomThemeWrapper {
|
||||
getDefaultColor("#FFFFFF", "#FFFFFF", "#FFFFFF"));
|
||||
}
|
||||
|
||||
public int getNavBarColor() {
|
||||
return getThemeSharedPreferences().getInt(CustomThemeSharedPreferencesUtils.NAV_BAR_COLOR,
|
||||
getDefaultColor("#FFFFFF", "#121212", "#000000"));
|
||||
}
|
||||
|
||||
public boolean isLightStatusBar() {
|
||||
return getThemeSharedPreferences().getBoolean(CustomThemeSharedPreferencesUtils.LIGHT_STATUS_BAR, false);
|
||||
}
|
||||
|
@ -125,8 +125,9 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
||||
"button_text_color INTEGER NOT NULL, background_color INTEGER NOT NULL," +
|
||||
"card_view_background_color INTEGER NOT NULL, comment_background_color INTEGER NOT NULL," +
|
||||
"bottom_app_bar_background_color INTEGER NOT NULL, primary_icon_color INTEGER NOT NULL," +
|
||||
"post_icon_and_info_color INTEGER NOT NULL," +
|
||||
"comment_icon_and_info_color INTEGER NOT NULL, toolbar_primary_text_and_icon_color INTEGER NOT NULL," +
|
||||
"toolbar_and_tab_background_color INTEGER NOT NULL, circular_progress_bar_background INTEGER NOT NULL," +
|
||||
"toolbar_secondary_text_color INTEGER NOT NULL, circular_progress_bar_background INTEGER NOT NULL," +
|
||||
"tab_layout_with_expanded_collapsing_toolbar_tab_background INTEGER NOT NULL," +
|
||||
"tab_layout_with_expanded_collapsing_toolbar_text_color INTEGER NOT NULL," +
|
||||
"tab_layout_with_expanded_collapsing_toolbar_tab_indicator INTEGER NOT NULL," +
|
||||
@ -146,7 +147,7 @@ public abstract class RedditDataRoomDatabase extends RoomDatabase {
|
||||
"single_comment_thread_background_color INTEGER NOT NULL," +
|
||||
"unread_message_background_color INTEGER NOT NULL, divider_color INTEGER NOT NULL," +
|
||||
"no_preview_link_background_color INTEGER NOT NULL," +
|
||||
"vote_and_reply_unavailable_vote_button_color INTEGER NOT NULL," +
|
||||
"vote_and_reply_unavailable_button_color INTEGER NOT NULL," +
|
||||
"comment_vertical_bar_color_1 INTEGER NOT NULL, comment_vertical_bar_color_2 INTEGER NOT NULL," +
|
||||
"comment_vertical_bar_color_3 INTEGER NOT NULL, comment_vertical_bar_color_4 INTEGER NOT NULL," +
|
||||
"comment_vertical_bar_color_5 INTEGER NOT NULL, comment_vertical_bar_color_6 INTEGER NOT NULL," +
|
||||
|
@ -1,15 +1,17 @@
|
||||
package ml.docilealligator.infinityforreddit.Settings;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.appcompat.app.AppCompatDelegate;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.preference.ListPreference;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.SwitchPreference;
|
||||
|
||||
@ -17,6 +19,7 @@ import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import ml.docilealligator.infinityforreddit.Activity.CustomizeThemeActivity;
|
||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||
import ml.docilealligator.infinityforreddit.Event.RecreateActivityEvent;
|
||||
import ml.docilealligator.infinityforreddit.Infinity;
|
||||
@ -34,7 +37,7 @@ import static androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_YES;
|
||||
*/
|
||||
public class ThemePreferenceFragment extends PreferenceFragmentCompat {
|
||||
|
||||
private Activity activity;
|
||||
private AppCompatActivity activity;
|
||||
@Inject
|
||||
CustomThemeWrapper customThemeWrapper;
|
||||
|
||||
@ -46,6 +49,9 @@ public class ThemePreferenceFragment extends PreferenceFragmentCompat {
|
||||
|
||||
ListPreference themePreference = findPreference(SharedPreferencesUtils.THEME_KEY);
|
||||
SwitchPreference amoledDarkSwitch = findPreference(SharedPreferencesUtils.AMOLED_DARK_KEY);
|
||||
Preference customizeLightThemePreference = findPreference(SharedPreferencesUtils.CUSTOMIZE_LIGHT_THEME);
|
||||
Preference customizeDarkThemePreference = findPreference(SharedPreferencesUtils.CUSTOMIZE_DARK_THEME);
|
||||
Preference customizeAmoledThemePreference = findPreference(SharedPreferencesUtils.CUSTOMIZE_AMOLED_THEME);
|
||||
|
||||
boolean systemDefault = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q;
|
||||
if (themePreference != null && amoledDarkSwitch != null) {
|
||||
@ -100,11 +106,38 @@ public class ThemePreferenceFragment extends PreferenceFragmentCompat {
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
if (customizeLightThemePreference != null) {
|
||||
customizeLightThemePreference.setOnPreferenceClickListener(preference -> {
|
||||
Intent intent = new Intent(activity, CustomizeThemeActivity.class);
|
||||
intent.putExtra(CustomizeThemeActivity.EXTRA_THEME_TYPE, CustomizeThemeActivity.EXTRA_LIGHT_THEME);
|
||||
startActivity(intent);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (customizeDarkThemePreference != null) {
|
||||
customizeDarkThemePreference.setOnPreferenceClickListener(preference -> {
|
||||
Intent intent = new Intent(activity, CustomizeThemeActivity.class);
|
||||
intent.putExtra(CustomizeThemeActivity.EXTRA_THEME_TYPE, CustomizeThemeActivity.EXTRA_DARK_THEME);
|
||||
startActivity(intent);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (customizeAmoledThemePreference != null) {
|
||||
customizeAmoledThemePreference.setOnPreferenceClickListener(preference -> {
|
||||
Intent intent = new Intent(activity, CustomizeThemeActivity.class);
|
||||
intent.putExtra(CustomizeThemeActivity.EXTRA_THEME_TYPE, CustomizeThemeActivity.EXTRA_AMOLED_THEME);
|
||||
startActivity(intent);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull Context context) {
|
||||
super.onAttach(context);
|
||||
activity = (Activity) context;
|
||||
activity = (AppCompatActivity) context;
|
||||
}
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ public class CustomThemeSharedPreferencesUtils {
|
||||
public static final String POST_ICON_AND_INFO_COLOR = "postIconAndInfoColor";
|
||||
public static final String COMMENT_ICON_AND_INFO_COLOR = "commentIconAndInfoColor";
|
||||
public static final String TOOLBAR_PRIMARY_TEXT_AND_ICON_COLOR = "toolbarPrimaryTextAndIconColor";
|
||||
public static final String TOOLBAR_AND_TAB_BACKGROUND_COLOR = "toolbarAndTabBackgroundColor";
|
||||
public static final String TOOLBAR_SECONDARY_TEXT_COLOR = "toolbarSecondaryTextColor";
|
||||
public static final String CIRCULAR_PROGRESS_BAR_BACKGROUND = "circularProgressBarBackground";
|
||||
public static final String TAB_LAYOUT_WITH_EXPANDED_COLLAPSING_TOOLBAR_TAB_BACKGROUND = "tabLayoutWithExpandedCollapsingToolbarTabBackground";
|
||||
public static final String TAB_LAYOUT_WITH_EXPANDED_COLLAPSING_TOOLBAR_TEXT_COLOR = "tabLayoutWithExpandedCollapsingToolbarTextColor";
|
||||
@ -47,7 +47,7 @@ public class CustomThemeSharedPreferencesUtils {
|
||||
public static final String NSFW_TEXT_COLOR = "nsfwTextColor";
|
||||
public static final String FLAIR_BACKGROUND_COLOR = "flairBackgroundColor";
|
||||
public static final String FLAIR_TEXT_COLOR = "flairTextColor";
|
||||
public static final String ARCHIVED_TINT = "archivedTint";
|
||||
public static final String ARCHIVED_ICON_TINT = "archivedIconTint";
|
||||
public static final String LOCKED_ICON_TINT = "lockedIconTint";
|
||||
public static final String CROSSPOST_ICON_TINT = "crosspostIconTint";
|
||||
public static final String STICKIED_POST_ICON_TINT = "stickiedPost";
|
||||
@ -62,7 +62,7 @@ public class CustomThemeSharedPreferencesUtils {
|
||||
public static final String UNREAD_MESSAGE_BACKGROUND_COLOR = "unreadMessageBackgroundColor";
|
||||
public static final String DIVIDER_COLOR = "dividerColor";
|
||||
public static final String NO_PREVIEW_LINK_BACKGROUND_COLOR = "noPreviewLinkBackgroundColor";
|
||||
public static final String VOTE_AND_REPLY_UNAVAILABLE_VOTE_BUTTON_COLOR = "voteAndReplyUnavailableVoteButtonColor";
|
||||
public static final String VOTE_AND_REPLY_UNAVAILABLE_BUTTON_COLOR = "voteAndReplyUnavailableButtonColor";
|
||||
public static final String COMMENT_VERTICAL_BAR_COLOR_1 = "commentVerticalBarColor1";
|
||||
public static final String COMMENT_VERTICAL_BAR_COLOR_2 = "commentVerticalBarColor2";
|
||||
public static final String COMMENT_VERTICAL_BAR_COLOR_3 = "commentVerticalBarColor3";
|
||||
|
@ -77,4 +77,7 @@ public class SharedPreferencesUtils {
|
||||
public static final String LOCK_BOTTOM_APP_BAR = "lock_bottom_app_bar";
|
||||
public static final String SHOW_COMMENT_DIVIDER = "show_comment_divider";
|
||||
public static final String SHOW_ABSOLUTE_NUMBER_OF_VOTES = "show_absolute_number_of_votes";
|
||||
public static final String CUSTOMIZE_LIGHT_THEME = "customize_light_theme";
|
||||
public static final String CUSTOMIZE_DARK_THEME = "customize_dark_theme";
|
||||
public static final String CUSTOMIZE_AMOLED_THEME = "customize_amoled_theme";
|
||||
}
|
||||
|
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:pathData="M12.7,4.91C15.25,6.24 17,8.92 17,12s-1.75,5.76 -4.3,7.09c1.46,-2 2.3,-4.46 2.3,-7.09s-0.84,-5.09 -2.3,-7.09M9,2c-1.05,0 -2.05,0.16 -3,0.46 4.06,1.27 7,5.06 7,9.54s-2.94,8.27 -7,9.54c0.95,0.3 1.95,0.46 3,0.46 5.52,0 10,-4.48 10,-10S14.52,2 9,2z"/>
|
||||
</vector>
|
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:pathData="M20,8.69L20,4h-4.69L12,0.69 8.69,4L4,4v4.69L0.69,12 4,15.31L4,20h4.69L12,23.31 15.31,20L20,20v-4.69L23.31,12 20,8.69zM18,14.48L18,18h-3.52L12,20.48 9.52,18L6,18v-3.52L3.52,12 6,9.52L6,6h3.52L12,3.52 14.48,6L18,6v3.52L20.48,12 18,14.48zM12,6.5c-3.03,0 -5.5,2.47 -5.5,5.5s2.47,5.5 5.5,5.5 5.5,-2.47 5.5,-5.5 -2.47,-5.5 -5.5,-5.5zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
|
||||
</vector>
|
4
app/src/main/res/drawable/circular_background.xml
Normal file
4
app/src/main/res/drawable/circular_background.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
|
||||
<size android:width="24dp" android:height="24dp"/>
|
||||
</shape>
|
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M12.7,4.91C15.25,6.24 17,8.92 17,12s-1.75,5.76 -4.3,7.09c1.46,-2 2.3,-4.46 2.3,-7.09s-0.84,-5.09 -2.3,-7.09M9,2c-1.05,0 -2.05,0.16 -3,0.46 4.06,1.27 7,5.06 7,9.54s-2.94,8.27 -7,9.54c0.95,0.3 1.95,0.46 3,0.46 5.52,0 10,-4.48 10,-10S14.52,2 9,2z"/>
|
||||
</vector>
|
@ -0,0 +1,9 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M20,8.69L20,4h-4.69L12,0.69 8.69,4L4,4v4.69L0.69,12 4,15.31L4,20h4.69L12,23.31 15.31,20L20,20v-4.69L23.31,12 20,8.69zM18,14.48L18,18h-3.52L12,20.48 9.52,18L6,18v-3.52L3.52,12 6,9.52L6,6h3.52L12,3.52 14.48,6L18,6v3.52L20.48,12 18,14.48zM12,6.5c-3.03,0 -5.5,2.47 -5.5,5.5s2.47,5.5 5.5,5.5 5.5,-2.47 5.5,-5.5 -2.47,-5.5 -5.5,-5.5zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"/>
|
||||
</vector>
|
41
app/src/main/res/layout/activity_customize_theme.xml
Normal file
41
app/src/main/res/layout/activity_customize_theme.xml
Normal file
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".Activity.CustomizeThemeActivity">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/appbar_layout_customize_theme_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?attr/toolbarAndTabBackgroundColor"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<com.google.android.material.appbar.CollapsingToolbarLayout
|
||||
android:id="@+id/collapsing_toolbar_layout_customize_theme_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_scrollFlags="scroll|enterAlways"
|
||||
app:titleEnabled="false"
|
||||
app:toolbarId="@+id/toolbar_customize_theme_activity">
|
||||
|
||||
<androidx.appcompat.widget.Toolbar
|
||||
android:id="@+id/toolbar_customize_theme_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay"
|
||||
app:navigationIcon="?attr/homeAsUpIndicator" />
|
||||
|
||||
</com.google.android.material.appbar.CollapsingToolbarLayout>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycler_view_customize_theme_activity"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||
|
||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
@ -2,7 +2,6 @@
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:id="@+id/coordinator_layout_settings_activity"
|
||||
android:background="?attr/backgroundColor">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
|
33
app/src/main/res/layout/item_theme_color_item.xml
Normal file
33
app/src/main/res/layout/item_theme_color_item.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<View
|
||||
android:id="@+id/color_image_view_item_theme_color_item"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="@drawable/circular_background"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/theme_item_name_text_view_item_theme_color_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/color_image_view_item_theme_color_item"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/theme_item_info_text_view_item_theme_color_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/theme_item_name_text_view_item_theme_color_item"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/color_image_view_item_theme_color_item"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
32
app/src/main/res/layout/item_theme_switch_item.xml
Normal file
32
app/src/main/res/layout/item_theme_switch_item.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/theme_item_name_text_view_item_theme_switch_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/theme_item_info_text_view_item_theme_switch_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/theme_item_name_text_view_item_theme_switch_item"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/theme_item_switch_item_theme_switch_item" />
|
||||
|
||||
<Switch
|
||||
android:id="@+id/theme_item_switch_item_theme_switch_item"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -357,6 +357,10 @@
|
||||
<string name="settings_subreddit_summary">r/Infinity_For_Reddit</string>
|
||||
<string name="settings_share_title">Share</string>
|
||||
<string name="settings_share_summary">Share this app to other people if you enjoy it</string>
|
||||
<string name="settings_category_customization_title">Customization</string>
|
||||
<string name="settings_customize_light_theme_title">Light Theme</string>
|
||||
<string name="settings_customize_dark_theme_title">Dark Theme</string>
|
||||
<string name="settings_customize_amoled_theme_title">Amoled Theme</string>
|
||||
|
||||
<string name="no_link_available">Cannot get the link</string>
|
||||
|
||||
@ -460,6 +464,138 @@
|
||||
<string name="save_image_before_sharing">Saving the image. Please wait.</string>
|
||||
<string name="save_gif_before_sharing">Saving the gif. Please wait.</string>
|
||||
|
||||
<!-- TODO: Remove or change this placeholder text -->
|
||||
<string name="hello_blank_fragment">Hello blank fragment</string>
|
||||
<string name="customize_light_theme_fragment_title">Customize Light Theme</string>
|
||||
<string name="customize_dark_theme_fragment_title">Customize Dark Theme</string>
|
||||
<string name="customize_amoled_theme_fragment_title">Customize Amoled Theme</string>
|
||||
|
||||
<string name="theme_item_color_primary">Color Primary</string>
|
||||
<string name="theme_item_color_primary_detail">Applied to: Toolbar</string>
|
||||
<string name="theme_item_color_primary_dark">Color Primary Dark</string>
|
||||
<string name="theme_item_color_primary_dark_detail">Applied to: Status Bar</string>
|
||||
<string name="theme_item_color_accent">Color Accent</string>
|
||||
<string name="theme_item_color_accent_detail">Applied to: Progress Bar, etc</string>
|
||||
<string name="theme_item_color_primary_light_theme">Color Primary Light Theme</string>
|
||||
<string name="theme_item_color_primary_light_theme_detail">Has effect only when this theme is set as light theme.\nApplied to: background of Floating Action Button and Button</string>
|
||||
<string name="theme_item_primary_text_color">Primary Text Color</string>
|
||||
<string name="theme_item_primary_text_color_detail">Applied to: Primary text</string>
|
||||
<string name="theme_item_secondary_text_color">Secondary Text Color</string>
|
||||
<string name="theme_item_secondary_text_color_detail">Applied to: Secondary text</string>
|
||||
<string name="theme_item_post_title_color">Post Title Color</string>
|
||||
<string name="theme_item_post_title_color_detail">Applied to: Post title</string>
|
||||
<string name="theme_item_post_content_color">Post Content Color</string>
|
||||
<string name="theme_item_post_content_color_detail">Applied to: Post content</string>
|
||||
<string name="theme_item_comment_color">Comment Color</string>
|
||||
<string name="theme_item_comment_color_detail">Applied to: Comment</string>
|
||||
<string name="theme_item_button_text_color">Button Text Color</string>
|
||||
<string name="theme_item_button_text_color_detail">Applied to: Text on button</string>
|
||||
<string name="theme_item_chip_text_color">Chip Text Color</string>
|
||||
<string name="theme_item_chip_text_color_detail">Applied to: Subscribe Button</string>
|
||||
<string name="theme_item_background_color">Background Color</string>
|
||||
<string name="theme_item_background_color_detail">Applied to: Background of every page and navigation drawer</string>
|
||||
<string name="theme_item_card_view_background_color">Card View Background Color</string>
|
||||
<string name="theme_item_card_view_background_color_detail">Applied to: Post background and message background</string>
|
||||
<string name="theme_item_comment_background_color">Comment Background Color</string>
|
||||
<string name="theme_item_comment_background_color_detail">Applied to: Comment background</string>
|
||||
<string name="theme_item_bottom_app_bar_background_color">Bottom Navigation Bar Color</string>
|
||||
<string name="theme_item_bottom_app_bar_background_color_detail">Applied to: Bottom navigation bar</string>
|
||||
<string name="theme_item_primary_icon_color">Primary Icon Color</string>
|
||||
<string name="theme_item_primary_icon_color_detail">Applied to: Icons in the bottom navigation bar and the navigation drawer.</string>
|
||||
<string name="theme_item_post_icon_and_info_color">Post Icon and Info Color</string>
|
||||
<string name="theme_item_post_icon_and_info_color_detail">Applied to: Icons, score and the number of comments in posts</string>
|
||||
<string name="theme_item_comment_icon_and_info_color">Comment Icon and Info Color</string>
|
||||
<string name="theme_item_comment_icon_and_info_color_detail">Applied to: Icons and score in comments</string>
|
||||
<string name="theme_item_fab_icon_color">Floating Action Button Icon Color</string>
|
||||
<string name="theme_item_fab_icon_color_detail">Applied to: Floating action button icon</string>
|
||||
<string name="theme_item_toolbar_primary_text_and_icon_color">Toolbar Primary Text and Icon Color</string>
|
||||
<string name="theme_item_toolbar_primary_text_and_icon_color_detail">Applied to: Primary texts and icons in toolbars</string>
|
||||
<string name="theme_item_toolbar_secondary_text_color">Toolbar Secondary Text Color</string>
|
||||
<string name="theme_item_toolbar_secondary_text_color_detail">Applied to: Secondary texts in toolbars</string>
|
||||
<string name="theme_item_circular_progress_bar_background_color">Circular Progress Bar Background Color</string>
|
||||
<string name="theme_item_circular_progress_bar_background_color_detail">Applied to: Background of Circular progress bar</string>
|
||||
<string name="theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_background">Background Color of Tab Layout in Expanded Toolbar</string>
|
||||
<string name="theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_background_detail">Applied to: Tab layout background (expanded toolbar)</string>
|
||||
<string name="theme_item_tab_layout_with_expanded_collapsing_toolbar_text_color">Text Color of Tab Layout in Expanded Toolbar</string>
|
||||
<string name="theme_item_tab_layout_with_expanded_collapsing_toolbar_text_color_detail">Applied to: Tab layout text color (expanded toolbar)</string>
|
||||
<string name="theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_indicator">Tab Indicator Color of Tab Layout in Expanded Toolbar</string>
|
||||
<string name="theme_item_tab_layout_with_expanded_collapsing_toolbar_tab_indicator_detail">Applied to: Tab indicator color in tab layout (expanded toolbar)</string>
|
||||
<string name="theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_background">Background Color of Tab Layout in Collapsed Toolbar</string>
|
||||
<string name="theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_background_detail">Applied to: Tab layout background (collapsed toolbar)</string>
|
||||
<string name="theme_item_tab_layout_with_collapsed_collapsing_toolbar_text_color">Text Color of Tab Layout in Collapsed Toolbar</string>
|
||||
<string name="theme_item_tab_layout_with_collapsed_collapsing_toolbar_text_color_detail">Applied to: Tab layout text color (collapsed toolbar)</string>
|
||||
<string name="theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_indicator">Tab Indicator Color of Tab Layout in Collapsed Toolbar</string>
|
||||
<string name="theme_item_tab_layout_with_collapsed_collapsing_toolbar_tab_indicator_detail">Applied to: Tab indicator color in tab layout (collapsed toolbar)</string>
|
||||
<string name="theme_item_upvoted_color">Upvoted Color</string>
|
||||
<string name="theme_item_upvoted_color_detail">Applied to: Vote buttons and scores (upvoted)</string>
|
||||
<string name="theme_item_downvoted_color">Downvoted Color</string>
|
||||
<string name="theme_item_downvoted_color_detail">Applied to: Vote buttons and scores (downvoted)</string>
|
||||
<string name="theme_item_post_type_background_color">Post Type Background Color</string>
|
||||
<string name="theme_item_post_type_background_color_detail">Applied to: Background of the post type (IMAGE, TEXT, VIDEO, GIF, LINK)</string>
|
||||
<string name="theme_item_post_type_text_color">Post Type Text Color</string>
|
||||
<string name="theme_item_post_type_text_color_detail">Applied to: Text color of the post type (IMAGE, TEXT, VIDEO, GIF LINK)</string>
|
||||
<string name="theme_item_spoiler_background_color">Spoiler Background Color</string>
|
||||
<string name="theme_item_spoiler_background_color_detail">Applied to: Background of the spoiler tag</string>
|
||||
<string name="theme_item_spoiler_text_color">Spoiler Text Color</string>
|
||||
<string name="theme_item_spoiler_text_color_detail">Applied to: Text color in the spoiler tag</string>
|
||||
<string name="theme_item_nsfw_background_color">NSFW Background Color</string>
|
||||
<string name="theme_item_nsfw_background_color_detail">Applied to: Background of the NSFW tag</string>
|
||||
<string name="theme_item_nsfw_text_color">NSFW text color</string>
|
||||
<string name="theme_item_nsfw_text_color_detail">Applied to: Text color of the NSFW tag</string>
|
||||
<string name="theme_item_flair_background_color">Flair Background Color</string>
|
||||
<string name="theme_item_flair_background_color_detail">Applied to: Background of the flair tag</string>
|
||||
<string name="theme_item_flair_text_color">Flair Text Color</string>
|
||||
<string name="theme_item_flair_text_color_detail">Applied to: Text color of the flair tag</string>
|
||||
<string name="theme_item_archived_tint">Archived Icon Color</string>
|
||||
<string name="theme_item_archived_tint_detail">Applied to: Archived icon</string>
|
||||
<string name="theme_item_locked_icon_tint">Locked Icon Color</string>
|
||||
<string name="theme_item_locked_icon_tint_detail">Applied to: Locked icon</string>
|
||||
<string name="theme_item_crosspost_icon_tint">Crosspost Icon Color</string>
|
||||
<string name="theme_item_crosspost_icon_tint_detail">Applied to: Crosspost icon</string>
|
||||
<string name="theme_item_stickied_post_icon_tint">Stickied Post Icon Color</string>
|
||||
<string name="theme_item_stickied_post_icon_tint_detail">Applied to: Stickied post icon</string>
|
||||
<string name="theme_item_subscribed_color">Subscribed</string>
|
||||
<string name="theme_item_subscribed_color_detail">Applied to: Unsubscribe button</string>
|
||||
<string name="theme_item_unsubscribed_color">Unsubscribed</string>
|
||||
<string name="theme_item_unsubscribed_color_detail">Applied to: Sbscribe button</string>
|
||||
<string name="theme_item_username_color">Username Color</string>
|
||||
<string name="theme_item_username_color_detail">Applied to: Username</string>
|
||||
<string name="theme_item_subreddit_color">Subreddit Color</string>
|
||||
<string name="theme_item_subreddit_color_detail">Applied to: Subreddit name</string>
|
||||
<string name="theme_item_author_flair_text_color">Author Flair Color</string>
|
||||
<string name="theme_item_author_flair_text_color_detail">Applied to: Author flair in comments</string>
|
||||
<string name="theme_item_submitter_color">Submitter</string>
|
||||
<string name="theme_item_submitter_color_detail">Applied to: Submitter in comments</string>
|
||||
<string name="theme_item_moderator_color">Moderator</string>
|
||||
<string name="theme_item_moderator_color_detail">Applied to: Moderator in comments</string>
|
||||
<string name="theme_item_single_comment_thread_background_color">Single Comment Thread Background Color</string>
|
||||
<string name="theme_item_single_comment_thread_background_color_detail">Applied to: Single Comment</string>
|
||||
<string name="theme_item_unread_message_background_color">Unread Message Background Color</string>
|
||||
<string name="theme_item_unread_message_background_color_detail">Applied to: Unread Message Background Color</string>
|
||||
<string name="theme_item_divider_color">Divider Color</string>
|
||||
<string name="theme_item_divider_color_detail">Applied to: Comment divider, dividers in pages for submitting posts, etc.</string>
|
||||
<string name="theme_item_no_preview_link_background_color">No-Preview Link Background Color</string>
|
||||
<string name="theme_item_no_preview_link_background_color_detail">Applied to: No-preview link placeholder</string>
|
||||
<string name="theme_item_vote_and_reply_unavailable_button_color">Vote and Reply Unavailable Button Color</string>
|
||||
<string name="theme_item_vote_and_reply_unavailable_button_color_detail">Applied to: Vote and reply buttons (Unavailable)</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_1">Comment Vertical Bar Color 1</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_1_detail">Applied to: Comment Vertical Bar (Level 1)</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_2">Comment Vertical Bar Color 2</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_2_detail">Applied to: Comment Vertical Bar (Level 2)</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_3">Comment Vertical Bar Color 3</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_3_detail">Applied to: Comment Vertical Bar (Level 3)</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_4">Comment Vertical Bar Color 4</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_4_detail">Applied to: Comment Vertical Bar (Level 4)</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_5">Comment Vertical Bar Color 5</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_5_detail">Applied to: Comment Vertical Bar (Level 5)</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_6">Comment Vertical Bar Color 6</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_6_detail">Applied to: Comment Vertical Bar (Level 6)</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_7">Comment Vertical Bar Color 7</string>
|
||||
<string name="theme_item_comment_vertical_bar_color_7_detail">Applied to: Comment Vertical Bar (Level 7)</string>
|
||||
<string name="theme_item_nav_bar_color">Navigation Bar Color</string>
|
||||
<string name="theme_item_nav_bar_color_detail">Applied to: Navigation bar</string>
|
||||
<string name="theme_item_light_status_bar">Dark Status Bar Icon Color</string>
|
||||
<string name="theme_item_light_nav_bar">Dark Navigation Bar Icon Color</string>
|
||||
<string name="theme_item_change_status_bar_icon_color_after_toolbar_collapsed_in_immersive_interface">Change Status Bar Icon Color After Toolbar Collapsed In Immersive Interface</string>
|
||||
<string name="theme_item_available_on_android_8">Only available for Android 8.0 or above.</string>
|
||||
<string name="theme_item_available_on_android_6">Only available for Android 6.0 or above.</string>
|
||||
|
||||
</resources>
|
||||
|
@ -15,4 +15,22 @@
|
||||
app:key="amoled_dark"
|
||||
app:title="@string/settings_amoled_dark_title" />
|
||||
|
||||
<PreferenceCategory
|
||||
app:title="@string/settings_category_customization_title" />
|
||||
|
||||
<Preference
|
||||
app:key="customize_light_theme"
|
||||
app:icon="@drawable/ic_light_theme_preference_24dp"
|
||||
app:title="@string/settings_customize_light_theme_title" />
|
||||
|
||||
<Preference
|
||||
app:key="customize_dark_theme"
|
||||
app:icon="@drawable/ic_dark_theme_preference_24dp"
|
||||
app:title="@string/settings_customize_dark_theme_title" />
|
||||
|
||||
<Preference
|
||||
app:key="customize_amoled_theme"
|
||||
app:icon="@drawable/ic_dark_theme_preference_24dp"
|
||||
app:title="@string/settings_customize_amoled_theme_title" />
|
||||
|
||||
</PreferenceScreen>
|
Loading…
Reference in New Issue
Block a user