Untitled
unknown
plain_text
3 years ago
11 kB
7
Indexable
package com.fairfairdepanneur
import android.app.Dialog
import android.app.TimePickerDialog
import android.os.Bundle
import android.widget.TimePicker
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.setFragmentResult
import java.text.SimpleDateFormat
import java.util.*
class TimePickerFragment : DialogFragment(), TimePickerDialog.OnTimeSetListener {
private val calendar = Calendar.getInstance()
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val hourOfDay = calendar.get(Calendar.HOUR_OF_DAY)
val minute = calendar.get(Calendar.MINUTE)
return TimePickerDialog(requireActivity(),this, hourOfDay, minute, true)
}
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay)
calendar.set(Calendar.MINUTE, minute)
val selectedTime = SimpleDateFormat("HH-mm", Locale.FRANCE).format(calendar.time)
var selectedDateBundle = Bundle()
selectedDateBundle.putString("SELECTED_TIME", selectedTime)
setFragmentResult("REQUEST_CODE", selectedDateBundle)
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="@color/white"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="8dp">
<com.google.android.material.card.MaterialCardView
android:id="@+id/appointment_action_card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkable="true"
android:clickable="true"
android:focusable="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<!-- Title, secondary and supporting text -->
<TextView
android:id="@+id/title_card_1_appointment_step_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
android:text="@string/titleCard1AppointmentStepFragment"
android:textAppearance="?attr/textAppearanceTitleLarge"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/subtitle_card_1_appointment_step_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="0dp"
android:layout_marginEnd="0dp"
android:layout_marginTop="8dp"
android:text="@string/subtitleCard1AppointmentStepFragment"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:textColor="?android:attr/textColorSecondary"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_card_1_appointment_step_fragment" />
<com.google.android.material.button.MaterialButton
android:id="@+id/call_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:backgroundTint="@color/secondaryColor"
android:text="@string/titleCallButtonAppointmentStepFragment"
android:textAllCaps="true"
android:textColor="@color/white99"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/subtitle_card_1_appointment_step_fragment" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/callActionCard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:checkable="true"
android:clickable="true"
android:focusable="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<!-- Title, secondary and supporting text -->
<TextView
android:id="@+id/title_card_2_appointment_step_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/titleCard2AppointmentStepFragment"
android:textAppearance="?attr/textAppearanceTitleLarge"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/subtitle_card_2_appointment_step_fragment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/subtitleCard2AppointmentStepFragment"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:textColor="?android:attr/textColorSecondary"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title_card_2_appointment_step_fragment" />
<com.google.android.material.button.MaterialButton
android:id="@+id/set_appointment_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:backgroundTint="@color/secondaryColor"
android:text="@string/titleSetAppointmentButtonAppointmentStepFragment"
android:textAllCaps="true"
android:textColor="@color/white99"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/subtitle_card_2_appointment_step_fragment" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</ScrollView>
<com.google.android.material.button.MaterialButton
android:id="@+id/next_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:backgroundTint="@color/secondaryColor"
android:insetTop="0dp"
android:insetBottom="0dp"
android:padding="0dp"
android:textAllCaps="true"
android:text="@string/titleNextButtonAppointmentStepFragment"
android:textColor="@color/white99"
app:cornerRadius="0dp"/>
</RelativeLayout>
package com.fairfairdepanneur.ui
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import com.fairfairdepanneur.DatePickerFragment
import com.fairfairdepanneur.TimePickerFragment
import com.fairfairdepanneur.databinding.AppointmentStepFragmentBinding
class AppointmentStepFragment : Fragment() {
private var _binding: AppointmentStepFragmentBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View {
_binding = AppointmentStepFragmentBinding.inflate(inflater)
binding.apply {
callAction.setOnClickListener {
val intent = Intent(Intent.ACTION_DIAL, Uri.parse("tel:06 95 23 45 24"))
startActivity(intent)
}
setAppointmentAction.setOnClickListener {
val supportFragmentManager = activity?.supportFragmentManager
/**
val datePickerFragment = DatePickerFragment()
supportFragmentManager?.setFragmentResultListener(
"REQUEST_KEY",
viewLifecycleOwner
) { resultKey, bundle ->
if (resultKey == "REQUEST_KEY") {
val date = bundle.getString("SELECTED_DATE")
// Toast.LENGTH_LONG(date)
}
}
if (supportFragmentManager != null) {
datePickerFragment.show(supportFragmentManager, "DatePickerFragment")
}
**/
val timePickerFragment = TimePickerFragment()
supportFragmentManager?.setFragmentResultListener(
"REQUEST_KEY",
viewLifecycleOwner
) { resultKey, bundle ->
if (resultKey == "REQUEST_KEY") {
val time = bundle.getString("SELECTED_TIME")
// Toast.LENGTH_LONG(date)
}
}
if (supportFragmentManager != null) {
timePickerFragment.show(supportFragmentManager, "TimePickerFragment")
}
}
}
return binding.root
}
}Editor is loading...