mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-27 07:49:28 +00:00
Created FriendsList object
This commit is contained in:
parent
28e54a271b
commit
383f299455
@ -0,0 +1,46 @@
|
||||
package org.communiquons.android.comunic.client.data.arrays;
|
||||
|
||||
import android.util.ArrayMap;
|
||||
|
||||
import org.communiquons.android.comunic.client.data.models.Friend;
|
||||
import org.communiquons.android.comunic.client.data.models.UserInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Friends list
|
||||
*
|
||||
* @author Pierre HUBERT
|
||||
*/
|
||||
public class FriendsList extends ArrayList<Friend> {
|
||||
|
||||
/**
|
||||
* Get the IDs of all the friends of this list
|
||||
*
|
||||
* @return The list of the id of the friend
|
||||
*/
|
||||
public ArrayList<Integer> getFriendsIDs(){
|
||||
|
||||
ArrayList<Integer> IDs = new ArrayList<>();
|
||||
|
||||
for(Friend friend : this)
|
||||
IDs.add(friend.getId());
|
||||
|
||||
return IDs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge a user information list with a friend list
|
||||
*
|
||||
* @param usersInfo Information about the friends
|
||||
*/
|
||||
public void mergeFriendsListWithUserInfo(ArrayMap<Integer, UserInfo> usersInfo){
|
||||
|
||||
//Process the list
|
||||
for(Friend friend : this){
|
||||
friend.setUserInfo(usersInfo.get(friend.getId()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -7,6 +7,7 @@ import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import org.communiquons.android.comunic.client.data.DatabaseContract.FriendsListSchema;
|
||||
import org.communiquons.android.comunic.client.data.arrays.FriendsList;
|
||||
import org.communiquons.android.comunic.client.data.models.Friend;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -52,7 +53,7 @@ public class FriendsListDbHelper {
|
||||
* @return The list of friends of the user or null in case of failure
|
||||
*/
|
||||
@Nullable
|
||||
ArrayList<Friend> get_list(){
|
||||
FriendsList get_list(){
|
||||
|
||||
//Get read access to the database
|
||||
SQLiteDatabase db = dbHelper.getReadableDatabase();
|
||||
@ -68,7 +69,7 @@ public class FriendsListDbHelper {
|
||||
if(c == null)
|
||||
return null; //An error occurred
|
||||
|
||||
ArrayList<Friend> friendsList = new ArrayList<>();
|
||||
FriendsList friendsList = new FriendsList();
|
||||
|
||||
//Process the list of responses
|
||||
c.moveToFirst();
|
||||
@ -166,7 +167,7 @@ public class FriendsListDbHelper {
|
||||
*
|
||||
* @return The number of affected rows
|
||||
*/
|
||||
public int remove_all(){
|
||||
int remove_all(){
|
||||
|
||||
//Get writable database access
|
||||
SQLiteDatabase db = dbHelper.getWritableDatabase();
|
||||
@ -176,12 +177,7 @@ public class FriendsListDbHelper {
|
||||
String whereClause = FriendsListSchema._ID + " > 0";
|
||||
String[] whereArgs = new String[0];
|
||||
|
||||
int result = db.delete(table_name, whereClause, whereArgs);
|
||||
|
||||
//Close the database
|
||||
//db.close();
|
||||
|
||||
return result;
|
||||
return db.delete(table_name, whereClause, whereArgs);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -5,6 +5,7 @@ import android.content.Intent;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
|
||||
import org.communiquons.android.comunic.client.data.arrays.FriendsList;
|
||||
import org.communiquons.android.comunic.client.data.models.APIRequest;
|
||||
import org.communiquons.android.comunic.client.data.models.APIResponse;
|
||||
import org.communiquons.android.comunic.client.data.models.Friend;
|
||||
@ -62,18 +63,14 @@ public class FriendsListHelper {
|
||||
*
|
||||
* @return The list of friends
|
||||
*/
|
||||
public ArrayList<Friend> get() {
|
||||
public FriendsList get() {
|
||||
|
||||
//Acquire friends list lock
|
||||
FriendsListHelper.ListAccessLock.lock();
|
||||
|
||||
//Fetch the list
|
||||
ArrayList<Friend> list;
|
||||
try {
|
||||
list = mDbHelper.get_list();
|
||||
} finally {
|
||||
FriendsListHelper.ListAccessLock.unlock();
|
||||
}
|
||||
FriendsList list = mDbHelper.get_list();
|
||||
FriendsListHelper.ListAccessLock.unlock();
|
||||
|
||||
return list;
|
||||
}
|
||||
|
@ -1,49 +0,0 @@
|
||||
package org.communiquons.android.comunic.client.data.utils;
|
||||
|
||||
import android.util.ArrayMap;
|
||||
|
||||
import org.communiquons.android.comunic.client.data.models.Friend;
|
||||
import org.communiquons.android.comunic.client.data.models.UserInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Friends utilities
|
||||
*
|
||||
* @author Pierre Hubert
|
||||
* Created by pierre on 11/15/17.
|
||||
*/
|
||||
|
||||
public class FriendsUtils {
|
||||
|
||||
/**
|
||||
* Given a friend list, it will return the IDs of the friends
|
||||
*
|
||||
* @param friendsList the friends list to process
|
||||
* @return The list of the id of the friend
|
||||
*/
|
||||
public static ArrayList<Integer> getFriendsIDs(ArrayList<Friend> friendsList){
|
||||
ArrayList<Integer> IDs = new ArrayList<>();
|
||||
|
||||
for(Friend friend : friendsList)
|
||||
IDs.add(friend.getId());
|
||||
|
||||
return IDs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Merge a user information list with a friend list
|
||||
*
|
||||
* @param friendsList The list of friend of the user
|
||||
* @param userInfo Information about the friends
|
||||
*/
|
||||
public static void MergeFriendsListWithUserInfo(ArrayList<Friend> friendsList,
|
||||
ArrayMap<Integer, UserInfo> userInfo){
|
||||
|
||||
//Process the list
|
||||
for(Friend friend : friendsList){
|
||||
friend.setUserInfo(userInfo.get(friend.getId()));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -13,14 +13,13 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.communiquons.android.comunic.client.R;
|
||||
import org.communiquons.android.comunic.client.data.arrays.FriendsList;
|
||||
import org.communiquons.android.comunic.client.data.models.Friend;
|
||||
import org.communiquons.android.comunic.client.data.models.UserInfo;
|
||||
import org.communiquons.android.comunic.client.ui.listeners.OnFriendListActionListener;
|
||||
import org.communiquons.android.comunic.client.ui.utils.UiUtils;
|
||||
import org.communiquons.android.comunic.client.ui.views.WebUserAccountImage;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Adapter that render the list of friend on the friends list fragment
|
||||
*
|
||||
@ -39,7 +38,7 @@ public class FriendsAdapter extends BaseRecyclerViewAdapter {
|
||||
/**
|
||||
* The list of friends, with their information
|
||||
*/
|
||||
private ArrayList<Friend> mList;
|
||||
private FriendsList mList;
|
||||
|
||||
/**
|
||||
* Actions listener
|
||||
@ -53,7 +52,7 @@ public class FriendsAdapter extends BaseRecyclerViewAdapter {
|
||||
* @param friendsList The list of friends to display (with user information)
|
||||
* @param listener Actions on friends listener
|
||||
*/
|
||||
public FriendsAdapter(Context context, ArrayList<Friend> friendsList,
|
||||
public FriendsAdapter(Context context, FriendsList friendsList,
|
||||
OnFriendListActionListener listener){
|
||||
super(context);
|
||||
|
||||
|
@ -20,12 +20,12 @@ import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import org.communiquons.android.comunic.client.R;
|
||||
import org.communiquons.android.comunic.client.data.arrays.FriendsList;
|
||||
import org.communiquons.android.comunic.client.data.helpers.DatabaseHelper;
|
||||
import org.communiquons.android.comunic.client.data.helpers.FriendsListHelper;
|
||||
import org.communiquons.android.comunic.client.data.helpers.GetUsersHelper;
|
||||
import org.communiquons.android.comunic.client.data.models.Friend;
|
||||
import org.communiquons.android.comunic.client.data.models.UserInfo;
|
||||
import org.communiquons.android.comunic.client.data.utils.FriendsUtils;
|
||||
import org.communiquons.android.comunic.client.ui.activities.MainActivity;
|
||||
import org.communiquons.android.comunic.client.ui.adapters.FriendsAdapter;
|
||||
import org.communiquons.android.comunic.client.ui.asynctasks.SafeAsyncTask;
|
||||
@ -34,11 +34,8 @@ import org.communiquons.android.comunic.client.ui.listeners.onOpenUsersPageListe
|
||||
import org.communiquons.android.comunic.client.ui.listeners.openConversationListener;
|
||||
import org.communiquons.android.comunic.client.ui.views.ScrollRecyclerView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.communiquons.android.comunic.client.data.utils.FriendsUtils.MergeFriendsListWithUserInfo;
|
||||
|
||||
/**
|
||||
* Friends list fragment
|
||||
*
|
||||
@ -67,7 +64,7 @@ public class FriendsListFragment extends Fragment implements OnFriendListActionL
|
||||
/**
|
||||
* The current list of friends
|
||||
*/
|
||||
private ArrayList<Friend> mList;
|
||||
private FriendsList mList;
|
||||
|
||||
/**
|
||||
* Friend list operations object
|
||||
@ -181,13 +178,13 @@ public class FriendsListFragment extends Fragment implements OnFriendListActionL
|
||||
//Display loading bar
|
||||
display_progress_bar(true);
|
||||
|
||||
new AsyncTask<Void, Void, ArrayList<Friend>>() {
|
||||
new AsyncTask<Void, Void, FriendsList>() {
|
||||
|
||||
@Override
|
||||
protected ArrayList<Friend> doInBackground(Void... params) {
|
||||
protected FriendsList doInBackground(Void... params) {
|
||||
|
||||
//Fetch the list of friends
|
||||
ArrayList<Friend> friendsList = mFriendsHelper.get();
|
||||
FriendsList friendsList = mFriendsHelper.get();
|
||||
|
||||
//Check for errors
|
||||
if (friendsList == null)
|
||||
@ -195,20 +192,20 @@ public class FriendsListFragment extends Fragment implements OnFriendListActionL
|
||||
|
||||
//Get user info
|
||||
ArrayMap<Integer, UserInfo> userInfo = mUsersHelper.getMultiple(
|
||||
FriendsUtils.getFriendsIDs(friendsList));
|
||||
friendsList.getFriendsIDs());
|
||||
|
||||
//Check for errors
|
||||
if (userInfo == null)
|
||||
return null;
|
||||
|
||||
//Merge friend and user and return result
|
||||
MergeFriendsListWithUserInfo(friendsList, userInfo);
|
||||
friendsList.mergeFriendsListWithUserInfo(userInfo);
|
||||
return friendsList;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(ArrayList<Friend> friendUsers) {
|
||||
protected void onPostExecute(FriendsList friendUsers) {
|
||||
|
||||
//Check the activity still exists
|
||||
if (getActivity() == null)
|
||||
@ -224,7 +221,7 @@ public class FriendsListFragment extends Fragment implements OnFriendListActionL
|
||||
*
|
||||
* @param friendsList The friends list to apply
|
||||
*/
|
||||
private void apply_friends_list(@Nullable ArrayList<Friend> friendsList) {
|
||||
private void apply_friends_list(@Nullable FriendsList friendsList) {
|
||||
|
||||
//Remove progress bar
|
||||
display_progress_bar(false);
|
||||
|
Loading…
Reference in New Issue
Block a user