feat: add radio checks for color theme options menu

This commit is contained in:
LucasGGamerM
2023-06-14 21:13:37 -03:00
parent b226fcc128
commit 45e3cc2d24
2 changed files with 33 additions and 9 deletions

View File

@@ -2,11 +2,15 @@ package org.joinmastodon.android.fragments.settings;
import android.os.Build;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.PopupMenu;
import androidx.annotation.Nullable;
import org.joinmastodon.android.GlobalUserPreferences;
import org.joinmastodon.android.R;
import org.joinmastodon.android.model.ContentType;
import java.util.ArrayList;
@@ -21,6 +25,10 @@ public class AppearanceFragment extends SettingsBaseFragment {
popupMenu.inflate(R.menu.color_palettes);
popupMenu.getMenu().findItem(R.id.m3_color).setVisible(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S);
popupMenu.setOnMenuItemClickListener(this::onColorPreferenceClick);
Menu colorTheme = popupMenu.getMenu();
colorTheme.findItem(getColorThemeRes(GlobalUserPreferences.color)).setChecked(true);
b.setOnTouchListener(popupMenu.getDragToOpenListener());
b.setOnClickListener(v -> popupMenu.show());
b.setText(switch (GlobalUserPreferences.color) {
@@ -48,6 +56,20 @@ public class AppearanceFragment extends SettingsBaseFragment {
}));
}
public static int getColorThemeRes(@Nullable GlobalUserPreferences.ColorPreference colorPreference) {
return colorPreference == null ? R.id.content_type_null : switch(colorPreference) {
case MATERIAL3 -> R.id.m3_color;
case PINK -> R.id.pink_color;
case PURPLE -> R.id.purple_color;
case GREEN -> R.id.green_color;
case BLUE -> R.id.blue_color;
case BROWN -> R.id.brown_color;
case RED -> R.id.red_color;
case YELLOW -> R.id.yellow_color;
case NORD -> R.id.nord_color;
};
}
private boolean onColorPreferenceClick(MenuItem item) {
GlobalUserPreferences.ColorPreference pref = null;
int id = item.getItemId();

View File

@@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/m3_color" android:title="@string/sk_color_palette_material3"/>
<item android:id="@+id/purple_color" android:title="@string/sk_color_palette_purple"/>
<item android:id="@+id/pink_color" android:title="@string/sk_color_palette_pink"/>
<item android:id="@+id/green_color" android:title="@string/sk_color_palette_green"/>
<item android:id="@+id/blue_color" android:title="@string/sk_color_palette_blue"/>
<item android:id="@+id/brown_color" android:title="@string/sk_color_palette_brown"/>
<item android:id="@+id/yellow_color" android:title="@string/sk_color_palette_yellow"/>
<item android:id="@+id/red_color" android:title="@string/sk_color_palette_red"/>
<item android:id="@+id/nord_color" android:title="@string/mo_color_palette_nord"/>
<group android:id="@+id/color_palettes_group" android:checkableBehavior="single">
<item android:id="@+id/m3_color" android:title="@string/sk_color_palette_material3"/>
<item android:id="@+id/purple_color" android:title="@string/sk_color_palette_purple"/>
<item android:id="@+id/pink_color" android:title="@string/sk_color_palette_pink"/>
<item android:id="@+id/green_color" android:title="@string/sk_color_palette_green"/>
<item android:id="@+id/blue_color" android:title="@string/sk_color_palette_blue"/>
<item android:id="@+id/brown_color" android:title="@string/sk_color_palette_brown"/>
<item android:id="@+id/yellow_color" android:title="@string/sk_color_palette_yellow"/>
<item android:id="@+id/red_color" android:title="@string/sk_color_palette_red"/>
<item android:id="@+id/nord_color" android:title="@string/mo_color_palette_nord"/>
</group>
</menu>