mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +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 {
|
||||
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();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import android.os.Environment;
|
|||
import android.provider.MediaStore;
|
||||
import android.util.Log;
|
||||
import com.actionbarsherlock.app.SherlockFragment;
|
||||
import org.wikimedia.commons.campaigns.Campaign;
|
||||
import org.wikimedia.commons.upload.ShareActivity;
|
||||
import org.wikimedia.commons.upload.UploadService;
|
||||
|
||||
|
|
@ -18,13 +19,15 @@ import java.util.Date;
|
|||
public class ContributionController {
|
||||
private SherlockFragment fragment;
|
||||
private Activity activity;
|
||||
private Campaign campaign;
|
||||
|
||||
private final static int SELECT_FROM_GALLERY = 1;
|
||||
private final static int SELECT_FROM_CAMERA = 2;
|
||||
|
||||
public ContributionController(SherlockFragment fragment) {
|
||||
public ContributionController(SherlockFragment fragment, Campaign campaign) {
|
||||
this.fragment = fragment;
|
||||
this.activity = fragment.getActivity();
|
||||
this.campaign = campaign;
|
||||
}
|
||||
|
||||
// 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) {
|
||||
Intent shareIntent = new Intent(activity, ShareActivity.class);
|
||||
shareIntent.setAction(Intent.ACTION_SEND);
|
||||
shareIntent.putExtra(UploadService.EXTRA_CAMPAIGN, campaign);
|
||||
switch(requestCode) {
|
||||
case SELECT_FROM_GALLERY:
|
||||
shareIntent.setType(activity.getContentResolver().getType(data.getData()));
|
||||
|
|
@ -85,11 +89,13 @@ public class ContributionController {
|
|||
|
||||
public void saveState(Bundle outState) {
|
||||
outState.putParcelable("lastGeneratedCaptureURI", lastGeneratedCaptureURI);
|
||||
outState.putSerializable("campaign", campaign);
|
||||
}
|
||||
|
||||
public void loadState(Bundle savedInstanceState) {
|
||||
if(savedInstanceState != null) {
|
||||
lastGeneratedCaptureURI = (Uri) savedInstanceState.getParcelable("lastGeneratedCaptureURI");
|
||||
campaign = (Campaign) savedInstanceState.getSerializable("campaign");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ public class ContributionsActivity
|
|||
implements LoaderManager.LoaderCallbacks<Object>,
|
||||
AdapterView.OnItemClickListener,
|
||||
MediaDetailPagerFragment.MediaDetailProvider,
|
||||
ContributionsListFragment.CurrentCampaignProvider,
|
||||
FragmentManager.OnBackStackChangedListener {
|
||||
|
||||
|
||||
|
|
@ -256,4 +257,8 @@ public class ContributionsActivity
|
|||
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.R;
|
||||
import org.wikimedia.commons.campaigns.Campaign;
|
||||
|
||||
public class ContributionsListFragment extends SherlockFragment {
|
||||
|
||||
public interface CurrentCampaignProvider {
|
||||
Campaign getCurrentCampaign();
|
||||
}
|
||||
|
||||
private GridView contributionsList;
|
||||
private TextView waitingMessage;
|
||||
private TextView emptyMessage;
|
||||
private Campaign campaign;
|
||||
|
||||
private ContributionController controller;
|
||||
|
||||
|
|
@ -113,7 +119,7 @@ public class ContributionsListFragment extends SherlockFragment {
|
|||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
controller = new ContributionController(this);
|
||||
controller = new ContributionController(this, ((CurrentCampaignProvider)getActivity()).getCurrentCampaign());
|
||||
controller.loadState(savedInstanceState);
|
||||
|
||||
contributionsList = (GridView)getView().findViewById(R.id.contributionsList);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import com.actionbarsherlock.view.MenuItem;
|
|||
import android.widget.*;
|
||||
|
||||
import org.wikimedia.commons.*;
|
||||
import org.wikimedia.commons.campaigns.Campaign;
|
||||
import org.wikimedia.commons.category.CategorizationFragment;
|
||||
import org.wikimedia.commons.contributions.*;
|
||||
import org.wikimedia.commons.auth.*;
|
||||
|
|
@ -149,7 +150,11 @@ public class ShareActivity
|
|||
@Override
|
||||
public void onCreate(Bundle 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);
|
||||
|
||||
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 EXTRA_SOURCE = EXTRA_PREFIX + ".source";
|
||||
public static final String EXTRA_CAMPAIGN = EXTRA_PREFIX + ".campaign";
|
||||
|
||||
private NotificationManager notificationManager;
|
||||
private ContentProviderClient contributionsProviderClient;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue