translations + preferences

This commit is contained in:
serso 2012-10-09 18:24:53 +04:00
parent 5d6ea3d58e
commit 9b6997e91b
12 changed files with 699 additions and 848 deletions

View File

@ -1,113 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:c="http://schemas.android.com/apk/res/org.solovyev.android.calculator"
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:id="@+id/main_layout"
a:orientation="vertical"
a:layout_gravity="center"
a:background="#ff000000">
<include layout="@layout/calc_editor"/>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<org.solovyev.android.view.drag.DirectionDragButton xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:c="http://schemas.android.com/apk/res/org.solovyev.android.calculator"
a:id="@+id/leftButton"
c:textUp="◀◀"
a:text="◀"
c:directionTextScale="0.5"
style="?controlButtonStyle"
a:onClick="moveLeftButtonClickHandler"
a:layout_width="0dp"
a:layout_height="fill_parent"
a:layout_weight="1"/>
<org.solovyev.android.view.ColorButton xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:c="http://schemas.android.com/apk/res/org.solovyev.android.calculator"
a:id="@+id/eraseButton"
a:drawableTop="@drawable/kb_delete"
style="?controlImageButtonStyle"
a:onClick="eraseButtonClickHandler"
a:layout_width="0dp"
a:layout_height="fill_parent"
a:layout_weight="1"/>
<include layout="@layout/calc_display"
a:layout_width="0dp"
a:layout_height="fill_parent"
a:layout_weight="4"/>
<org.solovyev.android.calculator.view.NumeralBasesButton xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:c="http://schemas.android.com/apk/res/org.solovyev.android.calculator"
a:id="@+id/clearButton"
c:textUp="dec"
a:text="@string/c_clear"
c:textDown="bin"
c:textLeft="hex"
a:textStyle="bold"
style="?controlImageButtonStyle"
a:onClick="clearButtonClickHandler"
a:layout_width="0dp"
a:layout_height="fill_parent"
a:layout_weight="1"/>
<org.solovyev.android.view.drag.DirectionDragButton xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:c="http://schemas.android.com/apk/res/org.solovyev.android.calculator"
a:id="@+id/rightButton"
c:textUp="▶▶"
a:text="▶"
c:directionTextScale="0.5"
style="?controlButtonStyle"
a:onClick="moveRightButtonClickHandler"
a:layout_width="0dp"
a:layout_height="fill_parent"
a:layout_weight="1"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_vars_button"/>
<include layout="@layout/calc_copy_button"/>
<include layout="@layout/calc_one_digit_button"/>
<include layout="@layout/calc_two_digit_button"/>
<include layout="@layout/calc_three_digit_button"/>
<include layout="@layout/calc_multiplication_button"/>
<include layout="@layout/calc_division_button"/>
<include layout="@layout/calc_equals_button"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_functions_button"/>
<include layout="@layout/calc_paste_button"/>
<include layout="@layout/calc_four_digit_button"/>
<include layout="@layout/calc_five_digit_button"/>
<include layout="@layout/calc_six_digit_button"/>
<include layout="@layout/calc_plus_button"/>
<include layout="@layout/calc_subtraction_button"/>
<include layout="@layout/calc_round_brackets_button"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_operators_button"/>
<include layout="@layout/calc_donate_button"/>
<include layout="@layout/calc_seven_digit_button"/>
<include layout="@layout/calc_eight_digit_button"/>
<include layout="@layout/calc_nine_digit_button"/>
<include layout="@layout/calc_zero_digit_button"/>
<include layout="@layout/calc_dot_button"/>
<include layout="@layout/calc_history_button"/>
</LinearLayout>
</LinearLayout>

View File

@ -34,9 +34,10 @@
a:layout_weight="1"/> a:layout_weight="1"/>
<LinearLayout a:id="@+id/displayContainer" <LinearLayout a:id="@+id/displayContainer"
a:layout_weight="4" a:layout_height="match_parent"
a:layout_width="0dp" a:layout_width="0dp"
a:layout_height="match_parent"/> a:layout_weight="4"
a:layout_margin="@dimen/display_margin_land"/>
<include layout="@layout/calc_clear_button" <include layout="@layout/calc_clear_button"
a:layout_margin="@dimen/button_margin" a:layout_margin="@dimen/button_margin"

View File

@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev. ~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com ~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org ~ or visit http://se.solovyev.org
--> -->
<org.solovyev.android.calculator.AndroidCalculatorDisplayView <org.solovyev.android.calculator.AndroidCalculatorDisplayView
xmlns:a="http://schemas.android.com/apk/res/android" xmlns:a="http://schemas.android.com/apk/res/android"
a:id="@+id/calculatorDisplay" a:id="@+id/calculatorDisplay"
style="@style/display_style" style="@style/display_style"
a:padding="@dimen/editor_padding" a:padding="@dimen/display_padding"
a:inputType="textMultiLine" a:inputType="textMultiLine"
a:maxLines="3" a:maxLines="3"
a:scrollHorizontally="false" a:scrollHorizontally="false"
a:scrollbars="none"/> a:scrollbars="none"/>

View File

@ -1,77 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:id="@+id/main_layout"
a:orientation="vertical"
a:layout_gravity="center"
a:background="#ff000000">
<include layout="@layout/calc_editor"/>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_equals_button"
a:layout_weight="1"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
<include layout="@layout/calc_display"
a:layout_weight="4"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_one_digit_button"/>
<include layout="@layout/calc_two_digit_button"/>
<include layout="@layout/calc_three_digit_button"/>
<include layout="@layout/calc_multiplication_button"/>
<include layout="@layout/calc_clear_button"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_four_digit_button"/>
<include layout="@layout/calc_five_digit_button"/>
<include layout="@layout/calc_six_digit_button"/>
<include layout="@layout/calc_division_button"/>
<include layout="@layout/calc_erase_button"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_seven_digit_button"/>
<include layout="@layout/calc_eight_digit_button"/>
<include layout="@layout/calc_nine_digit_button"/>
<include layout="@layout/calc_plus_button"/>
<include layout="@layout/calc_copy_button"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_round_brackets_button"/>
<include layout="@layout/calc_zero_digit_button"/>
<include layout="@layout/calc_dot_button"/>
<include layout="@layout/calc_subtraction_button"/>
<include layout="@layout/calc_paste_button"/>
</LinearLayout>
<LinearLayout a:layout_weight="1" a:layout_width="fill_parent" a:layout_height="0dp">
<include layout="@layout/calc_left_button"/>
<include layout="@layout/calc_right_button"/>
<include layout="@layout/calc_vars_button"/>
<include layout="@layout/calc_functions_button"/>
<include layout="@layout/calc_history_button"/>
</LinearLayout>
</LinearLayout>

View File

@ -1,210 +1,228 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev. ~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com ~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org ~ or visit http://se.solovyev.org
--> -->
<resources> <resources>
<string name="c_app_name">Калькулятор++</string> <string name="c_app_name">Калькулятор++</string>
<string name="c_app_name_free">Калькулятор++ Free</string> <string name="c_app_name_free">Калькулятор++ Free</string>
<string name="c_app_icon_name">Кальк++</string> <string name="c_app_icon_name">Кальк++</string>
<string name="c_app_settings">Настройки</string> <string name="c_app_settings">Настройки</string>
<string name="c_syntax_error">Ошибка</string> <string name="c_syntax_error">Ошибка</string>
<string name="c_result_copied">Результат скопирован в буфер!</string> <string name="c_result_copied">Результат скопирован в буфер!</string>
<string name="c_settings">Настройки</string> <string name="c_settings">Настройки</string>
<string name="c_help">Помощь</string> <string name="c_help">Помощь</string>
<string name="c_vars_and_constants">Переменные и константы</string> <string name="c_vars_and_constants">Переменные и константы</string>
<!--PREFERENCE ACTIVITY--> <!--PREFERENCE ACTIVITY-->
<string name="c_prefs_main_category">Основные настройки</string> <string name="c_prefs_main_category">Основные настройки</string>
<string name="c_prefs_calculations_category">Настройки вычислений</string> <string name="c_prefs_calculations_category">Настройки вычислений</string>
<string name="c_prefs_appearance_category">Настройки внешнего вида</string> <string name="c_prefs_appearance_category">Настройки внешнего вида</string>
<string name="c_prefs_other_category">Другие настройки</string> <string name="c_prefs_other_category">Другие настройки</string>
<string name="c_prefs_drag_button_category">Настройки кнопок</string> <string name="c_prefs_drag_button_category">Настройки кнопок</string>
<string name="c_down">Вниз</string> <string name="c_down">Вниз</string>
<string name="c_up">Вверх</string> <string name="c_up">Вверх</string>
<string name="c_restart">Перезапуск</string> <string name="c_restart">Перезапуск</string>
<string name="c_undo">назад</string> <string name="c_undo">назад</string>
<string name="c_redo">вперёд</string> <string name="c_redo">вперёд</string>
<string name="c_paste">вставить</string> <string name="c_paste">вставить</string>
<string name="c_vars">переменные</string> <string name="c_vars">переменные</string>
<string name="c_copy">Копировать</string> <string name="c_copy">Копировать</string>
<string name="c_plot">Построить график</string> <string name="c_plot">Построить график</string>
<string name="c_graph">График</string> <string name="c_graph">График</string>
<string name="c_calc_color_display_title">Подсветка выражений</string> <string name="c_calc_color_display_title">Подсветка выражений</string>
<string name="c_calc_round_result_title">Округление результата</string> <string name="c_calc_round_result_title">Округление результата</string>
<string name="c_calc_round_result_summary">Включает/выключает округление результата</string> <string name="c_calc_round_result_summary">Включает/выключает округление результата</string>
<string name="c_calc_science_notation_title">Результат в научной форме</string> <string name="c_calc_science_notation_title">Результат в научной форме</string>
<string name="c_calc_science_notation_summary">Если включено - результат будет всегда записан в научной форме (12.34E-12)</string> <string name="c_calc_science_notation_summary">Если включено - результат будет всегда записан в научной форме (12.34E-12)</string>
<string name="p_calc_result_precision_title">Точность результата</string> <string name="p_calc_result_precision_title">Точность результата</string>
<string name="p_calc_max_calculation_time_title">Максимальное время вычисления</string> <string name="p_calc_max_calculation_time_title">Максимальное время вычисления</string>
<string name="p_calc_max_calculation_time_summary">Если вычисления превысят установленный предел - калькулятор остановится с ошибкой</string> <string name="p_calc_max_calculation_time_summary">Если вычисления превысят установленный предел - калькулятор остановится с ошибкой</string>
<string name="c_exit">Выход</string> <string name="c_exit">Выход</string>
<string name="c_add">Добавить</string> <string name="c_add">Добавить</string>
<string name="c_cancel">Отмена</string> <string name="c_cancel">Отмена</string>
<string name="c_save">Сохранить</string> <string name="c_save">Сохранить</string>
<string name="c_remove">Удалить</string> <string name="c_remove">Удалить</string>
<string name="c_yes">Да</string> <string name="c_yes">Да</string>
<string name="c_no">Нет</string> <string name="c_no">Нет</string>
<string name="c_var_removal_confirmation">Подтверждение удаления</string> <string name="c_var_removal_confirmation">Подтверждение удаления</string>
<string name="c_var_removal_confirmation_question">Вы действительно хотите удалить переменную \'%s\'?</string> <string name="c_var_removal_confirmation_question">Вы действительно хотите удалить переменную \'%s\'?</string>
<string name="c_var_name">Имя</string> <string name="c_var_name">Имя</string>
<string name="c_var_value">Значение</string> <string name="c_var_value">Значение</string>
<string name="c_var_description">Описание</string> <string name="c_var_description">Описание</string>
<string name="c_var_create_var">Создать переменную</string> <string name="c_var_create_var">Создать переменную</string>
<string name="c_var_edit_var">Редактировать переменную</string> <string name="c_var_edit_var">Редактировать переменную</string>
<string name="c_value.is.not.a.number">Значение должно либо оставаться пустым либо быть числом!</string> <string name="c_value.is.not.a.number">Значение должно либо оставаться пустым либо быть числом!</string>
<string name="c_var.name.clashes">Имя переменной не может быть зарезервированным системным именем!</string> <string name="c_var.name.clashes">Имя переменной не может быть зарезервированным системным именем!</string>
<string name="c_var.already.exists">Переменная с таким именем уже существует!</string> <string name="c_var.already.exists">Переменная с таким именем уже существует!</string>
<string name="c_name.is.not.valid">Имя переменной не валидно: им ядолжно начинаться с буквы, может содержать буквы, цифры и знак подчёркивания.</string> <string name="c_name.is.not.valid">Имя переменной не валидно: им ядолжно начинаться с буквы, может содержать буквы, цифры и знак подчёркивания.</string>
<string name="c_sys.var.cannot.be.changed">Системная переменная не может быть изменена!</string> <string name="c_sys.var.cannot.be.changed">Системная переменная не может быть изменена!</string>
<string name="c_calc_editor_hint">Введите новое выражение</string> <string name="c_calc_editor_hint">Введите новое выражение</string>
<string name="c_press_to_copy">Нажмите для копирования</string> <string name="c_press_to_copy">Нажмите для копирования</string>
<string name="c_continue">Продолжить</string> <string name="c_continue">Продолжить</string>
<string name="c_history">История</string> <string name="c_history">История</string>
<string name="c_history_button">M</string> <string name="c_history_button">M</string>
<string name="c_history_is_empty">История пуста!</string> <string name="c_history_is_empty">История пуста!</string>
<string name="c_app_history">История</string> <string name="c_app_history">История</string>
<string name="c_char_is_not_accepted">Символ \'%s\' не допустим в названии переменной!</string> <string name="c_char_is_not_accepted">Символ \'%s\' не допустим в названии переменной!</string>
<string name="c_calc_angle_units">Единицы измерения углов</string> <string name="c_calc_angle_units">Единицы измерения углов</string>
<string name="p_deg">Градусы</string> <string name="p_deg">Градусы</string>
<string name="p_rad">Радианы</string> <string name="p_rad">Радианы</string>
<string name="p_grad">Грады</string> <string name="p_grad">Грады</string>
<string name="p_turns">Обороты</string> <string name="p_turns">Обороты</string>
<string name="c_angle_units_summary">Устанавливает единицы измерения углов.</string> <string name="c_angle_units_summary">Устанавливает единицы измерения углов.</string>
<string name="c_calc_numeral_bases">Системы счисления</string> <string name="c_calc_numeral_bases">Системы счисления</string>
<string name="c_numeral_bases_summary">Устанавливает систему счисления для всех вводимых чисел.</string> <string name="c_numeral_bases_summary">Устанавливает систему счисления для всех вводимых чисел.</string>
<string name="p_dec">Десятичная</string> <string name="p_dec">Десятичная</string>
<string name="p_hex">Шестнадцатеричная</string> <string name="p_hex">Шестнадцатеричная</string>
<string name="p_oct">Восьмиричная</string> <string name="p_oct">Восьмиричная</string>
<string name="p_bin">Бинарная</string> <string name="p_bin">Бинарная</string>
<string name="c_calc_theme">Тема оформления</string> <string name="c_calc_theme">Тема оформления</string>
<string name="p_default_theme">Серая</string> <string name="p_default_theme">Серая</string>
<string name="p_violet_theme">Фиолетовая</string> <string name="p_violet_theme">Фиолетовая</string>
<string name="p_light_blue_theme">Голубая</string> <string name="p_light_blue_theme">Голубая</string>
<string name="p_metro_blue_theme">Метро Синяя (По умолчанию)</string> <string name="p_metro_blue_theme">Метро Синяя (По умолчанию)</string>
<string name="p_metro_green_theme">Метро Зелёная</string> <string name="p_metro_green_theme">Метро Зелёная</string>
<string name="p_metro_purple_theme">Метро Фиолетовая</string> <string name="p_metro_purple_theme">Метро Фиолетовая</string>
<string name="c_calc_result_precision_summary">Точность результата(все вычисления производятся максимально точно)</string> <string name="c_calc_result_precision_summary">Точность результата(все вычисления производятся максимально точно)</string>
<string name="c_calc_color_display_summary">Включает/выключает подсветку синтаксиса в поле редактирования калькулятора</string> <string name="c_calc_color_display_summary">Включает/выключает подсветку синтаксиса в поле редактирования калькулятора</string>
<string name="c_calc_theme_summary">Устанавливает тему оформления приложения</string> <string name="c_calc_theme_summary">Устанавливает тему оформления приложения</string>
<string name="c_clear_history">Очистить историю</string> <string name="c_clear_history">Очистить историю</string>
<string name="c_simplify_instead_of_numeric">Следующие константы не определены: {0}!</string> <string name="c_simplify_instead_of_numeric">Следующие константы не определены: {0}!</string>
<string name="p_grouping_separator_no">Не использовать разделитель разрядов</string> <string name="p_grouping_separator_no">Не использовать разделитель разрядов</string>
<string name="p_grouping_separator_apostrophe">Апостроф (\')</string> <string name="p_grouping_separator_apostrophe">Апостроф (\')</string>
<string name="p_grouping_separator_space">Пробел ( )</string> <string name="p_grouping_separator_space">Пробел ( )</string>
<string name="c_calc_grouping_separator">Разделитель разрядов</string> <string name="c_calc_grouping_separator">Разделитель разрядов</string>
<string name="c_calc_grouping_separator_summary">Устанавливает разделитель разрядов числа</string> <string name="c_calc_grouping_separator_summary">Устанавливает разделитель разрядов числа</string>
<string name="c_calc_multiplication_sign">Знак произведения</string> <string name="c_calc_multiplication_sign">Знак произведения</string>
<string name="c_calc_multiplication_sign_summary">Устанавливает знак произведения</string> <string name="c_calc_multiplication_sign_summary">Устанавливает знак произведения</string>
<string name="c_calc_layout">Раскладка</string> <string name="c_calc_layout">Раскладка</string>
<string name="p_layout_cellphone">Научная (телефон)</string> <string name="p_layout_cellphone">Научная (телефон)</string>
<string name="p_layout_calculator">Научная</string> <string name="p_layout_calculator">Научная</string>
<string name="p_layout_simple">Простая</string> <string name="p_layout_simple">Простая</string>
<string name="c_calc_layout_summary">Устанавливает раскладку кнопок</string> <string name="c_calc_layout_summary">Устанавливает раскладку кнопок</string>
<string name="c_calc_haptic_feedback_title">Отклик на нажатие</string> <string name="c_calc_haptic_feedback_title">Отклик на нажатие</string>
<string name="c_calc_haptic_feedback_summary">Включает/выключает вибрацию по нажатию клавиши</string> <string name="c_calc_haptic_feedback_summary">Включает/выключает вибрацию по нажатию клавиши</string>
<string name="p_calc_haptic_feedback_strength_short">Маленькая</string> <string name="p_calc_haptic_feedback_strength_short">Маленькая</string>
<string name="p_calc_haptic_feedback_strength_middle">Средняя</string> <string name="p_calc_haptic_feedback_strength_middle">Средняя</string>
<string name="p_calc_haptic_feedback_strength_long">Большая</string> <string name="p_calc_haptic_feedback_strength_long">Большая</string>
<string name="p_calc_haptic_feedback_duration_title">Длительность отклика</string> <string name="p_calc_haptic_feedback_duration_title">Длительность отклика</string>
<string name="p_calc_haptic_feedback_duration_summary">Длительность вибрации по нажатию клавиши</string> <string name="p_calc_haptic_feedback_duration_summary">Длительность вибрации по нажатию клавиши</string>
<string name="c_empty_var_error">Невозможно создать пустую константу!</string> <string name="c_empty_var_error">Невозможно создать пустую константу!</string>
<string name="c_not_valid_result">Результат не допустим!</string> <string name="c_not_valid_result">Результат не допустим!</string>
<string name="c_plot_graph">График</string> <string name="c_plot_graph">График</string>
<string name="c_min_x_value">От</string> <string name="c_min_x_value">От</string>
<string name="c_max_x_value">До</string> <string name="c_max_x_value">До</string>
<string name="c_swipe_distance">Длина свайпа для клавиш</string> <string name="c_swipe_distance">Длина свайпа для клавиш</string>
<string name="c_swipe_distance_summary">Устанавливает длину свайпа для клавиш которые поддерживают дополнительные действия по свайпу</string> <string name="c_swipe_distance_summary">Устанавливает длину свайпа для клавиш которые поддерживают дополнительные действия по свайпу</string>
<string name="c_comment">Комментарий</string> <string name="c_comment">Комментарий</string>
<string name="c_history_item_saved">Сохранено</string> <string name="c_history_item_saved">Сохранено</string>
<string name="c_history_item_not_saved">Не сохранено</string> <string name="c_history_item_not_saved">Не сохранено</string>
<string name="c_expression_copied">Выражение скопировано в буфер!</string> <string name="c_expression_copied">Выражение скопировано в буфер!</string>
<string name="c_history_item_status">Статус: </string> <string name="c_history_item_status">Статус: </string>
<string name="c_history_item_comment">Комментарий: </string> <string name="c_history_item_comment">Комментарий: </string>
<string name="c_use">Использовать</string> <string name="c_use">Использовать</string>
<string name="c_use_short">Исп.</string> <string name="c_use_short">Исп.</string>
<string name="c_copy_expression">Копировать выражение</string> <string name="c_copy_expression">Копировать выражение</string>
<string name="c_copy_result">Копировать результат</string> <string name="c_copy_result">Копировать результат</string>
<string name="c_history_expression">Значение</string> <string name="c_history_expression">Значение</string>
<string name="c_history_item_already_saved">Сохранено (см. вкладку \'Сохранённая история\')</string> <string name="c_history_item_already_saved">Сохранено (см. вкладку \'Сохранённая история\')</string>
<string name="c_history_comment">Комментарий</string> <string name="c_history_comment">Комментарий</string>
<string name="c_save_history">Сохранить</string> <string name="c_save_history">Сохранить</string>
<string name="c_edit_history">Изменить</string> <string name="c_edit_history">Изменить</string>
<string name="c_edit">Изменить</string> <string name="c_edit">Изменить</string>
<string name="c_saved_history">Сохранённая история</string> <string name="c_saved_history">Сохранённая история</string>
<string name="c_history_already_saved">История уже была сохранена!</string> <string name="c_history_already_saved">История уже была сохранена!</string>
<string name="c_history_must_be_saved">История должна быть сохранена перед редактированием!</string> <string name="c_history_must_be_saved">История должна быть сохранена перед редактированием!</string>
<string name="c_history_was_removed">История успешно удалена!</string> <string name="c_history_was_removed">История успешно удалена!</string>
<string name="c_history_saved">История успешно сохранена!</string> <string name="c_history_saved">История успешно сохранена!</string>
<string name="c_copy_description">Копировать описание</string> <string name="c_copy_description">Копировать описание</string>
<string name="c_copy_value">Копировать значение</string> <string name="c_copy_value">Копировать значение</string>
<string name="c_first_start_text_title">Приветствие</string> <string name="c_first_start_text_title">Приветствие</string>
<string name="c_first_start_text">Спасибо за выбор Калькулятора++!\n\nКалькулятор++ - это мощный инструмент для проведения ежедневных расчётов.\n\nДля избавление от рекламы и поддержки проекта вы можете воспользоваться специальной опцией доступной из настроек приложения.\n\nПеред началом работы рекомендуется прочитать FAQ и подсказки для использования всех возможностей программы (нажмите Меню, затем Помощь)</string> <string name="c_first_start_text">Спасибо за выбор Калькулятора++!\n\nКалькулятор++ - это мощный инструмент для проведения ежедневных расчётов.\n\nДля избавление от рекламы и поддержки проекта вы можете воспользоваться специальной опцией доступной из настроек приложения.\n\nПеред началом работы рекомендуется прочитать FAQ и подсказки для использования всех возможностей программы (нажмите Меню, затем Помощь)</string>
<string name="c_calc_show_release_notes_title">Показывать примечания к выпуску</string> <string name="c_calc_show_release_notes_title">Показывать примечания к выпуску</string>
<string name="c_calc_show_release_notes_summary">Определяет показывать или нет всплывающее окно с примечаниями к выпуску после обновления новой версии</string> <string name="c_calc_show_release_notes_summary">Определяет показывать или нет всплывающее окно с примечаниями к выпуску после обновления новой версии</string>
<string name="c_calc_use_back_button_as_prev_summary">Устанавливает поведение по нажатию на кнопку Назад</string> <string name="c_calc_use_back_button_as_prev_summary">Устанавливает поведение по нажатию на кнопку Назад</string>
<string name="c_calc_use_back_button_as_prev_title">Использовать кнопку назад как назад по истории</string> <string name="c_calc_use_back_button_as_prev_title">Использовать кнопку назад как назад по истории</string>
<string name="c_clear_billing_info_summary">Информация о покупках будет обновлена с сервера</string> <string name="c_clear_billing_info_summary">Информация о покупках будет обновлена с сервера</string>
<string name="c_clear_billing_info_title">Очистить информация о покупках</string> <string name="c_clear_billing_info_title">Очистить информация о покупках</string>
<string name="c_warning">Внимание</string> <string name="c_warning">Внимание</string>
<string name="c_error">Ошибка</string> <string name="c_error">Ошибка</string>
<string name="c_billing_error">Биллинг не поддерживается: вы должны иметь Google Checkout аккаунт привязанный в вашему Google аккаунту и должны быть подключены к интернету.</string> <string name="c_billing_error">Биллинг не поддерживается: вы должны иметь Google Checkout аккаунт привязанный в вашему Google аккаунту и должны быть подключены к интернету.</string>
<string name="c_calc_ad_free_title">Поддержать проект</string> <string name="c_calc_ad_free_title">Поддержать проект</string>
<string name="c_calc_ad_free_summary">И убрать рекламу</string> <string name="c_calc_ad_free_summary">И убрать рекламу</string>
<string name="c_calc_already_purchased">Опция уже была куплена!</string> <string name="c_calc_already_purchased">Опция уже была куплена!</string>
<string name="c_calc_purchasing">Покупаем…</string> <string name="c_calc_purchasing">Покупаем…</string>
<string name="c_calc_clearing">Очищаем…</string> <string name="c_calc_clearing">Очищаем…</string>
<string name="c_feedback_title">Отзыв</string> <string name="c_feedback_title">Отзыв</string>
<string name="c_feedback_text">Вы используете Калькулятор++ некоторое время\n <string name="c_feedback_text">Вы используете Калькулятор++ некоторое время\n
и для нас важно узнать ваше мнение о приложении.\n\n и для нас важно узнать ваше мнение о приложении.\n\n
Пожалуйста, оцените Калькулятор++ \nна <a href="https://market.android.com/details?id=org.solovyev.android.calculator">Google Play</a>,\n оставьте комментарий или \nобсудите приложение \nна нашем <a href="http://calculatorpp.com/forum/">форуме</a> Пожалуйста, оцените Калькулятор++ \nна <a href="https://market.android.com/details?id=org.solovyev.android.calculator">Google Play</a>,\n оставьте комментарий или \nобсудите приложение \nна нашем <a href="http://calculatorpp.com/forum/">форуме</a>
</string> </string>
<string name="c_notespp_announce_text">Хорошие новости - я только что выпустил новое приложение под Андроид под названием <a href="https://play.google.com/store/apps/details?id=org.solovyev.android.notes">Заметки++</a>.\n <string name="c_notespp_announce_text">Хорошие новости - я только что выпустил новое приложение под Андроид под названием <a href="https://play.google.com/store/apps/details?id=org.solovyev.android.notes">Заметки++</a>.\n
Если вы заинтересованы в быстром и удобном способе оставлять заметки пройдите по <a href="https://play.google.com/store/apps/details?id=org.solovyev.android.notes">ссылке</a> и попробуйте Заметки++! Если вы заинтересованы в быстром и удобном способе оставлять заметки пройдите по <a href="https://play.google.com/store/apps/details?id=org.solovyev.android.notes">ссылке</a> и попробуйте Заметки++!
</string> </string>
<string name="c_angle_units_changed_to">Единицы измерения углов изменены на \'%s\'!</string> <string name="c_angle_units_changed_to">Единицы измерения углов изменены на \'%s\'!</string>
<string name="c_numeral_base_changed_to">Система счисления изменена на \'%s\'!</string> <string name="c_numeral_base_changed_to">Система счисления изменена на \'%s\'!</string>
<string name="c_conversion_tool">Перевод величин</string> <string name="c_conversion_tool">Перевод величин</string>
<string name="c_convert">Перевести в…</string> <string name="c_convert">Перевести в…</string>
<string name="convert_to_hex">Перевести в hex</string> <string name="convert_to_hex">Перевести в hex</string>
<string name="convert_to_bin">Перевести в bin</string> <string name="convert_to_bin">Перевести в bin</string>
<string name="convert_to_dec">Перевести в dec</string> <string name="convert_to_dec">Перевести в dec</string>
<string name="editor">Редактор</string>
<string name="result">Результат</string>
<string name="other">Другие</string>
<string name="derivatives">Производные/Интегралы</string>
<string name="crashed">Калькулятор++ обнаружил ошибку…</string>
<string name="crash_dialog_title">Отчёт об ошибке в Калькуляторе++</string>
<string name="crash_dialog_text">
К сожалению, Калькулятор++ был остановлен ошибкой.\n\n
Для того чтобы исправить, её нам необходима некоторая информация. Мы рекомендуем вам послать этот отчёт об ошибке (после нажатия кнопки \'Да\' вы увидите всю передаваемую информацию в новом окне).\n\n
Хотите лы вы послать отчёт об ошибке?
</string>
<string name="prefs_graph_scren_title">Настройки графика</string>
<string name="prefs_graph_interpolate_function">Интерполировать график</string>
<string name="prefs_graph_real_color_title">Цвет вещественной части графика</string>
<string name="prefs_graph_real_color_summary">Устанавливает цвет вещественной части графика</string>
<string name="prefs_graph_imag_color_title">Цвет мнимой части графика</string>
<string name="prefs_graph_imag_color_summary">Устанавливает цвет мнимой части графика</string>
</resources> </resources>

View File

@ -1,105 +1,103 @@
<!-- <!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev. ~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com ~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org ~ or visit http://se.solovyev.org
--> -->
<resources> <resources>
<string-array name="p_theme_names"> <string-array name="p_theme_names">
<item>@string/p_default_theme</item> <item>@string/p_default_theme</item>
<item>@string/p_violet_theme</item> <item>@string/p_violet_theme</item>
<item>@string/p_light_blue_theme</item> <item>@string/p_light_blue_theme</item>
<item>@string/p_metro_blue_theme</item> <item>@string/p_metro_blue_theme</item>
<item>@string/p_metro_green_theme</item> <item>@string/p_metro_green_theme</item>
<item>@string/p_metro_purple_theme</item> <item>@string/p_metro_purple_theme</item>
</string-array> </string-array>
<string-array name="p_theme_values"> <string-array name="p_theme_values">
<item>default_theme</item> <item>default_theme</item>
<item>violet_theme</item> <item>violet_theme</item>
<item>light_blue_theme</item> <item>light_blue_theme</item>
<item>metro_blue_theme</item> <item>metro_blue_theme</item>
<item>metro_green_theme</item> <item>metro_green_theme</item>
<item>metro_purple_theme</item> <item>metro_purple_theme</item>
</string-array> </string-array>
<string-array name="p_grouping_separator_names"> <string-array name="p_grouping_separator_names">
<item>@string/p_grouping_separator_no</item> <item>@string/p_grouping_separator_no</item>
<item>@string/p_grouping_separator_apostrophe</item> <item>@string/p_grouping_separator_apostrophe</item>
<item>@string/p_grouping_separator_space</item> <item>@string/p_grouping_separator_space</item>
</string-array> </string-array>
<string-array name="p_grouping_separator_values"> <string-array name="p_grouping_separator_values">
<item>""</item> <item>""</item>
<item>\'</item> <item>\'</item>
<item>" "</item> <item>" "</item>
</string-array> </string-array>
<string-array name="p_multiplication_sign_values"> <string-array name="p_multiplication_sign_values">
<item>"*"</item> <item>"*"</item>
<item>"×"</item> <item>"×"</item>
<item>"∙"</item> <item>"∙"</item>
</string-array> </string-array>
<string-array name="p_layout_names"> <string-array name="p_layout_names">
<item>@string/p_layout_calculator</item> <item>@string/p_layout_calculator</item>
<item>@string/p_layout_simple</item> <item>@string/p_layout_simple</item>
<item>@string/p_layout_cellphone</item> </string-array>
</string-array> <string-array name="p_layout_values">
<string-array name="p_layout_values"> <item>main_calculator</item>
<item>main_calculator</item> <item>simple</item>
<item>simple</item> </string-array>
<item>main_cellphone</item>
</string-array> <string-array name="p_calc_haptic_feedback_duration_names">
<item>@string/p_calc_haptic_feedback_strength_short</item>
<string-array name="p_calc_haptic_feedback_duration_names"> <item>@string/p_calc_haptic_feedback_strength_middle</item>
<item>@string/p_calc_haptic_feedback_strength_short</item> <item>@string/p_calc_haptic_feedback_strength_long</item>
<item>@string/p_calc_haptic_feedback_strength_middle</item> </string-array>
<item>@string/p_calc_haptic_feedback_strength_long</item> <string-array name="p_calc_haptic_feedback_duration_values">
</string-array> <item>30</item>
<string-array name="p_calc_haptic_feedback_duration_values"> <item>60</item>
<item>30</item> <item>100</item>
<item>60</item> </string-array>
<item>100</item>
</string-array> <string-array name="p_angle_units_names">
<item>@string/p_deg</item>
<string-array name="p_angle_units_names"> <item>@string/p_rad</item>
<item>@string/p_deg</item> <item>@string/p_grad</item>
<item>@string/p_rad</item> <item>@string/p_turns</item>
<item>@string/p_grad</item> </string-array>
<item>@string/p_turns</item> <string-array name="p_angle_units">
</string-array> <item>deg</item>
<string-array name="p_angle_units"> <item>rad</item>
<item>deg</item> <item>grad</item>
<item>rad</item> <item>turns</item>
<item>grad</item> </string-array>
<item>turns</item>
</string-array> <string-array name="p_numeral_bases_names">
<item>@string/p_dec</item>
<string-array name="p_numeral_bases_names"> <item>@string/p_hex</item>
<item>@string/p_dec</item> <item>@string/p_oct</item>
<item>@string/p_hex</item> <item>@string/p_bin</item>
<item>@string/p_oct</item> </string-array>
<item>@string/p_bin</item> <string-array name="p_numeral_bases">
</string-array> <item>dec</item>
<string-array name="p_numeral_bases"> <item>hex</item>
<item>dec</item> <item>oct</item>
<item>hex</item> <item>bin</item>
<item>oct</item> </string-array>
<item>bin</item>
</string-array> <string-array name="graph_line_color_names">
<item>White</item>
<string-array name="graph_line_color_names"> <item>Grey</item>
<item>White</item> <item>Red</item>
<item>Grey</item> <item>Blue</item>
<item>Red</item> <item>Green</item>
<item>Blue</item> </string-array>
<item>Green</item> <string-array name="graph_line_color_values">
</string-array> <item>white</item>
<string-array name="graph_line_color_values"> <item>grey</item>
<item>white</item> <item>red</item>
<item>grey</item> <item>blue</item>
<item>red</item> <item>green</item>
<item>blue</item> </string-array>
<item>green</item>
</string-array>
</resources> </resources>

View File

@ -1,20 +1,21 @@
<resources> <resources>
<dimen name="button_margin">0.5dp</dimen> <dimen name="text_size">20sp</dimen>
<dimen name="text_size">20sp</dimen> <dimen name="button_margin">0.5dp</dimen>
<dimen name="display_margin_land">2.5dp</dimen>
<dimen name="fragment_text_size">15sp</dimen>
<dimen name="fragment_title_text_size">20sp</dimen> <dimen name="fragment_text_size">15sp</dimen>
<dimen name="fragment_title_text_size">20sp</dimen>
<dimen name="keyboard_button_text_size">30dp</dimen>
<dimen name="button_text_size">20dp</dimen> <dimen name="keyboard_button_text_size">30dp</dimen>
<dimen name="display_text_size">25sp</dimen> <dimen name="button_text_size">20dp</dimen>
<dimen name="editor_text_size">25sp</dimen> <dimen name="display_text_size">25sp</dimen>
<dimen name="pane_margin">5dp</dimen> <dimen name="editor_text_size">25sp</dimen>
<dimen name="pane_padding">5dp</dimen> <dimen name="pane_margin">5dp</dimen>
<dimen name="math_entity_text_size">20sp</dimen> <dimen name="pane_padding">5dp</dimen>
<dimen name="math_entity_description_text_size">15sp</dimen> <dimen name="math_entity_text_size">20sp</dimen>
<dimen name="math_entity_description_text_size">15sp</dimen>
<!--only for not multipane-->
<dimen name="editor_padding">5dp</dimen> <!--only for not multipane-->
<dimen name="display_padding">3dp</dimen> <dimen name="editor_padding">5dp</dimen>
<dimen name="display_padding">3dp</dimen>
</resources> </resources>

View File

@ -225,5 +225,4 @@
<string name="prefs_graph_real_color_summary">Sets color of real part functions graph</string> <string name="prefs_graph_real_color_summary">Sets color of real part functions graph</string>
<string name="prefs_graph_imag_color_title">Color of imaginary part of functions graph</string> <string name="prefs_graph_imag_color_title">Color of imaginary part of functions graph</string>
<string name="prefs_graph_imag_color_summary">Sets color of imaginary part functions graph</string> <string name="prefs_graph_imag_color_summary">Sets color of imaginary part functions graph</string>
</resources> </resources>

View File

@ -212,7 +212,7 @@ public class CalculatorActivity extends SherlockFragmentActivity implements Shar
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
final CalculatorPreferences.Gui.Layout newLayout = CalculatorPreferences.Gui.layout.getPreference(preferences); final CalculatorPreferences.Gui.Layout newLayout = CalculatorPreferences.Gui.layout.getPreference(preferences);
if ( newLayout.getLayoutId() != activityHelper.getLayoutId() ) { if ( newLayout != activityHelper.getLayout() ) {
AndroidUtils.restartActivity(this); AndroidUtils.restartActivity(this);
} }

View File

@ -1,62 +1,65 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import android.app.Activity; import android.app.Activity;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.View; import android.view.View;
import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.app.SherlockFragmentActivity;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.solovyev.android.calculator.about.CalculatorFragmentType; import org.solovyev.android.calculator.about.CalculatorFragmentType;
/** /**
* User: serso * User: serso
* Date: 9/25/12 * Date: 9/25/12
* Time: 10:31 PM * Time: 10:31 PM
*/ */
public interface CalculatorActivityHelper { public interface CalculatorActivityHelper {
void onCreate(@NotNull SherlockFragmentActivity activity, @Nullable Bundle savedInstanceState); void onCreate(@NotNull SherlockFragmentActivity activity, @Nullable Bundle savedInstanceState);
void onCreate(@NotNull Activity activity, @Nullable Bundle savedInstanceState); void onCreate(@NotNull Activity activity, @Nullable Bundle savedInstanceState);
void onSaveInstanceState(@NotNull SherlockFragmentActivity activity, @NotNull Bundle outState); void onSaveInstanceState(@NotNull SherlockFragmentActivity activity, @NotNull Bundle outState);
void onSaveInstanceState(@NotNull Activity activity, @NotNull Bundle outState); void onSaveInstanceState(@NotNull Activity activity, @NotNull Bundle outState);
int getLayoutId(); int getLayoutId();
@NotNull @NotNull
CalculatorPreferences.Gui.Theme getTheme(); CalculatorPreferences.Gui.Theme getTheme();
void onResume(@NotNull SherlockFragmentActivity activity); @NotNull
void onResume(@NotNull Activity activity); CalculatorPreferences.Gui.Layout getLayout();
void onPause(@NotNull Activity activity); void onResume(@NotNull SherlockFragmentActivity activity);
void onPause(@NotNull SherlockFragmentActivity activity); void onResume(@NotNull Activity activity);
void onDestroy(@NotNull SherlockFragmentActivity activity); void onPause(@NotNull Activity activity);
void onDestroy(@NotNull Activity activity); void onPause(@NotNull SherlockFragmentActivity activity);
void addTab(@NotNull SherlockFragmentActivity activity, void onDestroy(@NotNull SherlockFragmentActivity activity);
@NotNull String tag, void onDestroy(@NotNull Activity activity);
@NotNull Class<? extends Fragment> fragmentClass,
@Nullable Bundle fragmentArgs, void addTab(@NotNull SherlockFragmentActivity activity,
int captionResId, @NotNull String tag,
int parentViewId); @NotNull Class<? extends Fragment> fragmentClass,
@Nullable Bundle fragmentArgs,
void addTab(@NotNull SherlockFragmentActivity activity, int captionResId,
@NotNull CalculatorFragmentType fragmentType, int parentViewId);
@Nullable Bundle fragmentArgs,
int parentViewId); void addTab(@NotNull SherlockFragmentActivity activity,
@NotNull CalculatorFragmentType fragmentType,
void setFragment(@NotNull SherlockFragmentActivity activity, @Nullable Bundle fragmentArgs,
@NotNull CalculatorFragmentType fragmentType, int parentViewId);
@Nullable Bundle fragmentArgs,
int parentViewId); void setFragment(@NotNull SherlockFragmentActivity activity,
@NotNull CalculatorFragmentType fragmentType,
@Nullable Bundle fragmentArgs,
void logDebug(@NotNull String message); int parentViewId);
void processButtons(@NotNull Activity activity, @NotNull View root);
void logDebug(@NotNull String message);
void logError(@NotNull String message);
} void processButtons(@NotNull Activity activity, @NotNull View root);
void logError(@NotNull String message);
}

View File

@ -1,241 +1,252 @@
package org.solovyev.android.calculator; package org.solovyev.android.calculator;
import android.app.Activity; import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager; import android.preference.PreferenceManager;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction; import android.support.v4.app.FragmentTransaction;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import com.actionbarsherlock.app.ActionBar; import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.app.SherlockFragmentActivity;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.solovyev.android.AndroidUtils; import org.solovyev.android.AndroidUtils;
import org.solovyev.android.calculator.about.CalculatorFragmentType; import org.solovyev.android.calculator.about.CalculatorFragmentType;
import org.solovyev.android.sherlock.tabs.ActionBarFragmentTabListener; import org.solovyev.android.sherlock.tabs.ActionBarFragmentTabListener;
/** /**
* User: serso * User: serso
* Date: 9/25/12 * Date: 9/25/12
* Time: 10:32 PM * Time: 10:32 PM
*/ */
public class CalculatorActivityHelperImpl extends AbstractCalculatorHelper implements CalculatorActivityHelper { public class CalculatorActivityHelperImpl extends AbstractCalculatorHelper implements CalculatorActivityHelper {
/* /*
********************************************************************** **********************************************************************
* *
* CONSTANTS * CONSTANTS
* *
********************************************************************** **********************************************************************
*/ */
/* /*
********************************************************************** **********************************************************************
* *
* FIELDS * FIELDS
* *
********************************************************************** **********************************************************************
*/ */
private int layoutId; private int layoutId;
private boolean homeIcon = false; private boolean homeIcon = false;
@NotNull @NotNull
private CalculatorPreferences.Gui.Theme theme; private CalculatorPreferences.Gui.Theme theme;
private int selectedNavigationIndex = 0; @NotNull
private CalculatorPreferences.Gui.Layout layout;
public CalculatorActivityHelperImpl(int layoutId, @NotNull String logTag) {
super(logTag); private int selectedNavigationIndex = 0;
this.layoutId = layoutId;
} public CalculatorActivityHelperImpl(int layoutId, @NotNull String logTag) {
super(logTag);
public CalculatorActivityHelperImpl(int layoutId, boolean homeIcon) { this.layoutId = layoutId;
this.layoutId = layoutId; }
this.homeIcon = homeIcon;
} public CalculatorActivityHelperImpl(int layoutId, boolean homeIcon) {
this.layoutId = layoutId;
@Override this.homeIcon = homeIcon;
public void onCreate(@NotNull Activity activity, @Nullable Bundle savedInstanceState) { }
super.onCreate(activity);
@Override
if (activity instanceof CalculatorEventListener) { public void onCreate(@NotNull Activity activity, @Nullable Bundle savedInstanceState) {
CalculatorLocatorImpl.getInstance().getCalculator().addCalculatorEventListener((CalculatorEventListener) activity); super.onCreate(activity);
}
if (activity instanceof CalculatorEventListener) {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity); CalculatorLocatorImpl.getInstance().getCalculator().addCalculatorEventListener((CalculatorEventListener) activity);
}
this.theme = CalculatorPreferences.Gui.getTheme(preferences);
activity.setTheme(this.theme.getThemeId()); final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
activity.setContentView(layoutId); this.theme = CalculatorPreferences.Gui.getTheme(preferences);
activity.setTheme(this.theme.getThemeId());
final View root = activity.findViewById(R.id.main_layout);
if (root != null) { this.layout = CalculatorPreferences.Gui.getLayout(preferences);
processButtons(activity, root);
} else { activity.setContentView(layoutId);
Log.e(CalculatorActivityHelperImpl.class.getSimpleName(), "Root is null for " + activity.getClass().getName());
} final View root = activity.findViewById(R.id.main_layout);
} if (root != null) {
processButtons(activity, root);
@Override } else {
public void onCreate(@NotNull final SherlockFragmentActivity activity, @Nullable Bundle savedInstanceState) { Log.e(CalculatorActivityHelperImpl.class.getSimpleName(), "Root is null for " + activity.getClass().getName());
this.onCreate((Activity) activity, savedInstanceState); }
}
final ActionBar actionBar = activity.getSupportActionBar();
actionBar.setDisplayUseLogoEnabled(false); @Override
actionBar.setDisplayHomeAsUpEnabled(homeIcon); public void onCreate(@NotNull final SherlockFragmentActivity activity, @Nullable Bundle savedInstanceState) {
actionBar.setHomeButtonEnabled(false); this.onCreate((Activity) activity, savedInstanceState);
actionBar.setDisplayShowHomeEnabled(true);
final ActionBar actionBar = activity.getSupportActionBar();
toggleTitle(activity, true); actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(homeIcon);
actionBar.setIcon(R.drawable.icon_action_bar); actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayShowHomeEnabled(true);
}
toggleTitle(activity, true);
private void toggleTitle(@NotNull SherlockFragmentActivity activity, boolean showTitle) {
final ActionBar actionBar = activity.getSupportActionBar(); actionBar.setIcon(R.drawable.icon_action_bar);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
if (activity instanceof CalculatorActivity) { }
if (AndroidUtils.getScreenOrientation(activity) == Configuration.ORIENTATION_PORTRAIT) {
actionBar.setDisplayShowTitleEnabled(true); private void toggleTitle(@NotNull SherlockFragmentActivity activity, boolean showTitle) {
} else { final ActionBar actionBar = activity.getSupportActionBar();
actionBar.setDisplayShowTitleEnabled(false);
} if (activity instanceof CalculatorActivity) {
} else { if (AndroidUtils.getScreenOrientation(activity) == Configuration.ORIENTATION_PORTRAIT) {
actionBar.setDisplayShowTitleEnabled(showTitle); actionBar.setDisplayShowTitleEnabled(true);
} } else {
} actionBar.setDisplayShowTitleEnabled(false);
}
public void restoreSavedTab(@NotNull SherlockFragmentActivity activity) { } else {
final ActionBar actionBar = activity.getSupportActionBar(); actionBar.setDisplayShowTitleEnabled(showTitle);
if (selectedNavigationIndex >= 0 && selectedNavigationIndex < actionBar.getTabCount()) { }
actionBar.setSelectedNavigationItem(selectedNavigationIndex); }
}
} public void restoreSavedTab(@NotNull SherlockFragmentActivity activity) {
final ActionBar actionBar = activity.getSupportActionBar();
@Override if (selectedNavigationIndex >= 0 && selectedNavigationIndex < actionBar.getTabCount()) {
public void onSaveInstanceState(@NotNull SherlockFragmentActivity activity, @NotNull Bundle outState) { actionBar.setSelectedNavigationItem(selectedNavigationIndex);
onSaveInstanceState((Activity) activity, outState); }
} }
@Override @Override
public void onSaveInstanceState(@NotNull Activity activity, @NotNull Bundle outState) { public void onSaveInstanceState(@NotNull SherlockFragmentActivity activity, @NotNull Bundle outState) {
} onSaveInstanceState((Activity) activity, outState);
}
@Override
public void onResume(@NotNull Activity activity) { @Override
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity); public void onSaveInstanceState(@NotNull Activity activity, @NotNull Bundle outState) {
}
final CalculatorPreferences.Gui.Theme newTheme = CalculatorPreferences.Gui.theme.getPreference(preferences);
if (!theme.equals(newTheme)) { @Override
AndroidUtils.restartActivity(activity); public void onResume(@NotNull Activity activity) {
} final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
}
final CalculatorPreferences.Gui.Theme newTheme = CalculatorPreferences.Gui.theme.getPreference(preferences);
@Override if (!theme.equals(newTheme)) {
public void onPause(@NotNull Activity activity) { AndroidUtils.restartActivity(activity);
} }
}
@Override
public void onPause(@NotNull SherlockFragmentActivity activity) { @Override
onPause((Activity) activity); public void onPause(@NotNull Activity activity) {
}
final int selectedNavigationIndex = activity.getSupportActionBar().getSelectedNavigationIndex();
if (selectedNavigationIndex >= 0) { @Override
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity); public void onPause(@NotNull SherlockFragmentActivity activity) {
final SharedPreferences.Editor editor = preferences.edit(); onPause((Activity) activity);
editor.putInt(getSavedTabPreferenceName(activity), selectedNavigationIndex);
editor.commit(); final int selectedNavigationIndex = activity.getSupportActionBar().getSelectedNavigationIndex();
} if (selectedNavigationIndex >= 0) {
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
} final SharedPreferences.Editor editor = preferences.edit();
editor.putInt(getSavedTabPreferenceName(activity), selectedNavigationIndex);
@NotNull editor.commit();
private String getSavedTabPreferenceName(@NotNull Activity activity) { }
return "tab_" + activity.getClass().getSimpleName();
} }
@Override @NotNull
public void onDestroy(@NotNull Activity activity) { private String getSavedTabPreferenceName(@NotNull Activity activity) {
super.onDestroy(activity); return "tab_" + activity.getClass().getSimpleName();
}
if (activity instanceof CalculatorEventListener) {
CalculatorLocatorImpl.getInstance().getCalculator().removeCalculatorEventListener((CalculatorEventListener) activity); @Override
} public void onDestroy(@NotNull Activity activity) {
} super.onDestroy(activity);
@Override if (activity instanceof CalculatorEventListener) {
public void onDestroy(@NotNull SherlockFragmentActivity activity) { CalculatorLocatorImpl.getInstance().getCalculator().removeCalculatorEventListener((CalculatorEventListener) activity);
this.onDestroy((Activity) activity); }
} }
@Override @Override
public void addTab(@NotNull SherlockFragmentActivity activity, public void onDestroy(@NotNull SherlockFragmentActivity activity) {
@NotNull String tag, this.onDestroy((Activity) activity);
@NotNull Class<? extends Fragment> fragmentClass, }
@Nullable Bundle fragmentArgs,
int captionResId, @Override
int parentViewId) { public void addTab(@NotNull SherlockFragmentActivity activity,
final ActionBar actionBar = activity.getSupportActionBar(); @NotNull String tag,
@NotNull Class<? extends Fragment> fragmentClass,
final ActionBar.Tab tab = actionBar.newTab(); @Nullable Bundle fragmentArgs,
tab.setTag(tag); int captionResId,
tab.setText(captionResId); int parentViewId) {
final ActionBar actionBar = activity.getSupportActionBar();
final ActionBarFragmentTabListener listener = new ActionBarFragmentTabListener(activity, tag, fragmentClass, fragmentArgs, parentViewId);
tab.setTabListener(listener); final ActionBar.Tab tab = actionBar.newTab();
actionBar.addTab(tab); tab.setTag(tag);
} tab.setText(captionResId);
@Override final ActionBarFragmentTabListener listener = new ActionBarFragmentTabListener(activity, tag, fragmentClass, fragmentArgs, parentViewId);
public void addTab(@NotNull SherlockFragmentActivity activity, @NotNull CalculatorFragmentType fragmentType, @Nullable Bundle fragmentArgs, int parentViewId) { tab.setTabListener(listener);
addTab(activity, fragmentType.getFragmentTag(), fragmentType.getFragmentClass(), fragmentArgs, fragmentType.getDefaultTitleResId(), parentViewId); actionBar.addTab(tab);
} }
@Override @Override
public void setFragment(@NotNull SherlockFragmentActivity activity, @NotNull CalculatorFragmentType fragmentType, @Nullable Bundle fragmentArgs, int parentViewId) { public void addTab(@NotNull SherlockFragmentActivity activity, @NotNull CalculatorFragmentType fragmentType, @Nullable Bundle fragmentArgs, int parentViewId) {
final FragmentManager fm = activity.getSupportFragmentManager(); addTab(activity, fragmentType.getFragmentTag(), fragmentType.getFragmentClass(), fragmentArgs, fragmentType.getDefaultTitleResId(), parentViewId);
}
Fragment fragment = fm.findFragmentByTag(fragmentType.getFragmentTag());
if (fragment == null) { @Override
fragment = Fragment.instantiate(activity, fragmentType.getFragmentClass().getName(), fragmentArgs); public void setFragment(@NotNull SherlockFragmentActivity activity, @NotNull CalculatorFragmentType fragmentType, @Nullable Bundle fragmentArgs, int parentViewId) {
final FragmentTransaction ft = fm.beginTransaction(); final FragmentManager fm = activity.getSupportFragmentManager();
ft.add(parentViewId, fragment, fragmentType.getFragmentTag());
ft.commit(); Fragment fragment = fm.findFragmentByTag(fragmentType.getFragmentTag());
} else { if (fragment == null) {
if ( fragment.isDetached() ) { fragment = Fragment.instantiate(activity, fragmentType.getFragmentClass().getName(), fragmentArgs);
final FragmentTransaction ft = fm.beginTransaction(); final FragmentTransaction ft = fm.beginTransaction();
ft.attach(fragment); ft.add(parentViewId, fragment, fragmentType.getFragmentTag());
ft.commit(); ft.commit();
} } else {
if ( fragment.isDetached() ) {
} final FragmentTransaction ft = fm.beginTransaction();
} ft.attach(fragment);
ft.commit();
@Override }
public int getLayoutId() {
return layoutId; }
} }
@Override @Override
@NotNull public int getLayoutId() {
public CalculatorPreferences.Gui.Theme getTheme() { return layoutId;
return theme; }
}
@Override
@Override @NotNull
public void onResume(@NotNull SherlockFragmentActivity activity) { public CalculatorPreferences.Gui.Theme getTheme() {
onResume((Activity) activity); return theme;
}
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
selectedNavigationIndex = preferences.getInt(getSavedTabPreferenceName(activity), -1); @Override
restoreSavedTab(activity); @NotNull
} public CalculatorPreferences.Gui.Layout getLayout() {
} return layout;
}
@Override
public void onResume(@NotNull SherlockFragmentActivity activity) {
onResume((Activity) activity);
final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
selectedNavigationIndex = preferences.getInt(getSavedTabPreferenceName(activity), -1);
restoreSavedTab(activity);
}
}

View File

@ -45,6 +45,11 @@ public final class CalculatorPreferences {
return theme.getPreferenceNoError(preferences); return theme.getPreferenceNoError(preferences);
} }
@NotNull
public static Layout getLayout(@NotNull SharedPreferences preferences) {
return layout.getPreferenceNoError(preferences);
}
public static enum Theme { public static enum Theme {
default_theme(ThemeType.other, R.style.default_theme), default_theme(ThemeType.other, R.style.default_theme),
@ -83,7 +88,11 @@ public final class CalculatorPreferences {
public static enum Layout { public static enum Layout {
main_calculator(R.layout.main_calculator), main_calculator(R.layout.main_calculator),
main_cellphone(R.layout.main_cellphone),
// not used anymore
@Deprecated
main_cellphone(R.layout.main_calculator),
simple(R.layout.main_calculator); simple(R.layout.main_calculator);
private final int layoutId; private final int layoutId;
@ -139,6 +148,9 @@ public final class CalculatorPreferences {
applyDefaultPreference(preferences, Gui.theme); applyDefaultPreference(preferences, Gui.theme);
applyDefaultPreference(preferences, Gui.layout); applyDefaultPreference(preferences, Gui.layout);
if ( Gui.layout.getPreference(preferences) == Gui.Layout.main_cellphone ) {
Gui.layout.putDefault(preferences);
}
applyDefaultPreference(preferences, Gui.feedbackWindowShown); applyDefaultPreference(preferences, Gui.feedbackWindowShown);
applyDefaultPreference(preferences, Gui.notesppAnnounceShown); applyDefaultPreference(preferences, Gui.notesppAnnounceShown);
applyDefaultPreference(preferences, Gui.showReleaseNotes); applyDefaultPreference(preferences, Gui.showReleaseNotes);
@ -146,8 +158,6 @@ public final class CalculatorPreferences {
applyDefaultPreference(preferences, Gui.showEqualsButton); applyDefaultPreference(preferences, Gui.showEqualsButton);
applyDefaultPreference(preferences, Gui.autoOrientation); applyDefaultPreference(preferences, Gui.autoOrientation);
applyDefaultPreference(preferences, Gui.hideNumeralBaseDigits); applyDefaultPreference(preferences, Gui.hideNumeralBaseDigits);
applyDefaultPreference(preferences, Gui.theme);
applyDefaultPreference(preferences, Gui.theme);
applyDefaultPreference(preferences, Graph.interpolate); applyDefaultPreference(preferences, Graph.interpolate);
applyDefaultPreference(preferences, Graph.lineColorImag); applyDefaultPreference(preferences, Graph.lineColorImag);