mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-23 13:59:29 +00:00
Added delete conversation confirmation popup
This commit is contained in:
parent
7315ebbced
commit
95844e8ba2
@ -257,7 +257,7 @@ public class ConversationFragment extends Fragment
|
||||
new Thread(refreshRunnable).start();
|
||||
|
||||
//Update conversation title
|
||||
getActivity().setTitle(R.string.fragement_conversation_title);
|
||||
getActivity().setTitle(R.string.fragment_conversation_title);
|
||||
|
||||
//Update the bottom navigation menu
|
||||
((MainActivity) getActivity())
|
||||
@ -369,6 +369,14 @@ public class ConversationFragment extends Fragment
|
||||
*/
|
||||
private void onGotConversationInfos(ConversationsInfo infos){
|
||||
|
||||
//Check for errors
|
||||
if(infos == null){
|
||||
Toast.makeText(getActivity(), R.string.fragment_conversation_err_getconvinfos,
|
||||
Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//Save conversation informations
|
||||
conversationInfo = infos;
|
||||
|
||||
|
@ -1,14 +1,19 @@
|
||||
package org.communiquons.android.comunic.client.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.ArrayMap;
|
||||
import android.util.Log;
|
||||
import android.view.ContextMenu;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.AdapterView;
|
||||
@ -265,10 +270,44 @@ public class ConversationsListFragment extends Fragment implements AdapterView.O
|
||||
//Add click listener
|
||||
conversationsListView.setOnItemClickListener(this);
|
||||
|
||||
conversationsListView.setOnCreateContextMenuListener(new View.OnCreateContextMenuListener() {
|
||||
@Override
|
||||
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
|
||||
MenuInflater inflater = getActivity().getMenuInflater();
|
||||
inflater.inflate(R.menu.menu_fragment_conserationslist_item, menu);
|
||||
}
|
||||
});
|
||||
|
||||
//Remove progress bar
|
||||
display_progress_bar(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onContextItemSelected(MenuItem item) {
|
||||
|
||||
//Fetch source item
|
||||
AdapterView.AdapterContextMenuInfo src
|
||||
= (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
|
||||
|
||||
//Get conversation ID
|
||||
int convID = convList.size() > src.position ? convList.get(src.position).getID() : -1;
|
||||
|
||||
if(convID != -1) {
|
||||
|
||||
//Check which action was chosen
|
||||
switch (item.getItemId()) {
|
||||
|
||||
case R.id.menu_fragment_conversationslist_item_delete:
|
||||
confirmDeleteConversation(convID);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return super.onContextItemSelected(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the click on a conversation to open it
|
||||
*
|
||||
@ -293,4 +332,36 @@ public class ConversationsListFragment extends Fragment implements AdapterView.O
|
||||
private void display_progress_bar(boolean show){
|
||||
progressBar.setVisibility(show ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a popup window to ask user to confirm the deletion of a conversation
|
||||
*
|
||||
* @param convID The ID of the conversation to delete
|
||||
*/
|
||||
private void confirmDeleteConversation(final int convID){
|
||||
|
||||
new AlertDialog.Builder(getActivity())
|
||||
.setTitle(R.string.popup_deleteconversation_title)
|
||||
.setMessage(R.string.popup_deleteconversation_messsage)
|
||||
.setNegativeButton(R.string.popup_deleteconversation_cancel, null)
|
||||
|
||||
.setPositiveButton(R.string.popup_deleteconversation_confirm, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
delete_conversation(convID);
|
||||
}
|
||||
})
|
||||
|
||||
.show();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a conversation
|
||||
*
|
||||
* @param convID The ID of the conversation to delete
|
||||
*/
|
||||
private void delete_conversation(int convID){
|
||||
Toast.makeText(getActivity(), "Delete conversation: " + convID, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_fragment_conversationslist_item_delete"
|
||||
android:title="@string/action_conversation_delete" />
|
||||
</menu>
|
@ -65,5 +65,11 @@
|
||||
<string name="fragment_friendslist_title">Friends</string>
|
||||
<string name="fragment_conversationslist_title">Conversations</string>
|
||||
<string name="fragment_userinfos_title">About me</string>
|
||||
<string name="fragement_conversation_title">Title</string>
|
||||
<string name="fragment_conversation_title">Title</string>
|
||||
<string name="fragment_conversation_err_getconvinfos">Could not get information about the conversation !</string>
|
||||
<string name="action_conversation_delete">Delete</string>
|
||||
<string name="popup_deleteconversation_title">Remove conversation</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_cancel">Cancel</string>
|
||||
</resources>
|
||||
|
Loading…
Reference in New Issue
Block a user