mirror of
https://github.com/pierre42100/ComunicAndroid
synced 2024-11-23 13:59:29 +00:00
Replaced an AsyncTask with a SafeAsyncTask
This commit is contained in:
parent
383f299455
commit
e177bbde27
@ -0,0 +1,39 @@
|
|||||||
|
package org.communiquons.android.comunic.client.ui.asynctasks;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.util.ArrayMap;
|
||||||
|
|
||||||
|
import org.communiquons.android.comunic.client.data.arrays.FriendsList;
|
||||||
|
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.UserInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of friends of the user
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
public class GetFriendsListTask extends SafeAsyncTask<Void, Void, FriendsList> {
|
||||||
|
|
||||||
|
public GetFriendsListTask(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected FriendsList doInBackground(Void... voids) {
|
||||||
|
|
||||||
|
//Fetch the list of friends
|
||||||
|
FriendsList friendsList = new FriendsListHelper(getContext()).get();
|
||||||
|
|
||||||
|
ArrayMap<Integer, UserInfo> userInfo;
|
||||||
|
|
||||||
|
//Try to get information about related users if possible
|
||||||
|
if (friendsList == null || (userInfo = new GetUsersHelper(getContext()).getMultiple(
|
||||||
|
friendsList.getFriendsIDs())) == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
//Merge friend and user and return result
|
||||||
|
friendsList.mergeFriendsListWithUserInfo(userInfo);
|
||||||
|
return friendsList;
|
||||||
|
}
|
||||||
|
}
|
@ -6,10 +6,8 @@ import android.os.AsyncTask;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.v4.app.Fragment;
|
|
||||||
import android.support.v7.widget.DividerItemDecoration;
|
import android.support.v7.widget.DividerItemDecoration;
|
||||||
import android.support.v7.widget.LinearLayoutManager;
|
import android.support.v7.widget.LinearLayoutManager;
|
||||||
import android.util.ArrayMap;
|
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
@ -25,9 +23,9 @@ 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.FriendsListHelper;
|
||||||
import org.communiquons.android.comunic.client.data.helpers.GetUsersHelper;
|
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.Friend;
|
||||||
import org.communiquons.android.comunic.client.data.models.UserInfo;
|
|
||||||
import org.communiquons.android.comunic.client.ui.activities.MainActivity;
|
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.adapters.FriendsAdapter;
|
||||||
|
import org.communiquons.android.comunic.client.ui.asynctasks.GetFriendsListTask;
|
||||||
import org.communiquons.android.comunic.client.ui.asynctasks.SafeAsyncTask;
|
import org.communiquons.android.comunic.client.ui.asynctasks.SafeAsyncTask;
|
||||||
import org.communiquons.android.comunic.client.ui.listeners.OnFriendListActionListener;
|
import org.communiquons.android.comunic.client.ui.listeners.OnFriendListActionListener;
|
||||||
import org.communiquons.android.comunic.client.ui.listeners.onOpenUsersPageListener;
|
import org.communiquons.android.comunic.client.ui.listeners.onOpenUsersPageListener;
|
||||||
@ -43,7 +41,7 @@ import java.util.Objects;
|
|||||||
* Created by pierre on 11/11/17.
|
* Created by pierre on 11/11/17.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public class FriendsListFragment extends Fragment implements OnFriendListActionListener,
|
public class FriendsListFragment extends AbstractFragment implements OnFriendListActionListener,
|
||||||
PopupMenu.OnMenuItemClickListener {
|
PopupMenu.OnMenuItemClickListener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -178,42 +176,10 @@ public class FriendsListFragment extends Fragment implements OnFriendListActionL
|
|||||||
//Display loading bar
|
//Display loading bar
|
||||||
display_progress_bar(true);
|
display_progress_bar(true);
|
||||||
|
|
||||||
new AsyncTask<Void, Void, FriendsList>() {
|
GetFriendsListTask getFriendsListTask = new GetFriendsListTask(getActivity());
|
||||||
|
getFriendsListTask.setOnPostExecuteListener(this::apply_friends_list);
|
||||||
@Override
|
getFriendsListTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
||||||
protected FriendsList doInBackground(Void... params) {
|
getTasksManager().addTask(getFriendsListTask);
|
||||||
|
|
||||||
//Fetch the list of friends
|
|
||||||
FriendsList friendsList = mFriendsHelper.get();
|
|
||||||
|
|
||||||
//Check for errors
|
|
||||||
if (friendsList == null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
//Get user info
|
|
||||||
ArrayMap<Integer, UserInfo> userInfo = mUsersHelper.getMultiple(
|
|
||||||
friendsList.getFriendsIDs());
|
|
||||||
|
|
||||||
//Check for errors
|
|
||||||
if (userInfo == null)
|
|
||||||
return null;
|
|
||||||
|
|
||||||
//Merge friend and user and return result
|
|
||||||
friendsList.mergeFriendsListWithUserInfo(userInfo);
|
|
||||||
return friendsList;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onPostExecute(FriendsList friendUsers) {
|
|
||||||
|
|
||||||
//Check the activity still exists
|
|
||||||
if (getActivity() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
apply_friends_list(friendUsers);
|
|
||||||
}
|
|
||||||
}.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user