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();