mirror of
https://github.com/oxen-io/session-android.git
synced 2024-11-23 18:15:22 +00:00
Revert "Don't use SHA1 for stable IDs"
This reverts commit 7286fd9b06
.
Fixes #6223
// FREEBIE
This commit is contained in:
parent
83e31cac07
commit
aa30f3e410
@ -18,8 +18,6 @@ package org.thoughtcrime.securesms;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.Cursor;
|
import android.database.Cursor;
|
||||||
import android.graphics.Canvas;
|
|
||||||
import android.graphics.Rect;
|
|
||||||
import android.support.annotation.LayoutRes;
|
import android.support.annotation.LayoutRes;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
@ -33,12 +31,13 @@ import android.view.View.OnLongClickListener;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import org.thoughtcrime.redphone.util.Conversions;
|
||||||
|
import org.thoughtcrime.securesms.ConversationAdapter.HeaderViewHolder;
|
||||||
import org.thoughtcrime.securesms.crypto.MasterSecret;
|
import org.thoughtcrime.securesms.crypto.MasterSecret;
|
||||||
import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter;
|
import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter;
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||||
import org.thoughtcrime.securesms.database.MmsSmsColumns;
|
import org.thoughtcrime.securesms.database.MmsSmsColumns;
|
||||||
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
|
import org.thoughtcrime.securesms.database.MmsSmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.SmsDatabase;
|
|
||||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipients;
|
import org.thoughtcrime.securesms.recipients.Recipients;
|
||||||
@ -47,9 +46,10 @@ import org.thoughtcrime.securesms.util.LRUCache;
|
|||||||
import org.thoughtcrime.securesms.util.StickyHeaderDecoration;
|
import org.thoughtcrime.securesms.util.StickyHeaderDecoration;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||||
import org.thoughtcrime.securesms.ConversationAdapter.HeaderViewHolder;
|
|
||||||
|
|
||||||
import java.lang.ref.SoftReference;
|
import java.lang.ref.SoftReference;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -93,6 +93,7 @@ public class ConversationAdapter <V extends View & BindableConversationItem>
|
|||||||
private final @NonNull MmsSmsDatabase db;
|
private final @NonNull MmsSmsDatabase db;
|
||||||
private final @NonNull LayoutInflater inflater;
|
private final @NonNull LayoutInflater inflater;
|
||||||
private final @NonNull Calendar calendar;
|
private final @NonNull Calendar calendar;
|
||||||
|
private final @NonNull MessageDigest digest;
|
||||||
|
|
||||||
protected static class ViewHolder extends RecyclerView.ViewHolder {
|
protected static class ViewHolder extends RecyclerView.ViewHolder {
|
||||||
public <V extends View & BindableConversationItem> ViewHolder(final @NonNull V itemView) {
|
public <V extends View & BindableConversationItem> ViewHolder(final @NonNull V itemView) {
|
||||||
@ -134,13 +135,18 @@ public class ConversationAdapter <V extends View & BindableConversationItem>
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
ConversationAdapter(Context context, Cursor cursor) {
|
ConversationAdapter(Context context, Cursor cursor) {
|
||||||
super(context, cursor);
|
super(context, cursor);
|
||||||
this.masterSecret = null;
|
try {
|
||||||
this.locale = null;
|
this.masterSecret = null;
|
||||||
this.clickListener = null;
|
this.locale = null;
|
||||||
this.recipients = null;
|
this.clickListener = null;
|
||||||
this.inflater = null;
|
this.recipients = null;
|
||||||
this.db = null;
|
this.inflater = null;
|
||||||
this.calendar = null;
|
this.db = null;
|
||||||
|
this.calendar = null;
|
||||||
|
this.digest = MessageDigest.getInstance("SHA1");
|
||||||
|
} catch (NoSuchAlgorithmException nsae) {
|
||||||
|
throw new AssertionError("SHA1 isn't supported!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ConversationAdapter(@NonNull Context context,
|
public ConversationAdapter(@NonNull Context context,
|
||||||
@ -151,15 +157,21 @@ public class ConversationAdapter <V extends View & BindableConversationItem>
|
|||||||
@NonNull Recipients recipients)
|
@NonNull Recipients recipients)
|
||||||
{
|
{
|
||||||
super(context, cursor);
|
super(context, cursor);
|
||||||
this.masterSecret = masterSecret;
|
|
||||||
this.locale = locale;
|
|
||||||
this.clickListener = clickListener;
|
|
||||||
this.recipients = recipients;
|
|
||||||
this.inflater = LayoutInflater.from(context);
|
|
||||||
this.db = DatabaseFactory.getMmsSmsDatabase(context);
|
|
||||||
this.calendar = Calendar.getInstance();
|
|
||||||
|
|
||||||
setHasStableIds(true);
|
try {
|
||||||
|
this.masterSecret = masterSecret;
|
||||||
|
this.locale = locale;
|
||||||
|
this.clickListener = clickListener;
|
||||||
|
this.recipients = recipients;
|
||||||
|
this.inflater = LayoutInflater.from(context);
|
||||||
|
this.db = DatabaseFactory.getMmsSmsDatabase(context);
|
||||||
|
this.calendar = Calendar.getInstance();
|
||||||
|
this.digest = MessageDigest.getInstance("SHA1");
|
||||||
|
|
||||||
|
setHasStableIds(true);
|
||||||
|
} catch (NoSuchAlgorithmException nsae) {
|
||||||
|
throw new AssertionError("SHA1 isn't supported!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -242,7 +254,9 @@ public class ConversationAdapter <V extends View & BindableConversationItem>
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getItemId(@NonNull Cursor cursor) {
|
public long getItemId(@NonNull Cursor cursor) {
|
||||||
return cursor.getLong(cursor.getColumnIndexOrThrow(MmsSmsColumns.UNIQUE_ROW_ID));
|
final String unique = cursor.getString(cursor.getColumnIndexOrThrow(MmsSmsColumns.UNIQUE_ROW_ID));
|
||||||
|
final byte[] bytes = digest.digest(unique.getBytes());
|
||||||
|
return Conversions.byteArrayToLong(bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
private MessageRecord getMessageRecord(Cursor cursor) {
|
private MessageRecord getMessageRecord(Cursor cursor) {
|
||||||
|
@ -138,7 +138,8 @@ public class MmsSmsDatabase extends Database {
|
|||||||
String[] mmsProjection = {MmsDatabase.DATE_SENT + " AS " + MmsSmsColumns.NORMALIZED_DATE_SENT,
|
String[] mmsProjection = {MmsDatabase.DATE_SENT + " AS " + MmsSmsColumns.NORMALIZED_DATE_SENT,
|
||||||
MmsDatabase.DATE_RECEIVED + " AS " + MmsSmsColumns.NORMALIZED_DATE_RECEIVED,
|
MmsDatabase.DATE_RECEIVED + " AS " + MmsSmsColumns.NORMALIZED_DATE_RECEIVED,
|
||||||
MmsDatabase.TABLE_NAME + "." + MmsDatabase.ID + " AS " + MmsSmsColumns.ID,
|
MmsDatabase.TABLE_NAME + "." + MmsDatabase.ID + " AS " + MmsSmsColumns.ID,
|
||||||
"CAST('2' || " + MmsDatabase.TABLE_NAME + "." + MmsDatabase.ID + " || " + MmsDatabase.DATE_SENT + " AS INTEGER)"
|
"'MMS::' || " + MmsDatabase.TABLE_NAME + "." + MmsDatabase.ID
|
||||||
|
+ " || '::' || " + MmsDatabase.DATE_SENT
|
||||||
+ " AS " + MmsSmsColumns.UNIQUE_ROW_ID,
|
+ " AS " + MmsSmsColumns.UNIQUE_ROW_ID,
|
||||||
AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.ROW_ID + " AS " + AttachmentDatabase.ATTACHMENT_ID_ALIAS,
|
AttachmentDatabase.TABLE_NAME + "." + AttachmentDatabase.ROW_ID + " AS " + AttachmentDatabase.ATTACHMENT_ID_ALIAS,
|
||||||
SmsDatabase.BODY, MmsSmsColumns.READ, MmsSmsColumns.THREAD_ID,
|
SmsDatabase.BODY, MmsSmsColumns.READ, MmsSmsColumns.THREAD_ID,
|
||||||
@ -163,7 +164,8 @@ public class MmsSmsDatabase extends Database {
|
|||||||
String[] smsProjection = {SmsDatabase.DATE_SENT + " AS " + MmsSmsColumns.NORMALIZED_DATE_SENT,
|
String[] smsProjection = {SmsDatabase.DATE_SENT + " AS " + MmsSmsColumns.NORMALIZED_DATE_SENT,
|
||||||
SmsDatabase.DATE_RECEIVED + " AS " + MmsSmsColumns.NORMALIZED_DATE_RECEIVED,
|
SmsDatabase.DATE_RECEIVED + " AS " + MmsSmsColumns.NORMALIZED_DATE_RECEIVED,
|
||||||
MmsSmsColumns.ID,
|
MmsSmsColumns.ID,
|
||||||
"CAST('1' || " + MmsSmsColumns.ID + " || " + SmsDatabase.DATE_SENT + " AS INTEGER)"
|
"'SMS::' || " + MmsSmsColumns.ID
|
||||||
|
+ " || '::' || " + SmsDatabase.DATE_SENT
|
||||||
+ " AS " + MmsSmsColumns.UNIQUE_ROW_ID,
|
+ " AS " + MmsSmsColumns.UNIQUE_ROW_ID,
|
||||||
"NULL AS " + AttachmentDatabase.ATTACHMENT_ID_ALIAS,
|
"NULL AS " + AttachmentDatabase.ATTACHMENT_ID_ALIAS,
|
||||||
SmsDatabase.BODY, MmsSmsColumns.READ, MmsSmsColumns.THREAD_ID,
|
SmsDatabase.BODY, MmsSmsColumns.READ, MmsSmsColumns.THREAD_ID,
|
||||||
|
Loading…
Reference in New Issue
Block a user