mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-05-20 12:49:02 +00:00
layout fixes
This commit is contained in:
parent
775310ccde
commit
011a4c8097
5 changed files with 31 additions and 34 deletions
|
|
@ -79,6 +79,9 @@ class NotificationsActivity : BaseActivity(), androidx.swiperefreshlayout.widget
|
|||
}
|
||||
|
||||
binding.notificationsRefreshLayout.setOnRefreshListener(this)
|
||||
lifecycleScope.launchCatching {
|
||||
viewModel.refreshNotifications()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onSupportNavigateUp(): Boolean {
|
||||
|
|
|
|||
|
|
@ -9,14 +9,12 @@ import android.view.MenuItem
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.view.setPadding
|
||||
import androidx.viewbinding.ViewBinding
|
||||
import com.google.android.material.appbar.AppBarLayout
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.google.firebase.analytics.FirebaseAnalytics
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.data.UserRepository
|
||||
import com.habitrpg.android.habitica.extensions.setScaledPadding
|
||||
import com.habitrpg.android.habitica.helpers.SoundManager
|
||||
import com.habitrpg.android.habitica.ui.activities.MainActivity
|
||||
import com.habitrpg.android.habitica.ui.helpers.ToolbarColorHelper
|
||||
|
|
@ -37,6 +35,10 @@ abstract class BaseMainFragment<VB : ViewBinding> : BaseFragment<VB>() {
|
|||
val toolbarAccessoryContainer get() = mainActivity?.binding?.content?.toolbarAccessoryContainer
|
||||
val bottomNavigation get() = mainActivity?.binding?.content?.bottomNavigation
|
||||
var usesTabLayout: Boolean = false
|
||||
set(value) {
|
||||
field = value
|
||||
updateTabLayoutVisibility()
|
||||
}
|
||||
var hidesToolbar: Boolean = false
|
||||
var usesBottomNavigation = false
|
||||
|
||||
|
|
@ -53,6 +55,7 @@ abstract class BaseMainFragment<VB : ViewBinding> : BaseFragment<VB>() {
|
|||
|
||||
setHasOptionsMenu(true)
|
||||
|
||||
tabLayout?.removeAllTabs()
|
||||
updateTabLayoutVisibility()
|
||||
updateToolbarInteractivity()
|
||||
|
||||
|
|
@ -95,7 +98,6 @@ abstract class BaseMainFragment<VB : ViewBinding> : BaseFragment<VB>() {
|
|||
|
||||
private fun updateTabLayoutVisibility() {
|
||||
if (this.usesTabLayout) {
|
||||
tabLayout?.removeAllTabs()
|
||||
tabLayout?.visibility = View.VISIBLE
|
||||
tabLayout?.tabMode = TabLayout.MODE_FIXED
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -60,6 +60,7 @@ class NoPartyFragmentFragment : BaseMainFragment<FragmentNoPartyBinding>() {
|
|||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
binding?.refreshLayout?.setOnRefreshListener { this.refresh() }
|
||||
refresh()
|
||||
|
||||
binding?.invitationsView?.acceptCall = {
|
||||
lifecycleScope.launch(ExceptionHandler.coroutine()) {
|
||||
|
|
|
|||
|
|
@ -16,9 +16,9 @@ import androidx.viewpager2.adapter.FragmentStateAdapter
|
|||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.databinding.FragmentViewpagerBinding
|
||||
import com.habitrpg.android.habitica.helpers.MainNavigationController
|
||||
import com.habitrpg.android.habitica.models.social.Group
|
||||
import com.habitrpg.android.habitica.ui.activities.GroupFormActivity
|
||||
import com.habitrpg.android.habitica.ui.activities.GroupInviteActivity
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
|
||||
import com.habitrpg.android.habitica.ui.fragments.social.PartyChatFragment
|
||||
import com.habitrpg.android.habitica.ui.viewmodels.GroupViewType
|
||||
|
|
@ -108,9 +108,7 @@ class PartyFragment : BaseMainFragment<FragmentViewpagerBinding>() {
|
|||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
R.id.menu_invite_item -> {
|
||||
val intent = Intent(mainActivity, GroupInviteActivity::class.java)
|
||||
intent.putExtra("groupType", "party")
|
||||
sendInvitesResult.launch(intent)
|
||||
MainNavigationController.navigate(R.id.partyInvitationFragment)
|
||||
return true
|
||||
}
|
||||
R.id.menu_guild_edit -> {
|
||||
|
|
@ -153,31 +151,6 @@ class PartyFragment : BaseMainFragment<FragmentViewpagerBinding>() {
|
|||
}
|
||||
}
|
||||
|
||||
private val sendInvitesResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
|
||||
if (it.resultCode == Activity.RESULT_OK) {
|
||||
val inviteData = HashMap<String, Any>()
|
||||
inviteData["inviter"] = viewModel.user.value?.profile?.name ?: ""
|
||||
val emails = it.data?.getStringArrayExtra(GroupInviteActivity.EMAILS_KEY)
|
||||
if (!emails.isNullOrEmpty()) {
|
||||
val invites = ArrayList<HashMap<String, String>>()
|
||||
emails.forEach { email ->
|
||||
val invite = HashMap<String, String>()
|
||||
invite["name"] = ""
|
||||
invite["email"] = email
|
||||
invites.add(invite)
|
||||
}
|
||||
inviteData["emails"] = invites
|
||||
}
|
||||
val userIDs = it.data?.getStringArrayExtra(GroupInviteActivity.USER_IDS_KEY)
|
||||
if (!userIDs.isNullOrEmpty()) {
|
||||
val invites = ArrayList<String>()
|
||||
userIDs.forEach { invites.add(it) }
|
||||
inviteData["usernames"] = invites
|
||||
}
|
||||
viewModel.inviteToGroup(inviteData)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setViewPagerAdapter() {
|
||||
val fragmentManager = childFragmentManager
|
||||
|
||||
|
|
|
|||
|
|
@ -5,11 +5,14 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.lifecycle.distinctUntilChanged
|
||||
import androidx.viewpager2.adapter.FragmentStateAdapter
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.habitrpg.android.habitica.R
|
||||
import com.habitrpg.android.habitica.databinding.FragmentViewpagerBinding
|
||||
import com.habitrpg.android.habitica.ui.fragments.BaseMainFragment
|
||||
import com.habitrpg.android.habitica.ui.viewmodels.PartyViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
|
||||
@AndroidEntryPoint
|
||||
|
|
@ -17,6 +20,8 @@ class PartyInvitePagerFragment : BaseMainFragment<FragmentViewpagerBinding>() {
|
|||
|
||||
override var binding : FragmentViewpagerBinding? = null
|
||||
|
||||
internal val viewModel: PartyViewModel by viewModels()
|
||||
|
||||
override fun createBinding(
|
||||
inflater : LayoutInflater,
|
||||
container : ViewGroup?
|
||||
|
|
@ -32,6 +37,15 @@ class PartyInvitePagerFragment : BaseMainFragment<FragmentViewpagerBinding>() {
|
|||
this.usesTabLayout = true
|
||||
this.hidesToolbar = true
|
||||
showsBackButton = true
|
||||
|
||||
viewModel.loadPartyID()
|
||||
|
||||
viewModel.getGroupData()
|
||||
.distinctUntilChanged()
|
||||
.observe(viewLifecycleOwner) {
|
||||
binding?.viewPager?.adapter?.notifyDataSetChanged()
|
||||
usesTabLayout = viewModel.isLeader
|
||||
}
|
||||
return super.onCreateView(inflater, container, savedInstanceState)
|
||||
}
|
||||
|
||||
|
|
@ -48,7 +62,11 @@ class PartyInvitePagerFragment : BaseMainFragment<FragmentViewpagerBinding>() {
|
|||
override fun createFragment(position : Int) : Fragment {
|
||||
return when (position) {
|
||||
0 -> {
|
||||
PartySeekingFragment()
|
||||
if (viewModel.isLeader) {
|
||||
PartySeekingFragment()
|
||||
} else {
|
||||
PartyInviteFragment()
|
||||
}
|
||||
}
|
||||
|
||||
1 -> {
|
||||
|
|
@ -60,7 +78,7 @@ class PartyInvitePagerFragment : BaseMainFragment<FragmentViewpagerBinding>() {
|
|||
}
|
||||
|
||||
override fun getItemCount() : Int {
|
||||
return 2
|
||||
return if (viewModel.isLeader) 2 else 1
|
||||
}
|
||||
}
|
||||
tabLayout?.let {
|
||||
|
|
|
|||
Loading…
Reference in a new issue