diff --git a/Habitica/res/layout/fragment_guild_recyclerview.xml b/Habitica/res/layout/fragment_guild_recyclerview.xml
new file mode 100644
index 000000000..173286a5a
--- /dev/null
+++ b/Habitica/res/layout/fragment_guild_recyclerview.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/menu/menu_public_guild.xml b/Habitica/res/menu/menu_public_guild.xml
new file mode 100644
index 000000000..8a28dd72e
--- /dev/null
+++ b/Habitica/res/menu/menu_public_guild.xml
@@ -0,0 +1,14 @@
+
+
\ No newline at end of file
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 @@
沙漏
沙漏
金币
- 金币
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 0aa13106f..806112b9e 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -254,6 +254,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
@@ -373,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/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();
};
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();
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 {
+public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter implements Filterable{
public APIHelper apiHelper;
private List publicGuildList;
+ private List fullPublicGuildList;
private List memberGuildIDs;
public void setPublicGuildList(List publicGuildList) {
this.publicGuildList = publicGuildList;
+ this.fullPublicGuildList = new ArrayList<>(publicGuildList);
this.notifyDataSetChanged();
}
@@ -94,6 +99,44 @@ public class PublicGuildsRecyclerViewAdapter extends RecyclerView.Adapter filteredGuilds = null;
+
+ if(constraint.length() == 0) {
+ filteredGuilds = fullPublicGuildList;
+ } 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 query) {
+ List filteredGuilds = new ArrayList<>();
+
+ for(Group guild : fullPublicGuildList) {
+ if(guild.name.toLowerCase().contains(query)) {
+ filteredGuilds.add(guild);
+ }
+ }
+
+ return filteredGuilds;
+ }
+
static class GuildViewHolder extends RecyclerView.ViewHolder {
@BindView(R.id.nameTextView)
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();
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..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,14 +4,20 @@ 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;
@@ -20,7 +26,7 @@ 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 +36,14 @@ 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);
unbinder = ButterKnife.bind(this, view);
recyclerView.setLayoutManager(new LinearLayoutManager(this.activity));
@@ -76,4 +83,30 @@ public class PublicGuildsFragment extends BaseMainFragment {
});
}
}
+
+ @Override
+ 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 s) {
+ viewAdapter.getFilter().filter(s);
+ return true;
+ }
}
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 d0595b59b..aa534748c 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
@@ -317,8 +317,7 @@ public class HabitRPGUser extends BaseModel {
authentication.user_id = id;
flags.user_id = id;
if (contributor != null) { contributor.user_id = id; }
- contributor.user_id = id;
- invitations.user_id = id;
+ if (invitations != null) { invitations.user_id = id; }
ArrayList allTasks = new ArrayList();