diff --git a/Habitica/AndroidManifest.xml b/Habitica/AndroidManifest.xml
index 8b3f2d9ce..c2be01d35 100644
--- a/Habitica/AndroidManifest.xml
+++ b/Habitica/AndroidManifest.xml
@@ -133,10 +133,9 @@
android:value=".ui.activities.MainActivity" />
+ tools:ignore="UnusedAttribute">
+ android:background="@color/white">
+
+
+
+
+
+ android:background="@color/gray_500"/>
Guild Summary
Guild Members
Guild Bank
+ Invite to Party
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
index 60731812b..e7ae71b04 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/components/AppComponent.java
@@ -28,7 +28,7 @@ import com.habitrpg.android.habitica.ui.activities.IntroActivity;
import com.habitrpg.android.habitica.ui.activities.LoginActivity;
import com.habitrpg.android.habitica.ui.activities.MainActivity;
import com.habitrpg.android.habitica.ui.activities.MaintenanceActivity;
-import com.habitrpg.android.habitica.ui.activities.PartyInviteActivity;
+import com.habitrpg.android.habitica.ui.activities.GroupInviteActivity;
import com.habitrpg.android.habitica.ui.activities.PrefsActivity;
import com.habitrpg.android.habitica.ui.activities.ReportMessageActivity;
import com.habitrpg.android.habitica.ui.activities.SetupActivity;
@@ -130,7 +130,7 @@ public interface AppComponent {
void inject(MaintenanceActivity maintenanceActivity);
- void inject(PartyInviteActivity partyInviteActivity);
+ void inject(GroupInviteActivity groupInviteActivity);
void inject(PrefsActivity prefsActivity);
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PartyInviteActivity.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt
similarity index 92%
rename from Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PartyInviteActivity.kt
rename to Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt
index b3b1c2a28..7a96b48fc 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/PartyInviteActivity.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/activities/GroupInviteActivity.kt
@@ -28,7 +28,7 @@ import java.util.*
import javax.inject.Inject
import javax.inject.Named
-class PartyInviteActivity : BaseActivity() {
+class GroupInviteActivity : BaseActivity() {
@field:[Inject Named(AppModule.NAMED_USER_ID)]
lateinit var userId: String
@@ -51,6 +51,12 @@ class PartyInviteActivity : BaseActivity() {
super.onCreate(savedInstanceState)
viewPager.currentItem = 0
+ if (intent.getStringExtra("groupType") == "party") {
+ supportActionBar?.title = getString(R.string.invite_to_party)
+ } else {
+ supportActionBar?.title = getString(R.string.invite_to_guild)
+ }
+
setViewPagerAdapter()
}
@@ -58,7 +64,6 @@ class PartyInviteActivity : BaseActivity() {
component?.inject(this)
}
-
override fun onCreateOptionsMenu(menu: Menu): Boolean {
// Inflate the menu; this adds items to the action bar if it is present.
menuInflater.inflate(R.menu.menu_party_invite, menu)
@@ -66,12 +71,8 @@ class PartyInviteActivity : BaseActivity() {
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
- // Handle action bar item clicks here. The action bar will
- // automatically handle clicks on the Home/Up button, so long
- // as you specify a parent activity in AndroidManifest.xml.
val id = item.itemId
-
if (id == R.id.action_send_invites) {
setResult(Activity.RESULT_OK, createResultIntent())
dismissKeyboard()
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 c63781573..d7551cb9e 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
@@ -23,6 +23,7 @@ import com.habitrpg.android.habitica.models.user.User
import com.habitrpg.android.habitica.ui.AvatarView
import com.habitrpg.android.habitica.ui.activities.GroupFormActivity
import com.habitrpg.android.habitica.ui.activities.MainActivity
+import com.habitrpg.android.habitica.ui.activities.GroupInviteActivity
import com.habitrpg.android.habitica.ui.fragments.BaseFragment
import com.habitrpg.android.habitica.ui.helpers.MarkdownParser
import com.habitrpg.android.habitica.ui.helpers.bindView
@@ -32,6 +33,7 @@ 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 java.util.*
import javax.inject.Inject
class GuildDetailFragment : BaseFragment() {
@@ -90,6 +92,10 @@ class GuildDetailFragment : BaseFragment() {
}
}
}
+ inviteToGuildButton.setOnClickListener {
+ val intent = Intent(activity, GroupInviteActivity::class.java)
+ startActivityForResult(intent, GroupInviteActivity.RESULT_SEND_INVITES)
+ }
leaderWrapperView.setOnClickListener {
viewModel?.getGroupData()?.value?.leaderID?.let {leaderID ->
val profileDirections = MainNavDirections.openProfileActivity(leaderID)
@@ -121,6 +127,29 @@ class GuildDetailFragment : BaseFragment() {
viewModel?.updateGroup(data?.extras)
}
}
+ GroupInviteActivity.RESULT_SEND_INVITES -> {
+ if (resultCode == Activity.RESULT_OK) {
+ val inviteData = HashMap()
+ inviteData["inviter"] = viewModel?.getUserData()?.value?.profile?.name ?: ""
+ if (data?.getBooleanExtra(GroupInviteActivity.IS_EMAIL_KEY, false) == true) {
+ val emails = data.getStringArrayExtra(GroupInviteActivity.EMAILS_KEY)
+ val invites = ArrayList>()
+ for (email in emails) {
+ val invite = HashMap()
+ invite["name"] = ""
+ invite["email"] = email
+ invites.add(invite)
+ }
+ inviteData["emails"] = invites
+ } else {
+ val userIDs = data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
+ val invites = ArrayList()
+ Collections.addAll(invites, *userIDs)
+ inviteData["usernames"] = invites
+ }
+ viewModel?.inviteToGroup(inviteData)
+ }
+ }
}
}
diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt
index b7e8d0203..2a39c210d 100644
--- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt
+++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/social/party/PartyFragment.kt
@@ -15,7 +15,7 @@ import com.habitrpg.android.habitica.components.AppComponent
import com.habitrpg.android.habitica.helpers.RxErrorHandler
import com.habitrpg.android.habitica.models.social.Group
import com.habitrpg.android.habitica.ui.activities.GroupFormActivity
-import com.habitrpg.android.habitica.ui.activities.PartyInviteActivity
+import com.habitrpg.android.habitica.ui.activities.GroupInviteActivity
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
import com.habitrpg.android.habitica.ui.fragments.social.ChatFragment
import com.habitrpg.android.habitica.ui.fragments.social.GroupInformationFragment
@@ -146,8 +146,9 @@ class PartyFragment : BaseMainFragment() {
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.menu_invite_item -> {
- val intent = Intent(activity, PartyInviteActivity::class.java)
- startActivityForResult(intent, PartyInviteActivity.RESULT_SEND_INVITES)
+ val intent = Intent(activity, GroupInviteActivity::class.java)
+ intent.putExtra("groupType", "party")
+ startActivityForResult(intent, GroupInviteActivity.RESULT_SEND_INVITES)
return true
}
R.id.menu_guild_edit -> {
@@ -196,12 +197,12 @@ class PartyFragment : BaseMainFragment() {
viewModel.updateOrCreateGroup(data?.extras)
}
}
- PartyInviteActivity.RESULT_SEND_INVITES -> {
+ GroupInviteActivity.RESULT_SEND_INVITES -> {
if (resultCode == Activity.RESULT_OK) {
val inviteData = HashMap()
inviteData["inviter"] = user?.profile?.name ?: ""
- if (data?.getBooleanExtra(PartyInviteActivity.IS_EMAIL_KEY, false) == true) {
- val emails = data.getStringArrayExtra(PartyInviteActivity.EMAILS_KEY)
+ if (data?.getBooleanExtra(GroupInviteActivity.IS_EMAIL_KEY, false) == true) {
+ val emails = data.getStringArrayExtra(GroupInviteActivity.EMAILS_KEY)
val invites = ArrayList>()
for (email in emails) {
val invite = HashMap()
@@ -211,7 +212,7 @@ class PartyFragment : BaseMainFragment() {
}
inviteData["emails"] = invites
} else {
- val userIDs = data?.getStringArrayExtra(PartyInviteActivity.USER_IDS_KEY)
+ val userIDs = data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
val invites = ArrayList()
Collections.addAll(invites, *userIDs)
inviteData["usernames"] = invites