Fix too light and too dark colors in editor/display
This commit is contained in:
parent
40390b537d
commit
781f3d5648
@ -26,47 +26,31 @@ import android.graphics.Typeface;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.text.style.StyleSpan;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import org.solovyev.android.Check;
|
||||
import org.solovyev.android.calculator.BaseNumberBuilder;
|
||||
import org.solovyev.android.calculator.CalculatorEngine;
|
||||
import org.solovyev.android.calculator.CalculatorParseException;
|
||||
import org.solovyev.android.calculator.LiteNumberBuilder;
|
||||
import org.solovyev.android.calculator.Locator;
|
||||
import org.solovyev.android.calculator.NumberBuilder;
|
||||
import org.solovyev.android.calculator.*;
|
||||
import org.solovyev.android.calculator.math.MathType;
|
||||
import org.solovyev.android.calculator.text.TextProcessor;
|
||||
import org.solovyev.android.calculator.text.TextProcessorEditorResult;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
/**
|
||||
* User: serso
|
||||
* Date: 10/12/11
|
||||
* Time: 9:47 PM
|
||||
*/
|
||||
public class TextHighlighter implements TextProcessor<TextProcessorEditorResult, String> {
|
||||
|
||||
private final int red;
|
||||
private final int green;
|
||||
private final int blue;
|
||||
private final boolean formatNumber;
|
||||
private final boolean dark;
|
||||
private final int dark;
|
||||
|
||||
public TextHighlighter(int color, boolean formatNumber) {
|
||||
this.formatNumber = formatNumber;
|
||||
//this.red = Color.red(baseColor);
|
||||
red = red(color);
|
||||
//this.green = Color.green(baseColor);
|
||||
green = green(color);
|
||||
//this.blue = Color.blue(baseColor);
|
||||
blue = blue(color);
|
||||
dark = isDark(red, green, blue);
|
||||
dark = isDark(red, green, blue) ? 1 : -1;
|
||||
}
|
||||
|
||||
private static int blue(int color) {
|
||||
@ -195,13 +179,7 @@ public class TextHighlighter implements TextProcessor<TextProcessorEditorResult,
|
||||
}
|
||||
|
||||
private int getColor(int group, int groupsCount) {
|
||||
int offset = ((int) (255 * 0.8)) * group / (groupsCount + 1);
|
||||
if (!dark) {
|
||||
offset = -offset;
|
||||
}
|
||||
|
||||
// for tests:
|
||||
// int result = Color.rgb(BASE_COLOUR_RED_COMPONENT - offset, BASE_COLOUR_GREEN_COMPONENT - offset, BASE_COLOUR_BLUE_COMPONENT - offset);
|
||||
final int offset = (int) (dark * 255 * 0.6) * group / (groupsCount + 1);
|
||||
return (0xFF << 24) | ((red + offset) << 16) | ((green + offset) << 8) | (blue + offset);
|
||||
}
|
||||
|
||||
|
@ -38,15 +38,9 @@ import android.text.SpannableStringBuilder;
|
||||
import android.text.SpannedString;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.RemoteViews;
|
||||
|
||||
import org.solovyev.android.Views;
|
||||
import org.solovyev.android.calculator.App;
|
||||
import org.solovyev.android.calculator.CalculatorButton;
|
||||
import org.solovyev.android.calculator.CalculatorDisplayViewState;
|
||||
import org.solovyev.android.calculator.CalculatorEditorViewState;
|
||||
import org.solovyev.android.calculator.Locator;
|
||||
import org.solovyev.android.calculator.*;
|
||||
import org.solovyev.android.calculator.Preferences.SimpleTheme;
|
||||
import org.solovyev.android.calculator.R;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
@ -54,9 +48,7 @@ import javax.annotation.Nullable;
|
||||
import static android.appwidget.AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT;
|
||||
import static android.content.Intent.ACTION_CONFIGURATION_CHANGED;
|
||||
import static android.os.Build.VERSION_CODES.JELLY_BEAN;
|
||||
import static org.solovyev.android.calculator.CalculatorBroadcaster.ACTION_DISPLAY_STATE_CHANGED;
|
||||
import static org.solovyev.android.calculator.CalculatorBroadcaster.ACTION_EDITOR_STATE_CHANGED;
|
||||
import static org.solovyev.android.calculator.CalculatorBroadcaster.ACTION_THEME_CHANGED;
|
||||
import static org.solovyev.android.calculator.CalculatorBroadcaster.*;
|
||||
import static org.solovyev.android.calculator.CalculatorReceiver.newButtonClickedIntent;
|
||||
|
||||
public class CalculatorWidget extends AppWidgetProvider {
|
||||
@ -218,11 +210,12 @@ public class CalculatorWidget extends AppWidgetProvider {
|
||||
final SpannableStringBuilder result;
|
||||
// inject cursor
|
||||
if (unspan) {
|
||||
result = new SpannableStringBuilder();
|
||||
final CharSequence beforeCursor = text.subSequence(0, selection);
|
||||
final CharSequence afterCursor = text.subSequence(selection, text.length());
|
||||
|
||||
result = new SpannableStringBuilder();
|
||||
result.append(unspan(beforeCursor));
|
||||
result.append(getCursorString(context));
|
||||
final CharSequence afterCursor = text.subSequence(selection, text.length());
|
||||
result.append(unspan(afterCursor));
|
||||
} else {
|
||||
result = new SpannableStringBuilder(text);
|
||||
|
Loading…
Reference in New Issue
Block a user