mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-04-14 19:56:32 +00:00
Implement invite to guild button
This commit is contained in:
parent
598cadfcf4
commit
4129fcd08e
8 changed files with 66 additions and 22 deletions
|
|
@ -133,10 +133,9 @@
|
|||
android:value=".ui.activities.MainActivity" />
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.activities.PartyInviteActivity"
|
||||
android:name=".ui.activities.GroupInviteActivity"
|
||||
android:theme="@style/AppThemeWithActionBarBlackText"
|
||||
tools:ignore="UnusedAttribute"
|
||||
android:label="@string/invite_users">
|
||||
tools:ignore="UnusedAttribute">
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.activities.FullProfileActivity"
|
||||
|
|
|
|||
|
|
@ -101,9 +101,11 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/white"
|
||||
android:showDividers="beginning|end|middle"
|
||||
android:divider="@drawable/vertical_divider">
|
||||
android:background="@color/white">
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/gray_500" />
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -128,6 +130,11 @@
|
|||
style="@style/HabiticaButton.Green"
|
||||
android:layout_marginStart="@dimen/spacing_large"/>
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/gray_500" />
|
||||
<LinearLayout
|
||||
android:id="@+id/leader_wrapper"
|
||||
android:layout_width="match_parent"
|
||||
|
|
@ -189,6 +196,12 @@
|
|||
tools:text="@string/inn_description"
|
||||
android:layout_marginTop="@dimen/spacing_large" />
|
||||
</com.habitrpg.android.habitica.ui.views.CollapsibleSectionView>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/gray_500"
|
||||
android:layout_marginTop="@dimen/spacing_medium"/>
|
||||
</LinearLayout>
|
||||
<Button
|
||||
android:id="@+id/leave_button"
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
android:id="@+id/separator"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/days_gray"/>
|
||||
android:background="@color/gray_500"/>
|
||||
<LinearLayout
|
||||
android:id="@+id/title_view"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -909,4 +909,5 @@
|
|||
<string name="guild_summary">Guild Summary</string>
|
||||
<string name="guild_members">Guild Members</string>
|
||||
<string name="guild_bank">Guild Bank</string>
|
||||
<string name="invite_to_party">Invite to Party</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
@ -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<String, Any>()
|
||||
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<HashMap<String, String>>()
|
||||
for (email in emails) {
|
||||
val invite = HashMap<String, String>()
|
||||
invite["name"] = ""
|
||||
invite["email"] = email
|
||||
invites.add(invite)
|
||||
}
|
||||
inviteData["emails"] = invites
|
||||
} else {
|
||||
val userIDs = data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
|
||||
val invites = ArrayList<String>()
|
||||
Collections.addAll(invites, *userIDs)
|
||||
inviteData["usernames"] = invites
|
||||
}
|
||||
viewModel?.inviteToGroup(inviteData)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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<String, Any>()
|
||||
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<HashMap<String, String>>()
|
||||
for (email in emails) {
|
||||
val invite = HashMap<String, String>()
|
||||
|
|
@ -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<String>()
|
||||
Collections.addAll(invites, *userIDs)
|
||||
inviteData["usernames"] = invites
|
||||
|
|
|
|||
Loading…
Reference in a new issue