Add a way to disable avatar.
authorDa Risk <darisk972@gmail.com>
Thu, 03 Mar 2011 01:02:25 +0100
changeset 883 c0a2d2743f38
parent 882 0b9c08ea320d
child 884 b2c242da8a1e
Add a way to disable avatar.
res/values-fr/strings.xml
res/values/strings.xml
src/com/beem/project/beem/service/XmppConnectionAdapter.java
src/com/beem/project/beem/ui/ChangeStatus.java
--- a/res/values-fr/strings.xml	Wed Mar 02 00:58:11 2011 +0100
+++ b/res/values-fr/strings.xml	Thu Mar 03 01:02:25 2011 +0100
@@ -57,9 +57,11 @@
 	<string name="ChangeStatusOk">Mise à jour du statut</string>
 	<string name="ChangeStatusNoChange">Rien à changer</string>
 	<string name="my_avatar">Mon avatar</string>
+	<string name="select_avatar">Choisissez votre avatar</string>
 	<string name="take_photo">Prendre une photo</string>
 	<string name="pick_photo">Choisir une image</string>
-	<string name="photoPickerNotFoundText">Sélecteur d'image non disponible</string>
+	<string name="delete_avatar">Pas d\'avatar</string>
+	<string name="photoPickerNotFoundText">Sélecteur d\'image non disponible</string>
 
 	<!-- Settings class -->
 	<string name="SettingsText">Saisissez votre identifiant de connexion</string>
--- a/res/values/strings.xml	Wed Mar 02 00:58:11 2011 +0100
+++ b/res/values/strings.xml	Thu Mar 03 01:02:25 2011 +0100
@@ -56,8 +56,10 @@
 	<string name="ChangeStatusOk">Updating status</string>
 	<string name="ChangeStatusNoChange">Nothing to change</string>
 	<string name="my_avatar">My avatar</string>
+	<string name="select_avatar">Choose your avatar</string>
 	<string name="take_photo">Take a photo</string>
 	<string name="pick_photo">Select a picture</string>
+	<string name="delete_avatar">No avatar</string>
 	<string name="photoPickerNotFoundText">Photo picker not found</string>
 
 
--- a/src/com/beem/project/beem/service/XmppConnectionAdapter.java	Wed Mar 02 00:58:11 2011 +0100
+++ b/src/com/beem/project/beem/service/XmppConnectionAdapter.java	Thu Mar 03 01:02:25 2011 +0100
@@ -165,7 +165,7 @@
 	mPassword = password;
 	mService = service;
 	Context ctx = mService.getApplicationContext();
-	mUserInfo = new UserInfo(jid);
+	mUserInfo = new UserInfo(jid.toLowerCase());
 	if (ctx instanceof BeemApplication) {
 	    mApplication = (BeemApplication) ctx;
 	}
--- a/src/com/beem/project/beem/ui/ChangeStatus.java	Wed Mar 02 00:58:11 2011 +0100
+++ b/src/com/beem/project/beem/ui/ChangeStatus.java	Thu Mar 03 01:02:25 2011 +0100
@@ -56,7 +56,6 @@
 import android.content.ServiceConnection;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
-import android.media.MediaScannerConnection;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.Environment;
@@ -121,7 +120,7 @@
 
     private static final String KEY_CURRENT_PHOTO_FILE = "currentphotofile";
 
-    private static final Uri MY_AVATAR_URI = Uri.parse(AvatarProvider.CONTENT_URI + "my_avatar");
+    private static final Uri MY_AVATAR_URI = Uri.parse(AvatarProvider.CONTENT_URI + "/my_avatar");
 
     private EditText mStatusMessageEditText;
     private Toast mToast;
@@ -139,11 +138,9 @@
     private final OnClickListener mOnClickOk = new MyOnClickListener();
     private final BeemBroadcastReceiver mReceiver = new BeemBroadcastReceiver();
     private boolean mShowCurrentAvatar = true;
+    private boolean mDisableAvatar;
     private File mCurrentPhotoFile;
 
-    // BAD HACK
-    private MediaScannerConnection mMsConnection;
-
     /**
      * Constructor.
      */
@@ -256,8 +253,12 @@
         switch (requestCode) {
             case PHOTO_PICKED_WITH_DATA:
 		mAvatarUri = Uri.parse(data.getAction());
-		if (mAvatarUri != null)
+		Log.d(TAG, "selected avatar uri " + mAvatarUri);
+		if (mAvatarUri != null) {
 		    mAvatar.setImageURI(mAvatarUri);
+		    mDisableAvatar = false;
+		    mShowCurrentAvatar = false;
+		}
                 break;
 
             case CAMERA_WITH_DATA:
@@ -332,10 +333,11 @@
      * Publish the selected avatar.
      */
     private void publishAvatar() {
-	if (mAvatarUri == null)
-	    return;
 	try {
-	    mXmppFacade.publishAvatar(mAvatarUri);
+	    if (mDisableAvatar)
+		mXmppFacade.disableAvatarPublishing();
+	    else if (mAvatarUri != null)
+		mXmppFacade.publishAvatar(mAvatarUri);
 	} catch (RemoteException e) {
 	    Log.e(TAG, "Error while publishing avatar", e);
 	}
@@ -348,8 +350,11 @@
 	try {
 	    UserInfo ui = mXmppFacade.getUserInfo();
 	    String avatarId = ui.getAvatarId();
-	    Uri uri = AvatarProvider.CONTENT_URI.buildUpon().appendPath(avatarId).build();
-	    mAvatar.setImageURI(uri);
+	    Log.d(TAG, "User info ; avatar id " + avatarId);
+	    if (avatarId != null) {
+		Uri uri = AvatarProvider.CONTENT_URI.buildUpon().appendPath(avatarId).build();
+		mAvatar.setImageURI(uri);
+	    }
 	} catch (RemoteException e) {
 	    Log.e(TAG, "Error while displaying current avatar", e);
 	}
@@ -372,14 +377,17 @@
 
 
         String[] choices;
-        choices = new String[2];
+
+        choices = new String[3];
         choices[0] = getString(R.string.take_photo);
         choices[1] = getString(R.string.pick_photo);
+        choices[2] = getString(R.string.delete_avatar);
+
         final ListAdapter adapter = new ArrayAdapter<String>(dialogContext,
                 android.R.layout.simple_list_item_1, choices);
 
         final AlertDialog.Builder builder = new AlertDialog.Builder(dialogContext);
-        builder.setTitle("Select a picture");
+        builder.setTitle(R.string.select_avatar);
         builder.setSingleChoiceItems(adapter, -1, new DialogInterface.OnClickListener() {
             public void onClick(DialogInterface dialog, int which) {
                 dialog.dismiss();
@@ -390,6 +398,10 @@
                     case 1:
                         doPickPhotoFromGallery();
                         break;
+                    case 2:
+			mDisableAvatar = true;
+			mAvatar.setImageURI(null);
+			break;
 		    default:
 			Log.w(TAG, "DialogInterface onClick : invalid which code");
                 }