mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-21 21:29:00 +00:00
Merge remote-tracking branch 'origin/develop' into shops
# Conflicts: # Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java # Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GroupInformationFragment.java
This commit is contained in:
commit
022b885cdc
84 changed files with 736 additions and 506 deletions
|
|
@ -2,8 +2,8 @@
|
|||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.habitrpg.android.habitica"
|
||||
android:versionCode="1921"
|
||||
android:versionName="1.1.5"
|
||||
android:versionCode="1926"
|
||||
android:versionName="1.1.6"
|
||||
android:screenOrientation="portrait"
|
||||
android:installLocation="auto" >
|
||||
|
||||
|
|
|
|||
BIN
Habitica/res/drawable-hdpi/ic_info_outline_black_24dp.png
Normal file
BIN
Habitica/res/drawable-hdpi/ic_info_outline_black_24dp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 566 B |
BIN
Habitica/res/drawable-mdpi/ic_info_outline_black_24dp.png
Normal file
BIN
Habitica/res/drawable-mdpi/ic_info_outline_black_24dp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 365 B |
BIN
Habitica/res/drawable-xhdpi/ic_info_outline_black_24dp.png
Normal file
BIN
Habitica/res/drawable-xhdpi/ic_info_outline_black_24dp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 769 B |
BIN
Habitica/res/drawable-xxhdpi/ic_info_outline_black_24dp.png
Normal file
BIN
Habitica/res/drawable-xxhdpi/ic_info_outline_black_24dp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
|
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:viewportHeight="24.0" android:viewportWidth="24.0" android:width="24dp">
|
||||
<path android:fillColor="#000000" android:pathData="M11,17h2v-6h-2v6zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.41,0 -8,-3.59 -8,-8s3.59,-8 8,-8 8,3.59 8,8 -3.59,8 -8,8zM11,9h2L13,7h-2v2z"/>
|
||||
</vector>
|
||||
|
|
@ -163,7 +163,7 @@
|
|||
android:layout_height="20dp"
|
||||
android:layout_marginTop="39dp"
|
||||
android:drawablePadding="12dp"
|
||||
android:drawableEnd="@drawable/ic_info_outline_black_24dp"
|
||||
android:drawableRight="@drawable/ic_info_outline_black_24dp"
|
||||
android:drawableTint="@color/brand_300"
|
||||
android:gravity="center"
|
||||
android:text="Tag"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layout xmlns:bind="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/tools">
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<data>
|
||||
<import type="com.habitrpg.android.habitica.models.social.Group" />
|
||||
|
|
@ -52,8 +51,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
style="@style/CardView.Default"
|
||||
android:id="@+id/invitationWrapper"
|
||||
android:visibility="@{invitation == null ? View.GONE : View.VISIBLE}"
|
||||
>
|
||||
android:visibility="@{invitation == null ? View.GONE : View.VISIBLE}">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
|
|
@ -283,24 +281,6 @@
|
|||
style="?android:buttonBarStyle"
|
||||
android:visibility="@{group.quest.active ? View.VISIBLE : View.GONE}">
|
||||
|
||||
<com.habitrpg.android.habitica.ui.views.ValueBar
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:id="@+id/bossHpBar"
|
||||
layout="@layout/value_bar"
|
||||
app:barForegroundColor="@color/hpColor"
|
||||
app:description="@string/boss_health"
|
||||
app:barIconDrawable="@drawable/ic_header_heart" />
|
||||
|
||||
<com.habitrpg.android.habitica.ui.views.ValueBar
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:id="@+id/bossRageBar"
|
||||
layout="@layout/value_bar"
|
||||
app:barForegroundColor="@color/mpColor"
|
||||
app:description="@string/boss_rage"
|
||||
app:barIconDrawable="@drawable/ic_header_magic" />
|
||||
|
||||
<android.support.v7.widget.RecyclerView
|
||||
android:id="@+id/collectionStats"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -578,4 +578,15 @@
|
|||
<string name="welcome_back">Добре дошли отново</string>
|
||||
<string name="yesterdaililes_prompt">Свършихте ли някоя от тези ежедневни задачи вчера?</string>
|
||||
<string name="start_day">Начало на деня ми</string>
|
||||
<string name="leave_party_confirmation">Наистина ли искате да напуснете групата?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Следващата награда ще бъде след %d отчитания</string>
|
||||
<string name="pending">В очакване</string>
|
||||
<string name="accepted">Приета</string>
|
||||
<string name="declined">Отказана</string>
|
||||
<string name="participants">Участници</string>
|
||||
<string name="invitations">Покани</string>
|
||||
<string name="quest_leader_header" formatted="false">Започната от %s</string>
|
||||
<string name="quest_abort_message">Наистина ли искате да прекъснете мисията? Така тя ще приключи за всички в групата Ви и целият Ви напредък ще бъде изгубен. Свитъкът с мисията ще бъде върнат на собственика си.</string>
|
||||
<string name="loading">Зареждане…</string>
|
||||
<string name="reloading_content">Презареждане на съдържанието</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,10 +1,22 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_equipment">Wenn Du Ausrüstung kaufst, taucht diese hier auf. Deine Kampfausrüstung beeinflusst Deine Spielerstatistiken und Dein Kostüm (falls aktiviert) beeinflusst Dein Aussehen.</string>
|
||||
<string name="tutorial_items">Verdiene Gegenstände indem Du Aufgaben erledigst und Stufen aufsteigst. Tippe auf einen Gegenstand um ihn zu benutzen!</string>
|
||||
<string name="tutorial_pets">Wenn du Aufgaben abschließt, hast Du eine Chance, Eier und Tränke zu finden. Kombiniere sie, um Haustiere auszubrüten.</string>
|
||||
<string name="tutorial_skills">Fähigkeiten erlauben es Dir, mächtige Effekte auszulösen. Tippe auf eine Fähigkeit, um sie zu benutzen. Das kostet Mana (der blaue Balken), das Du verdienst, indem Du Dich jeden Tag einloggst und reale Aufgaben abschließt. Für mehr Infos schaue im Menü in die FAQ!</string>
|
||||
<string name="tutorial_party">Hier können Du und Deine Freunde Euch gegenseitig motivieren und mit Euren Aufgaben Monster bekämpfen!</string>
|
||||
<string name="tutorial_tavern">Willkommen im Gasthaus, einem öffentlichen und für alle Altersklassen geeigneten Chat! Hier kannst Du über Produktivität diskutieren und Fragen stellen. Viel Spaß!</string>
|
||||
<string name="tutorial_classes">Wähle aus, ob Du ein Krieger, Magier, Heiler oder Schurke werden möchtest. Jede Klasse hat einzigartige Ausrüstungsgegenstände und Fähigkeiten. Tippe auf (?) um mehr zu erfahren!</string>
|
||||
</resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_overview">Da sind wir! Ich habe bereits einige Aufgaben basierend auf Deinen Interessen erstellt. Füge ein paar eigene hinzu. Du kannst jede Aufgabe durch das Antippen des Titels bearbeiten.</string>
|
||||
<string name="tutorial_habits_1">Zuerst ein Blick auf die Gewohnheiten. Es kann gute Gewohnheiten geben, wenn Du eine Gewohnheit verbessern möchtest, oder auch schlechte Gewohnheiten, die Du aufgeben möchtest.</string>
|
||||
<string name="tutorial_habits_2">Jedes Mal, wenn Du eine gute Gewohnheit umsetzt, klicke auf das +, um Erfahrung und Gold zu erhalten!</string>
|
||||
<string name="tutorial_habits_3">Falls Dir doch einen Ausrutscher passiert und Du eine schlechte Gewohnheit umsetzt, wird ein Klick auf das - die Lebenspunkte Deines Avatars verringern, um Dir dabei zu helfen, für Deine Taten Verantwortung zu übernehmen.</string>
|
||||
<string name="tutorial_habits_4">Probier es aus! Du kannst die anderen Aufgaben-Typen kennenernen, indem Du die untere Navigation benutzt.</string>
|
||||
<string name="tutorial_dailies_1">Erstelle tägliche Aufgaben für sich wiederholende Aufgaben, die regelmäßig erledigt werden müssen. </string>
|
||||
<string name="tutorial_dailies_2">Pass auf - wenn Du eine dieser Aufgaben nicht erledigst, dann wird Deinem Avatar über Nacht Schaden zugefügt. Erledige Deine Aufgaben täglich und Du wirst tolle Belohnungen erhalten.</string>
|
||||
<string name="tutorial_todos_1">Nutze die To-Dos, um Aufgaben zu organisieren, die Du nur einmalig erledigen musst.</string>
|
||||
<string name="tutorial_todos_2">Falls Dein To-Do an einem bestimmten Tag erledigt sein muss, kannst Du dafür ein Fälligkeitsdatum erstellen. Es sieht so aus, als ob Du jetzt auch eine Aufgabe abhaken kannst - probier es aus!</string>
|
||||
<string name="tutorial_rewards_1">Kaufe Dir Ausrüstung für Deinen Avatar mit dem Gold, dass Du Dir verdienst!</string>
|
||||
<string name="tutorial_rewards_2">Du kannst auch benutzerdefinierte Belohnungen erstellen, die sich auf etwas in Deinem wiklichen Leben beziehen, je nachdem was Dich motiviert.</string>
|
||||
<string name="tutorial_tasks_complete">Das war\'s für das Erste. Falls Du eine Erinnerungshilfe brauchst, dann schau in die FAQs.</string>
|
||||
<string name="tutorial_equipment">Wenn Du Ausrüstung kaufst, taucht diese hier auf. Deine Kampfausrüstung beeinflusst Deine Spielerstatistiken und Dein Kostüm (falls aktiviert) beeinflusst Dein Aussehen.</string>
|
||||
<string name="tutorial_items">Verdiene Gegenstände, indem Du Aufgaben erledigst und Stufen aufsteigst. Tippe auf einen Gegenstand, um ihn zu benutzen!</string>
|
||||
<string name="tutorial_pets">Wenn du Aufgaben abschließt, hast Du eine Chance, Eier und Tränke zu finden. Kombiniere sie, um Haustiere auszubrüten.</string>
|
||||
<string name="tutorial_skills">Fähigkeiten erlauben es Dir, mächtige Effekte auszulösen. Tippe auf eine Fähigkeit, um sie zu benutzen. Das kostet Mana (der blaue Balken), das Du verdienst, indem Du Dich jeden Tag einloggst und reale Aufgaben abschließt. Für mehr Infos schaue im Menü in die FAQ!</string>
|
||||
<string name="tutorial_party">Hier können Du und Deine Freunde Euch gegenseitig motivieren und mit Euren Aufgaben Monster bekämpfen!</string>
|
||||
<string name="tutorial_tavern">Willkommen im Gasthaus, einem öffentlichen und für alle Altersklassen geeigneten Chat! Hier kannst Du über Produktivität diskutieren und Fragen stellen. Viel Spaß!</string>
|
||||
<string name="tutorial_classes">Wähle aus, ob Du ein Krieger, Magier, Heiler oder Schurke werden möchtest. Jede Klasse hat einzigartige Ausrüstungsgegenstände und Fähigkeiten. Tippe auf (?), um mehr zu erfahren!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
<string name="SP_APIToken_summary">Dein API-Token</string>
|
||||
<string name="Language_title">Sprache</string>
|
||||
<string name="Language_summary">Habiticas Sprache ändern</string>
|
||||
<string name="SP_user_qr_code">Dein QR Code</string>
|
||||
<string name="SP_user_qr_code">Dein QR-Code</string>
|
||||
<string name="PS_contact_title">Kontaktiere mich</string>
|
||||
<string name="unknown_error">Ein Fehler ist aufgetreten...</string>
|
||||
<string name="pref_account_header">Konto</string>
|
||||
|
|
@ -578,4 +578,17 @@
|
|||
<string name="welcome_back">Willkommen zurück</string>
|
||||
<string name="yesterdaililes_prompt">Hast du gestern einige Deiner täglichen Aufgaben gemacht?</string>
|
||||
<string name="start_day">Starte meinen Tag</string>
|
||||
<string name="leave_party_confirmation">Bist Du sicher, dass Du die Gruppe verlassen willst?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Nächste Belohnung in %d Check-Ins</string>
|
||||
<string name="pending">Ausstehend</string>
|
||||
<string name="accepted">Angenommen</string>
|
||||
<string name="declined">Abgelehnt</string>
|
||||
<string name="participants">Teilnehmer</string>
|
||||
<string name="invitations">Einladungen</string>
|
||||
<string name="quest_leader_header" formatted="false">Begonnen von %s</string>
|
||||
<string name="quest_abort_message">Willst Du diese Mission wirklich abbrechen?
|
||||
Sie wird für alle Mitglieder Deiner Gruppe abgebrochen und Euer gesamter Fortschritt geht verloren.
|
||||
Die Quest-Schriftrolle wird an den Quest-Besitzer zurückgegeben.</string>
|
||||
<string name="loading">Inhalt wird geladen....</string>
|
||||
<string name="reloading_content">Inhalt wird erneut geladen</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
<string name="sidebar.inbox">Inbox</string>
|
||||
<string name="sidebar.tavern">Tavern</string>
|
||||
<string name="sidebar.party">Party</string>
|
||||
<string name="sidebar.purchaseGems">Purchase Gems</string>
|
||||
<string name="sidebar.purchaseGems">Gems & Subscription</string>
|
||||
<string name="sidebar.guilds">Guilds</string>
|
||||
<string name="sidebar.challenges">Challenges</string>
|
||||
<string name="sidebar.section.inventory">Inventory</string>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
<string name="Language_summary">Change Habitica\'s language</string>
|
||||
<string name="SP_user_qr_code">Your QR Code</string>
|
||||
<string name="PS_contact_title">Contact me</string>
|
||||
<string name="unknown_error">An error happened…</string>
|
||||
<string name="unknown_error">An error occurred…</string>
|
||||
<string name="pref_account_header">Account</string>
|
||||
<string name="pref_first_day_of_the_week_title">First Day of the Week</string>
|
||||
<string name="pref_first_day_of_the_week_summary">First day of the week in all calendars</string>
|
||||
|
|
@ -38,10 +38,10 @@
|
|||
<string name="preference_push_invited_to_quest">Invited to Quest</string>
|
||||
<!--Adding tasks-->
|
||||
<string name="task_value">Value</string>
|
||||
<string name="new_todo">New to-do</string>
|
||||
<string name="new_reward">New reward</string>
|
||||
<string name="new_daily">New daily</string>
|
||||
<string name="new_habit">New habit</string>
|
||||
<string name="new_todo">New To-Do</string>
|
||||
<string name="new_reward">New Reward</string>
|
||||
<string name="new_daily">New Daily</string>
|
||||
<string name="new_habit">New Habit</string>
|
||||
<string name="action_edit">Edit</string>
|
||||
<string name="action_delete">Delete</string>
|
||||
<string name="action_cancel">Cancel</string>
|
||||
|
|
@ -67,6 +67,7 @@
|
|||
<string name="about.give_us_feedback">Send us Feedback!</string>
|
||||
<string name="about.bugreport">Report a Bug</string>
|
||||
<string name="about.source_code">Source Code</string>
|
||||
<string name="repeatEvery">Repeat Every</string>
|
||||
<!--Network Errors-->
|
||||
<string name="network_error_title">Connection Error</string>
|
||||
<string name="network_error_no_network_body">You are not connected to the internet.</string>
|
||||
|
|
@ -99,6 +100,15 @@
|
|||
<string name="frequency">Frequency</string>
|
||||
<string name="frequency_weekly">On Certain Days of the Week</string>
|
||||
<string name="frequency_daily">Every X Days</string>
|
||||
<string name="repeatables_summary_title">Summary</string>
|
||||
<string name="repeatables_title">Repeats</string>
|
||||
<string name="repeatables_on_title">Repeats On</string>
|
||||
<string name="repeatables_frequency_daily">Daily</string>
|
||||
<string name="repeatables_frequency_weekly">Weekly</string>
|
||||
<string name="repeatables_frequency_monthly">Monthly</string>
|
||||
<string name="repeatables_frequency_yearly">Yearly</string>
|
||||
<string name="repeatables_frequency_day_of_month">Day of Month</string>
|
||||
<string name="repeatables_frequency_day_of_week">Day of Week</string>
|
||||
<string name="monday">Monday</string>
|
||||
<string name="tuesday">Tuesday</string>
|
||||
<string name="wednesday">Wednesday</string>
|
||||
|
|
@ -181,24 +191,26 @@
|
|||
<string name="sidebar_help">Help & FAQ</string>
|
||||
<string name="complete_tutorial">Got it!</string>
|
||||
<string name="dismiss_tutorial">Remind me again</string>
|
||||
<string name="intro_1_title">Welcome to Habitica</string>
|
||||
<string name="intro_1_description">Join over %s people having fun while getting things done. Create an avatar and track your real-life tasks.</string>
|
||||
<string name="intro_2_title">Game Progress = Life Progress</string>
|
||||
<string name="intro_2_description">Unlock features in the game by checking off your real-life tasks. Earn armour, pets, and more to reward you for meeting your goals!</string>
|
||||
<string name="intro_3_title">Get Social and Fight Monsters</string>
|
||||
<string name="intro_1_subtitle">Welcome to</string>
|
||||
<string name="intro_1_title">Habitica</string>
|
||||
<string name="intro_1_description">It’s time to have fun while you get things done. Join over %s others improving their life one task at a time.</string>
|
||||
<string name="intro_2_subtitle">Progress in the game</string>
|
||||
<string name="intro_2_title">Progress in life</string>
|
||||
<string name="intro_2_description">Unlock features in the game by checking off your real life tasks. Earn armour, pets, and more as rewards for meeting your goals.</string>
|
||||
<string name="intro_3_subtitle">Fight monsters</string>
|
||||
<string name="intro_3_title">Get social</string>
|
||||
<string name="intro_3_description">Keep your goals on track with help from your friends. Support each other in life and in battle as you improve together!</string>
|
||||
<string name="intro_finish_button">Get Started</string>
|
||||
<string name="intro_finish_button">Let\'s start!</string>
|
||||
<string name="previous_button">Previous</string>
|
||||
<string name="next_button">Next</string>
|
||||
<string name="skip_button">Skip</string>
|
||||
<string name="setup_welcome_description">Welcome to Habitica, where advancing in the game will improve your real life! As you accomplish real-world goals, you\'ll unlock equipment, pets, quests, and more.</string>
|
||||
<string name="setup_welcome_title">Welcome</string>
|
||||
<string name="avatar_setup_description">First, you need an avatar in the game to represent you! The things you do in real life will affect your avatar\'s health, experience level, and gold.</string>
|
||||
<string name="task_setup_description">Splendid! Now let\'s set up your tasks so that you can start earning experience and gold.
|
||||
|
||||
To start, which parts of your life do you want to improve?</string>
|
||||
<string name="avatar_setup_description">So, how would you like to look? Don\'t worry, you can change this later.</string>
|
||||
<string name="task_setup_description">Great! Now, what are you interested in working on throughout this journey?</string>
|
||||
<string name="setup_group_work">Work</string>
|
||||
<string name="setup_group_exercise">Exercise</string>
|
||||
<string name="setup_group_health">Health</string>
|
||||
<string name="setup_group_school">School</string>
|
||||
<string name="setup_group_teams">Teams</string>
|
||||
<string name="setup_group_chores">Chores</string>
|
||||
|
|
@ -238,7 +250,7 @@ To start, which parts of your life do you want to improve?</string>
|
|||
<string name="delete">Delete</string>
|
||||
<string name="name">Name</string>
|
||||
<string name="description">Description</string>
|
||||
<string name="add_tag">Add Tag</string>
|
||||
<string name="add_tag">Add new Tag</string>
|
||||
<string name="privacy">Privacy</string>
|
||||
<string name="write_message">Write Message</string>
|
||||
<string name="post">Post</string>
|
||||
|
|
@ -395,7 +407,7 @@ To start, which parts of your life do you want to improve?</string>
|
|||
<string name="all_dailies_completed">You completed all your dailies. Well done!</string>
|
||||
<string name="widget_habit_button">Habitica Do Habit</string>
|
||||
<string name="widget_dailies">Habitica Dailies</string>
|
||||
<string name="widget_todo_list">Habitica Todo List</string>
|
||||
<string name="widget_todo_list">Habitica To-Do List</string>
|
||||
<string name="widget_add_task">Habitica Add Task</string>
|
||||
<string name="google_services_missing">Google Play services could not be found.</string>
|
||||
<string name="gem.purchase.toolbartitle">Purchase</string>
|
||||
|
|
@ -460,6 +472,10 @@ To start, which parts of your life do you want to improve?</string>
|
|||
<string name="challenge_details">Challenge Details</string>
|
||||
<string name="challenge_leave_title">Leave Challenge</string>
|
||||
<string name="challenge_leave_text">Are you sure you want to leave the Challenge “%s”?</string>
|
||||
<string name="challenge_remove_tasks_title">Remove tasks</string>
|
||||
<string name="challenge_remove_tasks_text">Do you want to remove the tasks?</string>
|
||||
<string name="remove_tasks">Remove</string>
|
||||
<string name="keep_tasks">Keep</string>
|
||||
<string name="my_challenges">My Challenges</string>
|
||||
<string name="public_challenges">Public</string>
|
||||
<string name="challenges">Challenges</string>
|
||||
|
|
@ -491,6 +507,86 @@ To start, which parts of your life do you want to improve?</string>
|
|||
<string name="checkInRewardEarned">You earned a %1$s as a reward for your devotion to improving your life.</string>
|
||||
<string name="nextPrizeUnlocks" tools:ignore="PluralsCandidate">Your next prize unlocks at %1$d Check-Ins</string>
|
||||
<string name="pending_approval">pending approval</string>
|
||||
<string name="filters">Filters</string>
|
||||
<string name="done">Done</string>
|
||||
<string name="group_tasks_edit_description">Group tasks cannot be edited.</string>
|
||||
<string name="group_tasks_edit_title">Can\'t edit this task</string>
|
||||
<string name="groups">Groups</string>
|
||||
<string name="all">All</string>
|
||||
<string name="none">None</string>
|
||||
<string name="owned">Owned</string>
|
||||
<string name="not_owned">Not owned</string>
|
||||
<string name="new_game">New\nGame</string>
|
||||
<string name="login_btn_fb">Log in with Facebook</string>
|
||||
<string name="login_btn_google">Log in with Google</string>
|
||||
<string name="action_back">Back</string>
|
||||
<string name="welcome_text">Oh, you must be new here. I’m Justin, I’ll be your guide in Habitica.\n\nTo start, you’ll need to create an avatar.</string>
|
||||
<string name="randomize">Randomise</string>
|
||||
<string name="avatar_extras">Extras</string>
|
||||
<string name="avatar_skin_color">Skin Colour</string>
|
||||
<string name="avatar_hair_color">Hair Colour</string>
|
||||
<string name="avatar_hair_bangs">Bangs</string>
|
||||
<string name="avatar_hair_ponytail">Ponytail</string>
|
||||
<string name="avatar_glasses">Glasses</string>
|
||||
<string name="avatar_wheelchair">Wheelchair</string>
|
||||
<string name="weak">Weak</string>
|
||||
<string name="strong">Strong</string>
|
||||
<string name="gray">Grey</string>
|
||||
<string name="dated">Dated</string>
|
||||
<string name="completed">Completed</string>
|
||||
<string name="setuP_group_other">Other</string>
|
||||
<string name="clear">Clear</string>
|
||||
<string name="empty_title_habits">You don&rsquo;t have any Habits</string>
|
||||
<string name="empty_description_habits">Habits are tasks that don&rsquo;t have a rigid schedule. You can check them off many times a day, or not at all.</string>
|
||||
<string name="empty_title_dailies">You don&rsquo;t have any Dailies</string>
|
||||
<string name="empty_description_dailies">Dailies are tasks that repeat on a regular basis. Choose the schedule that works for you!</string>
|
||||
<string name="empty_title_todos">You don&rsquo;t have any To-Dos</string>
|
||||
<string name="empty_description_todos">To-Dos are tasks that only need to be completed once. Add checklists to your To-Dos to increase their value.</string>
|
||||
<string name="empty_title_rewards">You don&rsquo;t have any Rewards</string>
|
||||
<string name="reset_walkthrough">Reset Justin&rsquo;s Walkthrough</string>
|
||||
<string name="read_community_guidelines">Please read our Community Guidelines before posting</string>
|
||||
<string name="maintenance">Maintenance</string>
|
||||
<string name="reload_content">Reload Content</string>
|
||||
<string name="dailyDueDefaultView">Set Dailies default to ‘due’ tab</string>
|
||||
<string name="dailyDueDefaultViewDescription">With this option set, the Dailies tasks will default to ‘due’ instead of ‘all’</string>
|
||||
<string name="repeat_summary">Repeats %1$s every %2$s %3$s %4$s</string>
|
||||
<string name="no_billing_gems">Your device does not have any of the supported payment methods. Please use the Habitica website if you want to purchase gems.</string>
|
||||
<string name="no_billing_subscriptions">Your device does not have any of the supported payment methods. Please use the Habitica website if you want to purchase a subscription.</string>
|
||||
<string name="save">Save</string>
|
||||
<string name="location">Location</string>
|
||||
<string name="gem_reward">Gem reward</string>
|
||||
<string name="tasks">Tasks</string>
|
||||
<string name="create_challenge">Create challenge</string>
|
||||
<string name="edit_challenge">Edit Challenge</string>
|
||||
<string name="challenge_create_error_tavern_one_gem">You need at least 1 gem to create a challenge in Tavern.</string>
|
||||
<string name="challenge_create_error_enough_gems">You don&rsquo;t have enough gems to create a challenge.</string>
|
||||
<string name="identify_your_challenge_with_a_tag">Identify your challenge with a tag ..</string>
|
||||
<string name="challenge_create_error_tag">You need a tag to create this Challenge.</string>
|
||||
<string name="challenge_create_error_no_tasks">You need to add at least one task to create this Challenge.</string>
|
||||
<string name="challenge_create_error_title">You need a title to create this Challenge.</string>
|
||||
<string name="description_optional">Description (optional)</string>
|
||||
<string name="new_challenge_title">New challenge title</string>
|
||||
<string name="ownership">Ownership</string>
|
||||
<string name="inn">Inn</string>
|
||||
<string name="system">System</string>
|
||||
<string name="start_quest">Start a new Quest</string>
|
||||
<string name="leave_party">Leave Party</string>
|
||||
<string name="party_description">Party Description</string>
|
||||
<string name="abort_confirmation">Are you sure you want to abort this mission? It will abort it for everyone in your party and all progress will be lost. The quest scroll will be returned to the quest owner.</string>
|
||||
<string name="leave_quest_confirmation">Are you sure you want to leave the active quest? All your quest progress will be lost.</string>
|
||||
<string name="number_participants">%1$d Participants</string>
|
||||
<string name="welcome_back">Welcome Back</string>
|
||||
<string name="yesterdaililes_prompt">Did you do any of these Dailies yesterday?</string>
|
||||
<string name="start_day">Start My Day</string>
|
||||
<string name="leave_party_confirmation">Are you sure you want to leave the Party?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Next Prize in %d Check-ins</string>
|
||||
<string name="pending">Pending</string>
|
||||
<string name="accepted">Accepted</string>
|
||||
<string name="declined">Declined</string>
|
||||
<string name="participants">Participants</string>
|
||||
<string name="invitations">Invitations</string>
|
||||
<string name="quest_leader_header" formatted="false">Started by %s</string>
|
||||
<string name="quest_abort_message">Are you sure you want to abort this mission? It will abort it for everyone in your party and all progress will be lost. The quest scroll will be returned to the quest owner.</string>
|
||||
<string name="loading">Loading...</string>
|
||||
<string name="reloading_content">Reloading Content</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -13,4 +13,6 @@
|
|||
<string name="profile_private_message">Mensaje privado</string>
|
||||
<string name="profile_achievements">Logros</string>
|
||||
<string name="profile_achievement_ok">Ok</string>
|
||||
</resources>
|
||||
<string name="profile_qrcode_close">Cerrar</string>
|
||||
|
||||
</resources>
|
||||
|
|
@ -578,4 +578,15 @@
|
|||
<string name="welcome_back">Bienvenue à nouveau</string>
|
||||
<string name="yesterdaililes_prompt">Avez-vous réalisé une de ces quotidiennes hier ?</string>
|
||||
<string name="start_day">Démarrer ma journée</string>
|
||||
<string name="leave_party_confirmation">Voulez-vous vraiment quitter l\'équipe ?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Prochaine récompense dans %d connexions</string>
|
||||
<string name="pending">En cours</string>
|
||||
<string name="accepted">Accepté</string>
|
||||
<string name="declined">Refusé</string>
|
||||
<string name="participants">Participants</string>
|
||||
<string name="invitations">Invitations</string>
|
||||
<string name="quest_leader_header" formatted="false">Lancé par %s</string>
|
||||
<string name="quest_abort_message">Voulez-vous vraiment annuler cette mission ? Cela l\'annulera pour tout le monde dans l\'équipe et toute avancée sera perdue. Le parchemin de quête retournera à son propriétaire. </string>
|
||||
<string name="loading">Chargement...</string>
|
||||
<string name="reloading_content">Recharger le contenu</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<string name="profile_pets_and_mounts">Animali e cavalcature</string>
|
||||
<string name="profile_pets_found">Animali trovati</string>
|
||||
<string name="profile_mounts_tamed">Cavalcature domate</string>
|
||||
<string name="profile_loading_data">Caricamento dati...</string>
|
||||
<string name="profile_loading_data">Caricamento dati utente...</string>
|
||||
<string name="profile_send_message_to">Invia messaggio a %s</string>
|
||||
<string name="profile_message_sent_to">Messaggio inviato a %s</string>
|
||||
<string name="profile_level">Livello:</string>
|
||||
|
|
|
|||
|
|
@ -1,19 +1,22 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_overview">Eccoci qui! Ho creato alcune attività per te basate sui tuoi interessi. Prova ad aggiungerne qualcuna anche tu. Puoi modificare un\'attività toccando il titolo.</string>
|
||||
<string name="tutorial_habits_1">Per prima cosa ci sono le Habit, le abitudini. Possono essere abitudini positive che vuoi migliorare o abitudini negative che vuoi abbandonare.</string>
|
||||
<string name="tutorial_habits_2">Ogni volta che porti a termine un\'abitudine positiva, tocca il + per ottenere esperienza ed oro!</string>
|
||||
<string name="tutorial_habits_3">Se ti fai tentare da un\'abitudine negativa, toccando - il tuo avatar perderà punti salute, per aiutarti a non farlo di nuovo.</string>
|
||||
<string name="tutorial_todos_1">Usa le To-do per tenere traccia delle cose che devi fare solo una volta.</string>
|
||||
<string name="tutorial_todos_2">Se le tue To-do devono essere completate entro un certo giorno, imposta una data di scadenza. Pare che tu possa completarne una, prova!</string>
|
||||
<string name="tutorial_rewards_1">Compra oggetti per il tuo avatar con l\'oro che ottieni!</string>
|
||||
<string name="tutorial_rewards_2">Puoi anche creare delle ricompense reali, basate su ciò che ti motiva.</string>
|
||||
<string name="tutorial_tasks_complete">Per ora è tutto. Se hai bisogno di un ripasso, consulta la sezione FAQ.</string>
|
||||
<string name="tutorial_equipment">Quando compri dell\'equipaggiamento, apparirà qui. Il tuo equipaggiamento di battaglia influisce sulle tue statistiche, e il tuo Costume (se attivato) cambia ciò che indossa il tuo avatar.</string>
|
||||
<string name="tutorial_items">Guadagnati degli oggetti completando attività e salendo di livello. Tocca un oggetto per usarlo!</string>
|
||||
<string name="tutorial_pets">Man mano che porti a termine attività nella vita reale, ora potrai trovare casualmente uova e pozioni. Combinali per far nascere degli animali!</string>
|
||||
<string name="tutorial_skills">Le Abilità sono dei poteri con straordinari effetti! Tocca un\'abilità per utilizzarla. Costerà del Mana (la barra blu), che puoi ottenere usando Habitica ogni giorno e completando attività. Dai un\'occhiata alle FAQ nel menù per avere maggiori informazioni!</string>
|
||||
<string name="tutorial_party">Qui è dove tu e i tuoi amici potete motivarvi a vicenda e combattere i mostri con le vostre attività!</string>
|
||||
<string name="tutorial_tavern">Benvenuto nella Taverna, una chat pubblica per tutte le età! Qui puoi chiacchierare e fare delle domande. Divertiti!</string>
|
||||
<string name="tutorial_classes">Scegli di diventare un Guerriero, un Mago, un Guaritore o un Assassino! Ogni classe ha equipaggiamento ed abilità uniche. Tocca (?) per saperne di più!</string>
|
||||
</resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_overview">Eccoci qui! Ho creato alcune attività per te basate sui tuoi interessi. Prova ad aggiungerne qualcuna anche tu. Puoi modificare un\'attività toccando il titolo.</string>
|
||||
<string name="tutorial_habits_1">Per prima cosa ci sono le Abitudini. Possono essere Abitudini positive che vuoi migliorare o Abitudini negative che vuoi abbandonare.</string>
|
||||
<string name="tutorial_habits_2">Ogni volta che porti a termine un\'abitudine positiva, tocca il + per ottenere esperienza ed oro!</string>
|
||||
<string name="tutorial_habits_3">Se ti fai tentare da un\'abitudine negativa, toccando - il tuo avatar perderà punti salute, per aiutarti a non farlo di nuovo.</string>
|
||||
<string name="tutorial_habits_4">Ora prova te! Puoi trovare gli altri tipi di attività usando la barra di navigazione in basso.</string>
|
||||
<string name="tutorial_dailies_1">Crea Daily per attività che devono essere svolte periodicamente.</string>
|
||||
<string name="tutorial_dailies_2">Sta attento - se te ne salti una il tuo avatar subirà dei danni durante la notte. Completarle con regolarità ti farà ottenere grandi premi!</string>
|
||||
<string name="tutorial_todos_1">Usa le To-do per tenere traccia delle cose che devi fare solo una volta.</string>
|
||||
<string name="tutorial_todos_2">Se le tue To-do devono essere completate entro un certo giorno, imposta una data di scadenza. Pare che tu possa completarne una, prova!</string>
|
||||
<string name="tutorial_rewards_1">Compra oggetti per il tuo avatar con l\'oro che ottieni!</string>
|
||||
<string name="tutorial_rewards_2">Puoi anche creare delle ricompense reali, basate su ciò che ti motiva.</string>
|
||||
<string name="tutorial_tasks_complete">Per ora è tutto. Se hai bisogno di un ripasso, consulta la sezione FAQ.</string>
|
||||
<string name="tutorial_equipment">Quando compri dell\'equipaggiamento, apparirà qui. Il tuo equipaggiamento di battaglia influisce sulle tue statistiche, e il tuo Costume (se attivato) cambia ciò che indossa il tuo avatar.</string>
|
||||
<string name="tutorial_items">Guadagnati degli oggetti completando attività e salendo di livello. Tocca un oggetto per usarlo!</string>
|
||||
<string name="tutorial_pets">Man mano che porti a termine attività nella vita reale, ora potrai trovare casualmente uova e pozioni. Combinali per far nascere degli animali!</string>
|
||||
<string name="tutorial_skills">Le Abilità sono dei poteri con straordinari effetti! Tocca un\'abilità per utilizzarla. Costerà del Mana (la barra blu), che puoi ottenere usando Habitica ogni giorno e completando attività. Dai un\'occhiata alle FAQ nel menù per avere maggiori informazioni!</string>
|
||||
<string name="tutorial_party">Qui è dove tu e i tuoi amici potete motivarvi a vicenda e combattere i mostri con le vostre attività!</string>
|
||||
<string name="tutorial_tavern">Benvenuto nella Taverna, una chat pubblica per tutte le età! Qui puoi chiacchierare e fare delle domande. Divertiti!</string>
|
||||
<string name="tutorial_classes">Scegli di diventare un Guerriero, un Mago, un Guaritore o un Assassino! Ogni classe ha equipaggiamento ed abilità uniche. Tocca (?) per saperne di più!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@
|
|||
<string name="new_todo">Nuova To-Do</string>
|
||||
<string name="new_reward">Nuova Ricompensa</string>
|
||||
<string name="new_daily">Nuova Daily</string>
|
||||
<string name="new_habit">Nuova abitudine</string>
|
||||
<string name="new_habit">Nuova Abitudine</string>
|
||||
<string name="action_edit">Modifica</string>
|
||||
<string name="action_delete">Elimina</string>
|
||||
<string name="action_cancel">Annulla</string>
|
||||
|
|
@ -329,7 +329,7 @@
|
|||
<string name="mage_description">I Maghi imparano più velocemente, guadagnano Esperienza e Livelli più velocemente delle altre classi. Hanno anche a loro disposizione molto mana per l\'utilizzo di abilità speciali. Utilizza il Mago se ti piace giocare tatticamente su Habit, o se sei fortemente motivato dal livellare e sbloccare opzioni aggiuntive!</string>
|
||||
<string name="rogue_description">Gli Assassini amano accumulare ricchezza: guadagnano più Oro di chiunque altro, e sono inclini al trovare oggetti casuali. La loro iconica abilità Furtività li rende in grado di prendersi gioco delle conseguenze delle Daily mancate. Diventa un Assassino se trovi una forte motivazione nelle Ricompense e nelle Medaglie, lottando per un bottino e dei riconoscimenti!</string>
|
||||
<string name="healer_description">I Guaritori resistono fortemente ai danni, ed estendono la loro protezione agli altri.
|
||||
Le Dailies mancate e le cattive Habit non li danneggiano molto, e hanno sempre modo di recuperare Vita dagli sbagli. Gioca come Guaritore se vuoi aiutare gli altri giocatori della tua squadra, o se l\'idea di fregare la morte con il duro lavoro ti ispira!</string>
|
||||
Le Dailies mancate e le cattive Abitudini non li danneggiano molto, e hanno sempre modo di recuperare Vita dagli sbagli. Gioca come Guaritore se vuoi aiutare gli altri giocatori della tua squadra, o se l\'idea di fregare la morte con il duro lavoro ti ispira!</string>
|
||||
<string name="select_class">Seleziona classe</string>
|
||||
<string name="opt_out_class">Rinuncia</string>
|
||||
<string name="opt_out_description">Non ti vuoi preoccupare dellle classi? Vuoi scegliere dopo? Puoi essere un guerriero senza abilità speciali. Puoi leggere a proposito del sistema di classi più tardi nella Wiki ed abilitare le classi quando vuoi.</string>
|
||||
|
|
@ -406,9 +406,9 @@ Le Dailies mancate e le cattive Habit non li danneggiano molto, e hanno sempre m
|
|||
<string name="add_todo">Aggiungi To-Do</string>
|
||||
<string name="add_reward">Aggiungi Ricompensa</string>
|
||||
<string name="all_dailies_completed">Hai completato tutte le tue Daily. Ottimo lavoro!</string>
|
||||
<string name="widget_habit_button">Habitica esegui abitudine</string>
|
||||
<string name="widget_habit_button">Habitica esegui Abitudine</string>
|
||||
<string name="widget_dailies">Habitica Daily</string>
|
||||
<string name="widget_todo_list">Lista To-Do Habitica</string>
|
||||
<string name="widget_todo_list">Habitica lista To-Do</string>
|
||||
<string name="widget_add_task">Habitica aggiungi attività</string>
|
||||
<string name="google_services_missing">Impossibile trovare Google Play Services.</string>
|
||||
<string name="gem.purchase.toolbartitle">Compra</string>
|
||||
|
|
@ -537,8 +537,8 @@ Le Dailies mancate e le cattive Habit non li danneggiano molto, e hanno sempre m
|
|||
<string name="completed">Completate</string>
|
||||
<string name="setuP_group_other">Altro</string>
|
||||
<string name="clear">Deseleziona</string>
|
||||
<string name="empty_title_habits">Non hai alcuna Habit.</string>
|
||||
<string name="empty_description_habits">Le Habit sono attività che possono essere svolte in modo molto flessibile. Puoi usarle diverse volte al giorno, o non usarle affatto.</string>
|
||||
<string name="empty_title_habits">Non hai alcuna Abitudine.</string>
|
||||
<string name="empty_description_habits">Le Abitudini sono attività che possono essere svolte in modo molto flessibile. Puoi usarle diverse volte al giorno, o non usarle affatto.</string>
|
||||
<string name="empty_title_dailies">Non hai nessuna Daily</string>
|
||||
<string name="empty_description_dailies">Le Daily sono delle attività che vanno svolte regolarmente. Scegli la frequenza con cui ti trovi meglio!</string>
|
||||
<string name="empty_title_todos">Non hai alcuna To-do.</string>
|
||||
|
|
@ -579,4 +579,15 @@ Le Dailies mancate e le cattive Habit non li danneggiano molto, e hanno sempre m
|
|||
<string name="welcome_back">Bentornato</string>
|
||||
<string name="yesterdaililes_prompt">Hai completato qualcuna di queste Daily ieri?</string>
|
||||
<string name="start_day">Inizia la mia giornata</string>
|
||||
<string name="leave_party_confirmation">Vuoi davvero lasciare la Squadra?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Prossimo premio tra %d accessi</string>
|
||||
<string name="pending">In attesa</string>
|
||||
<string name="accepted">Accettato</string>
|
||||
<string name="declined">Rifiutato</string>
|
||||
<string name="participants">Partecipanti</string>
|
||||
<string name="invitations">Inviti</string>
|
||||
<string name="quest_leader_header" formatted="false">Avviata da %s</string>
|
||||
<string name="quest_abort_message">Vuoi davvero annullare questa missione? Verrà annullata per tutti i membri della tua squadra e tutti i progressi nella missione saranno persi. La Pergamena tornerà al proprietario della missione.</string>
|
||||
<string name="loading">Caricamento...</string>
|
||||
<string name="reloading_content">Ricaricamento contenuti</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@
|
|||
<string name="about.give_us_feedback">フィードバックを送る!</string>
|
||||
<string name="about.bugreport">バグを報告する</string>
|
||||
<string name="about.source_code">ソースコード</string>
|
||||
<string name="repeatEvery">くり返しの間隔</string>
|
||||
<!--Network Errors-->
|
||||
<string name="network_error_title">接続エラー</string>
|
||||
<string name="network_error_no_network_body">インターネットに接続していません。</string>
|
||||
|
|
@ -99,6 +100,15 @@
|
|||
<string name="frequency">頻度</string>
|
||||
<string name="frequency_weekly">決まった曜日</string>
|
||||
<string name="frequency_daily">何日かごと</string>
|
||||
<string name="repeatables_summary_title">要約</string>
|
||||
<string name="repeatables_title">くり返し</string>
|
||||
<string name="repeatables_on_title">くり返しの基準</string>
|
||||
<string name="repeatables_frequency_daily">日課</string>
|
||||
<string name="repeatables_frequency_weekly">週間</string>
|
||||
<string name="repeatables_frequency_monthly">月間</string>
|
||||
<string name="repeatables_frequency_yearly">年間</string>
|
||||
<string name="repeatables_frequency_day_of_month">日にち</string>
|
||||
<string name="repeatables_frequency_day_of_week">曜日</string>
|
||||
<string name="monday">月</string>
|
||||
<string name="tuesday">火</string>
|
||||
<string name="wednesday">水</string>
|
||||
|
|
@ -185,6 +195,7 @@
|
|||
<string name="intro_1_title">Habitica</string>
|
||||
<string name="intro_2_subtitle">ゲームの進行</string>
|
||||
<string name="intro_2_title">人生の進行</string>
|
||||
<string name="intro_2_description">実生活でタスクをこなし、ゲーム内の機能をアンロックしよう。よろいやペットなどのさまざまなアイテムを、あなた自身の目標に近づいたごほうびとして獲得しよう。</string>
|
||||
<string name="intro_3_subtitle">モンスターと戦おう</string>
|
||||
<string name="intro_3_title">友達とつながって</string>
|
||||
<string name="intro_3_description">友達の力を借りて目標にしがみつこう。実生活とバトルでお互いに助け合い、いっしょに成長しよう!</string>
|
||||
|
|
@ -194,6 +205,8 @@
|
|||
<string name="skip_button">スキップ</string>
|
||||
<string name="setup_welcome_description">Habitica へようこそ。ここはゲームが進むほどに、あなたの実生活が改善されるところ! あなたが現実世界のゴールを達成すれば、装備やペット、クエストなどなど、新たな世界が広がるよ。</string>
|
||||
<string name="setup_welcome_title">ようこそ</string>
|
||||
<string name="avatar_setup_description">さあ、どんな格好をしたい? 心配しないで、後で変えることもできるから。</string>
|
||||
<string name="task_setup_description">すばらしい! では、この冒険の旅で、自分の生活のどの部分を改善したい?</string>
|
||||
<string name="setup_group_work">仕事</string>
|
||||
<string name="setup_group_exercise">エクササイズ</string>
|
||||
<string name="setup_group_health">体力</string>
|
||||
|
|
@ -231,6 +244,7 @@
|
|||
<string name="join">参加する</string>
|
||||
<string name="leader">リーダー</string>
|
||||
<string name="gems">ジェム</string>
|
||||
<string name="copy_as_todo">To-Doとしてコピー</string>
|
||||
<string name="send_pm">PMを送る</string>
|
||||
<string name="flag">フラグ</string>
|
||||
<string name="delete">削除</string>
|
||||
|
|
@ -393,6 +407,7 @@
|
|||
<string name="all_dailies_completed">日課をすべて完了した。お見事!</string>
|
||||
<string name="widget_habit_button">Habitica の習慣</string>
|
||||
<string name="widget_dailies">Habitica の日課</string>
|
||||
<string name="widget_todo_list">Habitica のTo-Do リスト</string>
|
||||
<string name="widget_add_task">Habitica のタスク追加</string>
|
||||
<string name="google_services_missing">Google Play サービスが見つかりません。</string>
|
||||
<string name="gem.purchase.toolbartitle">購入</string>
|
||||
|
|
@ -423,9 +438,11 @@
|
|||
<string name="subscribe.listitem4">毎日の落とし物の定数が2倍</string>
|
||||
<string name="subscriptions">寄付</string>
|
||||
<string name="subscription_duration">毎%sに起こる</string>
|
||||
<string name="subscribe">寄付する</string>
|
||||
<string name="subscribe.listitem1.description">商人・アレクサンダーが、ジェム1個を20ゴールドで売ってくれます!\n\nアレクサンダーと1ヵ月の間に取り引きできるジェムの数は、最初は25個に限定されていますが、寄付期間によって増えます。\n\n寄付の継続3カ月ごとにその数が5個ずつ増えていき、最大で月に50個を買うことができます。</string>
|
||||
<string name="subscribe.listitem2.description">毎月、アバターを個性的にメークアップするアイテムが手に入ります!\n\nさらに寄付の継続3カ月ごとに、謎のタイムトラベラーによって、歴史的(そして未来的!)なメークアップ アイテムへのアクセスが許されます。</string>
|
||||
<string name="subscribe.listitem3.description">完了した To-Do やタスクの履歴を、より長期間閲覧可能になります。</string>
|
||||
<string name="subscribe.listitem4.description">落とし物の上限が2倍になり、毎日の完了したタスクから、より多くのアイテムを獲得することができます。動物小屋のコンプリートも早くなります!</string>
|
||||
<string name="subscribe1month.gemcap">最初は25ジェムまで購入できます</string>
|
||||
<string name="subscribe3month.gemcap">ジェムの制限値を30個に引き上げ</string>
|
||||
<string name="subscribe6month.gemcap">ジェムの制限値を35個に引き上げ</string>
|
||||
|
|
@ -439,6 +456,8 @@
|
|||
<string name="visit_habitica_website">Habiticaのウェブサイトを訪れる</string>
|
||||
<string name="current_bonuses">現在のボーナス</string>
|
||||
<string name="months_subscribed">購読した月数</string>
|
||||
<string name="current_hourclasses">現在の神秘の砂時計</string>
|
||||
<string name="monthly_gem_cap">毎月のジェムの購入上限</string>
|
||||
<string name="one_month">1ヶ月</string>
|
||||
<string name="months">%dヶ月</string>
|
||||
<string name="month">月</string>
|
||||
|
|
@ -446,10 +465,15 @@
|
|||
<string name="six_months">6ヶ月</string>
|
||||
<string name="twelve_months">12ヶ月</string>
|
||||
<string name="subscribe_prompt_thanks">寄付のお礼として、こんな便利な特典をもらっています:</string>
|
||||
<string name="subscription_status">寄付の状況</string>
|
||||
<string name="byLeader">%sで</string>
|
||||
<string name="challenge_details">チャレンジの概要</string>
|
||||
<string name="challenge_leave_title">チャレンジから抜ける</string>
|
||||
<string name="challenge_leave_text">本当にチャレンジ「%s」を抜けますか?</string>
|
||||
<string name="challenge_remove_tasks_title">タスクを削除</string>
|
||||
<string name="challenge_remove_tasks_text">タスクを削除しますか?</string>
|
||||
<string name="remove_tasks">削除する</string>
|
||||
<string name="keep_tasks">残す</string>
|
||||
<string name="my_challenges">参加しているチャレンジ</string>
|
||||
<string name="public_challenges">みんなのチャレンジ</string>
|
||||
<string name="challenges">チャレンジ</string>
|
||||
|
|
@ -467,6 +491,7 @@
|
|||
<string name="add_reminder">リマインダーを追加する</string>
|
||||
<string name="warning">注意</string>
|
||||
<string name="open_settings">設定を開く</string>
|
||||
<string name="dont_keep_activities_warning">あなたは開発者向けのオプション \“Don\'t keep Activities\” を有効にしているようです。現在、このオプションはHabiticaのアプリに問題を起こしますので、無効にすることをお勧めします。</string>
|
||||
<string name="inbox">受信箱</string>
|
||||
<string name="FAQ">よくある質問</string>
|
||||
<string name="special">スペシャル</string>
|
||||
|
|
@ -477,20 +502,75 @@
|
|||
<string name="myster_item_notes">寄付会員は、毎月ミステリーアイテムを受け取ることができます。ミステリーアイテムは通常、月の終わりの週に新たなものがリリースされます。</string>
|
||||
<string name="open">開く</string>
|
||||
<string name="notification_mystery_item">プレゼントボックスを開いて%sを手に入れました!</string>
|
||||
<string name="checkInRewardEarned">あなたは人生・生活を向上するために力を注いだので、ごほうびとして %1$s を獲得しました。</string>
|
||||
<string name="nextPrizeUnlocks" tools:ignore="PluralsCandidate">あと%1$d日のログインで、新たな賞品が手に入ります!</string>
|
||||
<string name="pending_approval">保留された承認</string>
|
||||
<string name="filters">フィルター</string>
|
||||
<string name="done">完了</string>
|
||||
<string name="group_tasks_edit_description">グループタスクは編集できません。</string>
|
||||
<string name="group_tasks_edit_title">このタスクは編集できません</string>
|
||||
<string name="groups">グループ</string>
|
||||
<string name="all">全部</string>
|
||||
<string name="none">なし</string>
|
||||
<string name="owned">所持</string>
|
||||
<string name="not_owned">非所持</string>
|
||||
<string name="login_btn_fb">Facebookでログイン</string>
|
||||
<string name="login_btn_google">Googleでログイン</string>
|
||||
<string name="action_back">戻る</string>
|
||||
<string name="avatar_skin_color">肌の色</string>
|
||||
<string name="avatar_hair_color">髪色</string>
|
||||
<string name="avatar_hair_bangs">前髪</string>
|
||||
<string name="avatar_hair_ponytail">ポニーテール</string>
|
||||
<string name="avatar_glasses">メガネ</string>
|
||||
<string name="avatar_wheelchair">車いす</string>
|
||||
<string name="weak">弱い</string>
|
||||
<string name="strong">強い</string>
|
||||
<string name="gray">無効</string>
|
||||
<string name="dated">古い</string>
|
||||
<string name="completed">完了</string>
|
||||
<string name="setuP_group_other">ほか</string>
|
||||
<string name="empty_title_habits">習慣を持っていません</string>
|
||||
<string name="empty_title_dailies">日課を持っていません</string>
|
||||
<string name="empty_title_todos">To-Doがありません</string>
|
||||
<string name="empty_title_rewards">ごほうびがありません</string>
|
||||
<string name="reset_walkthrough">ジャスティンのチュートリアルをリセット</string>
|
||||
<string name="read_community_guidelines">投稿する前に、私たちのコミュニティガイドラインを読んでください</string>
|
||||
<string name="maintenance">修理</string>
|
||||
<string name="dailyDueDefaultView">日課を標準で「期限」タブに入れる</string>
|
||||
<string name="dailyDueDefaultViewDescription">この設定にチェックを入れると、日課は標準で「すべて」タブではなく「期限」タブに入ります。</string>
|
||||
<string name="no_billing_gems">あなたのデバイスは、サポートされている支払方法に対応していません。ジェムを購入したい場合は、Habiticaのウェブサイトをご利用ください。</string>
|
||||
<string name="no_billing_subscriptions">あなたのデバイスは、サポートされている支払方法に対応していません。寄付を購入したい場合は、Habiticaのウェブサイトをご利用ください。</string>
|
||||
<string name="save">保存</string>
|
||||
<string name="location">場所</string>
|
||||
<string name="gem_reward">ジェムの報酬</string>
|
||||
<string name="tasks">タスク</string>
|
||||
<string name="create_challenge">チャレンジを作成する</string>
|
||||
<string name="edit_challenge">チャレンジを編集する</string>
|
||||
<string name="challenge_create_error_tavern_one_gem">キャンプ場でチャレンジを作成するには、ジェムが1つ以上必要です。</string>
|
||||
<string name="challenge_create_error_enough_gems">チャレンジを作成するのに十分なジェムを持っていません。</string>
|
||||
<string name="challenge_create_error_tag">このチャレンジを作成するには、タグが必要です。</string>
|
||||
<string name="challenge_create_error_no_tasks">このチャレンジを作成するには、タスクを1つ以上追加する必要があります。</string>
|
||||
<string name="challenge_create_error_title">このチャレンジを作成するには、タイトルが必要です。</string>
|
||||
<string name="description_optional">説明 (任意)</string>
|
||||
<string name="new_challenge_title">新しいチャレンジのタイトル</string>
|
||||
<string name="ownership">所有</string>
|
||||
<string name="inn">ロッジ</string>
|
||||
<string name="system">システム</string>
|
||||
<string name="start_quest">新しいクエストを開始する</string>
|
||||
<string name="leave_party">パーティーを抜ける</string>
|
||||
<string name="party_description">パーティーの説明</string>
|
||||
<string name="abort_confirmation">このミッションを中断します。よろしいですか? パーティの全員が中断になり、すべての進行状況は失われます。クエストの巻物はクエスト所有者の手に戻ります。</string>
|
||||
<string name="leave_quest_confirmation">進行中のクエストを抜けます。よろしいですか? あなたのクエストの成果はすべて失われます。</string>
|
||||
<string name="number_participants">%1$d 人の参加者</string>
|
||||
<string name="welcome_back">おかえりなさい</string>
|
||||
<string name="yesterdaililes_prompt">これらの日課の中で昨日やり終えたものはありませんか?</string>
|
||||
<string name="start_day">一日を始める</string>
|
||||
<string name="leave_party_confirmation">本当にパーティーを抜けますか?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">次の賞品まであと %d 回チェックイン</string>
|
||||
<string name="pending">保留</string>
|
||||
<string name="accepted">承認済</string>
|
||||
<string name="declined">辞退済</string>
|
||||
<string name="participants">参加者</string>
|
||||
<string name="invitations">招待</string>
|
||||
<string name="quest_abort_message">このミッションを中断します。よろしいですか? パーティの全員が中断になり、すべての進行状況は失われます。クエストの巻物はクエスト所有者の手に戻ります。</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -533,4 +533,6 @@
|
|||
<string name="strong">강함</string>
|
||||
<string name="gray">회색</string>
|
||||
<string name="empty_title_habits">습관이 하나도 없어요.</string>
|
||||
<string name="start_quest">새로운 퀘스트 시작하기</string>
|
||||
<string name="leave_party">파티 떠나기</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,22 +1,22 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_overview">Daar zijn we dan! Ik heb enkele taken voor je ingevuld op basis van je interesses. Probeer er zelf enkele aan toe te voegen. Je kan elke taak bewerken door op de titel te tikken.</string>
|
||||
<string name="tutorial_habits_1">Als eerste de gewoontes. Dit kunnen goede gewoontes zijn die je wilt verbeteren of slechte gewoontes die je wilt afleren.</string>
|
||||
<string name="tutorial_habits_2">Iedere keer dat je een goede gewoonte doet, tik je op de + om ervaring en goud te krijgen!</string>
|
||||
<string name="tutorial_habits_3">Als je toegeeft en een slechte gewoonte doet, tik je op de - en verliest je avatar gezondheid, dus neem verantwoordelijkheid en voorkom slechte gewoontes.</string>
|
||||
<string name="tutorial_habits_4">Probeer het maar! Je kan de andere soorten taken doornemen met de onderstaande navigatie.</string>
|
||||
<string name="tutorial_dailies_1">Maak dagelijkse taken voor tijdgevoelige taken die volgens een vast schema gedaan moeten worden.</string>
|
||||
<string name="tutorial_dailies_2">Wees voorzichtig - als je er een mist, verliest je avatar gezondheid de volgende dag. Vink ze regelmatig af voor grootse beloningen!</string>
|
||||
<string name="tutorial_todos_1">Gebruik to-do\'s om taken bij te houden die je slechts één keer moet doen.</string>
|
||||
<string name="tutorial_todos_2">Als je to-do tegen een bepaalde dag afgewerkt moet zijn, voer dan een einddatum in. Je kan er precies een afvinken - doe maar!</string>
|
||||
<string name="tutorial_rewards_1">Koop uitrusting voor je avatar met het goud dat je verdient!</string>
|
||||
<string name="tutorial_rewards_2">Je kan ook zelf beloningen maken voor in de echte wereld, gebaseerd op wat je motiveert.</string>
|
||||
<string name="tutorial_tasks_complete">Dat was het voorlopig. Als je iets vergeet, kijk dan in de FAQ sectie.</string>
|
||||
<string name="tutorial_equipment">Als je uitrustingsstukken koopt verschijnen die hier. Jouw gevechtsuitrusting beïnvloedt je statistieken en je kostuum (als het aan staat) beïnvloedt wat je avatar aan heeft.</string>
|
||||
<string name="tutorial_items">Verdien voorwerpen door taken te voltooien en niveaus omhoog te gaan. Tik op een voorwerp om het te gebruiken!</string>
|
||||
<string name="tutorial_pets">Terwijl je taken uit de echte wereld voltooit, heb je een kans om eieren en drankjes te vinden. Combineer ze om je huisdier te laten uitkomen.</string>
|
||||
<string name="tutorial_skills">Vaardigheiden zijn speciale talenten die krachtige effecten hebben! Tik op een vaardigheid om ze te gebruiken. Het kost je Mana (de blauwe balk), dat je kan verdienen door elke dag in te checken en je taken in de echte wereld te voltooien. Kijk in de FAQ in het menu voor meer informatie!</string>
|
||||
<string name="tutorial_party">Dit is waar jij en je vrienden elkaar verantwoordelijk kunnen houden voor het bereiken van je doelen en je samen monsters kan bevechten met je taken!</string>
|
||||
<string name="tutorial_tavern">Welkom in de Herberg, een openbare chatroom voor alle leeftijden! Hier kan je praten over productiviteit en vragen stellen. Veel plezier!</string>
|
||||
<string name="tutorial_classes">Kies hier of je Krijger, Magiër, Heler of Dief wilt worden! Elke klasse heeft unieke uitrustingen en vaardigheden. Tik op de (?) om meer te weten te komen!</string>
|
||||
</resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_overview">Daar zijn we dan! Ik heb enkele taken voor je ingevuld op basis van je interesses. Probeer er zelf enkele aan toe te voegen. Je kan elke taak bewerken door op de titel te tikken.</string>
|
||||
<string name="tutorial_habits_1">Als eerste de gewoontes. Dit kunnen goede gewoontes zijn die je wilt verbeteren of slechte gewoontes die je wilt afleren.</string>
|
||||
<string name="tutorial_habits_2">Iedere keer dat je een goede gewoonte doet, tik je op de + om ervaring en goud te krijgen!</string>
|
||||
<string name="tutorial_habits_3">Als je toegeeft en een slechte gewoonte doet, tik je op de - en verliest je avatar gezondheid, dus neem verantwoordelijkheid en voorkom slechte gewoontes.</string>
|
||||
<string name="tutorial_habits_4">Probeer het maar! Je kan de andere soorten taken doornemen met de onderstaande navigatie.</string>
|
||||
<string name="tutorial_dailies_1">Maak dagelijkse taken voor tijdgevoelige taken die volgens een vast schema gedaan moeten worden.</string>
|
||||
<string name="tutorial_dailies_2">Wees voorzichtig - als je er een mist, verliest je avatar gezondheid de volgende dag. Vink ze regelmatig af voor grootse beloningen!</string>
|
||||
<string name="tutorial_todos_1">Gebruik to-do\'s om taken bij te houden die je slechts één keer moet doen.</string>
|
||||
<string name="tutorial_todos_2">Als je to-do tegen een bepaalde dag afgewerkt moet zijn, voer dan een einddatum in. Je kan er een afvinken - doe maar!</string>
|
||||
<string name="tutorial_rewards_1">Koop een uitrusting voor je avatar met het goud dat je verdient!</string>
|
||||
<string name="tutorial_rewards_2">Je kan ook zelf beloningen maken voor in de echte wereld, gebaseerd op wat je motiveert.</string>
|
||||
<string name="tutorial_tasks_complete">Dat was het voorlopig. Als je iets vergeet, kijk dan in de FAQ sectie.</string>
|
||||
<string name="tutorial_equipment">Als je uitrustingsstukken koopt verschijnen die hier. Jouw gevechtsuitrusting beïnvloedt je statistieken en je kostuum (als het aan staat) beïnvloedt wat je avatar aan heeft.</string>
|
||||
<string name="tutorial_items">Verdien voorwerpen door taken te voltooien en niveaus omhoog te gaan. Tik op een voorwerp om het te gebruiken!</string>
|
||||
<string name="tutorial_pets">Terwijl je taken uit de echte wereld voltooit, heb je een kans om eieren en drankjes te vinden. Combineer ze om je huisdier te laten uitkomen.</string>
|
||||
<string name="tutorial_skills">Vaardigheiden zijn speciale talenten die krachtige effecten hebben! Tik op een vaardigheid om ze te gebruiken. Het kost je Mana (de blauwe balk), dat je kan verdienen door elke dag in te checken en je taken in de echte wereld te voltooien. Kijk in de FAQ in het menu voor meer informatie!</string>
|
||||
<string name="tutorial_party">Dit is waar jij en je vrienden elkaar verantwoordelijk kunnen houden voor het bereiken van je doelen en je samen monsters kan bevechten met je taken!</string>
|
||||
<string name="tutorial_tavern">Welkom in de Herberg, een openbare chatroom voor alle leeftijden! Hier kan je praten over productiviteit en vragen stellen. Veel plezier!</string>
|
||||
<string name="tutorial_classes">Kies hier of je Krijger, Magiër, Heler of Dief wilt worden! Elke klasse heeft unieke uitrustingen en vaardigheden. Tik op de (?) om meer te weten te komen!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<string name="action_refresh">Verversen</string>
|
||||
<string name="action_refresh">Vernieuwen</string>
|
||||
<string name="XP_default">Ervaring</string>
|
||||
<string name="HP_default">Gezondheid</string>
|
||||
<string name="MP_default">Mana</string>
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
<string name="Language_summary">Verander Habitica\'s taal</string>
|
||||
<string name="SP_user_qr_code">Je QR code</string>
|
||||
<string name="PS_contact_title">Contact</string>
|
||||
<string name="unknown_error">Een fout is opgetreden...</string>
|
||||
<string name="unknown_error">Er is een fout opgetreden...</string>
|
||||
<string name="pref_account_header">Account</string>
|
||||
<string name="pref_first_day_of_the_week_title">Eerste dag van de week</string>
|
||||
<string name="pref_first_day_of_the_week_summary">Eerste dag van de week op alle kalenders</string>
|
||||
|
|
@ -25,9 +25,9 @@
|
|||
<string name="pref_reminder_picker">Stel tijd van herinnering in</string>
|
||||
<string name="pref_cds_header">Aangepast begin van de dag</string>
|
||||
<string name="pref_cds_picker">Begin van de dag instellen</string>
|
||||
<string name="pref_push_notifications_checkbox">Pushnotificaties</string>
|
||||
<string name="pref_push_notifications_checkbox">Gebruiker-pushnotificaties</string>
|
||||
<string name="push_notifications">Pushnotificaties</string>
|
||||
<string name="push_notifications_sum">Stel je push-notificaties in</string>
|
||||
<string name="push_notifications_sum">Stel je pushnotificaties in</string>
|
||||
<string name="preference_push_you_won_challenge">Je hebt een uitdaging gewonnen!</string>
|
||||
<string name="preference_push_received_a_private_message">Privébericht ontvangen</string>
|
||||
<string name="preference_push_gifted_gems">Edelstenen geschonken</string>
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
<string name="confirmpassword">Bevestig wachtwoord</string>
|
||||
<string name="logout">Uitloggen</string>
|
||||
<string name="logout_description">Uitloggen</string>
|
||||
<string name="account_details_sum">Kijk je account gegevens na</string>
|
||||
<string name="account_details_sum">Kijk je accountgegevens na</string>
|
||||
<string name="account_details">Accountgegevens</string>
|
||||
<string name="LoginActivityName">Welkom</string>
|
||||
<string name="string_revive">Herleven</string>
|
||||
|
|
@ -196,7 +196,7 @@
|
|||
<string name="intro_1_description">Het is tijd om plezier te maken terwijl je dingen gedaan krijgt. Doe mee met %s andere mensen die hun leven met iedere taak beteren.</string>
|
||||
<string name="intro_2_subtitle">Vooruitgang in het spel</string>
|
||||
<string name="intro_2_title">Vooruitgang in je leven</string>
|
||||
<string name="intro_2_description">Ontgrendel functies in het spel door taken in je echte leven af te vinken. Verdien uitrusting, huisdieren en meer als beloning voor het bereiken van je doelen.</string>
|
||||
<string name="intro_2_description">Ontgrendel functies in het spel door taken in je echte leven af te vinken. Verdien uitrustingsstukken, huisdieren en meer als beloning voor het bereiken van je doelen.</string>
|
||||
<string name="intro_3_subtitle">Vecht tegen monsters</string>
|
||||
<string name="intro_3_title">Wordt sociaal</string>
|
||||
<string name="intro_3_description">Houd je doelen op peil met hulp van je vrienden. Ondersteun elkaar in het leven en vecht samen terwijl je steeds beter wordt.</string>
|
||||
|
|
@ -206,8 +206,8 @@
|
|||
<string name="skip_button">Sla over</string>
|
||||
<string name="setup_welcome_description">Welkom in Habitica, waar vooruitgang in het spel je leven zal verbeteren! Terwijl je echte doelen bereikt, verdien je uitrusting, huisdieren, queestes en meer.</string>
|
||||
<string name="setup_welcome_title">Welkom</string>
|
||||
<string name="avatar_setup_description">Dus, hoe wil jij er uit zien? Geen zorgen, je kan dit later veranderen.</string>
|
||||
<string name="task_setup_description">Geweldig! Nu, waar zou je graag aan willen werken doorheen deze reis?</string>
|
||||
<string name="avatar_setup_description">Dus, hoe wil jij er uitzien? Geen zorgen, je kan dit later veranderen.</string>
|
||||
<string name="task_setup_description">Geweldig! Nu, waar zou je graag aan willen werken door deze reis heen?</string>
|
||||
<string name="setup_group_work">Werk</string>
|
||||
<string name="setup_group_exercise">Sport</string>
|
||||
<string name="setup_group_health">Gezondheid</string>
|
||||
|
|
@ -264,7 +264,7 @@
|
|||
<string name="outfit_headAccessory">Hoofdaccessoire</string>
|
||||
<string name="outfit_eyewear">Oogaccessoire</string>
|
||||
<string name="outfit_armor">Harnas</string>
|
||||
<string name="outfit_back">Rug</string>
|
||||
<string name="outfit_back">Terug</string>
|
||||
<string name="outfit_body">Lichaam</string>
|
||||
<string name="outfit_shield">Schild</string>
|
||||
<string name="outfit_weapon">Wapen</string>
|
||||
|
|
@ -334,7 +334,7 @@
|
|||
<string name="opt_out_description">Vind je het klassesysteem te ingewikkeld voor nu? Wil je later pas kiezen? Trek je terug - je zal een krijger zijn zonder speciale talenten. Je kan later nog over het klassesysteem lezen op de wiki en op eender welk moment klassen inschakelen.</string>
|
||||
<string name="class_confirmation">Weet je zeker dat je een %s wilt zijn?</string>
|
||||
<string name="class_changed">Je bent nu een %s!</string>
|
||||
<string name="class_changed_description">Je hebt nieuw standaard gevechtsuitrusting dat je kan veranderen onder Uitrusting!</string>
|
||||
<string name="class_changed_description">Je hebt een nieuwe standaard gevechtsuitrusting die je kan veranderen onder Uitrusting!</string>
|
||||
<string name="choose_class">Kies een Klasse</string>
|
||||
<string name="dialog_go_back">Ga terug</string>
|
||||
<string name="opt_out_confirmation">Weet je zeker dat je je wil afmelden?</string>
|
||||
|
|
@ -353,7 +353,7 @@
|
|||
<string name="email">Email</string>
|
||||
<string name="invite_users">Nodig uit voor groep</string>
|
||||
<string name="share_using">Deel door</string>
|
||||
<string name="share_levelup">Ik ben in Habitica tot niveau %d gekomen door mijn echte gewoontes te verbeteren!</string>
|
||||
<string name="share_levelup">Ik ben in Habitica tot niveau %d gekomen door mijn gewoontes in het echte leven te verbeteren!</string>
|
||||
<string name="share_hatched">Ik heb net een %1$s %2$s huisdier in Habitica laten uitkomen door mijn echte taken uit te voeren!</string>
|
||||
<string name="share_raised">Ik heb net een %1$s %2$s rijdier gekregen in Habitica door mijn echte taken uit te voeren!</string>
|
||||
<string name="open_in_store">Open in de play store</string>
|
||||
|
|
@ -430,30 +430,30 @@
|
|||
<string name="belongs_to_challenge">Hoort bij een Uitdaging</string>
|
||||
<string name="has_reminder">Heeft herinnering</string>
|
||||
<string name="has_tag">Heeft label</string>
|
||||
<string name="subscribe.title">Met abonneren steun je de ontwikkelaars en help je Habitica online te houden</string>
|
||||
<string name="subscribe_prompt">Wordt een abonnee en ontvang deze nuttige voordelen:</string>
|
||||
<string name="subscribe.title">Met het nemen van een abonnement steun je de ontwikkelaars en help je Habitica online te houden</string>
|
||||
<string name="subscribe_prompt">Word een abonnee en ontvang deze nuttige voordelen:</string>
|
||||
<string name="subscribe.listitem1">Koop edelstenen met goud</string>
|
||||
<string name="subscribe.listitem2">Exclusieve maandelijkse voorwerpen</string>
|
||||
<string name="subscribe.listitem3">Achterhaal extra geschiedenis</string>
|
||||
<string name="subscribe.listitem4">Dagelijkse vondst limiet verdubbeld</string>
|
||||
<string name="subscribe.listitem4">Dagelijkse vondstlimiet verdubbeld</string>
|
||||
<string name="subscriptions">Abonnementen</string>
|
||||
<string name="subscription_duration">Keert iedere %s terug</string>
|
||||
<string name="subscribe">Abonneer</string>
|
||||
<string name="subscribe.listitem1.description">Alexander de Koopman zal nu edelstenen aan je verkopen voor 20 goud per edelsteen!\n\nZijn maandelijkse levering is initieel beperkt tot 25 edelstenen per maand, maar stijgt afhankelijk van de duur van je abonnement.\n\nDit limiet verhoogt met 5 edelstenen voor elke 3 maanden van opeenvolgende abonnement periodes, tot een maximum van 50 edelstenen per maand!</string>
|
||||
<string name="subscribe.listitem2.description">Iedere maand ontvang je een uniek cosmetisch voorwerp voor je avatar!\n\nEn voor iedere 3 maanden van opeenvolgende abonnement periodes, geven de mysterieuze tijdreizigers je toegang to historische (en futuristische!) cosmetische voorwerpen.</string>
|
||||
<string name="subscribe.listitem2.description">Iedere maand ontvang je een uniek cosmetisch voorwerp voor je avatar!\n\nEn voor iedere 3 maanden van opeenvolgende abonnementsperiodes, geven de mysterieuze tijdreizigers je toegang tot historische (en futuristische!) cosmetische voorwerpen.</string>
|
||||
<string name="subscribe.listitem3.description">Maakt voltooide To-do\'s en taakgeschiedenis langer beschikbaar.</string>
|
||||
<string name="subscribe.listitem4.description">Dubbele vondst limieten laten je dagelijks meer voorwerpen verdienen van je voltooide taken, waardoor je je stal sneller kan voltooien!</string>
|
||||
<string name="subscribe.listitem4.description">Dubbele vondstlimieten laten je dagelijks meer voorwerpen verdienen van je voltooide taken, waardoor je je stal sneller kan voltooien!</string>
|
||||
<string name="subscribe1month.gemcap">Edelsteenlimiet begint bij 25</string>
|
||||
<string name="subscribe3month.gemcap">Edelsteenlimiet verhoogt naar 30</string>
|
||||
<string name="subscribe6month.gemcap">Edelsteenlimiet verhoogt naar 35</string>
|
||||
<string name="subscribe12month.gemcap">Edelsteenlimiet verhoogt naar 45</string>
|
||||
<string name="subscribe3month.gemcap">Edelsteenlimiet verhoogd naar 30</string>
|
||||
<string name="subscribe6month.gemcap">Edelsteenlimiet verhoogd naar 35</string>
|
||||
<string name="subscribe12month.gemcap">Edelsteenlimiet verhoogd naar 45</string>
|
||||
<string name="subscription_hourglasses">+%d Mystieke Zandloper</string>
|
||||
<string name="payment_method">Betaalmethode</string>
|
||||
<string name="subscription">Abonnement</string>
|
||||
<string name="active">Actief</string>
|
||||
<string name="cancel_subscription">Annuleer Abonnement</string>
|
||||
<string name="cancel_subscription">Annuleer abonnement</string>
|
||||
<string name="cancel_subscription_google.description">Wil je niet langer abonneren? Je kan de optie om je abonnement stop te zetten vinden in de \"Mijn apps\" sectie van de Google Play Store.</string>
|
||||
<string name="cancel_subscription_notgoogle.description">Wil je niet langer abonneren? Vanwege je betaalmethode kan je enkel via de website je abonnement stop zetten. Klik op de knop hieronder om de site in je browser te openen!</string>
|
||||
<string name="cancel_subscription_notgoogle.description">Wil je niet langer abonneren? Vanwege je betaalmethode kan je enkel via de website je abonnement stopzetten. Klik op de knop hieronder om de site in je browser te openen!</string>
|
||||
<string name="visit_habitica_website">Bezoek Habitica Website</string>
|
||||
<string name="current_bonuses">Huidige bonussen</string>
|
||||
<string name="months_subscribed">Maanden geabonneerd</string>
|
||||
|
|
@ -467,17 +467,17 @@
|
|||
<string name="six_months">6 maanden</string>
|
||||
<string name="twelve_months">12 maanden</string>
|
||||
<string name="subscribe_prompt_thanks">Voor het abonneren ontvang je deze nuttige voordelen:</string>
|
||||
<string name="subscription_status">Abonnement status</string>
|
||||
<string name="subscription_status">Abonnementstatus</string>
|
||||
<string name="byLeader">door %s</string>
|
||||
<string name="challenge_details">Uitdaging details</string>
|
||||
<string name="challenge_details">Uitdagingsdetails</string>
|
||||
<string name="challenge_leave_title">Verlaat uitdaging</string>
|
||||
<string name="challenge_leave_text">Weet zeker dat je de uitdaging \"%s\" wilt verlaten?</string>
|
||||
<string name="challenge_leave_text">Weet je zeker dat je de uitdaging \"%s\" wilt verlaten?</string>
|
||||
<string name="challenge_remove_tasks_title">Verwijder taken</string>
|
||||
<string name="challenge_remove_tasks_text">Wil je de taken verwijderen?</string>
|
||||
<string name="remove_tasks">Verwijder</string>
|
||||
<string name="remove_tasks">Verwijderen</string>
|
||||
<string name="keep_tasks">Houden</string>
|
||||
<string name="my_challenges">Mijn uitdagingen</string>
|
||||
<string name="public_challenges">Publiek</string>
|
||||
<string name="public_challenges">Openbaar</string>
|
||||
<string name="challenges">Uitdagingen</string>
|
||||
<string name="daily">Dagelijkse taak</string>
|
||||
<string name="habit">Gewoonte</string>
|
||||
|
|
@ -493,23 +493,23 @@
|
|||
<string name="add_reminder">Voeg herinnering toe</string>
|
||||
<string name="warning">Waarschuwing</string>
|
||||
<string name="open_settings">Open instellingen</string>
|
||||
<string name="dont_keep_activities_warning">Het lijkt erop dat je de Ontwikkelaar optie \\"Hou geen activiteiten bij\\" aan hebt staan. Momenteel zorgt deze optie voor problemen met de habitica app, dus raden we je aan het uit te zetten.</string>
|
||||
<string name="inbox">Postvak in</string>
|
||||
<string name="dont_keep_activities_warning">Het lijkt erop dat je de ontwikkelaarsoptie \\"Hou geen activiteiten bij\\" aan hebt staan. Momenteel zorgt deze optie voor problemen met de habitica app, dus raden we je aan het uit te zetten.</string>
|
||||
<string name="inbox">Inbox</string>
|
||||
<string name="FAQ">Veel gestelde vragen</string>
|
||||
<string name="special">Speciaal</string>
|
||||
<string name="gem_for_gold_description">Omdat je geabonneerd bent voor Habitica kan je iedere maand een aantal edelstenen kopen met goud.</string>
|
||||
<string name="gem_for_gold_description">Omdat je geabonneerd bent op Habitica kan je iedere maand een aantal edelstenen kopen met goud.</string>
|
||||
<string name="limited_count">%d over</string>
|
||||
<string name="gem_shop">Edelsteen</string>
|
||||
<string name="mystery_item">Mysterieus voorwerp</string>
|
||||
<string name="myster_item_notes">Iedere maand ontvangen abonnees een mysterieus voorwerp. Dit wordt meestal een week voor het einde van de maand uitgebracht.</string>
|
||||
<string name="open">Open</string>
|
||||
<string name="notification_mystery_item">Je opent de doos en vind %s!</string>
|
||||
<string name="notification_mystery_item">Je opent de doos en vindt %s!</string>
|
||||
<string name="checkInRewardEarned">Je ontvangt een %1$s als beloning voor je toewijding bij het beteren van je leven.</string>
|
||||
<string name="nextPrizeUnlocks" tools:ignore="PluralsCandidate">Je volgende prijs wordt vrijgespeeld na %1$d check-ins.</string>
|
||||
<string name="pending_approval">afwachten op goedkeuring</string>
|
||||
<string name="pending_approval">wachten op goedkeuring</string>
|
||||
<string name="filters">Filters</string>
|
||||
<string name="done">Klaar</string>
|
||||
<string name="group_tasks_edit_description">Groepstaken konden niet bewerkt worden.</string>
|
||||
<string name="group_tasks_edit_description">Groepstaken kunnen niet bewerkt worden.</string>
|
||||
<string name="group_tasks_edit_title">Kan deze taak niet bewerken</string>
|
||||
<string name="groups">Groepen</string>
|
||||
<string name="all">Alle</string>
|
||||
|
|
@ -531,7 +531,7 @@
|
|||
<string name="avatar_wheelchair">Rolstoel</string>
|
||||
<string name="weak">Zwak</string>
|
||||
<string name="strong">Sterk</string>
|
||||
<string name="gray">Grijd</string>
|
||||
<string name="gray">Grijs</string>
|
||||
<string name="dated">Gedateerd</string>
|
||||
<string name="completed">Voltooid</string>
|
||||
<string name="setuP_group_other">Andere</string>
|
||||
|
|
@ -543,26 +543,26 @@
|
|||
<string name="empty_title_todos">Je hebt geen to-do\'s</string>
|
||||
<string name="empty_description_todos">To-do\'s zijn taken die slechts een keer voltooid moeten worden. Voeg checklijsten aan je to-do\'s toe om hun waarde te verhogen.</string>
|
||||
<string name="empty_title_rewards">Je hebt geen beloningen</string>
|
||||
<string name="reset_walkthrough">Herstart Justin\'s inleiding</string>
|
||||
<string name="reset_walkthrough">Herstart Justins inleiding</string>
|
||||
<string name="read_community_guidelines">Lees alsjeblieft onze gemeenschapsrichtlijnen voordat je berichten plaatst</string>
|
||||
<string name="maintenance">Onderhoud</string>
|
||||
<string name="reload_content">Inhoud herladen</string>
|
||||
<string name="dailyDueDefaultView">Standaard de \'Onvoltooid\' tab laten zien in Dagelijkse Taken</string>
|
||||
<string name="dailyDueDefaultViewDescription">Als deze optie aan staat, wordt standaard de \'onvoltooid\' tab getoond in plaats van \'alle\'</string>
|
||||
<string name="repeat_summary">Herhaalt %1$s elke %2$s %3$s %4$s</string>
|
||||
<string name="no_billing_gems">Je apparaat heeft geen van de ondersteunende betaalmethodes. Gebruik alsjeblieft de habitica website als je edelstenen wilt kopen.</string>
|
||||
<string name="no_billing_subscriptions">Je apparaat heeft geen van de ondersteunende betaalmethodes. Gebruik alsjeblieft de habitica website als je een abonnement wilt kopen.</string>
|
||||
<string name="no_billing_gems">Je apparaat heeft geen van de ondersteunde betaalmethodes. Gebruik alsjeblieft de Habitica-website als je edelstenen wilt kopen.</string>
|
||||
<string name="no_billing_subscriptions">Je apparaat heeft geen van de ondersteunde betaalmethodes. Gebruik alsjeblieft de Habitica-website als je een abonnement wilt kopen.</string>
|
||||
<string name="save">Opslaan</string>
|
||||
<string name="location">Locatie</string>
|
||||
<string name="gem_reward">Edelsteen beloning</string>
|
||||
<string name="gem_reward">Edelsteenbeloning</string>
|
||||
<string name="tasks">Taken</string>
|
||||
<string name="create_challenge">Uitdaging maken</string>
|
||||
<string name="edit_challenge">Uitdaging bewerken</string>
|
||||
<string name="challenge_create_error_tavern_one_gem">Je hebt minstens 1 edelsteen nodig om een uitdaging in de herberg te maken.</string>
|
||||
<string name="challenge_create_error_tavern_one_gem">Je hebt minstens 1 edelsteen nodig om een uitdaging in de Herberg te maken.</string>
|
||||
<string name="challenge_create_error_enough_gems">Je hebt niet genoeg edelstenen om een uitdaging te maken.</string>
|
||||
<string name="identify_your_challenge_with_a_tag">Identificeer je uitdaging met een label ..</string>
|
||||
<string name="challenge_create_error_tag">Je hebt een label nodig om deze uitdaging te maken.</string>
|
||||
<string name="challenge_create_error_no_tasks">Je moet op zijn minst een taak toevoegen om deze uitdaging te maken.</string>
|
||||
<string name="challenge_create_error_no_tasks">Je moet op zijn minst één taak toevoegen om deze uitdaging te maken.</string>
|
||||
<string name="challenge_create_error_title">Je hebt een titel nodig om deze uitdaging te maken.</string>
|
||||
<string name="description_optional">Beschrijving (optioneel)</string>
|
||||
<string name="new_challenge_title">Nieuwe titel voor uitdaging</string>
|
||||
|
|
@ -571,10 +571,22 @@
|
|||
<string name="system">Systeem</string>
|
||||
<string name="start_quest">Begin aan een nieuwe Queeste</string>
|
||||
<string name="leave_party">Verlaat Groep</string>
|
||||
<string name="party_description">Beschrijving Groep</string>
|
||||
<string name="abort_confirmation">Ben je zeker dat je deze queeste wilt annuleren? Het zal voor iedereen in je groep worden geannuleerd en alle voortgang zal verloren gaan. De queeste-perkamentrol zal teruggegeven worden aan de eigenaar van de queeste.</string>
|
||||
<string name="party_description">Groepsbeschrijving</string>
|
||||
<string name="abort_confirmation">Weet je zeker dat je deze queeste wilt annuleren? Hij zal voor iedereen in je groep worden geannuleerd en alle voortgang zal verloren gaan. De queeste-perkamentrol zal teruggegeven worden aan de eigenaar van de queeste.</string>
|
||||
<string name="leave_quest_confirmation">Weet je zeker dat je de actieve queeste wilt verlaten? Al je voortgang in de queeste zal verloren gaan.</string>
|
||||
<string name="number_participants">%1$d Deelnemers</string>
|
||||
<string name="welcome_back">Welkom terug</string>
|
||||
<string name="yesterdaililes_prompt">Heb je gisteren één van deze Dagelijkse taken voltooid?</string>
|
||||
<string name="start_day">Begin mijn dag</string>
|
||||
<string name="leave_party_confirmation">Weet je zeker dat je de groep wilt verlaten?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Volgende prijs in %d check-ins</string>
|
||||
<string name="pending">In afwachting</string>
|
||||
<string name="accepted">Geaccepteerd</string>
|
||||
<string name="declined">Afgewezen</string>
|
||||
<string name="participants">Deelnemers</string>
|
||||
<string name="invitations">Uitnodigingen</string>
|
||||
<string name="quest_leader_header" formatted="false">Begonnen door %s</string>
|
||||
<string name="quest_abort_message">Weet je zeker dat je deze missie wilt stoppen? Hij zal worden gestopt voor iedereen in je groep en alle vooruitgang raakt verloren. De queesterol wordt terug gegeven aan de eigenaar van de queeste.</string>
|
||||
<string name="loading">Aan het laden...</string>
|
||||
<string name="reloading_content">Inhoud opnieuw aan het laden</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -579,4 +579,6 @@
|
|||
<string name="welcome_back">Bem vindo de volta</string>
|
||||
<string name="yesterdaililes_prompt">Você fez alguma dessas Tarefas Diárias ontem?</string>
|
||||
<string name="start_day">Começar Meu Dia</string>
|
||||
<string name="leave_party_confirmation">Você tem certeza de que quer sair do grupo?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Próximo prêmio em %d Check-ins</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -546,6 +546,8 @@
|
|||
<string name="read_community_guidelines">Перед публикацией ознакомьтесь с нашими Правилами сообщества</string>
|
||||
<string name="maintenance">Cодержание</string>
|
||||
<string name="reload_content">Обновить содержимое</string>
|
||||
<string name="dailyDueDefaultView">Установить ежедневные задания по умолчанию на вкладку \'действующих\'</string>
|
||||
<string name="dailyDueDefaultViewDescription">С включённом параметром, по умолчанию будут отображаться только \'действующие\' ежедневные задания вместо \'всех\'.</string>
|
||||
<string name="repeat_summary">Повторять %1$s каждые %2$s %3$s %4$s</string>
|
||||
<string name="no_billing_gems">На вашем устройстве нет поддерживаемых способов оплаты. Пожалуйста, используйте сайт habica, если вы хотите приобрести драгоценные камни.</string>
|
||||
<string name="no_billing_subscriptions">На вашем устройстве не поддерживается ни один из способов оплаты. Пожалуйста используйте наш веб-сайт если вы хотите оформить подписку.</string>
|
||||
|
|
@ -563,4 +565,27 @@
|
|||
<string name="challenge_create_error_title">Вам нужен заголовок, чтобы создать это Испытание.</string>
|
||||
<string name="description_optional">Описание (необязательное поле)</string>
|
||||
<string name="new_challenge_title">Новый заголовок для испытания</string>
|
||||
<string name="ownership">Владение</string>
|
||||
<string name="inn">Гостиница</string>
|
||||
<string name="system">Система</string>
|
||||
<string name="start_quest">Начать новый Квест</string>
|
||||
<string name="leave_party">Покинуть команду</string>
|
||||
<string name="party_description">Описание команды</string>
|
||||
<string name="abort_confirmation">Вы уверены, что хотите отменить эту миссию? Это прервет её прохождение для каждого в вашей команде и весь прогресс будет потерян. Квестовый свиток останется у владельца.</string>
|
||||
<string name="leave_quest_confirmation">Вы уверены, что хотите покинуть активный квест? Весь ваш прогресс будет потерян</string>
|
||||
<string name="number_participants">%1$dУчастники</string>
|
||||
<string name="welcome_back">C возвращением</string>
|
||||
<string name="yesterdaililes_prompt">Вы вчера делали какие-нибудь из этих ежедневных заданий?</string>
|
||||
<string name="start_day">Начать Мой День</string>
|
||||
<string name="leave_party_confirmation">Вы уверены что хотите покинуть команду?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Следующий приз после %d входа в игру</string>
|
||||
<string name="pending">Ожидает</string>
|
||||
<string name="accepted">Принято</string>
|
||||
<string name="declined">Отклонено</string>
|
||||
<string name="participants">Участники</string>
|
||||
<string name="invitations">Приглашения</string>
|
||||
<string name="quest_leader_header" formatted="false">Начато %s</string>
|
||||
<string name="quest_abort_message">Вы уверены, что хотите отменить эту миссию? Это прервет её прохождение для каждого в вашей команде и весь прогресс будет потерян. Квестовый свиток останется у владельца.</string>
|
||||
<string name="loading">Подключение...</string>
|
||||
<string name="reloading_content">Обновление содержимого</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,22 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_overview">İşte geldik! İlgi alanlarına göre sana bazı işler doldurdum. Kendin de birkaç tane eklemeyi dene. Başlığa basarak işleri düzenleyebilirsin.</string>
|
||||
<string name="tutorial_equipment">Ekipman satın aldığında burada gözükür. Savaş Ekipmanın niteliklerini, ve Kostümün (eğer etkinse) avatarının ne giydiğini etkiler.</string>
|
||||
<string name="tutorial_items">Görevlerini tamamlayarak ve seviye yükselerek eşya kazan. Kullanmak için eşyanın üzerine tıkla!</string>
|
||||
<string name="tutorial_pets">Gerçek dünya işlerini tamamladıkça, artık rastgele yumurta ve iksir bulma şansın var. Hayvanları yumurtadan çıkarmak için o ikisini birleştir</string>
|
||||
<string name="tutorial_skills">Yetenekler güçlü etkileri olan özel becerilerdir! Kullanmak için bir yetenğe bas. Bu Mana ile (mavi çubuk), yani hergün giriş yapmakla ve gerçek hayat görevlerini tamamlamakla kazanarak ödenir. Daha fazla bilgi için menüdeki SSS\'ı kontrol et!</string>
|
||||
<string name="tutorial_party">Burası senin ve arkadaşlarının birbirinizi hedeflerinize sorumlu tutabileceğiniz ve görevlerinizle canavarlarla savaştığınız yer!</string>
|
||||
<string name="tutorial_tavern">Taverna, yani herkese açık ve her yaşın sohbet odasına hoşgeldin! Burda üretkenlik hakkında sohbet edebilir ve sorular sorabilirsin. Iyi eğlenceler!</string>
|
||||
<string name="tutorial_classes">Savaşçı, Büyücü, Şifacı veya Düzenbaz olmak için birini seç! Her bir sınıfın kendine özgü donanımı ve yeteneği vardır. Daha fazlasını öğrenmek için (?)\'ne bas!</string>
|
||||
</resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="tutorial_overview">İşte geldik! İlgi alanlarına göre sana bazı işler doldurdum. Kendin de birkaç tane eklemeyi dene. Başlığa basarak işleri düzenleyebilirsin.</string>
|
||||
<string name="tutorial_habits_1">İlk önce alışkanlıklar. Geliştirmek istediğiniz olumlu alışkanlıklar veya bırakmak istediğiniz olumsuz alışkanlıklar olabilirler.</string>
|
||||
<string name="tutorial_habits_2">Olumlu her bir alışkanlık kazandığınızda , deneyim ve altın almak için + simgesine dokunun!</string>
|
||||
<string name="tutorial_habits_3">Eğer hata yaparsan ve negatif bir alışkanlık yaparsan, - düğmesine basarak avatarının sağlığını azaltarak sorumluluk alabilirsin.</string>
|
||||
<string name="tutorial_habits_4">Bi dene! Diğer görev türlerini alttaki gezinme aracıyla keşfedebilirsiniz.</string>
|
||||
<string name="tutorial_dailies_1">Düzenli bir programda yapılması gereken, zamana duyarlı görevler için Günlükl İşler oluştur.</string>
|
||||
<string name="tutorial_dailies_2">Dikkatli olun - eğer birini kaçırırsanız, avatarınız bir gece hasar alacaktır. Onları sürekli olarak kontrol etmek büyük ödüller getirrir!</string>
|
||||
<string name="tutorial_todos_1">Yapmanız gereken görevleri takip etmek için To-do\'yu kullanın.</string>
|
||||
<string name="tutorial_todos_2">Yapılacak İşin belirli bir süreyle yapılması gerekiyorsa, bir bitiş tarihi ayarla. Öyle görünüyor ki birini yapılmış olarak işaretleyebilirsin - devam et!</string>
|
||||
<string name="tutorial_rewards_1">Kazandığınız altınla avatarınızatechizat alın!</string>
|
||||
<string name="tutorial_rewards_2">You can also make real-world Custom Rewards based on what motivates you.</string>
|
||||
<string name="tutorial_tasks_complete">Şimdilik bu kadar. Bir hatırlatıcıya ihtiyacınız varsa SSS bölümünü kontrol edin.</string>
|
||||
<string name="tutorial_equipment">Ekipman satın aldığında burada gözükür. Savaş Ekipmanın niteliklerini, ve Kostümün (eğer etkinse) avatarının ne giydiğini etkiler.</string>
|
||||
<string name="tutorial_items">Görevlerini tamamlayarak ve seviye yükselerek eşya kazan. Kullanmak için eşyanın üzerine tıkla!</string>
|
||||
<string name="tutorial_pets">Gerçek dünya işlerini tamamladıkça, artık rastgele yumurta ve iksir bulma şansın var. Hayvanları yumurtadan çıkarmak için o ikisini birleştir</string>
|
||||
<string name="tutorial_skills">Yetenekler güçlü etkileri olan özel becerilerdir! Kullanmak için bir yetenğe bas. Bu Mana ile (mavi çubuk), yani hergün giriş yapmakla ve gerçek hayat görevlerini tamamlamakla kazanarak ödenir. Daha fazla bilgi için menüdeki SSS\'ı kontrol et!</string>
|
||||
<string name="tutorial_party">Burası senin ve arkadaşlarının birbirinizi hedeflerinize sorumlu tutabileceğiniz ve görevlerinizle canavarlarla savaştığınız yer!</string>
|
||||
<string name="tutorial_tavern">Taverna, yani herkese açık ve her yaşın sohbet odasına hoşgeldin! Burda üretkenlik hakkında sohbet edebilir ve sorular sorabilirsin. Iyi eğlenceler!</string>
|
||||
<string name="tutorial_classes">Savaşçı, Büyücü, Şifacı veya Düzenbaz olmak için birini seç! Her bir sınıfın kendine özgü donanımı ve yeteneği vardır. Daha fazlasını öğrenmek için (?)\'ne bas!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -537,19 +537,28 @@
|
|||
<string name="setuP_group_other">Diğer</string>
|
||||
<string name="clear">Temizle</string>
|
||||
<string name="empty_title_habits">Hiç Alışkanlık sahibi değilsin</string>
|
||||
<string name="empty_description_habits">Alışkanlıklar katı bir zamanlamaya sahip olmayan işlerdir. Onları günde birçok kez yapabilir ya da hiç yapmayabilirsin.</string>
|
||||
<string name="empty_title_dailies">Hiç Günlük İş sahibi değilsin</string>
|
||||
<string name="empty_description_dailies">Günlük İşler, düzenli olarak tekrar eden işlerdir. Senin için uygun olan program seç!</string>
|
||||
<string name="empty_title_todos">Hiç Yapılacak İş sahibi değilsin</string>
|
||||
<string name="empty_description_todos">Yapılacak İşler yalnızca bir kez tamamlanması gereken işlerdir. Değerlerini artırmak için Yapılacak İşlerine kontrol listeleri ekle.</string>
|
||||
<string name="empty_title_rewards">Hiç Ödül sahibi değilsin</string>
|
||||
<string name="reset_walkthrough">Junstin\'in Rehberliğini Sıfırla</string>
|
||||
<string name="read_community_guidelines">undefined</string>
|
||||
<string name="maintenance">Bakım</string>
|
||||
<string name="reload_content">İçeriği Yenile</string>
|
||||
<string name="dailyDueDefaultView">Günlükleri varsayılan \'due\' sekmesine ayarla</string>
|
||||
<string name="dailyDueDefaultViewDescription">Bu seçenek seçili ise, Günlük İşler işleri varsayılan olarak \'tümü\' yerine \'bitirme\' olacaktır</string>
|
||||
<string name="repeat_summary">%1$sher %2$s%3$s%4$s tekrarlanır</string>
|
||||
<string name="no_billing_gems">Cihazında desteklenen ödeme yöntemleri yok. Elmas satın almak istersen lütfen habitica web sitesini kullan.</string>
|
||||
<string name="no_billing_subscriptions">Cihazında desteklenen ödeme yöntemleri yok. Abonelik satın almak istersen lütfen habitica web sitesini kullan.</string>
|
||||
<string name="save">Kaydet</string>
|
||||
<string name="location">Konum</string>
|
||||
<string name="gem_reward">Elmas ödülü</string>
|
||||
<string name="tasks">İşler</string>
|
||||
<string name="create_challenge">Mücadele Yarat</string>
|
||||
<string name="edit_challenge">Mücadeleyi Düzenle</string>
|
||||
<string name="challenge_create_error_tavern_one_gem">Tavernada bir mücadele yaratmak için en azından 1 elmasa ihtiyacın var.</string>
|
||||
<string name="challenge_create_error_enough_gems">Bir mücadele oluşturacak kadar elmasınız yok.</string>
|
||||
<string name="identify_your_challenge_with_a_tag">Bir etiketle mücadeleyi belirleyin ..</string>
|
||||
<string name="challenge_create_error_tag">Bu Mücadeleyi oluşturmak için bir etikete ihtiyacınız var.</string>
|
||||
|
|
@ -557,8 +566,27 @@
|
|||
<string name="challenge_create_error_title">Bu Mücadeleyi oluşturmak için bir başlığa ihtiyacınız var.</string>
|
||||
<string name="description_optional">Açıklama (isteğe bağlı)</string>
|
||||
<string name="new_challenge_title">Yeni mücadele başlığı</string>
|
||||
<string name="ownership">Sahiplik</string>
|
||||
<string name="inn">Han</string>
|
||||
<string name="system">Sistem</string>
|
||||
<string name="start_quest">Yeni bir Göreve başla</string>
|
||||
<string name="leave_party">Takımdan Ayrıl</string>
|
||||
<string name="party_description">Takım Tanımı</string>
|
||||
<string name="abort_confirmation">Bu görevi iptal etmek istediğine emin misin? Tüm davet kabulleri ve ilerleme kaybolacak. Görev sahibi görev parşömenini geri alacaktır.</string>
|
||||
<string name="leave_quest_confirmation">Etkin görevden ayrılmak istediğinden emin misin? Tüm görev ilerlemen kaybolacak.</string>
|
||||
<string name="number_participants">%1$dKatılımcı</string>
|
||||
<string name="welcome_back">Tekrar Hoş Geldin</string>
|
||||
<string name="yesterdaililes_prompt">Bu Günlük İşlerden dün yaptın mı?</string>
|
||||
<string name="start_day">Günüme Başla</string>
|
||||
<string name="leave_party_confirmation">Takımdan ayrılmak istediğinden emin misin?</string>
|
||||
<string name="nextPrizeUnlocksIn" formatted="false">Bir sonraki ödülün %d Girişten sonra</string>
|
||||
<string name="pending">Gönderiliyor</string>
|
||||
<string name="accepted">Kabul edildi</string>
|
||||
<string name="declined">Reddedildi</string>
|
||||
<string name="participants">Katılımcılar</string>
|
||||
<string name="invitations">Davetiyeler</string>
|
||||
<string name="quest_leader_header" formatted="false">%s tarafından başlatıldı</string>
|
||||
<string name="quest_abort_message">Bu görevi iptal etmek istediğine emin misin? Tüm davet kabulleri ve ilerleme kaybolacak. Görev parşömenini görev sahibine geri verilecektir.</string>
|
||||
<string name="loading">Yükleniyor...</string>
|
||||
<string name="reloading_content">İçerik Yeniden Yükleniyor</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -97,5 +97,9 @@ public class HostConfig {
|
|||
public void setUser(String user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public boolean hasAuthentication() {
|
||||
return user != null && user.length() > 0 && api != null && api.length() > 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -434,18 +434,25 @@ public class ApiClientImpl implements Action1<Throwable>, ApiClient {
|
|||
|
||||
@Override
|
||||
public Observable<Items> equipItem(String type, String itemKey) {
|
||||
if (itemKey == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
return apiService.equipItem(type, itemKey).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<BuyResponse> buyItem(String itemKey) {
|
||||
|
||||
if (itemKey == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
return apiService.buyItem(itemKey).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Void> purchaseItem(String type, String itemKey) {
|
||||
|
||||
if (itemKey == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
return apiService.purchaseItem(type, itemKey).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
|
|
@ -461,22 +468,33 @@ public class ApiClientImpl implements Action1<Throwable>, ApiClient {
|
|||
|
||||
@Override
|
||||
public Observable<Void> purchaseHourglassItem(String type, String itemKey) {
|
||||
|
||||
if (itemKey == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
return apiService.purchaseHourglassItem(type, itemKey).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Void> purchaseMysterySet(String itemKey) {
|
||||
if (itemKey == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
return apiService.purchaseMysterySet(itemKey).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<Void> purchaseQuest(String key) {
|
||||
if (key == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
return apiService.purchaseQuest(key).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Observable<User> sellItem(String itemType, String itemKey) {
|
||||
if (itemKey == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
return apiService.sellItem(itemType, itemKey).compose(configureApiCallObserver());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,12 +31,9 @@ abstract class ContentRepositoryImpl<T extends ContentLocalRepository> extends B
|
|||
public Observable<ContentResult> retrieveContent(boolean forced) {
|
||||
if (forced || this.lastSync == null || (new Date().getTime() - this.lastSync.getTime()) > 3600000) {
|
||||
lastSync = new Date();
|
||||
return apiClient.getContent()
|
||||
.doOnNext(localRepository::saveContent);
|
||||
return apiClient.getContent().doOnNext(localRepository::saveContent);
|
||||
} else {
|
||||
return Observable.just(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import java.util.Map;
|
|||
import io.realm.RealmResults;
|
||||
import rx.Observable;
|
||||
import rx.functions.Action1;
|
||||
import rx.functions.Func2;
|
||||
|
||||
|
||||
public class SocialRepositoryImpl extends BaseRepositoryImpl<SocialLocalRepository> implements SocialRepository {
|
||||
|
|
@ -90,22 +91,20 @@ public class SocialRepositoryImpl extends BaseRepositoryImpl<SocialLocalReposito
|
|||
|
||||
@Override
|
||||
public Observable<Group> retrieveGroup(String id) {
|
||||
return apiClient.getGroup(id)
|
||||
.map(group -> {
|
||||
for (ChatMessage message : group.chat) {
|
||||
message.groupId = group.id;
|
||||
}
|
||||
return group;
|
||||
})
|
||||
.doOnNext(group -> {
|
||||
localRepository.save(group);
|
||||
localRepository.getGroup(group.id)
|
||||
.first()
|
||||
.subscribe(group1 -> {
|
||||
group.isMember = group1.isMember;
|
||||
localRepository.save(group);
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
});
|
||||
Observable<Group> observable = apiClient.getGroup(id);
|
||||
if (!"party".equals(id)) {
|
||||
observable = observable.withLatestFrom(localRepository.getGroup(id)
|
||||
.first(), (newGroup, oldGroup) -> {
|
||||
newGroup.isMember = oldGroup.isMember;
|
||||
return newGroup;
|
||||
});
|
||||
}
|
||||
return observable.map(group -> {
|
||||
for (ChatMessage message : group.chat) {
|
||||
message.groupId = group.id;
|
||||
}
|
||||
return group;
|
||||
}).doOnNext(localRepository::save);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -150,6 +150,10 @@ public class TaskRepositoryImpl extends BaseRepositoryImpl<TaskLocalRepository>
|
|||
RealmList<ChecklistItem> checklist = new RealmList<>(localRepository.getUnmanagedCopy(task.getChecklist()).toArray(new ChecklistItem[0]));
|
||||
task.setChecklist(checklist);
|
||||
}
|
||||
if (task.getReminders() != null && task.getReminders().size() > 0) {
|
||||
RealmList<RemindersItem> reminders = new RealmList<>(localRepository.getUnmanagedCopy(task.getReminders()).toArray(new RemindersItem[0]));
|
||||
task.setReminders(reminders);
|
||||
}
|
||||
return apiClient.createTask(task)
|
||||
.map(task1 -> {
|
||||
task1.dateCreated = new Date();
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ public class UserRepositoryImpl extends BaseRepositoryImpl<UserLocalRepository>
|
|||
}
|
||||
});
|
||||
} else {
|
||||
return Observable.just(null);
|
||||
return getUser();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.habitrpg.android.habitica.data.local.implementation;
|
|||
import android.content.Context;
|
||||
|
||||
import com.habitrpg.android.habitica.data.local.InventoryLocalRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.inventory.Egg;
|
||||
import com.habitrpg.android.habitica.models.inventory.Equipment;
|
||||
import com.habitrpg.android.habitica.models.inventory.Food;
|
||||
|
|
@ -219,7 +220,7 @@ public class RealmInventoryLocalRepository extends RealmContentLocalRepository i
|
|||
|
||||
@Override
|
||||
public void changeOwnedCount(String type, String key, int amountToAdd) {
|
||||
this.getItem(type, key).first().subscribe(item -> changeOwnedCount(item, amountToAdd));
|
||||
this.getItem(type, key).first().subscribe(item -> changeOwnedCount(item, amountToAdd), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package com.habitrpg.android.habitica.data.local.implementation;
|
||||
|
||||
import com.habitrpg.android.habitica.data.local.SocialLocalRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.members.Member;
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessage;
|
||||
import com.habitrpg.android.habitica.models.social.ChatMessageLike;
|
||||
|
|
@ -72,7 +73,7 @@ public class RealmSocialLocalRepository extends RealmBaseLocalRepository impleme
|
|||
|
||||
@Override
|
||||
public void deleteMessage(String id) {
|
||||
getMessage(id).first().subscribe(chatMessage -> realm.executeTransaction(realm1 -> chatMessage.deleteFromRealm()), throwable -> {});
|
||||
getMessage(id).first().subscribe(chatMessage -> realm.executeTransaction(realm1 -> chatMessage.deleteFromRealm()), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.preference.PreferenceManager;
|
||||
|
||||
import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
||||
|
|
@ -149,7 +150,7 @@ public class TaskAlarmManager {
|
|||
taskRepository.getTaskCopies(userId)
|
||||
.first()
|
||||
.flatMap(Observable::from)
|
||||
.subscribe(this::setAlarmsForTask, crashlyticsProxy::logException);
|
||||
.subscribe(this::setAlarmsForTask, RxErrorHandler.handleEmptyError());
|
||||
|
||||
scheduleDailyReminder(context);
|
||||
SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit();
|
||||
|
|
@ -157,9 +158,13 @@ public class TaskAlarmManager {
|
|||
editor.apply();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private RemindersItem setTimeForDailyReminder(RemindersItem remindersItem, Task task) {
|
||||
Date oldTime = remindersItem.getTime();
|
||||
Date newTime = task.getNextReminderOccurence(oldTime);
|
||||
if (newTime == null) {
|
||||
return null;
|
||||
}
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(newTime);
|
||||
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DATE), oldTime.getHours(), oldTime.getMinutes(), 0);
|
||||
|
|
@ -167,9 +172,9 @@ public class TaskAlarmManager {
|
|||
return remindersItem;
|
||||
}
|
||||
|
||||
private void setAlarmForRemindersItem(Task reminderItemTask, RemindersItem remindersItem) {
|
||||
private void setAlarmForRemindersItem(Task reminderItemTask, @Nullable RemindersItem remindersItem) {
|
||||
Date now = new Date();
|
||||
if (remindersItem.getTime().before(now)) {
|
||||
if (remindersItem == null || remindersItem.getTime().before(now)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,9 +79,10 @@ public class PushNotificationManager {
|
|||
}
|
||||
|
||||
public void removePushDeviceUsingStoredToken() {
|
||||
apiClient.deletePushDevice(this.refreshedToken)
|
||||
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
if (this.refreshedToken == null) {
|
||||
return;
|
||||
}
|
||||
apiClient.deletePushDevice(this.refreshedToken).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private Boolean userHasPushDevice() {
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.events.ShareEvent;
|
||||
import com.habitrpg.android.habitica.executors.PostExecutionThread;
|
||||
import com.habitrpg.android.habitica.executors.ThreadExecutor;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.helpers.SoundManager;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.models.user.Stats;
|
||||
|
|
@ -46,8 +47,7 @@ public class LevelUpUseCase extends UseCase<LevelUpUseCase.RequestValues, Stats>
|
|||
if (suppressedModals.getLevelUp()) {
|
||||
checkClassSelectionUseCase.observable(new CheckClassSelectionUseCase.RequestValues(requestValues.user, null, requestValues.activity))
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
return Observable.just(requestValues.user.getStats());
|
||||
}
|
||||
|
|
@ -72,8 +72,7 @@ public class LevelUpUseCase extends UseCase<LevelUpUseCase.RequestValues, Stats>
|
|||
.setView(customView)
|
||||
.setPositiveButton(R.string.levelup_button, (dialog, which) -> checkClassSelectionUseCase.observable(new CheckClassSelectionUseCase.RequestValues(requestValues.user, null, requestValues.activity))
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
}))
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
.setNeutralButton(R.string.share, (dialog, which) -> {
|
||||
EventBus.getDefault().post(event);
|
||||
dialog.dismiss();
|
||||
|
|
|
|||
|
|
@ -46,11 +46,14 @@ public class NotifyUserUseCase extends UseCase<NotifyUserUseCase.RequestValues,
|
|||
@Override
|
||||
protected Observable<Stats> buildUseCaseObservable(RequestValues requestValues) {
|
||||
return Observable.defer(() -> {
|
||||
if (requestValues.user == null) {
|
||||
return Observable.just(null);
|
||||
}
|
||||
Stats stats = requestValues.user.getStats();
|
||||
|
||||
if (requestValues.hasLeveledUp) {
|
||||
return levelUpUseCase.observable(new LevelUpUseCase.RequestValues(requestValues.user, requestValues.context))
|
||||
.flatMap(aVoid -> userRepository.retrieveUser(false))
|
||||
.flatMap(aVoid -> userRepository.retrieveUser(true))
|
||||
.map(User::getStats);
|
||||
} else {
|
||||
Pair<View, SnackbarDisplayType> pair = getNotificationAndAddStatsToUser(requestValues.context, requestValues.xp, requestValues.hp, requestValues.gold, requestValues.mp);
|
||||
|
|
|
|||
|
|
@ -500,6 +500,7 @@ public class Task extends RealmObject implements Parcelable {
|
|||
return this.isDisplayedActive(offset) && (this.checklist.size() != this.getCompletedChecklistCount());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Date getNextReminderOccurence(Date oldTime) {
|
||||
Calendar today = Calendar.getInstance();
|
||||
|
||||
|
|
@ -517,7 +518,7 @@ public class Task extends RealmObject implements Parcelable {
|
|||
return newTime.getTime();
|
||||
}
|
||||
|
||||
if (this.getFrequency().equals(FREQUENCY_DAILY)) {
|
||||
if (FREQUENCY_DAILY.equals(this.getFrequency())) {
|
||||
Calendar startDate = new GregorianCalendar();
|
||||
startDate.setTime(this.getStartDate());
|
||||
|
||||
|
|
@ -528,13 +529,23 @@ public class Task extends RealmObject implements Parcelable {
|
|||
|
||||
today.add(Calendar.DATE, (int) daysUntilNextReminder);
|
||||
newTime.setTime(today.getTime());
|
||||
} else {
|
||||
} else if (FREQUENCY_WEEKLY.equals(this.getFrequency())) {
|
||||
int nextActiveDayOfTheWeek = newTime.get(Calendar.DAY_OF_WEEK);
|
||||
while (!this.getRepeat().getForDay(nextActiveDayOfTheWeek) || newTime.before(today) || newTime.equals(today)) {
|
||||
if (nextActiveDayOfTheWeek == 6) nextActiveDayOfTheWeek = 0;
|
||||
nextActiveDayOfTheWeek += 1;
|
||||
int daysChecked = 0;
|
||||
while ((!this.getRepeat().getForDay(nextActiveDayOfTheWeek) || newTime.before(today) || newTime.equals(today)) && daysChecked <= 7) {
|
||||
if (nextActiveDayOfTheWeek == 6) {
|
||||
nextActiveDayOfTheWeek = 0;
|
||||
} else {
|
||||
nextActiveDayOfTheWeek += 1;
|
||||
}
|
||||
daysChecked += 1;
|
||||
newTime.add(Calendar.DATE, 1);
|
||||
}
|
||||
if (daysChecked > 7) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
||||
return newTime.getTime();
|
||||
|
|
|
|||
|
|
@ -252,92 +252,6 @@ public class User extends RealmObject implements Avatar {
|
|||
this.pushDevices = pushDevices;
|
||||
}
|
||||
|
||||
public List<String> getAvatarLayerNames() {
|
||||
List<String> layerNames = new ArrayList<String>();
|
||||
|
||||
Preferences prefs = this.getPreferences();
|
||||
|
||||
if (prefs.getChair() != null) {
|
||||
layerNames.add(prefs.getChair());
|
||||
}
|
||||
|
||||
Outfit outfit = null;
|
||||
if (this.getItems() != null) {
|
||||
if (prefs.getCostume()) {
|
||||
outfit = this.getItems().getGear().getCostume();
|
||||
} else {
|
||||
outfit = this.getItems().getGear().getEquipped();
|
||||
}
|
||||
}
|
||||
|
||||
if (outfit != null) {
|
||||
if (outfit.getBack() != null) {
|
||||
layerNames.add(outfit.getBack());
|
||||
}
|
||||
}
|
||||
|
||||
if (prefs.getSleep()) {
|
||||
layerNames.add("skin_" + prefs.getSkin() + "_sleep");
|
||||
} else {
|
||||
layerNames.add("skin_" + prefs.getSkin());
|
||||
}
|
||||
layerNames.add(prefs.getSize() + "_shirt_" + prefs.getShirt());
|
||||
layerNames.add("head_0");
|
||||
|
||||
if (outfit != null) {
|
||||
String armor = outfit.getArmor();
|
||||
|
||||
if (armor != null && !armor.equals("armor_base_0")) {
|
||||
layerNames.add(prefs.getSize() + "_" + armor);
|
||||
}
|
||||
if (outfit.getBody() != null && !outfit.getBody().equals("body_base_0")) {
|
||||
layerNames.add(outfit.getBody());
|
||||
}
|
||||
}
|
||||
|
||||
Hair hair = prefs.getHair();
|
||||
if (hair != null) {
|
||||
String hairColor = hair.getColor();
|
||||
|
||||
if (hair.getBase() > 0) {
|
||||
layerNames.add("hair_base_" + hair.getBase() + "_" + hairColor);
|
||||
}
|
||||
if (hair.getBangs() > 0) {
|
||||
layerNames.add("hair_bangs_" + hair.getBangs() + "_" + hairColor);
|
||||
}
|
||||
if (hair.getMustache() > 0) {
|
||||
layerNames.add("hair_mustache_" + hair.getMustache() + "_" + hairColor);
|
||||
}
|
||||
if (hair.getBeard() > 0) {
|
||||
layerNames.add("hair_beard_" + hair.getBeard() + "_" + hairColor);
|
||||
}
|
||||
}
|
||||
|
||||
if (outfit != null) {
|
||||
if (outfit.getEyeWear() != null && !outfit.getEyeWear().equals("eyewear_base_0")) {
|
||||
layerNames.add(outfit.getEyeWear());
|
||||
}
|
||||
if (outfit.getHead() != null && !outfit.getHead().equals("head_base_0")) {
|
||||
layerNames.add(outfit.getHead());
|
||||
}
|
||||
if (outfit.getHeadAccessory() != null && !outfit.getHeadAccessory().equals("headAccessory_base_0")) {
|
||||
layerNames.add(outfit.getHeadAccessory());
|
||||
}
|
||||
if (outfit.getShield() != null && !outfit.getShield().equals("shield_base_0")) {
|
||||
layerNames.add(outfit.getShield());
|
||||
}
|
||||
if (outfit.getWeapon() != null && !outfit.getWeapon().equals("weapon_base_0")) {
|
||||
layerNames.add(outfit.getWeapon());
|
||||
}
|
||||
}
|
||||
|
||||
if (prefs.getSleep()) {
|
||||
layerNames.add("zzz");
|
||||
}
|
||||
|
||||
return layerNames;
|
||||
}
|
||||
|
||||
public EnumMap<AvatarView.LayerType, String> getAvatarLayerMap() {
|
||||
EnumMap<AvatarView.LayerType, String> layerMap = new EnumMap<>(AvatarView.LayerType.class);
|
||||
|
||||
|
|
@ -386,7 +300,7 @@ public class User extends RealmObject implements Avatar {
|
|||
}
|
||||
|
||||
if (outfit != null) {
|
||||
if (!TextUtils.isEmpty(outfit.getBack())) {
|
||||
if (!TextUtils.isEmpty(outfit.getBack()) && !"back_base_0".equals(outfit.getBack())) {
|
||||
layerMap.put(AvatarView.LayerType.BACK, outfit.getBack());
|
||||
}
|
||||
if (outfit.isAvailable(outfit.getArmor())) {
|
||||
|
|
|
|||
|
|
@ -10,16 +10,17 @@ import android.os.Bundle;
|
|||
import com.habitrpg.android.habitica.HabiticaBaseApplication;
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Created by keithholliday on 6/30/16.
|
||||
*/
|
||||
public class LocalNotificationActionReceiver extends BroadcastReceiver {
|
||||
@Inject
|
||||
public ApiClient apiClient;
|
||||
public UserRepository userRepository;
|
||||
@Inject
|
||||
ApiClient apiClient;
|
||||
|
||||
private User user;
|
||||
private String action;
|
||||
|
|
@ -36,14 +37,13 @@ public class LocalNotificationActionReceiver extends BroadcastReceiver {
|
|||
this.intent = intent;
|
||||
this.context = context;
|
||||
|
||||
this.apiClient.getUser()
|
||||
.subscribe(this::onUserReceived, throwable -> {
|
||||
});
|
||||
this.userRepository.getUser().first().subscribe(this::onUserReceived, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
public void onUserReceived(User user) {
|
||||
this.user = user;
|
||||
this.handleLocalNotificationAction(action);
|
||||
userRepository.close();
|
||||
}
|
||||
|
||||
private void handleLocalNotificationAction(String action) {
|
||||
|
|
@ -54,53 +54,29 @@ public class LocalNotificationActionReceiver extends BroadcastReceiver {
|
|||
if (action.equals(this.resources.getString(R.string.accept_party_invite))) {
|
||||
if (this.user.getInvitations().getParty() == null) return;
|
||||
String partyId = this.user.getInvitations().getParty().getId();
|
||||
apiClient.joinGroup(partyId)
|
||||
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
apiClient.joinGroup(partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
} else if (action.equals(this.resources.getString(R.string.reject_party_invite))) {
|
||||
if (this.user.getInvitations().getParty() == null) return;
|
||||
String partyId = this.user.getInvitations().getParty().getId();
|
||||
apiClient.rejectGroupInvite(partyId)
|
||||
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
apiClient.rejectGroupInvite(partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
} else if (action.equals(this.resources.getString(R.string.accept_quest_invite))) {
|
||||
if (this.user.getParty() == null) return;
|
||||
String partyId = this.user.getParty().getId();
|
||||
apiClient.acceptQuest(partyId)
|
||||
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
apiClient.acceptQuest(partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
} else if (action.equals(this.resources.getString(R.string.reject_quest_invite))) {
|
||||
if (this.user.getParty() == null) return;
|
||||
String partyId = this.user.getParty().getId();
|
||||
apiClient.rejectQuest(partyId)
|
||||
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
apiClient.rejectQuest(partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
} else if (action.equals(this.resources.getString(R.string.accept_guild_invite))) {
|
||||
Bundle extras = this.intent.getExtras();
|
||||
String guildId = extras.getString("groupID");
|
||||
if (guildId == null) return;
|
||||
apiClient.joinGroup(guildId)
|
||||
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
apiClient.joinGroup(guildId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
} else if (action.equals(this.resources.getString(R.string.reject_guild_invite))) {
|
||||
Bundle extras = this.intent.getExtras();
|
||||
String guildId = extras.getString("groupID");
|
||||
if (guildId == null) return;
|
||||
apiClient.rejectGroupInvite(guildId)
|
||||
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
apiClient.rejectGroupInvite(guildId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -295,7 +295,7 @@ public class ChallengeDetailActivity extends BaseActivity {
|
|||
dialog.dismiss();
|
||||
|
||||
showRemoveTasksDialog(keepTasks -> this.challengeRepository.leaveChallenge(challenge, new LeaveChallengeBody(keepTasks))
|
||||
.subscribe(aVoid -> finish(), throwable -> {}));
|
||||
.subscribe(aVoid -> finish(), RxErrorHandler.handleEmptyError()));
|
||||
})
|
||||
.setNegativeButton(this.getString(R.string.no), (dialog, which) -> dialog.dismiss()).show();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.Gear;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.models.user.Hair;
|
||||
|
|
@ -104,8 +105,7 @@ public class ClassSelectionActivity extends BaseActivity implements Action1<User
|
|||
|
||||
if (!isInitialSelection) {
|
||||
userRepository.changeClass()
|
||||
.subscribe(user -> classWasUnset = true, throwable -> {
|
||||
});
|
||||
.subscribe(user -> classWasUnset = true, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -202,13 +202,13 @@ public class ClassSelectionActivity extends BaseActivity implements Action1<User
|
|||
private void optOutOfClasses() {
|
||||
shouldFinish = true;
|
||||
this.displayProgressDialog();
|
||||
userRepository.disableClasses().subscribe(this, throwable -> {});
|
||||
userRepository.disableClasses().subscribe(this, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private void selectClass(String selectedClass) {
|
||||
shouldFinish = true;
|
||||
this.displayProgressDialog();
|
||||
userRepository.changeClass(selectedClass).subscribe(this, throwable -> {});
|
||||
userRepository.changeClass(selectedClass).subscribe(this, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private void displayProgressDialog() {
|
||||
|
|
|
|||
|
|
@ -388,7 +388,7 @@ public class CreateChallengeActivity extends BaseActivity {
|
|||
} else if (t.equals(addReward)) {
|
||||
openNewTaskActivity(Task.TYPE_REWARD, null);
|
||||
}
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
createChallengeTaskList.addOnItemTouchListener(new RecyclerView.SimpleOnItemTouchListener() {
|
||||
@Override
|
||||
|
|
@ -435,13 +435,11 @@ public class CreateChallengeActivity extends BaseActivity {
|
|||
|
||||
checkPrizeAndMinimumForTavern();
|
||||
|
||||
challengeRepository.getChallengeTasks(challengeId).subscribe(tasks -> {
|
||||
tasks.tasks.forEach((s, task) -> addOrUpdateTaskInList(task));
|
||||
}, Throwable::printStackTrace, () -> {
|
||||
challengeRepository.getChallengeTasks(challengeId).subscribe(tasks -> tasks.tasks.forEach((s, task) -> addOrUpdateTaskInList(task)), RxErrorHandler.handleEmptyError(), () -> {
|
||||
// activate editMode to track taskChanges
|
||||
editMode = true;
|
||||
});
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private void openNewTaskActivity(String type, Task task) {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.ProgressBar;
|
||||
import android.widget.ScrollView;
|
||||
|
|
@ -186,9 +187,8 @@ public class FullProfileActivity extends BaseActivity {
|
|||
final AlertDialog addMessageDialog = new AlertDialog.Builder(this)
|
||||
.setPositiveButton(android.R.string.ok, (dialogInterface, i) -> {
|
||||
socialRepository.postPrivateMessage(userId, emojiEditText.getText().toString())
|
||||
.subscribe(postChatMessageResult -> showSnackbar(FullProfileActivity.this, FullProfileActivity.this.fullprofile_scrollview,
|
||||
String.format(getString(R.string.profile_message_sent_to), userName), SnackbarDisplayType.NORMAL), throwable -> {
|
||||
});
|
||||
.subscribe(postChatMessageResult -> showSnackbar(FullProfileActivity.this, (ViewGroup) FullProfileActivity.this.fullprofile_scrollview.getChildAt(0),
|
||||
String.format(getString(R.string.profile_message_sent_to), userName), SnackbarDisplayType.NORMAL), RxErrorHandler.handleEmptyError());
|
||||
|
||||
UiUtils.dismissKeyboard(this);
|
||||
})
|
||||
|
|
@ -253,7 +253,7 @@ public class FullProfileActivity extends BaseActivity {
|
|||
//mountsTamedCount.setText(String.valueOf(user.getMountsTamedCount()));
|
||||
|
||||
// Load the members achievements now
|
||||
apiClient.getMemberAchievements(this.userId).subscribe(this::fillAchievements, throwable -> {});
|
||||
apiClient.getMemberAchievements(this.userId).subscribe(this::fillAchievements, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
|
|
|||
|
|
@ -656,8 +656,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
})
|
||||
.create();
|
||||
dialog.show();
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
|
|
@ -694,8 +693,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
.create();
|
||||
dialog.show();
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
// endregion
|
||||
|
|
@ -718,7 +716,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
return;
|
||||
}
|
||||
|
||||
if (this.faintDialog == null) {
|
||||
if (this.faintDialog == null && !this.isFinishing()) {
|
||||
|
||||
View customView = View.inflate(this, R.layout.dialog_faint, null);
|
||||
if (customView != null) {
|
||||
|
|
@ -735,7 +733,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
.setView(customView)
|
||||
.setPositiveButton(R.string.faint_button, (dialog, which) -> {
|
||||
faintDialog = null;
|
||||
userRepository.revive(user).subscribe(user1 -> {}, throwable -> {});
|
||||
userRepository.revive(user).subscribe(user1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
})
|
||||
.create();
|
||||
|
||||
|
|
@ -760,7 +758,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
}
|
||||
|
||||
protected void retrieveUser() {
|
||||
if (this.userRepository != null) {
|
||||
if (this.userRepository != null && hostConfig.hasAuthentication()) {
|
||||
this.userRepository.retrieveUser(true)
|
||||
.flatMap(user1 -> inventoryRepository.retrieveContent(false))
|
||||
.subscribe(user1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
|
|
@ -809,8 +807,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
Map<String, Object> updateData = new HashMap<>();
|
||||
updateData.put(path, true);
|
||||
userRepository.updateUser(user, updateData)
|
||||
.subscribe(user1 -> {}, throwable -> {
|
||||
});
|
||||
.subscribe(user1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
this.overlayLayout.removeView(this.activeTutorialView);
|
||||
this.removeActiveTutorialView();
|
||||
|
||||
|
|
@ -893,6 +890,9 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
this.maintenanceService.getMaintenanceStatus()
|
||||
.compose(apiClient.configureApiCallObserver())
|
||||
.subscribe(maintenanceResponse -> {
|
||||
if (maintenanceResponse == null) {
|
||||
return;
|
||||
}
|
||||
if (maintenanceResponse.activeMaintenance) {
|
||||
Intent intent = createMaintenanceIntent(maintenanceResponse, false);
|
||||
startActivity(intent);
|
||||
|
|
@ -910,7 +910,7 @@ public class MainActivity extends BaseActivity implements TutorialView.OnTutoria
|
|||
}
|
||||
}
|
||||
}
|
||||
}, throwable -> {});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private Intent createMaintenanceIntent(MaintenanceResponse maintenanceResponse, Boolean isDeprecationNotice) {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.habitrpg.android.habitica.R;
|
|||
import com.habitrpg.android.habitica.api.MaintenanceApiService;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
|
||||
|
||||
import net.pherth.android.emoji_library.EmojiTextView;
|
||||
|
|
@ -80,8 +81,7 @@ public class MaintenanceActivity extends BaseActivity {
|
|||
if (!maintenanceResponse.activeMaintenance) {
|
||||
finish();
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import com.habitrpg.android.habitica.data.UserRepository;
|
|||
import com.habitrpg.android.habitica.events.commands.EquipCommand;
|
||||
import com.habitrpg.android.habitica.events.commands.UpdateUserCommand;
|
||||
import com.habitrpg.android.habitica.helpers.AmplitudeManager;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.ui.fragments.setup.AvatarSetupFragment;
|
||||
|
|
@ -90,8 +91,7 @@ public class SetupActivity extends BaseActivity implements ViewPager.OnPageChang
|
|||
return Observable.just(user);
|
||||
}
|
||||
})
|
||||
.subscribe(this::onUserReceived, throwable -> {
|
||||
}));
|
||||
.subscribe(this::onUserReceived, RxErrorHandler.handleEmptyError()));
|
||||
|
||||
Map<String, Object> additionalData = new HashMap<>();
|
||||
additionalData.put("status", "displayed");
|
||||
|
|
@ -101,8 +101,7 @@ public class SetupActivity extends BaseActivity implements ViewPager.OnPageChang
|
|||
for (String language : getResources().getStringArray(R.array.LanguageValues)) {
|
||||
if (language.equals(currentDeviceLanguage)) {
|
||||
apiClient.registrationLanguage(currentDeviceLanguage)
|
||||
.subscribe(habitRPGUser -> {}, throwable -> {
|
||||
});
|
||||
.subscribe(habitRPGUser -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -143,15 +142,13 @@ public class SetupActivity extends BaseActivity implements ViewPager.OnPageChang
|
|||
@Subscribe
|
||||
public void onEvent(UpdateUserCommand event) {
|
||||
this.userRepository.updateUser(user, event.updateData)
|
||||
.subscribe(this::onUserReceived, throwable -> {
|
||||
});
|
||||
.subscribe(this::onUserReceived, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onEvent(EquipCommand event) {
|
||||
this.apiClient.equipItem(event.type, event.key)
|
||||
.subscribe(items -> {}, throwable -> {
|
||||
});
|
||||
.subscribe(items -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@OnClick(R.id.nextButton)
|
||||
|
|
@ -168,8 +165,7 @@ public class SetupActivity extends BaseActivity implements ViewPager.OnPageChang
|
|||
List<Task> newTasks = this.taskSetupFragment.createSampleTasks();
|
||||
this.completedSetup = true;
|
||||
this.taskRepository.createTasks(newTasks)
|
||||
.subscribe(tasks -> onUserReceived(user), throwable -> {
|
||||
});
|
||||
.subscribe(tasks -> onUserReceived(user), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
this.pager.setCurrentItem(this.pager.getCurrentItem() + 1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -421,7 +421,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
|
||||
@Override
|
||||
public void onKeyboardClose() {
|
||||
if (popup.isShowing()) {
|
||||
if (popup != null && popup.isShowing()) {
|
||||
popup.dismiss();
|
||||
}
|
||||
}
|
||||
|
|
@ -466,7 +466,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
.subscribe(loadedTags -> {
|
||||
tags = loadedTags;
|
||||
createTagsCheckBoxes();
|
||||
}, throwable -> {}
|
||||
}, RxErrorHandler.handleEmptyError()
|
||||
);
|
||||
|
||||
if (taskId != null) {
|
||||
|
|
@ -984,6 +984,9 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
}
|
||||
|
||||
private void populate(Task task) {
|
||||
if (!task.isValid()) {
|
||||
return;
|
||||
}
|
||||
taskText.setText(task.text);
|
||||
taskNotes.setText(task.notes);
|
||||
taskValue.setText(String.format(Locale.getDefault(), "%.2f", task.value));
|
||||
|
|
@ -1328,6 +1331,10 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem
|
|||
if (currentFocus != null) {
|
||||
imm.hideSoftInputFromWindow(currentFocus.getWindowToken(), 0);
|
||||
}
|
||||
if (popup != null) {
|
||||
popup.dismiss();
|
||||
popup = null;
|
||||
}
|
||||
}
|
||||
|
||||
private class DateEditTextListener implements View.OnClickListener, DatePickerDialog.OnDateSetListener {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import android.widget.TextView;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.events.DisplayFragmentEvent;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.social.Group;
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.GuildFragment;
|
||||
|
||||
|
|
@ -63,18 +64,20 @@ public class PublicGuildsRecyclerViewAdapter extends RealmRecyclerViewAdapter<Gr
|
|||
PublicGuildsRecyclerViewAdapter.this.apiClient.leaveGroup(guild.id)
|
||||
.subscribe(aVoid -> {
|
||||
memberGuildIDs.remove(guild.id);
|
||||
int indexOfGroup = getData().indexOf(guild);
|
||||
notifyItemChanged(indexOfGroup);
|
||||
}, throwable -> {
|
||||
});
|
||||
if (getData() != null) {
|
||||
int indexOfGroup = getData().indexOf(guild);
|
||||
notifyItemChanged(indexOfGroup);
|
||||
}
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
} else {
|
||||
PublicGuildsRecyclerViewAdapter.this.apiClient.joinGroup(guild.id)
|
||||
.subscribe(group -> {
|
||||
memberGuildIDs.add(group.id);
|
||||
int indexOfGroup = getData().indexOf(group);
|
||||
notifyItemChanged(indexOfGroup);
|
||||
}, throwable -> {
|
||||
});
|
||||
if (getData() != null) {
|
||||
int indexOfGroup = getData().indexOf(group);
|
||||
notifyItemChanged(indexOfGroup);
|
||||
}
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
});
|
||||
|
|
@ -83,11 +86,13 @@ public class PublicGuildsRecyclerViewAdapter extends RealmRecyclerViewAdapter<Gr
|
|||
|
||||
@Override
|
||||
public void onBindViewHolder(GuildViewHolder holder, int position) {
|
||||
Group guild = getData().get(position);
|
||||
boolean isInGroup = isInGroup(guild);
|
||||
holder.bind(guild, isInGroup);
|
||||
holder.itemView.setTag(guild);
|
||||
holder.joinLeaveButton.setTag(guild);
|
||||
if (getData() != null) {
|
||||
Group guild = getData().get(position);
|
||||
boolean isInGroup = isInGroup(guild);
|
||||
holder.bind(guild, isInGroup);
|
||||
holder.itemView.setTag(guild);
|
||||
holder.joinLeaveButton.setTag(guild);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isInGroup(Group guild) {
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ public class RewardsRecyclerViewAdapter extends RecyclerView.Adapter<RewardViewH
|
|||
reward.setId(item.key);
|
||||
|
||||
if ("armoire".equals(item.key)) {
|
||||
if (user != null && user.getFlags() != null && user.getFlags().getArmoireEmpty()) {
|
||||
if (user != null && user.isValid() && user.getFlags() != null && user.getFlags().getArmoireEmpty()) {
|
||||
reward.notes = context.getResources().getString(R.string.armoireNotesEmpty);
|
||||
} else {
|
||||
long gearCount = inventoryRepository.getArmoireRemainingCount();
|
||||
|
|
|
|||
|
|
@ -41,10 +41,9 @@ public class NewsFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_news);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_news);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,8 +14,10 @@ import android.widget.TextView;
|
|||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.components.AppComponent;
|
||||
import com.habitrpg.android.habitica.data.ApiClient;
|
||||
import com.habitrpg.android.habitica.data.UserRepository;
|
||||
import com.habitrpg.android.habitica.events.UserSubscribedEvent;
|
||||
import com.habitrpg.android.habitica.helpers.PurchaseTypes;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.user.User;
|
||||
import com.habitrpg.android.habitica.models.user.SubscriptionPlan;
|
||||
import com.habitrpg.android.habitica.proxy.CrashlyticsProxy;
|
||||
|
|
@ -44,7 +46,7 @@ public class SubscriptionFragment extends BaseFragment implements GemPurchaseAct
|
|||
CrashlyticsProxy crashlyticsProxy;
|
||||
|
||||
@Inject
|
||||
ApiClient apiClient;
|
||||
UserRepository userRepository;
|
||||
|
||||
@BindView(R.id.subscribe_listitem1_box)
|
||||
View subscribeListitem1Box;
|
||||
|
|
@ -125,8 +127,7 @@ public class SubscriptionFragment extends BaseFragment implements GemPurchaseAct
|
|||
|
||||
@Subscribe
|
||||
public void fetchUser(@Nullable UserSubscribedEvent event) {
|
||||
apiClient.getUser().subscribe(this::setUser, throwable -> {
|
||||
});
|
||||
userRepository.retrieveUser(false).subscribe(this::setUser, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -67,6 +67,9 @@ public class FAQOverviewFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.FAQ);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,8 +154,7 @@ public class AvatarOverviewFragment extends BaseMainFragment implements AdapterV
|
|||
|
||||
if (this.user != null && !this.user.getPreferences().getSize().equals(newSize)) {
|
||||
userRepository.updateUser(user, "preferences.size", newSize)
|
||||
.subscribe(user1 -> {}, throwable -> {
|
||||
});
|
||||
.subscribe(user1 -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -166,10 +165,9 @@ public class AvatarOverviewFragment extends BaseMainFragment implements AdapterV
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_avatar);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_avatar);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,11 +156,10 @@ public class EquipmentOverviewFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_equipment);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_equipment);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ public class ItemRecyclerFragment extends BaseFragment {
|
|||
OpenMenuItemCommand event1 = new OpenMenuItemCommand();
|
||||
event1.identifier = MainDrawerBuilder.SIDEBAR_PARTY;
|
||||
EventBus.getDefault().post(event1);
|
||||
}, throwable -> {}));
|
||||
}, RxErrorHandler.handleEmptyError()));
|
||||
}
|
||||
recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
|
||||
|
||||
|
|
|
|||
|
|
@ -128,10 +128,9 @@ public class ItemsFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_items);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_items);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ public class ShopFragment extends BaseFragment {
|
|||
this.inventoryRepository.fetchShopInventory(shopUrl)
|
||||
.map(shop1 -> {
|
||||
if (shop1.identifier.equals(Shop.MARKET)) {
|
||||
if (user.getPurchased().getPlan().isActive()) {
|
||||
if (user != null && user.isValid() && user.getPurchased().getPlan().isActive()) {
|
||||
ShopCategory specialCategory = new ShopCategory();
|
||||
specialCategory.text = getString(R.string.special);
|
||||
specialCategory.items = new ArrayList<>();
|
||||
|
|
|
|||
|
|
@ -142,11 +142,10 @@ public class ShopsFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_shops);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_shops);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -109,10 +109,9 @@ public class MountDetailRecyclerFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.mounts);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.mounts);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,10 +132,9 @@ public class PetDetailRecyclerFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.pets);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.pets);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,10 +88,9 @@ public class StableFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_stable);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_stable);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -176,7 +176,7 @@ public class PreferencesFragment extends BasePreferencesFragment implements
|
|||
String timeval = sharedPreferences.getString("cds_time", "00:00");
|
||||
String[] pieces = timeval.split(":");
|
||||
int hour = Integer.parseInt(pieces[0]);
|
||||
userRepository.changeCustomDayStart(hour).subscribe(user -> {}, throwable -> {});
|
||||
userRepository.changeCustomDayStart(hour).subscribe(user -> {}, RxErrorHandler.handleEmptyError());
|
||||
break;
|
||||
case "language": {
|
||||
LanguageHelper languageHelper = new LanguageHelper(sharedPreferences.getString(key, "en"));
|
||||
|
|
|
|||
|
|
@ -201,6 +201,10 @@ public class SkillsFragment extends BaseMainFragment {
|
|||
}
|
||||
|
||||
@Override
|
||||
public String customTitle() { return getString(R.string.sidebar_skills); }
|
||||
|
||||
public String customTitle() {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_skills);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ public class ChatListFragment extends BaseFragment implements SwipeRefreshLayout
|
|||
|
||||
recyclerView.setAdapter(chatAdapter);
|
||||
|
||||
socialRepository.getGroupChat(groupId).first().subscribe(this::setChatMessages, throwable -> {});
|
||||
socialRepository.getGroupChat(groupId).first().subscribe(this::setChatMessages, RxErrorHandler.handleEmptyError());
|
||||
|
||||
if (user != null && user.getFlags() != null && user.getFlags().isCommunityGuidelinesAccepted()) {
|
||||
communityGuidelinesView.setVisibility(View.GONE);
|
||||
|
|
@ -214,8 +214,7 @@ public class ChatListFragment extends BaseFragment implements SwipeRefreshLayout
|
|||
.subscribe(aVoid -> {
|
||||
MainActivity activity = (MainActivity) getActivity();
|
||||
showSnackbar(activity, activity.getFloatingMenuWrapper(), "Flagged message by " + chatMessage.user, SnackbarDisplayType.NORMAL);
|
||||
}, throwable -> {
|
||||
}))
|
||||
}, RxErrorHandler.handleEmptyError()))
|
||||
.setNegativeButton(R.string.action_cancel, (dialog, id) -> {});
|
||||
builder.show();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,8 +53,6 @@ public class GroupInformationFragment extends BaseFragment {
|
|||
@Nullable
|
||||
private User user;
|
||||
private QuestContent quest;
|
||||
private ValueBar bossHpBar;
|
||||
private ValueBar bossRageBar;
|
||||
|
||||
public GroupInformationFragment() {
|
||||
|
||||
|
|
@ -90,9 +88,6 @@ public class GroupInformationFragment extends BaseFragment {
|
|||
|
||||
unbinder = ButterKnife.bind(this, view);
|
||||
|
||||
bossHpBar = (ValueBar) view.findViewById(R.id.bossHpBar);
|
||||
bossRageBar = (ValueBar) view.findViewById(R.id.bossRageBar);
|
||||
|
||||
if (this.group == null) {
|
||||
QrCodeManager qrCodeManager = new QrCodeManager(userRepository, this.getContext());
|
||||
qrCodeManager.setUpView(qrLayout);
|
||||
|
|
@ -151,17 +146,6 @@ public class GroupInformationFragment extends BaseFragment {
|
|||
return;
|
||||
}
|
||||
|
||||
boolean showHpBar = (quest.getBoss() != null && quest.getBoss().hp > 0);
|
||||
bossHpBar.setVisibility(showHpBar ? View.VISIBLE : View.GONE);
|
||||
if (showHpBar) {
|
||||
bossHpBar.set(group.quest.getProgress().hp, quest.getBoss().hp);
|
||||
}
|
||||
boolean showRageBar = (quest.getBoss() != null && quest.getBoss().hasRage());
|
||||
bossRageBar.setVisibility(showRageBar ? View.VISIBLE : View.GONE);
|
||||
if (showRageBar) {
|
||||
bossHpBar.set(group.quest.getProgress().rage, quest.getBoss().rage.value);
|
||||
}
|
||||
|
||||
if (group.quest.members == null) {
|
||||
viewBinding.setHideParticipantCard(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
setViewPagerAdapter();
|
||||
|
||||
if (guildId != null && this.socialRepository != null) {
|
||||
compositeSubscription.add(socialRepository.getGroup(this.guildId).subscribe(this, throwable -> {}, () -> Log.e("Party", "Completed")));
|
||||
compositeSubscription.add(socialRepository.getGroup(this.guildId).subscribe(this, RxErrorHandler.handleEmptyError(), () -> Log.e("Party", "Completed")));
|
||||
socialRepository.retrieveGroup(this.guildId).subscribe(group -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
|
|
@ -88,8 +88,7 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
super.onViewCreated(view, savedInstanceState);
|
||||
if (this.socialRepository != null && this.guild != null) {
|
||||
socialRepository.retrieveGroup(this.guild.id)
|
||||
.subscribe(this, throwable -> {
|
||||
});
|
||||
.subscribe(this, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -116,8 +115,7 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
switch (id) {
|
||||
case R.id.menu_guild_join:
|
||||
this.socialRepository.joinGroup(this.guild.id)
|
||||
.subscribe(this, throwable -> {
|
||||
});
|
||||
.subscribe(this, RxErrorHandler.handleEmptyError());
|
||||
this.isMember = true;
|
||||
return true;
|
||||
case R.id.menu_guild_leave:
|
||||
|
|
@ -126,8 +124,7 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
if (this.activity != null) {
|
||||
this.activity.supportInvalidateOptionsMenu();
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
this.isMember = false;
|
||||
return true;
|
||||
case R.id.menu_guild_edit:
|
||||
|
|
@ -234,7 +231,7 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
bundle.getString("description"),
|
||||
bundle.getString("leader"),
|
||||
bundle.getString("privacy"))
|
||||
.subscribe(aVoid -> {}, throwable -> {});
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -261,10 +258,9 @@ public class GuildFragment extends BaseMainFragment implements Action1<Group> {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.guild);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.guild);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ public class GuildsOverviewFragment extends BaseMainFragment implements View.OnC
|
|||
if (swipeRefreshLayout != null) {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
}
|
||||
}, throwable -> {});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class InboxFragment extends BaseMainFragment
|
|||
super.onCreateView(inflater, container, savedInstanceState);
|
||||
|
||||
this.socialRepository.markPrivateMessagesRead(user)
|
||||
.subscribe(aVoid -> {}, throwable -> {});
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
|
||||
View v = inflater.inflate(R.layout.fragment_inbox, container, false);
|
||||
unbinder = ButterKnife.bind(this, v);
|
||||
|
|
@ -144,8 +144,7 @@ public class InboxFragment extends BaseMainFragment
|
|||
public void onRefresh() {
|
||||
swipeRefreshLayout.setRefreshing(true);
|
||||
this.userRepository.retrieveUser(true)
|
||||
.subscribe(this::onUserReceived, throwable -> {
|
||||
});
|
||||
.subscribe(this::onUserReceived, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
public void setInboxMessages(List<ChatMessage> messages) {
|
||||
|
|
@ -212,10 +211,9 @@ public class InboxFragment extends BaseMainFragment
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_inbox);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_inbox);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -150,8 +150,7 @@ public class InboxMessageListFragment extends BaseMainFragment
|
|||
@Subscribe
|
||||
public void onEvent(SendNewInboxMessageCommand cmd) {
|
||||
socialRepository.postPrivateMessage(cmd.userToSendTo, cmd.message)
|
||||
.subscribe(postChatMessageResult -> this.refreshUserInbox(), throwable -> {
|
||||
});
|
||||
.subscribe(postChatMessageResult -> this.refreshUserInbox(), RxErrorHandler.handleEmptyError());
|
||||
UiUtils.dismissKeyboard(getActivity());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -86,8 +86,7 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
|
|||
if (PublicGuildsFragment.this.viewAdapter != null) {
|
||||
PublicGuildsFragment.this.viewAdapter.updateData(groups);
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
this.socialRepository.retrieveGroups("publicGuilds").subscribe(groups -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
|
@ -121,10 +120,9 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.public_guilds);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.public_guilds);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,13 +217,13 @@ public class QuestDetailFragment extends BaseMainFragment {
|
|||
|
||||
@OnClick(R.id.quest_accept_button)
|
||||
public void onQuestAccept() {
|
||||
socialRepository.acceptQuest(user, partyId).subscribe(aVoid -> {}, throwable -> {});
|
||||
socialRepository.acceptQuest(user, partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
|
||||
@OnClick(R.id.quest_reject_button)
|
||||
public void onQuestReject() {
|
||||
socialRepository.rejectQuest(user, partyId).subscribe(aVoid -> {}, throwable -> {});
|
||||
socialRepository.rejectQuest(user, partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@OnClick(R.id.quest_begin_button)
|
||||
|
|
@ -231,7 +231,7 @@ public class QuestDetailFragment extends BaseMainFragment {
|
|||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
||||
.setMessage(R.string.quest_begin_message)
|
||||
.setPositiveButton(R.string.yes, (dialog, which) -> socialRepository.forceStartQuest(party)
|
||||
.subscribe(quest -> {}, throwable -> {}))
|
||||
.subscribe(quest -> {}, RxErrorHandler.handleEmptyError()))
|
||||
.setNegativeButton(R.string.no, (dialog, which) -> {});
|
||||
builder.show();
|
||||
}
|
||||
|
|
@ -241,7 +241,7 @@ public class QuestDetailFragment extends BaseMainFragment {
|
|||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
||||
.setMessage(R.string.quest_cancel_message)
|
||||
.setPositiveButton(R.string.yes, (dialog, which) -> socialRepository.cancelQuest(partyId)
|
||||
.subscribe(aVoid -> {getActivity().getFragmentManager().popBackStack();}, throwable -> {})).setNegativeButton(R.string.no, (dialog, which) -> {});
|
||||
.subscribe(aVoid -> getActivity().getFragmentManager().popBackStack(), RxErrorHandler.handleEmptyError())).setNegativeButton(R.string.no, (dialog, which) -> {});
|
||||
builder.show();
|
||||
}
|
||||
|
||||
|
|
@ -250,7 +250,7 @@ public class QuestDetailFragment extends BaseMainFragment {
|
|||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
||||
.setMessage(R.string.quest_abort_message)
|
||||
.setPositiveButton(R.string.yes, (dialog, which) -> socialRepository.abortQuest(partyId)
|
||||
.subscribe(aVoid -> {getActivity().getFragmentManager().popBackStack();}, throwable -> {})).setNegativeButton(R.string.no, (dialog, which) -> {});
|
||||
.subscribe(aVoid -> getActivity().getFragmentManager().popBackStack(), RxErrorHandler.handleEmptyError())).setNegativeButton(R.string.no, (dialog, which) -> {});
|
||||
builder.show();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -91,8 +91,7 @@ public class TavernFragment extends BaseMainFragment {
|
|||
}
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -160,10 +159,9 @@ public class TavernFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_tavern);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_tavern);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import android.widget.TextView;
|
|||
|
||||
import com.habitrpg.android.habitica.R;
|
||||
import com.habitrpg.android.habitica.data.ChallengeRepository;
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler;
|
||||
import com.habitrpg.android.habitica.models.LeaveChallengeBody;
|
||||
import com.habitrpg.android.habitica.models.social.Challenge;
|
||||
import com.habitrpg.android.habitica.models.tasks.Task;
|
||||
|
|
@ -296,7 +297,7 @@ public class ChallengeDetailDialogHolder {
|
|||
|
||||
@OnClick(R.id.challenge_join_btn)
|
||||
void joinChallenge() {
|
||||
this.challengeRepository.joinChallenge(challenge).subscribe(this::changeViewsByChallenge, throwable -> {});
|
||||
this.challengeRepository.joinChallenge(challenge).subscribe(this::changeViewsByChallenge, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@OnClick(R.id.challenge_leave_btn)
|
||||
|
|
@ -311,7 +312,7 @@ public class ChallengeDetailDialogHolder {
|
|||
challengeLeftAction.call(challenge);
|
||||
}
|
||||
this.dialog.dismiss();
|
||||
}, throwable -> {})))
|
||||
}, RxErrorHandler.handleEmptyError())))
|
||||
.setNegativeButton(context.getString(R.string.no), (dialog, which) -> dialog.dismiss()).show();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -130,6 +130,9 @@ public class ChallengeListFragment extends BaseMainFragment implements SwipeRefr
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_challenges);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -126,6 +126,9 @@ public class ChallengesOverviewFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.challenges);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.habitrpg.android.habitica.ui.fragments.social.party;
|
|||
|
||||
import android.app.AlertDialog;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.widget.SwipeRefreshLayout;
|
||||
import android.view.LayoutInflater;
|
||||
|
|
@ -9,7 +10,6 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.facebook.drawee.view.SimpleDraweeView;
|
||||
|
|
@ -32,11 +32,15 @@ import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils;
|
|||
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser;
|
||||
import com.habitrpg.android.habitica.ui.views.social.QuestProgressView;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.OnClick;
|
||||
import rx.Observable;
|
||||
import rx.android.schedulers.AndroidSchedulers;
|
||||
|
||||
|
||||
public class PartyDetailFragment extends BaseFragment {
|
||||
|
|
@ -146,9 +150,10 @@ public class PartyDetailFragment extends BaseFragment {
|
|||
newQuestButton.setVisibility(View.GONE);
|
||||
questDetailButton.setVisibility(View.VISIBLE);
|
||||
questImageWrapper.setVisibility(View.VISIBLE);
|
||||
getActivity().runOnUiThread(() -> inventoryRepository.getQuestContent(quest.getKey())
|
||||
Handler mainHandler = new Handler(getContext().getMainLooper());
|
||||
mainHandler.postDelayed(() -> inventoryRepository.getQuestContent(quest.getKey())
|
||||
.first()
|
||||
.subscribe(this::updateQuestContent, RxErrorHandler.handleEmptyError()));
|
||||
.subscribe(PartyDetailFragment.this::updateQuestContent, RxErrorHandler.handleEmptyError()), 500);
|
||||
} else {
|
||||
newQuestButton.setVisibility(View.VISIBLE);
|
||||
questDetailButton.setVisibility(View.GONE);
|
||||
|
|
@ -186,9 +191,10 @@ public class PartyDetailFragment extends BaseFragment {
|
|||
}
|
||||
|
||||
private void updateQuestContent(QuestContent questContent) {
|
||||
if (questTitleView != null) {
|
||||
questTitleView.setText(questContent.getText());
|
||||
if (questTitleView == null) {
|
||||
return;
|
||||
}
|
||||
questTitleView.setText(questContent.getText());
|
||||
DataBindingUtils.loadImage(questScrollImageView, "inventory_quest_scroll_"+questContent.getKey());
|
||||
DataBindingUtils.loadImage(questImageView, "quest_"+questContent.getKey());
|
||||
if (isQuestActive()) {
|
||||
|
|
@ -218,25 +224,25 @@ public class PartyDetailFragment extends BaseFragment {
|
|||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
|
||||
.setMessage(R.string.leave_party_confirmation)
|
||||
.setPositiveButton(R.string.yes, (dialog, which) -> socialRepository.leaveGroup(partyId)
|
||||
.subscribe(aVoid -> {}, throwable -> {})).setNegativeButton(R.string.no, (dialog, which) -> {});
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError())).setNegativeButton(R.string.no, (dialog, which) -> {});
|
||||
builder.show(); }
|
||||
|
||||
@OnClick(R.id.quest_accept_button)
|
||||
public void onQuestAccept() {
|
||||
socialRepository.acceptQuest(user, partyId).subscribe(aVoid -> {}, throwable -> {});
|
||||
socialRepository.acceptQuest(user, partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
|
||||
@OnClick(R.id.quest_reject_button)
|
||||
public void onQuestReject() {
|
||||
socialRepository.rejectQuest(user, partyId).subscribe(aVoid -> {}, throwable -> {});
|
||||
socialRepository.rejectQuest(user, partyId).subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
@OnClick(R.id.party_invite_accept_button)
|
||||
public void onPartyInviteAccepted() {
|
||||
if (user != null) {
|
||||
socialRepository.joinGroup(user.getInvitations().getParty().getId())
|
||||
.subscribe(group -> {}, throwable -> {});
|
||||
.subscribe(group -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -164,8 +164,7 @@ public class PartyFragment extends BaseMainFragment {
|
|||
.setPositiveButton(viewPager.getContext().getString(R.string.yes), (dialog, which) -> {
|
||||
if (this.group != null){
|
||||
this.socialRepository.leaveGroup(this.group.id)
|
||||
.subscribe(group -> getActivity().getSupportFragmentManager().beginTransaction().remove(PartyFragment.this).commit(), throwable -> {
|
||||
});
|
||||
.subscribe(group -> getActivity().getSupportFragmentManager().beginTransaction().remove(PartyFragment.this).commit(), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
})
|
||||
.setNegativeButton(viewPager.getContext().getString(R.string.no), (dialog, which) -> dialog.dismiss())
|
||||
|
|
@ -201,7 +200,7 @@ public class PartyFragment extends BaseMainFragment {
|
|||
break;
|
||||
}
|
||||
this.socialRepository.updateGroup(this.group, bundle.getString("name"), bundle.getString("description"), bundle.getString("leader"), bundle.getString("privacy"))
|
||||
.subscribe(aVoid -> {}, throwable -> {});
|
||||
.subscribe(aVoid -> {}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -228,8 +227,7 @@ public class PartyFragment extends BaseMainFragment {
|
|||
if (this.group != null) {
|
||||
this.socialRepository.inviteToGroup(this.group.id, inviteData)
|
||||
.subscribe(aVoid -> {
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -350,11 +348,10 @@ public class PartyFragment extends BaseMainFragment {
|
|||
|
||||
@Override
|
||||
public String customTitle() {
|
||||
if (isAdded()) {
|
||||
return getString(R.string.sidebar_party);
|
||||
} else {
|
||||
if (!isAdded()) {
|
||||
return "";
|
||||
}
|
||||
return getString(R.string.sidebar_party);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,7 +68,13 @@ public class PartyMemberListFragment extends BaseFragment {
|
|||
}
|
||||
|
||||
private void refreshMembers() {
|
||||
socialRepository.retrieveGroupMembers(partyId, true).subscribe(users -> refreshLayout.setRefreshing(false), RxErrorHandler.handleEmptyError());
|
||||
socialRepository.retrieveGroupMembers(partyId, true).subscribe(users -> setRefreshing(false), RxErrorHandler.handleEmptyError());
|
||||
}
|
||||
|
||||
private void setRefreshing(boolean isRefreshing) {
|
||||
if (refreshLayout != null) {
|
||||
refreshLayout.setRefreshing(isRefreshing);
|
||||
}
|
||||
}
|
||||
|
||||
public void setPartyId(String id) {
|
||||
|
|
|
|||
|
|
@ -64,8 +64,7 @@ public abstract class TaskListFactory implements RemoteViewsService.RemoteViewsF
|
|||
.subscribe(habitRPGUser -> {
|
||||
customDayStart = habitRPGUser.getPreferences().getDayStart();
|
||||
this.loadData();
|
||||
}, throwable -> {
|
||||
});
|
||||
}, RxErrorHandler.handleEmptyError());
|
||||
} else {
|
||||
this.loadData();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="store_short_description">Betrachte Dein Leben als ein Spiel, um motiviert und organisiert zu bleiben!</string>
|
||||
</resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="store_title">Erledige deine Aufgaben spielerisch</string>
|
||||
<string name="store_short_description">Betrachte Dein Leben als ein Spiel, um motiviert und organisiert zu bleiben!</string>
|
||||
<string name="store_description">Betrachte Dein Leben als ein Spiel, um motiviert und organisiert zu bleiben! Habitica macht es Dir einfach, Spaß dabei zu haben, Deine persönlichen Ziele zu erreichen.
|
||||
Füge Deine Gewohnheiten, Deine täglichen Ziele und Deine To-Do-Liste hinzu und erstelle Deinen eigenen Avatar. Hake Deine Aufgaben ab, damit Dein Avatar auf ein höheres Level aufsteigen kann und um weitere Funktionen freizuschalten, wie beispielsweise Ausrüstung, Haustiere, Fähigkeiten und auch Quests! Du kannst Monster mit Deinen Freunden bekämpfen und euch so gegenseitig unterstützen. Du kannst Dein Gold dazu nutzen, um spielbezogene Belohnungen zu kaufen, oder für individuelle Belohnungen, wie beispielsweise eine Episode Deiner Lieblings-Fehrnsehserie zu gucken. Habitica ist flexibel, kommunikativ und macht Spaß, es bietet eine tolle Möglichkeit, Dich zu jedem Ziel zu motivieren.
|
||||
Falls Du irgendwelche Fragen hast, kannst Du uns gerne Feedback an mobile@habitica.com schicken! Und falls Dir unsere App gefällt, würden wir uns freuen, wenn Du uns bewertest.
|
||||
</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="store_short_description">¡Trata tu vida como un juego para mantenerte motivado y organizado!</string>
|
||||
</resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="store_title">Gamifica Tus Tareas</string>
|
||||
<string name="store_short_description">¡Trata tu vida como un juego para mantenerte motivado y organizado!</string>
|
||||
<string name="store_description">¡Trata tu vida como un juego para mantenerte motivado y organizado! ¡Habitica hace que cumplir objetivos sea entretenido!
|
||||
Escribe tus hábitos, tus metas diarias y tu lista de pendientes, luego crea y personaliza a tu avatar. ¡Marca tus tareas para subir de nivel y desbloquear objetos, tales como armaduras, mascotas, habilidades, e incluso misiones! lucha contra monstruos con tus amigos para seguir comprometido con tus objetivos, y ganar oro que puedes usar para desbloquear recompensas en el juego, como equipamiento, o premios para recompensarte, como ver un episodio de tu serie favorita. Dinámico, social y divertido, Habitica es la mejor manera de motivarte para cumplir cualquier cosa.
|
||||
Si tienes alguna duda, ¡siéntete libre de comunicárnosla a mobile@habitica.com ! Y si te gusta nuestra aplicación, Nos encantaría que nos dejaras una reseña.
|
||||
</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="store_title">Trasforma le tue attività in un gioco</string>
|
||||
<string name="store_short_description">Trasforma la tua vita in un gioco di ruolo per affrontarla motivato ed organizzato.</string>
|
||||
<string name="store_description">Trasforma la tua vita in un gioco di ruolo per essere organizzato e motivato! Con Habitica raggiungere i propri obiettivi non è mai stato così divertente.
|
||||
|
||||
Imposta le tue abitudini (Habit), i tuoi obiettivi giornalieri (Daily) e la tua lista di cose da fare (To-Do), poi crea il tuo avatar personalizzato. Completa le attività per far salire di livello il tuo avatar e sbloccare funzionalità come armature, animali, abilità e persino missioni! Combatti i mostri con i tuoi amici per aiutarvi a vicenda ad essere responsabili, e usa il tuo oro per ricompense in-game come pezzi di equipaggiamento, o ricompense personalizzate, ad esempio guardare un episodio della tua serie TV preferita. Flessibile, sociale e soprattutto divertente, Habitica è il modo perfetto per motivarti a fare qualsiasi cosa.
|
||||
|
||||
Se avete una qualsiasi domanda o dei suggerimenti, sentitevi liberi di scrivere a mobile@habitica.com! E se vi piace la nostra app, saremmo davvero felici se ci lasciaste una recensione.
|
||||
</string>
|
||||
</resources>
|
||||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<resources>
|
||||
<string name="store_title">Trasforma le tue attività in un gioco</string>
|
||||
<string name="store_short_description">Trasforma la tua vita in un gioco di ruolo per affrontarla motivato ed organizzato.</string>
|
||||
<string name="store_description">Trasforma la tua vita in un gioco di ruolo per essere organizzato e motivato! Con Habitica raggiungere i propri obiettivi non è mai stato così divertente.
|
||||
|
||||
Imposta le tue Abitudini, i tuoi obiettivi giornalieri (Daily) e la tua lista di cose da fare (To-Do), poi crea il tuo avatar personalizzato. Completa le attività per far salire di livello il tuo avatar e sbloccare funzionalità come armature, animali, abilità e persino missioni! Combatti i mostri con i tuoi amici per aiutarvi a vicenda ad essere responsabili, e usa il tuo oro per ricompense in-game come pezzi di equipaggiamento, o ricompense personalizzate, ad esempio guardare un episodio della tua serie TV preferita. Flessibile, sociale e soprattutto divertente, Habitica è il modo perfetto per motivarti a fare qualsiasi cosa.
|
||||
|
||||
Se avete una qualsiasi domanda o dei suggerimenti, sentitevi liberi di scrivere a mobile@habitica.com! E se vi piace la nostra app, saremmo davvero felici se ci lasciaste una recensione.
|
||||
</string>
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Reference in a new issue