package org.softeg.slartus.forpdaplus.listfragments;/* * Created by slinkin on 13.03.14. */ import android.os.Bundle; import android.text.TextUtils; import android.view.ContextMenu; import android.view.View; import android.widget.AdapterView; import android.widget.BaseAdapter; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.listener.PauseOnScrollListener; import org.softeg.slartus.forpdaapi.IListItem; import org.softeg.slartus.forpdaapi.devdb.DevModel; import org.softeg.slartus.forpdaapi.devdb.NewDevDbApi; import org.softeg.slartus.forpdaplus.Client; import org.softeg.slartus.forpdaplus.classes.MenuListDialog; import org.softeg.slartus.forpdaplus.classes.common.ExtUrl; import org.softeg.slartus.forpdaplus.devdb.ParentFragment; import org.softeg.slartus.forpdaplus.listfragments.adapters.DevDbModelsAdapter; import org.softeg.slartus.forpdaplus.tabs.ListViewMethodsBridge; import java.util.ArrayList; import java.util.List; public class DevDbModelsFragment extends BaseTaskListFragment { public static final String BRAND_URL_KEY = "BRAND_URL_KEY"; public static final String BRAND_TITLE_KEY = "BRAND_TITLE_KEY"; private String m_BrandUrl; private String m_BrandTitle; protected ArrayList<DevModel> mData = new ArrayList<>(); protected ArrayList<DevModel> mLoadResultList; public DevDbModelsFragment() { super(); } // public static DevDbModelsFragment newInstance(String brandUrl) { // DevDbModelsFragment fragment = new DevDbModelsFragment(); // Bundle args = new Bundle(); // args.putString(BRAND_URL_KEY, brandUrl); // fragment.setArguments(args); // return fragment; // } @Override public void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); setArrow(); if (savedInstanceState != null) { m_BrandUrl = savedInstanceState.getString(BRAND_URL_KEY, m_BrandUrl); m_BrandTitle = savedInstanceState.getString(BRAND_TITLE_KEY, m_BrandTitle); } if (getArguments() != null) { m_BrandUrl = getArguments().getString(BRAND_URL_KEY, m_BrandUrl); m_BrandTitle = getArguments().getString(BRAND_TITLE_KEY, m_BrandTitle); } } @Override public void onResume() { super.onResume(); setArrow(); if (!TextUtils.isEmpty(m_BrandTitle)) setTitle(m_BrandTitle.replaceAll(" \\(\\d*\\)", "")); getMainActivity().notifyTabAdapter(); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getListView().setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), false, true)); } @Override public String getListTitle() { if (TextUtils.isEmpty(m_BrandTitle)) return super.getListTitle(); return m_BrandTitle; } @Override public void onSaveInstanceState(android.os.Bundle outState) { outState.putString(BRAND_URL_KEY, m_BrandUrl); outState.putString(BRAND_TITLE_KEY, m_BrandTitle); super.onSaveInstanceState(outState); } @Override protected boolean inBackground(boolean isRefresh) throws Throwable { mLoadResultList = NewDevDbApi.parseModels(Client.getInstance(), m_BrandUrl); return true; } @Override protected void deliveryResult(boolean isRefresh) { if (isRefresh) mData.clear(); mData.addAll(mLoadResultList); mLoadResultList.clear(); } protected BaseAdapter createAdapter() { return new DevDbModelsAdapter(getContext(), mData); } @Override public void onItemClick(AdapterView<?> adapterView, View v, int position, long id) { id = ListViewMethodsBridge.getItemId(getActivity(), position, id); if (id < 0 || getAdapter().getCount() <= id) return; Object o = getAdapter().getItem((int) id); if (o == null) return; final IListItem topic = (IListItem) o; if (TextUtils.isEmpty(topic.getId())) return; //DevDbDeviceActivity.showDevice(getContext(), topic.getId().toString()); ParentFragment.showDevice(topic.getId().toString(), topic.getMain().toString()); } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; if (info.id == -1) return; final IListItem topic = (IListItem) getAdapter().getItem((int) info.id); if (TextUtils.isEmpty(topic.getId())) return; List<MenuListDialog> list = new ArrayList<>(); ExtUrl.addUrlMenu(mHandler, getContext(), list, topic.getId().toString(), topic.getMain().toString()); ExtUrl.showContextDialog(getContext(), null, list); } }