mirror of
https://github.com/oxen-io/session-android.git
synced 2025-01-11 16:23:38 +00:00
Temporary fix for Signal contact displaying as SMS for N seconds
The whole recipient pipeline needs to be changed more subsantially, particularly given the way directory discovery works with it. This will temporarily solve the problem though.
This commit is contained in:
parent
6ff0a62338
commit
7eb089c9de
@ -1053,7 +1053,16 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
||||
Context context = ConversationActivity.this;
|
||||
Recipient recipient = params[0];
|
||||
Log.w(TAG, "Resolving registered state...");
|
||||
RegisteredState registeredState = recipient.resolve().getRegistered();
|
||||
RegisteredState registeredState;
|
||||
|
||||
if (recipient.isResolving()) {
|
||||
Log.w(TAG, "Talking to DB directly.");
|
||||
registeredState = DatabaseFactory.getRecipientDatabase(ConversationActivity.this).isRegistered(recipient.getAddress());
|
||||
} else {
|
||||
Log.w(TAG, "Checking through resolved recipient");
|
||||
registeredState = recipient.resolve().getRegistered();
|
||||
}
|
||||
|
||||
Log.w(TAG, "Resolved registered state: " + registeredState);
|
||||
boolean signalEnabled = TextSecurePreferences.isPushRegistered(context);
|
||||
|
||||
|
@ -345,6 +345,16 @@ public class RecipientDatabase extends Database {
|
||||
return results;
|
||||
}
|
||||
|
||||
// XXX This shouldn't be here, and is just a temporary workaround
|
||||
public RegisteredState isRegistered(@NonNull Address address) {
|
||||
SQLiteDatabase db = databaseHelper.getReadableDatabase();
|
||||
|
||||
try (Cursor cursor = db.query(TABLE_NAME, new String[] {REGISTERED}, ADDRESS + " = ?", new String[] {address.serialize()}, null, null, null)) {
|
||||
if (cursor != null && cursor.moveToFirst()) return RegisteredState.fromId(cursor.getInt(0));
|
||||
else return RegisteredState.UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
private void updateOrInsert(Address address, ContentValues contentValues) {
|
||||
SQLiteDatabase database = databaseHelper.getWritableDatabase();
|
||||
|
||||
|
@ -529,7 +529,8 @@ public class Recipient implements RecipientModifiedListener {
|
||||
this.stale = true;
|
||||
}
|
||||
|
||||
synchronized boolean isResolving() {
|
||||
// XXX This shouldn't be public, temporary workaround
|
||||
public synchronized boolean isResolving() {
|
||||
return resolving;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user