From 7f111e76f4e59a98d4720b23859c23a390425732 Mon Sep 17 00:00:00 2001 From: "srowen@gmail.com" Date: Mon, 1 Apr 2013 10:38:10 +0000 Subject: [PATCH] App picker can be further simplified git-svn-id: https://zxing.googlecode.com/svn/trunk@2617 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- .../client/android/share/AppPickerActivity.java | 15 +++++---------- .../android/share/LoadPackagesAsyncTask.java | 11 +++++------ 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/android/src/com/google/zxing/client/android/share/AppPickerActivity.java b/android/src/com/google/zxing/client/android/share/AppPickerActivity.java index 86ff9ce45..faa0e284b 100644 --- a/android/src/com/google/zxing/client/android/share/AppPickerActivity.java +++ b/android/src/com/google/zxing/client/android/share/AppPickerActivity.java @@ -20,32 +20,26 @@ import android.app.ListActivity; import android.content.Intent; import android.provider.Browser; import android.view.View; +import android.widget.ListAdapter; import android.widget.ListView; import com.google.zxing.client.android.common.executor.AsyncTaskExecInterface; import com.google.zxing.client.android.common.executor.AsyncTaskExecManager; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - public final class AppPickerActivity extends ListActivity { - private final List labelsPackages; private LoadPackagesAsyncTask backgroundTask; private final AsyncTaskExecInterface taskExec; public AppPickerActivity() { - labelsPackages = Collections.synchronizedList(new ArrayList()); taskExec = new AsyncTaskExecManager().build(); } @Override protected void onResume() { super.onResume(); - labelsPackages.clear(); backgroundTask = new LoadPackagesAsyncTask(this); - taskExec.execute(backgroundTask, labelsPackages); + taskExec.execute(backgroundTask); } @Override @@ -60,8 +54,9 @@ public final class AppPickerActivity extends ListActivity { @Override protected void onListItemClick(ListView l, View view, int position, long id) { - if (position >= 0 && position < labelsPackages.size()) { - String packageName = labelsPackages.get(position).getPackageName(); + ListAdapter adapter = getListAdapter(); + if (position >= 0 && position < adapter.getCount()) { + String packageName = ((AppInfo) adapter.getItem(position)).getPackageName(); Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.putExtra(Browser.BookmarkColumns.URL, "market://details?id=" + packageName); diff --git a/android/src/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java b/android/src/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java index d4a519b94..08a08b670 100644 --- a/android/src/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java +++ b/android/src/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java @@ -28,6 +28,7 @@ import android.widget.ImageView; import android.widget.ListAdapter; import com.google.zxing.client.android.R; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -36,7 +37,7 @@ import java.util.List; * * @author Sean Owen */ -final class LoadPackagesAsyncTask extends AsyncTask,Object,List> { +final class LoadPackagesAsyncTask extends AsyncTask> { private static final String[] PKG_PREFIX_WHITELIST = { "com.google.android.apps.", @@ -55,8 +56,8 @@ final class LoadPackagesAsyncTask extends AsyncTask,Object,List doInBackground(List... objects) { - List labelsPackages = objects[0]; + protected List doInBackground(Void... objects) { + List labelsPackages = new ArrayList(); PackageManager packageManager = activity.getPackageManager(); List appInfos = packageManager.getInstalledApplications(0); for (ApplicationInfo appInfo : appInfos) { @@ -69,9 +70,7 @@ final class LoadPackagesAsyncTask extends AsyncTask,Object,List