// Copyright 2011 UPM-GSI: Group of Intelligent Systems - // - Universidad Politécnica de Madrid (UPM) // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package es.upm.dit.gsi.noticiastvi.gtv.fragment; import java.util.ArrayList; import android.app.Fragment; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import es.upm.dit.gsi.noticiastvi.gtv.ItemPlayerActivity; import es.upm.dit.gsi.noticiastvi.gtv.NoticiasTVIActivity; import es.upm.dit.gsi.noticiastvi.gtv.R; import es.upm.dit.gsi.noticiastvi.gtv.account.Account; import es.upm.dit.gsi.noticiastvi.gtv.adapter.GridAdapter; import es.upm.dit.gsi.noticiastvi.gtv.item.Item; import es.upm.dit.gsi.noticiastvi.gtv.item.ItemList; /** * Fragments that shows a list of items. * * @author Antonio Prada <toniprada@gmail.com> * */ public abstract class FragmentItems extends Fragment implements OnItemClickListener { private static final String TAG = "FragmentTab"; private Context mContext; private GridView mGridView; private GridAdapter mAdapter; protected Account mAccount; private int itemPosition; // @Override // public void onCreate(Bundle savedInstanceState) { // super.onCreate(savedInstanceState); // } public FragmentItems(Context context, Account account) { mContext = context; mAccount = account; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment, container, false); mGridView = (GridView) v.findViewById(R.id.gridView); mGridView.setOnItemClickListener(this); return v; } public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); getVideos(); } public abstract void getVideos(); public void setVideos(ArrayList<Item> videos) { if (videos == null || videos.size() == 0) { Log.w(TAG , "Empty videos list"); } else { mAdapter = new GridAdapter(mContext, videos); mGridView.setAdapter(mAdapter); mGridView.setSelection(itemPosition); } } public void click(int position) { } public Context getContext() { return mContext; } @Override public void onItemClick(final AdapterView<?> parent, final View v, final int position, final long id) { Item video = mAdapter.getItem(position); ArrayList<Item> videos = mAdapter.getVideos(); int selected = videos.indexOf(video); ItemList videoList = new ItemList(videos, selected); final Intent i = new Intent(mContext , ItemPlayerActivity.class); i.putExtra(ItemList.EXTRA, videoList); String title = ((NoticiasTVIActivity) getActivity()).getLeftNavBar().getSelectedTab().getText().toString(); i.putExtra(NoticiasTVIActivity.TITLE, title); Bundle bundle = mAccount.getAsBundle(); i.putExtra(Account.ACCOUNT, bundle); itemPosition = position; startActivityForResult(i, R.layout.player); } }