package dk.thoerup.side9; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.GridView; import android.widget.AdapterView.OnItemClickListener; import dk.thoerup.androidutils.CheckUpdates; public class PictureOverview extends Activity { final static int MENU_DATE = 0; final static int MENU_CAPTION = 1; int current_order = MENU_DATE; ImageAdapter mImages; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pictureoverview); mImages = new ImageAdapter(this); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(mImages); gridview.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { Intent i = new Intent(PictureOverview.this, dk.thoerup.side9.PictureView.class); i.putExtra("images", mImages.getImages()); i.putExtra("index", position); startActivity(i); } }); gridview.setOnScrollListener( new ThumbScrollListener() ); CheckUpdates update = new CheckUpdates(); update.checkForUpdates(this, "http://t-hoerup.dk/android/side9/version.txt", "Side 9 Pigen", "http://t-hoerup.dk/android/side9/Side9.apk"); } @Override public void onDestroy() { super.onDestroy(); mImages.cleanUp(); } @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0,MENU_DATE,0, "Order by date"); menu.add(0,MENU_CAPTION,0, "Order by caption"); return true; } @Override public boolean onPrepareOptionsMenu(Menu menu) { MenuItem item = menu.findItem(MENU_DATE); if (current_order == MENU_DATE) item.setEnabled(false); else item.setEnabled(true); item = menu.findItem(MENU_CAPTION); if (current_order == MENU_CAPTION) item.setEnabled(false); else item.setEnabled(true); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch( item.getItemId() ) { case MENU_DATE: mImages.orderByPath(); current_order = MENU_DATE; return true; case MENU_CAPTION: mImages.orderByCaption(); current_order = MENU_CAPTION; return true; default: return super.onOptionsItemSelected(item); } } class ThumbScrollListener implements AbsListView.OnScrollListener { int prevFirstVisibleItem = 0; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (firstVisibleItem != prevFirstVisibleItem) { prevFirstVisibleItem = firstVisibleItem; mImages.preloadImages(firstVisibleItem + visibleItemCount, 9); } } } }