Merge branch 'development' of https://github.com/siacs/Conversations into development

kruks23 created

Change summary

res/drawable/blue.xml                                   |   5 
res/drawable/bluebackground.xml                         |   9 
res/drawable/darkblue.xml                               |   5 
res/drawable/darkred.xml                                |   5 
res/drawable/red.xml                                    |   5 
res/drawable/redbackground.xml                          |   9 
res/layout/fragment_conversation.xml                    | 115 ++--------
res/values/colors.xml                                   |   2 
res/values/strings.xml                                  |   2 
src/eu/siacs/conversations/ui/ConversationActivity.java |   2 
src/eu/siacs/conversations/ui/ConversationFragment.java |  54 ++--
src/eu/siacs/conversations/utils/UIHelper.java          |   2 
12 files changed, 59 insertions(+), 156 deletions(-)

Detailed changes

res/drawable/blue.xml 🔗

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" 
-    android:shape="rectangle">
-    <solid android:color="#FF1da9da" />
-</shape>

res/drawable/bluebackground.xml 🔗

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item
-        android:state_pressed="false"
-        android:drawable="@drawable/blue" />
-    <item
-        android:state_pressed="true"
-        android:drawable="@drawable/darkblue" />
-</selector>

res/drawable/darkblue.xml 🔗

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" 
-    android:shape="rectangle">
-    <solid android:color="#FF0099cc" />
-</shape>

res/drawable/darkred.xml 🔗

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" 
-    android:shape="rectangle">
-    <solid android:color="#ffcc0000" />
-</shape>

res/drawable/red.xml 🔗

@@ -1,5 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android" 
-    android:shape="rectangle">
-    <solid android:color="#FFe92727" />
-</shape>

res/drawable/redbackground.xml 🔗

@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<selector xmlns:android="http://schemas.android.com/apk/res/android" >
-    <item
-        android:state_pressed="false"
-        android:drawable="@drawable/red" />
-    <item
-        android:state_pressed="true"
-        android:drawable="@drawable/darkred" />
-</selector>

res/layout/fragment_conversation.xml 🔗

@@ -3,7 +3,7 @@
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@color/primarybackground" >
+    android:background="@color/secondarybackground" >
 
     <RelativeLayout
         android:id="@+id/textsend"
@@ -49,7 +49,7 @@
         android:layout_height="wrap_content"
         android:layout_above="@+id/textsend"
         android:layout_alignParentLeft="true"
-        android:layout_below="@+id/info_box"
+        android:layout_below="@+id/snackbar"
         android:background="@color/secondarybackground"
         android:divider="@null"
         android:dividerHeight="0dp"
@@ -59,94 +59,37 @@
         tools:listitem="@layout/message_sent" >
     </ListView>
 
-    <LinearLayout
-        android:id="@+id/info_box"
+    <RelativeLayout
+        android:id="@+id/snackbar"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
-        android:orientation="vertical" >
-
-        <LinearLayout
-            android:id="@+id/muc_error"
-            android:layout_width="fill_parent"
-            android:layout_height="wrap_content"
-            android:background="@drawable/redbackground"
-            android:orientation="vertical"
-            android:visibility="gone" >
-
-            <TextView
-                android:id="@+id/muc_error_msg"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:padding="6dp"
-                android:textColor="#eee"
-                android:textSize="18sp"
-                android:textStyle="bold" />
+        android:minHeight="48dp"
+        android:background="@color/darkbackground"
+        android:visibility="gone">
 
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingBottom="6dp"
-                android:paddingLeft="6dp"
-                android:text="@string/edit_conference_details"
-                android:textColor="#eee"
-                android:textSize="14sp" />
-        </LinearLayout>
-
-        <LinearLayout
-            android:id="@+id/new_fingerprint"
-            android:layout_width="fill_parent"
+        <TextView
+            android:id="@+id/snackbar_message"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:background="@drawable/redbackground"
-            android:orientation="vertical"
-            android:visibility="gone" >
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:padding="6dp"
-                android:text="@string/unknown_otr_fingerprint"
-                android:textColor="#eee"
-                android:textSize="18sp"
-                android:textStyle="bold" />
-
-            <TextView
-                android:id="@+id/otr_fingerprint"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingBottom="6dp"
-                android:paddingLeft="6dp"
-                android:textColor="#eee"
-                android:textSize="14sp"
-                android:singleLine="true"
-                android:typeface="monospace" />
-        </LinearLayout>
-
-        <LinearLayout
-            android:id="@+id/pgp_keyentry"
-            android:layout_width="fill_parent"
+            android:layout_alignParentLeft="true"
+            android:layout_centerVertical="true"
+            android:textSize="14sp"
+            android:textColor="@color/ondarktext"
+            android:paddingLeft="24dp"/>
+        <TextView
+            android:id="@+id/snackbar_action"
+            android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:background="@drawable/bluebackground"
-            android:orientation="vertical"
-            android:visibility="gone" >
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:padding="6dp"
-                android:text="@string/openpgp_messages_found"
-                android:textColor="#eee"
-                android:textSize="18sp"
-                android:textStyle="bold" />
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:paddingBottom="6dp"
-                android:paddingLeft="6dp"
-                android:text="@string/openpgp_click_to_decrypt"
-                android:textColor="#eee"
-                android:textSize="14sp" />
-        </LinearLayout>
-    </LinearLayout>
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:textSize="14sp"
+            android:textColor="@color/ondarktext"
+            android:textStyle="bold"
+            android:textAllCaps="true"
+            android:paddingLeft="24dp"
+            android:paddingRight="24dp"
+            android:paddingTop="18dp"
+            android:paddingBottom="18dp"/>
+        </RelativeLayout>
 
 </RelativeLayout>

res/values/colors.xml 🔗

@@ -2,8 +2,10 @@
 <resources>
     <color name="primarytext" type="color">#de000000</color>
     <color name="secondarytext" type="color">#8a000000</color>
+    <color name="ondarktext" type="color">#fffafafa</color>
     <color name="primarybackground" type="color">#fffafafa</color>
     <color name="secondarybackground" type="color">#ffeeeeee</color>
+    <color name="darkbackground" type="color">#ff323232</color>
     <color name="divider">#1f000000</color>
     <color name="red">#ffe51c23</color>
 </resources>

res/values/strings.xml 🔗

@@ -252,4 +252,6 @@
     <string name="no_muc_server_found">No suitable Conference Server found</string>
     <string name="your_fingerprint">Your fingerprint</string>
     <string name="otr_fingerprint">OTR fingerprint</string>
+    <string name="verify">Verify</string>
+    <string name="decrypt">Decrypt</string>
 </resources>

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

@@ -768,7 +768,7 @@ public class ConversationActivity extends XmppActivity {
 				ConversationFragment selectedFragment = (ConversationFragment) getFragmentManager()
 						.findFragmentByTag("conversation");
 				if (selectedFragment != null) {
-					selectedFragment.hidePgpPassphraseBox();
+					selectedFragment.hideSnackbar();
 				}
 			} else if (requestCode == REQUEST_ATTACH_FILE_DIALOG) {
 				attachImageToConversation(getSelectedConversation(),

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

@@ -48,6 +48,7 @@ import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.ImageButton;
 import android.widget.ImageView;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.Toast;
 
@@ -68,6 +69,9 @@ public class ConversationFragment extends Fragment {
 
 	private EditText chatMsg;
 	private String pastedText = null;
+	private RelativeLayout snackbar;
+	private TextView snackbarMessage;
+	private TextView snackbarAction;
 
 	protected Bitmap selfBitmap;
 
@@ -109,10 +113,7 @@ public class ConversationFragment extends Fragment {
 			}
 		}
 	};
-
-	private LinearLayout pgpInfo;
-	private LinearLayout mucError;
-	private TextView mucErrorText;
+	
 	private OnClickListener clickToMuc = new OnClickListener() {
 
 		@Override
@@ -152,10 +153,6 @@ public class ConversationFragment extends Fragment {
 
 	private ConversationActivity activity;
 
-	public void hidePgpPassphraseBox() {
-		pgpInfo.setVisibility(View.GONE);
-	}
-
 	public void updateChatMsgHint() {
 		switch (conversation.getNextEncryption()) {
 		case Message.ENCRYPTION_NONE:
@@ -191,11 +188,9 @@ public class ConversationFragment extends Fragment {
 				.findViewById(R.id.textSendButton);
 		sendButton.setOnClickListener(this.sendMsgListener);
 
-		pgpInfo = (LinearLayout) view.findViewById(R.id.pgp_keyentry);
-		pgpInfo.setOnClickListener(clickToDecryptListener);
-		mucError = (LinearLayout) view.findViewById(R.id.muc_error);
-		mucError.setOnClickListener(clickToMuc);
-		mucErrorText = (TextView) view.findViewById(R.id.muc_error_msg);
+		snackbar = (RelativeLayout) view.findViewById(R.id.snackbar);
+		snackbarMessage = (TextView) view.findViewById(R.id.snackbar_message);
+		snackbarAction = (TextView) view.findViewById(R.id.snackbar_action);
 
 		messagesView = (ListView) view.findViewById(R.id.messages_view);
 		messagesView.setOnScrollListener(mOnScrollListener);
@@ -688,7 +683,7 @@ public class ConversationFragment extends Fragment {
 				@Override
 				public void userInputRequried(PendingIntent pi, Message message) {
 					askForPassphraseIntent = pi.getIntentSender();
-					pgpInfo.setVisibility(View.VISIBLE);
+					showSnackbar(R.string.openpgp_messages_found,R.string.decrypt,clickToDecryptListener);
 				}
 
 				@Override
@@ -704,8 +699,6 @@ public class ConversationFragment extends Fragment {
 					// updateMessages();
 				}
 			});
-		} else {
-			pgpInfo.setVisibility(View.GONE);
 		}
 	}
 
@@ -742,12 +735,10 @@ public class ConversationFragment extends Fragment {
 				}
 			} else {
 				if (conversation.getMucOptions().getError() != 0) {
-					mucError.setVisibility(View.VISIBLE);
+					showSnackbar(R.string.nick_in_use, R.string.edit,clickToMuc);
 					if (conversation.getMucOptions().getError() == MucOptions.ERROR_NICK_IN_USE) {
-						mucErrorText.setText(getString(R.string.nick_in_use));
+						showSnackbar(R.string.nick_in_use, R.string.edit,clickToMuc);
 					}
-				} else {
-					mucError.setVisibility(View.GONE);
 				}
 			}
 			getActivity().invalidateOptionsMenu();
@@ -795,34 +786,37 @@ public class ConversationFragment extends Fragment {
 	}
 
 	protected void makeFingerprintWarning(int latestEncryption) {
-		final LinearLayout fingerprintWarning = (LinearLayout) getView()
-				.findViewById(R.id.new_fingerprint);
 		Set<String> knownFingerprints = conversation.getContact()
 				.getOtrFingerprints();
 		if ((latestEncryption == Message.ENCRYPTION_OTR)
 				&& (conversation.hasValidOtrSession()
 						&& (conversation.getOtrSession().getSessionStatus() == SessionStatus.ENCRYPTED) && (!knownFingerprints
 							.contains(conversation.getOtrFingerprint())))) {
-			fingerprintWarning.setVisibility(View.VISIBLE);
-			TextView fingerprint = (TextView) getView().findViewById(
-					R.id.otr_fingerprint);
-			fingerprint.setText(conversation.getOtrFingerprint());
-			fingerprintWarning.setOnClickListener(new OnClickListener() {
+			showSnackbar(R.string.unknown_otr_fingerprint, R.string.verify, new OnClickListener() {
 
 				@Override
 				public void onClick(View v) {
 					if (conversation.getOtrFingerprint() != null) {
 						AlertDialog dialog = UIHelper.getVerifyFingerprintDialog(
 								(ConversationActivity) getActivity(), conversation,
-								fingerprintWarning);
+								snackbar);
 						dialog.show();
 					}
 				}
 			});
-		} else {
-			fingerprintWarning.setVisibility(View.GONE);
 		}
 	}
+	
+	protected void showSnackbar(int message, int action, OnClickListener clickListener) {
+		snackbar.setVisibility(View.VISIBLE);
+		snackbarMessage.setText(message);
+		snackbarAction.setText(action);
+		snackbarAction.setOnClickListener(clickListener);
+	}
+	
+	protected void hideSnackbar() {
+		snackbar.setVisibility(View.GONE);
+	}
 
 	protected void sendPlainTextMessage(Message message) {
 		ConversationActivity activity = (ConversationActivity) getActivity();

src/eu/siacs/conversations/utils/UIHelper.java 🔗

@@ -492,7 +492,7 @@ public class UIHelper {
 
 	public static AlertDialog getVerifyFingerprintDialog(
 			final ConversationActivity activity,
-			final Conversation conversation, final LinearLayout msg) {
+			final Conversation conversation, final View msg) {
 		final Contact contact = conversation.getContact();
 		final Account account = conversation.getAccount();