diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index 349170577..fb31d8958 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -52,6 +52,7 @@ dependencies {
compile('com.mikepenz:materialdrawer:5.0.9@aar') {
transitive = true
}
+ compile 'com.mikepenz:google-material-typeface:2.2.0.1.original@aar'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
diff --git a/Habitica/res/layout/material_drawer_item_section_icon.xml b/Habitica/res/layout/material_drawer_item_section_icon.xml
new file mode 100644
index 000000000..f8dc3986b
--- /dev/null
+++ b/Habitica/res/layout/material_drawer_item_section_icon.xml
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Habitica/res/values-de/strings.xml b/Habitica/res/values-de/strings.xml
index 7bc3cd1c4..f817ccd02 100644
--- a/Habitica/res/values-de/strings.xml
+++ b/Habitica/res/values-de/strings.xml
@@ -231,4 +231,8 @@ Für den Anfang, welche Bereiche deines Lebens möchtest du verbessern?
Waffe
Kostüm tragen
Ausgerüstet
+ Ausstehend
+ Angenommen
+ Abgelehnt
+ Teilnehmer
diff --git a/Habitica/res/values-es/strings.xml b/Habitica/res/values-es/strings.xml
index ce93bd127..0fe94dd07 100644
--- a/Habitica/res/values-es/strings.xml
+++ b/Habitica/res/values-es/strings.xml
@@ -147,9 +147,6 @@
Fecha límite
Aceptar
Rechazar
- Empezar
- Cancelar
- Abortar
Abandonar Desafío
Versión %s (%d)
Ayuda & FAQ
diff --git a/Habitica/res/values-fr/strings.xml b/Habitica/res/values-fr/strings.xml
index f776ec911..aff0c46ba 100644
--- a/Habitica/res/values-fr/strings.xml
+++ b/Habitica/res/values-fr/strings.xml
@@ -85,7 +85,7 @@
Vendredi
Samedi
Dimanche
- Vous avez passé un niveau !
+ Vous avez gagné un niveau !
En atteignant vos buts dans la vie réelle, vous avez atteint le Niveau %1$d !
Vous avez été guéri·e complètement !
Bravo !
@@ -99,15 +99,15 @@
Vous avez utilisé %1$s pour %2$d points de mana.
Nouvelle vérification
Ajouter
- N\'oubliez pas de cocher vos tâches quotidiennes accomplies !
+ N\'oubliez pas de cocher vos tâches Quotidiennes !
Utiliser une compétence
Bientôt disponible
- Êtes-vous sûr·e de vouloir signaler ce message pour violation ?
+ Êtes-vous sûr·e de vouloir signaler ce message pour infraction ?
Signaler
Disponible au niveau 11
- Vous ne faites pas partie d\'une équipe. Pour rejoindre une équipe, veuillez visiter le site Internet.
+ Vous ne faites pas partie d\'une équipe. Pour rejoindre une équipe, veuillez visiter le site.
Mot de passe oublié
- Mot de passe oublié ? Veuillez vous rendre sur la version mobile de notre site.
+ Mot de passe oublié ? Veuillez vous rendre sur la version mobile du site.
Quitter l\'Auberge
Se reposer à l\'Auberge
Acheter
@@ -232,4 +232,8 @@ Pour commencer, quels aspects de votre vie souhaitez-vous améliorer ?
Arme
Porter un costume
Équipé
+ En attente
+ Acceptée
+ Rejeté
+ Participants
diff --git a/Habitica/res/values-it/strings.xml b/Habitica/res/values-it/strings.xml
index 340d5e810..0a01b190f 100644
--- a/Habitica/res/values-it/strings.xml
+++ b/Habitica/res/values-it/strings.xml
@@ -147,9 +147,6 @@
Data di scadenza
Accetta
Rifiuta
- Inizia
- Annulla
- Annulla
Abbandona Missione
Versione %s (%d)
Capito!
diff --git a/Habitica/res/values-lt/strings.xml b/Habitica/res/values-lt/strings.xml
index d462ce1bf..2e3eb002c 100644
--- a/Habitica/res/values-lt/strings.xml
+++ b/Habitica/res/values-lt/strings.xml
@@ -147,10 +147,14 @@
Baigimo Terminas
Sutikti
Atmesti
- Pradėti
- Atšaukti
- Nutraukti
+ Pradėti Misiją
+ Atšaukti Pakvietimą
+ Atšaukti Misiją
Palikti Misiją
+ Laukiama
+ Sutiko
+ Atsisakė
+ Dalyviai
Versija: %s (%d)
Pagalba & DUK
Supratau!
@@ -232,4 +236,14 @@ Pradžiai, kurias savo gyvenimo dalis norėtum tobulint?
Ginklas
Užsidėti Kostiumą
Užsidėta
+ Ar tikrai nori atšaukti misiją? Visi pakvietimai bus nutraukti. Misijos savininkas atgaus misijos rankraštį.
+ Misijos Pakvietimas
+ Ar tikrai nori pradėti misiją? Kai ji prasidės, kiti grupės nariai nebegalės prisijungti.
+ Tave pakvietė dalyvauti misijoje!
+ Liko 1 diena
+ prieš %d dieną(as)
+ prieš 1 minutę
+ prieš %d minutę(es)
+ prieš %d valandą(as)
+ prieš 1 valandą
diff --git a/Habitica/res/values-pl/strings.xml b/Habitica/res/values-pl/strings.xml
index da0df7a36..d989af677 100644
--- a/Habitica/res/values-pl/strings.xml
+++ b/Habitica/res/values-pl/strings.xml
@@ -147,9 +147,6 @@
Termin
Akceptuj
Odrzuć
- Rozpocznij
- Anuluj
- Porzuć
Opuść Misję
Wersja %s (%d)
Jasne!
diff --git a/Habitica/res/values-pt-rBR/strings.xml b/Habitica/res/values-pt-rBR/strings.xml
index 73e456f58..d974f0335 100644
--- a/Habitica/res/values-pt-rBR/strings.xml
+++ b/Habitica/res/values-pt-rBR/strings.xml
@@ -65,6 +65,7 @@
Notas
Texto
Dificuldade
+ Rótulo
Trivial
Fácil
Médio
@@ -103,7 +104,7 @@
Em Breve
Você tem certeza que quer reportar esta mensagem por violação?
Reportar Mensagem
- Desbloqueie no nv 10
+ Desbloqueie no nível 11
Você não está em um grupo. Para entrar em um grupo, por favor visite o site.
Esqueci a senha
Esqueceu a senha? Por favor use o Site móvel.
@@ -144,47 +145,53 @@
Comprar
Comprar conjunto %s
Data limite
+ Aceitar
+ Rejeitar
+ Iniciar
+ Cancelar
+ Abortar
+ Abandonar missão
Versão %s (%d)
-
+ Ajuda &: Perguntas Frequentes
Entendi!
Lembre-me novamente
Bem vindo(a) ao Habitica
- Junte-se a mais de 1,100,000 pessoas que se divertem enquanto fazem as coisas acontecerem. Crie um avatar e acompanhe suas tarefas da vida real.
+ Junte-se à mais de 1.100.000 pessoas se divertindo enquanto fazem o que precisam. Crie um avatar e acompanhe suas atividades na vida real.
Progresso no jogo = Progresso na vida
Desbloqueie recursos no jogo ao completar suas tarefas da vida real. Ganhe armaduras, animais de estimação, montarias e mais para recompensá-lo por atingir suas metas!
Socialize e lute contra monstros
Mantenha suas metas sob controle com a ajuda de seus amigos. Ajudem-se na vida e na batalha enquanto melhoram juntos!
- Entrar
+ Iniciar
Anterior
Próximo
Pular
- Bem vindo ao Habitica, onde avançar no jogo vai melhorar sua vida real! Completando metas do mundo real, você vai desbloquear equipamentos, animais de estimação, missões, e mais.
- Bem vindo
- Primeiramente, você precisa de um avatar no jogo para te representar! As coisas que você faz na vida real, vão afetar a saúde, nível de experiência e ouro do seu avatar.
+ Bem vindo ao Habitica, onde avançar no jogo vai melhorar sua vida real! Completando metas do mundo real, você vai desbloquear equipamentos, animais de estimação, missões e mais.
+ Bem-vindo
+ Primeiramente, você precisa de um avatar no jogo para te representar! As coisas que você faz na vida real, vão afetar a saúde do seu avatar, nível de experiência e ouro.
Esplêndido! Agora vamos configurar suas tarefas para que você comece a ganhar experiência e ouro.
Para começar, quais partes da sua vida você quer melhorar?
Trabalho
Exercício
- Saúde + Bem estar
+ Saúde + Bem-estar
Escola
Equipes
- Ocupações
+ Tarefas
Criatividade
- Processar seus e-mails
+ Processar e-mails
Tarefa mais importante
Projeto de trabalho
- 10 minutos de exercício cardiovascular
- Alongamentos
+ 10 min cardio
+ Alongamento
Criar agenda de atividades físicas
Comer bem / Comer besteiras
Passar fio dental
- Agendar check-up médico
+ Agendar check-up
Estudar/Procrastinar
Fazer a lição de casa
Terminar tarefa para a aula
- \"Check in\" com a equipe
- Atualizar a equipe do status
+ Confirmar com a equipe
+ Atualizar a equipe sobre o status
Completar projeto da equipe
Limpeza de 10 minutos
Lavar a louça
@@ -192,4 +199,41 @@ Para começar, quais partes da sua vida você quer melhorar?
Estudar um mestre no ofício
Trabalhar em um projeto criativo
Terminar um projeto criativo
+ Quer nos ajudar a manter o Habitica funcionando? Você pode contribuir com os desenvolvedores ao comprar gemas!\n\nGemas permitem que você compre extras divertidos para sua conta, incluindo: \n\n - Fantasias legais para seu avatar\n - Imagens de fundo incríveis\n - Missões divertidas que te recompensam com ovos\n - A habilidade de mudar de classe antes do nível 100\n\n Muito obrigado por nos ajudar a manter o Habita o melhor possível. Sua ajuda significa muito para nós!
+ Minhas Guildas
+ Guildas Públicas
+ Guilda
+ Sair
+ Juntar-se
+ Líder
+ Gemas
+ Copiar como Afazer
+ Enviar mensagem privada
+ Bandeira
+ Deletar
+ Nome
+ Descrição
+ Adicionar marcador
+ Privacidade
+ Escrever mensagem
+ Cargo
+ Devido: %s
+ Raia atual: %d
+ Tarefa com vencimento
+ Equipamento de batalha
+ Traje
+ Cabeça
+ Acessório de cabeça
+ Óculos
+ Armadura
+ Costas
+ Corpo
+ Escudo
+ Arma
+ Vestir traje
+ Equipado
+ Pendente
+ Aceito
+ Rejeitado
+ Participantes
diff --git a/Habitica/res/values-zh/strings.xml b/Habitica/res/values-zh/strings.xml
index a3f8f0569..0adaa315a 100644
--- a/Habitica/res/values-zh/strings.xml
+++ b/Habitica/res/values-zh/strings.xml
@@ -232,4 +232,8 @@
武器
穿上装扮
装备
+ 等待中
+ 接受了
+ 拒绝的
+ 参与者
diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/MainDrawerBuilder.java b/Habitica/src/com/habitrpg/android/habitica/ui/MainDrawerBuilder.java
index b389d042c..444b9ee41 100644
--- a/Habitica/src/com/habitrpg/android/habitica/ui/MainDrawerBuilder.java
+++ b/Habitica/src/com/habitrpg/android/habitica/ui/MainDrawerBuilder.java
@@ -19,6 +19,7 @@ import com.habitrpg.android.habitica.ui.fragments.social.GuildsOverviewFragment;
import com.habitrpg.android.habitica.ui.fragments.social.TavernFragment;
import com.habitrpg.android.habitica.ui.fragments.social.party.PartyFragment;
import com.habitrpg.android.habitica.ui.fragments.tasks.TasksFragment;
+import com.mikepenz.google_material_typeface_library.GoogleMaterial;
import com.mikepenz.materialdrawer.AccountHeader;
import com.mikepenz.materialdrawer.AccountHeaderBuilder;
import com.mikepenz.materialdrawer.Drawer;
@@ -42,9 +43,10 @@ public class MainDrawerBuilder {
public static final int SIDEBAR_EQUIPMENT = 7;
public static final int SIDEBAR_STABLE = 8;
public static final int SIDEBAR_PURCHASE = 9;
- public static final int SIDEBAR_SETTINGS = 10;
- public static final int SIDEBAR_HELP = 11;
- public static final int SIDEBAR_ABOUT = 12;
+ public static final int SIDEBAR_NEWS = 10;
+ public static final int SIDEBAR_SETTINGS = 11;
+ public static final int SIDEBAR_HELP = 12;
+ public static final int SIDEBAR_ABOUT = 13;
@@ -79,20 +81,19 @@ public class MainDrawerBuilder {
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_tasks)).withIdentifier(SIDEBAR_TASKS),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_skills)).withIdentifier(SIDEBAR_SKILLS),
- new SectionDrawerItem().withName(activity.getString(R.string.sidebar_section_social)),
+ new SectionIconDrawerItem().withName(activity.getString(R.string.sidebar_section_social)).withIcon(GoogleMaterial.Icon.gmd_group),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_tavern)).withIdentifier(SIDEBAR_TAVERN),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_party)).withIdentifier(SIDEBAR_PARTY),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_guilds)).withIdentifier(SIDEBAR_GUILDS),
- //new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_challenges)),
- new SectionDrawerItem().withName(activity.getString(R.string.sidebar_section_inventory)),
+ new SectionIconDrawerItem().withName(activity.getString(R.string.sidebar_section_inventory)).withIcon(GoogleMaterial.Icon.gmd_work),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_avatar)).withIdentifier(SIDEBAR_AVATAR),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_equipment)).withIdentifier(SIDEBAR_EQUIPMENT),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_stable)).withIdentifier(SIDEBAR_STABLE).withEnabled(false).withBadge(R.string.coming_soon),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_purchaseGems)).withIdentifier(SIDEBAR_PURCHASE),
- new DividerDrawerItem(),
- //new SecondaryDrawerItem().withName(activity.getString(R.string.sidebar_news)),
+ new SectionIconDrawerItem().withName(activity.getString(R.string.sidebar_section_inventory)).withIcon(GoogleMaterial.Icon.gmd_info_outline),
+ new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_news)).withIdentifier(SIDEBAR_NEWS).withSelectable(false),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_settings)).withIdentifier(SIDEBAR_SETTINGS).withSelectable(false),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_help)).withIdentifier(SIDEBAR_HELP),
new PrimaryDrawerItem().withName(activity.getString(R.string.sidebar_about)).withIdentifier(SIDEBAR_ABOUT).withSelectable(false)
diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/SectionIconDrawerItem.java b/Habitica/src/com/habitrpg/android/habitica/ui/SectionIconDrawerItem.java
new file mode 100644
index 000000000..8559ffa22
--- /dev/null
+++ b/Habitica/src/com/habitrpg/android/habitica/ui/SectionIconDrawerItem.java
@@ -0,0 +1,237 @@
+package com.habitrpg.android.habitica.ui;
+import android.content.Context;
+import android.graphics.Typeface;
+import android.graphics.drawable.Drawable;
+import android.os.Build;
+import android.support.annotation.ColorInt;
+import android.support.annotation.ColorRes;
+import android.support.annotation.DrawableRes;
+import android.support.annotation.LayoutRes;
+import android.support.annotation.StringRes;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.habitrpg.android.habitica.R;
+import com.mikepenz.fastadapter.utils.ViewHolderFactory;
+import com.mikepenz.iconics.typeface.IIcon;
+import com.mikepenz.materialdrawer.holder.ColorHolder;
+import com.mikepenz.materialdrawer.holder.ImageHolder;
+import com.mikepenz.materialdrawer.holder.StringHolder;
+import com.mikepenz.materialdrawer.model.AbstractDrawerItem;
+import com.mikepenz.materialdrawer.model.interfaces.Nameable;
+import com.mikepenz.materialdrawer.model.interfaces.Typefaceable;
+import com.mikepenz.materialize.util.UIUtils;
+
+/**
+ * Created by mikepenz on 03.02.15.
+ */
+public class SectionIconDrawerItem extends AbstractDrawerItem implements Nameable, Typefaceable {
+ protected ImageHolder icon;
+
+ protected boolean iconTinted = false;
+ private StringHolder name;
+ private boolean divider = true;
+
+ private ColorHolder textColor;
+
+ protected ColorHolder iconColor;
+
+ private Typeface typeface = null;
+
+ public SectionIconDrawerItem withName(StringHolder name) {
+ this.name = name;
+ return this;
+ }
+
+ public SectionIconDrawerItem withName(String name) {
+ this.name = new StringHolder(name);
+ return this;
+ }
+
+ public SectionIconDrawerItem withName(@StringRes int nameRes) {
+ this.name = new StringHolder(nameRes);
+ return this;
+ }
+
+ public SectionIconDrawerItem withDivider(boolean divider) {
+ this.divider = divider;
+ return this;
+ }
+
+ public SectionIconDrawerItem withTextColor(int textColor) {
+ this.textColor = ColorHolder.fromColor(textColor);
+ return this;
+ }
+
+ public SectionIconDrawerItem withTextColorRes(int textColorRes) {
+ this.textColor = ColorHolder.fromColorRes(textColorRes);
+ return this;
+ }
+
+ public SectionIconDrawerItem withIcon(ImageHolder icon) {
+ this.icon = icon;
+ return this;
+ }
+
+ public SectionIconDrawerItem withIcon(Drawable icon) {
+ this.icon = new ImageHolder(icon);
+ return this;
+ }
+
+ public SectionIconDrawerItem withIcon(@DrawableRes int iconRes) {
+ this.icon = new ImageHolder(iconRes);
+ return this;
+ }
+
+ public SectionIconDrawerItem withIcon(IIcon iicon) {
+ this.icon = new ImageHolder(iicon);
+
+ return this;
+ }
+
+ public SectionIconDrawerItem withTypeface(Typeface typeface) {
+ this.typeface = typeface;
+ return this;
+ }
+
+ public boolean hasDivider() {
+ return divider;
+ }
+
+ public ColorHolder getTextColor() {
+ return textColor;
+ }
+
+ public StringHolder getName() {
+ return name;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return false;
+ }
+
+ @Override
+ public boolean isSelected() {
+ return false;
+ }
+
+ @Override
+ public int getType() {
+ return R.id.material_drawer_item_section;
+ }
+
+ @Override
+ @LayoutRes
+ public int getLayoutRes() {
+ return R.layout.material_drawer_item_section_icon;
+ }
+
+ @Override
+ public Typeface getTypeface() {
+ return typeface;
+ }
+
+ public SectionIconDrawerItem withIconColor(@ColorInt int iconColor) {
+ this.iconColor = ColorHolder.fromColor(iconColor);
+ return this;
+ }
+
+ public SectionIconDrawerItem withIconColorRes(@ColorRes int iconColorRes) {
+ this.iconColor = ColorHolder.fromColorRes(iconColorRes);
+ return this;
+ }
+
+ public SectionIconDrawerItem withIconTintingEnabled(boolean iconTintingEnabled) {
+ this.iconTinted = iconTintingEnabled;
+ return this;
+ }
+
+ @Deprecated
+ public SectionIconDrawerItem withIconTinted(boolean iconTinted) {
+ this.iconTinted = iconTinted;
+ return this;
+ }
+
+ public boolean isIconTinted() {
+ return iconTinted;
+ }
+
+ public ImageHolder getIcon() {
+ return icon;
+ }
+
+ public ColorHolder getIconColor() {
+ return iconColor;
+ }
+
+ public int getIconColor(Context ctx) {
+ return ColorHolder.color(getIconColor(), ctx, R.attr.material_drawer_primary_icon, R.color.material_drawer_primary_icon);
+ }
+
+ @Override
+ public void bindView(ViewHolder viewHolder) {
+ Context ctx = viewHolder.itemView.getContext();
+
+ //set the identifier from the drawerItem here. It can be used to run tests
+ viewHolder.itemView.setId(hashCode());
+
+ //define this item to be not clickable nor enabled
+ viewHolder.view.setClickable(false);
+ viewHolder.view.setEnabled(false);
+
+ //define the text color
+ viewHolder.name.setTextColor(ColorHolder.color(getTextColor(), ctx, R.attr.material_drawer_secondary_text, R.color.material_drawer_secondary_text));
+
+ //set the text for the name
+ StringHolder.applyTo(this.getName(), viewHolder.name);
+
+ //define the typeface for our textViews
+ if (getTypeface() != null) {
+ viewHolder.name.setTypeface(getTypeface());
+ }
+
+ //hide the divider if we do not need one
+ if (this.hasDivider()) {
+ viewHolder.divider.setVisibility(View.VISIBLE);
+ } else {
+ viewHolder.divider.setVisibility(View.GONE);
+ }
+
+ //set the color for the divider
+ viewHolder.divider.setBackgroundColor(UIUtils.getThemeColorFromAttrOrRes(ctx, R.attr.material_drawer_divider, R.color.material_drawer_divider));
+
+ viewHolder.icon.setImageDrawable(getIcon().decideIcon(ctx, ctx.getResources().getColor(R.color.material_drawer_secondary_text), true, 0));
+
+ //call the onPostBindView method to trigger post bind view actions (like the listener to modify the item if required)
+ onPostBindView(this, viewHolder.itemView);
+ }
+
+ @Override
+ public ViewHolderFactory getFactory() {
+ return new ItemFactory();
+ }
+
+ public static class ItemFactory implements ViewHolderFactory {
+ public ViewHolder create(View v) {
+ return new ViewHolder(v);
+ }
+ }
+
+ protected static class ViewHolder extends RecyclerView.ViewHolder {
+ private View view;
+ private View divider;
+ private TextView name;
+ protected ImageView icon;
+
+ private ViewHolder(View view) {
+ super(view);
+ this.view = view;
+ this.divider = view.findViewById(R.id.material_drawer_divider);
+ this.name = (TextView) view.findViewById(R.id.material_drawer_name);
+ this.icon = (ImageView) view.findViewById(R.id.material_drawer_icon);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java
index 80f1ce084..ca20250e5 100644
--- a/Habitica/src/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java
+++ b/Habitica/src/com/habitrpg/android/habitica/ui/fragments/tasks/TasksFragment.java
@@ -481,13 +481,12 @@ public class TasksFragment extends BaseMainFragment implements OnCheckedChangeLi
//endregion Events
public void fillTagFilterDrawer(List tagList) {
- if (this.activity.filterDrawer != null) {
+ if (this.activity.filterDrawer != null && this.tagsHelper != null) {
this.activity.filterDrawer.removeAllItems();
this.activity.filterDrawer.addItems(
new SectionDrawerItem().withName("Filter by Tag"),
new EditTextDrawer()
);
-
for (Tag t : tagList) {
this.activity.filterDrawer.addItem(new SwitchDrawerItem()
.withName(t.getName())