Merge pull request #2216 from naveensingh/fix_r8_crash

Fix crash when deserializing attendee class
This commit is contained in:
Tibor Kaputa 2023-09-30 21:26:15 +02:00 committed by GitHub
commit 1843b33d16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 6 additions and 9 deletions

View File

@ -6,7 +6,6 @@ plugins {
alias(libs.plugins.android)
alias(libs.plugins.kotlinAndroid)
alias(libs.plugins.ksp)
alias(libs.plugins.parcelize)
base
}

View File

@ -24,6 +24,8 @@ import android.widget.RelativeLayout
import com.google.android.material.timepicker.MaterialTimePicker
import com.google.android.material.timepicker.MaterialTimePicker.INPUT_MODE_CLOCK
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.adapters.AutoCompleteTextViewAdapter
import com.simplemobiletools.calendar.pro.databinding.ActivityEventBinding
@ -169,7 +171,7 @@ class EventActivity : SimpleActivity() {
putInt(REPEAT_RULE, mRepeatRule)
putLong(REPEAT_LIMIT, mRepeatLimit)
putParcelableArrayList(ATTENDEES, getAllAttendees(false))
putString(ATTENDEES, Gson().toJson(getAllAttendees(false)))
putInt(AVAILABILITY, mAvailability)
putInt(EVENT_COLOR, mEventColor)
@ -211,7 +213,8 @@ class EventActivity : SimpleActivity() {
mRepeatRule = getInt(REPEAT_RULE)
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)
mEventCalendarId = getInt(EVENT_CALENDAR_ID)

View File

@ -2,16 +2,13 @@ package com.simplemobiletools.calendar.pro.models
import android.content.Context
import android.graphics.drawable.Drawable
import android.os.Parcelable
import android.provider.CalendarContract
import android.widget.ImageView
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
import com.bumptech.glide.request.RequestOptions
import kotlinx.parcelize.Parcelize
@Parcelize
data class Attendee(
val contactId: Int,
var name: String,
@ -20,7 +17,7 @@ data class Attendee(
var photoUri: String,
var isMe: Boolean,
var relationship: Int
) : Parcelable {
) {
fun getPublicName() = name.ifEmpty { email }
fun updateImage(context: Context, imageView: ImageView, placeholder: Drawable) {

View File

@ -2,7 +2,6 @@ plugins {
alias(libs.plugins.android).apply(false)
alias(libs.plugins.kotlinAndroid).apply(false)
alias(libs.plugins.ksp).apply(false)
alias(libs.plugins.parcelize).apply(false)
}
tasks.register<Delete>("clean") {

View File

@ -45,5 +45,4 @@ room = [
android = { id = "com.android.application", version.ref = "gradlePlugins-agp" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }