From fcdeb8092b74ba0ce8660b0fece70e75f7f8a743 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Fri, 29 Jul 2016 11:59:56 +0200 Subject: [PATCH 1/6] various shop improvements --- Habitica/res/layout/row_shopitem.xml | 11 +++ Habitica/res/values/strings.xml | 11 +++ .../android/habitica/ui/ItemDetailDialog.java | 8 ++- .../habitica/ui/activities/MainActivity.java | 9 ++- .../inventory/ShopRecyclerAdapter.java | 72 ++++++++++++++----- .../habitrpgwrapper/lib/models/ShopItem.java | 9 +++ .../lib/models/ShopItemUnlockCondition.java | 18 +++++ 7 files changed, 117 insertions(+), 21 deletions(-) create mode 100644 Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ShopItemUnlockCondition.java 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/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/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/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/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; + } + } +} From 952140d51aba9caf10db90b3426fd660f07d62c5 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Fri, 29 Jul 2016 12:00:22 +0200 Subject: [PATCH 2/6] bump build number --- Habitica/AndroidManifest.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index 8ae079e08..d18c70895 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -2,7 +2,7 @@ From e57fc132df8e1fb7417011abf5dafaba1b3077fc Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 1 Aug 2016 14:46:28 +0200 Subject: [PATCH 3/6] update translations --- Habitica/AndroidManifest.xml | 2 +- Habitica/res/values-de/strings.xml | 5 ++++ .../res/values-en-rGB/strings.sidebar.xml | 1 + Habitica/res/values-fr/strings.sidebar.xml | 1 + Habitica/res/values-fr/strings.xml | 5 ++++ Habitica/res/values-it/strings.sidebar.xml | 1 + Habitica/res/values-it/strings.xml | 7 ++++++ Habitica/res/values-ja/strings.sidebar.xml | 1 + Habitica/res/values-ja/strings.xml | 2 +- Habitica/res/values-nl/strings.sidebar.xml | 1 + Habitica/res/values-nl/strings.xml | 19 ++++++++------ Habitica/res/values-pl/strings.sidebar.xml | 1 + Habitica/res/values-pl/strings.xml | 1 + .../res/values-pt-rPT/strings.sidebar.xml | 1 + Habitica/res/values-pt-rPT/strings.xml | 25 +++++++++++++++++++ 15 files changed, 64 insertions(+), 9 deletions(-) diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml index d18c70895..832b03c34 100644 --- a/Habitica/AndroidManifest.xml +++ b/Habitica/AndroidManifest.xml @@ -2,7 +2,7 @@ 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 From 913ba357520fa161934a75ba400f32fa287cc372 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 1 Aug 2016 14:46:39 +0200 Subject: [PATCH 4/6] better reminder formatting in form --- .../habitica/helpers/RemindersManager.java | 39 +++++++++++-------- .../ui/activities/TaskFormActivity.java | 4 +- .../ui/adapter/tasks/RemindersAdapter.java | 4 +- 3 files changed, 26 insertions(+), 21 deletions(-) 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/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/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 From 8a467b04c458a48b2469469734ebf964d232563a Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 1 Aug 2016 15:12:24 +0200 Subject: [PATCH 5/6] fix potential crash when saving user object --- .../magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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(); From 2ddc426d6b14cd2ce2cc8c50442518b0d4f29a63 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 1 Aug 2016 15:20:38 +0200 Subject: [PATCH 6/6] fix potential crash with reminders --- .../habitrpgwrapper/lib/utils/RemindersItemSerializer.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; }