Skip to content

Commit 6029292

Browse files
committed
Merge branch 'release/1.5.1'
2 parents 0e3c6b0 + 76b438a commit 6029292

File tree

3 files changed

+12
-98
lines changed

3 files changed

+12
-98
lines changed

pam-android-kotlin/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id 'com.android.library'
33
id 'org.jetbrains.kotlin.android'
4+
id "kotlin-parcelize"
45
}
56

67
android {

pam-android-kotlin/src/main/java/ai/pams/android/kotlin/models/notification/NotificationItem.kt

Lines changed: 5 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,21 @@ import ai.pams.android.kotlin.utils.DateUtils
88
import android.content.Context
99
import android.os.Parcel
1010
import android.os.Parcelable
11+
import kotlinx.parcelize.IgnoredOnParcel
1112
import org.json.JSONObject
1213
import java.text.SimpleDateFormat
1314
import java.util.*
15+
import kotlinx.parcelize.Parcelize
16+
import kotlinx.parcelize.RawValue
1417

15-
18+
@Parcelize
1619
data class NotificationItem(
1720
var date: Date? = null,
1821
val deliverId: String? = null,
1922
val description: String? = null,
2023
val flex: String? = null,
2124
val isOpen: Boolean? = null,
22-
val payload: Map<String, Any>? = null,
25+
val payload: @RawValue Map<String, Any>? = null,
2326
val pixel: String? = null,
2427
val thumbnailUrl: String? = null,
2528
val title: String? = null,
@@ -53,100 +56,4 @@ data class NotificationItem(
5356
}
5457
}
5558

56-
57-
//PARCEL IMPLEMENTATION
58-
constructor(parcel: Parcel) : this(
59-
//date
60-
convertStringToDate(parcel.readString() ),
61-
//deliverId
62-
parcel.readString(),
63-
//description
64-
parcel.readString(),
65-
//flex
66-
parcel.readString(),
67-
//isOpen
68-
parcel.readValue(Boolean::class.java.classLoader) as? Boolean,
69-
//payload
70-
jsonToMap( parcel.readString()),
71-
//pixel
72-
parcel.readString(),
73-
//thumbnailUrl
74-
parcel.readString(),
75-
//title
76-
parcel.readString(),
77-
//url
78-
parcel.readString(),
79-
//popupType
80-
parcel.readString()
81-
) {
82-
bannerUrl = parcel.readString()
83-
}
84-
85-
override fun writeToParcel(parcel: Parcel, flags: Int) {
86-
//date
87-
if( date != null ){
88-
var dateStr = ""
89-
date?.let{
90-
val dateFormat = SimpleDateFormat("yyyy-mm-dd hh:mm:ss")
91-
dateStr = dateFormat.format(it)
92-
}
93-
parcel.writeString(dateStr)
94-
}else{
95-
parcel.writeString("-")
96-
}
97-
98-
parcel.writeString(deliverId)
99-
parcel.writeString(description)
100-
parcel.writeString(flex)
101-
parcel.writeValue(isOpen)
102-
parcel.writeValue(payload)
103-
parcel.writeString(pixel)
104-
parcel.writeString(thumbnailUrl)
105-
parcel.writeString(title)
106-
parcel.writeString(url)
107-
parcel.writeString(popupType)
108-
parcel.writeString(bannerUrl)
109-
}
110-
111-
override fun describeContents(): Int {
112-
return 0
113-
}
114-
115-
companion object CREATOR : Parcelable.Creator<NotificationItem> {
116-
override fun createFromParcel(parcel: Parcel): NotificationItem {
117-
return NotificationItem(parcel)
118-
}
119-
120-
override fun newArray(size: Int): Array<NotificationItem?> {
121-
return arrayOfNulls(size)
122-
}
123-
124-
fun jsonToMap(jsonStr: String?): Map<String, Any>? {
125-
if(jsonStr == null){
126-
return null
127-
}
128-
val json = JSONObject(jsonStr)
129-
val m = mutableMapOf<String, Any>()
130-
json.keys().forEach {
131-
if(json.get(it) is Int ){
132-
m[it] = json.optInt(it)
133-
}else if(json.get(it) is String){
134-
m[it] = json.optString(it)
135-
}else if(json.get(it) is Boolean){
136-
m[it] = json.optBoolean(it)
137-
}else if(json.get(it) is Double){
138-
m[it] = json.optDouble(it)
139-
}else{
140-
m[it] = json.get(it)
141-
}
142-
}
143-
return m.toMap()
144-
}
145-
fun convertStringToDate(str: String?): Date?{
146-
str?.let {
147-
return@convertStringToDate SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(it)
148-
}
149-
return null
150-
}
151-
}
15259
}

pam-android-kotlin/src/test/java/ai/pams/android/kotlin/ExampleUnitTest.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
package ai.pams.android.kotlin
22

3+
import ai.pams.android.kotlin.models.notification.NotificationItem
34
import ai.pams.android.kotlin.models.notification.NotificationList
45
import ai.pams.android.kotlin.utils.DateUtils
56
import android.content.Context
7+
import android.os.Parcel
8+
import android.os.Parcelable
9+
import android.util.Log
610
import androidx.test.platform.app.InstrumentationRegistry
711
import org.junit.Assert.*
812
import org.junit.Before
913
import org.junit.Test
1014
import org.junit.runner.RunWith
1115
import org.robolectric.RobolectricTestRunner
16+
import java.util.*
17+
1218

1319
/**
1420
* Example local unit test, which will execute on the development machine (host).

0 commit comments

Comments
 (0)