messages on angle units/numeral bases changes
This commit is contained in:
parent
1adc977d44
commit
6c2270fd73
@ -110,6 +110,7 @@
|
||||
<string name="c_calc_layout">Раскладка</string>
|
||||
<string name="p_layout_cellphone">Телефон</string>
|
||||
<string name="p_layout_calculator">Калькулятор</string>
|
||||
<string name="p_layout_simple">Простая</string>
|
||||
<string name="c_calc_layout_summary">Устанавливает раскладку кнопок</string>
|
||||
|
||||
<string name="c_calc_haptic_feedback_title">Отклик на нажатие</string>
|
||||
@ -182,4 +183,8 @@
|
||||
Пожалуйста, оцените Калькулятор++ \nна <a href="https://market.android.com/details?id=org.solovyev.android.calculator">андроид.маркете</a>,\n оставьте комментарий или \nобсудите приложение \nна нашем <a href="http://calculatorpp.com/forum/">форуме</a>
|
||||
</string>
|
||||
|
||||
<string name="c_angle_units_changed_to">Единицы измерения углов изменены на \'%s\'!</string>
|
||||
<string name="c_numeral_base_changed_to">Система счисления изменена на \'%s\'!</string>
|
||||
|
||||
|
||||
</resources>
|
@ -110,6 +110,7 @@
|
||||
<string name="c_calc_layout">Layout</string>
|
||||
<string name="p_layout_cellphone">Cellphone</string>
|
||||
<string name="p_layout_calculator">Calculator</string>
|
||||
<string name="p_layout_simple">Simple</string>
|
||||
<string name="c_calc_layout_summary">Sets layout of buttons</string>
|
||||
|
||||
<string name="c_calc_haptic_feedback_title">Haptic feedback</string>
|
||||
@ -182,4 +183,8 @@
|
||||
Please rate Calculator++ \non <a href="https://market.android.com/details?id=org.solovyev.android.calculator">android.market</a>,\n leave a comment or \ndiscuss application \non our <a href="http://calculatorpp.com/forum/">forum</a>
|
||||
</string>
|
||||
|
||||
<string name="c_angle_units_changed_to">Angle units changed to \'%s\'!</string>
|
||||
<string name="c_numeral_base_changed_to">Numeral base changed to \'%s\'!</string>
|
||||
|
||||
|
||||
</resources>
|
@ -19,10 +19,7 @@ import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
import android.util.TypedValue;
|
||||
import android.view.*;
|
||||
import android.widget.Button;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.*;
|
||||
import com.google.ads.AdView;
|
||||
import jscl.AngleUnit;
|
||||
import jscl.NumeralBase;
|
||||
@ -55,7 +52,6 @@ import org.solovyev.common.utils.history.HistoryAction;
|
||||
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
public class CalculatorActivity extends Activity implements FontSizeAdjuster, SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
@ -100,6 +96,22 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
other
|
||||
}
|
||||
|
||||
public static enum Layout {
|
||||
main_calculator(R.layout.main_calculator),
|
||||
main_cellphone(R.layout.main_cellphone),
|
||||
simple(R.layout.main_calculator);
|
||||
|
||||
private final int layoutId;
|
||||
|
||||
Layout(int layoutId) {
|
||||
this.layoutId = layoutId;
|
||||
}
|
||||
|
||||
public int getLayoutId() {
|
||||
return layoutId;
|
||||
}
|
||||
}
|
||||
|
||||
public static class Preferences {
|
||||
@NotNull
|
||||
private static final String APP_VERSION_P_KEY = "application.version";
|
||||
@ -109,8 +121,13 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
private static final Preference<Integer> appOpenedCounter = new IntegerPreference(APP_OPENED_COUNTER_P_KEY, APP_OPENED_COUNTER_P_DEFAULT);
|
||||
private static final Preference<Boolean> feedbackWindowShown = new BooleanPreference(FEEDBACK_WINDOW_SHOWN_P_KEY, FEEDBACK_WINDOW_SHOWN_P_DEFAULT);
|
||||
private static final Preference<Theme> theme = StringPreference.newInstance(THEME_P_KEY, THEME_P_DEFAULT, Theme.class);
|
||||
private static final Preference<Layout> layout = StringPreference.newInstance(LAYOUT_P_KEY, LAYOUT_P_DEFAULT, Layout.class);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static final String LAYOUT_P_KEY = "org.solovyev.android.calculator.CalculatorActivity_calc_layout";
|
||||
private static final Layout LAYOUT_P_DEFAULT = Layout.main_calculator;
|
||||
|
||||
@NotNull
|
||||
private static final String THEME_P_KEY = "org.solovyev.android.calculator.CalculatorActivity_calc_theme";
|
||||
private static final Theme THEME_P_DEFAULT = Theme.metro_blue_theme;
|
||||
@ -143,7 +160,7 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
private Theme theme;
|
||||
|
||||
@NotNull
|
||||
private String layoutName;
|
||||
private Layout layout;
|
||||
|
||||
@Nullable
|
||||
private Vibrator vibrator;
|
||||
@ -267,9 +284,38 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
fixMargins(1, 1);
|
||||
}
|
||||
|
||||
if (layout == Layout.simple) {
|
||||
toggleButtonDirectionText(R.id.oneDigitButton, false, DragDirection.left, DragDirection.up, DragDirection.down);
|
||||
toggleButtonDirectionText(R.id.twoDigitButton, false, DragDirection.left, DragDirection.up, DragDirection.down);
|
||||
toggleButtonDirectionText(R.id.threeDigitButton, false, DragDirection.left, DragDirection.up, DragDirection.down);
|
||||
|
||||
toggleButtonDirectionText(R.id.sevenDigitButton, false, DragDirection.left, DragDirection.up, DragDirection.down);
|
||||
toggleButtonDirectionText(R.id.eightDigitButton, false, DragDirection.left, DragDirection.up, DragDirection.down);
|
||||
|
||||
toggleButtonDirectionText(R.id.fourDigitButton, false, DragDirection.left, DragDirection.down);
|
||||
toggleButtonDirectionText(R.id.fiveDigitButton, false, DragDirection.left, DragDirection.down);
|
||||
toggleButtonDirectionText(R.id.sixDigitButton, false, DragDirection.left);
|
||||
|
||||
toggleButtonDirectionText(R.id.nineDigitButton, false, DragDirection.left);
|
||||
|
||||
toggleButtonDirectionText(R.id.multiplicationButton, false, DragDirection.left);
|
||||
toggleButtonDirectionText(R.id.plusButton, false, DragDirection.down, DragDirection.up);
|
||||
|
||||
}
|
||||
|
||||
preferences.registerOnSharedPreferenceChangeListener(this);
|
||||
}
|
||||
|
||||
private void toggleButtonDirectionText(int id, boolean showDirectionText, @NotNull DragDirection... dragDirections) {
|
||||
final View v = findViewById(id);
|
||||
if (v instanceof DirectionDragButton ) {
|
||||
final DirectionDragButton button = (DirectionDragButton)v;
|
||||
for (DragDirection dragDirection : dragDirections) {
|
||||
button.showDirectionText(showDirectionText, dragDirection);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void fixMargins(int marginLeft, int marginBottom) {
|
||||
// sad but true
|
||||
|
||||
@ -329,6 +375,8 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
|
||||
CalculatorEngine.Preferences.angleUnit.putPreference(preferences, angleUnits);
|
||||
|
||||
Toast.makeText(CalculatorActivity.this, CalculatorActivity.this.getString(R.string.c_angle_units_changed_to, angleUnits.name()), Toast.LENGTH_LONG).show();
|
||||
|
||||
result = true;
|
||||
} catch (IllegalArgumentException e) {
|
||||
Log.d(this.getClass().getName(), "Unsupported angle units: " + directionText);
|
||||
@ -362,6 +410,8 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(CalculatorActivity.this);
|
||||
CalculatorEngine.Preferences.numeralBase.putPreference(preferences, numeralBase);
|
||||
|
||||
Toast.makeText(CalculatorActivity.this, CalculatorActivity.this.getString(R.string.c_numeral_base_changed_to, numeralBase.name()), Toast.LENGTH_LONG).show();
|
||||
|
||||
result = true;
|
||||
} catch (IllegalArgumentException e) {
|
||||
Log.d(this.getClass().getName(), "Unsupported numeral base: " + directionText);
|
||||
@ -463,23 +513,16 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
|
||||
|
||||
private synchronized void setLayout(@NotNull SharedPreferences preferences) {
|
||||
final Map<String, Integer> layouts = ResourceCache.instance.getNameToIdCache(R.layout.class);
|
||||
|
||||
layoutName = preferences.getString(getString(R.string.p_calc_layout_key), getString(R.string.p_calc_layout));
|
||||
|
||||
Integer layoutId = layouts.get(layoutName);
|
||||
if (layoutId == null) {
|
||||
Log.d(this.getClass().getName(), "No saved layout found => applying default layout: " + R.layout.main_calculator);
|
||||
layoutId = R.layout.main_calculator;
|
||||
} else {
|
||||
Log.d(this.getClass().getName(), "Saved layout found: " + layoutId);
|
||||
try {
|
||||
layout = Preferences.layout.getPreference(preferences);
|
||||
} catch (IllegalArgumentException e) {
|
||||
layout = LAYOUT_P_DEFAULT;
|
||||
}
|
||||
|
||||
setContentView(layoutId);
|
||||
setContentView(layout.getLayoutId());
|
||||
}
|
||||
|
||||
private synchronized void setTheme(@NotNull SharedPreferences preferences) {
|
||||
|
||||
try {
|
||||
theme = Preferences.theme.getPreference(preferences);
|
||||
} catch (IllegalArgumentException e) {
|
||||
@ -717,9 +760,9 @@ public class CalculatorActivity extends Activity implements FontSizeAdjuster, Sh
|
||||
|
||||
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||
|
||||
final String newLayoutName = preferences.getString(getString(R.string.p_calc_layout_key), getString(R.string.p_calc_layout));
|
||||
final Layout newLayout = Preferences.layout.getPreference(preferences);
|
||||
final Theme newTheme = Preferences.theme.getPreference(preferences);
|
||||
if (!theme.equals(newTheme) || !layoutName.equals(newLayoutName)) {
|
||||
if (!theme.equals(newTheme) || !layout.equals(newLayout)) {
|
||||
AndroidUtils.restartActivity(this);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user