mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Use Android Universal Image Loader library for loading images
This commit is contained in:
parent
6c7997fdfa
commit
fe47b00081
3 changed files with 50 additions and 2 deletions
|
|
@ -35,6 +35,11 @@
|
||||||
<groupId>de.akquinet.android.androlog</groupId>
|
<groupId>de.akquinet.android.androlog</groupId>
|
||||||
<artifactId>androlog</artifactId>
|
<artifactId>androlog</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.nostra13.universalimageloader</groupId>
|
||||||
|
<artifactId>universal-image-loader</artifactId>
|
||||||
|
<version>1.7.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,21 @@
|
||||||
package org.wikimedia.commons;
|
package org.wikimedia.commons;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
import javax.xml.transform.*;
|
import javax.xml.transform.*;
|
||||||
|
|
||||||
import android.accounts.*;
|
import android.accounts.*;
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
import android.net.Uri;
|
||||||
import android.os.AsyncTask;
|
import android.os.AsyncTask;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
|
||||||
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||||
|
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||||
|
import com.nostra13.universalimageloader.core.download.ImageDownloader;
|
||||||
import org.mediawiki.api.*;
|
import org.mediawiki.api.*;
|
||||||
import org.w3c.dom.Node;
|
import org.w3c.dom.Node;
|
||||||
import org.wikimedia.commons.auth.WikiAccountAuthenticator;
|
import org.wikimedia.commons.auth.WikiAccountAuthenticator;
|
||||||
|
|
@ -39,6 +45,21 @@ public class CommonsApplication extends Application {
|
||||||
return dbOpenHelper;
|
return dbOpenHelper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class ContentUriImageDownloader extends ImageDownloader {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected InputStream getStreamFromNetwork(URI uri) throws IOException {
|
||||||
|
return super.getStream(uri); // Pass back to parent code, which handles http, https, etc
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected InputStream getStreamFromOtherSource(URI imageUri) throws IOException {
|
||||||
|
if(imageUri.getScheme().equals("content")) {
|
||||||
|
return getContentResolver().openInputStream(Uri.parse(imageUri.toString()));
|
||||||
|
}
|
||||||
|
throw new RuntimeException("Not a content URI: " + imageUri);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate() {
|
public void onCreate() {
|
||||||
|
|
@ -47,6 +68,11 @@ public class CommonsApplication extends Application {
|
||||||
// Fire progress callbacks for every 3% of uploaded content
|
// Fire progress callbacks for every 3% of uploaded content
|
||||||
System.setProperty("in.yuvi.http.fluent.PROGRESS_TRIGGER_THRESHOLD", "3.0");
|
System.setProperty("in.yuvi.http.fluent.PROGRESS_TRIGGER_THRESHOLD", "3.0");
|
||||||
api = createMWApi();
|
api = createMWApi();
|
||||||
|
|
||||||
|
|
||||||
|
ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(getApplicationContext())
|
||||||
|
.imageDownloader(new ContentUriImageDownloader()).build();
|
||||||
|
ImageLoader.getInstance().init(imageLoaderConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MWApi getApi() {
|
public MWApi getApi() {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
package org.wikimedia.commons.contributions;
|
package org.wikimedia.commons.contributions;
|
||||||
|
|
||||||
|
import android.graphics.Bitmap;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.v4.app.LoaderManager;
|
import android.support.v4.app.LoaderManager;
|
||||||
import android.support.v4.content.CursorLoader;
|
import android.support.v4.content.CursorLoader;
|
||||||
|
|
@ -17,6 +18,13 @@ 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.nostra13.universalimageloader.core.DisplayImageOptions;
|
||||||
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
||||||
|
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
|
||||||
|
import com.nostra13.universalimageloader.core.assist.FailReason;
|
||||||
|
import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
|
||||||
|
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
|
||||||
|
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.UploadService;
|
import org.wikimedia.commons.UploadService;
|
||||||
|
|
@ -50,8 +58,9 @@ public class ContributionsActivity extends AuthenticatedActivity implements Load
|
||||||
ImageView image = (ImageView)view.findViewById(R.id.contributionImage);
|
ImageView image = (ImageView)view.findViewById(R.id.contributionImage);
|
||||||
TextView title = (TextView)view.findViewById(R.id.contributionTitle);
|
TextView title = (TextView)view.findViewById(R.id.contributionTitle);
|
||||||
|
|
||||||
ImageLoaderTask imageLoader = new ImageLoaderTask(image);
|
Uri imageUri = Uri.parse(cursor.getString(COLUMN_LOCALURI));
|
||||||
imageLoader.execute(Uri.parse(cursor.getString(COLUMN_LOCALURI)));
|
|
||||||
|
ImageLoader.getInstance().displayImage(imageUri.toString(), image, contributionDisplayOptions);
|
||||||
|
|
||||||
title.setText(cursor.getString(COLUMN_FILENAME));
|
title.setText(cursor.getString(COLUMN_FILENAME));
|
||||||
|
|
||||||
|
|
@ -60,8 +69,11 @@ public class ContributionsActivity extends AuthenticatedActivity implements Load
|
||||||
private LocalBroadcastManager localBroadcastManager;
|
private LocalBroadcastManager localBroadcastManager;
|
||||||
|
|
||||||
private ListView contributionsList;
|
private ListView contributionsList;
|
||||||
|
|
||||||
private ContributionAdapter contributionsAdapter;
|
private ContributionAdapter contributionsAdapter;
|
||||||
|
|
||||||
|
private DisplayImageOptions contributionDisplayOptions;
|
||||||
|
|
||||||
private String[] broadcastsToReceive = {
|
private String[] broadcastsToReceive = {
|
||||||
UploadService.INTENT_CONTRIBUTION_STATE_CHANGED
|
UploadService.INTENT_CONTRIBUTION_STATE_CHANGED
|
||||||
};
|
};
|
||||||
|
|
@ -100,6 +112,11 @@ public class ContributionsActivity extends AuthenticatedActivity implements Load
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onAuthCookieAcquired(String authCookie) {
|
protected void onAuthCookieAcquired(String authCookie) {
|
||||||
|
contributionDisplayOptions = new DisplayImageOptions.Builder().cacheInMemory()
|
||||||
|
.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
|
||||||
|
.displayer(new FadeInBitmapDisplayer(300))
|
||||||
|
.resetViewBeforeLoading().build();
|
||||||
|
|
||||||
Cursor allContributions = getContentResolver().query(ContributionsContentProvider.BASE_URI, CONTRIBUTIONS_PROJECTION, CONTRIBUTION_SELECTION, null, CONTRIBUTION_SORT);
|
Cursor allContributions = getContentResolver().query(ContributionsContentProvider.BASE_URI, CONTRIBUTIONS_PROJECTION, CONTRIBUTION_SELECTION, null, CONTRIBUTION_SORT);
|
||||||
contributionsAdapter = new ContributionAdapter(this, allContributions, 0);
|
contributionsAdapter = new ContributionAdapter(this, allContributions, 0);
|
||||||
contributionsList.setAdapter(contributionsAdapter);
|
contributionsList.setAdapter(contributionsAdapter);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue