Conversations can be deleted

This commit is contained in:
Pierre 2017-12-31 14:10:36 +01:00
parent eee570993a
commit 2c29b49c24
3 changed files with 68 additions and 20 deletions

View File

@ -155,6 +155,28 @@ public class ConversationsListHelper {
return name; return name;
} }
/**
* Delete a conversation specified by its ID
*
* @param convID The ID of the conversation to delete
* @return True in case of success / false else
*/
public boolean delete(int convID){
//Delete the conversation on the API
APIRequestParameters params = new APIRequestParameters(mContext, "conversations/delete");
params.addParameter("conversationID", ""+convID);
try {
new APIRequest().exec(params);
} catch (Exception e){
return false;
}
//Success
return true;
}
/** /**
* Get online (download) the list of all the conversations * Get online (download) the list of all the conversations
* *

View File

@ -111,23 +111,8 @@ public class ConversationsListFragment extends Fragment implements AdapterView.O
//Get progress bar wheel //Get progress bar wheel
progressBar = view.findViewById(R.id.fragment_conversationslist_progressbar); progressBar = view.findViewById(R.id.fragment_conversationslist_progressbar);
//Get the list of conversations //Refresh conversations list
new AsyncTask<Void, Void, ArrayList<ConversationsInfo>>(){ refresh_conversations_list();
@Override
protected ArrayList<ConversationsInfo> doInBackground(Void... params) {
//Get the list of conversations
ArrayList<ConversationsInfo> list = conversationsListHelper.get();
process_conversations_list(list);
return list;
}
@Override
protected void onPostExecute(ArrayList<ConversationsInfo> list) {
display_conversations_list(list);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
//Set the open conversation listener //Set the open conversation listener
try { try {
@ -150,6 +135,34 @@ public class ConversationsListFragment extends Fragment implements AdapterView.O
.setSelectedNavigationItem(R.id.main_bottom_navigation_conversations); .setSelectedNavigationItem(R.id.main_bottom_navigation_conversations);
} }
/**
* Refresh the list of conversations
*/
private void refresh_conversations_list(){
//Display loading wheel
progressBar.setVisibility(View.VISIBLE);
//Get the list of conversations
new AsyncTask<Void, Void, ArrayList<ConversationsInfo>>(){
@Override
protected ArrayList<ConversationsInfo> doInBackground(Void... params) {
//Get the list of conversations
ArrayList<ConversationsInfo> list = conversationsListHelper.get();
process_conversations_list(list);
return list;
}
@Override
protected void onPostExecute(ArrayList<ConversationsInfo> list) {
display_conversations_list(list);
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
/** /**
* Process the conversation list * Process the conversation list
* *
@ -157,7 +170,7 @@ public class ConversationsListFragment extends Fragment implements AdapterView.O
* *
* @param list The list of conversations * @param list The list of conversations
*/ */
public void process_conversations_list(ArrayList<ConversationsInfo> list){ private void process_conversations_list(ArrayList<ConversationsInfo> list){
//Check if got the list //Check if got the list
if(list == null){ if(list == null){
@ -361,7 +374,19 @@ public class ConversationsListFragment extends Fragment implements AdapterView.O
* *
* @param convID The ID of the conversation to delete * @param convID The ID of the conversation to delete
*/ */
private void delete_conversation(int convID){ private void delete_conversation(final int convID){
Toast.makeText(getActivity(), "Delete conversation: " + convID, Toast.LENGTH_SHORT).show(); new AsyncTask<Void, Void, Void>(){
@Override
protected Void doInBackground(Void... params) {
conversationsListHelper.delete(convID);
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
refresh_conversations_list();
}
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} }
} }

View File

@ -72,4 +72,5 @@
<string name="popup_deleteconversation_messsage">Are you sure do you want to remove this conversation ? All the messages you posted will be deleted. If you are the owner of the conversation, all the messages will be removed.</string> <string name="popup_deleteconversation_messsage">Are you sure do you want to remove this conversation ? All the messages you posted will be deleted. If you are the owner of the conversation, all the messages will be removed.</string>
<string name="popup_deleteconversation_confirm">Delete</string> <string name="popup_deleteconversation_confirm">Delete</string>
<string name="popup_deleteconversation_cancel">Cancel</string> <string name="popup_deleteconversation_cancel">Cancel</string>
<string name="fragment_conversationslist_err_del_conversation">Could not delete conversation !</string>
</resources> </resources>