mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Let people upload to the campaign they are looking at
FIXME: Show progress of upload as it happens, or at least direct them to a place where that can happen Change-Id: I7695fcb9de7d6c2ffdfa2bc60e116a20a6298e31
This commit is contained in:
parent
884709b470
commit
5ad8171d51
6 changed files with 27 additions and 4 deletions
|
|
@ -38,7 +38,7 @@ public class CampaignContribution extends Contribution {
|
||||||
} else {
|
} else {
|
||||||
buffer.append("{{subst:unc}}\n");
|
buffer.append("{{subst:unc}}\n");
|
||||||
}
|
}
|
||||||
buffer.append("[[Category:").append(campaign.getTrackingCategory()).append("\n");
|
buffer.append("[[Category:").append(campaign.getTrackingCategory()).append("]]").append("\n");
|
||||||
return buffer.toString();
|
return buffer.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import android.os.Environment;
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import com.actionbarsherlock.app.SherlockFragment;
|
import com.actionbarsherlock.app.SherlockFragment;
|
||||||
|
import org.wikimedia.commons.campaigns.Campaign;
|
||||||
import org.wikimedia.commons.upload.ShareActivity;
|
import org.wikimedia.commons.upload.ShareActivity;
|
||||||
import org.wikimedia.commons.upload.UploadService;
|
import org.wikimedia.commons.upload.UploadService;
|
||||||
|
|
||||||
|
|
@ -18,13 +19,15 @@ import java.util.Date;
|
||||||
public class ContributionController {
|
public class ContributionController {
|
||||||
private SherlockFragment fragment;
|
private SherlockFragment fragment;
|
||||||
private Activity activity;
|
private Activity activity;
|
||||||
|
private Campaign campaign;
|
||||||
|
|
||||||
private final static int SELECT_FROM_GALLERY = 1;
|
private final static int SELECT_FROM_GALLERY = 1;
|
||||||
private final static int SELECT_FROM_CAMERA = 2;
|
private final static int SELECT_FROM_CAMERA = 2;
|
||||||
|
|
||||||
public ContributionController(SherlockFragment fragment) {
|
public ContributionController(SherlockFragment fragment, Campaign campaign) {
|
||||||
this.fragment = fragment;
|
this.fragment = fragment;
|
||||||
this.activity = fragment.getActivity();
|
this.activity = fragment.getActivity();
|
||||||
|
this.campaign = campaign;
|
||||||
}
|
}
|
||||||
|
|
||||||
// See http://stackoverflow.com/a/5054673/17865 for why this is done
|
// See http://stackoverflow.com/a/5054673/17865 for why this is done
|
||||||
|
|
@ -68,6 +71,7 @@ public class ContributionController {
|
||||||
public void handleImagePicked(int requestCode, Intent data) {
|
public void handleImagePicked(int requestCode, Intent data) {
|
||||||
Intent shareIntent = new Intent(activity, ShareActivity.class);
|
Intent shareIntent = new Intent(activity, ShareActivity.class);
|
||||||
shareIntent.setAction(Intent.ACTION_SEND);
|
shareIntent.setAction(Intent.ACTION_SEND);
|
||||||
|
shareIntent.putExtra(UploadService.EXTRA_CAMPAIGN, campaign);
|
||||||
switch(requestCode) {
|
switch(requestCode) {
|
||||||
case SELECT_FROM_GALLERY:
|
case SELECT_FROM_GALLERY:
|
||||||
shareIntent.setType(activity.getContentResolver().getType(data.getData()));
|
shareIntent.setType(activity.getContentResolver().getType(data.getData()));
|
||||||
|
|
@ -85,11 +89,13 @@ public class ContributionController {
|
||||||
|
|
||||||
public void saveState(Bundle outState) {
|
public void saveState(Bundle outState) {
|
||||||
outState.putParcelable("lastGeneratedCaptureURI", lastGeneratedCaptureURI);
|
outState.putParcelable("lastGeneratedCaptureURI", lastGeneratedCaptureURI);
|
||||||
|
outState.putSerializable("campaign", campaign);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadState(Bundle savedInstanceState) {
|
public void loadState(Bundle savedInstanceState) {
|
||||||
if(savedInstanceState != null) {
|
if(savedInstanceState != null) {
|
||||||
lastGeneratedCaptureURI = (Uri) savedInstanceState.getParcelable("lastGeneratedCaptureURI");
|
lastGeneratedCaptureURI = (Uri) savedInstanceState.getParcelable("lastGeneratedCaptureURI");
|
||||||
|
campaign = (Campaign) savedInstanceState.getSerializable("campaign");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@ public class ContributionsActivity
|
||||||
implements LoaderManager.LoaderCallbacks<Object>,
|
implements LoaderManager.LoaderCallbacks<Object>,
|
||||||
AdapterView.OnItemClickListener,
|
AdapterView.OnItemClickListener,
|
||||||
MediaDetailPagerFragment.MediaDetailProvider,
|
MediaDetailPagerFragment.MediaDetailProvider,
|
||||||
|
ContributionsListFragment.CurrentCampaignProvider,
|
||||||
FragmentManager.OnBackStackChangedListener {
|
FragmentManager.OnBackStackChangedListener {
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -256,4 +257,8 @@ public class ContributionsActivity
|
||||||
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Campaign getCurrentCampaign() {
|
||||||
|
return campaign;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,12 +19,18 @@ import com.actionbarsherlock.view.MenuItem;
|
||||||
|
|
||||||
import org.wikimedia.commons.*;
|
import org.wikimedia.commons.*;
|
||||||
import org.wikimedia.commons.R;
|
import org.wikimedia.commons.R;
|
||||||
|
import org.wikimedia.commons.campaigns.Campaign;
|
||||||
|
|
||||||
public class ContributionsListFragment extends SherlockFragment {
|
public class ContributionsListFragment extends SherlockFragment {
|
||||||
|
|
||||||
|
public interface CurrentCampaignProvider {
|
||||||
|
Campaign getCurrentCampaign();
|
||||||
|
}
|
||||||
|
|
||||||
private GridView contributionsList;
|
private GridView contributionsList;
|
||||||
private TextView waitingMessage;
|
private TextView waitingMessage;
|
||||||
private TextView emptyMessage;
|
private TextView emptyMessage;
|
||||||
|
private Campaign campaign;
|
||||||
|
|
||||||
private ContributionController controller;
|
private ContributionController controller;
|
||||||
|
|
||||||
|
|
@ -113,7 +119,7 @@ public class ContributionsListFragment extends SherlockFragment {
|
||||||
public void onActivityCreated(Bundle savedInstanceState) {
|
public void onActivityCreated(Bundle savedInstanceState) {
|
||||||
super.onActivityCreated(savedInstanceState);
|
super.onActivityCreated(savedInstanceState);
|
||||||
|
|
||||||
controller = new ContributionController(this);
|
controller = new ContributionController(this, ((CurrentCampaignProvider)getActivity()).getCurrentCampaign());
|
||||||
controller.loadState(savedInstanceState);
|
controller.loadState(savedInstanceState);
|
||||||
|
|
||||||
contributionsList = (GridView)getView().findViewById(R.id.contributionsList);
|
contributionsList = (GridView)getView().findViewById(R.id.contributionsList);
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import com.actionbarsherlock.view.MenuItem;
|
||||||
import android.widget.*;
|
import android.widget.*;
|
||||||
|
|
||||||
import org.wikimedia.commons.*;
|
import org.wikimedia.commons.*;
|
||||||
|
import org.wikimedia.commons.campaigns.Campaign;
|
||||||
import org.wikimedia.commons.category.CategorizationFragment;
|
import org.wikimedia.commons.category.CategorizationFragment;
|
||||||
import org.wikimedia.commons.contributions.*;
|
import org.wikimedia.commons.contributions.*;
|
||||||
import org.wikimedia.commons.auth.*;
|
import org.wikimedia.commons.auth.*;
|
||||||
|
|
@ -149,7 +150,11 @@ public class ShareActivity
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
uploadController = new UploadController(this);
|
Campaign campaign = null;
|
||||||
|
if(getIntent().hasExtra(UploadService.EXTRA_CAMPAIGN)) {
|
||||||
|
campaign = (Campaign) getIntent().getSerializableExtra(UploadService.EXTRA_CAMPAIGN);
|
||||||
|
}
|
||||||
|
uploadController = new UploadController(this, campaign);
|
||||||
setContentView(R.layout.activity_share);
|
setContentView(R.layout.activity_share);
|
||||||
|
|
||||||
app = (CommonsApplication)this.getApplicationContext();
|
app = (CommonsApplication)this.getApplicationContext();
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ public class UploadService extends HandlerService<Contribution> {
|
||||||
|
|
||||||
public static final String ACTION_START_SERVICE = EXTRA_PREFIX + ".upload";
|
public static final String ACTION_START_SERVICE = EXTRA_PREFIX + ".upload";
|
||||||
public static final String EXTRA_SOURCE = EXTRA_PREFIX + ".source";
|
public static final String EXTRA_SOURCE = EXTRA_PREFIX + ".source";
|
||||||
|
public static final String EXTRA_CAMPAIGN = EXTRA_PREFIX + ".campaign";
|
||||||
|
|
||||||
private NotificationManager notificationManager;
|
private NotificationManager notificationManager;
|
||||||
private ContentProviderClient contributionsProviderClient;
|
private ContentProviderClient contributionsProviderClient;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue