mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-26 11:21:55 +00:00
Display profile name in when appropriate
Display in conversation list, conversation actionbar, group messages, and group members list when address is not in system contacts // FREEBIE
This commit is contained in:
@@ -1288,9 +1288,12 @@ public class DatabaseFactory {
|
||||
String address = new NumberMigrator(TextSecurePreferences.getLocalNumber(context)).migrate(cursor.getString(0));
|
||||
ContentValues contentValues = new ContentValues(1);
|
||||
|
||||
contentValues.put("recipient_ids", address);
|
||||
contentValues.put("registered", cursor.getInt(1) == 1);
|
||||
db.replace("recipient_preferences", null, contentValues);
|
||||
|
||||
if (db.update("recipient_preferences", contentValues, "recipient_ids = ?", new String[] {address}) < 1) {
|
||||
contentValues.put("recipient_ids", address);
|
||||
db.insert("recipient_preferences", null, contentValues);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -171,6 +171,18 @@ public class RecipientPreferenceDatabase extends Database {
|
||||
signalProfileAvatar));
|
||||
}
|
||||
|
||||
public BulkOperationsHandle resetAllDisplayNames() {
|
||||
SQLiteDatabase database = databaseHelper.getWritableDatabase();
|
||||
database.beginTransaction();
|
||||
|
||||
ContentValues contentValues = new ContentValues(1);
|
||||
contentValues.put(SYSTEM_DISPLAY_NAME, (String)null);
|
||||
|
||||
database.update(TABLE_NAME, contentValues, null, null);
|
||||
|
||||
return new BulkOperationsHandle(database);
|
||||
}
|
||||
|
||||
public void setColor(Recipient recipient, MaterialColor color) {
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(COLOR, color.serialize());
|
||||
@@ -266,19 +278,17 @@ public class RecipientPreferenceDatabase extends Database {
|
||||
SQLiteDatabase db = databaseHelper.getWritableDatabase();
|
||||
|
||||
for (Address activeAddress : activeAddresses) {
|
||||
ContentValues contentValues = new ContentValues(2);
|
||||
contentValues.put(ADDRESS, activeAddress.serialize());
|
||||
ContentValues contentValues = new ContentValues(1);
|
||||
contentValues.put(REGISTERED, 1);
|
||||
|
||||
db.replace(TABLE_NAME, null, contentValues);
|
||||
updateOrInsert(activeAddress, contentValues);
|
||||
}
|
||||
|
||||
for (Address inactiveAddress : inactiveAddresses) {
|
||||
ContentValues contentValues = new ContentValues(2);
|
||||
contentValues.put(ADDRESS, inactiveAddress.serialize());
|
||||
ContentValues contentValues = new ContentValues(1);
|
||||
contentValues.put(REGISTERED, 0);
|
||||
|
||||
db.replace(TABLE_NAME, null, contentValues);
|
||||
updateOrInsert(inactiveAddress, contentValues);
|
||||
}
|
||||
|
||||
context.getContentResolver().notifyChange(Uri.parse(RECIPIENT_PREFERENCES_URI), null);
|
||||
@@ -302,6 +312,15 @@ public class RecipientPreferenceDatabase extends Database {
|
||||
|
||||
database.beginTransaction();
|
||||
|
||||
updateOrInsert(database, address, contentValues);
|
||||
|
||||
database.setTransactionSuccessful();
|
||||
database.endTransaction();
|
||||
|
||||
context.getContentResolver().notifyChange(Uri.parse(RECIPIENT_PREFERENCES_URI), null);
|
||||
}
|
||||
|
||||
private void updateOrInsert(SQLiteDatabase database, Address address, ContentValues contentValues) {
|
||||
int updated = database.update(TABLE_NAME, contentValues, ADDRESS + " = ?",
|
||||
new String[] {address.serialize()});
|
||||
|
||||
@@ -309,11 +328,28 @@ public class RecipientPreferenceDatabase extends Database {
|
||||
contentValues.put(ADDRESS, address.serialize());
|
||||
database.insert(TABLE_NAME, null, contentValues);
|
||||
}
|
||||
}
|
||||
|
||||
database.setTransactionSuccessful();
|
||||
database.endTransaction();
|
||||
public class BulkOperationsHandle {
|
||||
|
||||
context.getContentResolver().notifyChange(Uri.parse(RECIPIENT_PREFERENCES_URI), null);
|
||||
private final SQLiteDatabase database;
|
||||
|
||||
public BulkOperationsHandle(SQLiteDatabase database) {
|
||||
this.database = database;
|
||||
}
|
||||
|
||||
public void setDisplayName(@NonNull Address address, @Nullable String displayName) {
|
||||
ContentValues contentValues = new ContentValues(1);
|
||||
contentValues.put(SYSTEM_DISPLAY_NAME, displayName);
|
||||
updateOrInsert(address, contentValues);
|
||||
}
|
||||
|
||||
public void finish() {
|
||||
database.setTransactionSuccessful();
|
||||
database.endTransaction();
|
||||
RecipientFactory.clearCache(context);
|
||||
context.getContentResolver().notifyChange(Uri.parse(RECIPIENT_PREFERENCES_URI), null);
|
||||
}
|
||||
}
|
||||
|
||||
public static class RecipientsPreferences {
|
||||
|
||||
Reference in New Issue
Block a user