mirror of
				https://github.com/pierre42100/ComunicAndroid
				synced 2025-11-04 11:34:06 +00:00 
			
		
		
		
	Generate conversations displayed name
This commit is contained in:
		@@ -101,7 +101,7 @@ public class GetUsersHelper {
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //If we got there, an error occured
 | 
			
		||||
        //If we got there, an error occurred
 | 
			
		||||
        Log.e(TAG, "Couldn't get information about a single user !");
 | 
			
		||||
        return null;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -52,7 +52,7 @@ public class ConversationsInfo {
 | 
			
		||||
     *
 | 
			
		||||
     * @param ID_owner The ID of the owner of the conversation
 | 
			
		||||
     */
 | 
			
		||||
    public void setID_owner(int ID_owner) {
 | 
			
		||||
    void setID_owner(int ID_owner) {
 | 
			
		||||
        this.ID_owner = ID_owner;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -70,7 +70,7 @@ public class ConversationsInfo {
 | 
			
		||||
     *
 | 
			
		||||
     * @param last_active The timestamp of the last activity of the conversation
 | 
			
		||||
     */
 | 
			
		||||
    public void setLast_active(int last_active) {
 | 
			
		||||
    void setLast_active(int last_active) {
 | 
			
		||||
        this.last_active = last_active;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -88,7 +88,7 @@ public class ConversationsInfo {
 | 
			
		||||
     *
 | 
			
		||||
     * @param name The name of the conversation
 | 
			
		||||
     */
 | 
			
		||||
    public void setName(@Nullable  String name) {
 | 
			
		||||
    public void setName(@Nullable String name) {
 | 
			
		||||
 | 
			
		||||
        //Check the validity of the name
 | 
			
		||||
        if(name == "false" || name == "null" || name == null)
 | 
			
		||||
@@ -112,7 +112,7 @@ public class ConversationsInfo {
 | 
			
		||||
     * @return True if the conversation has a name / false else
 | 
			
		||||
     */
 | 
			
		||||
    public boolean hasName(){
 | 
			
		||||
        return name == null;
 | 
			
		||||
        return name != null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -122,7 +122,7 @@ public class ConversationsInfo {
 | 
			
		||||
     *
 | 
			
		||||
     * @param following True if the user is following the conversation
 | 
			
		||||
     */
 | 
			
		||||
    public void setFollowing(boolean following) {
 | 
			
		||||
    void setFollowing(boolean following) {
 | 
			
		||||
        this.following = following;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -140,7 +140,7 @@ public class ConversationsInfo {
 | 
			
		||||
     *
 | 
			
		||||
     * @param saw_last_message True if the user has seen the last message of the conversation
 | 
			
		||||
     */
 | 
			
		||||
    public void setSaw_last_message(boolean saw_last_message) {
 | 
			
		||||
    void setSaw_last_message(boolean saw_last_message) {
 | 
			
		||||
        this.saw_last_message = saw_last_message;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -167,7 +167,7 @@ public class ConversationsInfo {
 | 
			
		||||
     *
 | 
			
		||||
     * @param id The ID of the member to add
 | 
			
		||||
     */
 | 
			
		||||
    public void addMember(Integer id){
 | 
			
		||||
    void addMember(Integer id){
 | 
			
		||||
        if(members == null)
 | 
			
		||||
            members = new ArrayList<>();
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -44,6 +44,7 @@ public class ConversationsListHelper {
 | 
			
		||||
     *
 | 
			
		||||
     * @return The list of conversations
 | 
			
		||||
     */
 | 
			
		||||
    @Nullable
 | 
			
		||||
    public ArrayList<ConversationsInfo> download(){
 | 
			
		||||
 | 
			
		||||
        ArrayList<ConversationsInfo> list = new ArrayList<>();
 | 
			
		||||
 
 | 
			
		||||
@@ -4,12 +4,17 @@ import android.app.Fragment;
 | 
			
		||||
import android.os.AsyncTask;
 | 
			
		||||
import android.os.Bundle;
 | 
			
		||||
import android.support.annotation.Nullable;
 | 
			
		||||
import android.util.ArrayMap;
 | 
			
		||||
import android.util.Log;
 | 
			
		||||
import android.view.LayoutInflater;
 | 
			
		||||
import android.view.View;
 | 
			
		||||
import android.view.ViewGroup;
 | 
			
		||||
import android.widget.Toast;
 | 
			
		||||
 | 
			
		||||
import org.communiquons.android.comunic.client.R;
 | 
			
		||||
import org.communiquons.android.comunic.client.data.DatabaseHelper;
 | 
			
		||||
import org.communiquons.android.comunic.client.data.UsersInfo.GetUsersHelper;
 | 
			
		||||
import org.communiquons.android.comunic.client.data.UsersInfo.UserInfo;
 | 
			
		||||
import org.communiquons.android.comunic.client.data.conversations.ConversationsInfo;
 | 
			
		||||
import org.communiquons.android.comunic.client.data.conversations.ConversationsListHelper;
 | 
			
		||||
 | 
			
		||||
@@ -36,6 +41,11 @@ public class ConversationsListFragment extends Fragment {
 | 
			
		||||
     */
 | 
			
		||||
    private ArrayList<ConversationsInfo> convList;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * User information helper
 | 
			
		||||
     */
 | 
			
		||||
    private GetUsersHelper userHelper;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The conversation list helper
 | 
			
		||||
     */
 | 
			
		||||
@@ -51,6 +61,12 @@ public class ConversationsListFragment extends Fragment {
 | 
			
		||||
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
 | 
			
		||||
        super.onViewCreated(view, savedInstanceState);
 | 
			
		||||
 | 
			
		||||
        //Database helper
 | 
			
		||||
        DatabaseHelper dbHelper = new DatabaseHelper(getActivity());
 | 
			
		||||
 | 
			
		||||
        //Instantiate the user informations helper
 | 
			
		||||
        userHelper = new GetUsersHelper(getActivity(), dbHelper);
 | 
			
		||||
 | 
			
		||||
        //Create the conversation list helper
 | 
			
		||||
        conversationsListHelper = new ConversationsListHelper(getActivity());
 | 
			
		||||
 | 
			
		||||
@@ -60,13 +76,15 @@ public class ConversationsListFragment extends Fragment {
 | 
			
		||||
            protected ArrayList<ConversationsInfo> doInBackground(Void... params) {
 | 
			
		||||
 | 
			
		||||
                //Get the list of conversations
 | 
			
		||||
                return conversationsListHelper.download();
 | 
			
		||||
                ArrayList<ConversationsInfo> list = conversationsListHelper.download();
 | 
			
		||||
                process_conversations_list(list);
 | 
			
		||||
                return list;
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            @Override
 | 
			
		||||
            protected void onPostExecute(ArrayList<ConversationsInfo> list) {
 | 
			
		||||
                process_conversations_list(list);
 | 
			
		||||
                display_conversations_list(list);
 | 
			
		||||
            }
 | 
			
		||||
        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
 | 
			
		||||
 | 
			
		||||
@@ -82,14 +100,12 @@ public class ConversationsListFragment extends Fragment {
 | 
			
		||||
 | 
			
		||||
        //Check if got the list
 | 
			
		||||
        if(list == null){
 | 
			
		||||
            Toast.makeText(getActivity(), R.string.fragment_conversationslist_err_get_list,
 | 
			
		||||
                    Toast.LENGTH_LONG).show();
 | 
			
		||||
            return;
 | 
			
		||||
            return; //Nothing to be done
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Process the list of conversation
 | 
			
		||||
        ArrayList<Integer> usersToGet = new ArrayList<>();
 | 
			
		||||
        ArrayList<ConversationsInfo> convToUpdate = new ArrayList<>();
 | 
			
		||||
        ArrayList<ConversationsInfo> convToUpdateName = new ArrayList<>();
 | 
			
		||||
        for(ConversationsInfo conv : list){
 | 
			
		||||
 | 
			
		||||
            //Set the displayed names of the conversation
 | 
			
		||||
@@ -109,12 +125,71 @@ public class ConversationsListFragment extends Fragment {
 | 
			
		||||
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                convToUpdate.add(conv);
 | 
			
		||||
                convToUpdateName.add(conv);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Check if we have user to get information about
 | 
			
		||||
        if(usersToGet.size() > 0){
 | 
			
		||||
 | 
			
		||||
            //Get information about the users
 | 
			
		||||
            ArrayMap<Integer, UserInfo> usersInfo = userHelper.getMultiple(usersToGet);
 | 
			
		||||
 | 
			
		||||
            //Check for errors
 | 
			
		||||
            if(usersInfo == null){
 | 
			
		||||
                Log.e(TAG, "Couldn't get informations about some users !");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            //Process the conversation that have to be processed
 | 
			
		||||
            for(ConversationsInfo conv : convToUpdateName){
 | 
			
		||||
 | 
			
		||||
                //Get the name of the first members
 | 
			
		||||
                String conversationName = "";
 | 
			
		||||
                int count = 0;
 | 
			
		||||
                for(int userID : conv.getMembers()){
 | 
			
		||||
 | 
			
		||||
                    if(usersInfo.containsKey(userID)){
 | 
			
		||||
 | 
			
		||||
                        UserInfo userInfo = usersInfo.get(userID);
 | 
			
		||||
 | 
			
		||||
                        if(userInfo != null){
 | 
			
		||||
                            conversationName += userInfo.getFullName() + ", ";
 | 
			
		||||
                            count++;
 | 
			
		||||
                        }
 | 
			
		||||
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    if(count == 2)
 | 
			
		||||
                        break;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if(conv.getMembers().size() > 3)
 | 
			
		||||
                    conversationName += "...";
 | 
			
		||||
 | 
			
		||||
                //Update the displayed name of the conversation
 | 
			
		||||
                conv.setDisplayName(conversationName);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Display the conversation list
 | 
			
		||||
     *
 | 
			
		||||
     * @param list The list to display
 | 
			
		||||
     */
 | 
			
		||||
    public void display_conversations_list(ArrayList<ConversationsInfo> list){
 | 
			
		||||
 | 
			
		||||
        //Check if we got a list
 | 
			
		||||
        if(list == null) {
 | 
			
		||||
            Toast.makeText(getActivity(), R.string.fragment_conversationslist_err_get_list,
 | 
			
		||||
                    Toast.LENGTH_LONG).show();
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        for(ConversationsInfo info : list){
 | 
			
		||||
            Log.v(TAG, "Conversation " + info.getID() + " : " + info.getDisplayName());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user