diff --git a/briar-android/res/drawable-hdpi/msg_in_top.9.png b/briar-android/res/drawable-hdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcff2b787928c06f490cdbc77b85eaf411fd81b5
Binary files /dev/null and b/briar-android/res/drawable-hdpi/msg_in_top.9.png differ
diff --git a/briar-android/res/drawable-hdpi/msg_out_top.9.png b/briar-android/res/drawable-hdpi/msg_out_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..b6898258a9b40c45dcf5432be4bdad69e8bfa94e
Binary files /dev/null and b/briar-android/res/drawable-hdpi/msg_out_top.9.png differ
diff --git a/briar-android/res/drawable-hdpi/notice_in_bottom.9.png b/briar-android/res/drawable-hdpi/notice_in_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..9c5916e12bfad69105ad0704505fb26969641fe1
Binary files /dev/null and b/briar-android/res/drawable-hdpi/notice_in_bottom.9.png differ
diff --git a/briar-android/res/drawable-hdpi/notice_out_bottom.9.png b/briar-android/res/drawable-hdpi/notice_out_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..b941097643c79bdffe74edb04ffca9f4baad799d
Binary files /dev/null and b/briar-android/res/drawable-hdpi/notice_out_bottom.9.png differ
diff --git a/briar-android/res/drawable-mdpi/msg_in_top.9.png b/briar-android/res/drawable-mdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..0307d2f6818e235b947ca2473a26dabb88adcef5
Binary files /dev/null and b/briar-android/res/drawable-mdpi/msg_in_top.9.png differ
diff --git a/briar-android/res/drawable-mdpi/msg_out_top.9.png b/briar-android/res/drawable-mdpi/msg_out_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..526edd212be689c540547304450c4a6dae1dd77e
Binary files /dev/null and b/briar-android/res/drawable-mdpi/msg_out_top.9.png differ
diff --git a/briar-android/res/drawable-mdpi/notice_in_bottom.9.png b/briar-android/res/drawable-mdpi/notice_in_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..f64d08347c3473dfc38e7b082e8dd629327fce6a
Binary files /dev/null and b/briar-android/res/drawable-mdpi/notice_in_bottom.9.png differ
diff --git a/briar-android/res/drawable-mdpi/notice_out_bottom.9.png b/briar-android/res/drawable-mdpi/notice_out_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..674b59a31bdbb79f63c751184e9fbb2951fd96a1
Binary files /dev/null and b/briar-android/res/drawable-mdpi/notice_out_bottom.9.png differ
diff --git a/briar-android/res/drawable-xhdpi/msg_in_top.9.png b/briar-android/res/drawable-xhdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..eba9138bca21366f395907b0dab1180f4bd1e40a
Binary files /dev/null and b/briar-android/res/drawable-xhdpi/msg_in_top.9.png differ
diff --git a/briar-android/res/drawable-xhdpi/msg_out_top.9.png b/briar-android/res/drawable-xhdpi/msg_out_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..f06ff20ba279e444ee59f86fa34c0fcec6bb5300
Binary files /dev/null and b/briar-android/res/drawable-xhdpi/msg_out_top.9.png differ
diff --git a/briar-android/res/drawable-xhdpi/notice_in_bottom.9.png b/briar-android/res/drawable-xhdpi/notice_in_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..5d7ba38cc5ad5c5bcd6bfcfda30d9b9f659036e7
Binary files /dev/null and b/briar-android/res/drawable-xhdpi/notice_in_bottom.9.png differ
diff --git a/briar-android/res/drawable-xhdpi/notice_out_bottom.9.png b/briar-android/res/drawable-xhdpi/notice_out_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9a19763db7ca9334d4ed2e584b1fd9a5564c5b5
Binary files /dev/null and b/briar-android/res/drawable-xhdpi/notice_out_bottom.9.png differ
diff --git a/briar-android/res/drawable-xxhdpi/msg_in_top.9.png b/briar-android/res/drawable-xxhdpi/msg_in_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..e9829962e5a21490a451ade82181225b99fa7353
Binary files /dev/null and b/briar-android/res/drawable-xxhdpi/msg_in_top.9.png differ
diff --git a/briar-android/res/drawable-xxhdpi/msg_out_top.9.png b/briar-android/res/drawable-xxhdpi/msg_out_top.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..054f45de3fc0f1c87bf6ed7a5a39db4c8426aa39
Binary files /dev/null and b/briar-android/res/drawable-xxhdpi/msg_out_top.9.png differ
diff --git a/briar-android/res/drawable-xxhdpi/notice_in_bottom.9.png b/briar-android/res/drawable-xxhdpi/notice_in_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a9a07a5e78d2b1925d8bdbe1710f4297899d1e0
Binary files /dev/null and b/briar-android/res/drawable-xxhdpi/notice_in_bottom.9.png differ
diff --git a/briar-android/res/drawable-xxhdpi/notice_out_bottom.9.png b/briar-android/res/drawable-xxhdpi/notice_out_bottom.9.png
new file mode 100644
index 0000000000000000000000000000000000000000..c23063319f6059ff80db15204d763724ec86375c
Binary files /dev/null and b/briar-android/res/drawable-xxhdpi/notice_out_bottom.9.png differ
diff --git a/briar-android/res/layout/list_item_introduction_in.xml b/briar-android/res/layout/list_item_introduction_in.xml
index db40b47864c8f4407c55fcc61b248adc92be9011..b3a74b6c9b3fb698c00dde72a18e836be9725162 100644
--- a/briar-android/res/layout/list_item_introduction_in.xml
+++ b/briar-android/res/layout/list_item_introduction_in.xml
@@ -6,21 +6,29 @@
 	android:layout_height="wrap_content"
 	android:orientation="vertical">
 
-	<include
-		android:id="@+id/messageLayout"
-		layout="@layout/list_item_msg_in"/>
+	<TextView
+		android:id="@+id/msgBody"
+		android:layout_width="match_parent"
+		android:layout_height="wrap_content"
+		android:layout_marginLeft="@dimen/message_bubble_margin_tail"
+		android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
+		android:background="@drawable/msg_in_top"
+		android:textColor="@color/briar_text_primary"
+		android:textIsSelectable="true"
+		android:textSize="@dimen/text_size_medium"
+		tools:text="Short message"/>
 
 	<RelativeLayout
-		android:layout_width="wrap_content"
+		android:id="@+id/noticeLayout"
+		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:layout_gravity="left|start"
 		android:layout_marginLeft="@dimen/message_bubble_margin_tail"
 		android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
-		android:background="@drawable/notice_in">
+		android:background="@drawable/notice_in_bottom">
 
 		<TextView
 			android:id="@+id/introductionText"
-			android:layout_width="wrap_content"
+			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
 			android:minWidth="80dp"
 			android:textColor="@color/briar_text_secondary"
diff --git a/briar-android/res/layout/list_item_msg_notice_out.xml b/briar-android/res/layout/list_item_msg_notice_out.xml
index 79e006af3ec12b02200045d01d3a85a67e2dc8bc..1418e0603251ad97eef8c11e490bf780e3cce331 100644
--- a/briar-android/res/layout/list_item_msg_notice_out.xml
+++ b/briar-android/res/layout/list_item_msg_notice_out.xml
@@ -6,36 +6,44 @@
 	android:layout_height="wrap_content"
 	android:orientation="vertical">
 
-	<include
-		android:id="@+id/messageLayout"
-		layout="@layout/list_item_msg_out"/>
+	<TextView
+		android:id="@+id/msgBody"
+		android:layout_width="match_parent"
+		android:layout_height="wrap_content"
+		android:layout_marginLeft="@dimen/message_bubble_margin_non_tail"
+		android:layout_marginRight="@dimen/message_bubble_margin_tail"
+		android:background="@drawable/msg_out_top"
+		android:textColor="@color/briar_text_primary_inverse"
+		android:textIsSelectable="true"
+		android:textSize="@dimen/text_size_medium"
+		tools:text="This is a long long long message that spans over several lines.\n\nIt ends here."/>
 
 	<RelativeLayout
-		android:layout_width="wrap_content"
+		android:id="@+id/noticeLayout"
+		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:layout_gravity="right|end"
-		android:background="@drawable/notice_out"
 		android:layout_marginLeft="@dimen/message_bubble_margin_non_tail"
-		android:layout_marginRight="@dimen/message_bubble_margin_tail">
+		android:layout_marginRight="@dimen/message_bubble_margin_tail"
+		android:background="@drawable/notice_out_bottom">
 
 		<TextView
 			android:id="@+id/introductionText"
-			android:layout_width="wrap_content"
+			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
+			android:textColor="@color/briar_text_secondary"
 			android:textIsSelectable="true"
 			android:textSize="@dimen/text_size_medium"
 			android:textStyle="italic"
-			android:textColor="@color/briar_text_secondary"
 			tools:text="@string/introduction_request_received"/>
 
 		<TextView
 			android:id="@+id/introductionTime"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
-			android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
 			android:layout_alignParentLeft="true"
 			android:layout_alignParentStart="true"
 			android:layout_below="@+id/introductionText"
+			android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
 			android:textColor="@color/private_message_date"
 			android:textSize="@dimen/text_size_tiny"
 			tools:text="Dec 24, 13:37"/>
@@ -44,10 +52,10 @@
 			android:id="@+id/introductionStatus"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
-			android:layout_toEndOf="@+id/introductionTime"
-			android:layout_toRightOf="@+id/introductionTime"
 			android:layout_alignBottom="@+id/introductionTime"
 			android:layout_marginLeft="@dimen/margin_medium"
+			android:layout_toEndOf="@+id/introductionTime"
+			android:layout_toRightOf="@+id/introductionTime"
 			tools:ignore="ContentDescription"
 			tools:src="@drawable/message_delivered"/>
 
diff --git a/briar-android/res/layout/list_item_shareable_invitation_in.xml b/briar-android/res/layout/list_item_shareable_invitation_in.xml
index 63c628f73016ee314136aaa13024699643077417..5d707e3612fdd95c74ddfcb3c0189a466596e57a 100644
--- a/briar-android/res/layout/list_item_shareable_invitation_in.xml
+++ b/briar-android/res/layout/list_item_shareable_invitation_in.xml
@@ -6,37 +6,46 @@
 	android:layout_height="wrap_content"
 	android:orientation="vertical">
 
-	<include
-		android:id="@+id/messageLayout"
-		layout="@layout/list_item_msg_in"/>
+	<TextView
+		android:id="@+id/msgBody"
+		android:layout_width="match_parent"
+		android:layout_height="wrap_content"
+		android:layout_gravity="left|start"
+		android:layout_marginLeft="@dimen/message_bubble_margin_tail"
+		android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
+		android:background="@drawable/msg_in_top"
+		android:textColor="@color/briar_text_primary"
+		android:textIsSelectable="true"
+		android:textSize="@dimen/text_size_medium"
+		tools:text="Short message"/>
 
 	<RelativeLayout
-		android:layout_width="wrap_content"
+		android:id="@+id/noticeLayout"
+		android:layout_width="match_parent"
 		android:layout_height="wrap_content"
-		android:layout_gravity="left|start"
-		android:background="@drawable/notice_in"
 		android:layout_marginLeft="@dimen/message_bubble_margin_tail"
-		android:layout_marginRight="@dimen/message_bubble_margin_non_tail">
+		android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
+		android:background="@drawable/notice_in_bottom">
 
 		<TextView
 			android:id="@+id/introductionText"
-			android:layout_width="wrap_content"
+			android:layout_width="match_parent"
 			android:layout_height="wrap_content"
 			android:minWidth="80dp"
+			android:textColor="@color/briar_text_secondary"
 			android:textIsSelectable="true"
 			android:textSize="@dimen/text_size_medium"
 			android:textStyle="italic"
-			android:textColor="@color/briar_text_secondary"
 			tools:text="@string/forum_invitation_received"/>
 
 		<TextView
 			android:id="@+id/introductionTime"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
-			android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
 			android:layout_alignEnd="@+id/introductionText"
 			android:layout_alignRight="@+id/introductionText"
 			android:layout_below="@+id/showInvitationsButton"
+			android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
 			android:textColor="@color/private_message_date"
 			android:textSize="@dimen/text_size_tiny"
 			tools:text="Dec 24, 13:37"/>
@@ -46,10 +55,10 @@
 			style="@style/BriarButtonFlat.Positive"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
-			android:layout_marginBottom="-15dp"
 			android:layout_alignEnd="@+id/introductionText"
 			android:layout_alignRight="@+id/introductionText"
 			android:layout_below="@+id/introductionText"
+			android:layout_marginBottom="-15dp"
 			tools:text="@string/forum_show_invitations"/>
 
 	</RelativeLayout>
diff --git a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
index c2fc1c026e8f3ad429cd9da9d50d2ccb6526f39b..e86189f31a82d3a2fd6a299aa4f3c40d22cda5bf 100644
--- a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
+++ b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java
@@ -37,7 +37,6 @@ import static org.briarproject.android.contact.ConversationItem.FORUM_INVITATION
 import static org.briarproject.android.contact.ConversationItem.INTRODUCTION_IN;
 import static org.briarproject.android.contact.ConversationItem.INTRODUCTION_OUT;
 import static org.briarproject.android.contact.ConversationItem.IncomingItem;
-import static org.briarproject.android.contact.ConversationItem.MSG_IN;
 import static org.briarproject.android.contact.ConversationItem.MSG_IN_UNREAD;
 import static org.briarproject.android.contact.ConversationItem.MSG_OUT;
 import static org.briarproject.android.contact.ConversationItem.NOTICE_IN;
@@ -140,7 +139,6 @@ class ConversationAdapter extends RecyclerView.Adapter {
 	}
 
 	private void bindMessage(MessageHolder ui, ConversationMessageItem item) {
-
 		PrivateMessageHeader header = item.getHeader();
 
 		if (item instanceof ConversationItem.OutgoingItem) {
@@ -186,15 +184,24 @@ class ConversationAdapter extends RecyclerView.Adapter {
 			final ConversationIntroductionItem item, final int position) {
 
 		final IntroductionRequest ir = item.getIntroductionRequest();
+		int backgroundRes;
 
 		String message = ir.getMessage();
 		if (StringUtils.isNullOrEmpty(message)) {
-			ui.messageLayout.setVisibility(GONE);
+			ui.message.setVisibility(GONE);
+			if (item instanceof ConversationIntroductionOutItem) {
+				backgroundRes = R.drawable.notice_out;
+			} else {
+				backgroundRes = R.drawable.notice_in;
+			}
 		} else {
-			ui.messageLayout.setVisibility(VISIBLE);
-			ui.message.body.setText(StringUtils.trim(message));
-			ui.message.date
-					.setText(AndroidUtils.formatDate(ctx, item.getTime()));
+			ui.message.setText(StringUtils.trim(message));
+			ui.message.setVisibility(VISIBLE);
+			if (item instanceof ConversationIntroductionOutItem) {
+				backgroundRes = R.drawable.notice_out_bottom;
+			} else {
+				backgroundRes = R.drawable.notice_in_bottom;
+			}
 		}
 
 		// Outgoing Introduction Request
@@ -204,17 +211,14 @@ class ConversationAdapter extends RecyclerView.Adapter {
 			ConversationIntroductionOutItem i =
 					(ConversationIntroductionOutItem) item;
 			if (i.isSeen()) {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_delivered);
-				ui.message.status.setImageResource(
-						R.drawable.message_delivered_white);
 			} else if (i.isSent()) {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_sent);
-				ui.message.status.setImageResource(
-						R.drawable.message_sent_white);
 			} else {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_stored);
-				ui.message.status.setImageResource(
-						R.drawable.message_stored_white);
 			}
 		}
 		// Incoming Introduction Request (Answered)
@@ -265,20 +269,23 @@ class ConversationAdapter extends RecyclerView.Adapter {
 			});
 		}
 		ui.date.setText(AndroidUtils.formatDate(ctx, item.getTime()));
+		ui.notice.setBackgroundResource(backgroundRes);
 	}
 
 	private void bindNotice(NoticeHolder ui, ConversationNoticeItem item) {
-
 		ui.text.setText(item.getText());
 		ui.date.setText(AndroidUtils.formatDate(ctx, item.getTime()));
 
 		if (item instanceof ConversationNoticeOutItem) {
 			ConversationNoticeOutItem n = (ConversationNoticeOutItem) item;
 			if (n.isSeen()) {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_delivered);
 			} else if (n.isSent()) {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_sent);
 			} else {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_stored);
 			}
 		}
@@ -289,7 +296,7 @@ class ConversationAdapter extends RecyclerView.Adapter {
 
 		final InvitationRequest ir = item.getInvitationRequest();
 		String name = "";
-		int receivedRes =  0, sentRes = 0, buttonRes = 0;
+		int receivedRes =  0, sentRes = 0, buttonRes = 0, backgroundRes;
 		if (ir instanceof ForumInvitationRequest) {
 			name = ((ForumInvitationRequest) ir).getForumName();
 			receivedRes = R.string.forum_invitation_received;
@@ -304,12 +311,20 @@ class ConversationAdapter extends RecyclerView.Adapter {
 
 		String message = ir.getMessage();
 		if (StringUtils.isNullOrEmpty(message)) {
-			ui.messageLayout.setVisibility(GONE);
+			ui.message.setVisibility(GONE);
+			if (item instanceof ConversationShareableInvitationOutItem) {
+				backgroundRes = R.drawable.notice_out;
+			} else {
+				backgroundRes = R.drawable.notice_in;
+			}
 		} else {
-			ui.messageLayout.setVisibility(VISIBLE);
-			ui.message.body.setText(StringUtils.trim(message));
-			ui.message.date
-					.setText(AndroidUtils.formatDate(ctx, item.getTime()));
+			ui.message.setVisibility(VISIBLE);
+			ui.message.setText(StringUtils.trim(message));
+			if (item instanceof ConversationShareableInvitationOutItem) {
+				backgroundRes = R.drawable.notice_out_bottom;
+			} else {
+				backgroundRes = R.drawable.notice_in_bottom;
+			}
 		}
 
 		// Outgoing Invitation
@@ -318,17 +333,14 @@ class ConversationAdapter extends RecyclerView.Adapter {
 			ConversationShareableInvitationOutItem i =
 					(ConversationShareableInvitationOutItem) item;
 			if (i.isSeen()) {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_delivered);
-				ui.message.status.setImageResource(
-						R.drawable.message_delivered_white);
 			} else if (i.isSent()) {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_sent);
-				ui.message.status.setImageResource(
-						R.drawable.message_sent_white);
 			} else {
+				//noinspection ConstantConditions
 				ui.status.setImageResource(R.drawable.message_stored);
-				ui.message.status.setImageResource(
-						R.drawable.message_stored_white);
 			}
 		}
 		// Incoming Invitation
@@ -354,6 +366,7 @@ class ConversationAdapter extends RecyclerView.Adapter {
 			}
 		}
 		ui.date.setText(AndroidUtils.formatDate(ctx, item.getTime()));
+		ui.notice.setBackgroundResource(backgroundRes);
 	}
 
 	@Override
@@ -431,7 +444,7 @@ class ConversationAdapter extends RecyclerView.Adapter {
 		public TextView date;
 		public ImageView status;
 
-		MessageHolder(View v, int type) {
+		private MessageHolder(View v, int type) {
 			super(v);
 
 			layout = (ViewGroup) v.findViewById(R.id.msgLayout);
@@ -447,20 +460,19 @@ class ConversationAdapter extends RecyclerView.Adapter {
 
 	private static class IntroductionHolder extends RecyclerView.ViewHolder {
 
-		private final View messageLayout;
-		private final MessageHolder message;
+		private final TextView message;
+		private final ViewGroup notice;
 		private final TextView text;
 		private final Button acceptButton;
 		private final Button declineButton;
 		private final TextView date;
 		private final ImageView status;
 
-		IntroductionHolder(View v, int type) {
+		private IntroductionHolder(View v, int type) {
 			super(v);
 
-			messageLayout = v.findViewById(R.id.messageLayout);
-			message = new MessageHolder(messageLayout,
-					type == INTRODUCTION_IN ? MSG_IN : MSG_OUT);
+			message = (TextView) v.findViewById(R.id.msgBody);
+			notice = (ViewGroup) v.findViewById(R.id.noticeLayout);
 			text = (TextView) v.findViewById(R.id.introductionText);
 			acceptButton = (Button) v.findViewById(R.id.acceptButton);
 			declineButton = (Button) v.findViewById(R.id.declineButton);
@@ -480,7 +492,7 @@ class ConversationAdapter extends RecyclerView.Adapter {
 		private final TextView date;
 		private final ImageView status;
 
-		NoticeHolder(View v, int type) {
+		private NoticeHolder(View v, int type) {
 			super(v);
 
 			text = (TextView) v.findViewById(R.id.noticeText);
@@ -496,20 +508,19 @@ class ConversationAdapter extends RecyclerView.Adapter {
 
 	private static class InvitationHolder extends RecyclerView.ViewHolder {
 
-		private final View messageLayout;
-		private final MessageHolder message;
+		private final TextView message;
+		private final View notice;
 		private final TextView text;
 		private final Button showInvitationsButton;
 		private final TextView date;
 		private final ImageView status;
 
-		InvitationHolder(View v, int type) {
+		private InvitationHolder(View v, int type) {
 			super(v);
 
-			messageLayout = v.findViewById(R.id.messageLayout);
-			message = new MessageHolder(messageLayout,
-					type == FORUM_INVITATION_IN ? MSG_IN : MSG_OUT);
+			message = (TextView) v.findViewById(R.id.msgBody);
 			text = (TextView) v.findViewById(R.id.introductionText);
+			notice = v.findViewById(R.id.noticeLayout);
 			showInvitationsButton = (Button) v.findViewById(R.id.showInvitationsButton);
 			date = (TextView) v.findViewById(R.id.introductionTime);