mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-09 13:50:57 +00:00
switch from ArrayList to SynchronizedList because of the async loader
This commit is contained in:
1 parent
9b73cb1444
commit
b97db4b10b
3 files changed
+22
-17
No files matched your search
+8
-3
@@ -1,6 +1,6 @@
|
||||
package com.sap.sailing.racecommittee.app.ui.adapters;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
@@ -9,16 +9,19 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.sap.sailing.android.shared.logging.ExLog;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
|
||||
public class CompetitorAdapter extends RecyclerView.Adapter<CompetitorAdapter.ViewHolder> {
|
||||
|
||||
private static final String TAG = CompetitorAdapter.class.getName();
|
||||
|
||||
private Context mContext;
|
||||
private ArrayList<Competitor> mData;
|
||||
private List<Competitor> mData;
|
||||
private CompetitorClick mListener;
|
||||
|
||||
public CompetitorAdapter(Context context, ArrayList<Competitor> data) {
|
||||
public CompetitorAdapter(Context context, List<Competitor> data) {
|
||||
mContext = context;
|
||||
mData = data;
|
||||
}
|
||||
@@ -42,6 +45,8 @@ public class CompetitorAdapter extends RecyclerView.Adapter<CompetitorAdapter.Vi
|
||||
if (holder.competitor != null) {
|
||||
holder.competitor.setText(name);
|
||||
}
|
||||
} else {
|
||||
ExLog.e(mContext, TAG, "Competitor at position " + position + " was unexpected null");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.racecommittee.app.ui.adapters;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.support.v4.view.ViewCompat;
|
||||
@@ -18,15 +20,13 @@ import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.CompetitorResultWithIdImpl;
|
||||
import com.sap.sailing.racecommittee.app.utils.ThemeHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class FinishListAdapter extends BaseDraggableSwipeAdapter<FinishListAdapter.ViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private ArrayList<CompetitorResultWithIdImpl> mCompetitor;
|
||||
private List<CompetitorResultWithIdImpl> mCompetitor;
|
||||
private FinishEvents mListener;
|
||||
|
||||
public FinishListAdapter(Context context, ArrayList<CompetitorResultWithIdImpl> competitor) {
|
||||
public FinishListAdapter(Context context, List<CompetitorResultWithIdImpl> competitor) {
|
||||
setHasStableIds(true);
|
||||
mContext = context;
|
||||
mCompetitor = competitor;
|
||||
|
||||
+10
-10
@@ -70,8 +70,8 @@ public class TrackingListFragment extends BaseFragment
|
||||
|
||||
private RecyclerView.Adapter<FinishListAdapter.ViewHolder> mFinishedAdapter;
|
||||
private CompetitorAdapter mCompetitorAdapter;
|
||||
private ArrayList<CompetitorResultWithIdImpl> mFinishedData;
|
||||
private ArrayList<Competitor> mCompetitorData;
|
||||
private List<CompetitorResultWithIdImpl> mFinishedData;
|
||||
private List<Competitor> mCompetitorData;
|
||||
private int mId = 0;
|
||||
private HeaderLayout mHeader;
|
||||
private TextView mPageTitle;
|
||||
@@ -81,7 +81,7 @@ public class TrackingListFragment extends BaseFragment
|
||||
private List<Comparator<Competitor>> mComparators;
|
||||
|
||||
public TrackingListFragment() {
|
||||
mCompetitorData = new ArrayList<>();
|
||||
mCompetitorData = Collections.synchronizedList(new ArrayList<Competitor>());
|
||||
}
|
||||
|
||||
public static TrackingListFragment newInstance(Bundle args, int startMode) {
|
||||
@@ -164,6 +164,7 @@ public class TrackingListFragment extends BaseFragment
|
||||
mComparators = new ArrayList<>();
|
||||
mComparators.add(new CompetitorSailIdComparator());
|
||||
mComparators.add(new NaturalNamedComparator<Competitor>());
|
||||
mComparator = mComparators.get(0);
|
||||
|
||||
mFinishedData = initializeFinishList();
|
||||
loadCompetitors();
|
||||
@@ -235,7 +236,6 @@ public class TrackingListFragment extends BaseFragment
|
||||
}
|
||||
}
|
||||
|
||||
mComparator = mComparators.get(0);
|
||||
Util.addAll(getRace().getCompetitors(), mCompetitorData);
|
||||
sortCompetitors();
|
||||
mCompetitorAdapter.notifyDataSetChanged();
|
||||
@@ -286,7 +286,7 @@ public class TrackingListFragment extends BaseFragment
|
||||
domainFactory.getCompetitorStore().allowCompetitorResetToDefaults(competitor);
|
||||
}
|
||||
|
||||
Loader<?> competitorLoaders = getLoaderManager()
|
||||
final Loader<?> competitorLoader = getLoaderManager()
|
||||
.initLoader(0, null, dataManager.createCompetitorsLoader(getRace(), new LoadClient<Collection<Competitor>>() {
|
||||
|
||||
@Override
|
||||
@@ -296,14 +296,14 @@ public class TrackingListFragment extends BaseFragment
|
||||
|
||||
@Override
|
||||
public void onLoadSucceeded(Collection<Competitor> data, boolean isCached) {
|
||||
if (isAdded()) {
|
||||
if (isAdded() && !isCached) {
|
||||
onLoadCompetitorsSucceeded(data);
|
||||
}
|
||||
}
|
||||
|
||||
}));
|
||||
|
||||
// Force load to get non-cached remote competitors...
|
||||
competitorLoaders.forceLoad();
|
||||
competitorLoader.forceLoad();
|
||||
}
|
||||
|
||||
protected void onLoadCompetitorsSucceeded(Collection<Competitor> data) {
|
||||
@@ -336,8 +336,8 @@ public class TrackingListFragment extends BaseFragment
|
||||
return DataManager.create(getActivity()).getDataStore().getDomainFactory().getCompetitorStore();
|
||||
}
|
||||
|
||||
private ArrayList<CompetitorResultWithIdImpl> initializeFinishList() {
|
||||
ArrayList<CompetitorResultWithIdImpl> positioning = new ArrayList<>();
|
||||
private List<CompetitorResultWithIdImpl> initializeFinishList() {
|
||||
List<CompetitorResultWithIdImpl> positioning = Collections.synchronizedList(new ArrayList<CompetitorResultWithIdImpl>());
|
||||
if (getRaceState() != null && getRaceState().getFinishPositioningList() != null) {
|
||||
for (CompetitorResult results : getRaceState().getFinishPositioningList()) {
|
||||
positioning.add(new CompetitorResultWithIdImpl(mId, results));
|
||||
|
||||
Reference in new issue
Block a user