diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index 8ae079e08..832b03c34 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -2,7 +2,7 @@ diff --git a/Habitica/res/layout/row_shopitem.xml b/Habitica/res/layout/row_shopitem.xml index 2310d9358..a23a3f264 100644 --- a/Habitica/res/layout/row_shopitem.xml +++ b/Habitica/res/layout/row_shopitem.xml @@ -48,4 +48,15 @@ android:background="@drawable/rounded_purple_square" android:paddingLeft="6dp" android:paddingStart="6dp" /> + diff --git a/Habitica/res/values-de/strings.xml b/Habitica/res/values-de/strings.xml index 24bbdefbf..650bc23d3 100644 --- a/Habitica/res/values-de/strings.xml +++ b/Habitica/res/values-de/strings.xml @@ -325,4 +325,9 @@ Für den Anfang: Welche Bereiche Deines Lebens möchtest Du verbessern? Im Play Store öffnen Bist Du sicher, dass Du Deine Klasse ändern willst? Es kostet 3 Edelsteine. Nachricht von %1$s + Bestätigen + Marktplatz + Mysteriöse Zeitreisende + Jahreszeitenmarkt + Du hast keine Nachrichten in Deinem Posteingang. Du kannst einem anderen Benutzer eine neue Nachricht von deren öffentlichen Chatnachrichten aus senden! diff --git a/Habitica/res/values-en-rGB/strings.sidebar.xml b/Habitica/res/values-en-rGB/strings.sidebar.xml index b40bf8c3d..4a18afa1b 100644 --- a/Habitica/res/values-en-rGB/strings.sidebar.xml +++ b/Habitica/res/values-en-rGB/strings.sidebar.xml @@ -3,6 +3,7 @@ Tasks Skills Social + Inbox Tavern Party Purchase Gems diff --git a/Habitica/res/values-fr/strings.sidebar.xml b/Habitica/res/values-fr/strings.sidebar.xml index 0dd523ae8..7c5098877 100644 --- a/Habitica/res/values-fr/strings.sidebar.xml +++ b/Habitica/res/values-fr/strings.sidebar.xml @@ -16,4 +16,5 @@ Nouveautés Paramètres À propos + Magasins diff --git a/Habitica/res/values-fr/strings.xml b/Habitica/res/values-fr/strings.xml index f69b243b3..d955cc841 100644 --- a/Habitica/res/values-fr/strings.xml +++ b/Habitica/res/values-fr/strings.xml @@ -325,4 +325,9 @@ Pour commencer, quels aspects de votre vie souhaitez-vous améliorer ? Ouvrir dans le Play Store Êtes-vous sûr·e de vouloir changer de classe ? Cela vous coûtera 3 gemmes. Message de %1$s + Confirmer + Marché + Voyageurs temporels + Boutique saisonnière + Vous n\'avez pas de message dans la boite de réception. Vous pouvez envoyer un nouveau message à partir des discussions publiques de chaque personne. diff --git a/Habitica/res/values-it/strings.sidebar.xml b/Habitica/res/values-it/strings.sidebar.xml index 5c4261bbc..b24ce555c 100644 --- a/Habitica/res/values-it/strings.sidebar.xml +++ b/Habitica/res/values-it/strings.sidebar.xml @@ -16,4 +16,5 @@ Novità Impostazioni Su Habitica + Negozi diff --git a/Habitica/res/values-it/strings.xml b/Habitica/res/values-it/strings.xml index 8f0330ed5..cfa6056a1 100644 --- a/Habitica/res/values-it/strings.xml +++ b/Habitica/res/values-it/strings.xml @@ -321,7 +321,14 @@ Le Dailies mancate e le cattive Habit non li danneggiano molto, e hanno sempre m Invita nella squadra Condividi con Ho raggiunto il livello %s su Habitica migliorando le mie abitudini nella vita reale! + Oh apena schiuso un %1$s %2$s beniamino in Habitica completando I miei compiti nella vita reale! + Oh apena guadagnato una %1$s %2$s montatura in Habitica completando I miei compiti nella vita reale! Apri nel Play Store Vuoi davvero cambiare la tua classe? Costerà 3 gemme. Messaggio da %1$s + Conferma + Mercato + Viaggiatori del Tempo + Negozio Stagionale + Non hai nessun messaggio. Puoi inviare un messaggio privato ad un utente dai loro messaggi nelle chat pubbliche! diff --git a/Habitica/res/values-ja/strings.sidebar.xml b/Habitica/res/values-ja/strings.sidebar.xml index b77cc926c..e48775131 100644 --- a/Habitica/res/values-ja/strings.sidebar.xml +++ b/Habitica/res/values-ja/strings.sidebar.xml @@ -3,6 +3,7 @@ タスク 特殊能力 コミュニティー + 受信箱 キャンプ場 パーティー ジェムの購入 diff --git a/Habitica/res/values-ja/strings.xml b/Habitica/res/values-ja/strings.xml index 0f1eae211..93a890f10 100644 --- a/Habitica/res/values-ja/strings.xml +++ b/Habitica/res/values-ja/strings.xml @@ -34,7 +34,7 @@ メールアドレスまたはユーザー名 パスワード メールアドレス - パスワード (確認) + パスワード ( 確認 ) ログアウト ログアウトする アカウントの詳細 diff --git a/Habitica/res/values-nl/strings.sidebar.xml b/Habitica/res/values-nl/strings.sidebar.xml index 26de2163d..4a88293d6 100644 --- a/Habitica/res/values-nl/strings.sidebar.xml +++ b/Habitica/res/values-nl/strings.sidebar.xml @@ -16,4 +16,5 @@ Nieuws Instellingen Over + Winkels diff --git a/Habitica/res/values-nl/strings.xml b/Habitica/res/values-nl/strings.xml index 8590a97cb..9aad792c3 100644 --- a/Habitica/res/values-nl/strings.xml +++ b/Habitica/res/values-nl/strings.xml @@ -56,7 +56,7 @@ Authenticatiefout Je Gebruikersnaam en/of Wachtwoord is onjuist. Validatiefout - Je moet alle vlakken invullen. + Je moet alle velden invullen. Opslaan Aantekeningen Tekst @@ -92,7 +92,7 @@ Je bent volledig genezen! Hoera! Wanhoop niet! - Je verliest een niveau, je goud, en een stuk uitrusting, maar je kunt ze allemaal terugkrijgen door hard te werken! Succes--je zult het geweldig doen. + Je verliest een niveau, je goud en een stuk uitrusting, maar je kunt ze allemaal terug krijgen door hard te werken! Succes--je zult het geweldig doen. Je hebt geen Gezondheid meer! Herstel Gezondheid & probeer opnieuw Filter @@ -104,13 +104,13 @@ Vergeet niet om je Dagelijkse taken af te vinken! Gebruik vaardigheid Binnenkort beschikbaar - Weet je zeker dat je dit bericht wil melden wegens overtreding? + Weet je zeker dat je dit bericht wilt melden wegens overtreding? Markeer bericht Beschikbaar vanaf niveau 11 Je zit niet in een groep. Bezoek de website als je je bij een groep wilt aansluiten. Wachtwoord vergeten Wachtwoord vergeten? Gebruik dan de mobiele website. - Heractiveer je daagelijkse taken + Heractiveer je Dagelijkse taken Pauzeer je Dagelijkse Taken Kopen Verwijderen @@ -165,13 +165,13 @@ Sluit je aan bij meer dan 1.100.000 anderen en heb plezier terwijl je dingen gedaan krijgt. Maak een avatar en houd je taken in de echte wereld bij. Vooruitgang in het Spel = Vooruitgang in je Leven Speel mogelijkheden vrij in het spel door je echte taken af te strepen. Verdien uitrusting, huisdieren, en meer als beloning voor het bereiken van je doelen. - Doe sociaal en bevecht de monsters + Wees sociaal en vecht tegen monsters Houd je doelen op het goede spoor met hulp van je vrienden. Ondersteun elkaar in het leven en vecht samen terwijl je steeds beter wordt. - Begin + Ga van start Vorige Volgende Sla over - Welkom in Habitica, waar vooruitgang in het spel je leven kan verbeteren! Terwijl je echte doelen bereikt, verdien je uitrusting, huisdieren, quests en meer. + Welkom in Habitica, waar vooruitgang in het spel je leven zal verbeteren! Terwijl je echte doelen bereikt, verdien je uitrusting, huisdieren, queestes en meer. Welkom Als eerste heb je een avatar nodig die jou vertegenwoordigt in het spel! De dingen die je in het echte leven doet zullen een effect hebben op de gezondheid, het level en het goud van je avatar. Geweldig! Laten we nu wat taken klaar zetten zodat je kan beginnen met het verdienen van ervaringspunten en goud. @@ -325,4 +325,9 @@ Om te beginnen, welke delen van je leven wil je verbeteren? Open in de play store Weet je zeker dat je van klasse wil veranderen? Dit kost 3 edelstenen. Bericht van %1$s + Bevestig + Markt + Tijd Reizigers + Seizoenswinkel + Je hebt geen Inbox berichten. Je kan een gebruiker een nieuw bericht sturen vanuit hun publieke chat berichten. diff --git a/Habitica/res/values-pl/strings.sidebar.xml b/Habitica/res/values-pl/strings.sidebar.xml index 7a11a7929..b4bfbcdd5 100644 --- a/Habitica/res/values-pl/strings.sidebar.xml +++ b/Habitica/res/values-pl/strings.sidebar.xml @@ -3,6 +3,7 @@ Zadania Umiejętności Społeczność + Skrzyna pocztowa Karczma Drużyna Kup Klejnoty diff --git a/Habitica/res/values-pl/strings.xml b/Habitica/res/values-pl/strings.xml index 501bbd710..cceabb3e3 100644 --- a/Habitica/res/values-pl/strings.xml +++ b/Habitica/res/values-pl/strings.xml @@ -94,6 +94,7 @@ Nie rozpaczaj! Straciłeś Poziom, Złoto i jedną część Wyposażenia, ale możesz je odzyskać dzięki ciężkiej pracy! Powodzenia - dasz radę. Możesz stracić całe Zdrowie! + Uzupełnij Zdrowie & Spróbuj jeszcze raz Filtr Obrazek profilowy %d PM diff --git a/Habitica/res/values-pt-rPT/strings.sidebar.xml b/Habitica/res/values-pt-rPT/strings.sidebar.xml index 6a6691b03..7df89c5de 100644 --- a/Habitica/res/values-pt-rPT/strings.sidebar.xml +++ b/Habitica/res/values-pt-rPT/strings.sidebar.xml @@ -3,6 +3,7 @@ Tarefas Habilidades Social + Caixa de Entrada Taberna Equipa Comprar Gemas diff --git a/Habitica/res/values-pt-rPT/strings.xml b/Habitica/res/values-pt-rPT/strings.xml index 995b38d14..6394c92ab 100644 --- a/Habitica/res/values-pt-rPT/strings.xml +++ b/Habitica/res/values-pt-rPT/strings.xml @@ -36,6 +36,7 @@ Endereço de email Confirmar password Sair + Termine a sessão da sua conta Detalhes da conta Bem-vindo Reanimar @@ -69,6 +70,7 @@ Positivo ( + ) Negativo ( - ) Lista de verificações + Lembretes Ações Atributos Físico @@ -286,4 +288,27 @@ Para começar, quais as partes da tua vida que queres melhorar? Você não tem quaisquer %s Nível %s Nível %1$s - %2$s + Guerreiro + Bandido + Mago + Curandeiro + Selecionar Classe + Tem a certeza de que deseja ser um %s? + Escolher Classe + Anterior + Altere a sua classe + Ativar Sistema de Classe + Alteração de Classe + Por E-mail + Convidar Utilziadores Existentes + Enviar + Convidar Amigos + Adicionar Convites + Id. do Utilizador + E-mail + Convidar para a Festa + Partilhe, utilizando + Abrir na Play Store + Tem a certeza de que pretende alterar a sua classe? Isto irá custar 3 gemas. + Mensagem de %1$s diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 8777d9893..390d4b3b9 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -352,4 +352,15 @@ To start, which parts of your life do you want to improve? Time Travelers Seasonal Shop You don\'t have any Inbox messages. You can send a user a new message from their public chat messages! + Unlock by inviting friends + Not enough Gold + You don\'t need to buy an health potion + %1$s successfully purchased + Confirm purchase + Purchase %1$s for %2$s %3$s + gem + hourglass + hourglasses + gold + gold diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java index 0db3124d5..19c709f1e 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/helpers/RemindersManager.java @@ -25,7 +25,15 @@ import java.util.UUID; */ public class RemindersManager { - DateFormat dateFormater = new SimpleDateFormat("dd MMMM yyyy HH:mm:ss"); + DateFormat dateFormater; + + public RemindersManager(String taskType) { + if (taskType.equals("todo")) { + dateFormater = DateFormat.getDateTimeInstance(); + } else { + dateFormater = DateFormat.getTimeInstance(); + } + } public RemindersItem createReminderFromDateString(String dateString) { try { @@ -61,25 +69,22 @@ public class RemindersManager { TimePicker dialogTimePicker = (TimePicker) dialog.findViewById(R.id.timePicker); DatePicker dialogDatePicker = (DatePicker) dialog.findViewById(R.id.datePicker); - dialogConfirmButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - int day = dialogDatePicker.getDayOfMonth(); - int month = dialogDatePicker.getMonth(); - int year = dialogDatePicker.getYear(); - int hour = dialogTimePicker.getCurrentHour(); - int minute = dialogTimePicker.getCurrentMinute(); + dialogConfirmButton.setOnClickListener(view -> { + int day = dialogDatePicker.getDayOfMonth(); + int month = dialogDatePicker.getMonth(); + int year = dialogDatePicker.getYear(); + int hour1 = dialogTimePicker.getCurrentHour(); + int minute1 = dialogTimePicker.getCurrentMinute(); - Calendar calendar = Calendar.getInstance(); - calendar.set(year, month, day, hour, minute, 0); + Calendar calendar = Calendar.getInstance(); + calendar.set(year, month, day, hour1, minute1, 0); - if (reminder != null) { - reminder.setTime(calendar.getTime()); - } - - editText.setText(dateFormater.format(calendar.getTime())); - dialog.hide(); + if (reminder != null) { + reminder.setTime(calendar.getTime()); } + + editText.setText(dateFormater.format(calendar.getTime())); + dialog.hide(); }); dialog.show(); } else { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.java index 265ebc3cc..2c1deed1c 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/ItemDetailDialog.java @@ -8,6 +8,8 @@ import android.content.DialogInterface; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; +import android.text.Spannable; +import android.text.Spanned; import android.view.Gravity; import android.view.View; import android.widget.ImageView; @@ -84,7 +86,7 @@ public class ItemDetailDialog extends AlertDialog { }); } - public void setDescription(String description) { + public void setDescription(CharSequence description) { contentTextView.setText(description); contentTextView.setVisibility(View.VISIBLE); } @@ -97,6 +99,9 @@ public class ItemDetailDialog extends AlertDialog { case "gems": currencyImageView.setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_header_gem)); break; + default: + currencyImageView.setImageDrawable(null); + break; } } @@ -117,5 +122,4 @@ public class ItemDetailDialog extends AlertDialog { public void setBuyListener(OnClickListener listener) { this.setButton(BUTTON_POSITIVE, getContext().getText(R.string.reward_dialog_buy), listener); } - } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java index 9e7c0736a..7c685e246 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.java @@ -880,6 +880,9 @@ public class MainActivity extends BaseActivity implements Action1, Ha } observable .compose(apiHelper.configureApiCallObserver()) + .doOnNext(aVoid -> { + showSnackbar(this, floatingMenuWrapper, getString(R.string.successful_purchase, event.item.text), SnackbarDisplayType.NORMAL); + }) .subscribe(buyResponse -> { apiHelper.retrieveUser(false) .compose(apiHelper.configureApiCallObserver()) @@ -892,7 +895,7 @@ public class MainActivity extends BaseActivity implements Action1, Ha final String rewardKey = event.Reward.getId(); if (user.getStats().getGp() < event.Reward.getValue()) { - showSnackbar(this, floatingMenuWrapper, "Not enough Gold", SnackbarDisplayType.FAILURE); + showSnackbar(this, floatingMenuWrapper, getString(R.string.no_gold), SnackbarDisplayType.FAILURE); return; } @@ -901,7 +904,7 @@ public class MainActivity extends BaseActivity implements Action1, Ha int maxHp = user.getStats().getMaxHealth(); if (currentHp == maxHp) { - UiUtils.showSnackbar(this, floatingMenuWrapper, "You don't need to buy an health potion", SnackbarDisplayType.FAILURE_BLUE); + UiUtils.showSnackbar(this, floatingMenuWrapper, getString(R.string.no_potion), SnackbarDisplayType.FAILURE_BLUE); return; } } @@ -910,7 +913,7 @@ public class MainActivity extends BaseActivity implements Action1, Ha apiHelper.apiService.buyItem(event.Reward.getId()) .compose(apiHelper.configureApiCallObserver()) .subscribe(buyResponse -> { - String snackbarMessage = event.Reward.getText() + " successfully purchased!"; + String snackbarMessage = getString(R.string.successful_purchase, event.Reward.getText()); if (event.Reward.getId().equals("armoire")) { if (buyResponse.armoire.get("type").equals("gear")) { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java index d993387f9..bc85040d1 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/TaskFormActivity.java @@ -230,7 +230,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem return; } - remindersManager = new RemindersManager(); + remindersManager = new RemindersManager(taskType); taskAlarmManager = TaskAlarmManager.getInstance(this); dueDateListener = new DateEditTextListener(dueDatePickerText); @@ -472,7 +472,7 @@ public class TaskFormActivity extends BaseActivity implements AdapterView.OnItem reminders = task.getReminders(); } - remindersAdapter = new RemindersAdapter(reminders); + remindersAdapter = new RemindersAdapter(reminders, taskType); LinearLayoutManager llm = new LinearLayoutManager(this); llm.setOrientation(LinearLayoutManager.VERTICAL); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.java index 445d690fd..559a5e7be 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/inventory/ShopRecyclerAdapter.java @@ -12,6 +12,8 @@ import com.magicmicky.habitrpgwrapper.lib.models.ShopItem; import org.greenrobot.eventbus.EventBus; import android.content.Context; +import android.content.DialogInterface; +import android.support.v7.app.AlertDialog; import android.support.v7.widget.RecyclerView; import android.text.Html; import android.text.method.LinkMovementMethod; @@ -112,6 +114,8 @@ public class ShopRecyclerAdapter extends RecyclerView.Adapter this.buyItem()); + buyButton.setOnClickListener(view -> { + String currencyString = ""; + if (item.getCurrency().equals("gems")) { + if (item.getValue() == 1) { + currencyString = context.getString(R.string.gem); + } else { + currencyString = context.getString(R.string.gems); + } + } else if (item.getCurrency().equals("gold")) { + if (item.getValue() == 1) { + currencyString = context.getString(R.string.gold_singular); + } else { + currencyString = context.getString(R.string.gems_plural); + } + } else if (item.getCurrency().equals("hourglasses")) { + if (item.getValue() == 1) { + currencyString = context.getString(R.string.hourglass); + } else { + currencyString = context.getString(R.string.hourglasses); + } + } + new AlertDialog.Builder(context) + .setTitle(R.string.purchase_confirmation_title) + .setMessage(context.getString(R.string.confirm_purchase_text, item.getText(), item.getValue().toString(), currencyString)) + .setPositiveButton(android.R.string.yes, (dialog, which) -> this.buyItem()) + .setNegativeButton(android.R.string.no, (dialog, which) -> dialog.dismiss()) + .show(); + }); } private void buyItem() { @@ -141,20 +172,27 @@ public class ShopRecyclerAdapter extends RecyclerView.Adapter this.buyItem()); + if (item.getUnlockCondition() == null) { + dialog.setCurrency(item.getCurrency()); + dialog.setValue(item.getValue()); + dialog.setBuyListener((clickedDialog, which) -> this.buyItem()); + } dialog.show(); } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RemindersAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RemindersAdapter.java index e21665243..55f844a6b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RemindersAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/tasks/RemindersAdapter.java @@ -39,9 +39,9 @@ public class RemindersAdapter extends RecyclerView.Adapter reminders = new ArrayList<>(); private RemindersManager remindersManager; - public RemindersAdapter(List remindersInc) { + public RemindersAdapter(List remindersInc, String taskType) { reminders.addAll(remindersInc); - remindersManager = new RemindersManager(); + remindersManager = new RemindersManager(taskType); } @Override diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java index cccff4c5a..211d0ee4a 100644 --- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java @@ -312,8 +312,10 @@ public class HabitRPGUser extends BaseModel { t.user_id = id; } - for (Tag t : tags) { - t.user_id = id; + if (tags != null) { + for (Tag t : tags) { + t.user_id = id; + } } super.save(); diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItem.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItem.java index 3dbbb01cb..b7c1b47f1 100644 --- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItem.java +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItem.java @@ -13,6 +13,7 @@ public class ShopItem { public String currency; public String purchaseType; public String categoryIdentifier; + public ShopItemUnlockCondition unlockCondition; public String getKey() { return key; @@ -81,4 +82,12 @@ public class ShopItem { public void setPurchaseType(String purchaseType) { this.purchaseType = purchaseType; } + + public ShopItemUnlockCondition getUnlockCondition() { + return unlockCondition; + } + + public void setUnlockCondition(ShopItemUnlockCondition unlockCondition) { + this.unlockCondition = unlockCondition; + } } diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItemUnlockCondition.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItemUnlockCondition.java new file mode 100644 index 000000000..30aa83662 --- /dev/null +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItemUnlockCondition.java @@ -0,0 +1,18 @@ +package com.magicmicky.habitrpgwrapper.lib.models; + +import com.habitrpg.android.habitica.R; + +public class ShopItemUnlockCondition { + + String condition; + + public int readableUnlockConditionId() { + switch (this.condition) { + + case "party invite": + return R.string.party_invite; + default: + return 0; + } + } +} diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/RemindersItemSerializer.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/RemindersItemSerializer.java index 042d8db1e..7618d4fba 100644 --- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/RemindersItemSerializer.java +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/RemindersItemSerializer.java @@ -19,7 +19,9 @@ public class RemindersItemSerializer public JsonElement serialize(RemindersItem src, Type typeOfSrc, JsonSerializationContext context) { JsonObject object = new JsonObject(); object.addProperty("id", src.getId()); - object.addProperty("startDate", src.getStartDate().getTime()); + if (src.getStartDate() != null) { + object.addProperty("startDate", src.getStartDate().getTime()); + } object.addProperty("time", src.getTime().getTime()); return object; }