error messages for publish avatar

iNPUTmice created

Change summary

res/layout/activity_publish_profile_picture.xml                  |  7 
res/values/strings.xml                                           |  3 
src/eu/siacs/conversations/services/XmppConnectionService.java   |  6 
src/eu/siacs/conversations/ui/PublishProfilePictureActivity.java | 33 +
4 files changed, 37 insertions(+), 12 deletions(-)

Detailed changes

res/layout/activity_publish_profile_picture.xml 🔗

@@ -69,7 +69,8 @@
         android:layout_height="fill_parent"
         android:layout_above="@+id/button_bar"
         android:layout_below="@+id/hint"
-        android:layout_centerHorizontal="true"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentRight="true"
         android:gravity="center_vertical"
         android:orientation="vertical"
         android:paddingLeft="8dp"
@@ -83,12 +84,14 @@
             android:textSize="18sp"/>
         
         <TextView
+            android:id="@+id/hint_or_warning"
             android:layout_marginTop="8dp"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="@string/publish_avatar_explanation"
             android:textColor="@color/primarytext"
-            android:textSize="14sp" />
+            android:textSize="14sp"
+            android:minLines="3" />
     </LinearLayout>
 
 </RelativeLayout>

res/values/strings.xml 🔗

@@ -271,4 +271,7 @@
     <string name="publish_avatar">Publish avatar</string>
     <string name="touch_to_choose_picture">Touch avatar to select picture from gallary</string>
     <string name="publish_avatar_explanation">Please note: Everyone subscribed to your presence updates will be allowed to see this picture.</string>
+    <string name="publishing">Publishing&#8230;</string>
+    <string name="error_publish_avatar_server_reject">The server rejected your publication</string>
+    <string name="error_publish_avatar_converting">Something went wrong while converting your picture</string>
 </resources>

src/eu/siacs/conversations/services/XmppConnectionService.java 🔗

@@ -1216,17 +1216,17 @@ public class XmppConnectionService extends Service {
 								if (result.getType() == IqPacket.TYPE_RESULT) {
 									callback.success(avatar);
 								} else {
-									callback.error(R.string.error, avatar);
+									callback.error(R.string.error_publish_avatar_server_reject, avatar);
 								}
 							}
 						});
 					} else {
-						callback.error(R.string.error, avatar);
+						callback.error(R.string.error_publish_avatar_server_reject, avatar);
 					}
 				}
 			});
 		} else {
-			callback.error(R.string.error, null);
+			callback.error(R.string.error_publish_avatar_converting, null);
 		}
 	}
 	

src/eu/siacs/conversations/ui/PublishProfilePictureActivity.java 🔗

@@ -22,6 +22,7 @@ public class PublishProfilePictureActivity extends XmppActivity {
 
 	private ImageView avatar;
 	private TextView accountTextView;
+	private TextView hintOrWarning;
 	private Button cancelButton;
 	private Button publishButton;
 
@@ -33,19 +34,32 @@ public class PublishProfilePictureActivity extends XmppActivity {
 
 		@Override
 		public void success(Avatar object) {
-			finish();
+			runOnUiThread(new Runnable() {
+
+				@Override
+				public void run() {
+					finish();
+				}
+			});
 		}
 
 		@Override
-		public void error(int errorCode, Avatar object) {
-			// TODO Auto-generated method stub
+		public void error(final int errorCode, Avatar object) {
+			runOnUiThread(new Runnable() {
+
+				@Override
+				public void run() {
+					hintOrWarning.setText(errorCode);
+					hintOrWarning.setTextColor(getWarningTextColor());
+					publishButton.setText(R.string.publish_avatar);
+					enablePublishButton();
+				}
+			});
 
 		}
 
 		@Override
 		public void userInputRequried(PendingIntent pi, Avatar object) {
-			// TODO Auto-generated method stub
-
 		}
 	};
 
@@ -57,11 +71,13 @@ public class PublishProfilePictureActivity extends XmppActivity {
 		this.cancelButton = (Button) findViewById(R.id.cancel_button);
 		this.publishButton = (Button) findViewById(R.id.publish_button);
 		this.accountTextView = (TextView) findViewById(R.id.account);
+		this.hintOrWarning = (TextView) findViewById(R.id.hint_or_warning);
 		this.publishButton.setOnClickListener(new OnClickListener() {
 
 			@Override
 			public void onClick(View v) {
 				if (avatarUri != null) {
+					publishButton.setText(R.string.publishing);
 					disablePublishButton();
 					xmppConnectionService.publishAvatar(account, avatarUri,
 							avatarPublication);
@@ -99,7 +115,7 @@ public class PublishProfilePictureActivity extends XmppActivity {
 			}
 		}
 	}
-	
+
 	@Override
 	public boolean onOptionsItemSelected(MenuItem menuItem) {
 		super.onOptionsItemSelected(menuItem);
@@ -133,13 +149,16 @@ public class PublishProfilePictureActivity extends XmppActivity {
 				uri, 384);
 		this.avatar.setImageBitmap(bm);
 		enablePublishButton();
+		this.publishButton.setText(R.string.publish_avatar);
+		this.hintOrWarning.setText(R.string.publish_avatar_explanation);
+		this.hintOrWarning.setTextColor(getPrimaryTextColor());
 	}
 
 	protected void enablePublishButton() {
 		this.publishButton.setEnabled(true);
 		this.publishButton.setTextColor(getPrimaryTextColor());
 	}
-	
+
 	protected void disablePublishButton() {
 		this.publishButton.setEnabled(false);
 		this.publishButton.setTextColor(getSecondaryTextColor());