package com.masterofcode.android.magreader.fragments; import java.util.ConcurrentModificationException; import java.util.List; import org.kroz.activerecord.ActiveRecordBase; import org.kroz.activerecord.ActiveRecordException; import android.app.Fragment; import android.app.FragmentTransaction; import android.content.res.Configuration; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Gallery; import android.widget.LinearLayout; import com.masterofcode.android.magreader.MainShopActivity; import com.masterofcode.android.magreader.adapters.GridOfIssuesAdapter; import com.masterofcode.android.magreader.application.JtjApplication; import com.masterofcode.android.magreader.db.entity.IssueItem; import com.sandsmedia.apps.mobile.android.epub.lib.R; public class ShopGalleryForViewFragment extends Fragment{ private ActiveRecordBase _db; private List<IssueItem> mIssues; private View detailsFramePort; private Gallery galleryView; private GridOfIssuesAdapter issueAdapter; private int mCurCheckPosition = -1; private LinearLayout shoploadingLayout; private static ShopGalleryForViewFragment Instance = null; public static ShopGalleryForViewFragment getInstance(){ return Instance; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); generateArrayListToAdapter(); } @SuppressWarnings("unchecked") @Override public void onActivityCreated(Bundle savedInstance) { super.onActivityCreated(savedInstance); // Check to see if we have a frame in which to embed the details // fragment directly in the containing UI. detailsFramePort = getActivity().findViewById(R.id.issue_details_container_port); shoploadingLayout = (LinearLayout) getActivity().findViewById(R.id.shoploadingLayout); if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT){ } else { } if (getmCurCheckPosition() != -1) { showDetails(getmCurCheckPosition()); } } private OnItemClickListener galleryViewItemClickListener = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { if (position < mIssues.size()){} showDetails(position); ((MainShopActivity) getActivity()).setmCurrentItemPosition(position); ((MainShopActivity) getActivity()).setClicedItem(true); } }; public void showDetails(int position) { // TODO Auto-generated method stub IssueDetailsFragment issueDetailsFragment = (IssueDetailsFragment) getFragmentManager().findFragmentById(R.id.issue_details_fragment); if (issueDetailsFragment == null || issueDetailsFragment.getShownIndex() != position) { // Make new fragment to show this selection. issueDetailsFragment = IssueDetailsFragment.newInstance(position); FragmentTransaction ft = getFragmentManager().beginTransaction(); ft.replace(R.id.issue_details_container_port, issueDetailsFragment); ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); ft.commit(); } } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View returnView = inflater.inflate(R.layout.shop_issues_gallery, container, false); galleryView = (Gallery) returnView.findViewById(R.id.issues_gallery); issueAdapter = new GridOfIssuesAdapter(getActivity().getApplicationContext(), mIssues, getActivity()); galleryView.setAdapter(issueAdapter); galleryView.setOnItemClickListener(galleryViewItemClickListener); return returnView; } public GridOfIssuesAdapter getIssueAdapter() { return issueAdapter; } @Override public void onResume(){ super.onResume(); if (mIssues.size() >= 0) shoploadingLayout.setVisibility(View.GONE); Instance = this; } private void generateArrayListToAdapter(){ try { _db = ((JtjApplication)getActivity().getApplication()).getDatabase(); _db.open(); mIssues = _db.find(IssueItem.class, false, "_id>?", new String[] { String.valueOf("0") }, null, null, null, null); } catch (ActiveRecordException exc) { exc.printStackTrace(); } catch (ConcurrentModificationException exc) { exc.printStackTrace(); } catch (Exception exc) { exc.printStackTrace(); } } public static ShopGalleryForViewFragment newInstance(int index) { ShopGalleryForViewFragment f = new ShopGalleryForViewFragment(); // Supply index input as an argument. Bundle args = new Bundle(); args.putInt("index", index); f.setArguments(args); return f; } public int getShownIndex() { return getArguments().getInt("index", 0); } private int getmCurCheckPosition() { return mCurCheckPosition; } private void setmCurCheckPosition(int mCurCheckPosition) { this.mCurCheckPosition = mCurCheckPosition; } }