timepicker button met popup-klok functionaliteit
This commit is contained in:
		
							parent
							
								
									3bf0157adc
								
							
						
					
					
						commit
						2c62e13caa
					
				
					 10 changed files with 112 additions and 0 deletions
				
			
		|  | @ -0,0 +1,47 @@ | ||||||
|  | package be.ugent.sel.studeez.common.composable | ||||||
|  | 
 | ||||||
|  | import android.app.TimePickerDialog | ||||||
|  | import android.app.TimePickerDialog.OnTimeSetListener | ||||||
|  | import android.content.Context | ||||||
|  | import androidx.compose.foundation.BorderStroke | ||||||
|  | import androidx.compose.foundation.shape.RoundedCornerShape | ||||||
|  | import androidx.compose.material.Button | ||||||
|  | import androidx.compose.material.ButtonColors | ||||||
|  | import androidx.compose.material.ButtonDefaults | ||||||
|  | import androidx.compose.material.Text | ||||||
|  | import androidx.compose.runtime.Composable | ||||||
|  | import androidx.compose.ui.Modifier | ||||||
|  | import androidx.compose.ui.platform.LocalContext | ||||||
|  | import androidx.compose.ui.unit.dp | ||||||
|  | import be.ugent.sel.studeez.data.local.models.timer_functional.HoursMinutesSeconds | ||||||
|  | import java.util.* | ||||||
|  | 
 | ||||||
|  | // TODO codeduplicatie met Tibo, later wegdoen | ||||||
|  | @Composable | ||||||
|  | fun TimePickerButton( | ||||||
|  |     hoursMinutesSeconds: HoursMinutesSeconds, | ||||||
|  |     modifier: Modifier = Modifier, | ||||||
|  |     colors: ButtonColors = ButtonDefaults.buttonColors(), | ||||||
|  |     border: BorderStroke? = null, | ||||||
|  |     onTimeSetListener: OnTimeSetListener | ||||||
|  | ) { | ||||||
|  |     val context = LocalContext.current | ||||||
|  |     Button( | ||||||
|  |         onClick = { pickDuration(context, onTimeSetListener) }, | ||||||
|  |         modifier = modifier, | ||||||
|  |         shape = RoundedCornerShape(20.dp), | ||||||
|  |         colors = colors, | ||||||
|  |         border = border | ||||||
|  |     ) { | ||||||
|  |         Text(text = hoursMinutesSeconds.toString()) | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // TODO idem codedup Tibo | ||||||
|  | private fun pickDuration(context: Context, listener: OnTimeSetListener) { | ||||||
|  |     val mCalendar = Calendar.getInstance() | ||||||
|  |     val mHour = mCalendar[Calendar.HOUR] | ||||||
|  |     val mMinute = mCalendar[Calendar.MINUTE] | ||||||
|  |     val mTimePickerDialog = TimePickerDialog(context, listener, mHour, mMinute, true) | ||||||
|  |     mTimePickerDialog.show() | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package be.ugent.sel.studeez.data | ||||||
|  | 
 | ||||||
|  | class EditTimerState { | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package be.ugent.sel.studeez.data.local.models.timer_info | ||||||
|  | 
 | ||||||
|  | interface TimerInfoVisitor { | ||||||
|  | } | ||||||
|  | @ -0,0 +1,35 @@ | ||||||
|  | package be.ugent.sel.studeez.screens.timer_edit | ||||||
|  | 
 | ||||||
|  | import android.annotation.SuppressLint | ||||||
|  | import androidx.compose.foundation.layout.Column | ||||||
|  | import androidx.compose.foundation.layout.Row | ||||||
|  | import androidx.compose.material.Text | ||||||
|  | import androidx.compose.runtime.Composable | ||||||
|  | import androidx.compose.ui.Modifier | ||||||
|  | import be.ugent.sel.studeez.R | ||||||
|  | import be.ugent.sel.studeez.common.composable.BasicButton | ||||||
|  | import be.ugent.sel.studeez.common.ext.basicButton | ||||||
|  | import be.ugent.sel.studeez.data.local.models.timer_info.CustomTimerInfo | ||||||
|  | import be.ugent.sel.studeez.data.local.models.timer_info.EndlessTimerInfo | ||||||
|  | import be.ugent.sel.studeez.data.local.models.timer_info.PomodoroTimerInfo | ||||||
|  | import be.ugent.sel.studeez.data.local.models.timer_info.TimerInfoVisitor | ||||||
|  | 
 | ||||||
|  | class GetTimerEditView: TimerInfoVisitor<Unit> { | ||||||
|  | 
 | ||||||
|  |     @SuppressLint("ComposableNaming") | ||||||
|  |     override fun visitCustomTimerInfo(customTimerInfo: CustomTimerInfo) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @SuppressLint("ComposableNaming") | ||||||
|  |     override fun visitEndlessTimerInfo(endlessTimerInfo: EndlessTimerInfo) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     @SuppressLint("ComposableNaming") | ||||||
|  |     override fun visitBreakTimerInfo(pomodoroTimerInfo: PomodoroTimerInfo) { | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | package be.ugent.sel.studeez.screens.timer_edit | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package be.ugent.sel.studeez.screens.timer_edit | ||||||
|  | 
 | ||||||
|  | class TimerEditViewModel { | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package be.ugent.sel.studeez.screens.timer_edit | ||||||
|  | 
 | ||||||
|  | abstract class AbstractTimerEditScreen { | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package be.ugent.sel.studeez.screens.timer_edit.editScreens | ||||||
|  | 
 | ||||||
|  | class BreakTimerEditScreen { | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package be.ugent.sel.studeez.screens.timer_edit | ||||||
|  | 
 | ||||||
|  | class CustomTimerEditScreen { | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | package be.ugent.sel.studeez.screens.timer_edit.editScreens | ||||||
|  | 
 | ||||||
|  | class EndlessTimerEditScreen { | ||||||
|  | } | ||||||
		Reference in a new issue
	
	 lbarraga
						lbarraga