Show images of your contributions (from current device)

This commit is contained in:
YuviPanda 2013-02-02 02:30:51 +05:30
parent d128e74fc8
commit 1ac8d3d879
3 changed files with 42 additions and 10 deletions

View file

@ -3,11 +3,11 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_height="256dp">
<ImageView android:id="@+id/contributionImage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_height="256dp"
android:scaleType="centerCrop"
/>
@ -22,9 +22,7 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#AA000000"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
android:padding="10dp"
android:textColor="#FFFFFFFF"
android:textSize="18dp"
android:typeface="serif" />

View file

@ -13,7 +13,7 @@ import android.util.Log;
import android.view.WindowManager;
import android.widget.*;
class ImageLoaderTask extends AsyncTask<Uri, String, Bitmap> {
public class ImageLoaderTask extends AsyncTask<Uri, String, Bitmap> {
ImageView view;
public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {
@ -83,7 +83,7 @@ class ImageLoaderTask extends AsyncTask<Uri, String, Bitmap> {
return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
}
ImageLoaderTask(ImageView view) {
public ImageLoaderTask(ImageView view) {
this.view = view;
}

View file

@ -1,5 +1,6 @@
package org.wikimedia.commons.contributions;
import android.net.Uri;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
@ -8,20 +9,52 @@ import android.content.*;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.content.*;
import android.support.v4.widget.CursorAdapter;
import android.support.v4.widget.SimpleCursorAdapter;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import org.wikimedia.commons.ImageLoaderTask;
import org.wikimedia.commons.R;
import org.wikimedia.commons.UploadService;
// Inherit from SherlockFragmentActivity but not use Fragments. Because Loaders are available only from FragmentActivities
public class ContributionsActivity extends SherlockFragmentActivity implements LoaderManager.LoaderCallbacks<Cursor> {
private class ContributionAdapter extends CursorAdapter {
private final int COLUMN_FILENAME;
private final int COLUMN_LOCALURI;
public ContributionAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
COLUMN_FILENAME = c.getColumnIndex(Contribution.Table.COLUMN_FILENAME);
COLUMN_LOCALURI = c.getColumnIndex(Contribution.Table.COLUMN_LOCAL_URI);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup viewGroup) {
return getLayoutInflater().inflate(R.layout.layout_contribution, viewGroup, false);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ImageView image = (ImageView)view.findViewById(R.id.contributionImage);
TextView title = (TextView)view.findViewById(R.id.contributionTitle);
ImageLoaderTask imageLoader = new ImageLoaderTask(image);
imageLoader.execute(Uri.parse(cursor.getString(COLUMN_LOCALURI)));
title.setText(cursor.getString(COLUMN_FILENAME));
}
}
private LocalBroadcastManager localBroadcastManager;
private ListView contributionsList;
private SimpleCursorAdapter contributionsAdapter;
private ContributionAdapter contributionsAdapter;
private String[] broadcastsToReceive = {
UploadService.INTENT_CONTRIBUTION_STATE_CHANGED
@ -66,7 +99,8 @@ public class ContributionsActivity extends SherlockFragmentActivity implements L
setContentView(R.layout.activity_contributions);
contributionsList = (ListView)findViewById(R.id.contributionsList);
contributionsAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, null, new String[] { Contribution.Table.COLUMN_FILENAME, Contribution.Table.COLUMN_STATE }, new int[] { android.R.id.text1, android.R.id.text2 }, SimpleCursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
Cursor allContributions = getContentResolver().query(ContributionsContentProvider.BASE_URI, CONTRIBUTIONS_PROJECTION, CONTRIBUTION_SELECTION, null, CONTRIBUTION_SORT);
contributionsAdapter = new ContributionAdapter(this, allContributions, 0);
contributionsList.setAdapter(contributionsAdapter);
getSupportLoaderManager().initLoader(0, null, this);