mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
Add post-upload categorization to Multiple Upload
Some of the related changes snuck in last commit too
This commit is contained in:
parent
87c09c344b
commit
da6e035878
6 changed files with 51 additions and 11 deletions
|
|
@ -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>
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
/>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/uploadOverlay"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center|bottom"
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
||||
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue