diff --git a/res/menu/edit_list_menu.xml b/res/menu/edit_list_menu.xml
index 08925286a..1af3d9800 100644
--- a/res/menu/edit_list_menu.xml
+++ b/res/menu/edit_list_menu.xml
@@ -5,9 +5,9 @@
android:id="@+id/edit_list_menu"
android:orientation="horizontal"
android:background="@color/colorA"
- android:height="100dp"
+ android:height="1dp"
android:layout_width="0dp"
- android:layout_height="100dp"
+ android:layout_height="1dp"
android:visibility="gone"
>
@@ -27,7 +27,7 @@
android:id="@+id/deselect_all"
android:icon="@drawable/deselect_all"
app:showAsAction="ifRoom"
- android:orderInCategory="200"
+ android:orderInCategory="100"
android:visible="false"
android:title=""/>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index f934a3777..722162e74 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -10,14 +10,14 @@
diff --git a/src/android/org/linphone/chat/ChatListFragment.java b/src/android/org/linphone/chat/ChatListFragment.java
index e7deec40d..0c7f9463c 100644
--- a/src/android/org/linphone/chat/ChatListFragment.java
+++ b/src/android/org/linphone/chat/ChatListFragment.java
@@ -25,22 +25,18 @@ import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.widget.DrawerLayout;
-import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
-import android.text.Layout;
+import android.support.v7.widget.Toolbar;
import android.view.ActionMode;
-import android.support.v7.app.ActionBar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
-//import android.widget.Toolbar;
-import android.support.v7.widget.Toolbar;
+
import org.linphone.LinphoneManager;
import org.linphone.R;
import org.linphone.activities.LinphoneActivity;
@@ -52,7 +48,6 @@ import org.linphone.core.ChatRoomListenerStub;
import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub;
import org.linphone.fragments.FragmentsAvailable;
-import org.linphone.mediastream.Log;
import java.util.ArrayList;
import java.util.Arrays;
@@ -60,15 +55,18 @@ import java.util.List;
import static org.linphone.fragments.FragmentsAvailable.CHAT_LIST;
-public class ChatListFragment extends Fragment implements ContactsUpdatedListener, ListSelectionHelper.DeleteListener {
+//import android.widget.Toolbar;
+
+//public class ChatListFragment extends Fragment implements ContactsUpdatedListener, ListSelectionHelper.DeleteListener {
+public class ChatListFragment extends Fragment implements ContactsUpdatedListener, /**ListSelectionHelper.DeleteListener,*/ ChatRoomsAdapter.ChatRoomViewHolder.ClickListener {
+
//public class ChatListFragment extends Fragment {
private ActionModeCallback actionModeCallback = new ActionModeCallback();
private ActionMode actionMode;
- private LinearLayout mTabBar;
+ private LinearLayout mTabBar, mEditTopBar, mTopBar;
private DrawerLayout mSideMenu;
- private ImageView mEditButton;
- private MenuItem mSelectAllButton, mDeselectAllButton, mDeleteButton;
+ private ImageView mEditButton, mSelectAllButton, mDeselectAllButton,mDeleteButton, mCancelButton;
private RecyclerView mChatRoomsList;
private TextView mNoChatHistory;
private ImageView mNewDiscussionButton, mBackToCallButton;
@@ -121,18 +119,11 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
// mNoChatHistory = view.findViewById(R.id.noChatHistory);
// mNoChatHistory.setVisibility(View.GONE);
- //mEditTopBar = view.findViewById(R.id.edit_list_menu);
-
-
-
-// mTopBar = view.findViewById(R.id.top_bar);
-// Toolbar toolbar = this.getActivity().findViewById(R.id.context_bar);
-
-
-
-
-// mStatusBar = view.findViewById(R.id.status);
-
+ mEditTopBar = view.findViewById(R.id.edit_list);
+ mTopBar = view.findViewById(R.id.top_bar);
+ mSelectAllButton = view.findViewById(R.id.select_all);
+ mDeselectAllButton = view.findViewById(R.id.deselect_all);
+ mDeleteButton= view.findViewById(R.id.delete);
mEditButton = view.findViewById(R.id.edit);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
@@ -140,22 +131,18 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
actionMode = getActivity().startActionMode(actionModeCallback);
-
// getActivity().setActionBar();
- // mChatRoomsAdapter.setEditionMode(actionMode);
-// mTopBar.setVisibility(View.GONE);
-// mEditTopBar.setVisibility(View.VISIBLE);
+
}
});
-// mCancelButton = view.findViewById(R.id.cancel);
+ mCancelButton = view.findViewById(R.id.cancel);
// mCancelButton.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// actionMode.invalidate();
// }
// });
-// mDeselectAllButton = view.findViewById(R.id.deselect_all);
// mSelectAllButton = view.findViewById(R.id.select_all);
@@ -240,19 +227,21 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
//
int count = mChatRoomsAdapter.getSelectedItemCount();
- if (count < mChatRoomsAdapter.getItemCount()) {
+ if (count < mChatRoomsAdapter.getItemCount()/* || (mChatRoomsAdapter.getItemCount()==1 && count == 1)*/) {
// actionMode.finish();
- mDeselectAllButton.setVisible(false);
- mSelectAllButton.setVisible(true);
+ mDeselectAllButton.setVisibility(View.GONE);
+ mSelectAllButton.setVisibility(View.VISIBLE);
- } else {
+ } /*else if (mChatRoomsAdapter.getItemCount()==1 && count == 1){
// actionMode.setTitle(String.valueOf(count));
- mDeselectAllButton.setVisible(true);
- mSelectAllButton.setVisible(false);
-
+ mSelectAllButton.setVisibility(View.VISIBLE);
+ mDeselectAllButton.setVisibility(View.GONE);
+ } */else{
+ mSelectAllButton.setVisibility(View.GONE);
+ mDeselectAllButton.setVisibility(View.VISIBLE);
}
- getActivity().invalidateOptionsMenu();
+ mChatRoomsAdapter.notifyItemChanged(position);
actionMode.invalidate();
}
@@ -263,39 +252,62 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
- //mTopBar.setVisibility(View.GONE);
-// Toolbar contextBar =
-// (RelativeLayout) view.findViewById(R.id.status);
-// getActivity().getContext();
-// View v = View.inflate(R.layout.status, null);
-// View view = (RelativeLayout)inflater.inflate(R.layout.chatlist, container, false);
-// mStatusBar.setVisibility(View.VISIBLE);
- mode.getMenuInflater().inflate (R.menu.edit_list_menu, menu);
-// Menu contextBar = menu;
- mDeselectAllButton = menu.findItem(R.id.deselect_all);
- mSelectAllButton = menu.findItem(R.id.select_all);
- mDeleteButton = menu.findItem(R.id.select_all);
- mTabBar = (LinearLayout) getActivity().findViewById(R.id.footer);
- mTabBar.setVisibility(View.INVISIBLE);
- mSideMenu=(DrawerLayout) getActivity().findViewById(R.id.side_menu);
-
- mSideMenu.setDrawerLockMode(1);
-// SlidingDrawer simpleSlidingDrawer = (SlidingDrawer) getActivity().findViewById(R.id.side_menu); // initiate the SlidingDrawer
-// simpleSlidingDrawer.lock(); // lock the sliderDrawer so that touch event are disabled
-
-// menu.findItem(R.id.menu_search).getActionView();
-// LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-// View tv= inflater.inflate(R.layout.context_bar, null);
-// mode.setCustomView(tv);
-
-// (Toolbar) findViewById(R.id.status);
-
-
- //mEditTopBar.setVisibility(View.VISIBLE);
-
+ actionMode=mode;
for (Integer i = 0; i <= mChatRoomsAdapter.getItemCount(); i++) {
mChatRoomsAdapter.setEditionMode(mode);
}
+ mTopBar.setVisibility(View.GONE);
+ mEditTopBar.setVisibility(View.VISIBLE);
+
+// mode.getMenuInflater().inflate (R.menu.edit_list_menu, menu);
+ mCancelButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ actionMode.finish();
+ }
+ });
+ mTabBar = (LinearLayout) getActivity().findViewById(R.id.footer);
+// mTabBar.setVisibility(View.GONE);
+ mSideMenu=(DrawerLayout) getActivity().findViewById(R.id.side_menu);
+
+ mSideMenu.setDrawerLockMode(1);
+
+ //Add all non-selected items to the selection
+ mSelectAllButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ for (Integer i = 0; i < mChatRoomsAdapter.getItemCount(); i++) {
+ if (!mChatRoomsAdapter.isSelected(i)) {
+ toggleSelection(i);
+ }
+ }
+ }
+ });
+
+ //Remove all selected items from the selection
+ mDeselectAllButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ for (Integer i = 0; i < mChatRoomsAdapter.getItemCount(); i++) {
+ if (mChatRoomsAdapter.isSelected(i)) {
+ toggleSelection(i);
+ }
+ }
+ }
+ });
+
+ mDeleteButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ mChatRoomsAdapter.removeItems(mChatRoomsAdapter.getSelectedItems());
+ actionMode.finish();
+ }
+ });
+
+
+
+
+
return true;
}
@@ -315,30 +327,30 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
- case R.id.delete:
- // TODO: actually remove items
-// Log.d(TAG, "menu_remove");
- mChatRoomsAdapter.removeItems(mChatRoomsAdapter.getSelectedItems());
- mode.finish();
- return true;
+// case R.id.delete:
+// // TODO: actually remove items
+//// Log.d(TAG, "menu_remove");
+// mChatRoomsAdapter.removeItems(mChatRoomsAdapter.getSelectedItems());
+// mode.finish();
+// return true;
+//
+// case R.id.select_all:
+// //Add all non-selected items to the selection
+// for (Integer i = 0; i < mChatRoomsAdapter.getItemCount(); i++) {
+// if (!mChatRoomsAdapter.isSelected(i)) {
+// toggleSelection(i);
+// }
+// }
+//
+// return true;
- case R.id.select_all:
- //Add all non-selected items to the selection
- for (Integer i = 0; i < mChatRoomsAdapter.getItemCount(); i++) {
- if (!mChatRoomsAdapter.isSelected(i)) {
- toggleSelection(i);
- }
- }
-
- return true;
-
- case R.id.deselect_all:
- for (Integer i = 0; i < mChatRoomsAdapter.getItemCount(); i++) {
- if (mChatRoomsAdapter.isSelected(i)) {
- toggleSelection(i);
- }
- }
- return true;
+// case R.id.deselect_all:
+// for (Integer i = 0; i < mChatRoomsAdapter.getItemCount(); i++) {
+// if (mChatRoomsAdapter.isSelected(i)) {
+// toggleSelection(i);
+// }
+// }
+// return true;
// case R.id.cancel:
// mode.finish();
default:
@@ -351,9 +363,12 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
public void onDestroyActionMode(ActionMode mode) {
mChatRoomsAdapter.clearSelection();
- mTabBar.setVisibility(View.VISIBLE);
+// mTabBar.setVisibility(View.VISIBLE);
+ mTopBar.setVisibility(View.VISIBLE);
+ mEditTopBar.setVisibility(View.GONE);
mSideMenu.setDrawerLockMode(0);
+ mChatRoomsAdapter.clearSelection();
actionMode = null;
mChatRoomsAdapter.setEditionMode(actionMode);
@@ -392,7 +407,7 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
if (LinphoneManager.getLc().getCallsNb() > 0) {
mBackToCallButton.setVisibility(View.VISIBLE);
} else {
- mBackToCallButton.setVisibility(View.INVISIBLE);
+ mBackToCallButton.setVisibility(View.GONE);
}
if (LinphoneActivity.isInstanciated()) {
@@ -417,13 +432,8 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
ContactsManager.removeContactsListener(this);
- mChatRoomsAdapter.clearSelection();
-// mTabBar.setVisibility(View.VISIBLE);
- actionMode = null;
- mChatRoomsAdapter.setEditionMode(actionMode);
-
- mChatRoomsAdapter.clear();
+// mChatRoomsAdapter.clear();
super.onPause();
}
diff --git a/src/android/org/linphone/chat/ChatRoomsAdapter.java b/src/android/org/linphone/chat/ChatRoomsAdapter.java
index 2e052f00d..de5b7462e 100644
--- a/src/android/org/linphone/chat/ChatRoomsAdapter.java
+++ b/src/android/org/linphone/chat/ChatRoomsAdapter.java
@@ -302,6 +302,7 @@ public class ChatRoomsAdapter extends RecyclerView.Adapter count && positions.get(count).equals(positions.get(count - 1) - 1)) {