Change summary
src/main/java/eu/siacs/conversations/entities/MucOptions.java | 4
src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java | 9
src/main/java/eu/siacs/conversations/ui/util/MucDetailsContextMenuHelper.java | 4
3 files changed, 12 insertions(+), 5 deletions(-)
Detailed changes
@@ -353,7 +353,7 @@ public class MucOptions {
}
}
}
- return null;
+ return new User(this, null, id, null, new HashSet<>());
}
public User findOrCreateUserByRealJid(Jid jid, Jid fullJid) {
@@ -861,7 +861,7 @@ public class MucOptions {
}
public Jid getMuc() {
- return fullJid == null ? null : fullJid.asBareJid();
+ return fullJid == null ? (options.getConversation().getJid().asBareJid()) : fullJid.asBareJid();
}
public String getOccupantId() {
@@ -343,6 +343,14 @@ public class DatabaseBackend extends SQLiteOpenHelper {
db.execSQL("PRAGMA cheogram.user_version = 10");
}
+ if(cheogramVersion < 11) {
+ db.execSQL(
+ "ALTER TABLE cheogram.muted_participants " +
+ "DROP COLUMN nick"
+ );
+ db.execSQL("PRAGMA cheogram.user_version = 11");
+ }
+
db.setTransactionSuccessful();
} finally {
db.endTransaction();
@@ -904,7 +912,6 @@ public class DatabaseBackend extends SQLiteOpenHelper {
ContentValues cv = new ContentValues();
cv.put("muc_jid", user.getMuc().toString());
cv.put("occupant_id", user.getOccupantId());
- cv.put("nick", user.getNick());
db.insertWithOnConflict("cheogram.muted_participants", null, cv, SQLiteDatabase.CONFLICT_REPLACE);
return true;
@@ -166,9 +166,9 @@ public final class MucDetailsContextMenuHelper {
}
}
managePermissions.setVisible(managePermissionsVisible);
- sendPrivateMessage.setVisible(!isGroupChat && mucOptions.allowPm() && user.getRole().ranks(MucOptions.Role.VISITOR));
+ sendPrivateMessage.setVisible(user.getFullJid() != null && !isGroupChat && mucOptions.allowPm() && user.getRole().ranks(MucOptions.Role.VISITOR));
} else {
- sendPrivateMessage.setVisible(true);
+ sendPrivateMessage.setVisible(user != null && user.getFullJid() != null);
sendPrivateMessage.setEnabled(user != null && mucOptions.allowPm() && user.getRole().ranks(MucOptions.Role.VISITOR));
}
}