diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java index 0773e5199..7fe882dee 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.java @@ -10,7 +10,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.annimon.stream.Stream; -import com.google.android.gms.common.util.ArrayUtils; import net.sqlcipher.database.SQLiteConstraintException; import net.sqlcipher.database.SQLiteDatabase; @@ -152,14 +151,14 @@ public class RecipientDatabase extends Database { private static final String[] MENTION_SEARCH_PROJECTION = new String[]{ID, removeWhitespace("COALESCE(" + nullIfEmpty(SYSTEM_DISPLAY_NAME) + ", " + nullIfEmpty(PROFILE_JOINED_NAME) + ", " + nullIfEmpty(PROFILE_GIVEN_NAME) + ", " + nullIfEmpty(USERNAME) + ", " + nullIfEmpty(PHONE) + ")") + " AS " + SORT_NAME}; - private static final String[] RECIPIENT_FULL_PROJECTION = ArrayUtils.concat( + private static final String[] RECIPIENT_FULL_PROJECTION = Stream.of( new String[] { TABLE_NAME + "." + ID, TABLE_NAME + "." + STORAGE_PROTO }, TYPED_RECIPIENT_PROJECTION, new String[] { IdentityDatabase.TABLE_NAME + "." + IdentityDatabase.VERIFIED + " AS " + IDENTITY_STATUS, IdentityDatabase.TABLE_NAME + "." + IdentityDatabase.IDENTITY_KEY + " AS " + IDENTITY_KEY - }); + }).flatMap(Stream::of).toArray(String[]::new); public static final String[] CREATE_INDEXS = new String[] { "CREATE INDEX IF NOT EXISTS recipient_dirty_index ON " + TABLE_NAME + " (" + DIRTY + ");", @@ -1055,8 +1054,8 @@ public class RecipientDatabase extends Database { + " LEFT OUTER JOIN " + GroupDatabase.TABLE_NAME + " ON " + TABLE_NAME + "." + GROUP_ID + " = " + GroupDatabase.TABLE_NAME + "." + GroupDatabase.GROUP_ID; List out = new ArrayList<>(); - String[] columns = ArrayUtils.concat(RECIPIENT_FULL_PROJECTION, - new String[]{GroupDatabase.TABLE_NAME + "." + GroupDatabase.V2_MASTER_KEY }); + String[] columns = Stream.of(RECIPIENT_FULL_PROJECTION, + new String[]{GroupDatabase.TABLE_NAME + "." + GroupDatabase.V2_MASTER_KEY }).flatMap(Stream::of).toArray(String[]::new); try (Cursor cursor = db.query(table, columns, query, args, null, null, null)) { while (cursor != null && cursor.moveToNext()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileFragment.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileFragment.java index 7766d84a6..6bd6ccf15 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/edit/EditProfileFragment.java @@ -26,7 +26,6 @@ import androidx.navigation.Navigation; import com.bumptech.glide.load.engine.DiskCacheStrategy; import com.dd.CircularProgressButton; -import com.google.android.gms.common.util.IOUtils; import org.thoughtcrime.securesms.LoggingFragment; import org.thoughtcrime.securesms.R; @@ -43,6 +42,7 @@ import org.thoughtcrime.securesms.registration.RegistrationUtil; import org.thoughtcrime.securesms.util.CommunicationActions; import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.StringUtil; +import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.concurrent.SimpleTask; import org.thoughtcrime.securesms.util.text.AfterTextChanged; import org.thoughtcrime.securesms.util.views.LearnMoreTextView; @@ -152,7 +152,7 @@ public class EditProfileFragment extends LoggingFragment { Media result = data.getParcelableExtra(AvatarSelectionActivity.EXTRA_MEDIA); InputStream stream = BlobProvider.getInstance().getStream(requireContext(), result.getUri()); - return IOUtils.readInputStreamFully(stream); + return Util.readFully(stream); } catch (IOException ioException) { Log.w(TAG, ioException); return null; diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java index 702a1c998..60f35ec65 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerPackPreviewRepository.java @@ -6,7 +6,7 @@ import androidx.annotation.NonNull; import androidx.annotation.WorkerThread; import com.annimon.stream.Stream; -import com.google.android.gms.common.util.Hex; +import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.StickerDatabase; @@ -77,8 +77,8 @@ public final class StickerPackPreviewRepository { @WorkerThread private Optional getManifestRemote(@NonNull String packId, @NonNull String packKey) { try { - byte[] packIdBytes = Hex.stringToBytes(packId); - byte[] packKeyBytes = Hex.stringToBytes(packKey); + byte[] packIdBytes = Hex.fromStringCondensed(packId); + byte[] packKeyBytes = Hex.fromStringCondensed(packKey); SignalServiceStickerManifest remoteManifest = receiver.retrieveStickerManifest(packIdBytes, packKeyBytes); StickerManifest localManifest = new StickerManifest(packId, packKey, diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java index 35c2244cc..6cad3ea6d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerRemoteUriFetcher.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; import com.bumptech.glide.Priority; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.data.DataFetcher; -import com.google.android.gms.common.util.Hex; +import org.thoughtcrime.securesms.util.Hex; import org.thoughtcrime.securesms.logging.Log; import org.whispersystems.libsignal.InvalidMessageException; @@ -32,8 +32,8 @@ public final class StickerRemoteUriFetcher implements DataFetcher { @Override public void loadData(@NonNull Priority priority, @NonNull DataCallback callback) { try { - byte[] packIdBytes = Hex.stringToBytes(stickerUri.getPackId()); - byte[] packKeyBytes = Hex.stringToBytes(stickerUri.getPackKey()); + byte[] packIdBytes = Hex.fromStringCondensed(stickerUri.getPackId()); + byte[] packKeyBytes = Hex.fromStringCondensed(stickerUri.getPackKey()); InputStream stream = receiver.retrieveSticker(packIdBytes, packKeyBytes, stickerUri.getStickerId()); callback.onDataReady(stream); diff --git a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java index be8f25a65..494526359 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java +++ b/app/src/main/java/org/thoughtcrime/securesms/stickers/StickerUrl.java @@ -5,7 +5,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import android.text.TextUtils; -import com.google.android.gms.common.util.Hex; +import org.thoughtcrime.securesms.util.Hex; import org.whispersystems.libsignal.util.Pair; import org.whispersystems.libsignal.util.guava.Optional; @@ -70,7 +70,7 @@ public class StickerUrl { private static boolean isValidHex(String value) { try { - Hex.stringToBytes(value); + Hex.fromStringCondensed(value); return true; } catch (Exception e) { return false; diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/concurrent/SignalExecutors.java b/app/src/main/java/org/thoughtcrime/securesms/util/concurrent/SignalExecutors.java index 93fe665a9..a72741f7a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/concurrent/SignalExecutors.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/concurrent/SignalExecutors.java @@ -4,8 +4,6 @@ import android.os.HandlerThread; import androidx.annotation.NonNull; -import com.google.android.gms.common.util.concurrent.NumberedThreadFactory; - import org.thoughtcrime.securesms.util.LinkedBlockingLifoQueue; import java.util.Queue;