mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
Merge pull request #2216 from naveensingh/fix_r8_crash
Fix crash when deserializing attendee class
This commit is contained in:
@@ -6,7 +6,6 @@ plugins {
|
|||||||
alias(libs.plugins.android)
|
alias(libs.plugins.android)
|
||||||
alias(libs.plugins.kotlinAndroid)
|
alias(libs.plugins.kotlinAndroid)
|
||||||
alias(libs.plugins.ksp)
|
alias(libs.plugins.ksp)
|
||||||
alias(libs.plugins.parcelize)
|
|
||||||
base
|
base
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,6 +24,8 @@ import android.widget.RelativeLayout
|
|||||||
import com.google.android.material.timepicker.MaterialTimePicker
|
import com.google.android.material.timepicker.MaterialTimePicker
|
||||||
import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_CLOCK
|
import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_CLOCK
|
||||||
import com.google.android.material.timepicker.TimeFormat
|
import com.google.android.material.timepicker.TimeFormat
|
||||||
|
import com.google.gson.Gson
|
||||||
|
import com.google.gson.reflect.TypeToken
|
||||||
import com.simplemobiletools.calendar.pro.R
|
import com.simplemobiletools.calendar.pro.R
|
||||||
import com.simplemobiletools.calendar.pro.adapters.AutoCompleteTextViewAdapter
|
import com.simplemobiletools.calendar.pro.adapters.AutoCompleteTextViewAdapter
|
||||||
import com.simplemobiletools.calendar.pro.databinding.ActivityEventBinding
|
import com.simplemobiletools.calendar.pro.databinding.ActivityEventBinding
|
||||||
@@ -169,7 +171,7 @@ class EventActivity : SimpleActivity() {
|
|||||||
putInt(REPEAT_RULE, mRepeatRule)
|
putInt(REPEAT_RULE, mRepeatRule)
|
||||||
putLong(REPEAT_LIMIT, mRepeatLimit)
|
putLong(REPEAT_LIMIT, mRepeatLimit)
|
||||||
|
|
||||||
putParcelableArrayList(ATTENDEES, getAllAttendees(false))
|
putString(ATTENDEES, Gson().toJson(getAllAttendees(false)))
|
||||||
|
|
||||||
putInt(AVAILABILITY, mAvailability)
|
putInt(AVAILABILITY, mAvailability)
|
||||||
putInt(EVENT_COLOR, mEventColor)
|
putInt(EVENT_COLOR, mEventColor)
|
||||||
@@ -211,7 +213,8 @@ class EventActivity : SimpleActivity() {
|
|||||||
mRepeatRule = getInt(REPEAT_RULE)
|
mRepeatRule = getInt(REPEAT_RULE)
|
||||||
mRepeatLimit = getLong(REPEAT_LIMIT)
|
mRepeatLimit = getLong(REPEAT_LIMIT)
|
||||||
|
|
||||||
mAttendees = getParcelableArrayList(ATTENDEES) ?: arrayListOf()
|
val token = object : TypeToken<List<Attendee>>() {}.type
|
||||||
|
mAttendees = Gson().fromJson<ArrayList<Attendee>>(getString(ATTENDEES), token) ?: ArrayList()
|
||||||
|
|
||||||
mEventTypeId = getLong(EVENT_TYPE_ID)
|
mEventTypeId = getLong(EVENT_TYPE_ID)
|
||||||
mEventCalendarId = getInt(EVENT_CALENDAR_ID)
|
mEventCalendarId = getInt(EVENT_CALENDAR_ID)
|
||||||
|
@@ -2,16 +2,13 @@ package com.simplemobiletools.calendar.pro.models
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Parcelable
|
|
||||||
import android.provider.CalendarContract
|
import android.provider.CalendarContract
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
|
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
|
||||||
import com.bumptech.glide.request.RequestOptions
|
import com.bumptech.glide.request.RequestOptions
|
||||||
import kotlinx.parcelize.Parcelize
|
|
||||||
|
|
||||||
@Parcelize
|
|
||||||
data class Attendee(
|
data class Attendee(
|
||||||
val contactId: Int,
|
val contactId: Int,
|
||||||
var name: String,
|
var name: String,
|
||||||
@@ -20,7 +17,7 @@ data class Attendee(
|
|||||||
var photoUri: String,
|
var photoUri: String,
|
||||||
var isMe: Boolean,
|
var isMe: Boolean,
|
||||||
var relationship: Int
|
var relationship: Int
|
||||||
) : Parcelable {
|
) {
|
||||||
fun getPublicName() = name.ifEmpty { email }
|
fun getPublicName() = name.ifEmpty { email }
|
||||||
|
|
||||||
fun updateImage(context: Context, imageView: ImageView, placeholder: Drawable) {
|
fun updateImage(context: Context, imageView: ImageView, placeholder: Drawable) {
|
||||||
|
@@ -2,7 +2,6 @@ plugins {
|
|||||||
alias(libs.plugins.android).apply(false)
|
alias(libs.plugins.android).apply(false)
|
||||||
alias(libs.plugins.kotlinAndroid).apply(false)
|
alias(libs.plugins.kotlinAndroid).apply(false)
|
||||||
alias(libs.plugins.ksp).apply(false)
|
alias(libs.plugins.ksp).apply(false)
|
||||||
alias(libs.plugins.parcelize).apply(false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tasks.register<Delete>("clean") {
|
tasks.register<Delete>("clean") {
|
||||||
|
@@ -45,5 +45,4 @@ room = [
|
|||||||
android = { id = "com.android.application", version.ref = "gradlePlugins-agp" }
|
android = { id = "com.android.application", version.ref = "gradlePlugins-agp" }
|
||||||
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
||||||
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
||||||
parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user