diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml
index 18ce8fb66..7f91b8e52 100644
--- a/Habitica/AndroidManifest.xml
+++ b/Habitica/AndroidManifest.xml
@@ -37,6 +37,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+ android:layout_gravity="end"/>
@@ -134,7 +134,7 @@
android:layout_height="wrap_content"
app:srcCompat="@drawable/ic_keyboard_arrow_down_black_24dp"
android:id="@+id/subscribe.listitem2.expand"
- android:layout_gravity="right"/>
+ android:layout_gravity="end"/>
+ android:layout_gravity="end"/>
+ android:layout_gravity="end"/>
+
@@ -30,6 +31,7 @@
android:id="@+id/tasksFragment"
android:name="com.habitrpg.android.habitica.ui.fragments.tasks.TasksFragment">
+
+
@@ -53,19 +56,26 @@
+ android:label="@string/sidebar.skills">
+
+
+ android:label="@string/stats">
+
+
+ android:label="@string/sidebar.tavern">
+
+
+
@@ -81,6 +91,8 @@
android:id="@+id/challengesOverviewFragment"
android:name="com.habitrpg.android.habitica.ui.fragments.social.challenges.ChallengesOverviewFragment"
android:label="@string/sidebar.challenges" >
+
+
@@ -100,11 +112,14 @@
+ android:label="@string/sidebar_items">
+
+
+
@@ -124,6 +139,7 @@
android:id="@+id/FAQOverviewFragment"
android:name="com.habitrpg.android.habitica.ui.fragments.faq.FAQOverviewFragment"
android:label="@string/sidebar_help" >
+
@@ -144,12 +160,14 @@
android:id="@+id/guildFragment"
android:name="com.habitrpg.android.habitica.ui.fragments.social.GuildFragment"
android:label="@string/guild" >
+
+ app:argType="boolean"
+ android:defaultValue="false"/>
+ tools:layout="@layout/activity_prefs">
+
+ android:label="@string/pets">
@@ -219,7 +238,8 @@
+ android:label="@string/challenge">
+
@@ -228,4 +248,12 @@
android:id="@+id/taskFormActivity"
android:name="com.habitrpg.android.habitica.ui.activities.TaskFormActivity"
android:label="TaskFormActivity" />
+
+
+
\ No newline at end of file
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
index 098fe11be..603bcf9b2 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/FullProfileActivity.kt
@@ -7,9 +7,6 @@ import android.os.Bundle
import androidx.core.content.ContextCompat
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.AppCompatImageView
-import androidx.cardview.widget.CardView
-import androidx.recyclerview.widget.GridLayoutManager
-import androidx.recyclerview.widget.RecyclerView
import android.view.*
import android.widget.*
import com.facebook.drawee.backends.pipeline.Fresco
@@ -22,6 +19,7 @@ import com.habitrpg.android.habitica.data.ApiClient
import com.habitrpg.android.habitica.data.InventoryRepository
import com.habitrpg.android.habitica.data.SocialRepository
import com.habitrpg.android.habitica.extensions.notNull
+import com.habitrpg.android.habitica.helpers.MainNavigationController
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.helpers.UserStatComputer
import com.habitrpg.android.habitica.models.AchievementGroup
@@ -79,7 +77,7 @@ class FullProfileActivity : BaseActivity() {
private val lastLoginView: TextView by bindView(R.id.last_login_view)
private val totalCheckinsView: TextView by bindView(R.id.total_checkins_view)
- private var userId = ""
+ private var userID = ""
private var userName: String? = null
private var avatarWithBars: AvatarWithBarsViewModel? = null
private var attributeStrSum = 0f
@@ -93,13 +91,14 @@ class FullProfileActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- val intent = intent
- val bundle = intent.extras
- this.userId = bundle?.getString("userId") ?: ""
+ userID = intent?.extras?.getString("userID", "") ?: ""
+ if (userID.isEmpty()) {
+ userID = intent?.data?.path?.removePrefix("/profile/") ?: ""
+ }
setTitle(R.string.profile_loading_data)
- compositeSubscription.add(socialRepository.getMember(this.userId).subscribe(Consumer { this.updateView(it) }, RxErrorHandler.handleEmptyError()))
+ compositeSubscription.add(socialRepository.getMember(this.userID).subscribe(Consumer { this.updateView(it) }, RxErrorHandler.handleEmptyError()))
avatarWithBars?.valueBarLabelsToBlack()
@@ -144,7 +143,7 @@ class FullProfileActivity : BaseActivity() {
val addMessageDialog = AlertDialog.Builder(this)
.setPositiveButton(android.R.string.ok) { _, _ ->
- socialRepository.postPrivateMessage(userId, emojiEditText.text.toString())
+ socialRepository.postPrivateMessage(userID, emojiEditText.text.toString())
.subscribe(Consumer {
HabiticaSnackbar.showSnackbar(this@FullProfileActivity.fullprofile_scrollview.getChildAt(0) as ViewGroup,
String.format(getString(R.string.profile_message_sent_to), userName), SnackbarDisplayType.NORMAL)
@@ -214,7 +213,7 @@ class FullProfileActivity : BaseActivity() {
// Load the members achievements now
- compositeSubscription.add(socialRepository.getMemberAchievements(this.userId).subscribe(Consumer { this.fillAchievements(it) }, RxErrorHandler.handleEmptyError()))
+ compositeSubscription.add(socialRepository.getMemberAchievements(this.userID).subscribe(Consumer { this.fillAchievements(it) }, RxErrorHandler.handleEmptyError()))
}
private fun updatePetsMountsView(user: Member) {
@@ -467,17 +466,13 @@ class FullProfileActivity : BaseActivity() {
companion object {
- fun open(context: Context, userId: String) {
+ fun open(userId: String) {
if (userId == "system") {
return
}
val bundle = Bundle()
- bundle.putString("userId", userId)
-
- val intent = Intent(context, FullProfileActivity::class.java)
- intent.putExtras(bundle)
- intent.flags = Intent.FLAG_ACTIVITY_REORDER_TO_FRONT
- context.startActivity(intent)
+ bundle.putString("userID", userId)
+ MainNavigationController.navigate(R.id.fullProfileActivity, bundle)
}
}
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 72faac9b4..09cfec80a 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
@@ -10,6 +10,7 @@ import android.content.res.Configuration
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.drawable.BitmapDrawable
+import android.net.Uri
import android.os.Build
import android.os.Build.VERSION.SDK_INT
import android.os.Bundle
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.kt
index 10b8949ea..d1b78f01d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/adapter/social/PublicGuildsRecyclerViewAdapter.kt
@@ -38,7 +38,9 @@ class PublicGuildsRecyclerViewAdapter(data: OrderedRealmCollection?, auto
val guildViewHolder = GuildViewHolder(parent.inflate(R.layout.item_public_guild))
guildViewHolder.itemView.setOnClickListener { v ->
val guild = v.tag as? Group ?: return@setOnClickListener
- MainNavigationController.navigate(PublicGuildsFragmentDirections.openGuildDetail(guild.id, isInGroup(guild)))
+ val directions =PublicGuildsFragmentDirections.openGuildDetail(guild.id)
+ directions.isMember = isInGroup(guild)
+ MainNavigationController.navigate(directions)
}
guildViewHolder.joinLeaveButton.setOnClickListener { v ->
val guild = v.tag as? Group ?: return@setOnClickListener
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt
index da515536e..bf874e17f 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatFragment.kt
@@ -75,7 +75,7 @@ class ChatFragment constructor(private val viewModel: PartyViewModel) : BaseFrag
chatAdapter = ChatRecyclerViewAdapter(null, true, null, true)
chatAdapter.notNull {adapter ->
compositeSubscription.add(adapter.getUserLabelClickFlowable().subscribe(Consumer { userId ->
- context.notNull { FullProfileActivity.open(it, userId) }
+ FullProfileActivity.open(userId)
}, RxErrorHandler.handleEmptyError()))
compositeSubscription.add(adapter.getDeleteMessageFlowable().subscribe(Consumer { this.showDeleteConfirmationDialog(it) }, RxErrorHandler.handleEmptyError()))
compositeSubscription.add(adapter.getFlagMessageClickFlowable().subscribe(Consumer { this.showFlagConfirmationDialog(it) }, RxErrorHandler.handleEmptyError()))
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatListFragment.kt
index fb790328d..23b46f480 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatListFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/ChatListFragment.kt
@@ -117,7 +117,7 @@ class ChatListFragment : BaseFragment(), SwipeRefreshLayout.OnRefreshListener {
chatAdapter = ChatRecyclerViewAdapter(null, true, user, true)
chatAdapter.notNull {adapter ->
compositeSubscription.add(adapter.getUserLabelClickFlowable().subscribe(Consumer { userId ->
- context.notNull { FullProfileActivity.open(it, userId) }
+ FullProfileActivity.open(userId)
}, RxErrorHandler.handleEmptyError()))
compositeSubscription.add(adapter.getDeleteMessageFlowable().subscribe(Consumer { this.showDeleteConfirmationDialog(it) }, RxErrorHandler.handleEmptyError()))
compositeSubscription.add(adapter.getFlagMessageClickFlowable().subscribe(Consumer { this.showFlagConfirmationDialog(it) }, RxErrorHandler.handleEmptyError()))
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt
index ed6580b11..1455b4fec 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/InboxMessageListFragment.kt
@@ -67,7 +67,7 @@ class InboxMessageListFragment : BaseMainFragment(), androidx.swiperefreshlayout
recyclerView.itemAnimator = SafeDefaultItemAnimator()
chatAdapter.notNull { adapter ->
compositeSubscription.add(adapter.getUserLabelClickFlowable().subscribe(Consumer {
- context.notNull { context -> FullProfileActivity.open(context, it) }
+ FullProfileActivity.open(it)
}, RxErrorHandler.handleEmptyError()))
compositeSubscription.add(adapter.getDeleteMessageFlowable().subscribe(Consumer { this.showDeleteConfirmationDialog(it) }, RxErrorHandler.handleEmptyError()))
compositeSubscription.add(adapter.getFlagMessageClickFlowable().subscribe(Consumer { this.showFlagConfirmationDialog(it) }, RxErrorHandler.handleEmptyError()))
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt
index 8703cb345..b1a11a89d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/challenges/ChallengeDetailFragment.kt
@@ -90,7 +90,7 @@ class ChallengeDetailFragment: BaseMainFragment() {
challengeLeaderWrapper?.setOnClickListener {
val leaderID = challenge?.leaderId ?: return@setOnClickListener
- FullProfileActivity.open(it.context, leaderID)
+ FullProfileActivity.open(leaderID)
}
challengeID.notNull {id ->
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.kt
index bfb481522..42e929f03 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyMemberListFragment.kt
@@ -52,9 +52,7 @@ class PartyMemberListFragment constructor(private val viewModel: PartyViewModel)
recyclerView?.layoutManager = androidx.recyclerview.widget.LinearLayoutManager(context)
adapter = PartyMemberRecyclerViewAdapter(null, true)
- context.notNull {
- adapter?.getUserClickedEvents()?.subscribe(Consumer { userId -> FullProfileActivity.open(it, userId) }, RxErrorHandler.handleEmptyError()).notNull { compositeSubscription.add(it) }
- }
+ adapter?.getUserClickedEvents()?.subscribe(Consumer { userId -> FullProfileActivity.open(userId) }, RxErrorHandler.handleEmptyError()).notNull { compositeSubscription.add(it) }
recyclerView?.adapter = adapter
recyclerView?.itemAnimator = SafeDefaultItemAnimator()