From 420aedc7e5f49b254378a99a1035385a65c640d9 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 25 May 2018 14:31:57 +0200 Subject: [PATCH] =?UTF-8?q?add=20java=20method=20to=20android=E2=80=99s=20?= =?UTF-8?q?helper=20to=20copy=20assets=20instead=20of=20resource?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../classes/tools/AndroidPlatformHelper.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/wrappers/java/classes/tools/AndroidPlatformHelper.java b/wrappers/java/classes/tools/AndroidPlatformHelper.java index 55bf17b99..3c2ffe61b 100644 --- a/wrappers/java/classes/tools/AndroidPlatformHelper.java +++ b/wrappers/java/classes/tools/AndroidPlatformHelper.java @@ -180,6 +180,11 @@ public class AndroidPlatformHelper { } private void copyAssetsFromPackage() throws IOException { + Log.i("Starting copy from assets to application files directory"); + copyAssetsFromPackage(mContext, "org.linphone.core","."); + Log.i("Copy from assets done"); + Log.i("Starting copy from legacy resources to application files directory"); + /*legacy code for 3.X*/ copyEvenIfExists(getResourceIdentifierFromName("cpim_grammar"), mGrammarCpimFile); copyEvenIfExists(getResourceIdentifierFromName("vcard_grammar"), mGrammarVcardFile); copyEvenIfExists(getResourceIdentifierFromName("rootca"), mLinphoneRootCaFile); @@ -187,6 +192,7 @@ public class AndroidPlatformHelper { copyEvenIfExists(getResourceIdentifierFromName("ringback"), mRingbackSoundFile); copyEvenIfExists(getResourceIdentifierFromName("hold"), mPauseSoundFile); copyEvenIfExists(getResourceIdentifierFromName("incoming_chat"), mErrorToneFile); + Log.i("Copy from legacy resources done"); } public void copyEvenIfExists(int ressourceId, String target) throws IOException { @@ -220,6 +226,34 @@ public class AndroidPlatformHelper { lOutputStream.close(); lInputStream.close(); } + + public static void copyAssetsFromPackage(Context ctx,String fromPath, String toPath) throws IOException { + new File(ctx.getFilesDir().getPath()+"/"+toPath).mkdir(); + + for (String f :ctx.getAssets().list(fromPath)) { + String current_name = fromPath+"/"+f; + String current_dest = toPath+"/"+f; + InputStream lInputStream; + try { + lInputStream = ctx.getAssets().open(current_name); + } catch (IOException e) { + //probably a dir + copyAssetsFromPackage(ctx,current_name,current_dest); + continue; + } + FileOutputStream lOutputStream = new FileOutputStream(new File(ctx.getFilesDir().getPath()+"/"+current_dest));//ctx.openFileOutput (fromPath+"/"+f, 0); + + + int readByte; + byte[] buff = new byte[8048]; + while (( readByte = lInputStream.read(buff)) != -1) { + lOutputStream.write(buff,0, readByte); + } + lOutputStream.flush(); + lOutputStream.close(); + lInputStream.close(); + } + } };