/[projects]/android/Side9/src/dk/thoerup/side9/PictureOverview.java
ViewVC logotype

Diff of /android/Side9/src/dk/thoerup/side9/PictureOverview.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 912 by torben, Sat Jun 26 08:21:22 2010 UTC revision 1622 by torben, Tue Oct 25 17:24:09 2011 UTC
# Line 1  Line 1 
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  }  }

Legend:
Removed from v.912  
changed lines
  Added in v.1622

  ViewVC Help
Powered by ViewVC 1.1.20