Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
Provide a fallback method to load the native library (#10154)
Browse files Browse the repository at this point in the history
* provide a fallback method to load the native library

* move context call inside loader to avoid changing method signature
  • Loading branch information
zugaldia authored Oct 9, 2017
1 parent 503a96c commit a1aed6f
Showing 1 changed file with 27 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,15 +1,41 @@
package com.mapbox.mapboxsdk;

import android.content.Context;

import java.io.File;

import timber.log.Timber;

/**
* Centralises the knowledge about "mapbox-gl" library loading.
*/
public class LibraryLoader {

private static final String LIBRARY_NAME = "libmapbox-gl.so";

/**
* Loads "libmapbox-gl.so" native shared library.
*/
public static void load() {
System.loadLibrary("mapbox-gl");
try {
System.loadLibrary("mapbox-gl");
} catch (UnsatisfiedLinkError error) {
Context context = Mapbox.getApplicationContext();
if (context != null) {
Timber.d("Loading %s from internal storage.", LIBRARY_NAME);
System.load(getLibraryLocation(context).getAbsolutePath());
}
}
}

/**
* Returns a file in the app internal storage that may contain a locally cached copy
* of the Mapbox native library.
*
* @param context The application context
* @return a file object
*/
public static File getLibraryLocation(Context context) {
return new File(context.getFilesDir(), LIBRARY_NAME);
}
}

0 comments on commit a1aed6f

Please sign in to comment.