Skip to content
Snippets Groups Projects
Commit 3cbc7faa authored by Adrien Béraud's avatar Adrien Béraud Committed by Sébastien Blin
Browse files

conversation: UI improvements


Change-Id: I5ecc4b306deae3bd1ccdfd92d402399b66c4c40b
Reviewed-by: default avatarSebastien Blin <sebastien.blin@savoirfairelinux.com>
parent f14f4a0d
No related branches found
No related tags found
No related merge requests found
Showing
with 88 additions and 44 deletions
......@@ -26,6 +26,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
......@@ -34,7 +35,6 @@ import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SimpleItemAnimator;
import android.text.Editable;
......@@ -145,6 +145,9 @@ public class ConversationFragment extends BaseFragment<ConversationPresenter> im
@BindView(R.id.tvTrustRequestMessage)
protected TextView mTvTrustRequestMessage;
@BindView(R.id.pb_loading)
protected ProgressBar mLoadingIndicator;
private AlertDialog mDeleteDialog;
private boolean mDeleteConversation = false;
......@@ -158,6 +161,9 @@ public class ConversationFragment extends BaseFragment<ConversationPresenter> im
private File mCurrentPhoto = null;
private Handler mHandler = new Handler();
private static final int REFRESH_INTERVAL = 10000;
private static int getIndex(Spinner spinner, Uri myString) {
for (int i = 0, n = spinner.getCount(); i < n; i++)
if (((Phone) spinner.getItemAtPosition(i)).getNumber().equals(myString)) {
......@@ -171,16 +177,45 @@ public class ConversationFragment extends BaseFragment<ConversationPresenter> im
if (conversation == null) {
return;
}
if (mLoadingIndicator != null)
mLoadingIndicator.setVisibility(View.GONE);
if (mAdapter != null) {
mAdapter.updateDataset(conversation);
}
getActivity().invalidateOptionsMenu();
}
@Override
public void onStart() {
super.onStart();
restartTimer();
}
@Override
public void onStop() {
super.onStop();
mHandler.removeCallbacks(mRefreshTask);
}
private void restartTimer() {
mHandler.removeCallbacks(mRefreshTask);
mHandler.postDelayed(mRefreshTask, REFRESH_INTERVAL);
}
private final Runnable mRefreshTask = new Runnable() {
@Override
public void run() {
if (mAdapter != null)
mAdapter.notifyDataSetChanged();
mHandler.postDelayed(mRefreshTask, REFRESH_INTERVAL);
}
};
@Override
public void scrollToEnd() {
if (mAdapter.getItemCount() > 0) {
mHistList.smoothScrollToPosition(mAdapter.getItemCount() - 1);
mHistList.scrollToPosition(mAdapter.getItemCount() - 1);
}
}
......@@ -230,14 +265,8 @@ public class ConversationFragment extends BaseFragment<ConversationPresenter> im
mTopPane.setVisibility(View.GONE);
}
LinearLayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
mLayoutManager.setStackFromEnd(true);
mHistList.setLayoutManager(mLayoutManager);
mHistList.setAdapter(null);
SimpleItemAnimator animator = new DefaultItemAnimator();
DefaultItemAnimator animator = (DefaultItemAnimator) mHistList.getItemAnimator();
animator.setSupportsChangeAnimations(false);
mHistList.setItemAnimator(animator);
mHistList.setAdapter(mAdapter);
setHasOptionsMenu(true);
......@@ -362,7 +391,9 @@ public class ConversationFragment extends BaseFragment<ConversationPresenter> im
public void addElement(ConversationElement element) {
mAdapter.add(element);
scrollToEnd();
restartTimer();
}
@Override
public void updateElement(ConversationElement element) {
mAdapter.update(element);
......
......@@ -5,13 +5,13 @@
android:width="0dp"
android:color="@android:color/transparent" />
<solid android:color="#ffffff" />
<solid android:color="@color/grey_200" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:radius="5dp" />
<corners android:radius="16dp" />
</shape>
\ No newline at end of file
......@@ -5,13 +5,13 @@
android:width="0dp"
android:color="@android:color/transparent" />
<solid android:color="#dee4e7" />
<solid android:color="@color/grey_200" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:radius="5dp" />
<corners android:radius="16dp" />
</shape>
\ No newline at end of file
......@@ -5,13 +5,13 @@
android:width="0dp"
android:color="@android:color/transparent" />
<solid android:color="#cfd8dc" />
<solid android:color="@color/blue_600" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:radius="5dp" />
<corners android:radius="16dp" />
</shape>
\ No newline at end of file
......@@ -3,7 +3,15 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="@color/grey_25">
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_centerInParent="true"
android:indeterminate="true" />
<LinearLayout
android:id="@+id/trustRequestMessageLayout"
......@@ -42,6 +50,9 @@
android:listSelector="@color/transparent"
android:paddingTop="8dp"
android:paddingBottom="60dp"
android:transcriptMode="normal"
app:layoutManager="LinearLayoutManager"
app:stackFromEnd="true"
tools:listitem="@layout/item_conv_msg_peer" />
<LinearLayout
......@@ -72,8 +83,9 @@
android:layout_marginRight="8dp"
android:layout_marginBottom="12dp"
android:padding="0dp"
android:visibility="gone"
app:cardBackgroundColor="#4CAF50"
app:cardCornerRadius="8dp">
app:cardCornerRadius="@dimen/radius_message_input">
<Button
android:id="@+id/btnAddContact"
......@@ -99,7 +111,7 @@
android:layout_marginBottom="12dp"
android:padding="0dp"
android:visibility="gone"
app:cardCornerRadius="8dp">
app:cardCornerRadius="@dimen/radius_message_input">
<LinearLayout
style="?android:attr/buttonBarStyle"
......@@ -152,10 +164,11 @@
android:layout_alignParentBottom="true"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="12dp"
android:layout_marginBottom="8dp"
android:visibility="gone"
app:cardCornerRadius="8dp"
tools:visibility="gone">
app:cardCornerRadius="@dimen/radius_message_input"
app:cardElevation="6dp"
tools:visibility="visible">
<LinearLayout
android:layout_width="match_parent"
......
......@@ -25,11 +25,10 @@ along with this program; if not, write to the Free Software
android:layout_gravity="end|bottom"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:clickable="true"
android:descendantFocusability="blocksDescendants"
android:focusable="false"
android:paddingLeft="16dp"
android:paddingRight="16dp">
android:paddingStart="72dp"
android:paddingEnd="72dp">
<LinearLayout
android:layout_width="match_parent"
......
......@@ -28,8 +28,6 @@ along with this program; if not, write to the Free Software
android:focusable="false"
android:paddingBottom="4dp"
android:paddingEnd="@dimen/padding_large"
android:paddingLeft="@dimen/padding_large"
android:paddingRight="@dimen/padding_large"
android:paddingStart="@dimen/padding_large"
android:paddingTop="4dp">
......@@ -37,35 +35,35 @@ along with this program; if not, write to the Free Software
android:id="@+id/msg_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginStart="48dp"
android:layout_alignParentEnd="true"
android:layout_marginStart="72dp"
android:autoLink="all"
android:background="@drawable/textmsg_me_background"
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="marquee_forever"
android:paddingStart="@dimen/padding_medium"
android:paddingTop="5dp"
android:paddingEnd="@dimen/padding_medium"
android:paddingBottom="@dimen/padding_small"
android:paddingLeft="@dimen/padding_medium"
android:paddingRight="@dimen/padding_medium"
android:paddingTop="@dimen/padding_small"
android:scrollHorizontally="true"
android:singleLine="false"
android:textColor="@color/text_color_primary"
android:textColor="@color/text_color_primary_dark"
android:textIsSelectable="true"
android:textSize="16sp"
tools:text="yo"/>
tools:text="yo this is the test of a long long text_cannot_be_found_message" />
<TextView
android:id="@+id/msg_details_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/msg_txt"
android:layout_below="@+id/msg_txt"
android:layout_alignEnd="@+id/msg_txt"
android:layout_marginBottom="4dp"
android:textColor="@color/text_color_secondary"
android:textSize="14sp"
tools:text="@string/message_sending"/>
tools:text="@string/message_sending" />
</RelativeLayout>
......@@ -25,12 +25,12 @@ along with this program; if not, write to the Free Software
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:focusable="false"
android:paddingBottom="4dp"
android:paddingEnd="@dimen/padding_large"
android:paddingStart="@dimen/padding_large"
android:paddingLeft="@dimen/padding_large"
android:paddingTop="4dp"
android:paddingEnd="@dimen/padding_large"
android:paddingRight="@dimen/padding_large"
android:paddingStart="@dimen/padding_large"
android:paddingTop="4dp">
android:paddingBottom="4dp">
<ImageView
android:id="@+id/photo"
......@@ -54,16 +54,16 @@ along with this program; if not, write to the Free Software
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="marquee_forever"
android:paddingBottom="@dimen/padding_small"
android:paddingLeft="@dimen/padding_medium"
android:paddingTop="5dp"
android:paddingRight="@dimen/padding_medium"
android:paddingTop="@dimen/padding_small"
android:paddingBottom="@dimen/padding_small"
android:scrollHorizontally="true"
android:singleLine="false"
android:textColor="@color/text_color_primary"
android:textIsSelectable="true"
android:textSize="16sp"
tools:text="yo"/>
tools:text="yo" />
<TextView
android:id="@+id/msg_details_txt"
......@@ -74,6 +74,6 @@ along with this program; if not, write to the Free Software
android:layout_toEndOf="@id/photo"
android:textColor="@color/text_color_secondary"
android:textSize="14sp"
tools:text="@string/message_sending"/>
tools:text="@string/time_just_now" />
</RelativeLayout>
......@@ -25,6 +25,8 @@ along with this program; if not, write to the Free Software
<dimen name="padding_medium">12dp</dimen>
<dimen name="padding_large">16dp</dimen>
<dimen name="radius_message_input">16dp</dimen>
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
......
......@@ -262,9 +262,10 @@
<color name="orange_A400">#FF9100</color>
<color name="orange_A700">#FF6D00</color>
<color name="grey_25">#fdfdfd</color>
<color name="grey_50">#FAFAFA</color>
<color name="grey_100">#F5F5F5</color>
<color name="grey_200">#EEEEEE</color>
<color name="grey_200">#EaEaEa</color>
<color name="grey_300">#E0E0E0</color>
<color name="grey_400">#BDBDBD</color>
<color name="grey_500">#9E9E9E</color>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment