From 87c09c344b0c5d03f0c419963396d60ad62512f8 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Sun, 31 Mar 2013 08:41:58 +0530 Subject: [PATCH] Move Multiple upload menu handling code to Fragment --- ....xml => fragment_multiple_upload_list.xml} | 0 .../commons/MultipleShareActivity.java | 19 ++++----- .../commons/MultipleUploadListFragment.java | 39 +++++++++++++++++++ 3 files changed, 46 insertions(+), 12 deletions(-) rename commons/res/menu/{activity_multiple_share.xml => fragment_multiple_upload_list.xml} (100%) diff --git a/commons/res/menu/activity_multiple_share.xml b/commons/res/menu/fragment_multiple_upload_list.xml similarity index 100% rename from commons/res/menu/activity_multiple_share.xml rename to commons/res/menu/fragment_multiple_upload_list.xml diff --git a/commons/src/main/java/org/wikimedia/commons/MultipleShareActivity.java b/commons/src/main/java/org/wikimedia/commons/MultipleShareActivity.java index 0b805d7d9..6bb61341d 100644 --- a/commons/src/main/java/org/wikimedia/commons/MultipleShareActivity.java +++ b/commons/src/main/java/org/wikimedia/commons/MultipleShareActivity.java @@ -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 photosList = null; @@ -57,6 +58,11 @@ public class MultipleShareActivity } + public void OnMultipleUploadInitiated() { + StartMultipleUploadTask startUploads = new StartMultipleUploadTask(); + Utils.executeAsyncTask(startUploads); + } + private class StartMultipleUploadTask extends AsyncTask { 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(); diff --git a/commons/src/main/java/org/wikimedia/commons/MultipleUploadListFragment.java b/commons/src/main/java/org/wikimedia/commons/MultipleUploadListFragment.java index ab409109d..81a36f367 100644 --- a/commons/src/main/java/org/wikimedia/commons/MultipleUploadListFragment.java +++ b/commons/src/main/java/org/wikimedia/commons/MultipleUploadListFragment.java @@ -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); }