Fixe Eintragen und Anzeige der Teilnehmer

master
Niko Diamadis 4 years ago
parent 91cfc7f6dd
commit 2102a89f64
Signed by: niko
GPG Key ID: BE53B0B17B1B142E

@ -39,8 +39,10 @@ class MissionFragment : Fragment() {
private val args: MissionFragmentArgs by navArgs() private val args: MissionFragmentArgs by navArgs()
private var objectId = "" private var objectId = ""
private var time = "" private var date = ""
private var dateTime = ""
private var duration = 0f private var duration = 0f
private var time = ""
private lateinit var participationAdapter: ParticipationAdapter private lateinit var participationAdapter: ParticipationAdapter
private var adminMode = false private var adminMode = false
private lateinit var sharedPref: SharedPreferences private lateinit var sharedPref: SharedPreferences
@ -84,6 +86,7 @@ class MissionFragment : Fragment() {
ParseController.fetchParticipations(objectId, false) { entries, e -> ParseController.fetchParticipations(objectId, false) { entries, e ->
if (e == null) { if (e == null) {
ParseObject.deleteAllInBackground(entries) ParseObject.deleteAllInBackground(entries)
initializeRecyclerView()
participationAdapter.submitList(listOf()) participationAdapter.submitList(listOf())
showDivider(false) showDivider(false)
updateTechnikerCount(0) updateTechnikerCount(0)
@ -112,13 +115,13 @@ class MissionFragment : Fragment() {
private fun loadData() { private fun loadData() {
ParseController.fetchMission(objectId) { mission, e -> ParseController.fetchMission(objectId) { mission, e ->
if (e == null) { if (e == null) {
val date = SimpleDateFormat("dd.MM.yyyy", Locale.GERMANY).format(mission!!.date()) date = SimpleDateFormat("dd.MM.yyyy", Locale.GERMANY).format(mission!!.date())
time = mission.time()
duration = mission.duration duration = mission.duration
val prettyDuration = duration.toPrettyString() val prettyDuration = duration.toPrettyString()
time = if (time != "") ", $time ($prettyDuration h)" else ", $prettyDuration h" val tempTime = mission.time()
val dateTime = date + time time = if (tempTime != "") "$tempTime Uhr ($prettyDuration h)" else "$prettyDuration h"
dateTime = "$date, $time"
binding.apply { binding.apply {
if (titleView.text != mission.name) { if (titleView.text != mission.name) {
@ -168,14 +171,20 @@ class MissionFragment : Fragment() {
} }
} }
private fun isRecyclerViewInitialized() = this::participationAdapter.isInitialized
private fun initializeRecyclerView() { private fun initializeRecyclerView() {
if (this::participationAdapter.isInitialized) { if (isRecyclerViewInitialized()) {
return return
} }
participationAdapter = ParticipationAdapter(duration) { participationAdapter = ParticipationAdapter(duration) {
if (adminMode || it.name == sharedPref.getString(NAME, "")) { if (adminMode || it.name == sharedPref.getString(NAME, "")) {
val uhrzeit = if (it.time == "0") time else it.time val uhrzeit = if (it.time == "0") {
val message = "<strong><u>Arbeitszeit:</u></strong><br/>$uhrzeit Uhr<br/><br/>" + time
} else {
"${it.time} Uhr (${it.duration.toPrettyString()} h)"
}
val message = "<strong><u>Arbeitszeit:</u></strong><br/>$uhrzeit<br/><br/>" +
"Wie möchtest du diesen Eintrag bearbeiten?" "Wie möchtest du diesen Eintrag bearbeiten?"
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
@ -263,14 +272,15 @@ class MissionFragment : Fragment() {
} }
.setNegativeButton("Entfernen") { _, _ -> .setNegativeButton("Entfernen") { _, _ ->
val list = participationAdapter.currentList.toMutableList() val list = participationAdapter.currentList.toMutableList()
list.remove(it) val subList = list.filter { filteredParticipation ->
filteredParticipation.name == it.name
}
list.remove(subList[0])
participationAdapter.submitList(list) participationAdapter.submitList(list)
updateTechnikerCount(list.size) updateTechnikerCount(list.size)
if (list.isEmpty()) { if (list.isEmpty()) showDivider(false)
showDivider(false)
}
Participation.emptyObject(it.objectId).deleteInBackground() Participation.emptyObject(it.objectId).deleteInBackground()
if (participationAdapter.currentList.size == 0) showDivider(false)
loadParticipations() loadParticipations()
} }
.show() .show()
@ -281,11 +291,13 @@ class MissionFragment : Fragment() {
} }
private fun memberExists(name: String): Boolean { private fun memberExists(name: String): Boolean {
if (isRecyclerViewInitialized()) {
for (member in participationAdapter.currentList) { for (member in participationAdapter.currentList) {
if (name == member.name) { if (name == member.name) {
return true return true
} }
} }
}
return false return false
} }
@ -327,12 +339,14 @@ class MissionFragment : Fragment() {
if (e == null) { if (e == null) {
val currentSelection = BooleanArray(members.size) val currentSelection = BooleanArray(members.size)
memberNames.forEachIndexed { index, name -> memberNames.forEachIndexed { index, name ->
if (isRecyclerViewInitialized()) {
participationAdapter.currentList.forEach { participationAdapter.currentList.forEach {
if (name == it.name) { if (name == it.name) {
currentSelection[index] = true currentSelection[index] = true
} }
} }
} }
}
val checkedNames = mutableListOf<String>() val checkedNames = mutableListOf<String>()
val previousSelection = currentSelection.toList() val previousSelection = currentSelection.toList()
@ -406,9 +420,7 @@ class MissionFragment : Fragment() {
} }
private fun emptyCheck() { private fun emptyCheck() {
if (this::participationAdapter.isInitialized && if (isRecyclerViewInitialized() && participationAdapter.currentList.isEmpty()) {
participationAdapter.currentList.isEmpty())
{
binding.divider.visibility = View.GONE binding.divider.visibility = View.GONE
} }
} }

Loading…
Cancel
Save