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:id="@+id/single_upload_fragment_container"
|
||||||
android:layout_width="match_parent"
|
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>
|
</FrameLayout>
|
||||||
|
|
@ -3,7 +3,13 @@
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
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
|
<FrameLayout
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,13 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_gravity="fill"
|
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
|
<EditText
|
||||||
android:id="@+id/titleEdit"
|
android:id="@+id/titleEdit"
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
|
android:id="@+id/uploadOverlay"
|
||||||
android:layout_width="fill_parent"
|
android:layout_width="fill_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center|bottom"
|
android:layout_gravity="center|bottom"
|
||||||
|
|
|
||||||
|
|
@ -17,18 +17,23 @@ import com.actionbarsherlock.view.MenuItem;
|
||||||
import org.wikimedia.commons.auth.*;
|
import org.wikimedia.commons.auth.*;
|
||||||
import org.wikimedia.commons.contributions.*;
|
import org.wikimedia.commons.contributions.*;
|
||||||
import org.wikimedia.commons.media.*;
|
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
|
public class MultipleShareActivity
|
||||||
extends AuthenticatedActivity
|
extends AuthenticatedActivity
|
||||||
implements MediaDetailPagerFragment.MediaDetailProvider,
|
implements MediaDetailPagerFragment.MediaDetailProvider,
|
||||||
AdapterView.OnItemClickListener,
|
AdapterView.OnItemClickListener,
|
||||||
FragmentManager.OnBackStackChangedListener,
|
FragmentManager.OnBackStackChangedListener,
|
||||||
MultipleUploadListFragment.OnMultipleUploadInitiatedHandler {
|
MultipleUploadListFragment.OnMultipleUploadInitiatedHandler,
|
||||||
|
CategorizationFragment.OnCategoriesSaveHandler {
|
||||||
private CommonsApplication app;
|
private CommonsApplication app;
|
||||||
private ArrayList<Contribution> photosList = null;
|
private ArrayList<Contribution> photosList = null;
|
||||||
|
|
||||||
private MultipleUploadListFragment uploadsList;
|
private MultipleUploadListFragment uploadsList;
|
||||||
private MediaDetailPagerFragment mediaDetails;
|
private MediaDetailPagerFragment mediaDetails;
|
||||||
|
private CategorizationFragment categorizationFragment;
|
||||||
|
|
||||||
|
|
||||||
public MultipleShareActivity() {
|
public MultipleShareActivity() {
|
||||||
|
|
@ -61,6 +66,26 @@ public class MultipleShareActivity
|
||||||
public void OnMultipleUploadInitiated() {
|
public void OnMultipleUploadInitiated() {
|
||||||
StartMultipleUploadTask startUploads = new StartMultipleUploadTask();
|
StartMultipleUploadTask startUploads = new StartMultipleUploadTask();
|
||||||
Utils.executeAsyncTask(startUploads);
|
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> {
|
private class StartMultipleUploadTask extends AsyncTask<Void, Integer, Void> {
|
||||||
|
|
@ -115,7 +140,6 @@ public class MultipleShareActivity
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG);
|
Toast startingToast = Toast.makeText(getApplicationContext(), R.string.uploading_started, Toast.LENGTH_LONG);
|
||||||
startingToast.show();
|
startingToast.show();
|
||||||
finish();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@ public class MultipleUploadListFragment extends SherlockFragment {
|
||||||
|
|
||||||
ImageView image;
|
ImageView image;
|
||||||
TextView title;
|
TextView title;
|
||||||
|
|
||||||
|
RelativeLayout overlay;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PhotoDisplayAdapter extends BaseAdapter {
|
private class PhotoDisplayAdapter extends BaseAdapter {
|
||||||
|
|
@ -65,6 +67,7 @@ public class MultipleUploadListFragment extends SherlockFragment {
|
||||||
holder = new UploadHolderView();
|
holder = new UploadHolderView();
|
||||||
holder.image = (ImageView) view.findViewById(R.id.uploadImage);
|
holder.image = (ImageView) view.findViewById(R.id.uploadImage);
|
||||||
holder.title = (TextView) view.findViewById(R.id.uploadTitle);
|
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));
|
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.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;
|
return view;
|
||||||
|
|
||||||
|
|
@ -126,7 +134,7 @@ public class MultipleUploadListFragment extends SherlockFragment {
|
||||||
} else {
|
} else {
|
||||||
baseTitle.setVisibility(View.VISIBLE);
|
baseTitle.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
photosAdapter.notifyDataSetInvalidated();
|
photosAdapter.notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue