Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes #2000 : Navigation component implementation : CenterDetails #2005

Merged
merged 1 commit into from
Jul 28, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,18 @@ class GroupListAdapter(context: Context, groups: List<Group>) : BaseAdapter() {
return 0
}

override fun getView(i: Int, view: View, viewGroup: ViewGroup): View {
val binding: RowGroupListBinding = view.tag as RowGroupListBinding
val group = groups[i]
binding.tvGroupName.text = group.name
binding.tvOfficeName.text = group.officeName
override fun getView(index: Int, view: View?, viewGroup: ViewGroup): View {
val binding: RowGroupListBinding
val convertView : View
if(view == null){
binding = RowGroupListBinding.inflate(layoutInflater,viewGroup,false)
convertView = binding.root
convertView.tag = binding
}else{
binding = view.tag as RowGroupListBinding
convertView = view
}
val group = groups[index]
/**
* Passing the String value of Status to Helper Method of
* Status Class that compares String Value to a Static String and returns
Expand All @@ -64,6 +71,6 @@ class GroupListAdapter(context: Context, groups: List<Group>) : BaseAdapter() {
binding.tvStatusText.text =
context.resources.getString(R.string.inactive)
}
return view
return convertView
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,32 @@
package com.mifos.mifosxdroid.online

import android.os.Bundle
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.navArgs
import com.mifos.mifosxdroid.R
import com.mifos.mifosxdroid.core.MifosBaseActivity
import com.mifos.mifosxdroid.online.centerdetails.CenterDetailsFragment
import com.mifos.mifosxdroid.online.centerdetails.CenterDetailsFragment.Companion.newInstance
import com.mifos.mifosxdroid.online.clientlist.ClientListFragment
import com.mifos.mifosxdroid.online.grouplist.GroupListFragment
import com.mifos.mifosxdroid.online.savingsaccount.SavingsAccountFragment
import com.mifos.objects.client.Client
import com.mifos.utils.Constants

class CentersActivity : MifosBaseActivity(), GroupListFragment.OnFragmentInteractionListener,
CenterDetailsFragment.OnFragmentInteractionListener {
class CentersActivity : MifosBaseActivity(){

private val args: CentersActivityArgs by navArgs()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_toolbar_container)
showBackButton()

val centerId = args.centerId
replaceFragment(newInstance(centerId), false, R.id.container)
}

override fun loadGroupsOfCenter(centerId: Int) {
replaceFragment(GroupListFragment.newInstance(centerId), true, R.id.container)
}

override fun loadClientsOfGroup(clientList: List<Client?>?) {
replaceFragment(ClientListFragment.newInstance(clientList, true), true, R.id.container)
}

override fun addCenterSavingAccount(centerId: Int) {
replaceFragment(SavingsAccountFragment.newInstance(centerId, true), true, R.id.container)
val bundle = Bundle()
bundle.putInt(Constants.CENTER_ID,centerId)
val navHostFragment = supportFragmentManager.findFragmentById(R.id.container_nav_host_fragment) as NavHostFragment
navHostFragment.navController.apply {
popBackStack()
navigate(R.id.centerDetailsFragment,bundle)
}
}
}
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
package com.mifos.mifosxdroid.online.centerdetails

import android.app.Activity
import android.os.Bundle
import android.view.LayoutInflater
import android.view.Menu
import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import android.view.ViewGroup
import androidx.navigation.fragment.findNavController
import com.mifos.mifosxdroid.R
import com.mifos.mifosxdroid.core.MifosBaseActivity
import com.mifos.mifosxdroid.core.MifosBaseFragment
import com.mifos.mifosxdroid.core.util.Toaster
import com.mifos.mifosxdroid.databinding.FragmentCenterDetailsBinding
import com.mifos.mifosxdroid.online.activate.ActivateFragment
import com.mifos.objects.group.CenterInfo
import com.mifos.objects.group.CenterWithAssociations
import com.mifos.utils.Constants
import com.mifos.utils.FragmentConstants
import com.mifos.utils.Utils
import javax.inject.Inject

Expand All @@ -31,7 +29,8 @@ class CenterDetailsFragment : MifosBaseFragment(), CenterDetailsMvpView {
@Inject
lateinit var centerDetailsPresenter: CenterDetailsPresenter
private var centerId = 0
private var listener: OnFragmentInteractionListener? = null

// private var listener: OnFragmentInteractionListener? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
(activity as MifosBaseActivity).activityComponent?.inject(this)
Expand Down Expand Up @@ -63,12 +62,11 @@ class CenterDetailsFragment : MifosBaseFragment(), CenterDetailsMvpView {


private fun onClickActivateCenter() {
val activateFragment = ActivateFragment.newInstance(centerId, Constants.ACTIVATE_CENTER)
val fragmentTransaction = requireActivity().supportFragmentManager
.beginTransaction()
fragmentTransaction.addToBackStack(FragmentConstants.FRAG_CENTER_DETAIL)
fragmentTransaction.replace(R.id.container, activateFragment)
fragmentTransaction.commit()
val action = CenterDetailsFragmentDirections.actionCenterDetailsFragmentToActivateFragment(
centerId,
Constants.ACTIVATE_CENTER
)
findNavController().navigate(action)
}

override fun showProgressbar(show: Boolean) {
Expand Down Expand Up @@ -99,15 +97,15 @@ class CenterDetailsFragment : MifosBaseFragment(), CenterDetailsMvpView {
binding.llBottomPanel.visibility = View.VISIBLE
showErrorMessage(R.string.error_center_inactive)
}
if (centerWithAssociations.collectionMeetingCalendar?.calendarInstanceId == null) {
if (centerWithAssociations.collectionMeetingCalendar.calendarInstanceId == null) {
binding.tvMeetingDate.text = getString(R.string.unassigned)
if (view != null) {
requireView().findViewById<View>(R.id.row_meeting_frequency).visibility = View.GONE
}
} else {
binding.tvMeetingDate.text = Utils.getStringOfDate(
centerWithAssociations
.collectionMeetingCalendar!!.nextTenRecurringDates[0]
.collectionMeetingCalendar.nextTenRecurringDates[0]
)
if (view != null) {
requireView().findViewById<View>(R.id.row_meeting_frequency).visibility =
Expand Down Expand Up @@ -139,23 +137,23 @@ class CenterDetailsFragment : MifosBaseFragment(), CenterDetailsMvpView {

override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.add_savings_account -> listener?.addCenterSavingAccount(centerId)
R.id.view_group_list -> listener?.loadGroupsOfCenter(centerId)
R.id.add_savings_account -> addCenterSavingAccount(centerId)
R.id.view_group_list -> loadGroupsOfCenter(centerId)
}
return super.onOptionsItemSelected(item)
}

override fun onAttach(activity: Activity) {
super.onAttach(activity)
listener = try {
activity as OnFragmentInteractionListener
} catch (e: ClassCastException) {
throw ClassCastException(
activity.toString() + " must implement " +
"OnFragmentInteractionListener"
)
}
}
// override fun onAttach(activity: Activity) {
// super.onAttach(activity)
// listener = try {
// activity as OnFragmentInteractionListener
// } catch (e: ClassCastException) {
// throw ClassCastException(
// activity.toString() + " must implement " +
// "OnFragmentInteractionListener"
// )
// }
// }

interface OnFragmentInteractionListener {
fun addCenterSavingAccount(centerId: Int)
Expand All @@ -167,14 +165,18 @@ class CenterDetailsFragment : MifosBaseFragment(), CenterDetailsMvpView {
centerDetailsPresenter.detachView()
}

companion object {
@JvmStatic
fun newInstance(centerId: Int): CenterDetailsFragment {
val fragment = CenterDetailsFragment()
val args = Bundle()
args.putInt(Constants.CENTER_ID, centerId)
fragment.arguments = args
return fragment
}
private fun addCenterSavingAccount(centerId: Int) {
val action =
CenterDetailsFragmentDirections.actionCenterDetailsFragmentToSavingsAccountFragment(
centerId,
true
)
findNavController().navigate(action)
}

private fun loadGroupsOfCenter(centerId: Int){
val action = CenterDetailsFragmentDirections.actionCenterDetailsFragmentToGroupListFragment(centerId)
findNavController().navigate(action)
}

}
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
package com.mifos.mifosxdroid.online.checkerinbox

import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import android.content.DialogInterface
import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.*
import android.widget.CheckBox
import android.widget.Toast
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import androidx.recyclerview.widget.LinearLayoutManager
import com.mifos.mifosxdroid.R
import com.mifos.mifosxdroid.adapters.CheckerTaskListAdapter
Expand All @@ -19,6 +20,7 @@ import com.mifos.mifosxdroid.core.MifosBaseFragment
import com.mifos.mifosxdroid.databinding.CheckerInboxFragmentBinding
import com.mifos.mifosxdroid.dialogfragments.checkertaskfilterdialog.CheckerTaskFilterDialogFragment
import com.mifos.objects.CheckerTask
import com.mifos.utils.Constants
import java.sql.Timestamp
import java.util.Locale
import javax.inject.Inject
Expand Down Expand Up @@ -110,6 +112,8 @@ class CheckerInboxFragment : MifosBaseFragment(), TextWatcher,
hideMifosProgressBar()
checkerTaskList.clear()
fetchedCheckerTaskList.addAll(it!!)
if (fetchedCheckerTaskList.isEmpty()) binding.tvEmptyCheckerInbox.visibility =
View.VISIBLE
checkerTaskList.addAll(fetchedCheckerTaskList)
checkerTaskListAdapter.submitList(checkerTaskList)
})
Expand Down Expand Up @@ -352,8 +356,8 @@ class CheckerInboxFragment : MifosBaseFragment(), TextWatcher,

binding.ivFilterSearchIcon.setOnClickListener {
val dialogSearchFilter = CheckerTaskFilterDialogFragment()
dialogSearchFilter.setTargetFragment(this@CheckerInboxFragment, 1)
dialogSearchFilter.show(requireActivity().supportFragmentManager, "DialogSearchFilter")
dialogSearchFilter.setTargetFragment(this, Constants.DIALOG_FRAGMENT)
dialogSearchFilter.show(parentFragmentManager, "DialogSearchFilter")
}

binding.ivBatchApproveIcon.setOnClickListener {
Expand Down
Loading