mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-17 11:19:01 +00:00
add option to link users to party wanted guild from party screen. Fixes #1126
This commit is contained in:
parent
6a472db5a6
commit
fbeaef460c
8 changed files with 34 additions and 6 deletions
|
|
@ -211,7 +211,8 @@
|
|||
app:argType="string" />
|
||||
<argument
|
||||
android:name="username"
|
||||
app:argType="string" />
|
||||
app:argType="string"
|
||||
app:nullable="true" />
|
||||
</fragment>
|
||||
<fragment
|
||||
android:id="@+id/petDetailRecyclerFragment"
|
||||
|
|
|
|||
|
|
@ -762,6 +762,7 @@
|
|||
<string name="no_party_description">Take on quests with friends or on your own. Battle monsters, create Challenges, and help yourself stay accountable through Parties.</string>
|
||||
<string name="no_party_title">Play Habitica in a Party</string>
|
||||
<string name="join_party_description">Give a Party member the username found below and they can send you an invite</string>
|
||||
<string name="join_party_description_guild">Give the username below to a friend or head to the %s to meet potential comrades!e</string>
|
||||
<string name="join_party_description_id">Give them your User ID or have them scan your QR code while inviting</string>
|
||||
<string name="join_party_title">Want to join a party?</string>
|
||||
<string name="create_party_website">Open website to create party</string>
|
||||
|
|
|
|||
|
|
@ -32,5 +32,9 @@
|
|||
<key>lastVersionCode</key>
|
||||
<value>0</value>
|
||||
</entry>
|
||||
<entry>
|
||||
<key>noPartyLinkPartyGuild</key>
|
||||
<value>false</value>
|
||||
</entry>
|
||||
</defaultsMap>
|
||||
<!-- END xml_defaults -->
|
||||
|
|
@ -33,7 +33,7 @@ class NotificationOpenHandler {
|
|||
if (userID?.isNotEmpty() == true) {
|
||||
return
|
||||
}
|
||||
MainNavigationController.navigate(R.id.inboxFragment, bundleOf("userId" to userID))
|
||||
MainNavigationController.navigate(R.id.inboxMessageListFragment, bundleOf("userID" to userID))
|
||||
}
|
||||
|
||||
private fun openPartyScreen() {
|
||||
|
|
@ -44,14 +44,14 @@ class NotificationOpenHandler {
|
|||
if (partyId?.isNotEmpty() == true || questKey?.isNotEmpty() == true) {
|
||||
return
|
||||
}
|
||||
MainNavigationController.navigate(R.id.inboxFragment, bundleOf("partyId" to partyId, "questKey" to questKey))
|
||||
MainNavigationController.navigate(R.id.questDetailFragment, bundleOf("partyID" to partyId, "questKey" to questKey))
|
||||
}
|
||||
|
||||
private fun openGuildDetailScreen(groupID: String) {
|
||||
if (groupID.isEmpty()) {
|
||||
return
|
||||
}
|
||||
MainNavigationController.navigate(R.id.guildFragment, bundleOf("groupId" to groupID))
|
||||
MainNavigationController.navigate(R.id.guildFragment, bundleOf("groupID" to groupID))
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -63,7 +63,7 @@ class NotificationOpenHandler {
|
|||
when (type) {
|
||||
"party" -> MainNavigationController.navigate(R.id.partyFragment)
|
||||
"tavern" -> MainNavigationController.navigate(R.id.tavernFragment)
|
||||
"guild" -> MainNavigationController.navigate(R.id.guildFragment, bundleOf("groupId" to groupID))
|
||||
"guild" -> MainNavigationController.navigate(R.id.guildFragment, bundleOf("groupID" to groupID))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,4 +52,8 @@ class RemoteConfigManager {
|
|||
fun lastVersionCode(): Long {
|
||||
return remoteConfig.getLong("lastVersionCode")
|
||||
}
|
||||
|
||||
fun noPartyLinkPartyGuild(): Boolean {
|
||||
return remoteConfig.getBoolean("noPartyLinkPartyGuild")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ import androidx.core.content.edit
|
|||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import com.facebook.drawee.view.SimpleDraweeView
|
||||
import com.google.firebase.analytics.FirebaseAnalytics
|
||||
import com.google.firebase.perf.FirebasePerformance
|
||||
import com.habitrpg.android.habitica.HabiticaBaseApplication
|
||||
import com.habitrpg.android.habitica.R
|
||||
|
|
@ -646,6 +647,7 @@ open class MainActivity : BaseActivity(), TutorialView.OnTutorialReaction {
|
|||
if (hostConfig.hasAuthentication()) {
|
||||
this.userRepository.retrieveUser(true)
|
||||
.doOnNext { user1 ->
|
||||
FirebaseAnalytics.getInstance(this).setUserProperty("has_party", if (user1.party?.id?.isNotEmpty() == true) "true" else "false")
|
||||
pushNotificationManager.setUser(user1)
|
||||
pushNotificationManager.addPushDeviceUsingStoredToken()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,15 +9,21 @@ import android.graphics.Bitmap
|
|||
import android.graphics.Shader
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.os.Bundle
|
||||
import android.text.Html
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.os.bundleOf
|
||||
import com.google.firebase.analytics.FirebaseAnalytics
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.components.AppComponent
|
||||
import com.habitrpg.android.habitica.data.SocialRepository
|
||||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.extensions.notNull
|
||||
import com.habitrpg.android.habitica.helpers.MainNavigationController
|
||||
import com.habitrpg.android.habitica.helpers.RemoteConfigManager
|
||||
import com.habitrpg.android.habitica.helpers.RxErrorHandler
|
||||
import com.habitrpg.android.habitica.models.invitations.PartyInvite
|
||||
import com.habitrpg.android.habitica.models.members.Member
|
||||
|
|
@ -42,6 +48,8 @@ class GroupInformationFragment : BaseFragment() {
|
|||
lateinit var socialRepository: SocialRepository
|
||||
@Inject
|
||||
lateinit var userRepository: UserRepository
|
||||
@Inject
|
||||
lateinit var configManager: RemoteConfigManager
|
||||
|
||||
var group: Group? = null
|
||||
set(value) {
|
||||
|
|
@ -127,6 +135,14 @@ class GroupInformationFragment : BaseFragment() {
|
|||
|
||||
groupDescriptionView.movementMethod = LinkMovementMethod.getInstance()
|
||||
groupSummaryView.movementMethod = LinkMovementMethod.getInstance()
|
||||
|
||||
if (configManager.noPartyLinkPartyGuild()) {
|
||||
join_party_description_textview.text = MarkdownParser.parseMarkdown(getString(R.string.join_party_description_guild, "[Party Wanted Guild](https://habitica.com/groups/guild/f2db2a7f-13c5-454d-b3ee-ea1f5089e601)"))
|
||||
join_party_description_textview.setOnClickListener {
|
||||
context?.let { FirebaseAnalytics.getInstance(it).logEvent("clicked_party_wanted", null) }
|
||||
MainNavigationController.navigate(R.id.guildFragment, bundleOf("groupID" to "f2db2a7f-13c5-454d-b3ee-ea1f5089e601"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ class InboxMessageListFragment : BaseMainFragment(), androidx.swiperefreshlayout
|
|||
}
|
||||
}
|
||||
|
||||
private fun setReceivingUser(chatRoomUser: String, replyToUserUUID: String) {
|
||||
private fun setReceivingUser(chatRoomUser: String?, replyToUserUUID: String) {
|
||||
this.chatRoomUser = chatRoomUser
|
||||
this.replyToUserUUID = replyToUserUUID
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue