Add an exception for my_avatar id in AvatarProvider.
authorDa Risk <da_risk@beem-project.com>
Fri, 10 Aug 2012 05:53:51 +0200
changeset 985 2a2d82478538
parent 984 46b16746d8a2
child 986 2c85a0f62ab0
Add an exception for my_avatar id in AvatarProvider. This fix a bug when the my_avatar file does not exist it is not created by openFileHelper.
AndroidManifest.xml
src/com/beem/project/beem/providers/AvatarProvider.java
--- a/AndroidManifest.xml	Fri Aug 10 05:38:39 2012 +0200
+++ b/AndroidManifest.xml	Fri Aug 10 05:53:51 2012 +0200
@@ -2,9 +2,26 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 	package="com.beem.project.beem" android:versionCode="12"
 	android:versionName="0.1.7"	android:installLocation="auto">
+
+    <uses-sdk android:minSdkVersion="5" android:targetSdkVersion="7" />
+    <uses-feature name="android.hardware.touchscreen" required="false" />
+	
+	<permission android:permissionGroup="android.permission-group.NETWORK"
+		android:label="BeemService" android:description="@string/BeemServiceDescription"
+		android:name="com.beem.project.beem.BEEM_SERVICE"/>
+	<uses-permission android:name="android.permission.INTERNET"/>
+	<uses-permission android:name="android.permission.VIBRATE"/>
+	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+	<uses-permission android:name="com.beem.project.beem.BEEM_SERVICE"/>
+	
+	<supports-screens android:largeScreens="true"
+		android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" />
+	    
 	<application android:label="@string/app_name"
 		android:icon="@drawable/beem_launcher_icon_silver" android:theme="@style/Theme.BEEM.Default"
 		android:name=".BeemApplication">
+		
 		<activity android:name=".ui.Login" android:label="@string/app_name"
 			android:launchMode="standard">
 			<intent-filter>
@@ -52,16 +69,5 @@
 			</intent-filter>
 		</service>
 	</application>
-	<permission android:permissionGroup="android.permission-group.NETWORK"
-		android:label="BeemService" android:description="@string/BeemServiceDescription"
-		android:name="com.beem.project.beem.BEEM_SERVICE"/>
-	<uses-permission android:name="android.permission.INTERNET"/>
-	<uses-permission android:name="android.permission.VIBRATE"/>
-	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
-	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
-	<uses-permission android:name="com.beem.project.beem.BEEM_SERVICE"/>
-	<uses-feature name="android.hardware.touchscreen" required="false" />
-	<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="7" />
-	<supports-screens android:largeScreens="true"
-		android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" />
+	
 </manifest>
--- a/src/com/beem/project/beem/providers/AvatarProvider.java	Fri Aug 10 05:38:39 2012 +0200
+++ b/src/com/beem/project/beem/providers/AvatarProvider.java	Fri Aug 10 05:53:51 2012 +0200
@@ -74,6 +74,11 @@
     /** The MIME type of a CONTENT_URI subdirectory of a single Beem avatar.  */
     public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/vnd.com.beem.project.beem.avatar";
 
+    /**
+     * Id of the user avatar.
+     */
+    public static final String MY_AVATAR_ID = "my_avatar";
+
 
     private static final String TAG = AvatarProvider.class.getSimpleName();
     private static final String AUTHORITY = "com.beem.project.beem.providers.avatarprovider";
@@ -130,7 +135,7 @@
 	    case AVATAR_ID:
 		String id = uri.getPathSegments().get(0);
 		File f = new File(mDataPath, id);
-		if (f.exists())
+		if (f.exists() || MY_AVATAR_ID.equals(f.getName()))
 			c.newRow().add(f.getName()).add(f.getAbsolutePath());
 		break;
 	    default: