MiscUtils { @Nullable public static <T> ArrayList<T> toArrayList(@Nullable final Collection<T> collection) { if (collection == null) { return null; } else if (collection instanceof ArrayList) { return (ArrayList<T>) collection; } else { return new ArrayList<>(collection); } }  static boolean booleanEquals(@Nullable final Boolean lhs, @Nullable final Boolean rhs); static void closeKeyboard(final Activity activity); static void exclusiveAdd(final List<T> list, @Nullable final List<T> elementsToAdd); static Activity getActivity(final Context context); @ColorInt static int getAttrColor(final Context context, @AttrRes final int colorResId); @ColorInt static int getDrawableColor(final Context context, @Nullable final Drawable drawable); @ColorInt static int getDrawableColor(final View view, @Nullable final Drawable drawable); static CharSequence getElapsedTime(final Resources res, long seconds); @Nullable static String[] getGroupLogos(@Nullable final String logo); static LayerDrawable getStatusBarScrim(final Context context,
            @Nullable final Drawable statusBarBackground); @Nullable static String[] getUserAvatars(@Nullable final String avatar); static int integerCompare(final int lhs, final int rhs); static boolean integerEquals(@Nullable final Integer lhs, @Nullable final Integer rhs); static boolean isLowRamDevice(); static boolean isValidArtwork(final String url); static void openKeyboard(final Context context, final View view); static void openUrl(final Activity activity, final String url); static void openUrl(final Context context, final String url); @Nullable static Activity optActivity(@Nullable final Context context); @Nullable static ArrayList<T> toArrayList(@Nullable final Collection<T> collection);  }
@Test public void testToArrayList() throws Exception { assertNull(MiscUtils.toArrayList(null)); assertNotNull(MiscUtils.toArrayList(Collections.EMPTY_LIST)); assertNotNull(new ArrayList<>()); ArrayList<Object> array = new ArrayList<>(); assertTrue(array == MiscUtils.toArrayList(array)); LinkedList<Integer> linked = new LinkedList<>(); assertNotNull(MiscUtils.toArrayList(linked)); assertEquals(linked.size(), MiscUtils.toArrayList(linked).size()); linked.add(1); linked.add(2); assertNotNull(MiscUtils.toArrayList(linked)); assertTrue(linked.size() == 2); assertTrue(linked.get(0) == 1); assertTrue(linked.get(1) == 2); }