mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-18 19:59:00 +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"/>
|
||||
</LinearLayout>
|
||||
<LinearLayout
|
||||
android:id="@+id/bottomView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="30dp"
|
||||
android:layout_height="28dp"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical"
|
||||
tools:background="?colorPrimaryDark"
|
||||
|
|
@ -73,4 +72,28 @@
|
|||
tools:text="+1"
|
||||
/>
|
||||
</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>
|
||||
|
|
@ -218,7 +218,7 @@ interface ApiService {
|
|||
fun seenMessages(@Path("gid") groupId: String): Flowable<HabitResponse<Void>>
|
||||
|
||||
@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")
|
||||
fun rejectGroupInvite(@Path("gid") groupId: String): Flowable<HabitResponse<Void>>
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ interface ApiClient {
|
|||
|
||||
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>
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ interface SocialRepository : BaseRepository {
|
|||
fun getGroupMembers(id: String): Flowable<out 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 getMemberWithUsername(username: String?): Flowable<Member>
|
||||
|
|
|
|||
|
|
@ -554,7 +554,7 @@ class ApiClientImpl // private OnHabitsAPIResult mResultListener;
|
|||
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())
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -241,7 +241,7 @@ class SocialRepositoryImpl(localRepository: SocialLocalRepository, apiClient: Ap
|
|||
.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> {
|
||||
return if (userId == null) {
|
||||
|
|
|
|||
|
|
@ -280,6 +280,7 @@ class NavigationDrawerFragment : DialogFragment() {
|
|||
it.quest?.key ?: ""
|
||||
}
|
||||
.flatMapMaybe { inventoryRepository.getQuestContent(it).firstElement() }
|
||||
.filter { (it.boss?.hp ?: 0) > 0 }
|
||||
.subscribe(
|
||||
{
|
||||
questContent = it
|
||||
|
|
|
|||
|
|
@ -112,23 +112,24 @@ class GuildDetailFragment : BaseFragment<FragmentGuildDetailBinding>() {
|
|||
if (it.resultCode == Activity.RESULT_OK) {
|
||||
val inviteData = HashMap<String, Any>()
|
||||
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>>()
|
||||
emails?.forEach { email ->
|
||||
emails.forEach { email ->
|
||||
val invite = HashMap<String, String>()
|
||||
invite["name"] = ""
|
||||
invite["email"] = email
|
||||
invites.add(invite)
|
||||
}
|
||||
inviteData["emails"] = invites
|
||||
} else {
|
||||
val userIDs = it.data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
|
||||
val invites = mutableListOf<String>()
|
||||
userIDs?.forEach { invites.add(it) }
|
||||
}
|
||||
val userIDs = it.data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
|
||||
if (userIDs != null && userIDs.isNotEmpty()) {
|
||||
val invites = ArrayList<String>()
|
||||
userIDs.forEach { invites.add(it) }
|
||||
inviteData["usernames"] = invites
|
||||
}
|
||||
viewModel?.inviteToGroup(inviteData)
|
||||
viewModel.inviteToGroup(inviteData)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ class QuestMenuView : LinearLayout {
|
|||
orientation = VERTICAL
|
||||
|
||||
binding.heartIconView.setImageBitmap(HabiticaIconsHelper.imageOfHeartDarkBg())
|
||||
binding.rageIconView.setImageBitmap(HabiticaIconsHelper.imageOfRage())
|
||||
|
||||
binding.pendingDamageIconView.setImageBitmap(HabiticaIconsHelper.imageOfDamage())
|
||||
|
||||
|
|
@ -50,16 +51,21 @@ class QuestMenuView : LinearLayout {
|
|||
|
||||
fun configure(quest: Quest) {
|
||||
binding.healthBarView.setCurrentValue(quest.progress?.hp ?: 0.0)
|
||||
binding.rageBarView.setCurrentValue(quest.progress?.rage ?: 0.0)
|
||||
}
|
||||
|
||||
fun configure(questContent: QuestContent) {
|
||||
this.questContent = questContent
|
||||
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.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) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue