package typical_if.android.fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ListView; import android.widget.RelativeLayout; import com.vk.sdk.api.model.VKApiAudio; import com.vk.sdk.api.model.VKApiDocument; import com.vk.sdk.api.model.VKApiVideo; import org.json.JSONArray; import org.json.JSONObject; import java.util.ArrayList; import typical_if.android.Constants; import typical_if.android.R; import typical_if.android.VKHelper; import typical_if.android.VKRequestListener; import typical_if.android.adapter.AudioAttachAdapter; import typical_if.android.adapter.DocAttachAdapter; import typical_if.android.adapter.VideoAttachAdapter; /** * Created by admin on 19.08.2014. */ public class FragmentAttachPostList extends FragmentWithAttach { ListView attachList; RelativeLayout spinnerLayout; private static int type; public static FragmentAttachPostList newAudioAttachInstance() { return FragmentAttachPostList.newInstance(2); } public static FragmentAttachPostList newVideoAttachInstance() { return FragmentAttachPostList.newInstance(1); } public static FragmentAttachPostList newDocAttachInstance() { return FragmentAttachPostList.newInstance(3); } public static FragmentAttachPostList newInstance(int typeParam) { FragmentAttachPostList fragment = new FragmentAttachPostList(); Bundle args = new Bundle(); type = typeParam; fragment.setArguments(args); return fragment; } @Override public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_attach_list, container, false); attachList = (ListView) rootView.findViewById(R.id.lv_post_attach); spinnerLayout = (RelativeLayout) rootView.findViewById(R.id.attach_list_spinner_layout); switch (type) { case 2: VKHelper.getUserAudios(new VKRequestListener() { @Override public void onSuccess() { JSONObject responseObject = vkJson.optJSONObject(VKHelper.TIF_VK_SDK_KEY_RESPONSE); JSONArray items = responseObject.optJSONArray(VKHelper.TIF_VK_SDK_KEY_ITEMS); final ArrayList<VKApiAudio> audios = parseAudioItems(items); attachList.setAdapter(new AudioAttachAdapter(audios, inflater)); attachList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { getActivity().getSupportFragmentManager().popBackStack(); Constants.tempPostAttachCounter++; Constants.tempAudioPostAttach.add(audios.get(position)); refreshMakePostFragment(2); } }); spinnerLayout.setVisibility(View.GONE); } // @Override // public void onError() { // TIFApp.showCommonErrorToast(); // } }); break; case 1: VKHelper.getUserVideos(new VKRequestListener() { @Override public void onSuccess() { JSONObject responseObject = vkJson.optJSONObject(VKHelper.TIF_VK_API_KEY_RESPONSE); JSONArray items = responseObject.optJSONArray(VKHelper.TIF_VK_SDK_KEY_ITEMS); final ArrayList<VKApiVideo> videos = parseVideoItems(items); attachList.setAdapter(new VideoAttachAdapter(videos, inflater)); attachList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { getActivity().getSupportFragmentManager().popBackStack(); Constants.tempPostAttachCounter++; Constants.tempVideoPostAttach.add(videos.get(position)); refreshMakePostFragment(1); } }); spinnerLayout.setVisibility(View.GONE); } // @Override // public void onError() { // TIFApp.showCommonErrorToast(); // } }); break; case 3: VKHelper.getUserDocs(new VKRequestListener() { @Override public void onSuccess() { JSONObject responseObject = vkJson.optJSONObject(VKHelper.TIF_VK_SDK_KEY_RESPONSE); JSONArray items = responseObject.optJSONArray(VKHelper.TIF_VK_SDK_KEY_ITEMS); final ArrayList<VKApiDocument> docs = parseDocItems(items); attachList.setAdapter(new DocAttachAdapter(docs, inflater)); attachList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { getActivity().getSupportFragmentManager().popBackStack(); Constants.tempPostAttachCounter++; Constants.tempDocPostAttach.add(docs.get(position)); refreshMakePostFragment(3); } }); spinnerLayout.setVisibility(View.GONE); } // @Override // public void onError() { // TIFApp.showCommonErrorToast(); // } }); } setRetainInstance(true); return rootView; } private static ArrayList<VKApiAudio> parseAudioItems(JSONArray items) { ArrayList<VKApiAudio> audios = new ArrayList<VKApiAudio>(); VKApiAudio audio; for (int i = 0; i < items.length(); i++) { audio = new VKApiAudio().parse(items.optJSONObject(i)); audios.add(audio); } return audios; } private static ArrayList<VKApiVideo> parseVideoItems(JSONArray items) { ArrayList<VKApiVideo> videos = new ArrayList<VKApiVideo>(); VKApiVideo video; for (int i = 0; i < items.length(); i++) { video = new VKApiVideo().parse(items.optJSONObject(i)); videos.add(video); } return videos; } private static ArrayList<VKApiDocument> parseDocItems(JSONArray items) { ArrayList<VKApiDocument> docs = new ArrayList<VKApiDocument>(); VKApiDocument doc; for (int i = 0; i < items.length(); i++) { doc = new VKApiDocument().parse(items.optJSONObject(i)); docs.add(doc); } return docs; } }