Skip to content

Commit befadae

Browse files
committed
修复序列化引起的崩溃
1 parent fa8487e commit befadae

File tree

8 files changed

+52
-13
lines changed

8 files changed

+52
-13
lines changed

app/build.gradle.kts

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ android {
4141
minSdk = 19
4242
targetSdk = 33
4343

44-
versionCode = 16400
45-
versionName = "1.6.4.0"
44+
versionCode = 16500
45+
versionName = "1.6.5.0"
4646

4747
vectorDrawables.useSupportLibrary = true
4848
multiDexEnabled = true

app/src/main/java/remix/myplayer/bean/mp3/Album.kt

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import android.content.ContentUris
44
import android.net.Uri
55
import android.os.Parcelable
66
import kotlinx.parcelize.Parcelize
7+
import java.io.Serial
78

89
/**
910
* Created by Remix on 2017/10/22.
@@ -21,4 +22,9 @@ data class Album(val albumID: Long,
2122
override fun getKey(): String {
2223
return albumID.toString()
2324
}
25+
26+
companion object {
27+
@Serial
28+
private const val serialVersionUID: Long = 1214925651243602701L
29+
}
2430
}

app/src/main/java/remix/myplayer/bean/mp3/Artist.kt

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package remix.myplayer.bean.mp3
22

33
import android.os.Parcelable
44
import kotlinx.parcelize.Parcelize
5+
import java.io.Serial
56

67
/**
78
* Created by Remix on 2017/10/22.
@@ -15,4 +16,9 @@ data class Artist(val artistID: Long,
1516
override fun getKey(): String {
1617
return artistID.toString()
1718
}
19+
20+
companion object {
21+
@Serial
22+
private const val serialVersionUID: Long = -8314996381751820478L
23+
}
1824
}

app/src/main/java/remix/myplayer/bean/mp3/Folder.kt

+7-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package remix.myplayer.bean.mp3
22

33
import android.os.Parcelable
44
import kotlinx.parcelize.Parcelize
5+
import java.io.Serial
56

67
/**
78
* Created by Remix on 2018/1/9.
@@ -17,9 +18,7 @@ data class Folder(val name: String?,
1718

1819
other as Folder
1920

20-
if (path != other.path) return false
21-
22-
return true
21+
return path == other.path
2322
}
2423

2524
override fun hashCode(): Int {
@@ -29,4 +28,9 @@ data class Folder(val name: String?,
2928
override fun getKey(): String {
3029
return path
3130
}
31+
32+
companion object {
33+
@Serial
34+
private const val serialVersionUID: Long = -7333769143033322264L
35+
}
3236
}

app/src/main/java/remix/myplayer/bean/mp3/Genre.kt

+6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,17 @@ package remix.myplayer.bean.mp3
22

33
import android.os.Parcelable
44
import kotlinx.parcelize.Parcelize
5+
import java.io.Serial
56

67
@Parcelize
78
class Genre(val id: Long, val genre: String, val count: Int) : Parcelable, APlayerModel {
89

910
override fun getKey(): String {
1011
return id.toString()
1112
}
13+
14+
companion object {
15+
@Serial
16+
private const val serialVersionUID: Long = -2424542670832627129L
17+
}
1218
}

app/src/main/java/remix/myplayer/bean/mp3/Song.kt

+16-6
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import okhttp3.Credentials
88
import remix.myplayer.App
99
import remix.myplayer.util.SPUtil
1010
import timber.log.Timber
11+
import java.io.Serial
1112

1213
/**
1314
* Created by Remix on 2015/11/30.
@@ -180,9 +181,7 @@ sealed class Song(
180181

181182
other as Song
182183

183-
if (id != other.id) return false
184-
185-
return true
184+
return id == other.id
186185
}
187186

188187
override fun hashCode(): Int {
@@ -192,6 +191,11 @@ sealed class Song(
192191
override fun toString(): String {
193192
return "LocalSong(id='$id', data='$data')"
194193
}
194+
195+
companion object {
196+
@Serial
197+
private val serialVersionUID: Long = -6482253600425978196
198+
}
195199
}
196200

197201
class Remote(
@@ -241,9 +245,7 @@ sealed class Song(
241245

242246
other as Song
243247

244-
if (data != other.data) return false
245-
246-
return true
248+
return data == other.data
247249
}
248250

249251
override fun hashCode(): Int {
@@ -253,9 +255,17 @@ sealed class Song(
253255
override fun toString(): String {
254256
return "RemoteSong(data='$data')"
255257
}
258+
259+
companion object {
260+
@Serial
261+
private const val serialVersionUID: Long = 13111653236476560L
262+
}
256263
}
257264

258265
companion object {
266+
@Serial
267+
private const val serialVersionUID: Long = 6842734564265523984
268+
259269
@JvmStatic
260270
val EMPTY_SONG = Local(-1, "", "", "", -1, "", -1, -1, "", -1, "", "", "", -1)
261271

app/src/main/java/remix/myplayer/db/room/model/PlayList.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import androidx.room.*
44
import com.google.gson.Gson
55
import com.google.gson.reflect.TypeToken
66
import remix.myplayer.bean.mp3.APlayerModel
7-
import java.io.Serializable
7+
import java.io.Serial
88

99
/**
1010
* Created by remix on 2019/1/12
@@ -34,6 +34,8 @@ data class PlayList(
3434
}
3535

3636
companion object {
37+
@Serial
38+
private const val serialVersionUID: Long = 7380279450459904510L
3739
const val TABLE_NAME = "PlayList"
3840
}
3941

app/src/main/java/remix/myplayer/ui/activity/PlayerActivity.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,12 @@ class PlayerActivity : BaseMusicActivity() {
237237

238238
song = getCurrentSong()
239239
if (song == Song.EMPTY_SONG && intent.hasExtra(EXTRA_SONG)) {
240-
song = intent.getSerializableExtra(EXTRA_SONG) as Song
240+
song = try {
241+
intent.getSerializableExtra(EXTRA_SONG) as Song
242+
} catch (e: Exception) {
243+
Timber.w("failed to load song: $e")
244+
Song.EMPTY_SONG
245+
}
241246
}
242247

243248
setUpBottom()

0 commit comments

Comments
 (0)