diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java b/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java index ac803aff5..c0c6af461 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabitDatabase.java @@ -7,5 +7,5 @@ public class HabitDatabase { public static final String NAME = "Habitica"; - public static final int VERSION = 22; + public static final int VERSION = 23; } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.java index e699a10e8..8d82c4c01 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/ChatRecyclerViewAdapter.java @@ -14,6 +14,7 @@ import com.habitrpg.android.habitica.ui.helpers.DataBindingUtils; import com.habitrpg.android.habitica.ui.helpers.EmojiKeyboard; import com.habitrpg.android.habitica.ui.helpers.ViewHelper; import com.magicmicky.habitrpgwrapper.lib.models.ChatMessage; +import com.magicmicky.habitrpgwrapper.lib.models.HabitRPGUser; import net.pherth.android.emoji_library.EmojiEditText; import net.pherth.android.emoji_library.EmojiTextView; @@ -55,6 +56,7 @@ public class ChatRecyclerViewAdapter extends RecyclerView.Adapter messages, String uuid, String groupId, boolean isTavern) { this.messages = messages; @@ -68,6 +70,10 @@ public class ChatRecyclerViewAdapter extends RecyclerView.Adapter messages) { this.messages = messages; this.notifyDataSetChanged(); @@ -238,14 +244,22 @@ public class ChatRecyclerViewAdapter extends RecyclerView.Adapter CONTRIBUTOR_COLOR_DICT; - - static { - CONTRIBUTOR_COLOR_DICT = new HashMap<>(); - CONTRIBUTOR_COLOR_DICT.put(0, R.color.contributor_0); - CONTRIBUTOR_COLOR_DICT.put(1, R.color.contributor_1); - CONTRIBUTOR_COLOR_DICT.put(2, R.color.contributor_2); - CONTRIBUTOR_COLOR_DICT.put(3, R.color.contributor_3); - CONTRIBUTOR_COLOR_DICT.put(4, R.color.contributor_4); - CONTRIBUTOR_COLOR_DICT.put(5, R.color.contributor_5); - CONTRIBUTOR_COLOR_DICT.put(6, R.color.contributor_6); - CONTRIBUTOR_COLOR_DICT.put(7, R.color.contributor_7); - CONTRIBUTOR_COLOR_DICT.put(8, R.color.contributor_mod); - CONTRIBUTOR_COLOR_DICT.put(9, R.color.contributor_staff); - } - - public String id; public String text; @@ -50,13 +33,15 @@ public class ChatMessage { public String user; + public String sent; + public int getContributorColor() { int rColor = android.R.color.black; if (contributor != null) { - if (CONTRIBUTOR_COLOR_DICT.containsKey(contributor.level)) { - rColor = CONTRIBUTOR_COLOR_DICT.get(contributor.level); + if (ContributorInfo.CONTRIBUTOR_COLOR_DICT.containsKey(contributor.level)) { + rColor = ContributorInfo.CONTRIBUTOR_COLOR_DICT.get(contributor.level); } } diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ContributorInfo.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ContributorInfo.java new file mode 100644 index 000000000..27c5a4c01 --- /dev/null +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/models/ContributorInfo.java @@ -0,0 +1,105 @@ +package com.magicmicky.habitrpgwrapper.lib.models; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; +import com.habitrpg.android.habitica.HabitDatabase; +import com.habitrpg.android.habitica.R; +import com.raizlabs.android.dbflow.annotation.Column; +import com.raizlabs.android.dbflow.annotation.NotNull; +import com.raizlabs.android.dbflow.annotation.PrimaryKey; +import com.raizlabs.android.dbflow.annotation.Table; +import com.raizlabs.android.dbflow.structure.BaseModel; + +import java.util.HashMap; + +/** + * Created by keithholliday on 7/6/16. + */ +@Table(databaseName = HabitDatabase.NAME) +public class ContributorInfo extends BaseModel { + + public static final HashMap CONTRIBUTOR_COLOR_DICT; + + static { + CONTRIBUTOR_COLOR_DICT = new HashMap<>(); + CONTRIBUTOR_COLOR_DICT.put(0, R.color.contributor_0); + CONTRIBUTOR_COLOR_DICT.put(1, R.color.contributor_1); + CONTRIBUTOR_COLOR_DICT.put(2, R.color.contributor_2); + CONTRIBUTOR_COLOR_DICT.put(3, R.color.contributor_3); + CONTRIBUTOR_COLOR_DICT.put(4, R.color.contributor_4); + CONTRIBUTOR_COLOR_DICT.put(5, R.color.contributor_5); + CONTRIBUTOR_COLOR_DICT.put(6, R.color.contributor_6); + CONTRIBUTOR_COLOR_DICT.put(7, R.color.contributor_7); + CONTRIBUTOR_COLOR_DICT.put(8, R.color.contributor_mod); + CONTRIBUTOR_COLOR_DICT.put(9, R.color.contributor_staff); + } + + @Column + @PrimaryKey + @NotNull + public String user_id; + + @SerializedName("admin") + @Expose + private boolean admin; + + @SerializedName("contributions") + @Expose + private String contributions; + + @SerializedName("level") + @Expose + private int level; + + @SerializedName("text") + @Expose + private String text; + + public void setAdmin(Boolean admin) { + this.admin = admin; + } + + public Boolean getAdmin() { + return this.admin; + } + + public void setContributions(String contributions) { + this.contributions = contributions; + } + + public String getContributions() { + return this.contributions; + } + + public void setLevel(int level) { + this.level = level; + } + + public int getLevel() { + return this.level; + } + + public void setText(String text) { + this.text = text; + } + + public String getText() { + return this.text; + } + + public int getContributorColor() { + int rColor = android.R.color.black; + + + if (CONTRIBUTOR_COLOR_DICT.containsKey(this.level)) { + rColor = CONTRIBUTOR_COLOR_DICT.get(this.level); + } + + return rColor; + } + + public int getContributorForegroundColor() { + int rColor = android.R.color.white; + return rColor; + } +} 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 42014f3cf..27851422c 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 @@ -86,6 +86,12 @@ public class HabitRPGUser extends BaseModel { foreignColumnName = "user_id")}) private Flags flags; + @Column + @ForeignKey(references = {@ForeignKeyReference(columnName = "contributor_id", + columnType = String.class, + foreignColumnName = "user_id")}) + private ContributorInfo contributor; + private Purchases purchased; private TasksOrder tasksOrder; @@ -131,6 +137,15 @@ public class HabitRPGUser extends BaseModel { this.profile = profile; } + public ContributorInfo getContributor() { + return contributor; + } + + public void setContributor(ContributorInfo contributor) { + this.contributor = contributor; + } + + public UserParty getParty() { return party; } @@ -277,6 +292,7 @@ public class HabitRPGUser extends BaseModel { items.user_id = id; authentication.user_id = id; flags.user_id = id; + contributor.user_id = id; ArrayList allTasks = new ArrayList(); if (dailys != null) { diff --git a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ChatMessageDeserializer.java b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ChatMessageDeserializer.java index 0e5193c3e..d6a4a3dbc 100644 --- a/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ChatMessageDeserializer.java +++ b/Habitica/src/main/java/com/magicmicky/habitrpgwrapper/lib/utils/ChatMessageDeserializer.java @@ -35,9 +35,11 @@ public class ChatMessageDeserializer implements JsonDeserializer { if (obj.has("flagCount")) { message.flagCount = obj.get("flagCount").getAsInt(); } + if (obj.has("uuid")) { message.uuid = obj.get("uuid").getAsString(); } + if (obj.has("contributor")) { if (!obj.get("contributor").isJsonNull()) { if (obj.get("contributor").isJsonObject()) { @@ -49,13 +51,19 @@ public class ChatMessageDeserializer implements JsonDeserializer { } } } + if (obj.has("backer")) { message.backer = context.deserialize(obj.get("backer"), Backer.class); } + if (obj.has("user")) { message.user = obj.get("user").getAsString(); } + if (obj.has("sent")) { + message.sent = obj.get("sent").getAsString(); + } + return message; } }