Dauer eines Eintrags um Uhrzeiten ergänzt + Datums- und Zeiteingabe verbessert

master
Niko Diamadis 5 years ago
parent 4d33d0023e
commit ea40151795

@ -27,6 +27,7 @@ class EinsatzPusher : AppCompatActivity() {
private lateinit var databaseReference: DatabaseReference
private lateinit var databaseReferenceNew: DatabaseReference
private var date = ""
private var time = ""
private lateinit var time1: Time
private lateinit var time2: Time
private var duration = ""
@ -35,7 +36,6 @@ class EinsatzPusher : AppCompatActivity() {
private val simpleDateFormat = SimpleDateFormat("dd.MM.yyyy", Locale.GERMANY)
@SuppressLint("SetTextI18n")
@Suppress("DEPRECATION")
override fun onCreate(savedInstanceState: Bundle?) {
getBundleInformation()
super.onCreate(savedInstanceState)
@ -48,39 +48,58 @@ class EinsatzPusher : AppCompatActivity() {
supportActionBar?.setDisplayHomeAsUpEnabled(true)
val builder = MaterialDatePicker.Builder.datePicker().setTitleText("Datum")
val picker = builder.build()
var builder2 = MaterialTimePicker.Builder().setTimeFormat(TimeFormat.CLOCK_24H)
var picker2 = builder2.setTitleText("Von").build()
var builder3 = MaterialTimePicker.Builder().setTimeFormat(TimeFormat.CLOCK_24H)
var picker3 = builder3.setTitleText("Bis").build()
val builder2 = MaterialTimePicker.Builder().setTimeFormat(TimeFormat.CLOCK_24H).setTitleText("Von")
val builder3 = MaterialTimePicker.Builder().setTimeFormat(TimeFormat.CLOCK_24H).setTitleText("Bis")
date_button.setOnClickListener {
if (date != "null") {
val dateInMillis = simpleDateFormat.parse(date)!!.time
builder.setSelection(dateInMillis + 3600000)
}
if (time != "null") {
val times = time.split(" - ")
builder2.setHour(times[0].split(":")[0].toInt())
.setMinute(times[0].split(":")[1].toInt())
builder3.setHour(times[1].split(":")[0].toInt())
.setMinute(times[1].split(":")[1].toInt())
}
var tempTime = ""
val picker = builder.build()
val picker2 = builder2.build()
val picker3 = builder3.build()
var hour: String
var minute: String
var hoursInMillis: Long
var minutesInMillis: Long
picker.addOnPositiveButtonClickListener {
date = simpleDateFormat.format(Date(it))
date_view.text = Html.fromHtml("<b>Datum:</b><br/>${date}")
picker.clearOnPositiveButtonClickListeners()
picker2.show(supportFragmentManager, picker2.tag)
}
picker2.addOnPositiveButtonClickListener {
time1 = Time(0)
time1.hours = picker2.hour
time1.minutes = picker2.minute
picker2.clearOnPositiveButtonClickListeners()
builder2 = MaterialTimePicker.Builder().setTimeFormat(TimeFormat.CLOCK_24H)
picker2 = builder2.setTitleText("Von").build()
hour = picker2.hour.toString()
hour = if (hour.length != 1) hour else "0$hour"
minute = picker2.minute.toString()
minute = if (minute.length != 1) minute else "0$minute"
hoursInMillis = picker2.hour.toLong() * 3600000
minutesInMillis = picker2.minute.toLong() * 60000
time1 = Time(hoursInMillis + minutesInMillis)
tempTime += "${hour}:${minute} - "
picker3.show(supportFragmentManager, picker3.tag)
}
picker3.addOnPositiveButtonClickListener {
time2 = Time(0)
time2.hours = picker3.hour
time2.minutes = picker3.minute
picker3.clearOnPositiveButtonClickListeners()
builder3 = MaterialTimePicker.Builder().setTimeFormat(TimeFormat.CLOCK_24H)
picker3 = builder3.setTitleText("Bis").build()
hour = picker3.hour.toString()
hour = if (hour.length != 1) hour else "0$hour"
minute = picker3.minute.toString()
minute = if (minute.length != 1) minute else "0$minute"
hoursInMillis = hour.toLong() * 3600000
minutesInMillis = minute.toLong() * 60000
time2 = Time(hoursInMillis + minutesInMillis)
tempTime += "${hour}:${minute}"
time = tempTime
duration = DecimalFormat("#.#").format((time2.time - time1.time) / 3600 / 1000.toFloat())
duration = duration.replace(",", ".")
duration_view.text = Html.fromHtml("<b>Dauer:</b> $duration Stunden")
duration_view.text = Html.fromHtml("<b>Dauer:</b> $time Uhr, $duration Stunden")
}
picker.show(supportFragmentManager, picker.tag)
}
@ -109,6 +128,7 @@ class EinsatzPusher : AppCompatActivity() {
databaseReferenceNew.child("name").setValue(name)
databaseReferenceNew.child("location").setValue(location)
databaseReferenceNew.child("date").setValue(date)
databaseReferenceNew.child("time").setValue(time)
databaseReferenceNew.child("duration").setValue(duration)
finish()
startActivity(Intent(applicationContext, MainActivity::class.java))
@ -123,6 +143,7 @@ class EinsatzPusher : AppCompatActivity() {
name = intent.extras?.getString("name").toString()
location = intent.extras?.getString("location").toString()
date = intent.extras?.getString("date").toString()
time = intent.extras?.getString("time").toString()
duration = intent.extras?.getString("duration").toString()
}
@ -136,7 +157,9 @@ class EinsatzPusher : AppCompatActivity() {
if (date != "null") {
date_view.text = Html.fromHtml("<b>Datum:</b><br/>${date}")
}
if (duration != "null") {
if (time != "null") {
duration_view.text = Html.fromHtml("<b>Dauer:</b> $time Uhr, $duration Stunden")
} else if (duration != "null") {
duration_view.text = Html.fromHtml("<b>Dauer:</b> $duration Stunden")
}

@ -85,6 +85,7 @@ class MainActivity : AppCompatActivity() {
intent.putExtra("name", text.text)
intent.putExtra("location", text.location)
intent.putExtra("date", SimpleDateFormat("dd.MM.yyyy", Locale.GERMANY).format(text.date))
intent.putExtra("time", text.time)
intent.putExtra("duration", text.duration)
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(intent)
@ -186,6 +187,7 @@ class MainActivity : AppCompatActivity() {
snapshot.child("name").value.toString(),
snapshot.child("location").value.toString(),
SimpleDateFormat("dd.MM.yyyy", Locale.GERMANY).parse(snapshot.child("date").value.toString())!!,
snapshot.child("time").value.toString(),
snapshot.child("duration").value.toString()
)
data.add(data.size, element)
@ -207,6 +209,7 @@ class MainActivity : AppCompatActivity() {
snapshot.child("name").value.toString(),
snapshot.child("location").value.toString(),
SimpleDateFormat("dd.MM.yyyy", Locale.GERMANY).parse(snapshot.child("date").value.toString())!!,
snapshot.child("time").value.toString(),
snapshot.child("duration").value.toString()
)
data.remove(element)

@ -42,14 +42,10 @@ class ProjectActivity : AppCompatActivity() {
childKey = intent.extras?.getString("childKey").toString()
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_project)
supportActionBar?.setDisplayHomeAsUpEnabled(true)
sharedPref = getSharedPreferences("Safe", 0)
if (sharedPref.getBoolean("admin", false)) {
adminMode = true
}
supportActionBar?.setDisplayHomeAsUpEnabled(true)
if (sharedPref.getBoolean("admin", false)) adminMode = true
databaseReference = FirebaseDatabase.getInstance().getReference("einsätze").child(childKey)
@ -113,7 +109,7 @@ class ProjectActivity : AppCompatActivity() {
setValueEventListener("name", title_view)
setValueEventListener("location", location_view)
setValueEventListener("date", date_view)
setDurationEventListener()
setTimeEventListener()
add_button.setOnClickListener {
val name = getSharedPreferences("Safe", 0).getString("name", "invalid")!!
@ -253,19 +249,19 @@ class ProjectActivity : AppCompatActivity() {
databaseReference.child(childName).addListenerForSingleValueEvent(valueEventListener)
}
private fun setDurationEventListener() {
private fun setTimeEventListener() {
val valueEventListener = object: ValueEventListener {
override fun onDataChange(snapshot: DataSnapshot) {
val duration = snapshot.value.toString()
if (duration != "null") {
date_view.text = "${date_view.text}, ${snapshot.value.toString()} Stunden"
val time = snapshot.value.toString()
if (time != "null") {
date_view.text = "${date_view.text}, $time Uhr"
}
}
override fun onCancelled(error: DatabaseError) {
}
}
databaseReference.child("duration").addListenerForSingleValueEvent(valueEventListener)
databaseReference.child("time").addListenerForSingleValueEvent(valueEventListener)
}
private fun showDivider() {

@ -9,6 +9,7 @@ sealed class ProjectViewState {
val text: String,
val location: String,
val date: Date,
val time: String,
val duration: String
) : ProjectViewState()
}

Loading…
Cancel
Save