diff --git a/Habitica/res/layout/fragment_guild_detail.xml b/Habitica/res/layout/fragment_guild_detail.xml
index 4abd14f65..cd2ffda3f 100644
--- a/Habitica/res/layout/fragment_guild_detail.xml
+++ b/Habitica/res/layout/fragment_guild_detail.xml
@@ -23,6 +23,80 @@
tools:text="Awesome Party"
android:gravity="center"
android:layout_margin="@dimen/spacing_large" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ app:identifier="guildDescription">
diff --git a/Habitica/res/navigation/navigation.xml b/Habitica/res/navigation/navigation.xml
index e72ee6438..113db2cce 100644
--- a/Habitica/res/navigation/navigation.xml
+++ b/Habitica/res/navigation/navigation.xml
@@ -290,4 +290,7 @@
+
\ No newline at end of file
diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml
index 547a3ea51..269682ed0 100644
--- a/Habitica/res/values/strings.xml
+++ b/Habitica/res/values/strings.xml
@@ -906,4 +906,7 @@
Either a Habit, a Daily or a To-Do
Tap here to edit this into a bad habit you\'d like to quit
Or delete it from the edit screen
+ Guild Summary
+ Guild Members
+ Guild Bank
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt
index 64449c987..ffa20a5d3 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/data/local/implementation/RealmSocialLocalRepository.kt
@@ -82,22 +82,24 @@ class RealmSocialLocalRepository(realm: Realm) : RealmBaseLocalRepository(realm)
}
override fun getPublicGuilds(): Flowable> = realm.where(Group::class.java)
- .equalTo("type", "guild")
- .equalTo("privacy", "public")
- .sort("memberCount", Sort.DESCENDING)
+ .equalTo("type", "guild")
+ .equalTo("privacy", "public")
+ .notEqualTo("id", Group.TAVERN_ID)
+ .sort("memberCount", Sort.DESCENDING)
.findAll()
- .asFlowable()
- .filter { it.isLoaded }
+ .asFlowable()
+ .filter { it.isLoaded }
override fun getUserGroups(userID: String): Flowable> = realm.where(GroupMembership::class.java)
.equalTo("userID", userID)
.findAll()
.asFlowable()
.filter { it.isLoaded }
- .flatMap {
+ .flatMap {memberships ->
realm.where(Group::class.java)
.equalTo("type", "guild")
- .`in`("id", it.map {
+ .notEqualTo("id", Group.TAVERN_ID)
+ .`in`("id", memberships.map {
return@map it.groupID
}.toTypedArray())
.sort("memberCount", Sort.DESCENDING)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Group.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Group.kt
index 8fc53f7f0..a885d956f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Group.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/models/social/Group.kt
@@ -51,4 +51,9 @@ open class Group : RealmObject() {
get() {
return quest?.active ?: false
}
+
+ val gemCount: Int
+ get() {
+ return (balance * 4.0).toInt()
+ }
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
index ef82126e0..bf3d6999b 100755
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/MainActivity.kt
@@ -715,7 +715,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
val sharingIntent = Intent(Intent.ACTION_SEND)
sharingIntent.type = "*/*"
sharingIntent.putExtra(Intent.EXTRA_TEXT, event.sharedMessage)
- val f = BitmapUtils.saveToShareableFile(filesDir.toString() + "/shared_images", "share.png", event.shareImage)
+ val f = BitmapUtils.saveToShareableFile("$filesDir/shared_images", "share.png", event.shareImage)
val fileUri = FileProvider.getUriForFile(this, getString(R.string.content_provider), f)
sharingIntent.putExtra(Intent.EXTRA_STREAM, fileUri)
val resInfoList = this.packageManager.queryIntentActivities(sharingIntent, PackageManager.MATCH_DEFAULT_ONLY)
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildDetailFragment.kt
index 489a0c3df..c63781573 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildDetailFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/GuildDetailFragment.kt
@@ -8,12 +8,15 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
+import android.widget.ImageView
import android.widget.TextView
import androidx.lifecycle.Observer
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
+import com.habitrpg.android.habitica.MainNavDirections
import com.habitrpg.android.habitica.R
import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.helpers.AppConfigManager
+import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.models.members.Member
import com.habitrpg.android.habitica.models.social.Group
import com.habitrpg.android.habitica.models.user.User
@@ -25,6 +28,8 @@ import com.habitrpg.android.habitica.ui.helpers.MarkdownParser
import com.habitrpg.android.habitica.ui.helpers.bindView
import com.habitrpg.android.habitica.ui.helpers.resetViews
import com.habitrpg.android.habitica.ui.viewmodels.GroupViewModel
+import com.habitrpg.android.habitica.ui.views.HabiticaIcons
+import com.habitrpg.android.habitica.ui.views.HabiticaIconsHelper
import com.habitrpg.android.habitica.ui.views.HabiticaSnackbar
import com.habitrpg.android.habitica.ui.views.social.UsernameLabel
import javax.inject.Inject
@@ -36,7 +41,13 @@ class GuildDetailFragment : BaseFragment() {
val refreshLayout: SwipeRefreshLayout by bindView(R.id.refreshLayout)
private val guildTitleView: TextView by bindView(R.id.title_view)
+ private val guildMembersIconView: ImageView by bindView(R.id.guild_members_icon)
+ private val guildMembersTextView: TextView by bindView(R.id.guild_members_text)
+ private val guildBankIconView: ImageView by bindView(R.id.guild_bank_icon)
+ private val guildBankTextView: TextView by bindView(R.id.guild_bank_text)
+ private val guildSummaryView: TextView by bindView(R.id.guild_summary)
private val guildDescriptionView: TextView by bindView(R.id.guild_description)
+ private val leaderWrapperView: ViewGroup by bindView(R.id.leader_wrapper)
private val leaderAvatarView: AvatarView by bindView(R.id.leader_avatar_view)
private val leaderProfileNameView: UsernameLabel by bindView(R.id.leader_profile_name)
private val leaderUsernameView: TextView by bindView(R.id.leader_username)
@@ -62,7 +73,7 @@ class GuildDetailFragment : BaseFragment() {
viewModel?.getIsMemberData()?.observe(viewLifecycleOwner, Observer { updateMembership(it) })
guildDescriptionView.movementMethod = LinkMovementMethod.getInstance()
-
+ guildBankIconView.setImageBitmap(HabiticaIconsHelper.imageOfGem())
leaveGuildButton.setOnClickListener {
viewModel?.leaveGroup {
val activity = activity as? MainActivity
@@ -79,6 +90,12 @@ class GuildDetailFragment : BaseFragment() {
}
}
}
+ leaderWrapperView.setOnClickListener {
+ viewModel?.getGroupData()?.value?.leaderID?.let {leaderID ->
+ val profileDirections = MainNavDirections.openProfileActivity(leaderID)
+ MainNavigationController.navigate(profileDirections)
+ }
+ }
}
private fun setLeader(leader: Member?) {
@@ -119,6 +136,10 @@ class GuildDetailFragment : BaseFragment() {
private fun updateGuild(guild: Group?) {
guildTitleView.text = guild?.name
+ guildMembersIconView.setImageBitmap(HabiticaIcons.imageOfGuildCrestMedium((guild?.memberCount ?: 0).toFloat()))
+ guildMembersTextView.text = guild?.memberCount.toString()
+ guildBankTextView.text = guild?.gemCount.toString()
+ guildSummaryView.text = MarkdownParser.parseMarkdown(guild?.summary)
guildDescriptionView.text = MarkdownParser.parseMarkdown(guild?.description)
}