[Scummvm-cvs-logs] scummvm master -> d1292c8e593c0ea348491dc1a1471bce13510d86

sev- sev at scummvm.org
Sun Jan 11 21:59:31 CET 2015


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
59934881a1 ANDROID: Remove unpacker and fix support for non arm
d1292c8e59 Merge pull request #560 from klusark/unpack


Commit: 59934881a1dc27e0c6030d2133ec3f9aae583df7
    https://github.com/scummvm/scummvm/commit/59934881a1dc27e0c6030d2133ec3f9aae583df7
Author: Joel Teichroeb (joel at teichroeb.net)
Date: 2015-01-05T20:18:31-08:00

Commit Message:
ANDROID: Remove unpacker and fix support for non arm

Changed paths:
  R backends/platform/android/org/scummvm/scummvm/PluginProvider.java
  R backends/platform/android/org/scummvm/scummvm/ScummVMApplication.java
  R backends/platform/android/org/scummvm/scummvm/Unpacker.java
  R dists/android/mkplugin.sh
  R dists/android/plugin-manifest.xml
  R dists/android/plugin-manifest.xml.in
  R dists/android/plugin-strings.xml
  R dists/android/res/drawable/gradient.xml
  R dists/android/res/layout/splash.xml
    backends/platform/android/android.cpp
    backends/platform/android/android.h
    backends/platform/android/android.mk
    backends/platform/android/jni.cpp
    backends/platform/android/jni.h
    backends/platform/android/org/scummvm/scummvm/ScummVM.java
    backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
    configure
    dists/android/AndroidManifest.xml
    dists/android/AndroidManifest.xml.in
    dists/android/jni/Android.mk



diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp
index 3ff1b93..798772c 100644
--- a/backends/platform/android/android.cpp
+++ b/backends/platform/android/android.cpp
@@ -396,12 +396,6 @@ void OSystem_Android::initBackend() {
 	EventsBaseBackend::initBackend();
 }
 
-void OSystem_Android::addPluginDirectories(Common::FSList &dirs) const {
-	ENTER();
-
-	JNI::getPluginDirectories(dirs);
-}
-
 bool OSystem_Android::hasFeature(Feature f) {
 	return (f == kFeatureFullscreenMode ||
 			f == kFeatureAspectRatioCorrection ||
@@ -600,10 +594,4 @@ Common::String OSystem_Android::getSystemProperty(const char *name) const {
 	return Common::String(value, len);
 }
 
-#ifdef DYNAMIC_MODULES
-void AndroidPluginProvider::addCustomDirectories(Common::FSList &dirs) const {
-	((OSystem_Android *)g_system)->addPluginDirectories(dirs);
-}
-#endif
-
 #endif
diff --git a/backends/platform/android/android.h b/backends/platform/android/android.h
index 28016f5..ade84dd 100644
--- a/backends/platform/android/android.h
+++ b/backends/platform/android/android.h
@@ -96,13 +96,6 @@ extern void checkGlError(const char *expr, const char *file, int line);
 #define GLTHREADCHECK do {  } while (false)
 #endif
 
-#ifdef DYNAMIC_MODULES
-class AndroidPluginProvider : public POSIXPluginProvider {
-protected:
-	virtual void addCustomDirectories(Common::FSList &dirs) const;
-};
-#endif
-
 class OSystem_Android : public EventsBaseBackend, public PaletteManager {
 private:
 	// passed from the dark side
@@ -177,7 +170,6 @@ public:
 	virtual ~OSystem_Android();
 
 	virtual void initBackend();
-	void addPluginDirectories(Common::FSList &dirs) const;
 	void enableZoning(bool enable) { _enable_zoning = enable; }
 
 	virtual bool hasFeature(Feature f);
diff --git a/backends/platform/android/android.mk b/backends/platform/android/android.mk
index f9a2bc9..5be9f86 100644
--- a/backends/platform/android/android.mk
+++ b/backends/platform/android/android.mk
@@ -5,7 +5,7 @@ ANDROID_VERSIONCODE = 6
 
 ANDROID_TARGET_VERSION = 14
 
-NDK_BUILD = $(ANDROID_NDK)/ndk-build
+NDK_BUILD = $(ANDROID_NDK)/ndk-build APP_ABI=$(ABI)
 SDK_ANDROID = $(ANDROID_SDK)/tools/android
 
 PATH_DIST = $(srcdir)/dists/android
@@ -18,8 +18,6 @@ RESOURCES = \
 	$(PATH_BUILD_RES)/values/strings.xml \
 	$(PATH_BUILD_RES)/values-television/margins.xml \
 	$(PATH_BUILD_RES)/layout/main.xml \
-	$(PATH_BUILD_RES)/layout/splash.xml \
-	$(PATH_BUILD_RES)/drawable/gradient.xml \
 	$(PATH_BUILD_RES)/drawable/scummvm.png \
 	$(PATH_BUILD_RES)/drawable/scummvm_big.png \
 	$(PATH_BUILD_RES)/drawable-xhdpi/ouya_icon.png
@@ -30,7 +28,7 @@ DIST_BUILD_XML = $(PATH_DIST)/custom_rules.xml
 PATH_BUILD = ./build.tmp
 PATH_BUILD_ASSETS = $(PATH_BUILD)/assets
 PATH_BUILD_RES = $(PATH_BUILD)/res
-PATH_BUILD_LIBSCUMMVM = $(PATH_BUILD)/mylib/armeabi/libscummvm.so
+PATH_BUILD_LIBSCUMMVM = $(PATH_BUILD)/lib/$(ABI)/libscummvm.so
 
 FILE_MANIFEST_SRC = $(srcdir)/dists/android/AndroidManifest.xml
 FILE_MANIFEST = $(PATH_BUILD)/AndroidManifest.xml
diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp
index 764c84c..22e6a74 100644
--- a/backends/platform/android/jni.cpp
+++ b/backends/platform/android/jni.cpp
@@ -79,7 +79,6 @@ jmethodID JNI::_MID_displayMessageOnOSD = 0;
 jmethodID JNI::_MID_setWindowCaption = 0;
 jmethodID JNI::_MID_showVirtualKeyboard = 0;
 jmethodID JNI::_MID_getSysArchives = 0;
-jmethodID JNI::_MID_getPluginDirectories = 0;
 jmethodID JNI::_MID_initSurface = 0;
 jmethodID JNI::_MID_deinitSurface = 0;
 
@@ -293,46 +292,6 @@ void JNI::addSysArchivesToSearchSet(Common::SearchSet &s, int priority) {
 	}
 }
 
-void JNI::getPluginDirectories(Common::FSList &dirs) {
-	JNIEnv *env = JNI::getEnv();
-
-	jobjectArray array =
-		(jobjectArray)env->CallObjectMethod(_jobj, _MID_getPluginDirectories);
-
-	if (env->ExceptionCheck()) {
-		LOGE("Error finding plugin directories");
-
-		env->ExceptionDescribe();
-		env->ExceptionClear();
-
-		return;
-	}
-
-	jsize size = env->GetArrayLength(array);
-	for (jsize i = 0; i < size; ++i) {
-		jstring path_obj = (jstring)env->GetObjectArrayElement(array, i);
-
-		if (path_obj == 0)
-			continue;
-
-		const char *path = env->GetStringUTFChars(path_obj, 0);
-
-		if (path == 0) {
-			LOGE("Error getting string characters from plugin directory");
-
-			env->ExceptionClear();
-			env->DeleteLocalRef(path_obj);
-
-			continue;
-		}
-
-		dirs.push_back(Common::FSNode(path));
-
-		env->ReleaseStringUTFChars(path_obj, path);
-		env->DeleteLocalRef(path_obj);
-	}
-}
-
 bool JNI::initSurface() {
 	JNIEnv *env = JNI::getEnv();
 
@@ -454,7 +413,6 @@ void JNI::create(JNIEnv *env, jobject self, jobject asset_manager,
 	FIND_METHOD(, displayMessageOnOSD, "(Ljava/lang/String;)V");
 	FIND_METHOD(, showVirtualKeyboard, "(Z)V");
 	FIND_METHOD(, getSysArchives, "()[Ljava/lang/String;");
-	FIND_METHOD(, getPluginDirectories, "()[Ljava/lang/String;");
 	FIND_METHOD(, initSurface, "()Ljavax/microedition/khronos/egl/EGLSurface;");
 	FIND_METHOD(, deinitSurface, "()V");
 
@@ -543,10 +501,6 @@ jint JNI::main(JNIEnv *env, jobject self, jobjectArray args) {
 		env->DeleteLocalRef(arg);
 	}
 
-#ifdef DYNAMIC_MODULES
-	PluginManager::instance().addPluginProvider(new AndroidPluginProvider());
-#endif
-
 	LOGI("Entering scummvm_main with %d args", argc);
 
 	res = scummvm_main(argc, argv);
diff --git a/backends/platform/android/jni.h b/backends/platform/android/jni.h
index 326869b..70feaaf 100644
--- a/backends/platform/android/jni.h
+++ b/backends/platform/android/jni.h
@@ -55,7 +55,6 @@ public:
 
 	static void setReadyForEvents(bool ready);
 
-	static void getPluginDirectories(Common::FSList &dirs);
 	static void setWindowCaption(const char *caption);
 	static void getDPI(float *values);
 	static void displayMessageOnOSD(const char *msg);
@@ -93,7 +92,6 @@ private:
 	static jmethodID _MID_setWindowCaption;
 	static jmethodID _MID_showVirtualKeyboard;
 	static jmethodID _MID_getSysArchives;
-	static jmethodID _MID_getPluginDirectories;
 	static jmethodID _MID_initSurface;
 	static jmethodID _MID_deinitSurface;
 
diff --git a/backends/platform/android/org/scummvm/scummvm/PluginProvider.java b/backends/platform/android/org/scummvm/scummvm/PluginProvider.java
deleted file mode 100644
index e27e8d4..0000000
--- a/backends/platform/android/org/scummvm/scummvm/PluginProvider.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package org.scummvm.scummvm;
-
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.net.Uri;
-import android.os.Bundle;
-import android.util.Log;
-
-import java.util.ArrayList;
-
-public class PluginProvider extends BroadcastReceiver {
-	private final static String LOG_TAG = "ScummVM";
-
-	public final static String META_UNPACK_LIB =
-		"org.scummvm.scummvm.meta.UNPACK_LIB";
-
-	public void onReceive(Context context, Intent intent) {
-		if (!intent.getAction().equals(ScummVMApplication.ACTION_PLUGIN_QUERY))
-			return;
-
-		Bundle extras = getResultExtras(true);
-
-		final ActivityInfo info;
-		final PackageInfo pinfo;
-		try {
-			info = context.getPackageManager()
-				.getReceiverInfo(new ComponentName(context, this.getClass()),
-									PackageManager.GET_META_DATA);
-			pinfo = context.getPackageManager()
-				.getPackageInfo(context.getPackageName(), 0);
-		} catch (PackageManager.NameNotFoundException e) {
-			Log.e(LOG_TAG, "Error finding my own info?", e);
-			return;
-		}
-
-		String host_version = extras.getString(ScummVMApplication.EXTRA_VERSION);
-		if (!pinfo.versionName.equals(host_version)) {
-			Log.e(LOG_TAG, "Plugin version " + pinfo.versionName + " is not equal to ScummVM version " + host_version);
-			return;
-		}
-
-		String mylib = info.metaData.getString(META_UNPACK_LIB);
-		if (mylib != null) {
-			ArrayList<String> all_libs =
-				extras.getStringArrayList(ScummVMApplication.EXTRA_UNPACK_LIBS);
-			all_libs.add(new Uri.Builder()
-							.scheme("plugin")
-							.authority(context.getPackageName())
-							.path(mylib)
-							.toString());
-
-			extras.putStringArrayList(ScummVMApplication.EXTRA_UNPACK_LIBS,
-										all_libs);
-		}
-
-		setResultExtras(extras);
-	}
-}
diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVM.java b/backends/platform/android/org/scummvm/scummvm/ScummVM.java
index 5047502..3b370a5 100644
--- a/backends/platform/android/org/scummvm/scummvm/ScummVM.java
+++ b/backends/platform/android/org/scummvm/scummvm/ScummVM.java
@@ -54,7 +54,6 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable {
 	abstract protected void getDPI(float[] values);
 	abstract protected void displayMessageOnOSD(String msg);
 	abstract protected void setWindowCaption(String caption);
-	abstract protected String[] getPluginDirectories();
 	abstract protected void showVirtualKeyboard(boolean enable);
 	abstract protected String[] getSysArchives();
 
@@ -444,10 +443,6 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable {
 			}
 		}
 
-		File cache_dir = ScummVMApplication.getLastCacheDir();
-		String libname = System.mapLibraryName("scummvm");
-		File libpath = new File(cache_dir, libname);
-
-		System.load(libpath.getPath());
+		System.loadLibrary("scummvm");
 	}
 }
diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
index f4eb7dd..5b2dcae 100644
--- a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
+++ b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
@@ -84,13 +84,6 @@ public class ScummVMActivity extends Activity {
 		}
 
 		@Override
-		protected String[] getPluginDirectories() {
-			String[] dirs = new String[1];
-			dirs[0] = ScummVMApplication.getLastCacheDir().getPath();
-			return dirs;
-		}
-
-		@Override
 		protected void showVirtualKeyboard(final boolean enable) {
 			runOnUiThread(new Runnable() {
 					public void run() {
diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVMApplication.java b/backends/platform/android/org/scummvm/scummvm/ScummVMApplication.java
deleted file mode 100644
index 0adc166..0000000
--- a/backends/platform/android/org/scummvm/scummvm/ScummVMApplication.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.scummvm.scummvm;
-
-import android.app.Application;
-
-import java.io.File;
-
-public class ScummVMApplication extends Application {
-	public final static String ACTION_PLUGIN_QUERY = "org.scummvm.scummvm.action.PLUGIN_QUERY";
-	public final static String EXTRA_UNPACK_LIBS = "org.scummvm.scummvm.extra.UNPACK_LIBS";
-	public final static String EXTRA_VERSION = "org.scummvm.scummvm.extra.VERSION";
-
-	private static File _cache_dir;
-
-	@Override
-	public void onCreate() {
-		super.onCreate();
-
-		// This is still on /data :(
-		_cache_dir = getCacheDir();
-		// This is mounted noexec :(
-		//cache_dir = new File(Environment.getExternalStorageDirectory(),
-		//				"/.ScummVM.tmp");
-		// This is owned by download manager and requires special
-		// permissions to access :(
-		//cache_dir = Environment.getDownloadCacheDirectory();
-	}
-
-	public static File getLastCacheDir() {
-		return _cache_dir;
-	}
-}
diff --git a/backends/platform/android/org/scummvm/scummvm/Unpacker.java b/backends/platform/android/org/scummvm/scummvm/Unpacker.java
deleted file mode 100644
index da76ceb..0000000
--- a/backends/platform/android/org/scummvm/scummvm/Unpacker.java
+++ /dev/null
@@ -1,388 +0,0 @@
-package org.scummvm.scummvm;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.content.ActivityNotFoundException;
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.ContextWrapper;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.net.Uri;
-import android.os.AsyncTask;
-import android.os.Bundle;
-import android.util.Log;
-import android.widget.ProgressBar;
-
-import java.io.IOException;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipEntry;
-
-public class Unpacker extends Activity {
-	protected final static String LOG_TAG = "ScummVM";
-	// TODO don't hardcode this
-	private final static boolean PLUGINS_ENABLED = false;
-	private final static String META_NEXT_ACTIVITY =
-		"org.scummvm.unpacker.nextActivity";
-	private ProgressBar mProgress;
-	private File mUnpackDest;  // location to unpack into
-	private AsyncTask<String, Integer, Void> mUnpacker;
-	private final static int REQUEST_MARKET = 1;
-
-	// Android 3.1+ only
-	public static final int FLAG_INCLUDE_STOPPED_PACKAGES = 32;
-
-	private static class UnpackJob {
-		public ZipFile zipfile;
-		public Set<String> paths;
-
-		public UnpackJob(ZipFile zipfile, Set<String> paths) {
-			this.zipfile = zipfile;
-			this.paths = paths;
-		}
-
-		public long UnpackSize() {
-			long size = 0;
-			for (String path: paths) {
-				ZipEntry entry = zipfile.getEntry(path);
-				if (entry != null) size += entry.getSize();
-			}
-			return size;
-		}
-	}
-
-	private class UnpackTask extends AsyncTask<String, Integer, Void> {
-		@Override
-		protected void onProgressUpdate(Integer... progress) {
-			mProgress.setIndeterminate(false);
-			mProgress.setMax(progress[1]);
-			mProgress.setProgress(progress[0]);
-			mProgress.postInvalidate();
-		}
-
-		@Override
-		protected void onPostExecute(Void result) {
-			Bundle md = getMetaData();
-			String nextActivity = md.getString(META_NEXT_ACTIVITY);
-			if (nextActivity != null) {
-				final ComponentName cn =
-					ComponentName.unflattenFromString(nextActivity);
-				if (cn != null) {
-					final Intent origIntent = getIntent();
-					Intent intent = new Intent();
-					intent.setComponent(cn);
-					if (origIntent.getExtras() != null)
-						intent.putExtras(origIntent.getExtras());
-					intent.putExtra(Intent.EXTRA_INTENT, origIntent);
-					intent.setDataAndType(origIntent.getData(),
-										  origIntent.getType());
-					//intent.fillIn(getIntent(), 0);
-					intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP);
-					Log.i(LOG_TAG,
-						  "Starting next activity with intent " + intent);
-					startActivity(intent);
-				} else {
-					Log.w(LOG_TAG,
-						  "Unable to extract a component name from " + nextActivity);
-				}
-			}
-
-			finish();
-		}
-
-		@Override
-		protected Void doInBackground(String... all_libs) {
-			// This will contain all unpack jobs
-			Map<String, UnpackJob> unpack_jobs =
-				new HashMap<String, UnpackJob>(all_libs.length);
-
-			// This will contain all unpack filenames (so we can
-			// detect stale files in the unpack directory)
-			Set<String> all_files = new HashSet<String>(all_libs.length);
-
-			for (String lib: all_libs) {
-				final Uri uri = Uri.parse(lib);
-				final String pkg = uri.getAuthority();
-				final String path = uri.getPath().substring(1); // skip first /
-
-				all_files.add(new File(path).getName());
-
-				UnpackJob job = unpack_jobs.get(pkg);
-				if (job == null) {
-					try {
-						// getPackageResourcePath is hidden in Context,
-						// but exposed in ContextWrapper...
-						ContextWrapper context =
-							new ContextWrapper(createPackageContext(pkg, 0));
-						ZipFile zipfile =
-							new ZipFile(context.getPackageResourcePath());
-						job = new UnpackJob(zipfile, new HashSet<String>(1));
-					} catch (PackageManager.NameNotFoundException e) {
-						Log.e(LOG_TAG, "Package " + pkg +
-							  " not found", e);
-						continue;
-					} catch (IOException e) {
-						// FIXME: show some sort of GUI error dialog
-						Log.e(LOG_TAG,
-							  "Error opening ZIP for package " + pkg, e);
-						continue;
-					}
-					unpack_jobs.put(pkg, job);
-				}
-				job.paths.add(path);
-			}
-
-			// Delete stale filenames from mUnpackDest
-			for (File file: mUnpackDest.listFiles()) {
-				if (!all_files.contains(file.getName())) {
-					Log.i(LOG_TAG,
-						  "Deleting stale cached file " + file);
-					file.delete();
-				}
-			}
-
-			int total_size = 0;
-			for (UnpackJob job: unpack_jobs.values())
-				total_size += job.UnpackSize();
-
-			publishProgress(0, total_size);
-
-			mUnpackDest.mkdirs();
-
-			int progress = 0;
-
-			for (UnpackJob job: unpack_jobs.values()) {
-				try {
-					ZipFile zipfile = job.zipfile;
-					for (String path: job.paths) {
-						ZipEntry zipentry = zipfile.getEntry(path);
-						if (zipentry == null)
-							throw new FileNotFoundException(
-															"Couldn't find " + path + " in zip");
-						File dest = new File(mUnpackDest, new File(path).getName());
-						if (dest.exists() &&
-							dest.lastModified() == zipentry.getTime() &&
-							dest.length() == zipentry.getSize()) {
-							// Already unpacked
-							progress += zipentry.getSize();
-						} else {
-							if (dest.exists())
-								Log.d(LOG_TAG,
-									  "Replacing " + dest.getPath() +
-									  " old.mtime=" + dest.lastModified() +
-									  " new.mtime=" + zipentry.getTime() +
-									  " old.size=" + dest.length() +
-									  " new.size=" + zipentry.getSize());
-							else
-								Log.i(LOG_TAG,
-									  "Extracting " + zipentry.getName() +
-									  " from " + zipfile.getName() +
-									  " to " + dest.getPath());
-
-							long next_update = progress;
-
-							InputStream in = zipfile.getInputStream(zipentry);
-							OutputStream out = new FileOutputStream(dest);
-							int len;
-							byte[] buffer = new byte[4096];
-							while ((len = in.read(buffer)) != -1) {
-								out.write(buffer, 0, len);
-								progress += len;
-								if (progress >= next_update) {
-									publishProgress(progress, total_size);
-									// Arbitrary limit of 2% update steps
-									next_update += total_size / 50;
-								}
-							}
-
-							in.close();
-							out.close();
-							dest.setLastModified(zipentry.getTime());
-						}
-						publishProgress(progress, total_size);
-					}
-
-					zipfile.close();
-				} catch (IOException e) {
-					// FIXME: show some sort of GUI error dialog
-					Log.e(LOG_TAG, "Error unpacking plugin", e);
-				}
-			}
-
-			if (progress != total_size)
-				Log.d(LOG_TAG, "Ended with progress " + progress +
-					  " != total size " + total_size);
-
-			setResult(RESULT_OK);
-
-			return null;
-		}
-	}
-
-	private class PluginBroadcastReciever extends BroadcastReceiver {
-		@Override
-		public void onReceive(Context context, Intent intent) {
-			if (!intent.getAction()
-				.equals(ScummVMApplication.ACTION_PLUGIN_QUERY)) {
-				Log.e(LOG_TAG,
-					  "Received unexpected action " + intent.getAction());
-				return;
-			}
-
-			Bundle extras = getResultExtras(false);
-			if (extras == null) {
-				// Nothing for us to do.
-				Unpacker.this.setResult(RESULT_OK);
-				finish();
-			}
-
-			ArrayList<String> unpack_libs =
-				extras.getStringArrayList(ScummVMApplication.EXTRA_UNPACK_LIBS);
-
-			if (unpack_libs != null && !unpack_libs.isEmpty()) {
-				final String[] libs =
-					unpack_libs.toArray(new String[unpack_libs.size()]);
-				mUnpacker = new UnpackTask().execute(libs);
-			}
-		}
-	}
-
-	private void initPlugins() {
-		Bundle extras = new Bundle(1);
-
-		ArrayList<String> unpack_libs = new ArrayList<String>(1);
-		// This is the common ScummVM code (not really a "plugin" as such)
-		unpack_libs.add(new Uri.Builder()
-						.scheme("plugin")
-						.authority(getPackageName())
-						.path("mylib/armeabi/libscummvm.so")
-						.toString());
-		extras.putStringArrayList(ScummVMApplication.EXTRA_UNPACK_LIBS,
-								  unpack_libs);
-
-		final PackageInfo info;
-		try {
-			info = getPackageManager().getPackageInfo(getPackageName(), 0);
-		} catch (PackageManager.NameNotFoundException e) {
-			Log.e(LOG_TAG, "Error finding my own info?", e);
-			return;
-		}
-		extras.putString(ScummVMApplication.EXTRA_VERSION, info.versionName);
-
-		Intent intent = new Intent(ScummVMApplication.ACTION_PLUGIN_QUERY);
-		// Android 3.1 defaults to FLAG_EXCLUDE_STOPPED_PACKAGES, and since
-		// none of our plugins will ever be running, that is not helpful
-		intent.setFlags(FLAG_INCLUDE_STOPPED_PACKAGES);
-		sendOrderedBroadcast(intent, Manifest.permission.SCUMMVM_PLUGIN,
-							 new PluginBroadcastReciever(),
-							 null, RESULT_OK, null, extras);
-	}
-
-	@Override
-	public void onCreate(Bundle b) {
-		super.onCreate(b);
-
-		mUnpackDest = ScummVMApplication.getLastCacheDir();
-
-		setContentView(R.layout.splash);
-		mProgress = (ProgressBar)findViewById(R.id.progress);
-
-		setResult(RESULT_CANCELED);
-
-		tryUnpack();
-	}
-
-	private void tryUnpack() {
-		Intent intent = new Intent(ScummVMApplication.ACTION_PLUGIN_QUERY);
-		List<ResolveInfo> plugins = getPackageManager()
-			.queryBroadcastReceivers(intent, 0);
-		if (PLUGINS_ENABLED && plugins.isEmpty()) {
-			// No plugins installed
-			AlertDialog.Builder alert = new AlertDialog.Builder(this)
-				.setTitle(R.string.no_plugins_title)
-				.setMessage(R.string.no_plugins_found)
-				.setIcon(android.R.drawable.ic_dialog_alert)
-				.setOnCancelListener(new DialogInterface.OnCancelListener() {
-						public void onCancel(DialogInterface dialog) {
-							finish();
-						}
-					})
-				.setNegativeButton(R.string.quit,
-								   new DialogInterface.OnClickListener() {
-									   public void onClick(DialogInterface dialog, int which) {
-										   finish();
-									   }
-								   });
-
-			final Uri uri = Uri.parse("market://search?q=ScummVM plugin");
-			final Intent market_intent = new Intent(Intent.ACTION_VIEW, uri);
-			if (getPackageManager().resolveActivity(market_intent, 0) != null) {
-				alert.setPositiveButton(R.string.to_market,
-										new DialogInterface.OnClickListener() {
-											public void onClick(DialogInterface dialog, int which) {
-												dialog.dismiss();
-												try {
-													startActivityForResult(market_intent,
-																		   REQUEST_MARKET);
-												} catch (ActivityNotFoundException e) {
-													Log.e(LOG_TAG,
-														  "Error starting market", e);
-												}
-											}
-										});
-			}
-
-			alert.show();
-
-		} else {
-			// Already have at least one plugin installed
-			initPlugins();
-		}
-	}
-
-	@Override
-	public void onStop() {
-		if (mUnpacker != null)
-			mUnpacker.cancel(true);
-		super.onStop();
-	}
-
-	@Override
-	protected void onActivityResult(int requestCode, int resultCode,
-										Intent data) {
-		switch (requestCode) {
-		case REQUEST_MARKET:
-			if (resultCode != RESULT_OK)
-				Log.w(LOG_TAG, "Market returned " + resultCode);
-			tryUnpack();
-			break;
-		}
-	}
-
-	private Bundle getMetaData() {
-		try {
-			ActivityInfo ai = getPackageManager()
-				.getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
-			return ai.metaData;
-		} catch (PackageManager.NameNotFoundException e) {
-			Log.w(LOG_TAG, "Unable to find my own meta-data", e);
-			return new Bundle();
-		}
-	}
-}
diff --git a/configure b/configure
index 7c4c87e..5f73d77 100755
--- a/configure
+++ b/configure
@@ -4533,6 +4533,8 @@ WIN32PATH=$_win32path
 AMIGAOSPATH=$_amigaospath
 STATICLIBPATH=$_staticlibpath
 
+ABI := $ABI
+
 BACKEND := $_backend
 MODULES += $MODULES
 MODULE_DIRS += $MODULE_DIRS
diff --git a/dists/android/AndroidManifest.xml b/dists/android/AndroidManifest.xml
index db8a9ad..ba1046e 100644
--- a/dists/android/AndroidManifest.xml
+++ b/dists/android/AndroidManifest.xml
@@ -5,7 +5,6 @@
 		package="org.scummvm.scummvm"
 		android:versionCode="@ANDROID_VERSIONCODE@"
 		android:versionName="1.8.0git"
-		android:installLocation="preferExternal"
 		android:sharedUserId="org.scummvm.scummvm">
 
 	<!-- This version works on Android 1.5 (SDK 3) and newer, but we
@@ -13,7 +12,7 @@
 	<uses-sdk android:minSdkVersion="3"
 			android:targetSdkVersion="8"/>
 
-	<application android:name=".ScummVMApplication"
+	<application
 			android:label="@string/app_name"
 			android:description="@string/app_desc"
 			android:icon="@drawable/scummvm">
@@ -24,28 +23,12 @@
 				android:windowSoftInputMode="adjustResize">
 			<intent-filter>
 				<action android:name="android.intent.action.MAIN"/>
-			</intent-filter>
-		</activity>
-
-		<activity android:name=".Unpacker"
-				android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-				android:screenOrientation="landscape"
-				android:configChanges="orientation|keyboardHidden">
-			<meta-data android:name="org.scummvm.unpacker.nextActivity"
-				android:value="org.scummvm.scummvm/.ScummVMActivity"/>
-			<intent-filter>
-				<action android:name="android.intent.action.MAIN"/>
 				<category android:name="android.intent.category.LAUNCHER"/>
 				<category android:name="tv.ouya.intent.category.GAME"/>
 			</intent-filter>
 		</activity>
 	</application>
 
-	<permission android:name="org.scummvm.scummvm.permission.SCUMMVM_PLUGIN"
-		android:label="@string/scummvm_perm_plugin_label"
-		android:description="@string/scummvm_perm_plugin_desc"
-		android:protectionLevel="signature"/>
-
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
 	<!-- Always needs some sort of qwerty keyboard.
diff --git a/dists/android/AndroidManifest.xml.in b/dists/android/AndroidManifest.xml.in
index bf45ffc..d90e282 100644
--- a/dists/android/AndroidManifest.xml.in
+++ b/dists/android/AndroidManifest.xml.in
@@ -5,7 +5,6 @@
 		package="org.scummvm.scummvm"
 		android:versionCode="@ANDROID_VERSIONCODE@"
 		android:versionName="@VERSION@"
-		android:installLocation="preferExternal"
 		android:sharedUserId="org.scummvm.scummvm">
 
 	<!-- This version works on Android 1.5 (SDK 3) and newer, but we
@@ -13,7 +12,7 @@
 	<uses-sdk android:minSdkVersion="3"
 			android:targetSdkVersion="8"/>
 
-	<application android:name=".ScummVMApplication"
+	<application
 			android:label="@string/app_name"
 			android:description="@string/app_desc"
 			android:icon="@drawable/scummvm">
@@ -24,28 +23,12 @@
 				android:windowSoftInputMode="adjustResize">
 			<intent-filter>
 				<action android:name="android.intent.action.MAIN"/>
-			</intent-filter>
-		</activity>
-
-		<activity android:name=".Unpacker"
-				android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
-				android:screenOrientation="landscape"
-				android:configChanges="orientation|keyboardHidden">
-			<meta-data android:name="org.scummvm.unpacker.nextActivity"
-				android:value="org.scummvm.scummvm/.ScummVMActivity"/>
-			<intent-filter>
-				<action android:name="android.intent.action.MAIN"/>
 				<category android:name="android.intent.category.LAUNCHER"/>
 				<category android:name="tv.ouya.intent.category.GAME"/>
 			</intent-filter>
 		</activity>
 	</application>
 
-	<permission android:name="org.scummvm.scummvm.permission.SCUMMVM_PLUGIN"
-		android:label="@string/scummvm_perm_plugin_label"
-		android:description="@string/scummvm_perm_plugin_desc"
-		android:protectionLevel="signature"/>
-
 	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 
 	<!-- Always needs some sort of qwerty keyboard.
diff --git a/dists/android/jni/Android.mk b/dists/android/jni/Android.mk
index d5b3984..0b3ee4d 100644
--- a/dists/android/jni/Android.mk
+++ b/dists/android/jni/Android.mk
@@ -2,7 +2,7 @@ LOCAL_PATH := $(call my-dir)
 
 include $(CLEAR_VARS)
 
-APP_ABI := armeabi
+APP_ABI := $(ABI)
 LOCAL_MODULE := scummvm
 LOCAL_SRC_FILES := ../libscummvm.so
 
diff --git a/dists/android/mkplugin.sh b/dists/android/mkplugin.sh
deleted file mode 100755
index 30a7ef6..0000000
--- a/dists/android/mkplugin.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-if [ $# -ne 5 ]; then
-	echo "usage: $0 configure plugin template versioncode target"
-	exit 1
-fi
-
-CONFIGURE=$1
-PLUGIN_NAME=$2
-TEMPLATE=$3
-PLUGIN_VERSION_CODE=$4
-TARGET=$5
-
-PLUGIN_DESC=`sed -n "s/add_engine\s$PLUGIN_NAME\s\"\(.\+\)\"\s.*/\1/p" < $CONFIGURE`
-
-sed "s|@PLUGIN_NAME@|$PLUGIN_NAME|;s|@PLUGIN_VERSION_CODE@|$PLUGIN_VERSION_CODE|;s|@PLUGIN_DESC@|$PLUGIN_DESC|" < $TEMPLATE > $TARGET
diff --git a/dists/android/plugin-manifest.xml b/dists/android/plugin-manifest.xml
deleted file mode 100644
index 040d1ea..0000000
--- a/dists/android/plugin-manifest.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-		package="org.scummvm.scummvm.plugin. at PLUGIN_NAME@"
-		android:versionCode="@PLUGIN_VERSION_CODE@"
-		android:versionName="1.8.0git"
-		android:installLocation="preferExternal"
-		android:sharedUserId="org.scummvm.scummvm">
-
-	<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />
-
-	<application android:label="@string/app_name"
-			android:description="@string/app_desc"
-			android:icon="@drawable/scummvm">
-		<receiver android:name="org.scummvm.scummvm.PluginProvider"
-				android:process="org.scummvm.scummvm">
-			<intent-filter>
-				<action android:name="org.scummvm.scummvm.action.PLUGIN_QUERY"/>
-				<category android:name="android.intent.category.INFO"/>
-			</intent-filter>
-			<meta-data android:name="org.scummvm.scummvm.meta.UNPACK_LIB"
-					android:value="mylib/armeabi/lib at PLUGIN_NAME@.so" />
-		</receiver>
-	</application>
-
-	<uses-permission android:name="org.scummvm.scummvm.permission.SCUMMVM_PLUGIN"/>
-	<uses-configuration android:reqFiveWayNav="true"
-			android:reqKeyboardType="qwerty"/>
-
-	<uses-configuration android:reqTouchScreen="finger"
-			android:reqKeyboardType="qwerty"/>
-
-	<uses-configuration android:reqTouchScreen="stylus"
-			android:reqKeyboardType="qwerty"/>
-</manifest>
diff --git a/dists/android/plugin-manifest.xml.in b/dists/android/plugin-manifest.xml.in
deleted file mode 100644
index 4b42909..0000000
--- a/dists/android/plugin-manifest.xml.in
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-		package="org.scummvm.scummvm.plugin. at PLUGIN_NAME@"
-		android:versionCode="@PLUGIN_VERSION_CODE@"
-		android:versionName="@VERSION@"
-		android:installLocation="preferExternal"
-		android:sharedUserId="org.scummvm.scummvm">
-
-	<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />
-
-	<application android:label="@string/app_name"
-			android:description="@string/app_desc"
-			android:icon="@drawable/scummvm">
-		<receiver android:name="org.scummvm.scummvm.PluginProvider"
-				android:process="org.scummvm.scummvm">
-			<intent-filter>
-				<action android:name="org.scummvm.scummvm.action.PLUGIN_QUERY"/>
-				<category android:name="android.intent.category.INFO"/>
-			</intent-filter>
-			<meta-data android:name="org.scummvm.scummvm.meta.UNPACK_LIB"
-					android:value="mylib/armeabi/lib at PLUGIN_NAME@.so" />
-		</receiver>
-	</application>
-
-	<uses-permission android:name="org.scummvm.scummvm.permission.SCUMMVM_PLUGIN"/>
-	<uses-configuration android:reqFiveWayNav="true"
-			android:reqKeyboardType="qwerty"/>
-
-	<uses-configuration android:reqTouchScreen="finger"
-			android:reqKeyboardType="qwerty"/>
-
-	<uses-configuration android:reqTouchScreen="stylus"
-			android:reqKeyboardType="qwerty"/>
-</manifest>
diff --git a/dists/android/plugin-strings.xml b/dists/android/plugin-strings.xml
deleted file mode 100644
index ade37e0..0000000
--- a/dists/android/plugin-strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<resources>
-	<string name="app_name">ScummVM plugin: "@PLUGIN_NAME@"</string>
-	<string name="app_desc">Game engine for: @PLUGIN_DESC@</string>
-</resources>
diff --git a/dists/android/res/drawable/gradient.xml b/dists/android/res/drawable/gradient.xml
deleted file mode 100644
index dbfd9b5..0000000
--- a/dists/android/res/drawable/gradient.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape xmlns:android="http://schemas.android.com/apk/res/android">
-    <gradient
-      android:startColor="#e9bb8b"
-      android:endColor="#d16e09"
-      android:angle="315" />
-</shape>
diff --git a/dists/android/res/layout/splash.xml b/dists/android/res/layout/splash.xml
deleted file mode 100644
index e9fd5f7..0000000
--- a/dists/android/res/layout/splash.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-  android:orientation="vertical"
-  android:gravity="center"
-  android:background="@drawable/gradient"
-  android:layout_width="fill_parent"
-  android:layout_height="fill_parent">
-  <ImageView
-    android:layout_width="wrap_content"
-    android:layout_height="wrap_content"
-    android:adjustViewBounds="true"
-    android:scaleType="fitCenter"
-    android:src="@drawable/scummvm_big" />
-  <ProgressBar android:id="@+id/progress"
-    style="?android:attr/progressBarStyleHorizontal"
-    android:layout_width="300dip"
-    android:layout_height="wrap_content"
-    android:padding="20dip"/>
-</LinearLayout>


Commit: d1292c8e593c0ea348491dc1a1471bce13510d86
    https://github.com/scummvm/scummvm/commit/d1292c8e593c0ea348491dc1a1471bce13510d86
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2015-01-11T21:58:32+01:00

Commit Message:
Merge pull request #560 from klusark/unpack

ANDROID: Remove unpacker and fix support for non arm

Changed paths:
  R backends/platform/android/org/scummvm/scummvm/PluginProvider.java
  R backends/platform/android/org/scummvm/scummvm/ScummVMApplication.java
  R backends/platform/android/org/scummvm/scummvm/Unpacker.java
  R dists/android/mkplugin.sh
  R dists/android/plugin-manifest.xml
  R dists/android/plugin-manifest.xml.in
  R dists/android/plugin-strings.xml
  R dists/android/res/drawable/gradient.xml
  R dists/android/res/layout/splash.xml
    backends/platform/android/android.cpp
    backends/platform/android/android.h
    backends/platform/android/android.mk
    backends/platform/android/jni.cpp
    backends/platform/android/jni.h
    backends/platform/android/org/scummvm/scummvm/ScummVM.java
    backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java
    configure
    dists/android/AndroidManifest.xml
    dists/android/AndroidManifest.xml.in
    dists/android/jni/Android.mk









More information about the Scummvm-git-logs mailing list