Move Multiple upload menu handling code to Fragment

This commit is contained in:
YuviPanda 2013-03-31 08:41:58 +05:30
parent 02658588df
commit 87c09c344b
3 changed files with 46 additions and 12 deletions

View file

@ -22,7 +22,8 @@ public class MultipleShareActivity
extends AuthenticatedActivity
implements MediaDetailPagerFragment.MediaDetailProvider,
AdapterView.OnItemClickListener,
FragmentManager.OnBackStackChangedListener {
FragmentManager.OnBackStackChangedListener,
MultipleUploadListFragment.OnMultipleUploadInitiatedHandler {
private CommonsApplication app;
private ArrayList<Contribution> photosList = null;
@ -57,6 +58,11 @@ public class MultipleShareActivity
}
public void OnMultipleUploadInitiated() {
StartMultipleUploadTask startUploads = new StartMultipleUploadTask();
Utils.executeAsyncTask(startUploads);
}
private class StartMultipleUploadTask extends AsyncTask<Void, Integer, Void> {
ProgressDialog dialog;
@ -127,20 +133,9 @@ public class MultipleShareActivity
}
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.activity_multiple_share, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_upload_multiple:
StartMultipleUploadTask startUploads = new StartMultipleUploadTask();
Utils.executeAsyncTask(startUploads);
return true;
case android.R.id.home:
if(mediaDetails.isVisible()) {
getSupportFragmentManager().popBackStack();

View file

@ -10,6 +10,8 @@ import android.view.*;
import android.view.inputmethod.InputMethodManager;
import android.widget.*;
import com.actionbarsherlock.app.SherlockFragment;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.nostra13.universalimageloader.core.*;
import org.wikimedia.commons.contributions.*;
@ -18,15 +20,22 @@ import org.wikimedia.commons.media.*;
public class MultipleUploadListFragment extends SherlockFragment {
public interface OnMultipleUploadInitiatedHandler {
public void OnMultipleUploadInitiated();
}
private GridView photosGrid;
private PhotoDisplayAdapter photosAdapter;
private EditText baseTitle;
private Point photoSize;
private MediaDetailPagerFragment.MediaDetailProvider detailProvider;
private OnMultipleUploadInitiatedHandler multipleUploadInitiatedHandler;
private DisplayImageOptions uploadDisplayOptions;
private boolean imageOnlyMode;
private static class UploadHolderView {
Uri imageUri;
@ -110,6 +119,16 @@ public class MultipleUploadListFragment extends SherlockFragment {
}
}
public void setImageOnlyMode(boolean mode) {
imageOnlyMode = mode;
if(imageOnlyMode) {
baseTitle.setVisibility(View.GONE);
} else {
baseTitle.setVisibility(View.VISIBLE);
}
photosAdapter.notifyDataSetInvalidated();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_multiple_uploads_list, null);
@ -152,12 +171,32 @@ public class MultipleUploadListFragment extends SherlockFragment {
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, com.actionbarsherlock.view.MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menu.clear();
inflater.inflate(R.menu.fragment_multiple_upload_list, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_upload_multiple:
multipleUploadInitiatedHandler.OnMultipleUploadInitiated();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uploadDisplayOptions = Utils.getGenericDisplayOptions().build();
detailProvider = (MediaDetailPagerFragment.MediaDetailProvider)getActivity();
multipleUploadInitiatedHandler = (OnMultipleUploadInitiatedHandler) getActivity();
setHasOptionsMenu(true);
}