From 0ab3afa453242f5c07f07c68c54141dcbb16942d Mon Sep 17 00:00:00 2001 From: Sergey Solovyev Date: Fri, 26 Oct 2012 23:29:05 +0400 Subject: [PATCH] Mobile layout for tablets --- calculatorpp-core/pom.xml | 4 +- calculatorpp-test/pom.xml | 2 +- calculatorpp/AndroidManifest.xml | 4 +- calculatorpp/pom.xml | 4 +- .../res/layout-land/calc_keyboard_mobile.xml | 53 ++ .../layout-land/main_calculator_mobile.xml | 16 + .../layout-land/main_first_pane_mobile.xml | 62 +++ .../res/layout/calc_display_mobile.xml | 17 + .../res/layout/calc_editor_mobile.xml | 24 + .../res/layout/calc_keyboard_mobile.xml | 69 +++ .../res/layout/main_calculator_mobile.xml | 44 ++ calculatorpp/res/values-ru/text_about.xml | 459 +++++++++--------- .../res/values-ru/text_preferences.xml | 27 +- calculatorpp/res/values-ru/text_strings.xml | 3 +- calculatorpp/res/values/arrays.xml | 2 + calculatorpp/res/values/text_about.xml | 456 ++++++++--------- calculatorpp/res/values/text_strings.xml | 1 + .../android/calculator/CalculatorButtons.java | 3 +- .../calculator/CalculatorDisplayFragment.java | 12 +- .../calculator/CalculatorEditorFragment.java | 186 ++++--- .../CalculatorKeyboardFragment.java | 8 +- .../calculator/CalculatorPreferences.java | 1 + pom.xml | 2 +- 23 files changed, 920 insertions(+), 539 deletions(-) create mode 100644 calculatorpp/res/layout-land/calc_keyboard_mobile.xml create mode 100644 calculatorpp/res/layout-land/main_calculator_mobile.xml create mode 100644 calculatorpp/res/layout-land/main_first_pane_mobile.xml create mode 100644 calculatorpp/res/layout/calc_display_mobile.xml create mode 100644 calculatorpp/res/layout/calc_editor_mobile.xml create mode 100644 calculatorpp/res/layout/calc_keyboard_mobile.xml create mode 100644 calculatorpp/res/layout/main_calculator_mobile.xml diff --git a/calculatorpp-core/pom.xml b/calculatorpp-core/pom.xml index 4a7a31b3..c369c8e3 100644 --- a/calculatorpp-core/pom.xml +++ b/calculatorpp-core/pom.xml @@ -7,12 +7,12 @@ org.solovyev.android calculatorpp-parent - 1.4.3-b1-SNAPSHOT + 1.4.3-SNAPSHOT org.solovyev.android calculatorpp-core - 1.4.3-b1-SNAPSHOT + 1.4.3-SNAPSHOT Calculator++ Application Core jar diff --git a/calculatorpp-test/pom.xml b/calculatorpp-test/pom.xml index 2a0b32d0..9fa4ed12 100644 --- a/calculatorpp-test/pom.xml +++ b/calculatorpp-test/pom.xml @@ -6,7 +6,7 @@ org.solovyev.android calculatorpp-parent - 1.4.3-b1-SNAPSHOT + 1.4.3-SNAPSHOT 4.0.0 diff --git a/calculatorpp/AndroidManifest.xml b/calculatorpp/AndroidManifest.xml index c174f9d7..1a2f92df 100644 --- a/calculatorpp/AndroidManifest.xml +++ b/calculatorpp/AndroidManifest.xml @@ -1,5 +1,5 @@ - + @@ -9,7 +9,7 @@ - + diff --git a/calculatorpp/pom.xml b/calculatorpp/pom.xml index 0721a157..266183bf 100644 --- a/calculatorpp/pom.xml +++ b/calculatorpp/pom.xml @@ -6,7 +6,7 @@ org.solovyev.android calculatorpp-parent - 1.4.3-b1-SNAPSHOT + 1.4.3-SNAPSHOT 4.0.0 @@ -23,7 +23,7 @@ org.solovyev.android calculatorpp-core - 1.4.3-b1-SNAPSHOT + 1.4.3-SNAPSHOT diff --git a/calculatorpp/res/layout-land/calc_keyboard_mobile.xml b/calculatorpp/res/layout-land/calc_keyboard_mobile.xml new file mode 100644 index 00000000..5bab90d8 --- /dev/null +++ b/calculatorpp/res/layout-land/calc_keyboard_mobile.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/calculatorpp/res/layout-land/main_calculator_mobile.xml b/calculatorpp/res/layout-land/main_calculator_mobile.xml new file mode 100644 index 00000000..8bb7bfa4 --- /dev/null +++ b/calculatorpp/res/layout-land/main_calculator_mobile.xml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/calculatorpp/res/layout-land/main_first_pane_mobile.xml b/calculatorpp/res/layout-land/main_first_pane_mobile.xml new file mode 100644 index 00000000..936335be --- /dev/null +++ b/calculatorpp/res/layout-land/main_first_pane_mobile.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/calculatorpp/res/layout/calc_display_mobile.xml b/calculatorpp/res/layout/calc_display_mobile.xml new file mode 100644 index 00000000..1a656d8a --- /dev/null +++ b/calculatorpp/res/layout/calc_display_mobile.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/calculatorpp/res/layout/calc_editor_mobile.xml b/calculatorpp/res/layout/calc_editor_mobile.xml new file mode 100644 index 00000000..007088f8 --- /dev/null +++ b/calculatorpp/res/layout/calc_editor_mobile.xml @@ -0,0 +1,24 @@ + + + + + + + + + \ No newline at end of file diff --git a/calculatorpp/res/layout/calc_keyboard_mobile.xml b/calculatorpp/res/layout/calc_keyboard_mobile.xml new file mode 100644 index 00000000..8dbe70cc --- /dev/null +++ b/calculatorpp/res/layout/calc_keyboard_mobile.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/calculatorpp/res/layout/main_calculator_mobile.xml b/calculatorpp/res/layout/main_calculator_mobile.xml new file mode 100644 index 00000000..c369617f --- /dev/null +++ b/calculatorpp/res/layout/main_calculator_mobile.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + diff --git a/calculatorpp/res/values-ru/text_about.xml b/calculatorpp/res/values-ru/text_about.xml index 5e7f945a..fec8cab2 100644 --- a/calculatorpp/res/values-ru/text_about.xml +++ b/calculatorpp/res/values-ru/text_about.xml @@ -1,227 +1,234 @@ - - - - - О программе - - Copyright (c) 2009-2011\n\nПрограмма создана\nserso aka se.solovyev\n\n - Сайт приложения: http://facebook.com/calculatorpp\n\n - Эта программа с открытыми исходным кодом:\nон может быть найден на \nhttp://github.com\n\n - За подробной информацией, пожалуйста,\nобращайтесь на почту\nse.solovyev@gmail.com\n - или посетите сайт \nhttp://se.solovyev.org\n\n - Если вы хотите поддержать проект материально\nвы можете купить специальную опцию из настроек приложения\n\n - Если вам понравилось приложение -\nпоставьте 5 звёздочек в\nGoogle Play\n\n - Спасибо тем, кто переводил Калькулятор++:\n - на итальянский - Gabriele Ravanetti\n - на испанский - Jordi Luna\n - на украинский - Андрій Бандура\n\n - Это приложение использует следующие открытые библиотеки:\n - Simple (XML serialization)\n - JSCL\n - AChartEngine - - - Примечания к выпуску - "Примечания к выпуску версии " - - - 1. Отклик на нажатие\n - 2. Две раскладки кнопок\n - 3. Новые константы\n - 4. Сообщение об ошибке показывается реже - - - - 1. Экран со всеми доступными функциями\n - 2. Поддержка десятичного логарифма, факториала, функций сравнения\n - 3. Настройки отклика - - - - 1. Сохранение констант в два клика (используйте +π кнопку)\n - 2. Размер результата автоматически масштабируется\n - 3. Исправлена ошибка с отсутствием результата в Xperia Ray\n - 4. Исправлена ошибка расчёта двойного факториала\n - 5. Добавлены градусы (используйте °, например, 30° и результат будет автоматически переведён в радианы) - - - - 1. Поддержка ввода чисел в научной нотации (2.3E2)\n - 2. Добавлены функции: deg(), rad() для перевода радианов в градусы и наоборот\n - 3. Добавлена поддержка установки приложения на карту памяти\n - 4. Добавлена поддержка сохранить целое выражение как константу (например, наберите ln(6t), нажмите +π, введите имя и сохраните)\n - 5. Исправлена проблема с функцией abs() и комплексным аргументом\n - 6. Исправлена проблема с отображением результата - - - - 1. Исправлена проблема с i^3\n - 2. Исправлено падение при использовании большого числа скобочек - - - - 1. Процентные вычисления.\n - Примеры:\n - 100+50%=150,\n - 100*50%=50,\n - 100+100*50%*50%=125,\n - 100+(100*50%*(25+25)%+100%)=150\n - ЗАМЕЧАНИЕ:\n - 100+(20+20)%=140, но 100+(20%+20%)=124.0\n - 100+50%^2=2600, но 100+50^2%=101.08 - - - - 1. Добавлен экран Помощь\n - 2. Поддержка дифференцирования, интегрирования, вычисления суммы и произведения.\n - Примеры:\n - ∂(cos(t),t)=-sin(t)\n - 2∂(tcos(t),t,2)=-4.469\n - Σ(n/n!,n,1,20)=2.7182\n - ∫(1/x, x)=ln(x)\n - ∫ab(x, x, 0, 10)=50.0 - - - - 1. Исправлены падения приложения\n - 2. Добавлены переменные на основном экране - - - - 1. Поддержка различных единиц измерений углов: радианы, градусы, грады, обороты\n - 2. Быстрое переключение между радианами и градусами: используйте переключатель расположенный на клавише 6\n - 3. Приложение переведено на итальянский язык (благодаря Gabriele Ravanetti)\n - 4. Исправлена проблема с упрощением выражения √(π^2) - - - - 1. Добавлено построение графиков: введите выражение с одной неизвестной переменной (например, cos(t)) и нажмите на результат. В контекстном меню выберите \'Построить график\'. Поддерживаемые операции: масштабирование, сдвиг, построение графика для мнимой части комплексного числа. - - - - 1. Настройка свайпа для кнопки - 2. Поддержка различный систем счисление (dec, bin, oct). Dec и bin могут быть выбраны из основного окна (кнопка CE) и из основных настроек\n - 3. Исправлена проблема упрощения для √\n - 4. Улучшена производительность построения графиков - - - - 1. Поддержка свайпа влево, вправо\n - 2. Расширенная история: сохранение, удаление, копирование истории (используйте длинное нажатие)\n - 3. Добавлен испанский язык\n - 4. Полная поддержка систем счисления (dec, hex, oct, bin)\n - 5. !!!: Решение проблемы знака произведения на некоторых устройствах. Если у вас странные символы вместо × - измените знак произведения * в настройках приложения\n - 6. Исправлено: правильное вычисление двойного факториала, 20x, e^(pi*i)+1 и др. - - - - 1. Добавлен экран примечаний к выпуску\n - 2. Добавлены категории функций и переменных\n - 3. Добавлены дополнительные действия для функций, операторов и переменных - контекстное меню вызывается долгим нажатием по элементу\n - 4. Добавлен логарифм по любому основанию\n - 5. Настройка кнопки Назад\n - 6. Вариант константы π независимой от единиц измерения углов - - - - 1. Исправлена проблема с отсутствием курсора на устройствах с андроидом 3 и выше\n - 2. Исправлена проблема с заменой 3.14... на Π - - - - 1. Исправлена проблема расчёта обратных тригонометрических функций в комплексном поле\n - 2. Убрана задержка вычислений\n - 3. Исправлена проблема 200 - 10% = π - - - - От разработчика\n\n - Мне жаль уведомлять вас о том что в этой версии приложения появилась реклама.\n - Я не видел на андроид.маркете калькулятор с похожими возможностями и не думаю, что увижу в ближайшем будущем.\n - Но, тем не менее, я хочу развивать его функциональность и поддерживать уже реализованное. Так случилось, что я больше не могу делать это бесплатно - разработка отнимает слишком много времени и усилий, - так как приложение стало довольно большим и сложным.\n - Если вы хотите поддержать проект и убрать рекламы, вы можете купить специальную опцию в настройках приложения,\n - если вы не хотите или не можете этого сделать - вы по-прежнему можете отблагодарить автора программы по почте: se.solovyev@gmail.com, высоко оценить приложение на андроид.маркете\n - или помочь в переводе приложения на свой родной язык. - - - - 1. Интегрирование функций ln() и lg()\n - 2. Сохранение последнего открытого таба\n - 3. Опция \'Удалить\' из контекстного меню в редакторе переменных\n - 4. Проблема с 1/0\n - 5. Проблема отображения для прошивок MIUI\n - 6. Двойной ноль (00) - - - - 1. Интегрирование тригонометрических функций запрещено для отличных от радиан угловых единиц\n - 2. Исправлена проблема 1/0 = -1/0\n - 3. Исправлена проблема ∫(sin(t°), t)\n - 4. Исправлены другие мелкие проблемы - - - - - От разработчика:\n\n - Я рад сообщить, что у Калькулятора++ появился собственный форум: http://facebook.com/calculatorpp.\n - Здесь вы можете найти всю последнюю информацию о приложении, узнать об известных проблемах и внести свои предложения.\n - Для входа вы можете использовать аккаунт социальной сети (Facebook, Twitter или Google).\n\n - 1. Добавлены кнопки управления масштаб на графике\n - 2. Исправлены проблемы с биллингом\n - 3. Исправлена проблема с сохранением констант\n - 4. Исправлены проблемы с отображением на 4ом Андроиде\n - 5. Исправлены другие проблемы - - - - 1. Новая тема оформления Метро с тремя цветовыми вариациями\n - 2. Простая раскладка (без дополнительных научных функций)\n - 3. Изменения экрана настроек\n - 4. Добавлена настройка для максимального времени вычисления\n - 5. Добавлена настройка для вывода результаты в научной форме\n - 6. Добавлена настройка по очищению информации о покупке\n - 7. Надпись "Ошибка" заменена на затемнённый текст\n - 8. Поддержка раскладки для Galaxy Note\n - 9. Исправлена проблема с вычислением Sgn(0)\n - 10. Исправлены проблемы с покупкой приложения - - - - 1. Украинская локализация (Андрій Бандура)\n - 2. HEX символы не видны в HEX режиме\n - 3. Настройка для выключения автоматического поворота экрана\n - 4. Настройка для убирания кнопки равно\n - 5. Исправлена проблема с построением графиков\n - 6. Исправлена проблема E+ (HEX режим)\n - 7. π и Π поменяны местами\n - 8. Добавлен инструмент перевода единиц (нажмите на дисплей или выберите в меню приложения)\n - 9. Исправлено неправильное интегрирование и дифференцирование функции lg() - - - - 1. Виртуальная клавиатура больше не показывается на Android 4 ICS\n - 2. Быстрый перевод чисел из контекстного меню дисплея\n - 3. Другие исправления GUI - - - - 1. Теперь у нас есть своя страница на Facebook: facebook.com/calculatorpp\n - 2. Поддержка планшетов (новый потрясающий UI)\n - 3. Улучшенный графопостроитель\n - 4. Промежуточные вычисления не записываются в историю\n - 5. Более быстрый отклик приложения\n - 6. Отправление отчётов об ошибках\n - 7. Китайская локализация - - - - 1. Улучшения UI для 4-7 дюймовых экранов\n - 2. Переменная ans (последний вычисленный результат) - - + + + + + О программе + + Copyright (c) 2009-2011\n\nПрограмма создана\nserso aka se.solovyev\n\n + Сайт приложения: http://facebook.com/calculatorpp\n\n + Эта программа с открытыми исходным кодом:\nон может быть найден на \nhttp://github.com\n\n + За подробной информацией, пожалуйста,\nобращайтесь на почту\nse.solovyev@gmail.com\n + или посетите сайт \nhttp://se.solovyev.org\n\n + Если вы хотите поддержать проект материально\nвы можете купить специальную опцию из настроек приложения\n\n + Если вам понравилось приложение -\nпоставьте 5 звёздочек в\nGoogle Play\n\n + Спасибо тем, кто переводил Калькулятор++:\n + на итальянский - Gabriele Ravanetti\n + на испанский - Jordi Luna\n + на украинский - Андрій Бандура\n\n + Это приложение использует следующие открытые библиотеки:\n + Simple (XML serialization)\n + JSCL\n + AChartEngine + + + Примечания к выпуску + "Примечания к выпуску версии " + + + 1. Отклик на нажатие\n + 2. Две раскладки кнопок\n + 3. Новые константы\n + 4. Сообщение об ошибке показывается реже + + + + 1. Экран со всеми доступными функциями\n + 2. Поддержка десятичного логарифма, факториала, функций сравнения\n + 3. Настройки отклика + + + + 1. Сохранение констант в два клика (используйте +π кнопку)\n + 2. Размер результата автоматически масштабируется\n + 3. Исправлена ошибка с отсутствием результата в Xperia Ray\n + 4. Исправлена ошибка расчёта двойного факториала\n + 5. Добавлены градусы (используйте °, например, 30° и результат будет автоматически переведён в радианы) + + + + 1. Поддержка ввода чисел в научной нотации (2.3E2)\n + 2. Добавлены функции: deg(), rad() для перевода радианов в градусы и наоборот\n + 3. Добавлена поддержка установки приложения на карту памяти\n + 4. Добавлена поддержка сохранить целое выражение как константу (например, наберите ln(6t), нажмите +π, введите имя и сохраните)\n + 5. Исправлена проблема с функцией abs() и комплексным аргументом\n + 6. Исправлена проблема с отображением результата + + + + 1. Исправлена проблема с i^3\n + 2. Исправлено падение при использовании большого числа скобочек + + + + 1. Процентные вычисления.\n + Примеры:\n + 100+50%=150,\n + 100*50%=50,\n + 100+100*50%*50%=125,\n + 100+(100*50%*(25+25)%+100%)=150\n + ЗАМЕЧАНИЕ:\n + 100+(20+20)%=140, но 100+(20%+20%)=124.0\n + 100+50%^2=2600, но 100+50^2%=101.08 + + + + 1. Добавлен экран Помощь\n + 2. Поддержка дифференцирования, интегрирования, вычисления суммы и произведения.\n + Примеры:\n + ∂(cos(t),t)=-sin(t)\n + 2∂(tcos(t),t,2)=-4.469\n + Σ(n/n!,n,1,20)=2.7182\n + ∫(1/x, x)=ln(x)\n + ∫ab(x, x, 0, 10)=50.0 + + + + 1. Исправлены падения приложения\n + 2. Добавлены переменные на основном экране + + + + 1. Поддержка различных единиц измерений углов: радианы, градусы, грады, обороты\n + 2. Быстрое переключение между радианами и градусами: используйте переключатель расположенный на клавише 6\n + 3. Приложение переведено на итальянский язык (благодаря Gabriele Ravanetti)\n + 4. Исправлена проблема с упрощением выражения √(π^2) + + + + 1. Добавлено построение графиков: введите выражение с одной неизвестной переменной (например, cos(t)) и нажмите на результат. В контекстном меню выберите \'Построить график\'. Поддерживаемые операции: масштабирование, сдвиг, построение графика для мнимой части комплексного числа. + + + + 1. Настройка свайпа для кнопки + 2. Поддержка различный систем счисление (dec, bin, oct). Dec и bin могут быть выбраны из основного окна (кнопка CE) и из основных настроек\n + 3. Исправлена проблема упрощения для √\n + 4. Улучшена производительность построения графиков + + + + 1. Поддержка свайпа влево, вправо\n + 2. Расширенная история: сохранение, удаление, копирование истории (используйте длинное нажатие)\n + 3. Добавлен испанский язык\n + 4. Полная поддержка систем счисления (dec, hex, oct, bin)\n + 5. !!!: Решение проблемы знака произведения на некоторых устройствах. Если у вас странные символы вместо × - измените знак произведения * в настройках приложения\n + 6. Исправлено: правильное вычисление двойного факториала, 20x, e^(pi*i)+1 и др. + + + + 1. Добавлен экран примечаний к выпуску\n + 2. Добавлены категории функций и переменных\n + 3. Добавлены дополнительные действия для функций, операторов и переменных - контекстное меню вызывается долгим нажатием по элементу\n + 4. Добавлен логарифм по любому основанию\n + 5. Настройка кнопки Назад\n + 6. Вариант константы π независимой от единиц измерения углов + + + + 1. Исправлена проблема с отсутствием курсора на устройствах с андроидом 3 и выше\n + 2. Исправлена проблема с заменой 3.14... на Π + + + + 1. Исправлена проблема расчёта обратных тригонометрических функций в комплексном поле\n + 2. Убрана задержка вычислений\n + 3. Исправлена проблема 200 - 10% = π + + + + От разработчика\n\n + Мне жаль уведомлять вас о том что в этой версии приложения появилась реклама.\n + Я не видел на андроид.маркете калькулятор с похожими возможностями и не думаю, что увижу в ближайшем будущем.\n + Но, тем не менее, я хочу развивать его функциональность и поддерживать уже реализованное. Так случилось, что я больше не могу делать это бесплатно - разработка отнимает слишком много времени и усилий, + так как приложение стало довольно большим и сложным.\n + Если вы хотите поддержать проект и убрать рекламы, вы можете купить специальную опцию в настройках приложения,\n + если вы не хотите или не можете этого сделать - вы по-прежнему можете отблагодарить автора программы по почте: se.solovyev@gmail.com, высоко оценить приложение на андроид.маркете\n + или помочь в переводе приложения на свой родной язык. + + + + 1. Интегрирование функций ln() и lg()\n + 2. Сохранение последнего открытого таба\n + 3. Опция \'Удалить\' из контекстного меню в редакторе переменных\n + 4. Проблема с 1/0\n + 5. Проблема отображения для прошивок MIUI\n + 6. Двойной ноль (00) + + + + 1. Интегрирование тригонометрических функций запрещено для отличных от радиан угловых единиц\n + 2. Исправлена проблема 1/0 = -1/0\n + 3. Исправлена проблема ∫(sin(t°), t)\n + 4. Исправлены другие мелкие проблемы + + + + + От разработчика:\n\n + Я рад сообщить, что у Калькулятора++ появился собственный форум: http://facebook.com/calculatorpp.\n + Здесь вы можете найти всю последнюю информацию о приложении, узнать об известных проблемах и внести свои предложения.\n + Для входа вы можете использовать аккаунт социальной сети (Facebook, Twitter или Google).\n\n + 1. Добавлены кнопки управления масштаб на графике\n + 2. Исправлены проблемы с биллингом\n + 3. Исправлена проблема с сохранением констант\n + 4. Исправлены проблемы с отображением на 4ом Андроиде\n + 5. Исправлены другие проблемы + + + + 1. Новая тема оформления Метро с тремя цветовыми вариациями\n + 2. Простая раскладка (без дополнительных научных функций)\n + 3. Изменения экрана настроек\n + 4. Добавлена настройка для максимального времени вычисления\n + 5. Добавлена настройка для вывода результаты в научной форме\n + 6. Добавлена настройка по очищению информации о покупке\n + 7. Надпись "Ошибка" заменена на затемнённый текст\n + 8. Поддержка раскладки для Galaxy Note\n + 9. Исправлена проблема с вычислением Sgn(0)\n + 10. Исправлены проблемы с покупкой приложения + + + + 1. Украинская локализация (Андрій Бандура)\n + 2. HEX символы не видны в HEX режиме\n + 3. Настройка для выключения автоматического поворота экрана\n + 4. Настройка для убирания кнопки равно\n + 5. Исправлена проблема с построением графиков\n + 6. Исправлена проблема E+ (HEX режим)\n + 7. π и Π поменяны местами\n + 8. Добавлен инструмент перевода единиц (нажмите на дисплей или выберите в меню приложения)\n + 9. Исправлено неправильное интегрирование и дифференцирование функции lg() + + + + 1. Виртуальная клавиатура больше не показывается на Android 4 ICS\n + 2. Быстрый перевод чисел из контекстного меню дисплея\n + 3. Другие исправления GUI + + + + 1. Теперь у нас есть своя страница на Facebook: facebook.com/calculatorpp\n + 2. Поддержка планшетов (новый потрясающий UI)\n + 3. Улучшенный графопостроитель\n + 4. Промежуточные вычисления не записываются в историю\n + 5. Более быстрый отклик приложения\n + 6. Отправление отчётов об ошибках\n + 7. Китайская локализация + + + + 1. Улучшения UI для 4-7 дюймовых экранов\n + 2. Переменная ans (последний вычисленный результат) + + + + 1. Виджет для рабочего стола (работает только если приложение установлено на внутреннюю память телефона)\n + 2. Раскладка от мобильного телефона для планшета (Настройки->Настройки внешнего вида->Раскладка->Научная (телефон))\n + 3. Ручные вычисления (Настройки->Настройки вычислений->Результат вычисляется…) + + + \ No newline at end of file diff --git a/calculatorpp/res/values-ru/text_preferences.xml b/calculatorpp/res/values-ru/text_preferences.xml index d9e529e3..1ae61f20 100644 --- a/calculatorpp/res/values-ru/text_preferences.xml +++ b/calculatorpp/res/values-ru/text_preferences.xml @@ -1,13 +1,16 @@ - - Переключатель автоматического поворота экрана - Если включено, то калькулятор будет автоматически менять ориентацию экрана - - Показывать клавишу равно - Если включено, то клавиша равно будет показана - - Не показывать цифры из других систем счисления - Если включено, то цифры из других систем счисления не будут показаны - - Показывать промежуточные вычисления на экране истории - Если включено, то все вычисления будут показаны на экране истории + + Переключатель автоматического поворота экрана + Если включено, то калькулятор будет автоматически менять ориентацию экрана + + Показывать клавишу равно + Если включено, то клавиша равно будет показана + + Не показывать цифры из других систем счисления + Если включено, то цифры из других систем счисления не будут показаны + + Показывать промежуточные вычисления на экране истории + Если включено, то все вычисления будут показаны на экране истории + + Результат вычисляется по мере ввода выражения + Если включено, то результат вычисляется по мере ввода выражения \ No newline at end of file diff --git a/calculatorpp/res/values-ru/text_strings.xml b/calculatorpp/res/values-ru/text_strings.xml index eeff91ba..eb47996f 100644 --- a/calculatorpp/res/values-ru/text_strings.xml +++ b/calculatorpp/res/values-ru/text_strings.xml @@ -115,7 +115,8 @@ Раскладка Научная (телефон) Научная - Простая + Научная (телефон) + Простая Устанавливает раскладку кнопок Отклик на нажатие diff --git a/calculatorpp/res/values/arrays.xml b/calculatorpp/res/values/arrays.xml index d808cac0..c0361620 100644 --- a/calculatorpp/res/values/arrays.xml +++ b/calculatorpp/res/values/arrays.xml @@ -41,10 +41,12 @@ @string/p_layout_calculator + @string/p_layout_calculator_mobile @string/p_layout_simple main_calculator + main_calculator_mobile simple diff --git a/calculatorpp/res/values/text_about.xml b/calculatorpp/res/values/text_about.xml index 4ca1f373..f28acd0f 100644 --- a/calculatorpp/res/values/text_about.xml +++ b/calculatorpp/res/values/text_about.xml @@ -1,226 +1,232 @@ - - - - - About - - Copyright (c) 2009-2011\n\nCreated by serso aka se.solovyev\n\n - Application web site: http://facebook.com/calculatorpp\n\n - This program is open source:\nall source code can be found on\nhttp://github.com\n\n - For more information please\ncontact the author by email\nse.solovyev@gmail.com - \nor visit\nhttp://se.solovyev.org\n\n - If you want to support the project\n\nyou can buy a special option from application preferences\n\n - If you like the application\nrank it with 5 stars in\nGoogle Play\n\n - Thanks to people who translate Calculator++ in different languages:\n - Italian - Gabriele Ravanetti\n - Spanish - Jordi Luna\n - Ukrainian - Андрій Бандура\n\n - This application uses next open source libraries:\n - Simple (XML serialization)\n - JSCL\n - AChartEngine - - - Release notes - "Release notes for version " - - - 1. Haptic feedback\n - 2. Two layouts: calculator and cellphone\n - 3. New constants\n - 4. ERROR message is not so often now - - - - 1. Screen with all functions\n - 2. Added support for decimal logarithm, factorial, comparison functions\n - 3. Haptic feedback duration preference - - - - 1. Saving constants in two clicks (use +π button)\n - 2. Result size is auto adjusted to fill all spare space\n - 3. Fix for Xperia Ray blank result\n - 4. Double factorial fix\n - 5. Degrees added (use °: e.g. 30° and result will be converted into radians) - - - - 1. Support for entering numbers in scientific notation (2.3E2)\n - 2. Added functions: deg(), rad() to convert from radians to degrees and vice versa\n - 3. Added support for installing application on sd card\n - 4. Added possibility to save entire expression as constant (e.g. type ln(6t), press +π button, enter name and save)\n - 5. Fixed bug with abs() function and complex argument\n - 6. Fixed bug with displaying result - - - - 1. Fixed bug with i^3\n - 2. Fixed crash in case of many brackets - - - - 1. Percentage calculations.\n - Examples:\n - 100+50%=150,\n - 100*50%=50,\n - 100+100*50%*50%=125,\n - 100+(100*50%*(25+25)%+100%)=150\n - NOTE:\n - 100+(20+20)%=140, but 100+(20%+20%)=124.0\n - 100+50%^2=2600, but 100+50^2%=101.08 - - - - 1. Help screen added\n - 2. Support for differentiation, integration, calculation of sum and product.\n - Examples:\n - ∂(cos(t),t)=-sin(t)\n - 2∂(tcos(t),t,2)=-4.469\n - Σ(n/n!,n,1,20)=2.7182\n - ∫(1/x, x)=ln(x)\n - ∫ab(x, x, 0, 10)=50.0 - - - - 1. Fixed crashes\n - 2. Added variables on the main screen - - - - 1. Support for different angle units: radians, degrees, gradians, turns\n - 2. Easy toggling between radians and degrees: use the toggle switch located on the 6 button\n - 3. Application is translated in Italian (thanks to Gabriele Ravanetti)\n - 4. Fixed bug with simplification of √(π^2) - - - - 1. Added functions\' plotting: type expression which contains 1 undefined variable (e.g. cos(t)) and click on the result. In the context menu choose \'Plot graph\'. Supported features: zoom in/out, moving graph, plotting imaginary part - - - - 1. Buttons swipe preference\n - 2. Added support for different numeral bases (currently supported: dec, bin, oct). Dec and bin can be chosen from main screen (CE button) and from app preferences\n - 3. Fixed √ simplification problem\n - 4. Performance improvements in functions\' plotting - - - - 1. New swipe actions (left, right)\n - 2. Extended history: save, remove, copy, use from history screen (use long click for additional actions)\n - 3. Added Spanish language\n - 4. Full numeral base support (dec, hex, oct, bin)\n - 5. !!!: Fix for multiplication sign on some devices - if you have strange symbols instead of × - go to the settings and change multiplication sign to *\n - 6. Bug fixes: correct double factorial calculation, 20x fix, e^(pi*i)+1 fix and others - - - - 1. Release notes screen added\n - 2. Added categories in functions and constants screens\n - 3. Additional actions are available for constants, functions and operators (long click on the item and choose from context menu)\n - 4. Logarithm function added - calculate logarithm of any base \n - 5. Back button preference\n - 6. Variant of π constant independent from angle units - - - - 1. Fix for missing cursor in Android 3 and higher\n - 2. Fix for substituting 3.14... with Π constant - - - - 1. Fix for calculating inverse trigonometric functions in complex field\n - 2. Removed time delay for calculation\n - 3. Fix the problem with 200 - 10% = π - - - - Note from developer\n\n - Sorry to inform you but this version of application brings built-in ads.\n - I haven\'t seen in Google Play calculator with similar capabilities and I don\'t think I will see it in the close future.\n - But still I want to extend it\'s functionality and support already implemented. The thing is that I cannot do it anymore for free - it takes too much time and great efforts from me as - application has become rather big and complex.\n - If you want to support the project and remove the ads please purchase special option from application preferences,\n - if you don\'t want to pay or can\'t do it - you still can thank the author of this program by email: se.solovyev@gmail.com, rate application with high mark in Google Play\n - or help to translate the application to your native language. - - - - 1. Integration of ln() and lg()\n - 2. Last opened tab is remembered now (history, variables etc)\n - 3. Remove option from context menu for variables\n - 4. 1/0 bug\n - 5. Gui defect for MIUI roms\n - 6. Double zero (00) key - - - - 1. Integration of trigonometric functions is disabled for not radian angles\n - 2. Bug with 1/0 = -1/0 fixed\n - 3. Bug with ∫(sin(t°), t) fixed\n - 4. Other small fixes - - - - Note from developer:\n\n - I\'m glad to inform you that I\'ve started a forum for Calculator++: http://facebook.com/calculatorpp.\n - Here you can find latest information about application, check for known issues, submit bugs or suggest new features.\n - You can use your social account to login (Facebook, Twitter or Google are supported).\n\n - 1. Zoom buttons on graph plotter\n - 2. Billing bug fixes\n - 3. Fixed bug with saving constants\n - 4. Android 4 GUI artifacts fixed (aka hardware acceleration problem)\n - 5. Other small fixes - - - - 1. New Metro theme with 3 color variations (old themes are still available)\n - 2. Simple layout (Default layout is still scientific)\n - 3. Preferences screen changes\n - 4. Maximum calculation time preference added\n - 5. Always scientific notation option added\n - 6. Remove billing information option added\n - 7. Error label is substituted with greyed text\n - 8. Special layout for x-high density displays (aka Galaxy Note support)\n - 9. Sgn(0) problem fixed\n - 10. Billing problems fixes - - - - 1. Ukrainian localization (Андрій Бандура)\n - 2. HEX digits are not shown in not HEX mode\n - 3. Preference for disabling display auto rotation\n - 4. Preference for hiding equals button\n - 5. Fixed plot problem\n - 6. Fixed E+ problem (HEX mode)\n - 7. π and Π are switched\n - 8. Conversion tool added (tap on display or choose from application menu)\n - 9. Wrong lg() integration and differentiation fixed - - - - 1. Virtual keyboard are now not shown on Android 4 ICS\n - 2. Fast number conversion from display context menu\n - 3. Minor GUI fixes - - - - 1. We are now on Facebook: facebook.com/calculatorpp\n - 2. Tablet support (new awesome UI)\n - 3. Improved graph plotter\n - 4. Intermediate calculations are not shown in the history anymore\n - 5. Faster UI response\n - 6. Crash reports handler\n - 7. Chinese translations - - - - 1. UI improvements for 4-7 inches displays\n - 2. Ans variable (last calculated value) - - + + + + + About + + Copyright (c) 2009-2011\n\nCreated by serso aka se.solovyev\n\n + Application web site: http://facebook.com/calculatorpp\n\n + This program is open source:\nall source code can be found on\nhttp://github.com\n\n + For more information please\ncontact the author by email\nse.solovyev@gmail.com + \nor visit\nhttp://se.solovyev.org\n\n + If you want to support the project\n\nyou can buy a special option from application preferences\n\n + If you like the application\nrank it with 5 stars in\nGoogle Play\n\n + Thanks to people who translate Calculator++ in different languages:\n + Italian - Gabriele Ravanetti\n + Spanish - Jordi Luna\n + Ukrainian - Андрій Бандура\n\n + This application uses next open source libraries:\n + Simple (XML serialization)\n + JSCL\n + AChartEngine + + + Release notes + "Release notes for version " + + + 1. Haptic feedback\n + 2. Two layouts: calculator and cellphone\n + 3. New constants\n + 4. ERROR message is not so often now + + + + 1. Screen with all functions\n + 2. Added support for decimal logarithm, factorial, comparison functions\n + 3. Haptic feedback duration preference + + + + 1. Saving constants in two clicks (use +π button)\n + 2. Result size is auto adjusted to fill all spare space\n + 3. Fix for Xperia Ray blank result\n + 4. Double factorial fix\n + 5. Degrees added (use °: e.g. 30° and result will be converted into radians) + + + + 1. Support for entering numbers in scientific notation (2.3E2)\n + 2. Added functions: deg(), rad() to convert from radians to degrees and vice versa\n + 3. Added support for installing application on sd card\n + 4. Added possibility to save entire expression as constant (e.g. type ln(6t), press +π button, enter name and save)\n + 5. Fixed bug with abs() function and complex argument\n + 6. Fixed bug with displaying result + + + + 1. Fixed bug with i^3\n + 2. Fixed crash in case of many brackets + + + + 1. Percentage calculations.\n + Examples:\n + 100+50%=150,\n + 100*50%=50,\n + 100+100*50%*50%=125,\n + 100+(100*50%*(25+25)%+100%)=150\n + NOTE:\n + 100+(20+20)%=140, but 100+(20%+20%)=124.0\n + 100+50%^2=2600, but 100+50^2%=101.08 + + + + 1. Help screen added\n + 2. Support for differentiation, integration, calculation of sum and product.\n + Examples:\n + ∂(cos(t),t)=-sin(t)\n + 2∂(tcos(t),t,2)=-4.469\n + Σ(n/n!,n,1,20)=2.7182\n + ∫(1/x, x)=ln(x)\n + ∫ab(x, x, 0, 10)=50.0 + + + + 1. Fixed crashes\n + 2. Added variables on the main screen + + + + 1. Support for different angle units: radians, degrees, gradians, turns\n + 2. Easy toggling between radians and degrees: use the toggle switch located on the 6 button\n + 3. Application is translated in Italian (thanks to Gabriele Ravanetti)\n + 4. Fixed bug with simplification of √(π^2) + + + + 1. Added functions\' plotting: type expression which contains 1 undefined variable (e.g. cos(t)) and click on the result. In the context menu choose \'Plot graph\'. Supported features: zoom in/out, moving graph, plotting imaginary part + + + + 1. Buttons swipe preference\n + 2. Added support for different numeral bases (currently supported: dec, bin, oct). Dec and bin can be chosen from main screen (CE button) and from app preferences\n + 3. Fixed √ simplification problem\n + 4. Performance improvements in functions\' plotting + + + + 1. New swipe actions (left, right)\n + 2. Extended history: save, remove, copy, use from history screen (use long click for additional actions)\n + 3. Added Spanish language\n + 4. Full numeral base support (dec, hex, oct, bin)\n + 5. !!!: Fix for multiplication sign on some devices - if you have strange symbols instead of × - go to the settings and change multiplication sign to *\n + 6. Bug fixes: correct double factorial calculation, 20x fix, e^(pi*i)+1 fix and others + + + + 1. Release notes screen added\n + 2. Added categories in functions and constants screens\n + 3. Additional actions are available for constants, functions and operators (long click on the item and choose from context menu)\n + 4. Logarithm function added - calculate logarithm of any base \n + 5. Back button preference\n + 6. Variant of π constant independent from angle units + + + + 1. Fix for missing cursor in Android 3 and higher\n + 2. Fix for substituting 3.14... with Π constant + + + + 1. Fix for calculating inverse trigonometric functions in complex field\n + 2. Removed time delay for calculation\n + 3. Fix the problem with 200 - 10% = π + + + + Note from developer\n\n + Sorry to inform you but this version of application brings built-in ads.\n + I haven\'t seen in Google Play calculator with similar capabilities and I don\'t think I will see it in the close future.\n + But still I want to extend it\'s functionality and support already implemented. The thing is that I cannot do it anymore for free - it takes too much time and great efforts from me as + application has become rather big and complex.\n + If you want to support the project and remove the ads please purchase special option from application preferences,\n + if you don\'t want to pay or can\'t do it - you still can thank the author of this program by email: se.solovyev@gmail.com, rate application with high mark in Google Play\n + or help to translate the application to your native language. + + + + 1. Integration of ln() and lg()\n + 2. Last opened tab is remembered now (history, variables etc)\n + 3. Remove option from context menu for variables\n + 4. 1/0 bug\n + 5. Gui defect for MIUI roms\n + 6. Double zero (00) key + + + + 1. Integration of trigonometric functions is disabled for not radian angles\n + 2. Bug with 1/0 = -1/0 fixed\n + 3. Bug with ∫(sin(t°), t) fixed\n + 4. Other small fixes + + + + Note from developer:\n\n + I\'m glad to inform you that I\'ve started a forum for Calculator++: http://facebook.com/calculatorpp.\n + Here you can find latest information about application, check for known issues, submit bugs or suggest new features.\n + You can use your social account to login (Facebook, Twitter or Google are supported).\n\n + 1. Zoom buttons on graph plotter\n + 2. Billing bug fixes\n + 3. Fixed bug with saving constants\n + 4. Android 4 GUI artifacts fixed (aka hardware acceleration problem)\n + 5. Other small fixes + + + + 1. New Metro theme with 3 color variations (old themes are still available)\n + 2. Simple layout (Default layout is still scientific)\n + 3. Preferences screen changes\n + 4. Maximum calculation time preference added\n + 5. Always scientific notation option added\n + 6. Remove billing information option added\n + 7. Error label is substituted with greyed text\n + 8. Special layout for x-high density displays (aka Galaxy Note support)\n + 9. Sgn(0) problem fixed\n + 10. Billing problems fixes + + + + 1. Ukrainian localization (Андрій Бандура)\n + 2. HEX digits are not shown in not HEX mode\n + 3. Preference for disabling display auto rotation\n + 4. Preference for hiding equals button\n + 5. Fixed plot problem\n + 6. Fixed E+ problem (HEX mode)\n + 7. π and Π are switched\n + 8. Conversion tool added (tap on display or choose from application menu)\n + 9. Wrong lg() integration and differentiation fixed + + + + 1. Virtual keyboard are now not shown on Android 4 ICS\n + 2. Fast number conversion from display context menu\n + 3. Minor GUI fixes + + + + 1. We are now on Facebook: facebook.com/calculatorpp\n + 2. Tablet support (new awesome UI)\n + 3. Improved graph plotter\n + 4. Intermediate calculations are not shown in the history anymore\n + 5. Faster UI response\n + 6. Crash reports handler\n + 7. Chinese translations + + + + 1. UI improvements for 4-7 inches displays\n + 2. Ans variable (last calculated value) + + + + 1. Calculator++ widget for home screen (works only if app installed in phone memory)\n + 2. Mobile phone layout for tablets (Preferences->Appearance Preferences->Layout->Scientific (Mobile))\n + 3. Manual calculations (Preferences->Calculations Preferences->Result is calculated…) + + \ No newline at end of file diff --git a/calculatorpp/res/values/text_strings.xml b/calculatorpp/res/values/text_strings.xml index b18f7ec5..511a3aee 100644 --- a/calculatorpp/res/values/text_strings.xml +++ b/calculatorpp/res/values/text_strings.xml @@ -115,6 +115,7 @@ Layout Scientific (cellphone) Scientific + Scientific (Mobile) Simple Sets layout of buttons diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorButtons.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorButtons.java index 300b2c8e..a7ae0b33 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorButtons.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorButtons.java @@ -69,7 +69,8 @@ public final class CalculatorButtons { @NotNull Activity activity) { preferences = preferences == null ? PreferenceManager.getDefaultSharedPreferences(activity) : preferences; - final boolean large = AndroidUtils.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE, activity.getResources().getConfiguration()); + final boolean large = AndroidUtils.isLayoutSizeAtLeast(Configuration.SCREENLAYOUT_SIZE_LARGE, activity.getResources().getConfiguration()) && + CalculatorPreferences.Gui.getLayout(preferences) != CalculatorPreferences.Gui.Layout.main_calculator_mobile; if (!large) { if (AndroidUtils.getScreenOrientation(activity) == Configuration.ORIENTATION_PORTRAIT diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorDisplayFragment.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorDisplayFragment.java index d82f815a..6a04f56e 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorDisplayFragment.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorDisplayFragment.java @@ -1,6 +1,8 @@ package org.solovyev.android.calculator; +import android.content.SharedPreferences; import android.os.Bundle; +import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -15,12 +17,20 @@ import org.jetbrains.annotations.NotNull; public class CalculatorDisplayFragment extends SherlockFragment { @NotNull - private final CalculatorFragmentHelper fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_display, R.string.result); + private CalculatorFragmentHelper fragmentHelper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getActivity()); + final CalculatorPreferences.Gui.Layout layout = CalculatorPreferences.Gui.getLayout(prefs); + if (layout == CalculatorPreferences.Gui.Layout.main_calculator_mobile) { + fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_display_mobile, R.string.result); + } else { + fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_display, R.string.result); + } + fragmentHelper.onCreate(this); } diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorEditorFragment.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorEditorFragment.java index 9ad08131..660a1a78 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorEditorFragment.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorEditorFragment.java @@ -1,64 +1,122 @@ -package org.solovyev.android.calculator; - -import android.os.Bundle; -import android.view.View; -import com.actionbarsherlock.view.Menu; -import com.actionbarsherlock.view.MenuInflater; -import com.actionbarsherlock.view.MenuItem; -import org.jetbrains.annotations.NotNull; -import org.solovyev.android.calculator.about.CalculatorFragmentType; -import org.solovyev.android.menu.ActivityMenu; -import org.solovyev.android.menu.ListActivityMenu; -import org.solovyev.android.sherlock.menu.SherlockMenuHelper; - -/** - * User: Solovyev_S - * Date: 25.09.12 - * Time: 10:49 - */ -public class CalculatorEditorFragment extends CalculatorFragment { - - @NotNull - private ActivityMenu menu = ListActivityMenu.fromList(CalculatorMenu.class, SherlockMenuHelper.getInstance()); - - public CalculatorEditorFragment() { - super(CalculatorFragmentType.editor); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - setHasOptionsMenu(true); - } - - @Override - public void onViewCreated(View view, Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - - ((AndroidCalculator) CalculatorLocatorImpl.getInstance().getCalculator()).setEditor(getActivity()); - } - - /* - ********************************************************************** - * - * MENU - * - ********************************************************************** - */ - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - this.menu.onCreateOptionsMenu(this.getActivity(), menu); - } - - @Override - public void onPrepareOptionsMenu(Menu menu) { - this.menu.onPrepareOptionsMenu(this.getActivity(), menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - return this.menu.onOptionsItemSelected(this.getActivity(), item); - } -} +package org.solovyev.android.calculator; + +import android.app.Activity; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import com.actionbarsherlock.app.SherlockFragment; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuInflater; +import com.actionbarsherlock.view.MenuItem; +import org.jetbrains.annotations.NotNull; +import org.solovyev.android.menu.ActivityMenu; +import org.solovyev.android.menu.ListActivityMenu; +import org.solovyev.android.sherlock.menu.SherlockMenuHelper; + +/** + * User: Solovyev_S + * Date: 25.09.12 + * Time: 10:49 + */ +public class CalculatorEditorFragment extends SherlockFragment { + + @NotNull + private CalculatorFragmentHelper fragmentHelper; + + @NotNull + private ActivityMenu menu = ListActivityMenu.fromList(CalculatorMenu.class, SherlockMenuHelper.getInstance()); + + public CalculatorEditorFragment() { + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + fragmentHelper.onViewCreated(this, view); + + ((AndroidCalculator) CalculatorLocatorImpl.getInstance().getCalculator()).setEditor(getActivity()); + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.getActivity()); + final CalculatorPreferences.Gui.Layout layout = CalculatorPreferences.Gui.getLayout(prefs); + if (layout == CalculatorPreferences.Gui.Layout.main_calculator_mobile) { + fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_editor_mobile, R.string.result); + } else { + fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_editor, R.string.result); + } + + fragmentHelper.onCreate(this); + setHasOptionsMenu(true); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + return fragmentHelper.onCreateView(this, inflater, container); + } + + @Override + public void onResume() { + super.onResume(); + + this.fragmentHelper.onResume(this); + } + + @Override + public void onPause() { + this.fragmentHelper.onPause(this); + + super.onPause(); + } + + @Override + public void onDestroyView() { + super.onDestroyView(); + } + + @Override + public void onDestroy() { + fragmentHelper.onDestroy(this); + super.onDestroy(); + } + + @Override + public void onDetach() { + super.onDetach(); + } + + /* + ********************************************************************** + * + * MENU + * + ********************************************************************** + */ + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + this.menu.onCreateOptionsMenu(this.getActivity(), menu); + } + + @Override + public void onPrepareOptionsMenu(Menu menu) { + this.menu.onPrepareOptionsMenu(this.getActivity(), menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + return this.menu.onOptionsItemSelected(this.getActivity(), item); + } +} diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorKeyboardFragment.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorKeyboardFragment.java index 98cdc613..d3c22d95 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorKeyboardFragment.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorKeyboardFragment.java @@ -30,7 +30,13 @@ public class CalculatorKeyboardFragment extends SherlockFragment implements Shar final SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this.getActivity()); - fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_keyboard); + final CalculatorPreferences.Gui.Layout layout = CalculatorPreferences.Gui.getLayout(preferences); + if (layout == CalculatorPreferences.Gui.Layout.main_calculator_mobile) { + fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_keyboard_mobile); + } else { + fragmentHelper = CalculatorApplication.getInstance().createFragmentHelper(R.layout.calc_keyboard); + } + fragmentHelper.onCreate(this); preferences.registerOnSharedPreferenceChangeListener(this); diff --git a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorPreferences.java b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorPreferences.java index 5bdf3a77..faa8cb80 100644 --- a/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorPreferences.java +++ b/calculatorpp/src/main/java/org/solovyev/android/calculator/CalculatorPreferences.java @@ -95,6 +95,7 @@ public final class CalculatorPreferences { public static enum Layout { main_calculator(R.layout.main_calculator), + main_calculator_mobile(R.layout.main_calculator_mobile), // not used anymore @Deprecated diff --git a/pom.xml b/pom.xml index 6624e1c1..233a2751 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.solovyev.android calculatorpp-parent pom - 1.4.3-b1-SNAPSHOT + 1.4.3-SNAPSHOT Calculator++