Restore notification channels after backup.
This commit is contained in:
parent
e840dc6687
commit
3da1a3e270
1 changed files with 20 additions and 0 deletions
|
@ -7,6 +7,8 @@ import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import android.util.Pair;
|
import android.util.Pair;
|
||||||
|
|
||||||
|
@ -28,7 +30,9 @@ import org.thoughtcrime.securesms.database.GroupReceiptDatabase;
|
||||||
import org.thoughtcrime.securesms.database.MmsDatabase;
|
import org.thoughtcrime.securesms.database.MmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.SearchDatabase;
|
import org.thoughtcrime.securesms.database.SearchDatabase;
|
||||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||||
|
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||||
import org.thoughtcrime.securesms.profiles.AvatarHelper;
|
import org.thoughtcrime.securesms.profiles.AvatarHelper;
|
||||||
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.util.Conversions;
|
import org.thoughtcrime.securesms.util.Conversions;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
import org.whispersystems.libsignal.kdf.HKDFv3;
|
import org.whispersystems.libsignal.kdf.HKDFv3;
|
||||||
|
@ -85,6 +89,7 @@ public class FullBackupImporter extends FullBackupBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
trimEntriesForExpiredMessages(context, db);
|
trimEntriesForExpiredMessages(context, db);
|
||||||
|
restoreNotificationChannels(context);
|
||||||
|
|
||||||
db.setTransactionSuccessful();
|
db.setTransactionSuccessful();
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -185,6 +190,21 @@ public class FullBackupImporter extends FullBackupBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void restoreNotificationChannels(@NonNull Context context) {
|
||||||
|
if (!NotificationChannels.supported()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
RecipientDatabase db = DatabaseFactory.getRecipientDatabase(context);
|
||||||
|
|
||||||
|
try (RecipientDatabase.RecipientReader reader = db.getRecipientsWithNotificationChannels()) {
|
||||||
|
Recipient recipient;
|
||||||
|
while ((recipient = reader.getNext()) != null) {
|
||||||
|
NotificationChannels.createChannelFor(context, recipient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static class BackupRecordInputStream extends BackupStream {
|
private static class BackupRecordInputStream extends BackupStream {
|
||||||
|
|
||||||
private final InputStream in;
|
private final InputStream in;
|
||||||
|
|
Loading…
Add table
Reference in a new issue