mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Added menu option to Upload from Gallery
This commit is contained in:
parent
86711188e1
commit
999b8a0c0e
5 changed files with 47 additions and 3 deletions
|
|
@ -43,6 +43,7 @@
|
||||||
android:name=".contributions.ContributionsActivity"
|
android:name=".contributions.ContributionsActivity"
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
|
android:uiOptions="splitActionBarWhenNarrow"
|
||||||
>
|
>
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<category android:name="android.intent.category.LAUNCHER"/>
|
<category android:name="android.intent.category.LAUNCHER"/>
|
||||||
|
|
|
||||||
|
|
@ -39,4 +39,5 @@
|
||||||
<string name="title_activity_contributions">My Contributions</string>
|
<string name="title_activity_contributions">My Contributions</string>
|
||||||
<string name="contribution_state_queued">Queued</string>
|
<string name="contribution_state_queued">Queued</string>
|
||||||
<string name="contribution_state_in_progress">Uploading</string>
|
<string name="contribution_state_in_progress">Uploading</string>
|
||||||
|
<string name="menu_from_gallery">From Gallery</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
@ -37,8 +37,8 @@ public class ImageLoaderTask extends AsyncTask<Uri, String, Bitmap> {
|
||||||
Cursor cursor = view.getContext().getContentResolver().query(photoUri,
|
Cursor cursor = view.getContext().getContentResolver().query(photoUri,
|
||||||
new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, null, null, null);
|
new String[] { MediaStore.Images.ImageColumns.ORIENTATION }, null, null, null);
|
||||||
|
|
||||||
if (cursor.getCount() != 1) {
|
if (cursor == null || cursor.getCount() != 1) {
|
||||||
return -1;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
cursor.moveToFirst();
|
cursor.moveToFirst();
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ public class UploadService extends IntentService {
|
||||||
if(mimeType.startsWith("image/")) {
|
if(mimeType.startsWith("image/")) {
|
||||||
Cursor cursor = this.getContentResolver().query(mediaUri,
|
Cursor cursor = this.getContentResolver().query(mediaUri,
|
||||||
new String[]{MediaStore.Images.ImageColumns.DATE_TAKEN}, null, null, null);
|
new String[]{MediaStore.Images.ImageColumns.DATE_TAKEN}, null, null, null);
|
||||||
if(cursor.getCount() != 0) {
|
if(cursor != null && cursor.getCount() != 0) {
|
||||||
cursor.moveToFirst();
|
cursor.moveToFirst();
|
||||||
dateCreated = new Date(cursor.getLong(0));
|
dateCreated = new Date(cursor.getLong(0));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,15 @@ import android.os.Bundle;
|
||||||
import android.support.v4.content.*;
|
import android.support.v4.content.*;
|
||||||
import android.support.v4.widget.CursorAdapter;
|
import android.support.v4.widget.CursorAdapter;
|
||||||
import android.support.v4.widget.SimpleCursorAdapter;
|
import android.support.v4.widget.SimpleCursorAdapter;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
import com.actionbarsherlock.app.SherlockFragmentActivity;
|
||||||
|
import com.actionbarsherlock.view.Menu;
|
||||||
|
import com.actionbarsherlock.view.MenuItem;
|
||||||
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
||||||
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||||
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||||
|
|
@ -27,6 +30,7 @@ import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
||||||
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
|
||||||
import org.wikimedia.commons.ImageLoaderTask;
|
import org.wikimedia.commons.ImageLoaderTask;
|
||||||
import org.wikimedia.commons.R;
|
import org.wikimedia.commons.R;
|
||||||
|
import org.wikimedia.commons.ShareActivity;
|
||||||
import org.wikimedia.commons.UploadService;
|
import org.wikimedia.commons.UploadService;
|
||||||
import org.wikimedia.commons.auth.AuthenticatedActivity;
|
import org.wikimedia.commons.auth.AuthenticatedActivity;
|
||||||
import org.wikimedia.commons.auth.WikiAccountAuthenticator;
|
import org.wikimedia.commons.auth.WikiAccountAuthenticator;
|
||||||
|
|
@ -37,6 +41,8 @@ import java.util.Date;
|
||||||
// Inherit from SherlockFragmentActivity but not use Fragments. Because Loaders are available only from FragmentActivities
|
// Inherit from SherlockFragmentActivity but not use Fragments. Because Loaders are available only from FragmentActivities
|
||||||
public class ContributionsActivity extends AuthenticatedActivity implements LoaderManager.LoaderCallbacks<Cursor> {
|
public class ContributionsActivity extends AuthenticatedActivity implements LoaderManager.LoaderCallbacks<Cursor> {
|
||||||
|
|
||||||
|
private final static int SELECT_FROM_GALLERY = 1;
|
||||||
|
|
||||||
public ContributionsActivity() {
|
public ContributionsActivity() {
|
||||||
super(WikiAccountAuthenticator.COMMONS_ACCOUNT_TYPE);
|
super(WikiAccountAuthenticator.COMMONS_ACCOUNT_TYPE);
|
||||||
}
|
}
|
||||||
|
|
@ -153,6 +159,42 @@ public class ContributionsActivity extends AuthenticatedActivity implements Load
|
||||||
requestAuthToken();
|
requestAuthToken();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
switch(requestCode) {
|
||||||
|
case SELECT_FROM_GALLERY:
|
||||||
|
if(resultCode == RESULT_OK) {
|
||||||
|
Intent shareIntent = new Intent(this, ShareActivity.class);
|
||||||
|
shareIntent.setAction(Intent.ACTION_SEND);
|
||||||
|
Log.d("Commons", "Type is " + data.getType() + " Uri is " + data.getData());
|
||||||
|
shareIntent.setType("image/*"); //FIXME: Find out appropriate mime type
|
||||||
|
shareIntent.putExtra(Intent.EXTRA_STREAM, data.getData());
|
||||||
|
startActivity(shareIntent);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
|
switch(item.getItemId()) {
|
||||||
|
case R.id.menu_from_gallery:
|
||||||
|
Intent pickImageIntent = new Intent(Intent.ACTION_GET_CONTENT);
|
||||||
|
pickImageIntent.setType("image/*");
|
||||||
|
startActivityForResult(pickImageIntent, SELECT_FROM_GALLERY);
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return super.onOptionsItemSelected(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
|
getSupportMenuInflater().inflate(R.menu.activity_contributions, menu);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
|
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
|
||||||
return new CursorLoader(this, ContributionsContentProvider.BASE_URI, CONTRIBUTIONS_PROJECTION, CONTRIBUTION_SELECTION, null, CONTRIBUTION_SORT);
|
return new CursorLoader(this, ContributionsContentProvider.BASE_URI, CONTRIBUTIONS_PROJECTION, CONTRIBUTION_SELECTION, null, CONTRIBUTION_SORT);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue