1 package com.testdata
2 
3 import android.os.Build
4 import androidx.annotation.RequiresApi
5 import androidx.annotation.RestrictTo
6 import androidx.annotation.RestrictTo.Scope
7 import androidx.appfunctions.AppFunctionSerializableProxy
8 import java.time.LocalDateTime
9 
10 /**
11  * A proxy class for [LocalDateTime] that can be used to serialize and deserialize [LocalDateTime]
12  * objects across the App Functions boundary.
13  */
14 @RestrictTo(Scope.LIBRARY_GROUP)
15 @AppFunctionSerializableProxy(targetClass = LocalDateTime::class)
16 public data class AppFunctionLocalDateTime(
17     val year: Int,
18     val month: Int,
19     val dayOfMonth: Int,
20     val hour: Int,
21     val minute: Int,
22     val second: Int,
23     val nanoOfSecond: Int
24 ) {
25     @RequiresApi(Build.VERSION_CODES.O)
toLocalDateTimenull26     public fun toLocalDateTime(): LocalDateTime {
27         return LocalDateTime.of(year, month, dayOfMonth, hour, minute, second, nanoOfSecond)
28     }
29 
30     public companion object {}
31 }
32