private boolean execute(DataManager manager, JobContext jc, int cmd, Path path) { boolean result = true; Log.v(TAG, "Execute cmd: " + cmd + " for " + path); long startTime = System.currentTimeMillis(); switch (cmd) { case R.id.action_delete: manager.delete(path); break; case R.id.action_rotate_cw: manager.rotate(path, 90); break; case R.id.action_rotate_ccw: manager.rotate(path, -90); break; case R.id.action_toggle_full_caching: { MediaObject obj = manager.getMediaObject(path); int cacheFlag = obj.getCacheFlag(); if (cacheFlag == MediaObject.CACHE_FLAG_FULL) { cacheFlag = MediaObject.CACHE_FLAG_SCREENNAIL; } else { cacheFlag = MediaObject.CACHE_FLAG_FULL; } obj.cache(cacheFlag); break; } case R.id.action_show_on_map: { MediaItem item = (MediaItem) manager.getMediaObject(path); double latlng[] = new double[2]; item.getLatLong(latlng); if (GalleryUtils.isValidLocation(latlng[0], latlng[1])) { GalleryUtils.showOnMap((Context) mActivity, latlng[0], latlng[1]); } break; } case R.id.action_import: { MediaObject obj = manager.getMediaObject(path); result = obj.Import(); break; } default: throw new AssertionError(); } Log.v( TAG, "It takes " + (System.currentTimeMillis() - startTime) + " ms to execute cmd for " + path); return result; }