Add post-upload categorization to Multiple Upload

Some of the related changes snuck in last commit too
This commit is contained in:
YuviPanda 2013-03-31 09:17:21 +05:30
parent 87c09c344b
commit da6e035878
6 changed files with 51 additions and 11 deletions

View file

@ -16,11 +16,6 @@
android:id="@+id/single_upload_fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#AA000000"
android:paddingBottom="8dip"
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:paddingTop="8dip"
/>
</FrameLayout>

View file

@ -3,7 +3,13 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:background="#AA000000"
android:paddingBottom="8dip"
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:paddingTop="8dip"
>
<FrameLayout
android:layout_height="wrap_content"

View file

@ -4,7 +4,13 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="fill"
android:orientation="vertical">
android:orientation="vertical"
android:background="#AA000000"
android:paddingBottom="8dip"
android:paddingLeft="16dip"
android:paddingRight="16dip"
android:paddingTop="8dip"
>
<EditText
android:id="@+id/titleEdit"

View file

@ -15,6 +15,7 @@
/>
<RelativeLayout
android:id="@+id/uploadOverlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center|bottom"

View file

@ -17,18 +17,23 @@ import com.actionbarsherlock.view.MenuItem;
import org.wikimedia.commons.auth.*;
import org.wikimedia.commons.contributions.*;
import org.wikimedia.commons.media.*;
import org.wikimedia.commons.modifications.CategoryModifier;
import org.wikimedia.commons.modifications.ModificationsContentProvider;
import org.wikimedia.commons.modifications.ModifierSequence;
public class MultipleShareActivity
extends AuthenticatedActivity
implements MediaDetailPagerFragment.MediaDetailProvider,
AdapterView.OnItemClickListener,
FragmentManager.OnBackStackChangedListener,
MultipleUploadListFragment.OnMultipleUploadInitiatedHandler {
MultipleUploadListFragment.OnMultipleUploadInitiatedHandler,
CategorizationFragment.OnCategoriesSaveHandler {
private CommonsApplication app;
private ArrayList<Contribution> photosList = null;
private MultipleUploadListFragment uploadsList;
private MediaDetailPagerFragment mediaDetails;
private CategorizationFragment categorizationFragment;
public MultipleShareActivity() {
@ -61,6 +66,26 @@ public class MultipleShareActivity
public void OnMultipleUploadInitiated() {
StartMultipleUploadTask startUploads = new StartMultipleUploadTask();
Utils.executeAsyncTask(startUploads);
uploadsList.setImageOnlyMode(true);
categorizationFragment = (CategorizationFragment) this.getSupportFragmentManager().findFragmentByTag("categorization");
if(categorizationFragment == null) {
categorizationFragment = new CategorizationFragment();
}
getSupportFragmentManager().beginTransaction()
.add(R.id.uploadsFragmentContainer, categorizationFragment, "categorization")
.commit();
}
public void onCategoriesSave(ArrayList<String> categories) {
ContentProviderClient client = getContentResolver().acquireContentProviderClient(ModificationsContentProvider.AUTHORITY);
for(Contribution contribution: photosList) {
ModifierSequence categoriesSequence = new ModifierSequence(contribution.getContentUri());
categoriesSequence.queueModifier(new CategoryModifier(categories.toArray(new String[]{})));
categoriesSequence.setContentProviderClient(client);
categoriesSequence.save();
}
finish();
}
private class StartMultipleUploadTask extends AsyncTask<Void, Integer, Void> {
@ -115,7 +140,6 @@ public class MultipleShareActivity
dialog.dismiss();
Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG);
startingToast.show();
finish();
}
}

View file

@ -41,6 +41,8 @@ public class MultipleUploadListFragment extends SherlockFragment {
ImageView image;
TextView title;
RelativeLayout overlay;
}
private class PhotoDisplayAdapter extends BaseAdapter {
@ -65,6 +67,7 @@ public class MultipleUploadListFragment extends SherlockFragment {
holder = new UploadHolderView();
holder.image = (ImageView) view.findViewById(R.id.uploadImage);
holder.title = (TextView) view.findViewById(R.id.uploadTitle);
holder.overlay = (RelativeLayout) view.findViewById(R.id.uploadOverlay);
holder.image.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, photoSize.y));
@ -81,7 +84,12 @@ public class MultipleUploadListFragment extends SherlockFragment {
holder.imageUri = up.getLocalUri();
}
holder.title.setText(up.getFilename());
if(!imageOnlyMode) {
holder.overlay.setVisibility(View.VISIBLE);
holder.title.setText(up.getFilename());
} else {
holder.overlay.setVisibility(View.GONE);
}
return view;
@ -126,7 +134,7 @@ public class MultipleUploadListFragment extends SherlockFragment {
} else {
baseTitle.setVisibility(View.VISIBLE);
}
photosAdapter.notifyDataSetInvalidated();
photosAdapter.notifyDataSetChanged();
}
@Override