From e0dde2c982191bcda023c233e6dc890f33555a13 Mon Sep 17 00:00:00 2001 From: tarsin Date: Fri, 16 Sep 2022 11:40:02 +0800 Subject: [PATCH] Read database permissively, Fix #274 --- .../main/java/com/hippo/ehviewer/EhDB.java | 86 +++++++++++-------- 1 file changed, 50 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/EhDB.java b/app/src/main/java/com/hippo/ehviewer/EhDB.java index 062cd2548..de2f3610d 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhDB.java +++ b/app/src/main/java/com/hippo/ehviewer/EhDB.java @@ -493,57 +493,71 @@ public class EhDB { // Downloads DownloadManager manager = EhApplication.getDownloadManager(context); - List downloadInfoList = oldRoomDatabase.downloadsDao().list(); - manager.addDownload(downloadInfoList, false); + try { + List downloadInfoList = oldRoomDatabase.downloadsDao().list(); + manager.addDownload(downloadInfoList, false); + } catch (Exception ignored) {} // Download label - List downloadLabelList = oldRoomDatabase.downloadLabelDao().list(); - manager.addDownloadLabel(downloadLabelList); + try { + List downloadLabelList = oldRoomDatabase.downloadLabelDao().list(); + manager.addDownloadLabel(downloadLabelList); + } catch (Exception ignored) {} // Download dirname - List downloadDirnameList = oldRoomDatabase.downloadDirnameDao().list(); - for (DownloadDirname dirname : downloadDirnameList) { - putDownloadDirname(dirname.getGid(), dirname.getDirname()); - } + try { + List downloadDirnameList = oldRoomDatabase.downloadDirnameDao().list(); + for (DownloadDirname dirname : downloadDirnameList) { + putDownloadDirname(dirname.getGid(), dirname.getDirname()); + } + } catch (Exception ignored) {} // History - List historyInfoList = oldRoomDatabase.historyDao().list(); - putHistoryInfo(historyInfoList); + try { + List historyInfoList = oldRoomDatabase.historyDao().list(); + putHistoryInfo(historyInfoList); + } catch (Exception ignored) {} // QuickSearch - List quickSearchList = oldRoomDatabase.quickSearchDao().list(); - List currentQuickSearchList = db.quickSearchDao().list(); - List importList = new ArrayList<>(); - for (QuickSearch quickSearch : quickSearchList) { - String name = quickSearch.name; - for (QuickSearch q : currentQuickSearchList) { - if (ObjectUtils.equal(q.name, name)) { - // The same name - name = null; - break; + try { + List quickSearchList = oldRoomDatabase.quickSearchDao().list(); + List currentQuickSearchList = db.quickSearchDao().list(); + List importList = new ArrayList<>(); + for (QuickSearch quickSearch : quickSearchList) { + String name = quickSearch.name; + for (QuickSearch q : currentQuickSearchList) { + if (ObjectUtils.equal(q.name, name)) { + // The same name + name = null; + break; + } } + if (null == name) { + continue; + } + importList.add(quickSearch); } - if (null == name) { - continue; - } - importList.add(quickSearch); - } - importQuickSearch(importList); + importQuickSearch(importList); + } catch (Exception ignored) {} // LocalFavorites - List localFavoriteInfoList = oldRoomDatabase.localFavoritesDao().list(); - for (LocalFavoriteInfo info : localFavoriteInfoList) { - putLocalFavorites(info); - } + try { + List localFavoriteInfoList = oldRoomDatabase.localFavoritesDao().list(); + for (LocalFavoriteInfo info : localFavoriteInfoList) { + putLocalFavorites(info); + } + } catch (Exception ignored) {} // Filter - List filterList = oldRoomDatabase.filterDao().list(); - List currentFilterList = db.filterDao().list(); - for (Filter filter : filterList) { - if (!currentFilterList.contains(filter)) { - addFilter(filter); + try { + List filterList = oldRoomDatabase.filterDao().list(); + List currentFilterList = db.filterDao().list(); + for (Filter filter : filterList) { + if (!currentFilterList.contains(filter)) { + addFilter(filter); + } } - } + } catch (Exception ignored) {} return null; } catch (Throwable e) {