package org.softeg.slartus.forpdaplus.devdb.fragments; import android.content.Context; import android.graphics.Typeface; import android.os.Bundle; import android.support.annotation.Nullable; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.Gallery; import android.widget.LinearLayout; import android.widget.TextView; import org.jsoup.nodes.Element; import org.softeg.slartus.forpdaplus.App; import org.softeg.slartus.forpdaplus.R; import org.softeg.slartus.forpdaplus.classes.LazyGallery.LazyAdapter; import org.softeg.slartus.forpdaplus.controls.imageview.ImgViewer; import org.softeg.slartus.forpdaplus.devdb.fragments.base.BaseDevDbFragment; import org.softeg.slartus.forpdaplus.devdb.helpers.FLifecycleUtil; import org.softeg.slartus.forpdaplus.devdb.model.SpecModel; import java.io.IOException; import java.util.ArrayList; /** * Created by radiationx on 05.01.16. */ public class SpecFragment extends BaseDevDbFragment implements FLifecycleUtil { private ArrayList<String> imgUrls; View view; private static final int LAYOUT = R.layout.dev_db_activity_x; private SpecModel data; public static SpecFragment newInstance(Context context, SpecModel data) { SpecFragment f = new SpecFragment(); f.setContext(context); f.setTitle(App.getContext().getString(R.string.specifications)); f.setData(data); return f; } public void setData(SpecModel data){ this.data = data; } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(LAYOUT, container, false); if (data!=null) { try { initUI(); } catch (IOException e) { e.printStackTrace(); } } return view; } private int convertToDp(int p){ return (int) (p*getResources().getDisplayMetrics().density + 0.5f); } private void initUI() throws IOException { imgUrls =data.getGalleryLinks(); LinearLayout specList = (LinearLayout) view.findViewById(R.id.spec_list); for(Element element:data.getSpecTable()){ if(element.text().isEmpty()) continue; TextView title = new TextView(getContext()); title.setPadding(convertToDp(16), convertToDp(16), convertToDp(16), convertToDp(0)); title.setTextSize(20); title.setTypeface(title.getTypeface(), Typeface.BOLD); title.setText(element.select(".specifications-title").first().text()); specList.addView(title); for(Element row:element.select(".specifications-row")){ TextView rowText = new TextView(getContext()); rowText.setPadding(convertToDp(16), convertToDp(4), convertToDp(16), convertToDp(8)); rowText.setText(Html.fromHtml(row.select("dt").first().text() + " <b>" + row.select("dd").first().text() + "</b>")); specList.addView(rowText); } } Gallery gallery = (Gallery) view.findViewById(R.id.gallery); LazyAdapter adapter = new LazyAdapter(getActivity(), data.getGalleryImages().toArray(new String[data.getGalleryImages().size()])); gallery.setAdapter(adapter); // RecyclerView recyclerView = ButterKnife.findById(getActivity(), R.id.gallery); // final LinearLayoutManager manager = new LinearLayoutManager(getActivity()); // manager.setOrientation(LinearLayoutManager.HORIZONTAL); // recyclerView.setLayoutManager(manager); // SpecGalleryAdapter adapter = new SpecGalleryAdapter(getActivity(), data.getGalleryImages()); // recyclerView.setAdapter(adapter); // recyclerView.setItemAnimator(new DefaultItemAnimator()); // recyclerView.setHasFixedSize(true); /* перенес сюда, ибо в onCreate imgUrls return null. Зачем так сделал? startActivity может принять список ссылок и viewpager вроде как должен раюотать. На деле хрен с посным маслом. */ gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { // ImageViewActivity.startActivity(getActivity(), imgUrls, adapterView.getSelectedItemPosition()); ImgViewer.startActivity(getActivity(), imgUrls, adapterView.getSelectedItemPosition()); } }); /*HorizontalScrollView con1 = (HorizontalScrollView) getView().findViewById(R.id.dev_db_activity_con1); con1.setVisibility(View.VISIBLE);*/ /*LinearLayout con = (LinearLayout) getView().findViewById(R.id.dev_db_activity_con); con.setVisibility(View.VISIBLE);*/ if(data.getPrice()!=null){ TextView priceTV = (TextView) view.findViewById(R.id.price); priceTV.setVisibility(View.VISIBLE); priceTV.setText(data.getPrice()+" Р"); } } /* @Override public void onViewCreated(View view, Bundle savedInstanceState) { // recLifeCycle(getClass(), CALL_TO_SUPER); super.onViewCreated(view, savedInstanceState); // recLifeCycle(getClass(), RETURN_FROM_SUPER); }*/ @Override public void onPauseFragment() { } @Override public void onResumeFragment() { } @Override public void onDestroy() { // recLifeCycle(getClass(), CALL_TO_SUPER); super.onDestroy(); // recLifeCycle(getClass(), RETURN_FROM_SUPER); data = null; } public void setContext(Context context) { this.context = context; } }