Commit aab530bf authored by Grigory Fedorov's avatar Grigory Fedorov

Chat: ListView replaced by RecyclerView. Clicks do not work so far.

parent 4224e9a5
...@@ -8,6 +8,8 @@ import android.content.Context; ...@@ -8,6 +8,8 @@ import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.NavUtils; import android.support.v4.app.NavUtils;
import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
...@@ -24,7 +26,6 @@ import android.view.animation.AnimationUtils; ...@@ -24,7 +26,6 @@ import android.view.animation.AnimationUtils;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.PopupMenu; import android.widget.PopupMenu;
import com.xabber.android.data.Application; import com.xabber.android.data.Application;
...@@ -63,7 +64,8 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl ...@@ -63,7 +64,8 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl
private static final int MINIMUM_MESSAGES_TO_LOAD = 10; private static final int MINIMUM_MESSAGES_TO_LOAD = 10;
private EditText inputView; private EditText inputView;
private ListView listView;
private RecyclerView recyclerView;
private ChatMessageAdapter chatMessageAdapter; private ChatMessageAdapter chatMessageAdapter;
private boolean skipOnTextChanges; private boolean skipOnTextChanges;
...@@ -156,10 +158,12 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl ...@@ -156,10 +158,12 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl
chatMessageAdapter = new ChatMessageAdapter(getActivity(), account, user); chatMessageAdapter = new ChatMessageAdapter(getActivity(), account, user);
listView = (ListView) view.findViewById(android.R.id.list); recyclerView = (RecyclerView) view.findViewById(R.id.chat_messages_recycler_view);
listView.setAdapter(chatMessageAdapter); recyclerView.setAdapter(chatMessageAdapter);
listView.setOnItemClickListener(this);
LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
layoutManager.setStackFromEnd(true);
recyclerView.setLayoutManager(layoutManager);
inputView = (EditText) view.findViewById(R.id.chat_input); inputView = (EditText) view.findViewById(R.id.chat_input);
...@@ -369,7 +373,7 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl ...@@ -369,7 +373,7 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl
super.onCreateContextMenu(menu, view, menuInfo); super.onCreateContextMenu(menu, view, menuInfo);
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
ChatMessageAdapter chatMessageAdapter = (ChatMessageAdapter) listView.getAdapter(); ChatMessageAdapter chatMessageAdapter = (ChatMessageAdapter) recyclerView.getAdapter();
int itemViewType = chatMessageAdapter.getItemViewType(info.position); int itemViewType = chatMessageAdapter.getItemViewType(info.position);
...@@ -388,7 +392,7 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl ...@@ -388,7 +392,7 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl
@Override @Override
public boolean onContextItemSelected(MenuItem item) { public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo(); AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
final MessageItem message = (MessageItem) listView.getAdapter().getItem(info.position); final MessageItem message = (MessageItem) chatMessageAdapter.getItem(info.position);
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.action_message_repeat: case R.id.action_message_repeat:
...@@ -453,9 +457,9 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl ...@@ -453,9 +457,9 @@ public class ChatViewerFragment extends Fragment implements AdapterView.OnItemCl
@Override @Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
registerForContextMenu(listView); registerForContextMenu(recyclerView);
listView.showContextMenuForChild(view); recyclerView.showContextMenuForChild(view);
unregisterForContextMenu(listView); unregisterForContextMenu(recyclerView);
} }
@Override @Override
......
...@@ -38,12 +38,12 @@ ...@@ -38,12 +38,12 @@
</android.support.v7.widget.Toolbar> </android.support.v7.widget.Toolbar>
<ListView <android.support.v7.widget.RecyclerView
android:id="@android:id/list" android:id="@+id/chat_messages_recycler_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:scrollbars="vertical"
android:stackFromBottom="true"
android:transcriptMode="normal" android:transcriptMode="normal"
android:smoothScrollbar="false" android:smoothScrollbar="false"
android:divider="@null" android:divider="@null"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment