Skip to content

Instantly share code, notes, and snippets.

@laurentyhuel
laurentyhuel / CustomerDisplayPresentation.kt
Created May 9, 2022 08:33
2x screen CustomerDisplayPresentation
class CustomerDisplayPresentation(
context: Context,
display: Display,
private var lifecycleOwner: LifecycleOwner?,
private var customerDisplayViewModel: CustomerDisplayViewModel?
) : Presentation(context, display) {
private val adapter = OrderItemPresentationAdapter(context)
private lateinit var binding: PresentationCustomerDisplayBinding
private var cartItems: List<OrderItemModel>
@laurentyhuel
laurentyhuel / CustomerDisplayViewModel.kt
Created May 9, 2022 08:29
2x screen SharedViewModel
class CustomerDisplayViewModel : ViewModel() {
enum class CustomerDisplayState(val flipperViewIndex: Int) {
DEFAULT(0), CART(1), CONFIRM_PRINT(2)
}
val stateLiveData = MutableLiveData<CustomerDisplayState>()
val cartLiveData = MutableLiveData<OrderCartPresentationModel>()
@laurentyhuel
laurentyhuel / full_layout.xml
Created May 9, 2022 08:24
2x screen : full layout
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<ViewFlipper
android:id="@+id/viewFlipper"
android:theme="@style/IO">
<androidx.constraintlayout.widget.ConstraintLayout
@laurentyhuel
laurentyhuel / activity.kt
Created May 9, 2022 08:21
2x screen : show presentation
private var presentation: DefaultPresentation? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
[...]
getCustomerDisplay(this)?.let { display ->
presentation = DefaultPresentation(display, applicationContext)
presentation?.setImage(uri)
}
}
@laurentyhuel
laurentyhuel / 2xscreen_defaultPresentation.kt
Created May 9, 2022 08:20
2xScreen : DefaultPresentation
class DefaultPresentation(
display: Display,
context: Context
) : Presentation(context, display) {
private lateinit var binding: PresentationDefaultBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestWindowFeature(Window.FEATURE_NO_TITLE)
@laurentyhuel
laurentyhuel / 2xscreen_layout
Created May 9, 2022 08:18
2xScreen : Default layout
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/presentation_image"
@laurentyhuel
laurentyhuel / 2xscreen_getDisplay
Created May 9, 2022 08:17
2xScreen : getCustomerDisplay
fun getCustomerDisplay(context: Context): Display? {
val displayManager = context.getSystemService(Context.DISPLAY_SERVICE) as DisplayManager
val displays = displayManager.displays
if (displays.size <= 1) {
return null
}
// We take the first additional screen
return displays[1]
}
@laurentyhuel
laurentyhuel / gist:baf81afd54f52a16260b9747ec735f42
Created March 21, 2022 15:54
2x screen CustomerDisplayPresentation
class CustomerDisplayPresentation(
context: Context,
display: Display,
private var lifecycleOwner: LifecycleOwner?,
private var customerDisplayViewModel: CustomerDisplayViewModel?
) : Presentation(context, display) {
private val adapter = OrderItemPresentationAdapter(context)
private lateinit var binding: PresentationCustomerDisplayBinding
private var cartItems: List<OrderItemModel>
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<ViewFlipper
android:id="@+id/viewFlipper"
android:theme="@style/IO">
<androidx.constraintlayout.widget.ConstraintLayout
@laurentyhuel
laurentyhuel / gist:1f9786092b4a73dfca71da38960a8811
Last active March 21, 2022 15:22
2x screen SharedViewModel
class CustomerDisplayViewModel : ViewModel() {
enum class CustomerDisplayState(val flipperViewIndex: Int) {
DEFAULT(0), CART(1), CONFIRM_PRINT(2)
}
val stateLiveData = MutableLiveData<CustomerDisplayState>()
val cartLiveData = MutableLiveData<OrderCartPresentationModel>()