mirror of
https://github.com/peterosterlund2/droidfish.git
synced 2025-12-18 19:52:19 +01:00
DroidFish: Made it possible to change background color and text foreground color. From Leo Mayer.
This commit is contained in:
@@ -26,7 +26,7 @@ public class ColorTheme {
|
||||
private static ColorTheme inst = null;
|
||||
|
||||
/** Get singleton instance. */
|
||||
static final ColorTheme instance() {
|
||||
public static final ColorTheme instance() {
|
||||
if (inst == null)
|
||||
inst = new ColorTheme();
|
||||
return inst;
|
||||
@@ -48,13 +48,16 @@ public class ColorTheme {
|
||||
final static int SQUARE_LABEL = 13;
|
||||
final static int DECORATION = 14;
|
||||
final static int PGN_COMMENT = 15;
|
||||
private final static int numColors = 16;
|
||||
public final static int FONT_FOREGROUND = 16;
|
||||
public final static int GENERAL_BACKGROUND = 17;
|
||||
private final static int numColors = 18;
|
||||
|
||||
private int colorTable[] = new int[numColors];
|
||||
|
||||
private static final String[] prefNames = {
|
||||
"darkSquare", "brightSquare", "selectedSquare", "cursorSquare", "darkPiece", "brightPiece", "currentMove",
|
||||
"arrow0", "arrow1", "arrow2", "arrow3", "arrow4", "arrow5", "squareLabel", "decoration", "pgnComment"
|
||||
"arrow0", "arrow1", "arrow2", "arrow3", "arrow4", "arrow5", "squareLabel", "decoration", "pgnComment",
|
||||
"fontForeground", "generalBackground"
|
||||
};
|
||||
private static final String prefPrefix = "color_";
|
||||
|
||||
@@ -65,37 +68,37 @@ public class ColorTheme {
|
||||
{ // Original
|
||||
"#FF808080", "#FFBEBE5A", "#FFFF0000", "#FF00FF00", "#FF000000", "#FFFFFFFF", "#FF888888",
|
||||
"#A01F1FFF", "#A0FF1F1F", "#501F1FFF", "#50FF1F1F", "#1E1F1FFF", "#28FF1F1F", "#FFFF0000",
|
||||
"#FF9F9F66", "#FFC0C000"
|
||||
"#FF9F9F66", "#FFC0C000", "#FFFFFFFF", "#FF000000"
|
||||
},
|
||||
{ // XBoard
|
||||
"#FF77A26D", "#FFC8C365", "#FFFFFF00", "#FF00FF00", "#FF202020", "#FFFFFFCC", "#FF6B9262",
|
||||
"#A01F1FFF", "#A0FF1F1F", "#501F1FFF", "#50FF1F1F", "#1E1F1FFF", "#28FF1F1F", "#FFFF0000",
|
||||
"#FF808080", "#FFC0C000"
|
||||
"#FF808080", "#FFC0C000", "#FFFFFFFF", "#FF000000"
|
||||
},
|
||||
{ // Blue
|
||||
"#FF83A5D2", "#FFFFFFFA", "#FF3232D1", "#FF5F5FFD", "#FF282828", "#FFF0F0F0", "#FF3333FF",
|
||||
"#A01F1FFF", "#A01FFF1F", "#501F1FFF", "#501FFF1F", "#1E1F1FFF", "#281FFF1F", "#FFFF0000",
|
||||
"#FF808080", "#FFC0C000"
|
||||
"#FF808080", "#FFC0C000", "#FFFFFFFF", "#FF000000"
|
||||
},
|
||||
{ // Grey
|
||||
"#FF666666", "#FFDDDDDD", "#FFFF0000", "#FF0000FF", "#FF000000", "#FFFFFFFF", "#FF888888",
|
||||
"#A01F1FFF", "#A0FF1F1F", "#501F1FFF", "#50FF1F1F", "#1E1F1FFF", "#28FF1F1F", "#FFFF0000",
|
||||
"#FF909090", "#FFC0C000"
|
||||
"#FF909090", "#FFC0C000", "#FFFFFFFF", "#FF000000"
|
||||
},
|
||||
{ // Scid Default
|
||||
"#FF80A0A0", "#FFD0E0D0", "#FFFF0000", "#FF00FF00", "#FF000000", "#FFFFFFFF", "#FF666666",
|
||||
"#A01F1FFF", "#A0FF1F1F", "#501F1FFF", "#50FF1F1F", "#1E1F1FFF", "#28FF1F1F", "#FFFF0000",
|
||||
"#FF808080", "#FFC0C000"
|
||||
"#FF808080", "#FFC0C000", "#FFFFFFFF", "#FF000000"
|
||||
},
|
||||
{ // Scid Brown
|
||||
"#B58863", "#F0D9B5", "#FFFF0000", "#FF00FF00", "#FF000000", "#FFFFFFFF", "#FF666666",
|
||||
"#A01F1FFF", "#A0FF1F1F", "#501F1FFF", "#50FF1F1F", "#1E1F1FFF", "#28FF1F1F", "#FFFF0000",
|
||||
"#FF808080", "#FFC0C000"
|
||||
"#FF808080", "#FFC0C000", "#FFFFFFFF", "#FF000000"
|
||||
},
|
||||
{ // Scid Green
|
||||
"#FF769656", "#FFEEEED2", "#FFFF0000", "#FF0000FF", "#FF000000", "#FFFFFFFF", "#FF666666",
|
||||
"#A01F1FFF", "#A0FF1F1F", "#501F1FFF", "#50FF1F1F", "#1E1F1FFF", "#28FF1F1F", "#FFFF0000",
|
||||
"#FF808080", "#FFC0C000"
|
||||
"#FF808080", "#FFC0C000", "#FFFFFFFF", "#FF000000"
|
||||
}
|
||||
};
|
||||
|
||||
@@ -121,7 +124,7 @@ public class ColorTheme {
|
||||
readColors(settings);
|
||||
}
|
||||
|
||||
final int getColor(int colorType) {
|
||||
public final int getColor(int colorType) {
|
||||
return colorTable[colorType];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -535,6 +535,7 @@ public class DroidFish extends Activity implements GUIInterface {
|
||||
private final void initUI() {
|
||||
leftHanded = leftHandedView();
|
||||
setContentView(leftHanded ? R.layout.main_left_handed : R.layout.main);
|
||||
Util.overrideFonts(findViewById(android.R.id.content));
|
||||
|
||||
// title lines need to be regenerated every time due to layout changes (rotations)
|
||||
secondTitleLine = findViewById(R.id.second_title_line);
|
||||
@@ -888,6 +889,7 @@ public class DroidFish extends Activity implements GUIInterface {
|
||||
|
||||
ColorTheme.instance().readColors(settings);
|
||||
cb.setColors();
|
||||
Util.overrideFonts(findViewById(android.R.id.content));
|
||||
|
||||
gameTextListener.clear();
|
||||
setPieceNames(pgnOptions.view.pieceType);
|
||||
@@ -2026,6 +2028,7 @@ public class DroidFish extends Activity implements GUIInterface {
|
||||
gameTextListener.clear();
|
||||
ctrl.prefsChanged(false);
|
||||
dialog.dismiss();
|
||||
Util.overrideFonts(findViewById(android.R.id.content));
|
||||
}
|
||||
});
|
||||
return builder.create();
|
||||
|
||||
@@ -12,7 +12,14 @@ import org.petero.droidfish.gamelogic.Position;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
public final class Util {
|
||||
public final static String boldStart;
|
||||
@@ -82,4 +89,29 @@ public final class Util {
|
||||
}
|
||||
a.getWindow().setAttributes(attrs);
|
||||
}
|
||||
|
||||
/** Change foreground/background color in a view. */
|
||||
public static void overrideFonts(final View v) {
|
||||
if (v == null)
|
||||
return;
|
||||
final int bg = ColorTheme.instance().getColor(ColorTheme.GENERAL_BACKGROUND);
|
||||
final boolean excludedItems = v instanceof Button ||
|
||||
v instanceof EditText ||
|
||||
v instanceof ImageButton ||
|
||||
"title".equals(v.getTag());
|
||||
if (!excludedItems)
|
||||
v.setBackgroundColor(bg);
|
||||
if (v instanceof ListView)
|
||||
((ListView) v).setCacheColorHint(bg);
|
||||
if (v instanceof ViewGroup) {
|
||||
ViewGroup vg = (ViewGroup) v;
|
||||
for (int i = 0; i < vg.getChildCount(); i++) {
|
||||
View child = vg.getChildAt(i);
|
||||
overrideFonts(child);
|
||||
}
|
||||
} else if ((v instanceof TextView) && !excludedItems) {
|
||||
int fg = ColorTheme.instance().getColor(ColorTheme.FONT_FOREGROUND);
|
||||
((TextView) v).setTextColor(fg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,6 +114,8 @@ public class EditBoard extends Activity {
|
||||
|
||||
private final void initUI() {
|
||||
setContentView(R.layout.editboard);
|
||||
Util.overrideFonts(findViewById(android.R.id.content));
|
||||
|
||||
cb = (ChessBoardEdit)findViewById(R.id.eb_chessboard);
|
||||
status = (TextView)findViewById(R.id.eb_status);
|
||||
okButton = (Button)findViewById(R.id.eb_ok);
|
||||
|
||||
@@ -21,7 +21,9 @@ package org.petero.droidfish.activities;
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import org.petero.droidfish.ColorTheme;
|
||||
import org.petero.droidfish.R;
|
||||
import org.petero.droidfish.Util;
|
||||
import org.petero.droidfish.activities.PGNFile.GameInfo;
|
||||
import org.petero.droidfish.activities.PGNFile.GameInfoResult;
|
||||
import org.petero.droidfish.gamelogic.Pair;
|
||||
@@ -43,6 +45,7 @@ import android.text.TextWatcher;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
@@ -234,7 +237,18 @@ public class EditPGN extends ListActivity {
|
||||
private final void showList() {
|
||||
progress.dismiss();
|
||||
setContentView(R.layout.select_game);
|
||||
aa = new ArrayAdapter<GameInfo>(this, R.layout.select_game_list_item, gamesInFile);
|
||||
Util.overrideFonts(findViewById(android.R.id.content));
|
||||
aa = new ArrayAdapter<GameInfo>(this, R.layout.select_game_list_item, gamesInFile) {
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = super.getView(position, convertView, parent);
|
||||
if (view instanceof TextView) {
|
||||
int fg = ColorTheme.instance().getColor(ColorTheme.FONT_FOREGROUND);
|
||||
((TextView) view).setTextColor(fg);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
};
|
||||
setListAdapter(aa);
|
||||
ListView lv = getListView();
|
||||
lv.setSelectionFromTop(defaultItem, 0);
|
||||
|
||||
@@ -21,7 +21,9 @@ package org.petero.droidfish.activities;
|
||||
import java.io.File;
|
||||
import java.util.Vector;
|
||||
|
||||
import org.petero.droidfish.ColorTheme;
|
||||
import org.petero.droidfish.R;
|
||||
import org.petero.droidfish.Util;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.ListActivity;
|
||||
@@ -36,9 +38,11 @@ import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import android.widget.AdapterView.OnItemClickListener;
|
||||
|
||||
@@ -167,9 +171,21 @@ public class LoadScid extends ListActivity {
|
||||
|
||||
private final void showList() {
|
||||
progress.dismiss();
|
||||
final ArrayAdapter<GameInfo> aa = new ArrayAdapter<GameInfo>(this, R.layout.select_game_list_item, gamesInFile);
|
||||
final ArrayAdapter<GameInfo> aa =
|
||||
new ArrayAdapter<GameInfo>(this, R.layout.select_game_list_item, gamesInFile) {
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
View view = super.getView(position, convertView, parent);
|
||||
if (view instanceof TextView) {
|
||||
int fg = ColorTheme.instance().getColor(ColorTheme.FONT_FOREGROUND);
|
||||
((TextView) view).setTextColor(fg);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
};
|
||||
setListAdapter(aa);
|
||||
ListView lv = getListView();
|
||||
Util.overrideFonts(lv);
|
||||
lv.setSelectionFromTop(defaultItem, 0);
|
||||
lv.setFastScrollEnabled(true);
|
||||
lv.setOnItemClickListener(new OnItemClickListener() {
|
||||
|
||||
Reference in New Issue
Block a user