Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/ContentResolverCompat.java')
-rw-r--r--android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/ContentResolverCompat.java67
1 files changed, 67 insertions, 0 deletions
diff --git a/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/ContentResolverCompat.java b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/ContentResolverCompat.java
new file mode 100644
index 0000000000..4cd5103776
--- /dev/null
+++ b/android/3rd_party/HoloEverywhere/library/src/org/holoeverywhere/ContentResolverCompat.java
@@ -0,0 +1,67 @@
+
+package org.holoeverywhere;
+
+import java.io.FileNotFoundException;
+import java.util.List;
+
+import android.content.Context;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Resources;
+import android.net.Uri;
+import android.text.TextUtils;
+
+public class ContentResolverCompat {
+
+ public static class OpenResourceIdResult {
+ public int id;
+ public Resources r;
+ }
+
+ public static OpenResourceIdResult getResourceId(Context context, Uri uri)
+ throws FileNotFoundException {
+ String authority = uri.getAuthority();
+ Resources r;
+ if (TextUtils.isEmpty(authority)) {
+ throw new FileNotFoundException("No authority: " + uri);
+ } else {
+ try {
+ r = context.getPackageManager().getResourcesForApplication(
+ authority);
+ } catch (NameNotFoundException ex) {
+ throw new FileNotFoundException(
+ "No package found for authority: " + uri);
+ }
+ }
+ List<String> path = uri.getPathSegments();
+ if (path == null) {
+ throw new FileNotFoundException("No path: " + uri);
+ }
+ int len = path.size();
+ int id;
+ if (len == 1) {
+ try {
+ id = Integer.parseInt(path.get(0));
+ } catch (NumberFormatException e) {
+ throw new FileNotFoundException(
+ "Single path segment is not a resource ID: " + uri);
+ }
+ } else if (len == 2) {
+ id = r.getIdentifier(path.get(1), path.get(0), authority);
+ } else {
+ throw new FileNotFoundException("More than two path segments: "
+ + uri);
+ }
+ if (id == 0) {
+ throw new FileNotFoundException("No resource found for: " + uri);
+ }
+ OpenResourceIdResult res = new OpenResourceIdResult();
+ res.r = r;
+ res.id = id;
+ return res;
+ }
+
+ private ContentResolverCompat() {
+
+ }
+
+}