From 3896d73e431b2fe947a187baece2d76362d47397 Mon Sep 17 00:00:00 2001 From: jjbillings Date: Wed, 3 Aug 2016 21:04:17 -0400 Subject: [PATCH 1/8] Add guild search bar --- .../layout/fragment_guild_recyclerview.xml | 35 +++++++++++++++ Habitica/res/values/strings.xml | 1 + .../PublicGuildsRecyclerViewAdapter.java | 43 ++++++++++++++++++- .../social/PublicGuildsFragment.java | 21 ++++++++- 4 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 Habitica/res/layout/fragment_guild_recyclerview.xml diff --git a/Habitica/res/layout/fragment_guild_recyclerview.xml b/Habitica/res/layout/fragment_guild_recyclerview.xml new file mode 100644 index 000000000..2596c3177 --- /dev/null +++ b/Habitica/res/layout/fragment_guild_recyclerview.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 390d4b3b9..01c332fdb 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -243,6 +243,7 @@ To start, which parts of your life do you want to improve? Privacy Write Message Post + Search for guilds Due: %s current streak: %d diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.java index 927526881..6677330e4 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.java @@ -13,21 +13,26 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; +import android.widget.Filter; +import android.widget.Filterable; import android.widget.TextView; +import java.util.ArrayList; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter { +public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter implements Filterable{ public APIHelper apiHelper; private List publicGuildList; private List memberGuildIDs; + private List publicGuildListCopy; public void setPublicGuildList(List publicGuildList) { this.publicGuildList = publicGuildList; + this.publicGuildListCopy = new ArrayList<>(publicGuildList); this.notifyDataSetChanged(); } @@ -93,6 +98,42 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter filteredGuilds = null; + if(constraint.length() == 0) { + filteredGuilds = publicGuildListCopy; + } else { + filteredGuilds = getFilteredResults(constraint.toString().toLowerCase()); + } + + FilterResults results = new FilterResults(); + results.values = filteredGuilds; + return results; + } + + @Override + protected void publishResults(CharSequence constraint, FilterResults results) { + publicGuildList = (List) results.values; + PublicGuildsRecyclerViewAdapter.this.notifyDataSetChanged(); + } + }; + } + + protected List getFilteredResults(String constraint) { + List filteredGuilds = new ArrayList<>(); + + for(Group guild : publicGuildListCopy) { + if(guild.name.toLowerCase().contains(constraint)) { + filteredGuilds.add(guild); + } + } + + return filteredGuilds; + } static class GuildViewHolder extends RecyclerView.ViewHolder { diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java index e58de9d6a..50a98adea 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java @@ -14,13 +14,14 @@ import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.SearchView; import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; -public class PublicGuildsFragment extends BaseMainFragment { +public class PublicGuildsFragment extends BaseMainFragment implements SearchView.OnQueryTextListener { List memberGuildIDs; List guilds; @@ -30,13 +31,17 @@ public class PublicGuildsFragment extends BaseMainFragment { private View view; private PublicGuildsRecyclerViewAdapter viewAdapter; + private SearchView guildSearchView; @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); if (view == null) { - view = inflater.inflate(R.layout.fragment_recyclerview, container, false); + view = inflater.inflate(R.layout.fragment_guild_recyclerview, container, false); + + guildSearchView = (SearchView)view.findViewById(R.id.guild_search_view); + guildSearchView.setOnQueryTextListener(this); unbinder = ButterKnife.bind(this, view); recyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); @@ -76,4 +81,16 @@ public class PublicGuildsFragment extends BaseMainFragment { }); } } + + @Override + public boolean onQueryTextSubmit(String s) { + viewAdapter.getFilter().filter(s); + return true; + } + + @Override + public boolean onQueryTextChange(String s) { + viewAdapter.getFilter().filter(s); + return true; + } } From b85a30de0acfbe380e3c2d646d4f6c120f88068e Mon Sep 17 00:00:00 2001 From: Jack Billings Date: Sun, 7 Aug 2016 19:30:40 -0500 Subject: [PATCH 2/8] Add guild search bar --- .../res/layout/fragment_guild_recyclerview.xml | 2 +- .../social/PublicGuildsRecyclerViewAdapter.java | 14 ++++++++------ .../ui/fragments/social/PublicGuildsFragment.java | 8 ++++---- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Habitica/res/layout/fragment_guild_recyclerview.xml b/Habitica/res/layout/fragment_guild_recyclerview.xml index 2596c3177..96ef26ad3 100644 --- a/Habitica/res/layout/fragment_guild_recyclerview.xml +++ b/Habitica/res/layout/fragment_guild_recyclerview.xml @@ -8,7 +8,7 @@ + android:queryHint="@string/guild_search_hint"/> publicGuildList; + private List fullPublicGuildList; private List memberGuildIDs; - private List publicGuildListCopy; public void setPublicGuildList(List publicGuildList) { this.publicGuildList = publicGuildList; - this.publicGuildListCopy = new ArrayList<>(publicGuildList); + this.fullPublicGuildList = new ArrayList<>(publicGuildList); this.notifyDataSetChanged(); } @@ -98,14 +98,16 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter filteredGuilds = null; + if(constraint.length() == 0) { - filteredGuilds = publicGuildListCopy; + filteredGuilds = fullPublicGuildList; } else { filteredGuilds = getFilteredResults(constraint.toString().toLowerCase()); } @@ -123,11 +125,11 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter getFilteredResults(String constraint) { + protected List getFilteredResults(String query) { List filteredGuilds = new ArrayList<>(); - for(Group guild : publicGuildListCopy) { - if(guild.name.toLowerCase().contains(constraint)) { + for(Group guild : fullPublicGuildList) { + if(guild.name.toLowerCase().contains(query)) { filteredGuilds.add(guild); } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java index 50a98adea..8004cc613 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java @@ -83,14 +83,14 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView } @Override - public boolean onQueryTextSubmit(String s) { - viewAdapter.getFilter().filter(s); + public boolean onQueryTextSubmit(String query) { + viewAdapter.getFilter().filter(query); return true; } @Override - public boolean onQueryTextChange(String s) { - viewAdapter.getFilter().filter(s); + public boolean onQueryTextChange(String query) { + viewAdapter.getFilter().filter(query); return true; } } From 5abcc1bb7d3e2c6960a0d204f5a9065e34b7625a Mon Sep 17 00:00:00 2001 From: jjbillings Date: Sun, 14 Aug 2016 14:11:07 -0500 Subject: [PATCH 3/8] Move guild search bar to toolbar --- .../layout/fragment_guild_recyclerview.xml | 5 --- Habitica/res/menu/menu_public_guild.xml | 14 ++++++++ .../social/PublicGuildsFragment.java | 32 ++++++++++++++----- 3 files changed, 38 insertions(+), 13 deletions(-) create mode 100644 Habitica/res/menu/menu_public_guild.xml diff --git a/Habitica/res/layout/fragment_guild_recyclerview.xml b/Habitica/res/layout/fragment_guild_recyclerview.xml index 96ef26ad3..173286a5a 100644 --- a/Habitica/res/layout/fragment_guild_recyclerview.xml +++ b/Habitica/res/layout/fragment_guild_recyclerview.xml @@ -5,11 +5,6 @@ android:layout_width="fill_parent" android:orientation="vertical"> - - + + + + \ No newline at end of file diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java index 8004cc613..71f0d6b95 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/PublicGuildsFragment.java @@ -4,17 +4,22 @@ import com.habitrpg.android.habitica.R; import com.habitrpg.android.habitica.components.AppComponent; import com.habitrpg.android.habitica.ui.adapter.social.PublicGuildsRecyclerViewAdapter; import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment; +import com.habitrpg.android.habitica.ui.helpers.UiUtils; import com.habitrpg.android.habitica.ui.menu.DividerItemDecoration; import com.magicmicky.habitrpgwrapper.lib.models.Group; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; +import android.support.v7.widget.SearchView; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.SearchView; import java.util.List; @@ -40,9 +45,6 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView if (view == null) { view = inflater.inflate(R.layout.fragment_guild_recyclerview, container, false); - guildSearchView = (SearchView)view.findViewById(R.id.guild_search_view); - guildSearchView.setOnQueryTextListener(this); - unbinder = ButterKnife.bind(this, view); recyclerView.setLayoutManager(new LinearLayoutManager(this.activity)); recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST)); @@ -83,14 +85,28 @@ public class PublicGuildsFragment extends BaseMainFragment implements SearchView } @Override - public boolean onQueryTextSubmit(String query) { - viewAdapter.getFilter().filter(query); + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.menu_public_guild, menu); + + MenuItem searchItem = menu.findItem(R.id.action_guild_search); + guildSearchView = (SearchView)searchItem.getActionView(); + SearchView.SearchAutoComplete theTextArea = (SearchView.SearchAutoComplete) guildSearchView.findViewById(R.id.search_src_text); + theTextArea.setHintTextColor(ContextCompat.getColor(this.activity,R.color.white)); + guildSearchView.setQueryHint(getString(R.string.guild_search_hint)); + guildSearchView.setOnQueryTextListener(this); + + } + + @Override + public boolean onQueryTextSubmit(String s) { + viewAdapter.getFilter().filter(s); + UiUtils.dismissKeyboard(this.activity); return true; } @Override - public boolean onQueryTextChange(String query) { - viewAdapter.getFilter().filter(query); + public boolean onQueryTextChange(String s) { + viewAdapter.getFilter().filter(s); return true; } } From abc83a38c29ace99ff6b5d4d1f5f55c3564ba32e Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Sat, 13 Aug 2016 15:00:51 +0200 Subject: [PATCH 4/8] fix incorrect string identifier --- Habitica/res/values/strings.xml | 2 +- .../habitica/ui/adapter/inventory/ShopRecyclerAdapter.java | 2 +- .../magicmicky/habitrpgwrapper/lib/models/HabitRPGUser.java | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index bcf608831..806112b9e 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -374,7 +374,7 @@ To start, which parts of your life do you want to improve? hourglass hourglasses gold - gold + gold Message copied to Clipboard Copy to clipboard 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 18431b772..7931e23ac 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 @@ -144,7 +144,7 @@ public class ShopRecyclerAdapter extends RecyclerView.Adapter allTasks = new ArrayList(); From 1aa5da182b1e1f70957bf440c175213bddb55f74 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 16 Aug 2016 18:42:46 +0200 Subject: [PATCH 5/8] update translations --- Habitica/res/values-bg/strings.xml | 2 +- Habitica/res/values-fr/strings.xml | 5 ++- Habitica/res/values-id/strings.sidebar.xml | 1 + Habitica/res/values-it/strings.xml | 19 ++++++++++ Habitica/res/values-ja/strings.xml | 13 ++++--- Habitica/res/values-lt/strings.sidebar.xml | 1 + Habitica/res/values-lt/strings.xml | 27 ++++++++++++++ Habitica/res/values-pl/strings.sidebar.xml | 1 + Habitica/res/values-pl/strings.tutorial.xml | 10 +++--- Habitica/res/values-pl/strings.xml | 40 +++++++++++++++++---- Habitica/res/values-pt-rBR/strings.xml | 1 + Habitica/res/values-ru/strings.xml | 1 - Habitica/res/values-zh/strings.xml | 1 - 13 files changed, 98 insertions(+), 24 deletions(-) diff --git a/Habitica/res/values-bg/strings.xml b/Habitica/res/values-bg/strings.xml index 19d71f78a..39a2b76cb 100644 --- a/Habitica/res/values-bg/strings.xml +++ b/Habitica/res/values-bg/strings.xml @@ -128,7 +128,7 @@ Чат Членове Навици - Ежедневни + Ежедн. Задачи Награди Сигурен/на ли сте? diff --git a/Habitica/res/values-fr/strings.xml b/Habitica/res/values-fr/strings.xml index 95ba56c52..412fe40da 100644 --- a/Habitica/res/values-fr/strings.xml +++ b/Habitica/res/values-fr/strings.xml @@ -345,12 +345,11 @@ Pour commencer, quels aspects de votre vie souhaitez-vous améliorer ? Vous n\'avez pas besoin d\'acheter une potion de santé %1$s acheté avec succès Confirmer l\'achat - Acheter %1$s for %2$s %3$s + Acheter %1$s pour %2$s %3$s gemme sablier sabliers - or - or + pièce d\'or Message copié dans le presse-papier Copier dans le presse-papier diff --git a/Habitica/res/values-id/strings.sidebar.xml b/Habitica/res/values-id/strings.sidebar.xml index f6a378ec7..8d77c497b 100644 --- a/Habitica/res/values-id/strings.sidebar.xml +++ b/Habitica/res/values-id/strings.sidebar.xml @@ -15,4 +15,5 @@ Berita Pengaturan Tentang Kami + Toko diff --git a/Habitica/res/values-it/strings.xml b/Habitica/res/values-it/strings.xml index cfa6056a1..e02b18b29 100644 --- a/Habitica/res/values-it/strings.xml +++ b/Habitica/res/values-it/strings.xml @@ -19,6 +19,13 @@ Notifica giornaliera Attiva notifica Imposta ora notifica + Notifiche Push + Hai vinto una Sfida! + Ricevuto un messaggio + Invito in una squadra + Invito in una Gilda + La tua Missione è cominciata + Invito ad una Missione Valore Nuova to-do @@ -331,4 +338,16 @@ Le Dailies mancate e le cattive Habit non li danneggiano molto, e hanno sempre m Viaggiatori del Tempo Negozio Stagionale Non hai nessun messaggio. Puoi inviare un messaggio privato ad un utente dai loro messaggi nelle chat pubbliche! + Sblocca invitando amici + Non hai abbastanza Oro + Non hai bisogno di comprare una pozione di salute + %1$s comprato con successo + Conferma acquisto + Compra %1$s per %2$s %3$s + gemma + clessidra + clessidre + oro + Messaggio copiato negli Appunti + Copia negli appunti diff --git a/Habitica/res/values-ja/strings.xml b/Habitica/res/values-ja/strings.xml index c2ae1b541..985b5121e 100644 --- a/Habitica/res/values-ja/strings.xml +++ b/Habitica/res/values-ja/strings.xml @@ -266,7 +266,7 @@ えさ クエスト ペット - 騎獣 + 乗騎 宝箱に貴重なアイテム、 %s を見つけた! すごい! 宝箱をひっかきまわして%1$s%2$sを見つけた。何でこんなとこに? 宝箱と格闘して経験値を増やした。どうぞっ! @@ -291,10 +291,10 @@ 魔法の薬のペット クエスト ペット 貴重なペット - 基本の騎獣 - 魔法の薬の騎獣 - クエストの騎獣 - 貴重な騎獣 + 基本の乗騎 + 魔法の薬の乗騎 + クエストの乗騎 + レアな乗騎 世界のクエスト 宿で休んでいる間は、日課をやらずに夜が明けてもダメージを受けない! ( 注 : ボスから受けるダメージは避けられない) %s を持ってないよ @@ -332,7 +332,7 @@ 共有 ( シェア ) : 生活を改善して、Habitica でのレベルが %s になった! 実生活でのタスクをこなして、Habitica で %1$s%2$s のペットを飼いはじめた。 - 実生活でのタスクをこなして、%1$s%2$s のペットが乗れるほど大きな騎獣まで成長した。 + 実生活でのタスクをこなして、%1$s%2$s のペットが乗れるほど大きな乗騎まで成長した。 Play ストアで開く クラスを変更します。いいですか? 3 ジェムかかります。 %1$s からのメッセージ @@ -351,7 +351,6 @@ 砂時計 砂時計 ゴールド - ゴールド クリップボードにコピーされたメッセージ クリップボードにコピー diff --git a/Habitica/res/values-lt/strings.sidebar.xml b/Habitica/res/values-lt/strings.sidebar.xml index 3f72e0cf1..94f96645d 100644 --- a/Habitica/res/values-lt/strings.sidebar.xml +++ b/Habitica/res/values-lt/strings.sidebar.xml @@ -16,4 +16,5 @@ Naujienos Nustatymai Apie + Parduotuvės diff --git a/Habitica/res/values-lt/strings.xml b/Habitica/res/values-lt/strings.xml index f68cb18f7..6d2718bfd 100644 --- a/Habitica/res/values-lt/strings.xml +++ b/Habitica/res/values-lt/strings.xml @@ -19,6 +19,16 @@ Kasdienis Priminimas Įjungti Priminimą Nustatyti Priminimo Laiką + Aktyvūs Vartotojo Pranešimai + Aktyvūs Pranšimai + Laimėjai Iššūkį! + Gavai Privačią Žinutę + Padovanoti Brangakmeniai + Padovanota Prenumerata + Pakvietimas į Grupę + Pakvietimas į Gildiją + Tavo Misija Prasidėjo + Pakvietimas į Misiją Reikšmė Nauja vienkartinė užduotis @@ -325,4 +335,21 @@ Pradžiai, kurias savo gyvenimo dalis norėtum tobulint? Atidaryti play parduotuvėje Ar tikrai nori pasikeisti savo klasę? Tai kainuos 3 brangakmenius. Žinutė nuo %1$s + Patvirtinti + Turgus + Keliautojai Laiku + Sezoninė Parduotuvė + Tavo Pašo dėžutėje žinučių nėra. Kitiems vartotojams galima siųsti pranešimus paspaudus ant jų viešų pranešimų! + Atidenk pakviečiant draugus + Nepakanka Aukso + Tau nereikia gyvybių eliksyro + %1$s nupirktas + Patvirtinti pirkinį + Pirkti %1$s už %2$s %3$s + brangakmenis + smėlio laikrodis + smėlio laikrodžiai + aukso + Žinutė nukopijuota į Iškarpinę + Kopijuoti į Iškarpinę diff --git a/Habitica/res/values-pl/strings.sidebar.xml b/Habitica/res/values-pl/strings.sidebar.xml index b4bfbcdd5..3949c1b7e 100644 --- a/Habitica/res/values-pl/strings.sidebar.xml +++ b/Habitica/res/values-pl/strings.sidebar.xml @@ -16,4 +16,5 @@ Aktualności Ustawienia O programie + Sklepy diff --git a/Habitica/res/values-pl/strings.tutorial.xml b/Habitica/res/values-pl/strings.tutorial.xml index 63ddf54ee..91410edf3 100644 --- a/Habitica/res/values-pl/strings.tutorial.xml +++ b/Habitica/res/values-pl/strings.tutorial.xml @@ -1,14 +1,14 @@ - Utrwalaj Pozytywne Nawyki, aby zdobyć złoto i punkty doświadczenia! Negatywne Nawyki zranią twojego bohatera gdy na nie natrafisz. Unikaj ich w prawdziwym życiu! - Pokonuj kolejne Codzienne zadania, aby zdobyć złoto i doświadczenie. Uwaga! Codzienne zranią twojego awatara, jeśli nie ukończysz ich na czas. + Utrwalaj Pozytywne Nawyki, aby zdobyć złoto i punkty doświadczenia! Negatywne Nawyki zranią Twojego bohatera gdy na nie natrafisz. Unikaj ich w prawdziwym życiu! + Pokonuj kolejne Codzienne zadania, aby zdobyć złoto i doświadczenie. Uwaga! Codzienne zranią Twojego awatara, jeśli nie ukończysz ich na czas. Ukończ swoje Do-Zrobienia w prawdziwym życiu i odznacz je w zamian za ZŁOTO i DOŚWIADCZENIE, aby móc kupować Nagrody i odblokowywać nowe funkcje! - Oto twoje Nagrody! Zyskuj złoto za ukończone w prawdziwym życiu Nawyki, Codzienne i Do-Zrobienia. Następnie wydawaj na Nagrody w grze lub własne w realnym świecie! - Tu pojawia się zakupiony ekwipunek. Wyposażenie Bojowe wpływa na twoje statystyki, a Kostium (o ile włączony) na wygląd twojego awatara. + Oto Twoje Nagrody! Zyskuj złoto za ukończone w prawdziwym życiu Nawyki, Codzienne i Do-Zrobienia. Następnie wydawaj na Nagrody w grze lub własne w realnym świecie! + Tu pojawia się zakupiony ekwipunek. Wyposażenie Bojowe wpływa na Twoje statystyki, a Kostium (o ile włączony) na wygląd Twojego awatara. Zbieraj przedmioty kończąc zadania i zdobywając poziomy. Stuknij przedmiot, żeby go użyć! Kończąc zadania w prawdziwym świecie, masz szansę znalezienia losowych jaj i eliksirów. Połącz je, aby wykluć chowańce. Umiejętności to specjalne zdolności, które mają potężne efekty! Stuknij umiejętność, aby jej użyć. To kosztuje Mana (niebieski pasek), którą zyskujesz zaglądając tu codziennie i kończąc zadania w prawdziwym świecie. Aby dowiedzieć się więcej, zaglądnij do FAQ w menu! - Tutaj ty i twoi przyjaciele pilnujecie wzajemnie swoich celów i walczycie z potworami poprzez swoje zadania! + Tutaj Ty i Twoi przyjaciele pilnujecie wzajemnie swoich celów i walczycie z potworami poprzez swoje zadania! Witaj w Karczmie - publicznym czacie dla wszystkich grup wiekowych! Możecie tu rozmawiać o produktywności i zadawać pytania. Miłej zabawy! Wybierz, czy zostać Wojownikiem, Magiem, Uzdrowicielem, czy Łotrzykiem! Każda klasa ma unikalny zestaw wyposażenia i umiejętności. By dowiedzieć się więcej, stuknij (?) ! diff --git a/Habitica/res/values-pl/strings.xml b/Habitica/res/values-pl/strings.xml index cceabb3e3..f98b246e8 100644 --- a/Habitica/res/values-pl/strings.xml +++ b/Habitica/res/values-pl/strings.xml @@ -19,6 +19,16 @@ Przypominienie Aktywuj Przypomnienie Ustaw Czas Przypomnienia + Notyfikacje użytkownika + Notyfikacje + Ukończono wyzwanie! + Otrzymano prywatną wiadomość + Otrzymałeś diamenty + Otrzymałeś Subskrypcję + Otrzymano zaproszenie do drużyny + Otrzymano zaproszenie do gildii + Twoja misja się rozpoczęła + Zaproszono Cię na misję Wartość Nowe DoZrobienia @@ -171,10 +181,10 @@ Poprzedni Następny Pomiń - Witaj w Habitice, gdzie postęp w grze ulepszy twoje życie! Osiągając cele w prawdziwym świecie, odblokowujesz ekwipunek, chowańce, misje i wiele więcej. + Witaj w Habitice, gdzie postęp w grze ulepszy Twoje życie! Osiągając cele w prawdziwym świecie, odblokowujesz ekwipunek, chowańce, misje i wiele więcej. Witaj - Na początek, potrzebujesz awatara - twoją reprezentację w grze! To, co robisz w prawdziwym życiu, ma wpływ na zdrowie, poziom doświadczenia i złoto twojego awatara. - Wspaniale! Teraz ustalmy twoje zadania, żeby zacząć zdobywać doświadczenie i złoto. + Na początek, potrzebujesz awatara - swojego odpowiednika w grze! To, co robisz w prawdziwym życiu, ma wpływ na zdrowie, poziom doświadczenia i złoto Twojego awatara. + Wspaniale! Teraz ustalmy Twoje zadania, żebyś zaczął zdobywać doświadczenie i złoto. Od czego chcesz zacząć poprawiać swoje życie? Praca @@ -205,7 +215,7 @@ Od czego chcesz zacząć poprawiać swoje życie? Studiować mistrzostwo rzemiosła Pracować nad twórczym projektem Ukończyć twórczy projekt - Chcesz nam pomóc w utrzymaniu Habitiki? Możesz wesprzeć deweloperów kupując Klejnoty!\n\nZa Klejnoty można kupować zabawne dodatki do konta, takie jak:\n\n - Fajne kostiumy dla twojego awatara\n - Fantastyczne tła\n - Ciekawe misje, w których nagrodą są jaja chowańców\n - Możliwość zmiany klasy przed osiągnięciem poziomu 100\n\nStukrotne dzięki za pomaganie nam w czynieniu Habitiki najlepszą, jaka może być. Twoja pomoc wiele dla nas znaczy! + Chcesz nam pomóc w utrzymaniu Habitiki? Możesz wesprzeć deweloperów kupując Klejnoty!\n\nZa Klejnoty można kupować zabawne dodatki do konta, takie jak:\n\n - Fajne kostiumy dla Twojego awatara\n - Fantastyczne tła\n - Ciekawe misje, w których nagrodą są jaja chowańców\n - Możliwość zmiany klasy przed osiągnięciem poziomu 100\n\nStukrotne dzięki za pomaganie nam w czynieniu Habitiki najlepszą, jaka może być. Twoja pomoc wiele dla nas znaczy! Moje Gildie Publiczne Gildie Gildia @@ -293,9 +303,9 @@ Od czego chcesz zacząć poprawiać swoje życie? Łotrzyk Mag Uzdrowiciel - Wojownicy mają częstsze i lepsze \"uderzenia krytyczne\", które losowo dają Złoto, Doświadczenie, i szansę na zrzut za odznaczenie zadania. Zadają także ciężkie obrażenia bossom. Graj jako Wojownik jeśli motywują cię nieprzewidywalne nagrody, lub jeśli chcesz niszczyć bossów w Misjach! + Wojownicy mają częstsze i lepsze \"trafienia krytyczne\", które losowo dają Złoto, Doświadczenie, i szansę na zdobycz za odznaczenie zadania. Zadają także ciężkie obrażenia bossom. Graj jako Wojownik jeśli motywują Cię nieprzewidywalne nagrody, lub jeśli chcesz niszczyć bossów w Misjach! Magowie uczą się sprawnie, zyskując Doświadczenie i Poziomy szybciej niż inne klasy. Dostają także dużo Many na specjalne umiejętności. Graj jako Mag jeśli lubisz elementy gry taktycznej w Habit, lub jeśli jesteś silnie motywowany przez zdobywanie poziomów i odblokowywanie zaawansowanych aspektów gry! - Łotrzyki uwielbiają akumulować bogactwa, zyskując więcej Złota niż inni, oraz są adeptami w znajdowaniu losowych rzeczy. Ich umiejętność skradania pozwala im uniknąć konsekwencji pominięcia Codziennych. Graj jako Łotrzyk jeśli motywują cie Nagrody i Osiągnięcia, walczenie o skarby i odznaki! + Łotrzyki uwielbiają gromadzić bogactwa, zyskując więcej Złota niż inni, oraz są adeptami w znajdowaniu losowych rzeczy. Ich umiejętność skradania pozwala im uniknąć konsekwencji pominięcia Codziennych. Graj jako Łotrzyk jeśli motywują Cię Nagrody i Osiągnięcia, walczenie o skarby i odznaki! Medycy są odporni na obrażenia, i przedłużają tą ochronę na innych. Pominięte Codzienne i złe Nawyki nie robią na nich wrażenia, mają także sposoby na odzyskanie Zdrowia po porażce. Graj jako Medyk jeśli lubisz pomagać innym w Drużynie, lub jeśli koncepcja oszukania Śmierci dzięki ciężkiej pracy jest dla ciebie inspirująca! Wybierz klasę postaci Wycofaj się @@ -325,4 +335,22 @@ Od czego chcesz zacząć poprawiać swoje życie? Otwórz w sklepie Google Play Jesteś pewien, że chcesz zmienić klasę? Będzie to kosztować 3 kryształy. Wiadomość od %1$s + Potwierdź + Sklep + Podróżnicy w czasie + Sklep sezonowy + Nie masz żadnych wiadomości. Możesz wysłać użytkownikowi nową wiadomość za pomocą ich publicznych wiadomości! + Odblokuj poprzez zapraszanie przyjaciół + Niewystarczająca ilość złota + Nie potrzebujesz kupować eliksiru uzdrawiającego + %1$s jest w Twoim posiadaniu + Potwierdź zakup + Zakup %1$s za %2$s %3$s + diament + klepsydra + klepsydry + złoto + złoto + Wiadomość skopiowana do schowka + Kopiuj do schowka diff --git a/Habitica/res/values-pt-rBR/strings.xml b/Habitica/res/values-pt-rBR/strings.xml index 2ac1a18dc..d6d1db347 100644 --- a/Habitica/res/values-pt-rBR/strings.xml +++ b/Habitica/res/values-pt-rBR/strings.xml @@ -24,6 +24,7 @@ Você venceu um Desafio! Recebeu uma Mensagem Privada Gemas de presente + Assinatura Presenteada Convidado para um grupo Convidado para uma Guilda Sua missão começou diff --git a/Habitica/res/values-ru/strings.xml b/Habitica/res/values-ru/strings.xml index 570d93f87..0df9733ac 100644 --- a/Habitica/res/values-ru/strings.xml +++ b/Habitica/res/values-ru/strings.xml @@ -350,7 +350,6 @@ Песочные часы песочные часы золото - золото Сообщение скопировано в буфер обмена Скопировать в буфер обмена diff --git a/Habitica/res/values-zh/strings.xml b/Habitica/res/values-zh/strings.xml index f6692148d..23f48bf32 100644 --- a/Habitica/res/values-zh/strings.xml +++ b/Habitica/res/values-zh/strings.xml @@ -340,5 +340,4 @@ 沙漏 沙漏 金币 - 金币 From bd8df11057d45acf9a8aeac49fddd98a406057eb Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 16 Aug 2016 18:42:55 +0200 Subject: [PATCH 6/8] fix crash in avatar customization --- .../inventory/customization/AvatarCustomizationFragment.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.java index de3ff24e1..ac2e30a63 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/inventory/customization/AvatarCustomizationFragment.java @@ -149,6 +149,9 @@ public class AvatarCustomizationFragment extends BaseMainFragment { private void updateActiveCustomization() { Preferences prefs = this.user.getPreferences(); + if (this.type == null) { + return; + } switch (this.type) { case "skin": this.activeCustomization = prefs.getSkin(); From 71f796e02bbd59fd4a2d3c6062e5c05e4dfd5496 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Tue, 16 Aug 2016 18:43:08 +0200 Subject: [PATCH 7/8] add debug info to figure out mapping issue --- .../src/main/java/com/habitrpg/android/habitica/APIHelper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java b/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java index ec1c5b9e5..0c2da6999 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/APIHelper.java @@ -153,6 +153,7 @@ public class APIHelper implements Action1 { } else { body = ResponseBody.create(contentType, stringJson); } + Crashlytics.setString("last_api_call", response.request().url().toString()); return response.newBuilder().body(body).build(); }; From fdf00b66aa42decf039d6998073ecd9630775f75 Mon Sep 17 00:00:00 2001 From: negue Date: Wed, 17 Aug 2016 01:33:53 +0200 Subject: [PATCH 8/8] fix(avatarView): currentLayers is null on the first call --- .../main/java/com/habitrpg/android/habitica/ui/AvatarView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java index 503e214ab..c58fd12d7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/AvatarView.java @@ -316,7 +316,7 @@ public class AvatarView extends View { if (oldUser != null) { Map newLayerMap = getLayerMap(user, false); - boolean equals = currentLayers.equals(newLayerMap); + boolean equals = currentLayers != null && currentLayers.equals(newLayerMap); if (!equals) { multiDraweeHolder.clear();