From 3683e6a9e2411efbb927731a8401c8306fe0eb19 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 6 Feb 2019 00:35:47 -0800 Subject: [PATCH] Revert "Apply contact updates in batches of 50." This reverts commit 5d9d6ac12bd002d7c9086e5e29676e3d864ed7fa. --- .../securesms/contacts/ContactsDatabase.java | 15 +----- .../securesms/util/DirectoryHelper.java | 2 +- src/org/thoughtcrime/securesms/util/Util.java | 33 ++---------- .../thoughtcrime/securesms/util/UtilTest.java | 52 ------------------- 4 files changed, 7 insertions(+), 95 deletions(-) delete mode 100644 test/unitTest/java/org/thoughtcrime/securesms/util/UtilTest.java diff --git a/src/org/thoughtcrime/securesms/contacts/ContactsDatabase.java b/src/org/thoughtcrime/securesms/contacts/ContactsDatabase.java index 46a58fa92c..f4f137bc78 100644 --- a/src/org/thoughtcrime/securesms/contacts/ContactsDatabase.java +++ b/src/org/thoughtcrime/securesms/contacts/ContactsDatabase.java @@ -19,7 +19,6 @@ package org.thoughtcrime.securesms.contacts; import android.accounts.Account; import android.annotation.SuppressLint; import android.content.ContentProviderOperation; -import android.content.ContentResolver; import android.content.Context; import android.content.OperationApplicationException; import android.database.Cursor; @@ -138,7 +137,7 @@ public class ContactsDatabase { } if (!operations.isEmpty()) { - applyOperationsInBatches(context.getContentResolver(), ContactsContract.AUTHORITY, operations, 50); + context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, operations); } } @@ -533,18 +532,6 @@ public class ContactsDatabase { } } - private void applyOperationsInBatches(@NonNull ContentResolver contentResolver, - @NonNull String authority, - @NonNull List operations, - int batchSize) - throws OperationApplicationException, RemoteException - { - List> batches = Util.chunk(operations, batchSize); - for (List batch : batches) { - contentResolver.applyBatch(authority, new ArrayList<>(batch)); - } - } - private static class ProjectionMappingCursor extends CursorWrapper { private final Map projectionMap; diff --git a/src/org/thoughtcrime/securesms/util/DirectoryHelper.java b/src/org/thoughtcrime/securesms/util/DirectoryHelper.java index 15647b6857..da18f23e81 100644 --- a/src/org/thoughtcrime/securesms/util/DirectoryHelper.java +++ b/src/org/thoughtcrime/securesms/util/DirectoryHelper.java @@ -218,7 +218,7 @@ public class DirectoryHelper { } } } catch (RemoteException | OperationApplicationException e) { - Log.w(TAG, "Failed to update contacts.", e); + Log.w(TAG, e); } } } diff --git a/src/org/thoughtcrime/securesms/util/Util.java b/src/org/thoughtcrime/securesms/util/Util.java index c9fc0a4f5d..46fa48d432 100644 --- a/src/org/thoughtcrime/securesms/util/Util.java +++ b/src/org/thoughtcrime/securesms/util/Util.java @@ -63,7 +63,6 @@ import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.text.DecimalFormat; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -78,7 +77,7 @@ import java.util.concurrent.TimeUnit; public class Util { private static final String TAG = Util.class.getSimpleName(); - private static volatile Handler handler; + public static Handler handler = new Handler(Looper.getMainLooper()); public static List asList(T... elements) { List result = new LinkedList<>(); @@ -142,17 +141,6 @@ public class Util { return map.containsKey(key) ? map.get(key) : defaultValue; } - public static List> chunk(@NonNull List list, int chunkSize) { - List> chunks = new ArrayList<>(list.size() / chunkSize); - - for (int i = 0; i < list.size(); i += chunkSize) { - List chunk = list.subList(i, Math.min(list.size(), i + chunkSize)); - chunks.add(chunk); - } - - return chunks; - } - public static CharSequence getBoldedString(String value) { SpannableString spanned = new SpannableString(value); spanned.setSpan(new StyleSpan(Typeface.BOLD), 0, @@ -406,20 +394,20 @@ public class Util { } public static void postToMain(final @NonNull Runnable runnable) { - getHandler().post(runnable); + handler.post(runnable); } public static void runOnMain(final @NonNull Runnable runnable) { if (isMainThread()) runnable.run(); - else getHandler().post(runnable); + else handler.post(runnable); } public static void runOnMainDelayed(final @NonNull Runnable runnable, long delayMillis) { - getHandler().postDelayed(runnable, delayMillis); + handler.postDelayed(runnable, delayMillis); } public static void cancelRunnableOnMain(@NonNull Runnable runnable) { - getHandler().removeCallbacks(runnable); + handler.removeCallbacks(runnable); } public static void runOnMainSync(final @NonNull Runnable runnable) { @@ -522,15 +510,4 @@ public class Util { return new DecimalFormat("#,##0.#").format(sizeBytes/Math.pow(1024, digitGroups)) + " " + units[digitGroups]; } - - private static Handler getHandler() { - if (handler == null) { - synchronized (Util.class) { - if (handler == null) { - handler = new Handler(Looper.getMainLooper()); - } - } - } - return handler; - } } diff --git a/test/unitTest/java/org/thoughtcrime/securesms/util/UtilTest.java b/test/unitTest/java/org/thoughtcrime/securesms/util/UtilTest.java deleted file mode 100644 index b34fc5d95a..0000000000 --- a/test/unitTest/java/org/thoughtcrime/securesms/util/UtilTest.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.thoughtcrime.securesms.util; - -import org.junit.Test; - -import java.util.Arrays; -import java.util.List; - -import static org.junit.Assert.assertEquals; - -public class UtilTest { - - @Test - public void chunk_oneChunk() { - List input = Arrays.asList("A", "B", "C"); - - List> output = Util.chunk(input, 3); - assertEquals(1, output.size()); - assertEquals(input, output.get(0)); - - output = Util.chunk(input, 4); - assertEquals(1, output.size()); - assertEquals(input, output.get(0)); - - output = Util.chunk(input, 100); - assertEquals(1, output.size()); - assertEquals(input, output.get(0)); - } - - @Test - public void chunk_multipleChunks() { - List input = Arrays.asList("A", "B", "C", "D", "E"); - - List> output = Util.chunk(input, 4); - assertEquals(2, output.size()); - assertEquals(Arrays.asList("A", "B", "C", "D"), output.get(0)); - assertEquals(Arrays.asList("E"), output.get(1)); - - output = Util.chunk(input, 2); - assertEquals(3, output.size()); - assertEquals(Arrays.asList("A", "B"), output.get(0)); - assertEquals(Arrays.asList("C", "D"), output.get(1)); - assertEquals(Arrays.asList("E"), output.get(2)); - - output = Util.chunk(input, 1); - assertEquals(5, output.size()); - assertEquals(Arrays.asList("A"), output.get(0)); - assertEquals(Arrays.asList("B"), output.get(1)); - assertEquals(Arrays.asList("C"), output.get(2)); - assertEquals(Arrays.asList("D"), output.get(3)); - assertEquals(Arrays.asList("E"), output.get(4)); - } -}