Skip to content

Commit 9504e60

Browse files
committed
feat(DevApp): 新增 StringUtils#equalsIgnoreCase、equalsIgnoreCaseNotNull
feat(DevApp): 新增 UriUtils#isAndroidResourceScheme、isFileScheme、isContentScheme、isUriScheme
1 parent a1f8ff5 commit 9504e60

File tree

3 files changed

+118
-2
lines changed

3 files changed

+118
-2
lines changed

lib/DevApp/src/main/java/dev/utils/app/UriUtils.java

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ public static String getUriScheme(final Uri uri) {
194194
return uri.getScheme();
195195
}
196196

197+
// =
198+
197199
/**
198200
* 判断 Uri 路径资源是否存在
199201
* <pre>
@@ -485,4 +487,88 @@ public static boolean isGooglePhotosUri(final Uri uri) {
485487
if (uri == null) return false;
486488
return "com.google.android.apps.photos.content".equals(uri.getAuthority());
487489
}
490+
491+
// ==============
492+
// = Uri Scheme =
493+
// ==============
494+
495+
/**
496+
* 判断 Uri Scheme 是否 ContentResolver.SCHEME_ANDROID_RESOURCE
497+
* @param uri {@link Uri}
498+
* @return {@code true} yes, {@code false} no
499+
*/
500+
public static boolean isAndroidResourceScheme(final Uri uri) {
501+
return isUriScheme(ContentResolver.SCHEME_ANDROID_RESOURCE, uri);
502+
}
503+
504+
/**
505+
* 判断 Uri Scheme 是否 ContentResolver.SCHEME_ANDROID_RESOURCE
506+
* @param scheme 待校验 Scheme
507+
* @return {@code true} yes, {@code false} no
508+
*/
509+
public static boolean isAndroidResourceScheme(final String scheme) {
510+
return isUriScheme(ContentResolver.SCHEME_ANDROID_RESOURCE, scheme);
511+
}
512+
513+
/**
514+
* 判断 Uri Scheme 是否 ContentResolver.SCHEME_FILE
515+
* @param uri {@link Uri}
516+
* @return {@code true} yes, {@code false} no
517+
*/
518+
public static boolean isFileScheme(final Uri uri) {
519+
return isUriScheme(ContentResolver.SCHEME_FILE, uri);
520+
}
521+
522+
/**
523+
* 判断 Uri Scheme 是否 ContentResolver.SCHEME_FILE
524+
* @param scheme 待校验 Scheme
525+
* @return {@code true} yes, {@code false} no
526+
*/
527+
public static boolean isFileScheme(final String scheme) {
528+
return isUriScheme(ContentResolver.SCHEME_FILE, scheme);
529+
}
530+
531+
/**
532+
* 判断 Uri Scheme 是否 ContentResolver.SCHEME_CONTENT
533+
* @param uri {@link Uri}
534+
* @return {@code true} yes, {@code false} no
535+
*/
536+
public static boolean isContentScheme(final Uri uri) {
537+
return isUriScheme(ContentResolver.SCHEME_CONTENT, uri);
538+
}
539+
540+
/**
541+
* 判断 Uri Scheme 是否 ContentResolver.SCHEME_CONTENT
542+
* @param scheme 待校验 Scheme
543+
* @return {@code true} yes, {@code false} no
544+
*/
545+
public static boolean isContentScheme(final String scheme) {
546+
return isUriScheme(ContentResolver.SCHEME_CONTENT, scheme);
547+
}
548+
549+
/**
550+
* 判断是否指定的 Uri Scheme
551+
* @param uriScheme 如 ContentResolver.SCHEME_CONTENT
552+
* @param uri {@link Uri}
553+
* @return {@code true} yes, {@code false} no
554+
*/
555+
public static boolean isUriScheme(
556+
final String uriScheme,
557+
final Uri uri
558+
) {
559+
return isUriScheme(uriScheme, getUriScheme(uri));
560+
}
561+
562+
/**
563+
* 判断是否指定的 Uri Scheme ( 忽略大小写 )
564+
* @param uriScheme 如 ContentResolver.SCHEME_CONTENT
565+
* @param scheme 待校验 Scheme
566+
* @return {@code true} yes, {@code false} no
567+
*/
568+
public static boolean isUriScheme(
569+
final String uriScheme,
570+
final String scheme
571+
) {
572+
return StringUtils.equalsIgnoreCaseNotNull(uriScheme, scheme);
573+
}
488574
}

lib/DevApp/src/main/java/dev/utils/common/StringUtils.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,36 @@ public static <T> boolean equalsNotNull(
246246
return value1 != null && ObjectUtils.equals(value1, value2);
247247
}
248248

249+
/**
250+
* 判断两个值是否一样 ( 忽略大小写 )
251+
* @param value1 第一个值
252+
* @param value2 第二个值
253+
* @return {@code true} yes, {@code false} no
254+
*/
255+
public static boolean equalsIgnoreCase(
256+
final String value1,
257+
final String value2
258+
) {
259+
if (value1 != null) {
260+
return value1.equalsIgnoreCase(value2);
261+
} else {
262+
return value2 == null;
263+
}
264+
}
265+
266+
/**
267+
* 判断两个值是否一样 ( 忽略大小写 )
268+
* @param value1 第一个值
269+
* @param value2 第二个值
270+
* @return {@code true} yes, {@code false} no
271+
*/
272+
public static boolean equalsIgnoreCaseNotNull(
273+
final String value1,
274+
final String value2
275+
) {
276+
return value1 != null && equalsIgnoreCase(value1, value2);
277+
}
278+
249279
// =
250280

251281
/**

lib/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Engine 兼容框架等
3636
```gradle
3737
3838
// DevApp - Android 工具类库
39-
implementation 'io.github.afkt:DevAppX:2.3.8'
39+
implementation 'io.github.afkt:DevAppX:2.3.9'
4040
4141
// DevAssist - 封装逻辑代码, 实现多个快捷功能辅助类、以及 Engine 兼容框架等
4242
implementation 'io.github.afkt:DevAssist:1.3.5'
@@ -73,7 +73,7 @@ releaseAnnotationProcessor 'io.github.afkt:DevEnvironmentCompilerRelease:1.1.0'
7373
//annotationProcessor 'io.github.afkt:DevEnvironmentCompiler:1.1.0' // kapt
7474
7575
// DevJava - Java 工具类库 ( 不依赖 android api )
76-
implementation 'io.github.afkt:DevJava:1.4.4' // 用于纯 Java 开发,如果依赖了 DevApp 则不需要依赖 DevJava
76+
implementation 'io.github.afkt:DevJava:1.4.5' // 用于纯 Java 开发,如果依赖了 DevApp 则不需要依赖 DevJava
7777
```
7878

7979

0 commit comments

Comments
 (0)