@@ -0,0 +1,956 @@
+%0D%0Apackage com.dove.reader.utils;%0D%0A%0D%0Aimport android.net.Uri;%0D%0Aimport android.text.TextUtils;%0D%0A%0D%0Apublic final class UriUtils %7B%0D%0A    /**%0D%0A     * Returns true if Uri lfs, ignoring any query parameters and fragment, and%0D%0A     * Uri rhs, ignoring any query parameters, are equal, including if they are%0D%0A     * both null.%0D%0A     * %0D%0A     * @param lfs The left uri to comapre.%0D%0A     * @param rhs The right uri to be compared.%0D%0A     * @return true if lfs and rhs are equal, otherwise false.%0D%0A     */%0D%0A    public static boolean equalsIgnoreQueryFragment(Uri lfs, Uri rhs) %7B%0D%0A        if (lfs == rhs) %7B%0D%0A            return true;%0D%0A        %7D%0D%0A        if (lfs == null %7C%7C rhs == null %7C%7C !TextUtils.equals(lfs.getScheme(), rhs.getScheme())%0D%0A                %7C%7C !TextUtils.equals(lfs.getAuthority(), rhs.getAuthority())%0D%0A                %7C%7C !TextUtils.equals(lfs.getEncodedPath(), rhs.getEncodedPath())) %7B%0D%0A            return false;%0D%0A        %7D%0D%0A        return true;%0D%0A    %7D%0D%0A%7D%0D%0A

Add the UriUtis#equalsIgnoreQueryFragment. Returns true if Uri lfs, ignoring any query parameters and fragment, and Uri rhs, ignoring any query parameters, are equal, including if they are both null.