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.Toast; import android.widget.AbsListView.OnScrollListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; 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 { Toast captionToast; int prevFirstVisibleItem = 0; @Override public void onScrollStateChanged(AbsListView view, int scrollState) { Log.e("Side9", "state=" + scrollState); if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { int first = view.getFirstVisiblePosition(); int last = view.getLastVisiblePosition(); mImages.preloadImages(last, 18); String txt; if (current_order == MENU_DATE) txt = mImages.getItemFilename(first) + " - " + mImages.getItemFilename(last); else txt = mImages.getItemCaption(first) + " - " + mImages.getItemCaption(last); if (captionToast == null) { captionToast = Toast.makeText(PictureOverview.this, "", Toast.LENGTH_SHORT); } captionToast.cancel(); captionToast.setText(txt); captionToast.show(); } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } } }