diff --git a/.gitignore b/.gitignore index 2c6cd49a5..a62397e46 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,7 @@ tests/*$py.class tests/build.xml tests/project.properties ant_password.properties +liblinphone_tester/liblinphonetester_* +liblinphone_tester/tests.output +tests/linphonetester_* +tests/tests.output diff --git a/.gitmodules b/.gitmodules index 21d5755ff..03f8848b5 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,12 +1,12 @@ [submodule "linphone"] path = submodules/linphone - url = git://git.linphone.org/linphone + url = git://git.linphone.org/linphone.git [submodule "submodules/externals/gsm"] path = submodules/externals/gsm url = git://git.linphone.org/gsm.git [submodule "submodules/externals/speex"] path = submodules/externals/speex - url = git://git.linphone.org/speex + url = git://git.linphone.org/speex.git [submodule "submodules/msilbc"] path = submodules/msilbc url = git://git.linphone.org/msilbc.git @@ -30,7 +30,7 @@ ignore = dirty [submodule "submodules/msamr"] path = submodules/msamr - url = git://git.linphone.org/msamr + url = git://git.linphone.org/msamr.git [submodule "submodules/externals/libvpx"] path = submodules/externals/libvpx url = https://chromium.googlesource.com/webm/libvpx @@ -52,13 +52,13 @@ url = git://git.linphone.org/bcg729.git [submodule "submodules/belle-sip"] path = submodules/belle-sip - url = git://git.linphone.org/belle-sip + url = git://git.linphone.org/belle-sip.git [submodule "submodules/externals/antlr3"] path = submodules/externals/antlr3 url = git://git.linphone.org/antlr3.git [submodule "submodules/externals/libxml2"] path = submodules/externals/libxml2 - url = git://git.gnome.org/libxml2 + url = git://git.gnome.org/libxml2.git [submodule "submodules/externals/libupnp"] path = submodules/externals/libupnp url = git://git.linphone.org/libupnp.git @@ -73,7 +73,7 @@ url = git://git.linphone.org/polarssl.git [submodule "submodules/externals/opus"] path = submodules/externals/opus - url = git://git.opus-codec.org/opus.git + url = git://git.linphone.org/opus.git [submodule "submodules/mswebrtc"] path = submodules/mswebrtc url = git://git.linphone.org/mswebrtc.git diff --git a/README b/README index 960700b70..90da5a6cf 100644 --- a/README +++ b/README @@ -9,7 +9,7 @@ To build liblinphone for Android, you must: ------------------------------------------- 0) download the Android sdk with platform-tools and tools updated to latest revision (at least API 16 is needed), then add both 'tools' and 'platform-tools' folders in your path. 1) download the Android ndk (=r10c) from google and add it to your path (no symlink !!!). -2) install yasm, nasm, curl, ant, rsync and the autotools: autoconf, automake, aclocal, libtoolize, pkgconfig +2) install yasm, nasm, curl, ant, rsync, autoconf, automake, aclocal, libtool, pkgconfig, bc, perl-LWP-Protocol-https, patch, vim-common On 64 bits linux systems you'll need the ia32-libs package With the latest Debian (multiarch), you need this: dpkg --add-architecture i386 diff --git a/liblinphone_tester/custom_rules.xml b/liblinphone_tester/custom_rules.xml index 9adcb8c2f..f05b9eb06 100644 --- a/liblinphone_tester/custom_rules.xml +++ b/liblinphone_tester/custom_rules.xml @@ -43,6 +43,7 @@ + diff --git a/liblinphone_tester/src/org/linphone/tester/LogsActivity.java b/liblinphone_tester/src/org/linphone/tester/LogsActivity.java index 02df05446..40c7062cf 100644 --- a/liblinphone_tester/src/org/linphone/tester/LogsActivity.java +++ b/liblinphone_tester/src/org/linphone/tester/LogsActivity.java @@ -23,9 +23,10 @@ public class LogsActivity extends Activity { @Override public void run() { - String path = mLogsActivity.getFilesDir().getAbsolutePath()+"/config_files"; + String res_path = mLogsActivity.getFilesDir().getAbsolutePath()+"/config_files"; + String write_path = mLogsActivity.getCacheDir().getPath(); tester = new TesterLogger(mLogsActivity); - List list = new LinkedList(Arrays.asList(new String[]{"tester", "--verbose", "--config", path})); + List list = new LinkedList(Arrays.asList(new String[]{"tester", "--verbose", "--resource-dir", res_path, "--writable-dir", write_path})); list.addAll(Arrays.asList(mArgs)); String[] array = list.toArray(new String[list.size()]); tester.run(array); @@ -37,7 +38,7 @@ public class LogsActivity extends Activity { }); } } - + private static String join(String [] array, String separator) { String ret = ""; for(int i = 0; i < array.length; ++i) { @@ -48,7 +49,7 @@ public class LogsActivity extends Activity { } return ret; } - + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -75,7 +76,7 @@ public class LogsActivity extends Activity { getMenuInflater().inflate(R.menu.activity_logs, menu); return true; } - + public void addLog(int level, String message) { mLogs += message; ((TextView)findViewById(R.id.textView1)).append(message); @@ -86,7 +87,7 @@ public class LogsActivity extends Activity { finish(); } } - + public void done() { } } diff --git a/liblinphone_tester/src/org/linphone/tester/TestUnit.java b/liblinphone_tester/src/org/linphone/tester/TestUnit.java index d33211495..2e2f00707 100644 --- a/liblinphone_tester/src/org/linphone/tester/TestUnit.java +++ b/liblinphone_tester/src/org/linphone/tester/TestUnit.java @@ -16,28 +16,28 @@ public class TestUnit extends AndroidTestCase { private String mSuite; private String mTest; static Boolean isAssetCopied=false; - + public TestUnit(String suite, String test) { mSuite = suite; mTest = test; setName(suite + "/" + test); } - + public TestUnit(String name) { - String[] tab = name.split("/"); + String[] tab = name.split("/"); mSuite = tab[0]; mTest = tab[1]; setName(name); } - + static public void copyAssetsFromPackage(Context ctx) throws IOException { copyAssetsFromPackage(ctx,"config_files"); } - - + + public static void copyAssetsFromPackage(Context ctx,String fromPath) throws IOException { new File(ctx.getFilesDir().getPath()+"/"+fromPath).mkdir(); - + for (String f :ctx.getAssets().list(fromPath)) { String current_name=fromPath+"/"+f; InputStream lInputStream; @@ -50,8 +50,8 @@ public class TestUnit extends AndroidTestCase { continue; } FileOutputStream lOutputStream = new FileOutputStream(new File(ctx.getFilesDir().getPath()+"/"+current_name));//ctx.openFileOutput (fromPath+"/"+f, 0); - - + + int readByte; byte[] buff = new byte[8048]; while (( readByte = lInputStream.read(buff)) != -1) { @@ -75,13 +75,15 @@ public class TestUnit extends AndroidTestCase { protected void tearDown() throws Exception { super.tearDown(); } - + @Override protected void runTest() { - String path = getContext().getFilesDir().getPath()+"/config_files"; + String res_path = getContext().getFilesDir().getPath()+"/config_files"; + String write_path = getContext().getCacheDir().getPath(); Tester tester = new Tester(); - List list = new LinkedList(Arrays.asList(new String[]{"tester", "--verbose", "--config", path, "--suite", mSuite, "--test", mTest})); + + List list = new LinkedList(Arrays.asList(new String[]{"tester", "--verbose", "--resource-dir", res_path, "--writable-dir", write_path, "--suite", mSuite, "--test", mTest})); String[] array = list.toArray(new String[list.size()]); Assert.assertTrue(tester.run(array) == 0); } -} \ No newline at end of file +} diff --git a/src/org/linphone/ui/BubbleChat.java b/src/org/linphone/ui/BubbleChat.java index 7ec8b9e11..6851c78e3 100644 --- a/src/org/linphone/ui/BubbleChat.java +++ b/src/org/linphone/ui/BubbleChat.java @@ -113,29 +113,33 @@ public class BubbleChat implements LinphoneChatMessage.LinphoneChatMessageListen if (externalBodyUrl != null || fileTransferContent != null) { Button download = (Button) view.findViewById(R.id.download); ImageView imageView = (ImageView) view.findViewById(R.id.image); - + String appData = message.getAppData(); - if (appData == null || (!LinphoneManager.getInstance().isMessagePending(nativeMessage) && - !nativeMessage.isOutgoing() && appData.contains(context.getString(R.string.temp_photo_name_with_date).split("%s")[0]))) { + if(appData != null && !LinphoneManager.getInstance().isMessagePending(nativeMessage) && + !nativeMessage.isOutgoing() && appData.contains(context.getString(R.string.temp_photo_name_with_date).split("%s")[0])){ + appData = null; + } + + if (appData == null ){ LinphoneManager.addListener(this); - download.setVisibility(View.VISIBLE); - download.setOnClickListener(new OnClickListener() { - @Override - public void onClick(View v) { - v.setEnabled(false); - spinner.setVisibility(View.VISIBLE); - v.setVisibility(View.GONE); - String filename = context.getString(R.string.temp_photo_name_with_date).replace("%s", String.valueOf(System.currentTimeMillis())); - File file = new File(Environment.getExternalStorageDirectory(), filename); - nativeMessage.setListener(LinphoneManager.getInstance()); - nativeMessage.setFileTransferFilepath(file.getPath()); - nativeMessage.downloadFile(); - nativeMessage.setAppData(filename); - LinphoneManager.getInstance().addDownloadMessagePending(nativeMessage); - } - }); - } else { - if(LinphoneManager.getInstance().isMessagePending(nativeMessage)){ + download.setVisibility(View.VISIBLE); + download.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + v.setEnabled(false); + v.setVisibility(View.GONE); + spinner.setVisibility(View.VISIBLE); + String filename = context.getString(R.string.temp_photo_name_with_date).replace("%s", String.valueOf(System.currentTimeMillis())); + File file = new File(Environment.getExternalStorageDirectory(), filename); + nativeMessage.setAppData(filename); + LinphoneManager.getInstance().addDownloadMessagePending(nativeMessage); + nativeMessage.setListener(LinphoneManager.getInstance()); + nativeMessage.setFileTransferFilepath(file.getPath()); + nativeMessage.downloadFile(); + } + }); + } else { + if (LinphoneManager.getInstance().isMessagePending(nativeMessage)) { LinphoneManager.addListener(this); download.setEnabled(false); ProgressBar spinner = (ProgressBar) view.findViewById(R.id.spinner); @@ -144,9 +148,10 @@ public class BubbleChat implements LinphoneChatMessage.LinphoneChatMessageListen } else { LinphoneManager.removeListener(this); imageView.setVisibility(View.VISIBLE); + download.setVisibility(View.GONE); loadBitmap(appData, imageView); } - } + } } else { TextView msgView = (TextView) view.findViewById(R.id.message); if (msgView != null) { diff --git a/submodules/belle-sip b/submodules/belle-sip index 91ae7c164..1ced63785 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 91ae7c164d9d20fd36657943a0aba807b4dfeb4f +Subproject commit 1ced637855bb052f2475847c867f648338b84376 diff --git a/submodules/bzrtp b/submodules/bzrtp index 4a4f757f6..253e1543f 160000 --- a/submodules/bzrtp +++ b/submodules/bzrtp @@ -1 +1 @@ -Subproject commit 4a4f757f66b02cf8834fd8d7a939bf54b245ad7e +Subproject commit 253e1543f13576be66fb4ed5396c0b99eeb08fb4 diff --git a/submodules/linphone b/submodules/linphone index e7dd35efa..d3bd19d39 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit e7dd35efa0f0d250db66fadb11994b4f48e088b1 +Subproject commit d3bd19d39ddeee28505c12b9013088d0c3a67204 diff --git a/tests/custom_rules.xml b/tests/custom_rules.xml index a8100b078..87abcd905 100644 --- a/tests/custom_rules.xml +++ b/tests/custom_rules.xml @@ -35,6 +35,7 @@ +