diff --git a/Habitica/build.gradle b/Habitica/build.gradle
index aa27cd2c1..e4e3d461a 100644
--- a/Habitica/build.gradle
+++ b/Habitica/build.gradle
@@ -150,7 +150,7 @@ android {
buildConfigField "String", "TESTING_LEVEL", "\"production\""
resConfigs "en", "bg", "de", "en-rGB", "es", "fr", "hr-rHR", "in", "it", "iw", "ja", "ko", "lt", "nl", "pl", "pt-rBR", "pt-rPT", "ru", "tr", "zh", "zh-rTW"
- versionCode 2693
+ versionCode 2694
versionName "3.2"
}
diff --git a/Habitica/res/drawable-hdpi/task_icon_team.png b/Habitica/res/drawable-hdpi/task_icon_team.png
new file mode 100644
index 000000000..5b8c03e38
Binary files /dev/null and b/Habitica/res/drawable-hdpi/task_icon_team.png differ
diff --git a/Habitica/res/drawable-hdpi/team_info_icon.png b/Habitica/res/drawable-hdpi/team_info_icon.png
new file mode 100644
index 000000000..1f0372b42
Binary files /dev/null and b/Habitica/res/drawable-hdpi/team_info_icon.png differ
diff --git a/Habitica/res/drawable-mdpi/task_icon_team.png b/Habitica/res/drawable-mdpi/task_icon_team.png
new file mode 100644
index 000000000..cea954d3d
Binary files /dev/null and b/Habitica/res/drawable-mdpi/task_icon_team.png differ
diff --git a/Habitica/res/drawable-mdpi/team_info_icon.png b/Habitica/res/drawable-mdpi/team_info_icon.png
new file mode 100644
index 000000000..0e94b23f7
Binary files /dev/null and b/Habitica/res/drawable-mdpi/team_info_icon.png differ
diff --git a/Habitica/res/drawable-xhdpi/task_icon_team.png b/Habitica/res/drawable-xhdpi/task_icon_team.png
new file mode 100644
index 000000000..a32a12e99
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/task_icon_team.png differ
diff --git a/Habitica/res/drawable-xhdpi/team_info_icon.png b/Habitica/res/drawable-xhdpi/team_info_icon.png
new file mode 100644
index 000000000..a28ae3e66
Binary files /dev/null and b/Habitica/res/drawable-xhdpi/team_info_icon.png differ
diff --git a/Habitica/res/drawable-xxhdpi/task_icon_team.png b/Habitica/res/drawable-xxhdpi/task_icon_team.png
new file mode 100644
index 000000000..9e566f7c0
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/task_icon_team.png differ
diff --git a/Habitica/res/drawable-xxhdpi/team_info_icon.png b/Habitica/res/drawable-xxhdpi/team_info_icon.png
new file mode 100644
index 000000000..8145895e4
Binary files /dev/null and b/Habitica/res/drawable-xxhdpi/team_info_icon.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/task_icon_team.png b/Habitica/res/drawable-xxxhdpi/task_icon_team.png
new file mode 100644
index 000000000..ef9b0acf5
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/task_icon_team.png differ
diff --git a/Habitica/res/drawable-xxxhdpi/team_info_icon.png b/Habitica/res/drawable-xxxhdpi/team_info_icon.png
new file mode 100644
index 000000000..8982e1eac
Binary files /dev/null and b/Habitica/res/drawable-xxxhdpi/team_info_icon.png differ
diff --git a/Habitica/res/layout/task_main_content.xml b/Habitica/res/layout/task_main_content.xml
index 3b9393af1..95c8a1c53 100644
--- a/Habitica/res/layout/task_main_content.xml
+++ b/Habitica/res/layout/task_main_content.xml
@@ -57,6 +57,18 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
+
+
+
+
+
+
+
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 41d36443a..99a8add56 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -1137,4 +1137,5 @@
6 month one-time subscription
12 month one-time subscription
Teams
+ Team Information
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/UserRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/UserRepository.kt
index b837bea32..2cd201072 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/UserRepository.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/UserRepository.kt
@@ -22,15 +22,15 @@ interface UserRepository : BaseRepository {
fun getUser(): Flowable
fun getUser(userID: String): Flowable
- fun updateUser(user: User?, updateData: Map): Flowable
- fun updateUser(user: User?, key: String, value: Any): Flowable
+ fun updateUser(updateData: Map): Flowable
+ fun updateUser(key: String, value: Any): Flowable
fun retrieveUser(withTasks: Boolean): Flowable
fun retrieveUser(withTasks: Boolean = false, forced: Boolean = false, overrideExisting: Boolean = false): Flowable
fun revive(user: User): Flowable
- fun resetTutorial(user: User?)
+ fun resetTutorial()
fun sleep(user: User): Flowable
@@ -49,7 +49,7 @@ interface UserRepository : BaseRepository {
fun changeClass(selectedClass: String): Flowable
fun unlockPath(user: User?, customization: Customization): Flowable
- fun unlockPath(user: User, set: CustomizationSet): Flowable
+ fun unlockPath(set: CustomizationSet): Flowable
fun runCron(tasks: MutableList)
fun runCron()
@@ -60,7 +60,7 @@ interface UserRepository : BaseRepository {
fun changeCustomDayStart(dayStartTime: Int): Flowable
- fun updateLanguage(user: User?, languageCode: String): Flowable
+ fun updateLanguage(languageCode: String): Flowable
fun resetAccount(): Flowable
fun deleteAccount(password: String): Flowable
@@ -72,7 +72,7 @@ interface UserRepository : BaseRepository {
fun updatePassword(oldPassword: String, newPassword: String, newPasswordConfirmation: String): Flowable
fun verifyUsername(username: String): Flowable
- fun allocatePoint(user: User?, stat: String): Flowable
+ fun allocatePoint(stat: String): Flowable
fun bulkAllocatePoints(user: User?, strength: Int, intelligence: Int, constitution: Int, perception: Int): Flowable
fun useCustomization(user: User?, type: String, category: String?, identifier: String): Flowable
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt
index af89017cf..bac6acff1 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/implementation/UserRepositoryImpl.kt
@@ -35,14 +35,16 @@ class UserRepositoryImpl(localRepository: UserLocalRepository, apiClient: ApiCli
override fun getUser(userID: String): Flowable = localRepository.getUser(userID)
- override fun updateUser(user: User?, updateData: Map): Flowable {
- return apiClient.updateUser(updateData).map { newUser -> mergeUser(user, newUser) }
+ override fun updateUser(updateData: Map): Flowable {
+ return Flowable.zip(apiClient.updateUser(updateData),
+ localRepository.getUser(userID).firstElement().toFlowable(),
+ { newUser, user -> mergeUser(user, newUser) })
}
- override fun updateUser(user: User?, key: String, value: Any): Flowable {
+ override fun updateUser(key: String, value: Any): Flowable {
val updateData = HashMap()
updateData[key] = value
- return updateUser(user, updateData)
+ return updateUser(updateData)
}
override fun retrieveUser(withTasks: Boolean): Flowable =
@@ -70,7 +72,7 @@ class UserRepositoryImpl(localRepository: UserLocalRepository, apiClient: ApiCli
val timeZone = calendar.timeZone
val offset = -TimeUnit.MINUTES.convert(timeZone.getOffset(calendar.timeInMillis).toLong(), TimeUnit.MILLISECONDS)
if (offset.toInt() != user.preferences?.timezoneOffset ?: 0) {
- return@flatMap updateUser(user, "preferences.timezoneOffset", offset.toString())
+ return@flatMap updateUser("preferences.timezoneOffset", offset.toString())
} else {
return@flatMap Flowable.just(user)
}
@@ -83,7 +85,7 @@ class UserRepositoryImpl(localRepository: UserLocalRepository, apiClient: ApiCli
override fun revive(user: User): Flowable =
apiClient.revive().map { newUser -> mergeUser(user, newUser) }
- override fun resetTutorial(user: User?) {
+ override fun resetTutorial() {
localRepository.getTutorialSteps()
.firstElement()
.map