Move grouping separator preference to Output section
This commit is contained in:
@@ -174,13 +174,15 @@ public class Engine implements SharedPreferences.OnSharedPreferenceChangeListene
|
||||
}
|
||||
final SharedPreferences.Editor editor = preferences.edit();
|
||||
if (oldVersion == 0) {
|
||||
migratePreference(preferences, Preferences.groupingSeparator, "org.solovyev.android.calculator.CalculatorActivity_calc_grouping_separator", editor);
|
||||
migratePreference(preferences, Preferences.Output.separator, "org.solovyev.android.calculator.CalculatorActivity_calc_grouping_separator", editor);
|
||||
migratePreference(preferences, Preferences.multiplicationSign, "org.solovyev.android.calculator.CalculatorActivity_calc_multiplication_sign", editor);
|
||||
migratePreference(preferences, Preferences.numeralBase, "org.solovyev.android.calculator.CalculatorActivity_numeral_bases", editor);
|
||||
migratePreference(preferences, Preferences.angleUnit, "org.solovyev.android.calculator.CalculatorActivity_angle_units", editor);
|
||||
migratePreference(preferences, Preferences.Output.precision, "org.solovyev.android.calculator.CalculatorModel_result_precision", editor);
|
||||
migratePreference(preferences, Preferences.Output.scientificNotation, "calculation.output.science_notation", editor);
|
||||
migratePreference(preferences, Preferences.Output.round, "org.solovyev.android.calculator.CalculatorModel_round_result", editor);
|
||||
} else if (oldVersion == 1) {
|
||||
migratePreference(preferences, Preferences.Output.separator, "engine.groupingSeparator", editor);
|
||||
}
|
||||
Preferences.version.putDefault(editor);
|
||||
editor.apply();
|
||||
@@ -211,7 +213,7 @@ public class Engine implements SharedPreferences.OnSharedPreferenceChangeListene
|
||||
mathEngine.setScienceNotation(Preferences.Output.scientificNotation.getPreference(preferences));
|
||||
mathEngine.setRoundResult(Preferences.Output.round.getPreference(preferences));
|
||||
|
||||
final String groupingSeparator = Preferences.groupingSeparator.getPreference(preferences);
|
||||
final String groupingSeparator = Preferences.Output.separator.getPreference(preferences);
|
||||
if (TextUtils.isEmpty(groupingSeparator)) {
|
||||
mathEngine.setUseGroupingSeparator(false);
|
||||
} else {
|
||||
@@ -260,16 +262,13 @@ public class Engine implements SharedPreferences.OnSharedPreferenceChangeListene
|
||||
}
|
||||
|
||||
public static class Preferences {
|
||||
// todo serso: move to Output
|
||||
public static final StringPreference<String> groupingSeparator = StringPreference.of("engine.groupingSeparator", String.valueOf(JsclMathEngine.GROUPING_SEPARATOR_DEFAULT));
|
||||
public static final StringPreference<String> multiplicationSign = StringPreference.of("engine.multiplicationSign", "×");
|
||||
public static final StringPreference<NumeralBase> numeralBase = StringPreference.ofTypedValue("engine.numeralBase", "dec", EnumMapper.of(NumeralBase.class));
|
||||
public static final StringPreference<AngleUnit> angleUnit = StringPreference.ofTypedValue("engine.angleUnit", "deg", EnumMapper.of(AngleUnit.class));
|
||||
public static final Preference<Integer> version = IntegerPreference.of("engine.version", 1);
|
||||
public static final Preference<Integer> version = IntegerPreference.of("engine.version", 2);
|
||||
private static final List<String> preferenceKeys = new ArrayList<>();
|
||||
|
||||
static {
|
||||
preferenceKeys.add(groupingSeparator.getKey());
|
||||
preferenceKeys.add(multiplicationSign.getKey());
|
||||
preferenceKeys.add(numeralBase.getKey());
|
||||
preferenceKeys.add(angleUnit.getKey());
|
||||
@@ -277,6 +276,7 @@ public class Engine implements SharedPreferences.OnSharedPreferenceChangeListene
|
||||
preferenceKeys.add(Output.scientificNotation.getKey());
|
||||
preferenceKeys.add(Output.round.getKey());
|
||||
preferenceKeys.add(Output.notation.getKey());
|
||||
preferenceKeys.add(Output.separator.getKey());
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
@@ -290,6 +290,8 @@ public class Engine implements SharedPreferences.OnSharedPreferenceChangeListene
|
||||
public static final BooleanPreference scientificNotation = BooleanPreference.of("engine.output.scientificNotation", false);
|
||||
public static final BooleanPreference round = BooleanPreference.of("engine.output.round", true);
|
||||
public static final StringPreference<Notation> notation = StringPreference.ofEnum("engine.output.notation", Notation.dec, Notation.class);
|
||||
public static final StringPreference<String> separator = StringPreference.of("engine.output.separator", String.valueOf(JsclMathEngine.GROUPING_SEPARATOR_DEFAULT));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -53,6 +53,8 @@ import java.util.EnumMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import jscl.JsclMathEngine;
|
||||
|
||||
import static org.solovyev.android.prefs.IntegerPreference.DEF_VALUE;
|
||||
|
||||
public final class Preferences {
|
||||
@@ -108,7 +110,7 @@ public final class Preferences {
|
||||
}
|
||||
|
||||
private static void setInitialDefaultValues(@Nonnull Application application, @Nonnull SharedPreferences preferences, @Nonnull SharedPreferences.Editor editor) {
|
||||
if (!Engine.Preferences.groupingSeparator.isSet(preferences)) {
|
||||
if (!Engine.Preferences.Output.separator.isSet(preferences)) {
|
||||
final Locale locale = Locale.getDefault();
|
||||
if (locale != null) {
|
||||
final DecimalFormatSymbols decimalFormatSymbols = new DecimalFormatSymbols(locale);
|
||||
@@ -117,10 +119,10 @@ public final class Preferences {
|
||||
if (index >= 0) {
|
||||
groupingSeparator = MathType.grouping_separator.getTokens().get(index);
|
||||
} else {
|
||||
groupingSeparator = " ";
|
||||
groupingSeparator = String.valueOf(JsclMathEngine.GROUPING_SEPARATOR_DEFAULT);
|
||||
}
|
||||
|
||||
Engine.Preferences.groupingSeparator.putPreference(editor, groupingSeparator);
|
||||
Engine.Preferences.Output.separator.putPreference(editor, groupingSeparator);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -27,22 +27,26 @@ import android.content.SharedPreferences;
|
||||
import android.os.Handler;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
import com.squareup.otto.Bus;
|
||||
import com.squareup.otto.Subscribe;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.solovyev.android.Check;
|
||||
import org.solovyev.android.calculator.*;
|
||||
import org.solovyev.android.calculator.AppModule;
|
||||
import org.solovyev.android.calculator.Calculator;
|
||||
import org.solovyev.android.calculator.Display;
|
||||
import org.solovyev.android.calculator.DisplayState;
|
||||
import org.solovyev.android.calculator.Editor;
|
||||
import org.solovyev.android.calculator.EditorState;
|
||||
import org.solovyev.android.calculator.Engine.Preferences;
|
||||
import org.solovyev.android.calculator.ErrorReporter;
|
||||
import org.solovyev.android.calculator.Runnables;
|
||||
import org.solovyev.android.calculator.json.Json;
|
||||
import org.solovyev.android.io.FileSystem;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
@@ -51,6 +55,12 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
import static android.text.TextUtils.isEmpty;
|
||||
|
||||
@Singleton
|
||||
@@ -302,7 +312,7 @@ public class History {
|
||||
|
||||
final List<HistoryState> result = new LinkedList<>();
|
||||
|
||||
final String groupingSeparator = Preferences.groupingSeparator.getPreference(preferences);
|
||||
final String separator = Preferences.Output.separator.getPreference(preferences);
|
||||
|
||||
final List<HistoryState> states = recent.asList();
|
||||
final int statesCount = states.size();
|
||||
@@ -312,7 +322,7 @@ public class History {
|
||||
final HistoryState newerState = states.get(i);
|
||||
final String olderText = olderState.editor.getTextString();
|
||||
final String newerText = newerState.editor.getTextString();
|
||||
if (streak >= MAX_INTERMEDIATE_STREAK || !isIntermediate(olderText, newerText, groupingSeparator)) {
|
||||
if (streak >= MAX_INTERMEDIATE_STREAK || !isIntermediate(olderText, newerText, separator)) {
|
||||
result.add(0, olderState);
|
||||
streak = 0;
|
||||
} else {
|
||||
|
@@ -71,7 +71,7 @@ public class NumberFormatPreference extends DialogPreference {
|
||||
|
||||
separatorAdapter = makeSeparatorAdapter();
|
||||
separatorSpinner.setAdapter(separatorAdapter);
|
||||
separatorSpinner.setSelection(indexOf(separatorAdapter, Engine.Preferences.groupingSeparator.getPreference(preferences)));
|
||||
separatorSpinner.setSelection(indexOf(separatorAdapter, Output.separator.getPreference(preferences)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,7 +83,7 @@ public class NumberFormatPreference extends DialogPreference {
|
||||
final SharedPreferences.Editor editor = getSharedPreferences().edit();
|
||||
Output.precision.putPreference(editor, precisionSeekBar.getCurrentTick());
|
||||
Output.notation.putPreference(editor, notationAdapter.getItem(notationSpinner.getSelectedItemPosition()).item);
|
||||
Engine.Preferences.groupingSeparator.putPreference(editor, separatorAdapter.getItem(separatorSpinner.getSelectedItemPosition()).item);
|
||||
Output.separator.putPreference(editor, separatorAdapter.getItem(separatorSpinner.getSelectedItemPosition()).item);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user