WIP fix crashes

This commit is contained in:
Ryan ZHAO 2021-01-21 17:04:56 +11:00
parent 9856814904
commit 6fa2c308b5
4 changed files with 28 additions and 17 deletions

View File

@ -33,6 +33,7 @@ import com.google.firebase.iid.FirebaseInstanceId;
import org.conscrypt.Conscrypt;
import org.jetbrains.annotations.NotNull;
import org.session.libsession.messaging.MessagingConfiguration;
import org.session.libsession.messaging.contacts.avatars.AvatarHelper;
import org.session.libsession.utilities.SSKEnvironment;
import org.session.libsession.messaging.sending_receiving.notifications.MessageNotifier;
@ -43,6 +44,7 @@ import org.session.libsession.utilities.Util;
import org.session.libsession.utilities.dynamiclanguage.LocaleParser;
import org.session.libsignal.libsignal.state.SessionRecord;
import org.signal.aesgcmprovider.AesGcmProvider;
import org.thoughtcrime.securesms.loki.api.SessionProtocolImpl;
import org.thoughtcrime.securesms.sskenvironment.ProfileManager;
import org.thoughtcrime.securesms.sskenvironment.ReadReceiptManager;
import org.thoughtcrime.securesms.sskenvironment.TypingStatusRepository;
@ -198,6 +200,11 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc
String userPublicKey = TextSecurePreferences.getLocalNumber(this);
SessionResetImplementation sessionResetImpl = new SessionResetImplementation(this);
SharedSenderKeysImplementation.Companion.configureIfNeeded(sskDatabase, this);
MessagingConfiguration.Companion.configure(this,
DatabaseFactory.getStorage(this),
sskDatabase,
DatabaseFactory.getAttachmentProvider(this),
new SessionProtocolImpl(this));
if (userPublicKey != null) {
SwarmAPI.Companion.configureIfNeeded(apiDB);
SnodeAPI.Companion.configureIfNeeded(userPublicKey, apiDB, broadcaster);

View File

@ -9,8 +9,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import network.loki.messenger.R;
public class LinkPreviewsIntroFragment extends Fragment {

View File

@ -22,6 +22,7 @@ import androidx.annotation.NonNull;
import net.sqlcipher.database.SQLiteDatabase;
import org.thoughtcrime.securesms.attachments.DatabaseAttachmentProvider;
import org.thoughtcrime.securesms.crypto.AttachmentSecret;
import org.thoughtcrime.securesms.crypto.AttachmentSecretProvider;
import org.thoughtcrime.securesms.crypto.DatabaseSecret;
@ -61,14 +62,16 @@ public class DatabaseFactory {
// Loki
private final LokiAPIDatabase lokiAPIDatabase;
// private final LokiPreKeyRecordDatabase lokiContactPreKeyDatabase;
// private final LokiPreKeyBundleDatabase lokiPreKeyBundleDatabase;
private final LokiMessageDatabase lokiMessageDatabase;
private final LokiThreadDatabase lokiThreadDatabase;
private final LokiUserDatabase lokiUserDatabase;
private final LokiBackupFilesDatabase lokiBackupFilesDatabase;
private final SharedSenderKeysDatabase sskDatabase;
// Refactor
private final Storage storage;
private final DatabaseAttachmentProvider attachmentProvider;
public static DatabaseFactory getInstance(Context context) {
synchronized (lock) {
if (instance == null)
@ -155,14 +158,6 @@ public class DatabaseFactory {
return getInstance(context).lokiAPIDatabase;
}
// public static LokiPreKeyRecordDatabase getLokiPreKeyRecordDatabase(Context context) {
// return getInstance(context).lokiContactPreKeyDatabase;
// }
// public static LokiPreKeyBundleDatabase getLokiPreKeyBundleDatabase(Context context) {
// return getInstance(context).lokiPreKeyBundleDatabase;
// }
public static LokiMessageDatabase getLokiMessageDatabase(Context context) {
return getInstance(context).lokiMessageDatabase;
}
@ -184,6 +179,16 @@ public class DatabaseFactory {
}
// endregion
// region Refactor
public static Storage getStorage(Context context) {
return getInstance(context).storage;
}
public static DatabaseAttachmentProvider getAttachmentProvider(Context context) {
return getInstance(context).attachmentProvider;
}
// endregion
public static void upgradeRestored(Context context, SQLiteDatabase database){
getInstance(context).databaseHelper.onUpgrade(database, database.getVersion(), -1);
getInstance(context).databaseHelper.markCurrent(database);
@ -214,13 +219,13 @@ public class DatabaseFactory {
this.jobDatabase = new JobDatabase(context, databaseHelper);
this.stickerDatabase = new StickerDatabase(context, databaseHelper, attachmentSecret);
this.lokiAPIDatabase = new LokiAPIDatabase(context, databaseHelper);
// this.lokiContactPreKeyDatabase = new LokiPreKeyRecordDatabase(context, databaseHelper);
// this.lokiPreKeyBundleDatabase = new LokiPreKeyBundleDatabase(context, databaseHelper);
this.lokiMessageDatabase = new LokiMessageDatabase(context, databaseHelper);
this.lokiThreadDatabase = new LokiThreadDatabase(context, databaseHelper);
this.lokiUserDatabase = new LokiUserDatabase(context, databaseHelper);
this.lokiBackupFilesDatabase = new LokiBackupFilesDatabase(context, databaseHelper);
this.sskDatabase = new SharedSenderKeysDatabase(context, databaseHelper);
this.storage = new Storage(context, databaseHelper);
this.attachmentProvider = new DatabaseAttachmentProvider(context, databaseHelper);
}
}

View File

@ -115,7 +115,7 @@ class RecipientProvider {
private @NonNull RecipientDetails getIndividualRecipientDetails(Context context, @NonNull Address address, Optional<RecipientSettings> settings) {
if (!settings.isPresent()) {
settings = Optional.of(MessagingConfiguration.shared.getStorage().getRecipientSettings(address));
settings = Optional.fromNullable(MessagingConfiguration.shared.getStorage().getRecipientSettings(address));
}
if (!settings.isPresent() && STATIC_DETAILS.containsKey(address.serialize())) {
@ -130,11 +130,12 @@ class RecipientProvider {
private @NonNull RecipientDetails getGroupRecipientDetails(Context context, Address groupId, Optional<GroupRecord> groupRecord, Optional<RecipientSettings> settings, boolean asynchronous) {
if (!groupRecord.isPresent()) {
groupRecord = Optional.of(MessagingConfiguration.shared.getStorage().getGroup(groupId.toGroupString()));
groupRecord = Optional.fromNullable(MessagingConfiguration.shared.getStorage().getGroup(groupId.toGroupString()));
}
if (!settings.isPresent()) {
settings = Optional.of(MessagingConfiguration.shared.getStorage().getRecipientSettings(groupId));
settings = Optional.fromNullable(MessagingConfiguration.shared.getStorage().getRecipientSettings(groupId));
}
if (groupRecord.isPresent()) {