feat: add radio checks for color theme options menu
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user