1 |
|
/* |
2 |
|
* this is a inefficient and ugly hack - the correct way is to send a ACTION_MEDIA_MOUNTED broadcast |
3 |
|
*/ |
4 |
|
|
5 |
package dk.thoerup.rescansdcard; |
package dk.thoerup.rescansdcard; |
6 |
|
|
7 |
import java.io.File; |
import java.io.File; |
20 |
import android.os.Handler; |
import android.os.Handler; |
21 |
import android.os.Message; |
import android.os.Message; |
22 |
import android.util.Log; |
import android.util.Log; |
23 |
|
import android.view.KeyEvent; |
24 |
import android.view.View; |
import android.view.View; |
25 |
import android.view.View.OnClickListener; |
import android.view.View.OnClickListener; |
26 |
import android.widget.Button; |
import android.widget.Button; |
28 |
import android.widget.Spinner; |
import android.widget.Spinner; |
29 |
import android.widget.TextView; |
import android.widget.TextView; |
30 |
|
|
31 |
|
@Deprecated |
32 |
public class RescanMain extends Activity { |
public class RescanMain extends Activity { |
33 |
final static String TAG = "RescanSdcard"; |
final static String TAG = "RescanSdcard"; |
34 |
|
|
46 |
|
|
47 |
int processed = 0; |
int processed = 0; |
48 |
|
|
49 |
|
boolean isScanning = false; |
50 |
|
|
51 |
|
|
52 |
/** Called when the activity is first created. */ |
/** Called when the activity is first created. */ |
53 |
@Override |
@Override |
67 |
|
|
68 |
|
|
69 |
checkSdCard(); |
checkSdCard(); |
70 |
|
|
71 |
|
|
72 |
} |
} |
73 |
|
|
74 |
void populateSpinner() { |
|
75 |
|
|
76 |
|
@Override |
77 |
|
public boolean onKeyDown(int keyCode, KeyEvent event) { |
78 |
|
if (keyCode == KeyEvent.KEYCODE_BACK) { |
79 |
|
if (isScanning == true) { //scanning scanning |
80 |
|
return true; //do nothing and claim event to be handled |
81 |
|
} |
82 |
|
} |
83 |
|
|
84 |
|
return super.onKeyDown(keyCode, event); |
85 |
|
} |
86 |
|
|
87 |
|
|
88 |
|
|
89 |
|
void populateSpinner() { |
90 |
|
|
91 |
} |
} |
92 |
|
|
122 |
progress.setProgress(processed); |
progress.setProgress(processed); |
123 |
|
|
124 |
if (processed == total) { |
if (processed == total) { |
125 |
|
isScanning = false; |
126 |
scanBtn.setEnabled(true); |
scanBtn.setEnabled(true); |
127 |
targetSpinner.setEnabled(true); |
targetSpinner.setEnabled(true); |
128 |
|
} else { |
129 |
|
updateHandler.sendEmptyMessageDelayed(0, 500); |
130 |
} |
} |
131 |
} |
} |
132 |
}; |
}; |
173 |
List<String> files = new ArrayList<String>(); |
List<String> files = new ArrayList<String>(); |
174 |
|
|
175 |
findFilesRecursive(Environment.getExternalStorageDirectory().getPath(), files); |
findFilesRecursive(Environment.getExternalStorageDirectory().getPath(), files); |
|
|
|
176 |
|
|
177 |
total = files.size(); |
total = files.size(); |
178 |
|
updateHandler.sendEmptyMessage(0); |
179 |
|
|
180 |
for (String f : files) { |
for (String f : files) { |
181 |
scan.scanFile(f, null); |
scan.scanFile(f, null); |
182 |
} |
} |
198 |
if (checkSdCard() == true) { |
if (checkSdCard() == true) { |
199 |
total = 0; |
total = 0; |
200 |
processed = 0; |
processed = 0; |
201 |
|
isScanning = true; |
202 |
|
|
203 |
scan = new MediaScannerConnection(RescanMain.this, new ScannerClient() ); |
scan = new MediaScannerConnection(RescanMain.this, new ScannerClient() ); |
204 |
scan.connect(); |
scan.connect(); |
222 |
public void onScanCompleted(String path, Uri uri) { |
public void onScanCompleted(String path, Uri uri) { |
223 |
//Log.v(TAG, "scanCompleted " + path + " " + uri); |
//Log.v(TAG, "scanCompleted " + path + " " + uri); |
224 |
processed++; |
processed++; |
|
updateHandler.sendEmptyMessage(0); |
|
225 |
} |
} |
226 |
} |
} |
227 |
} |
} |