1 |
package dk.thoerup.side9; |
package dk.thoerup.side9; |
2 |
|
|
|
import dk.thoerup.checkupdates.CheckUpdates; |
|
3 |
import android.app.Activity; |
import android.app.Activity; |
4 |
import android.content.Intent; |
import android.content.Intent; |
|
import android.net.Uri; |
|
5 |
import android.os.Bundle; |
import android.os.Bundle; |
6 |
|
import android.util.Log; |
7 |
|
import android.view.Menu; |
8 |
|
import android.view.MenuItem; |
9 |
import android.view.View; |
import android.view.View; |
10 |
|
import android.widget.AbsListView; |
11 |
|
import android.widget.Toast; |
12 |
|
import android.widget.AbsListView.OnScrollListener; |
13 |
import android.widget.AdapterView; |
import android.widget.AdapterView; |
|
import android.widget.GridView; |
|
14 |
import android.widget.AdapterView.OnItemClickListener; |
import android.widget.AdapterView.OnItemClickListener; |
15 |
|
import android.widget.GridView; |
16 |
|
import dk.thoerup.androidutils.CheckUpdates; |
17 |
|
|
18 |
public class PictureOverview extends Activity { |
public class PictureOverview extends Activity { |
19 |
|
final static int MENU_DATE = 0; |
20 |
|
final static int MENU_CAPTION = 1; |
21 |
|
|
22 |
ImageAdapter images; |
int current_order = MENU_DATE; |
23 |
|
|
24 |
|
ImageAdapter mImages; |
25 |
|
|
26 |
@Override |
@Override |
27 |
public void onCreate(Bundle savedInstanceState) { |
public void onCreate(Bundle savedInstanceState) { |
28 |
super.onCreate(savedInstanceState); |
super.onCreate(savedInstanceState); |
29 |
setContentView(R.layout.pictureoverview); |
setContentView(R.layout.pictureoverview); |
30 |
|
|
31 |
images = new ImageAdapter(this); |
mImages = new ImageAdapter(this); |
32 |
|
|
33 |
GridView gridview = (GridView) findViewById(R.id.gridview); |
GridView gridview = (GridView) findViewById(R.id.gridview); |
34 |
gridview.setAdapter(images); |
gridview.setAdapter(mImages); |
35 |
|
|
36 |
|
|
37 |
gridview.setOnItemClickListener(new OnItemClickListener() { |
gridview.setOnItemClickListener(new OnItemClickListener() { |
38 |
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { |
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { |
|
String uri = "file://" + images.getImagePath(position); |
|
39 |
|
|
40 |
Intent i = new Intent(Intent.ACTION_VIEW); |
Intent i = new Intent(PictureOverview.this, dk.thoerup.side9.PictureView.class); |
41 |
i.setDataAndType(Uri.parse(uri), "image/jpeg"); |
i.putExtra("images", mImages.getImages()); |
42 |
|
i.putExtra("index", position); |
43 |
|
|
44 |
startActivity(i); |
startActivity(i); |
45 |
} |
} |
46 |
}); |
}); |
47 |
|
|
48 |
|
gridview.setOnScrollListener( new ThumbScrollListener() ); |
49 |
|
|
50 |
|
|
51 |
CheckUpdates update = new CheckUpdates(); |
CheckUpdates update = new CheckUpdates(); |
52 |
update.checkForUpdates(this, "http://t-hoerup.dk/android/side9/version.txt", "Side 9 Pigen", "http://t-hoerup.dk/android/side9/Side9.apk"); |
update.checkForUpdates(this, "http://t-hoerup.dk/android/side9/version.txt", "Side 9 Pigen", "http://t-hoerup.dk/android/side9/Side9.apk"); |
53 |
|
} |
54 |
|
|
55 |
|
@Override |
56 |
|
public void onDestroy() { |
57 |
|
super.onDestroy(); |
58 |
|
mImages.cleanUp(); |
59 |
|
} |
60 |
|
|
61 |
|
@Override |
62 |
|
public boolean onCreateOptionsMenu(Menu menu) { |
63 |
|
menu.add(0,MENU_DATE,0, "Order by date"); |
64 |
|
menu.add(0,MENU_CAPTION,0, "Order by caption"); |
65 |
|
|
66 |
|
return true; |
67 |
} |
} |
68 |
|
|
69 |
|
|
70 |
|
|
71 |
|
@Override |
72 |
|
public boolean onPrepareOptionsMenu(Menu menu) { |
73 |
|
MenuItem item = menu.findItem(MENU_DATE); |
74 |
|
if (current_order == MENU_DATE) |
75 |
|
item.setEnabled(false); |
76 |
|
else |
77 |
|
item.setEnabled(true); |
78 |
|
|
79 |
|
item = menu.findItem(MENU_CAPTION); |
80 |
|
if (current_order == MENU_CAPTION) |
81 |
|
item.setEnabled(false); |
82 |
|
else |
83 |
|
item.setEnabled(true); |
84 |
|
|
85 |
|
return true; |
86 |
|
} |
87 |
|
|
88 |
|
@Override |
89 |
|
public boolean onOptionsItemSelected(MenuItem item) { |
90 |
|
switch( item.getItemId() ) { |
91 |
|
case MENU_DATE: |
92 |
|
mImages.orderByPath(); |
93 |
|
current_order = MENU_DATE; |
94 |
|
return true; |
95 |
|
case MENU_CAPTION: |
96 |
|
mImages.orderByCaption(); |
97 |
|
current_order = MENU_CAPTION; |
98 |
|
return true; |
99 |
|
default: |
100 |
|
return super.onOptionsItemSelected(item); |
101 |
|
} |
102 |
|
} |
103 |
|
|
104 |
|
|
105 |
|
class ThumbScrollListener implements AbsListView.OnScrollListener { |
106 |
|
|
107 |
|
Toast captionToast; |
108 |
|
|
109 |
|
int prevFirstVisibleItem = 0; |
110 |
|
@Override |
111 |
|
public void onScrollStateChanged(AbsListView view, int scrollState) { |
112 |
|
Log.e("Side9", "state=" + scrollState); |
113 |
|
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) { |
114 |
|
|
115 |
|
int first = view.getFirstVisiblePosition(); |
116 |
|
int last = view.getLastVisiblePosition(); |
117 |
|
mImages.preloadImages(last, 18); |
118 |
|
|
119 |
|
|
120 |
|
|
121 |
|
String txt; |
122 |
|
|
123 |
|
if (current_order == MENU_DATE) |
124 |
|
txt = mImages.getItemFilename(first) + " - " + mImages.getItemFilename(last); |
125 |
|
else |
126 |
|
txt = mImages.getItemCaption(first) + " - " + mImages.getItemCaption(last); |
127 |
|
|
128 |
|
if (captionToast == null) { |
129 |
|
captionToast = Toast.makeText(PictureOverview.this, "", Toast.LENGTH_SHORT); |
130 |
|
} |
131 |
|
captionToast.cancel(); |
132 |
|
captionToast.setText(txt); |
133 |
|
captionToast.show(); |
134 |
|
|
135 |
|
|
136 |
|
|
137 |
|
} |
138 |
|
|
139 |
|
} |
140 |
|
|
141 |
|
@Override |
142 |
|
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { |
143 |
|
} |
144 |
|
} |
145 |
|
|
146 |
} |
} |