package org.softeg.slartus.forpdaplus.listfragments;/*
* Created by slinkin on 05.05.2014.
*/
import android.content.Context;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.ContextMenu;
import android.view.View;
import android.widget.AdapterView;
import org.softeg.slartus.forpdaapi.IListItem;
import org.softeg.slartus.forpdaapi.TopicApi;
import org.softeg.slartus.forpdaapi.post.PostAttach;
import org.softeg.slartus.forpdaplus.Client;
import org.softeg.slartus.forpdaplus.IntentActivity;
import org.softeg.slartus.forpdaplus.MainActivity;
import org.softeg.slartus.forpdaplus.R;
import org.softeg.slartus.forpdaplus.classes.MenuListDialog;
import org.softeg.slartus.forpdaplus.classes.common.ExtUrl;
import org.softeg.slartus.forpdaplus.download.DownloadsService;
import org.softeg.slartus.forpdaplus.listtemplates.TopicAttachmentBrickInfo;
import java.util.ArrayList;
import java.util.List;
public class TopicAttachmentListFragment extends BaseTaskListFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setArrow();
}
@Override
public void onResume() {
super.onResume();
setArrow();
}
@Override
public void onPause() {
super.onPause();
}
public static void showActivity(Context context, CharSequence topicId){
Bundle args=new Bundle();
args.putString(TOPIC_ID_KEY,topicId.toString());
MainActivity.showListFragment(topicId.toString(), TopicAttachmentBrickInfo.NAME, args);
}
public TopicAttachmentListFragment() {
super();
}
public static final String TOPIC_ID_KEY="TOPIC_ID_KEY";
@Override
protected boolean inBackground(boolean isRefresh) throws Throwable {
mLoadResultList = TopicApi.getTopicAttachment(Client.getInstance(), args.getString(TOPIC_ID_KEY));
return true;
}
@Override
protected void deliveryResult(boolean isRefresh) {
if (isRefresh)
mData.clear();
List<CharSequence> ids=new ArrayList<>();
for (IListItem item : mData) {
ids.add(item.getId());
}
for (IListItem item : mLoadResultList) {
if(ids.contains(item.getId()))
continue;
mData.add(item);
}
mLoadResultList.clear();
}
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int position, long id) {
getActivity().openContextMenu(v);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
if (info.id == -1) return;
Object o = getAdapter().getItem((int) info.id );
if (o == null)
return;
final IListItem item = (IListItem) o;
if (TextUtils.isEmpty(item.getId())) return;
final PostAttach attach=(PostAttach)item;
final List<MenuListDialog> list = new ArrayList<>();
list.add(new MenuListDialog(getString(R.string.do_download), new Runnable() {
@Override
public void run() {
DownloadsService.download(getActivity(), attach.getUrl().toString(), false);
}
}));
list.add(new MenuListDialog(getString(R.string.jump_to_page), new Runnable() {
@Override
public void run() {
IntentActivity.showTopic(attach.getPostUrl());
}
}));
ExtUrl.showContextDialog(getContext(), null, list);
}
}