From 5fecd1c3309dbea2fe0f693bb74b7dee06d20b2a Mon Sep 17 00:00:00 2001 From: VictorModi Date: Fri, 9 Feb 2024 18:04:05 +0800 Subject: [PATCH] Fixed issue of inserting duplicate data --- .../java/statusbar/finder/LyricsDatabase.java | 25 +++++++------------ 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/statusbar/finder/LyricsDatabase.java b/app/src/main/java/statusbar/finder/LyricsDatabase.java index dc3c44f..534267f 100644 --- a/app/src/main/java/statusbar/finder/LyricsDatabase.java +++ b/app/src/main/java/statusbar/finder/LyricsDatabase.java @@ -56,25 +56,18 @@ public boolean insertLyricIntoDatabase(ILrcProvider.LyricResult lyricResult, ILr "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; SQLiteDatabase db = this.getWritableDatabase(); db.beginTransaction(); - if (lyricResult == null) { - try { + if (searchLyricFromDatabase(originMediaInfo) != null) return true; + try { + if (lyricResult == null) { db.execSQL(query, new Object[]{originMediaInfo.getTitle(), originMediaInfo.getArtist(), originMediaInfo.getAlbum(), packageName, originMediaInfo.getDuration(), -1, null, null, null, null, null, null, 0}); - db.setTransactionSuccessful(); - return true; - } catch (Exception e) { - e.fillInStackTrace(); - return false; - } finally { - db.endTransaction(); + } else { + db.execSQL(query, new Object[]{originMediaInfo.getTitle(), originMediaInfo.getArtist(), originMediaInfo.getAlbum(), + packageName, originMediaInfo.getDuration(), lyricResult.mDistance, lyricResult.resultInfo.getTitle() + , lyricResult.resultInfo.getArtist(), lyricResult.resultInfo.getAlbum(), lyricResult.mLyric, lyricResult.mTranslatedLyric, + lyricResult.mSource, 0}); } - } - try { - db.execSQL(query, new Object[]{originMediaInfo.getTitle(), originMediaInfo.getArtist(), originMediaInfo.getAlbum(), - packageName, originMediaInfo.getDuration(), lyricResult.mDistance, lyricResult.resultInfo.getTitle() - , lyricResult.resultInfo.getArtist(), lyricResult.resultInfo.getAlbum(), lyricResult.mLyric, lyricResult.mTranslatedLyric, - lyricResult.mSource, 0}); - db.setTransactionSuccessful(); + db.setTransactionSuccessful(); return true; } catch (Exception e) { e.fillInStackTrace();