mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-13 17:51:57 +00:00
Fix inviting to guilds
This commit is contained in:
parent
9e3ba67f13
commit
66af24813a
9 changed files with 49 additions and 18 deletions
|
|
@ -36,9 +36,8 @@
|
||||||
android:textSize="12sp"/>
|
android:textSize="12sp"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/bottomView"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="30dp"
|
android:layout_height="28dp"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
tools:background="?colorPrimaryDark"
|
tools:background="?colorPrimaryDark"
|
||||||
|
|
@ -73,4 +72,28 @@
|
||||||
tools:text="+1"
|
tools:text="+1"
|
||||||
/>
|
/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/rage_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="28dp"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
tools:background="?colorPrimaryDark"
|
||||||
|
android:paddingStart="@dimen/spacing_medium"
|
||||||
|
android:paddingEnd="@dimen/spacing_large">
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/rageIconView"
|
||||||
|
android:layout_width="@dimen/icon_size"
|
||||||
|
android:layout_height="@dimen/icon_size"
|
||||||
|
android:layout_marginEnd="@dimen/spacing_small"/>
|
||||||
|
<com.habitrpg.android.habitica.ui.views.HabiticaProgressBar
|
||||||
|
android:id="@+id/rageBarView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="8dp"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:paddingTop="@dimen/spacing_medium"
|
||||||
|
android:paddingBottom="@dimen/spacing_small"
|
||||||
|
app:barForegroundColor="@color/yellow_50"
|
||||||
|
app:barBackgroundColor="@color/content_15_alpha"/>
|
||||||
|
</LinearLayout>
|
||||||
</merge>
|
</merge>
|
||||||
|
|
@ -218,7 +218,7 @@ interface ApiService {
|
||||||
fun seenMessages(@Path("gid") groupId: String): Flowable<HabitResponse<Void>>
|
fun seenMessages(@Path("gid") groupId: String): Flowable<HabitResponse<Void>>
|
||||||
|
|
||||||
@POST("groups/{gid}/invite")
|
@POST("groups/{gid}/invite")
|
||||||
fun inviteToGroup(@Path("gid") groupId: String, @Body inviteData: Map<String, Any>): Flowable<HabitResponse<Void>>
|
fun inviteToGroup(@Path("gid") groupId: String, @Body inviteData: Map<String, Any>): Flowable<HabitResponse<List<Void>>>
|
||||||
|
|
||||||
@POST("groups/{gid}/reject-invite")
|
@POST("groups/{gid}/reject-invite")
|
||||||
fun rejectGroupInvite(@Path("gid") groupId: String): Flowable<HabitResponse<Void>>
|
fun rejectGroupInvite(@Path("gid") groupId: String): Flowable<HabitResponse<Void>>
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ interface ApiClient {
|
||||||
|
|
||||||
fun seenMessages(groupId: String): Flowable<Void>
|
fun seenMessages(groupId: String): Flowable<Void>
|
||||||
|
|
||||||
fun inviteToGroup(groupId: String, inviteData: Map<String, Any>): Flowable<Void>
|
fun inviteToGroup(groupId: String, inviteData: Map<String, Any>): Flowable<List<Void>>
|
||||||
|
|
||||||
fun rejectGroupInvite(groupId: String): Flowable<Void>
|
fun rejectGroupInvite(groupId: String): Flowable<Void>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ interface SocialRepository : BaseRepository {
|
||||||
fun getGroupMembers(id: String): Flowable<out List<Member>>
|
fun getGroupMembers(id: String): Flowable<out List<Member>>
|
||||||
fun retrieveGroupMembers(id: String, includeAllPublicFields: Boolean): Flowable<List<Member>>
|
fun retrieveGroupMembers(id: String, includeAllPublicFields: Boolean): Flowable<List<Member>>
|
||||||
|
|
||||||
fun inviteToGroup(id: String, inviteData: Map<String, Any>): Flowable<Void>
|
fun inviteToGroup(id: String, inviteData: Map<String, Any>): Flowable<List<Void>>
|
||||||
|
|
||||||
fun getMember(userId: String?): Flowable<Member>
|
fun getMember(userId: String?): Flowable<Member>
|
||||||
fun getMemberWithUsername(username: String?): Flowable<Member>
|
fun getMemberWithUsername(username: String?): Flowable<Member>
|
||||||
|
|
|
||||||
|
|
@ -554,7 +554,7 @@ class ApiClientImpl // private OnHabitsAPIResult mResultListener;
|
||||||
return apiService.seenMessages(groupId).compose(configureApiCallObserver())
|
return apiService.seenMessages(groupId).compose(configureApiCallObserver())
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun inviteToGroup(groupId: String, inviteData: Map<String, Any>): Flowable<Void> {
|
override fun inviteToGroup(groupId: String, inviteData: Map<String, Any>): Flowable<List<Void>> {
|
||||||
return apiService.inviteToGroup(groupId, inviteData).compose(configureApiCallObserver())
|
return apiService.inviteToGroup(groupId, inviteData).compose(configureApiCallObserver())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -241,7 +241,7 @@ class SocialRepositoryImpl(localRepository: SocialLocalRepository, apiClient: Ap
|
||||||
.doOnNext { members -> localRepository.saveGroupMembers(id, members) }
|
.doOnNext { members -> localRepository.saveGroupMembers(id, members) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun inviteToGroup(id: String, inviteData: Map<String, Any>): Flowable<Void> = apiClient.inviteToGroup(id, inviteData)
|
override fun inviteToGroup(id: String, inviteData: Map<String, Any>): Flowable<List<Void>> = apiClient.inviteToGroup(id, inviteData)
|
||||||
|
|
||||||
override fun getMember(userId: String?): Flowable<Member> {
|
override fun getMember(userId: String?): Flowable<Member> {
|
||||||
return if (userId == null) {
|
return if (userId == null) {
|
||||||
|
|
|
||||||
|
|
@ -280,6 +280,7 @@ class NavigationDrawerFragment : DialogFragment() {
|
||||||
it.quest?.key ?: ""
|
it.quest?.key ?: ""
|
||||||
}
|
}
|
||||||
.flatMapMaybe { inventoryRepository.getQuestContent(it).firstElement() }
|
.flatMapMaybe { inventoryRepository.getQuestContent(it).firstElement() }
|
||||||
|
.filter { (it.boss?.hp ?: 0) > 0 }
|
||||||
.subscribe(
|
.subscribe(
|
||||||
{
|
{
|
||||||
questContent = it
|
questContent = it
|
||||||
|
|
|
||||||
|
|
@ -112,23 +112,24 @@ class GuildDetailFragment : BaseFragment<FragmentGuildDetailBinding>() {
|
||||||
if (it.resultCode == Activity.RESULT_OK) {
|
if (it.resultCode == Activity.RESULT_OK) {
|
||||||
val inviteData = HashMap<String, Any>()
|
val inviteData = HashMap<String, Any>()
|
||||||
inviteData["inviter"] = viewModel?.user?.value?.profile?.name ?: ""
|
inviteData["inviter"] = viewModel?.user?.value?.profile?.name ?: ""
|
||||||
if (it.data?.getBooleanExtra(GroupInviteActivity.IS_EMAIL_KEY, false) == true) {
|
val emails = it.data?.getStringArrayExtra(GroupInviteActivity.EMAILS_KEY)
|
||||||
val emails = it.data?.getStringArrayExtra(GroupInviteActivity.EMAILS_KEY)
|
if (emails != null && emails.isNotEmpty()) {
|
||||||
val invites = ArrayList<HashMap<String, String>>()
|
val invites = ArrayList<HashMap<String, String>>()
|
||||||
emails?.forEach { email ->
|
emails.forEach { email ->
|
||||||
val invite = HashMap<String, String>()
|
val invite = HashMap<String, String>()
|
||||||
invite["name"] = ""
|
invite["name"] = ""
|
||||||
invite["email"] = email
|
invite["email"] = email
|
||||||
invites.add(invite)
|
invites.add(invite)
|
||||||
}
|
}
|
||||||
inviteData["emails"] = invites
|
inviteData["emails"] = invites
|
||||||
} else {
|
}
|
||||||
val userIDs = it.data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
|
val userIDs = it.data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
|
||||||
val invites = mutableListOf<String>()
|
if (userIDs != null && userIDs.isNotEmpty()) {
|
||||||
userIDs?.forEach { invites.add(it) }
|
val invites = ArrayList<String>()
|
||||||
|
userIDs.forEach { invites.add(it) }
|
||||||
inviteData["usernames"] = invites
|
inviteData["usernames"] = invites
|
||||||
}
|
}
|
||||||
viewModel?.inviteToGroup(inviteData)
|
viewModel.inviteToGroup(inviteData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class QuestMenuView : LinearLayout {
|
||||||
orientation = VERTICAL
|
orientation = VERTICAL
|
||||||
|
|
||||||
binding.heartIconView.setImageBitmap(HabiticaIconsHelper.imageOfHeartDarkBg())
|
binding.heartIconView.setImageBitmap(HabiticaIconsHelper.imageOfHeartDarkBg())
|
||||||
|
binding.rageIconView.setImageBitmap(HabiticaIconsHelper.imageOfRage())
|
||||||
|
|
||||||
binding.pendingDamageIconView.setImageBitmap(HabiticaIconsHelper.imageOfDamage())
|
binding.pendingDamageIconView.setImageBitmap(HabiticaIconsHelper.imageOfDamage())
|
||||||
|
|
||||||
|
|
@ -50,16 +51,21 @@ class QuestMenuView : LinearLayout {
|
||||||
|
|
||||||
fun configure(quest: Quest) {
|
fun configure(quest: Quest) {
|
||||||
binding.healthBarView.setCurrentValue(quest.progress?.hp ?: 0.0)
|
binding.healthBarView.setCurrentValue(quest.progress?.hp ?: 0.0)
|
||||||
|
binding.rageBarView.setCurrentValue(quest.progress?.rage ?: 0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun configure(questContent: QuestContent) {
|
fun configure(questContent: QuestContent) {
|
||||||
this.questContent = questContent
|
this.questContent = questContent
|
||||||
binding.healthBarView.setMaxValue(questContent.boss?.hp?.toDouble() ?: 0.0)
|
binding.healthBarView.setMaxValue(questContent.boss?.hp?.toDouble() ?: 0.0)
|
||||||
binding.bottomView.setBackgroundColor(questContent.colors?.darkColor ?: 0)
|
|
||||||
//binding.bossArtView.setBackgroundColor(questContent.colors?.mediumColor ?: 0)
|
|
||||||
//DataBindingUtils.loadImage(binding.bossArtView, "quest_" + questContent.key)
|
|
||||||
binding.bossNameView.text = questContent.boss?.name
|
binding.bossNameView.text = questContent.boss?.name
|
||||||
binding.typeTextView.text = context.getString(R.string.boss_quest)
|
binding.typeTextView.text = context.getString(R.string.boss_quest)
|
||||||
|
|
||||||
|
if (questContent.boss?.hasRage == true) {
|
||||||
|
binding.rageView.visibility = View.VISIBLE
|
||||||
|
binding.rageBarView.setMaxValue(questContent.boss?.rage?.value ?: 0.0)
|
||||||
|
} else {
|
||||||
|
binding.rageView.visibility = View.GONE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun configure(user: User) {
|
fun configure(user: User) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue