model: always show username instead of ringid when possible

Always display registered name instead of ringid by
moving higher-level lookup logic to LRC model for
contacts, contact requests and accounts.

For instance, CallService is changed to directly return
SipCall instances and handles association of contacts to calls.
ConfigurationManager interface is unified in AccountService.

This allows to minimize the number of name lookup API calls
and to preserve the lookup result over the
application lifetime, while making sure the registered name
is used consistently across the Android client and users
of the libringclient Java library.

Change-Id: I771ddc11d670f28f699d2381773fa223fdd0ef83
34 files changed
tree: 78e57928666c04d62d79bc4bea7e6c0ba91825d3
  1. .tx/
  2. docker/
  3. ring-android/
  4. .gitignore
  5. .gitreview
  6. build-daemon.sh
  7. compile.sh
  8. configure.sh
  9. COPYING
  10. gen-env.sh
  11. Makefile
  12. README.md
  13. update-translations.sh
README.md

Ring Android

This repository is meant for the porting of Ring to Android.

AppCI
Download on the Play Store Download on F-DroidBuild Status

Environment

Clone this as a submodule of: https://gerrit-ring.savoirfairelinux.com/#/admin/projects/ring-project to obtain the required Ring daemon source.

You can also manually clone the daemon and override the DAEMON_DIR during compilation

Make sure you have the android-ndk and android-sdk, and you'll want something like this in your .bashrc (or equivalent):

export ANDROID_NDK=$HOME/src/android-ndk
export ANDROID_NDK_ROOT=$ANDROID_NDK
export ANDROID_SDK=$HOME/src/android-sdk-linux
export ANDROID_HOME=$ANDROID_SDK
export PATH=$ANDROID_SDK/platform-tools:${PATH}

install swig-2.0.6 or later and python-2.7 or later on your system

Build instructions

Supported archs are: armeabi-v7a and x86

Example:

ANDROID_ABI="armeabi-v7a x86"

Then:

./compile.sh

If you cloned the daemon in a custom directory (other than ../daemon), you can specify it using an absolute path:

DAEMON_DIR=custom_path ./compile.sh

When all else fails:

git clean -dfx
cd ../daemon (or custom_path)
git clean -dfx

And start again.

Update translations

Update translations using the Transifex client (tx) :

./update-translations.sh

Debugging

Retrieve client log from device (client must be running before executing this)

adb logcat *:D | grep `adb shell ps | egrep 'cx.ring' | cut -c10-15` > logring.txt

Common issues

  • Makeinfo issue makeinfo: command not found WARNING: 'makeinfo' is missing on your system. Solution: Install texinfo package containing makeinfo dep.

  • Unable to locate tools.jar Solution: Your java installation is not pointing to a JDK. Install one, or make JAVA_HOME point to it.

  • When building the apk error in build-tools error while loading shared libraries: libstdc++.so.6 Solution: Install lib32stdc++6 lib32z1-dev

  • When compiling on Fedora error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory Solution*: sudo dnf install ncurses-compat-libs