Skip to content

Commit aa208c0

Browse files
author
gerhard.kalab
committedMay 25, 2015
correctly evaluate the native library dir on devices using Android >= Gingerbread (thanks Peter Österlund)
1 parent 3b87236 commit aa208c0

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed
 

‎src/org/scid/android/ScidAndroidActivity.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -225,9 +225,8 @@ private void checkUciEngine() {
225225
} else {
226226
Log.d(TAG, "Engine is missing from data. Intializing...");
227227
try {
228-
InputStream istream = new FileInputStream(getApplicationInfo().dataDir
229-
+ File.separator
230-
+ "lib"
228+
String nativeLibraryDir = Tools.getNativeLibraryDir(this);
229+
InputStream istream = new FileInputStream(nativeLibraryDir
231230
+ File.separator
232231
+ EngineManager.INTERNAL_ENGINE_FILE_NAME);
233232
FileOutputStream fout = new FileOutputStream(

‎src/org/scid/android/Tools.java

+20-3
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,16 @@
2626

2727
import org.scid.android.engine.Engine;
2828

29+
import android.annotation.TargetApi;
2930
import android.app.Activity;
3031
import android.app.AlertDialog;
32+
import android.content.Context;
3133
import android.content.DialogInterface;
3234
import android.content.Intent;
3335
import android.content.pm.PackageManager;
3436
import android.content.pm.ResolveInfo;
3537
import android.net.Uri;
38+
import android.os.Build;
3639
import android.os.Environment;
3740
import android.util.Log;
3841
import android.view.WindowManager;
@@ -52,7 +55,7 @@ public class Tools {
5255

5356
/**
5457
* Extract links from html using regular expressions
55-
*
58+
*
5659
* @param html
5760
* html content for validation
5861
* @return List of links
@@ -78,7 +81,7 @@ public static List<Link> getLinks(final String html) {
7881
/**
7982
* Add names of engine files (files which not have an ignored extension) to
8083
* the specified set of already found engines.
81-
*
84+
*
8285
* @param foundEngines
8386
* Set of already found engines or null if a new set should be
8487
* created.
@@ -93,6 +96,7 @@ public static final SortedSet<Engine> findEnginesInDirectory(
9396
File dir = new File(dirPath);
9497
final Set<String> _ignore = ignoreExtensions;
9598
File[] files = dir.listFiles(new FileFilter() {
99+
@Override
96100
public boolean accept(File pathname) {
97101
if (pathname.isFile() && !pathname.getName().startsWith(".")) {
98102
int index = pathname.getName().lastIndexOf('.');
@@ -119,7 +123,7 @@ public boolean accept(File pathname) {
119123
/**
120124
* Download file to scid directory with file name from HTTP header or create
121125
* temp file if the HTTP header does not provide enough information
122-
*
126+
*
123127
* @param path
124128
* the path to the URL
125129
* @return the downloaded file
@@ -205,13 +209,15 @@ public static void importPgn(final Activity activity, String baseName,
205209
fileExistsDialog.setIcon(android.R.drawable.ic_dialog_alert);
206210
fileExistsDialog.setButton(activity.getString(android.R.string.ok),
207211
new DialogInterface.OnClickListener() {
212+
@Override
208213
public void onClick(DialogInterface dialog, int which) {
209214
startPgnImport(activity, pgnFileName, resultId);
210215
}
211216
});
212217
fileExistsDialog.setButton2(
213218
activity.getString(android.R.string.cancel),
214219
new DialogInterface.OnClickListener() {
220+
@Override
215221
public void onClick(DialogInterface dialog, int which) {
216222
Toast.makeText(
217223
activity.getApplicationContext(),
@@ -270,6 +276,7 @@ public static String getFileNameFromUrl(String path) {
270276
public static void showErrorMessage(final Activity activity,
271277
final String message) {
272278
activity.runOnUiThread(new Runnable() {
279+
@Override
273280
public void run() {
274281
final AlertDialog.Builder builder = new AlertDialog.Builder(
275282
activity);
@@ -479,4 +486,14 @@ public static String getScidDirectory() {
479486
return Environment.getExternalStorageDirectory() + File.separator
480487
+ Constants.SCID_DIRECTORY;
481488
}
489+
490+
@TargetApi(Build.VERSION_CODES.GINGERBREAD)
491+
public static String getNativeLibraryDir(Context context) {
492+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
493+
return context.getApplicationInfo().nativeLibraryDir;
494+
} else {
495+
return context.getApplicationInfo().dataDir + File.separator
496+
+ "lib";
497+
}
498+
}
482499
}

0 commit comments

Comments
 (0)
Failed to load comments.