diff options
author | Christian Schneppe <christian@pix-art.de> | 2019-09-03 20:31:32 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2019-09-03 20:31:32 +0200 |
commit | be82ac563323ed83427b3ad692650c8283ce5338 (patch) | |
tree | 53dfcd82ec65e0b523c3790c3b57539a2aa0442b /src/main/java/de/pixart/messenger/services/XmppConnectionService.java | |
parent | 4aa24e84c49348f8d96c273f77a636557dbb40a2 (diff) |
fix some crashes
Diffstat (limited to 'src/main/java/de/pixart/messenger/services/XmppConnectionService.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/XmppConnectionService.java | 74 |
1 files changed, 41 insertions, 33 deletions
diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index 8fc39b97b..6f67d7bc0 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -4582,24 +4582,28 @@ public class XmppConnectionService extends Service { } public void clearConversationHistory(final Conversation conversation) { - final long clearDate; - final String reference; - if (conversation.countMessages() > 0) { - Message latestMessage = conversation.getLatestMessage(); - clearDate = latestMessage.getTimeSent() + 1000; - reference = latestMessage.getServerMsgId(); - } else { - clearDate = System.currentTimeMillis(); - reference = null; + try { + final long clearDate; + final String reference; + if (conversation.countMessages() > 0) { + Message latestMessage = conversation.getLatestMessage(); + clearDate = latestMessage.getTimeSent() + 1000; + reference = latestMessage.getServerMsgId(); + } else { + clearDate = System.currentTimeMillis(); + reference = null; + } + conversation.clearMessages(); + conversation.setHasMessagesLeftOnServer(false); //avoid messages getting loaded through mam + conversation.setLastClearHistory(clearDate, reference); + Runnable runnable = () -> { + databaseBackend.deleteMessagesInConversation(conversation); + databaseBackend.updateConversation(conversation); + }; + mDatabaseWriterExecutor.execute(runnable); + } catch (Exception e) { + e.printStackTrace(); } - conversation.clearMessages(); - conversation.setHasMessagesLeftOnServer(false); //avoid messages getting loaded through mam - conversation.setLastClearHistory(clearDate, reference); - Runnable runnable = () -> { - databaseBackend.deleteMessagesInConversation(conversation); - databaseBackend.updateConversation(conversation); - }; - mDatabaseWriterExecutor.execute(runnable); } public boolean sendBlockRequest(final Blockable blockable, boolean reportSpam) { @@ -4845,22 +4849,26 @@ public class XmppConnectionService extends Service { //start export log service every day at given time if (Config.ExportLogs) { if (Config.ExportLogs_Hour >= 0 && Config.ExportLogs_Hour <= 23 && Config.ExportLogs_Minute >= 0 && Config.ExportLogs_Minute <= 59) { - Calendar now = Calendar.getInstance(); - now.setTimeInMillis(System.currentTimeMillis()); - Calendar timetoexport = Calendar.getInstance(); - timetoexport.setTimeInMillis(System.currentTimeMillis()); - Intent intent = new Intent(this, AlarmReceiver.class); - intent.setAction("exportlogs"); - Log.d(Config.LOGTAG, "Schedule automatic export logs at " + Config.ExportLogs_Hour + ":" + Config.ExportLogs_Minute); - timetoexport.set(Calendar.HOUR_OF_DAY, Config.ExportLogs_Hour); - timetoexport.set(Calendar.MINUTE, Config.ExportLogs_Minute); - if (timetoexport.before(now)) { - SimpleDateFormat newDate = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US); - timetoexport.add(Calendar.DAY_OF_YEAR, 1); //DATE or DAY_OF_MONTH - Log.d(Config.LOGTAG, "Schedule automatic export logs, for today, the export time is in the past, scheduling first export run for the next day (" + newDate.format(timetoexport.getTimeInMillis()) + ")."); - } - final PendingIntent ScheduleExportIntent = PendingIntent.getBroadcast(this, AlarmReceiver.SCHEDULE_ALARM_REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); - ((AlarmManager) getSystemService(ALARM_SERVICE)).setInexactRepeating(AlarmManager.RTC_WAKEUP, timetoexport.getTimeInMillis(), AlarmManager.INTERVAL_DAY, ScheduleExportIntent); + try { + Calendar now = Calendar.getInstance(); + now.setTimeInMillis(System.currentTimeMillis()); + Calendar timetoexport = Calendar.getInstance(); + timetoexport.setTimeInMillis(System.currentTimeMillis()); + Intent intent = new Intent(this, AlarmReceiver.class); + intent.setAction("exportlogs"); + Log.d(Config.LOGTAG, "Schedule automatic export logs at " + Config.ExportLogs_Hour + ":" + Config.ExportLogs_Minute); + timetoexport.set(Calendar.HOUR_OF_DAY, Config.ExportLogs_Hour); + timetoexport.set(Calendar.MINUTE, Config.ExportLogs_Minute); + if (timetoexport.before(now)) { + SimpleDateFormat newDate = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.US); + timetoexport.add(Calendar.DAY_OF_YEAR, 1); //DATE or DAY_OF_MONTH + Log.d(Config.LOGTAG, "Schedule automatic export logs, for today, the export time is in the past, scheduling first export run for the next day (" + newDate.format(timetoexport.getTimeInMillis()) + ")."); + } + final PendingIntent ScheduleExportIntent = PendingIntent.getBroadcast(this, AlarmReceiver.SCHEDULE_ALARM_REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); + ((AlarmManager) getSystemService(ALARM_SERVICE)).setInexactRepeating(AlarmManager.RTC_WAKEUP, timetoexport.getTimeInMillis(), AlarmManager.INTERVAL_DAY, ScheduleExportIntent); + } catch (Exception e) { + e.printStackTrace(); + } } } } |