package com.chrome.codereview.issuelists;
import android.util.SparseArray;
import com.chrome.codereview.R;
import com.chrome.codereview.data.IssueStateProvider;
import com.chrome.codereview.model.Issue;
import com.chrome.codereview.requests.ServerCaller;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Callable;
/**
* Created by sergeyv on 10/8/14.
*/
public class HiddenIssuesFragment extends BaseIssueListFragment {
@Override
public Callable<List<Issue>> getLoadAction() {
final ServerCaller serverCaller = ServerCaller.from(getActivity());
final String accountName = serverCaller.getAccountName();
final Callable<List<Issue>> callable = new Callable<List<Issue>>() {
@Override
public List<Issue> call() throws Exception {
return serverCaller.loadIssuesForUser(accountName);
}
};
return callable;
}
@Override
protected List<Issue> filter(List<Issue> list, SparseArray<Long> idToModificationTime) {
List<Issue> result = new ArrayList<Issue>();
for (Issue issue : list) {
long lastSavedModification = idToModificationTime.get(issue.id(), 1l);
if (issue.lastModified().getTime() <= lastSavedModification) {
result.add(issue);
}
}
return result;
}
@Override
public void swipeIssue(Issue issue, int direction) {
IssueStateProvider.updateIssueState(getActivity(), issue.id(), 0l);
}
@Override
protected int getLayoutRes() {
return R.layout.hidden_user_issues;
}
}