From f27098c9035c0971f7b4c2f9db47a2686d8d513a Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Tue, 12 Apr 2016 09:34:23 +0200 Subject: [PATCH 1/7] check_tools.sh: fix libtool detection on mac --- .gitmodules | 2 ++ check_tools.sh | 6 +++++- prepare.py | 26 ++++++++++++++++---------- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/.gitmodules b/.gitmodules index ddca27060..9753c1b84 100644 --- a/.gitmodules +++ b/.gitmodules @@ -53,6 +53,7 @@ [submodule "submodules/externals/libxml2"] path = submodules/externals/libxml2 url = git://git.gnome.org/libxml2.git + ignore = dirty [submodule "submodules/externals/libupnp"] path = submodules/externals/libupnp url = git://git.linphone.org/libupnp.git @@ -65,6 +66,7 @@ [submodule "submodules/externals/opus"] path = submodules/externals/opus url = git://git.linphone.org/opus.git + ignore = dirty [submodule "submodules/mswebrtc"] path = submodules/mswebrtc url = git://git.linphone.org/mswebrtc.git diff --git a/check_tools.sh b/check_tools.sh index cba82f787..0c19fb138 100755 --- a/check_tools.sh +++ b/check_tools.sh @@ -18,7 +18,11 @@ check_installed() { for prog in automake autoconf pkg-config java ant yasm nasm wget; do check_installed "$prog" "it" done -check_installed "libtoolize" "libtool" +if [ $(uname) = "Darwin" ]; then + check_installed "libtool" "libtool" +else + check_installed "libtoolize" "libtool" +fi check_installed "ndk-build" "android NDK" if check_installed "android" "android SDK"; then check_installed "adb" "android SDK platform tools" diff --git a/prepare.py b/prepare.py index 0fd2c52c4..36837a5d9 100755 --- a/prepare.py +++ b/prepare.py @@ -24,7 +24,6 @@ import argparse import os -import platform import re import shutil import sys @@ -38,7 +37,8 @@ try: import prepare except Exception as e: error( - "Could not find prepare module: {}, probably missing submodules/cmake-builder? Try running:\ngit submodule update --init --recursive".format(e)) + "Could not find prepare module: {}, probably missing submodules/cmake-builder? Try running:\n" + "git submodule sync && git submodule update --init --recursive".format(e)) exit(1) @@ -61,17 +61,20 @@ class AndroidTarget(prepare.Target): if os.path.isdir('liblinphone-sdk'): shutil.rmtree('liblinphone-sdk', ignore_errors=False, onerror=self.handle_remove_read_only) + class AndroidArmTarget(AndroidTarget): def __init__(self): AndroidTarget.__init__(self, 'arm') - self.additional_args += [ '-DENABLE_VIDEO=NO' ] + self.additional_args += ['-DENABLE_VIDEO=NO'] + class AndroidArmv7Target(AndroidTarget): def __init__(self): AndroidTarget.__init__(self, 'armv7') + class AndroidX86Target(AndroidTarget): def __init__(self): @@ -85,14 +88,14 @@ targets = { platforms = ['all', 'arm', 'armv7', 'x86'] - class PlatformListAction(argparse.Action): def __call__(self, parser, namespace, values, option_string=None): if values: for value in values: if value not in platforms: - message = ("invalid platform: {0!r} (choose from {1})".format(value, ', '.join([repr(platform) for platform in platforms]))) + message = ("invalid platform: {0!r} (choose from {1})".format( + value, ', '.join([repr(platform) for platform in platforms]))) raise argparse.ArgumentError(self, message) setattr(namespace, self.dest, values) @@ -134,7 +137,7 @@ def check_is_installed(binary, prog='it', warn=True): def check_tools(): ret = 0 - #at least FFmpeg requires no whitespace in sources path... + # at least FFmpeg requires no whitespace in sources path... if " " in os.path.dirname(os.path.realpath(__file__)): error("Invalid location: path should not contain any spaces.") ret = 1 @@ -380,11 +383,13 @@ def main(argv=None): argparser.add_argument( '--disable-gpl-third-parties', help="Disable GPL third parties such as FFMpeg, x264.", action='store_true') argparser.add_argument( - '--enable-non-free-codecs', help="Enable non-free codecs such as OpenH264, MPEG4, etc.. Final application must comply with their respective license (see README.md).", action='store_true') + '--enable-non-free-codecs', help="Enable non-free codecs such as OpenH264, MPEG4, " + "etc.. Final application must comply with their respective license (see README.md).", action='store_true') argparser.add_argument( '-f', '--force', help="Force preparation, even if working directory already exist.", action='store_true') argparser.add_argument( - '-G', '--generator', help="CMake build system generator (default: Unix Makefiles, use cmake -h to get the complete list).", default='Unix Makefiles', dest='generator') + '-G', '--generator', help="CMake build system generator (default: Unix Makefiles, use cmake -h to get the complete list).", + default='Unix Makefiles', dest='generator') argparser.add_argument( '-L', '--list-cmake-variables', help="List non-advanced CMake cache variables.", action='store_true', dest='list_cmake_variables') argparser.add_argument( @@ -392,7 +397,8 @@ def main(argv=None): argparser.add_argument( '-t', '--tunnel', help="Enable Tunnel.", action='store_true') argparser.add_argument('platform', nargs='*', action=PlatformListAction, default=[ - 'arm', 'armv7', 'x86'], help="The platform to build for (default is 'arm armv7 x86'). Space separated architectures in list: {0}.".format(', '.join([repr(platform) for platform in platforms]))) + 'arm', 'armv7', 'x86'], help="The platform to build for (default is 'arm armv7 x86'). " + "Space separated architectures in list: {0}.".format(', '.join([repr(platform) for platform in platforms]))) args, additional_args2 = argparser.parse_known_args() @@ -425,7 +431,7 @@ def main(argv=None): additional_args += ["-DENABLE_MPEG4=YES"] additional_args += ["-DENABLE_OPENH264=YES"] additional_args += ["-DENABLE_VPX=YES"] - #additional_args += ["-DENABLE_X264=YES"] # Do not activate x264 because it has text relocation issues + # additional_args += ["-DENABLE_X264=YES"] # Do not activate x264 because it has text relocation issues if args.disable_gpl_third_parties is True: additional_args += ["-DENABLE_GPL_THIRD_PARTIES=NO"] From 957cb7f10bed80b2723998b1b47b9704f40583c6 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 13 Apr 2016 13:37:41 +0200 Subject: [PATCH 2/7] update submodule bcg729 with annex b version --- submodules/bcg729 | 2 +- tests/ant.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/bcg729 b/submodules/bcg729 index 4edc094bc..78aedfdf5 160000 --- a/submodules/bcg729 +++ b/submodules/bcg729 @@ -1 +1 @@ -Subproject commit 4edc094bcfee08032b6d6fb38cfb00ecf66a9f49 +Subproject commit 78aedfdf5cb02565ceb48e4acef202462c2f0dbf diff --git a/tests/ant.properties b/tests/ant.properties index 7f387c9fd..15f57bb33 100644 --- a/tests/ant.properties +++ b/tests/ant.properties @@ -15,5 +15,5 @@ # 'key.alias' for the name of the key to use. # The password will be asked during the build when you use the 'release' target. -tested.project.dir=../ +tested.project.dir=. test.runner=com.zutubi.android.junitreport.JUnitReportTestRunner From 7003d02fbee65589af76e98b1833604c469be068 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Wed, 13 Apr 2016 14:21:51 +0200 Subject: [PATCH 3/7] submodules: update cmake-builder to fix vp8 build on arm --- submodules/cmake-builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 4c486cf29..4d1363d71 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 4c486cf295bc4e8187c8315e95a687a030456ac3 +Subproject commit 4d1363d714554dd3c1e8497d6ad12fb7dcb55163 From a80959c36607d985de8e1e5383b48cc52b199017 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Wed, 13 Apr 2016 14:22:03 +0200 Subject: [PATCH 4/7] submodules: update linphone to fix liblinphone tester account creation --- submodules/bctoolbox | 2 +- submodules/linphone | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/bctoolbox b/submodules/bctoolbox index 29e865b55..b3a628c7d 160000 --- a/submodules/bctoolbox +++ b/submodules/bctoolbox @@ -1 +1 @@ -Subproject commit 29e865b5566890ae1ba3a50b0699337ef926d6b5 +Subproject commit b3a628c7de0f6f74e09e60b134de6e3ebfbd3a54 diff --git a/submodules/linphone b/submodules/linphone index f0cd38ef2..6f48b4151 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit f0cd38ef228cf26bfdd0fd8bd037fd74fb1e1c5a +Subproject commit 6f48b4151cce800cb300a2c4c8dd8b32e7275c1b From 2b05017caebade6f997ea937f1ef0fb11ec561d2 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Wed, 13 Apr 2016 15:03:57 +0200 Subject: [PATCH 5/7] submodules: update cmake-builder to properly disable video on arm --- submodules/cmake-builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 4d1363d71..1bff470db 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 4d1363d714554dd3c1e8497d6ad12fb7dcb55163 +Subproject commit 1bff470db4829ed6c83712ee4a4b8cf973c6188a From 4e9446b608e19c54d81d0f692003ca1f2f9fa2f3 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Thu, 14 Apr 2016 09:25:30 +0200 Subject: [PATCH 6/7] submodules: update belcard --- submodules/belcard | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/belcard b/submodules/belcard index 129a9f0cb..da7030bb3 160000 --- a/submodules/belcard +++ b/submodules/belcard @@ -1 +1 @@ -Subproject commit 129a9f0cbb880361d1f10c08fd4c2bd188ec0565 +Subproject commit da7030bb322f4cd74638e6710007b1470c1b602e From 448355136be4ed6f836cbfdcfda0b19d6ce62608 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 14 Apr 2016 11:58:53 +0200 Subject: [PATCH 7/7] This should sort the contact list alphabetically --- src/org/linphone/ContactsListFragment.java | 6 ++---- src/org/linphone/ContactsManager.java | 2 ++ src/org/linphone/LinphoneContact.java | 10 +++++++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/org/linphone/ContactsListFragment.java b/src/org/linphone/ContactsListFragment.java index e43e99b41..35dfae08d 100644 --- a/src/org/linphone/ContactsListFragment.java +++ b/src/org/linphone/ContactsListFragment.java @@ -457,10 +457,8 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O public View getView(final int position, View convertView, ViewGroup parent) { View view = null; - LinphoneContact contact = null; - do { - contact = (LinphoneContact) getItem(position); - } while (contact == null); + LinphoneContact contact = (LinphoneContact) getItem(position); + if (contact == null) return null; if (convertView != null) { view = convertView; diff --git a/src/org/linphone/ContactsManager.java b/src/org/linphone/ContactsManager.java index 9518298cc..d6725936d 100644 --- a/src/org/linphone/ContactsManager.java +++ b/src/org/linphone/ContactsManager.java @@ -20,6 +20,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. package org.linphone; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import org.linphone.compatibility.Compatibility; @@ -245,6 +246,7 @@ public class ContactsManager extends ContentObserver { for (LinphoneContact contact : contacts) { contact.refresh(); } + Collections.sort(contacts); return contacts; } diff --git a/src/org/linphone/LinphoneContact.java b/src/org/linphone/LinphoneContact.java index 2d92e33dc..2a77c1660 100644 --- a/src/org/linphone/LinphoneContact.java +++ b/src/org/linphone/LinphoneContact.java @@ -21,6 +21,7 @@ package org.linphone; import java.io.Serializable; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import org.linphone.core.LinphoneAddress; import org.linphone.core.LinphoneCore; @@ -39,7 +40,7 @@ import android.net.Uri; import android.provider.ContactsContract; import android.provider.ContactsContract.CommonDataKinds; -public class LinphoneContact implements Serializable { +public class LinphoneContact implements Serializable, Comparable { /** * */ @@ -437,6 +438,13 @@ public class LinphoneContact implements Serializable { return createLinphoneFriend(); } + @Override + public int compareTo(LinphoneContact contact) { + String firstLetter = getFullName().substring(0, 1).toUpperCase(Locale.getDefault()); + String contactfirstLetter = contact.getFullName().substring(0, 1).toUpperCase(Locale.getDefault()); + return firstLetter.compareTo(contactfirstLetter); + } + private Uri getContactPictureUri(String id) { Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(id)); return Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);