Merge branch 'dev_group_chat' of git.linphone.org:linphone-android into dev_qrcode
This commit is contained in:
commit
9335843872
53 changed files with 17832 additions and 4814 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -14,7 +14,7 @@ default.properties
|
||||||
doc
|
doc
|
||||||
gen
|
gen
|
||||||
liblinphone-junit-report.xml
|
liblinphone-junit-report.xml
|
||||||
liblinphone-sdk
|
liblinphone-sdk/android-*
|
||||||
liblinphonetester_*.zip
|
liblinphonetester_*.zip
|
||||||
libs
|
libs
|
||||||
libs-debug
|
libs-debug
|
||||||
|
@ -29,7 +29,6 @@ proguard-project.txt
|
||||||
project.properties
|
project.properties
|
||||||
res/.DS_Store
|
res/.DS_Store
|
||||||
res/raw/lpconfig.xsd
|
res/raw/lpconfig.xsd
|
||||||
res/raw/rootca.pem
|
|
||||||
submodules/externals/build/cunit/CUnit/
|
submodules/externals/build/cunit/CUnit/
|
||||||
submodules/externals/build/ffmpeg/arm/
|
submodules/externals/build/ffmpeg/arm/
|
||||||
submodules/externals/build/ffmpeg/x86
|
submodules/externals/build/ffmpeg/x86
|
||||||
|
@ -48,7 +47,7 @@ tests/tests.output
|
||||||
WORK
|
WORK
|
||||||
.d
|
.d
|
||||||
google-services.json
|
google-services.json
|
||||||
gradle.properties
|
|
||||||
.*clang*
|
.*clang*
|
||||||
linphone.iml
|
linphone.iml
|
||||||
src/linphone-wrapper
|
src/linphone-wrapper
|
||||||
|
liblinphone_tester/res/raw/
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
<manifest package="org.linphone"
|
<manifest package="org.linphone"
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:installLocation="auto"
|
android:installLocation="auto"
|
||||||
android:versionCode="3995"
|
android:versionCode="3996"
|
||||||
android:versionName="3.99.4">
|
android:versionName="3.99.5">
|
||||||
|
|
||||||
<uses-sdk
|
<uses-sdk
|
||||||
android:minSdkVersion="16"
|
android:minSdkVersion="16"
|
||||||
|
|
17
build.gradle
17
build.gradle
|
@ -48,16 +48,13 @@ dependencies {
|
||||||
implementation 'com.google.firebase:firebase-messaging:15.0.2'
|
implementation 'com.google.firebase:firebase-messaging:15.0.2'
|
||||||
}
|
}
|
||||||
implementation 'com.android.support:support-v4:26.0.1'
|
implementation 'com.android.support:support-v4:26.0.1'
|
||||||
|
implementation project(':liblinphone-sdk')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (firebaseEnable()) {
|
if (firebaseEnable()) {
|
||||||
apply plugin: 'com.google.gms.google-services'
|
apply plugin: 'com.google.gms.google-services'
|
||||||
}
|
}
|
||||||
|
|
||||||
//// Submodule Dir /////
|
|
||||||
def submoduleDir = ['submodules/mediastreamer2/java/src']
|
|
||||||
////////////////////////
|
|
||||||
|
|
||||||
///// Exclude Files /////
|
///// Exclude Files /////
|
||||||
def excludeFiles = []
|
def excludeFiles = []
|
||||||
// Exclude firebase file if not enable
|
// Exclude firebase file if not enable
|
||||||
|
@ -68,7 +65,7 @@ if (!firebaseEnable()) {
|
||||||
excludeFiles.add('**/gcm*')
|
excludeFiles.add('**/gcm*')
|
||||||
println '[Push Notification] Firebase enabled'
|
println '[Push Notification] Firebase enabled'
|
||||||
}
|
}
|
||||||
excludeFiles.add('**/mediastream/MediastreamerActivity.java')
|
|
||||||
excludeFiles.add('src/android/org/linphone/tutorials/*.java')
|
excludeFiles.add('src/android/org/linphone/tutorials/*.java')
|
||||||
|
|
||||||
def excludePackage = []
|
def excludePackage = []
|
||||||
|
@ -110,20 +107,19 @@ android {
|
||||||
packaged {
|
packaged {
|
||||||
initWith release
|
initWith release
|
||||||
signingConfig null
|
signingConfig null
|
||||||
|
matchingFallbacks = ['debug', 'release']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
manifest.srcFile 'AndroidManifest.xml'
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
def srcDirs = submoduleDir
|
def srcDirs = ['src/android']
|
||||||
srcDirs.addAll(['src/linphone-wrapper', 'src/android'])
|
|
||||||
java.srcDirs = srcDirs
|
java.srcDirs = srcDirs
|
||||||
resources.srcDirs = srcDirs
|
resources.srcDirs = srcDirs
|
||||||
aidl.srcDirs = srcDirs
|
aidl.srcDirs = srcDirs
|
||||||
renderscript.srcDirs = srcDirs
|
renderscript.srcDirs = srcDirs
|
||||||
res.srcDirs = ['res']
|
res.srcDirs = ['res']
|
||||||
assets.srcDirs = ['assets']
|
assets.srcDirs = ['assets']
|
||||||
jniLibs.srcDirs = ['libs']
|
|
||||||
java.excludes = excludeFiles
|
java.excludes = excludeFiles
|
||||||
|
|
||||||
// Exclude some useless files
|
// Exclude some useless files
|
||||||
|
@ -138,16 +134,13 @@ android {
|
||||||
sourceSets {
|
sourceSets {
|
||||||
androidTest {
|
androidTest {
|
||||||
manifest.srcFile 'AndroidManifest.xml'
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
def srcDirs = submoduleDir
|
def srcDirs = ['src/android', 'src/androidTest']
|
||||||
srcDirs.addAll(['src/android',
|
|
||||||
'src/androidTest'])
|
|
||||||
java.srcDirs = srcDirs
|
java.srcDirs = srcDirs
|
||||||
resources.srcDirs = srcDirs
|
resources.srcDirs = srcDirs
|
||||||
aidl.srcDirs = srcDirs
|
aidl.srcDirs = srcDirs
|
||||||
renderscript.srcDirs = srcDirs
|
renderscript.srcDirs = srcDirs
|
||||||
res.srcDirs = ['res']
|
res.srcDirs = ['res']
|
||||||
assets.srcDirs = ['assets']
|
assets.srcDirs = ['assets']
|
||||||
jniLibs.srcDirs = ['libs']
|
|
||||||
java.excludes = excludeFiles
|
java.excludes = excludeFiles
|
||||||
|
|
||||||
// Exclude some useless files
|
// Exclude some useless files
|
||||||
|
|
|
@ -3,6 +3,5 @@ RELEASE_STORE_FILE=""
|
||||||
RELEASE_STORE_PASSWORD=
|
RELEASE_STORE_PASSWORD=
|
||||||
RELEASE_KEY_ALIAS=
|
RELEASE_KEY_ALIAS=
|
||||||
RELEASE_KEY_PASSWORD=
|
RELEASE_KEY_PASSWORD=
|
||||||
|
#source:https://docs.gradle.org/current/userguide/build_environment.html#sec:configuring_jvm_memory
|
||||||
org.gradle.jvmargs=-XX\:MaxHeapSize\=2048M -Xmx2048M
|
org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||||
#org.gradle.jvmargs=-Xmx1536M
|
|
||||||
|
|
|
@ -21,18 +21,40 @@ allprojects {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
javadocDeps
|
javadocDeps
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
apply plugin: 'com.android.library'
|
apply plugin: 'com.android.library'
|
||||||
|
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compile 'org.apache.commons:commons-compress:1.16.1'
|
compile 'org.apache.commons:commons-compress:1.16.1'
|
||||||
javadocDeps 'org.apache.commons:commons-compress:1.16.1'
|
javadocDeps 'org.apache.commons:commons-compress:1.16.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
def srcDir = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper']
|
def srcDir = ['../submodules/mediastreamer2/java/src']
|
||||||
|
def rootSdk
|
||||||
|
|
||||||
|
if (file('android-arm64/share/linphonej/java/org/linphone/core/Factory.java').exists() )
|
||||||
|
rootSdk = 'android-arm64'
|
||||||
|
else if (file('android-arm/share/linphonej/java/org/linphone/core/Factory.java').exists() )
|
||||||
|
rootSdk = 'android-arm'
|
||||||
|
else if (file('android-armv7/share/linphonej/java/org/linphone/core/Factory.java').exists() )
|
||||||
|
rootSdk = 'android-armv7'
|
||||||
|
else if (file('android-x86/share/linphonej/java/org/linphone/core/Factory.java').exists() )
|
||||||
|
rootSdk = 'android-x86'
|
||||||
|
else {
|
||||||
|
println ("native sdk not ready yet")
|
||||||
|
rootSdk = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
srcDir += [rootSdk+'/share/linphonej/java/org/linphone/core/']
|
||||||
|
|
||||||
|
|
||||||
def excludePackage = []
|
def excludePackage = []
|
||||||
|
|
||||||
|
@ -42,6 +64,13 @@ excludePackage.add('**/**tester**')
|
||||||
excludePackage.add('**/LICENSE.txt')
|
excludePackage.add('**/LICENSE.txt')
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {}
|
||||||
|
debug{}
|
||||||
|
}
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
compileSdkVersion 26
|
compileSdkVersion 26
|
||||||
buildToolsVersion "26.0.0"
|
buildToolsVersion "26.0.0"
|
||||||
|
@ -59,10 +88,10 @@ android {
|
||||||
main {
|
main {
|
||||||
manifest.srcFile 'AndroidManifestLibrary.xml'
|
manifest.srcFile 'AndroidManifestLibrary.xml'
|
||||||
java.srcDirs = srcDir
|
java.srcDirs = srcDir
|
||||||
resources.srcDirs = srcDir
|
|
||||||
aidl.srcDirs = srcDir
|
aidl.srcDirs = srcDir
|
||||||
|
assets.srcDirs = ["${buildDir}/sdk-assets/assets/"]
|
||||||
renderscript.srcDirs = srcDir
|
renderscript.srcDirs = srcDir
|
||||||
jniLibs.srcDirs = ['libs']
|
jniLibs.srcDirs = ['../libs']
|
||||||
|
|
||||||
java.excludes = ['**/mediastream/MediastreamerActivity.java']
|
java.excludes = ['**/mediastream/MediastreamerActivity.java']
|
||||||
|
|
||||||
|
@ -79,7 +108,7 @@ android {
|
||||||
///////////// Task /////////////
|
///////////// Task /////////////
|
||||||
|
|
||||||
task(releaseJavadoc, type: Javadoc, dependsOn: "assembleRelease") {
|
task(releaseJavadoc, type: Javadoc, dependsOn: "assembleRelease") {
|
||||||
source = ['submodules/mediastreamer2/java/src', 'src/linphone-wrapper']
|
source = srcDir
|
||||||
excludes = ['**/mediastream/MediastreamerActivity.java',
|
excludes = ['**/mediastream/MediastreamerActivity.java',
|
||||||
'**/**.html',
|
'**/**.html',
|
||||||
'**/**.aidl']
|
'**/**.aidl']
|
||||||
|
@ -109,3 +138,26 @@ task sdkZip(type: Zip) {
|
||||||
include '*'
|
include '*'
|
||||||
archiveName newSdkName
|
archiveName newSdkName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
task copyAssets(type: Sync) {
|
||||||
|
from rootSdk
|
||||||
|
into "${buildDir}/sdk-assets/assets/org.linphone.core"
|
||||||
|
include '**/*.png'
|
||||||
|
include '**/*.pem'
|
||||||
|
include '**/*.mkv'
|
||||||
|
include '**/*.wav'
|
||||||
|
include '**/*_grammar'
|
||||||
|
|
||||||
|
//rename '(.*)', '$1'.toLowerCase()
|
||||||
|
eachFile {
|
||||||
|
path = path.toLowerCase() //to workaround case insensitive fs (macosx)
|
||||||
|
println("Syncing sdk asset ${sourcePath} to ${path}")
|
||||||
|
}
|
||||||
|
doFirst {
|
||||||
|
println("Syncing sdk assets into root dir ${destinationDir}")
|
||||||
|
}
|
||||||
|
// do not copy those
|
||||||
|
includeEmptyDirs = false
|
||||||
|
|
||||||
|
}
|
||||||
|
project.tasks['preBuild'].dependsOn 'copyAssets'
|
|
@ -17,6 +17,9 @@
|
||||||
<uses-permission android:name="android.permission.CAMERA" />
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||||
|
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE"/>
|
||||||
|
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
|
|
|
@ -57,3 +57,16 @@ copy-files: ../submodules/linphone/tester/tester_hosts
|
||||||
cp -rf ../submodules/linphone/tester/rcfiles assets/config_files
|
cp -rf ../submodules/linphone/tester/rcfiles assets/config_files
|
||||||
cp -rf ../submodules/linphone/tester/sounds assets/config_files
|
cp -rf ../submodules/linphone/tester/sounds assets/config_files
|
||||||
cp -rf ../submodules/linphone/tester/vcards assets/config_files
|
cp -rf ../submodules/linphone/tester/vcards assets/config_files
|
||||||
|
mkdir -p res/raw
|
||||||
|
if test -d "../liblinphone-sdk/android-arm/share/belr/grammars"; then \
|
||||||
|
cp ../liblinphone-sdk/android-arm/share/belr/grammars/*_grammar res/raw/; \
|
||||||
|
fi
|
||||||
|
if test -d "../liblinphone-sdk/android-armv7/share/belr/grammars"; then \
|
||||||
|
cp ../liblinphone-sdk/android-armv7/share/belr/grammars/*_grammar res/raw/; \
|
||||||
|
fi
|
||||||
|
if test -d "../liblinphone-sdk/android-arm64/share/belr/grammars"; then \
|
||||||
|
cp ../liblinphone-sdk/android-arm64/share/belr/grammars/*_grammar res/raw/; \
|
||||||
|
fi
|
||||||
|
if test -d "../liblinphone-sdk/android-x86/share/belr/grammars"; then \
|
||||||
|
cp ../liblinphone-sdk/android-x86/share/belr/grammars/*_grammar res/raw/; \
|
||||||
|
fi
|
||||||
|
|
|
@ -37,7 +37,7 @@ dependencies {
|
||||||
compile group: 'junit', name: 'junit', version: '+'
|
compile group: 'junit', name: 'junit', version: '+'
|
||||||
compile group: 'com.jayway.android.robotium', name: 'robotium-solo', version: '+'
|
compile group: 'com.jayway.android.robotium', name: 'robotium-solo', version: '+'
|
||||||
compile fileTree(dir: 'libs', include: 'android-junit-report*.jar')
|
compile fileTree(dir: 'libs', include: 'android-junit-report*.jar')
|
||||||
compile project(":libLinphoneAndroidSdk")
|
compile project(":liblinphone-sdk")
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
|
|
7
liblinphone_tester/gradle.properties
Normal file
7
liblinphone_tester/gradle.properties
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
// Signing APK Release
|
||||||
|
RELEASE_STORE_FILE=""
|
||||||
|
RELEASE_STORE_PASSWORD=
|
||||||
|
RELEASE_KEY_ALIAS=
|
||||||
|
RELEASE_KEY_PASSWORD=
|
||||||
|
#source:https://docs.gradle.org/current/userguide/build_environment.html#sec:configuring_jvm_memory
|
||||||
|
org.gradle.jvmargs=-Xmx2g -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
6
liblinphone_tester/gradlew
vendored
6
liblinphone_tester/gradlew
vendored
|
@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS=""
|
||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
MAX_FD="maximum"
|
MAX_FD="maximum"
|
||||||
|
|
||||||
warn ( ) {
|
warn () {
|
||||||
echo "$*"
|
echo "$*"
|
||||||
}
|
}
|
||||||
|
|
||||||
die ( ) {
|
die () {
|
||||||
echo
|
echo
|
||||||
echo "$*"
|
echo "$*"
|
||||||
echo
|
echo
|
||||||
|
@ -155,7 +155,7 @@ if $cygwin ; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Escape application args
|
# Escape application args
|
||||||
save ( ) {
|
save () {
|
||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||||
echo " "
|
echo " "
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,2 @@
|
||||||
include ':libLinphoneAndroidSdk'
|
include ':liblinphone-sdk'
|
||||||
project(':libLinphoneAndroidSdk').projectDir = new File(rootProject.projectDir,'..')
|
project(':liblinphone-sdk').projectDir = new File(rootProject.projectDir,'../liblinphone-sdk')
|
||||||
project(':libLinphoneAndroidSdk').buildFileName = "libLinphoneAndroidSdk.gradle"
|
|
||||||
|
|
|
@ -26,7 +26,8 @@ public class TestUnit extends AndroidTestCase {
|
||||||
public TestUnit(String name) {
|
public TestUnit(String name) {
|
||||||
String[] tab = name.split("/");
|
String[] tab = name.split("/");
|
||||||
mSuite = tab[0];
|
mSuite = tab[0];
|
||||||
mTest = tab[1];
|
if (tab.length == 2)
|
||||||
|
mTest = tab[1];
|
||||||
setName(name);
|
setName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,6 +67,7 @@ public class TestUnit extends AndroidTestCase {
|
||||||
protected void setUp() throws Exception {
|
protected void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
if (isAssetCopied ==false) {
|
if (isAssetCopied ==false) {
|
||||||
|
Tester.setApplicationContext(getContext());
|
||||||
copyAssetsFromPackage(getContext());
|
copyAssetsFromPackage(getContext());
|
||||||
isAssetCopied=true;
|
isAssetCopied=true;
|
||||||
}
|
}
|
||||||
|
|
47
prepare.py
47
prepare.py
|
@ -104,7 +104,7 @@ class AndroidPreparator(prepare.Preparator):
|
||||||
def __init__(self, targets=android_targets):
|
def __init__(self, targets=android_targets):
|
||||||
prepare.Preparator.__init__(self, targets, default_targets=['armv7', 'arm64'], virtual_targets=android_virtual_targets)
|
prepare.Preparator.__init__(self, targets, default_targets=['armv7', 'arm64'], virtual_targets=android_virtual_targets)
|
||||||
self.min_supported_ndk = 16
|
self.min_supported_ndk = 16
|
||||||
self.max_supported_ndk = 16
|
self.max_supported_ndk = 17
|
||||||
self.unsupported_ndk_version = None
|
self.unsupported_ndk_version = None
|
||||||
self.min_cmake_version = "3.10"
|
self.min_cmake_version = "3.10"
|
||||||
self.release_with_debug_info = True
|
self.release_with_debug_info = True
|
||||||
|
@ -248,13 +248,10 @@ install-test:
|
||||||
java-clean:
|
java-clean:
|
||||||
\t./gradlew clean
|
\t./gradlew clean
|
||||||
|
|
||||||
$(TOPDIR)/res/raw/rootca.pem:
|
|
||||||
\tcp liblinphone-sdk/android-{first_arch}/share/linphone/rootca.pem $@
|
|
||||||
|
|
||||||
copy-libs:
|
copy-libs:
|
||||||
\trm -rf libs-debug/armeabi
|
\trm -rf libs-debug/armeabi
|
||||||
\trm -rf libs/armeabi
|
\trm -rf libs/armeabi
|
||||||
\trm -rf src/linphone-wrapper && mkdir -p src/linphone-wrapper/
|
|
||||||
\tif test -d "liblinphone-sdk/android-arm"; then \\
|
\tif test -d "liblinphone-sdk/android-arm"; then \\
|
||||||
\t\tmkdir -p libs-debug/armeabi && \\
|
\t\tmkdir -p libs-debug/armeabi && \\
|
||||||
\t\tcp -f liblinphone-sdk/android-arm/lib/lib*.so libs-debug/armeabi && \\
|
\t\tcp -f liblinphone-sdk/android-arm/lib/lib*.so libs-debug/armeabi && \\
|
||||||
|
@ -321,30 +318,6 @@ copy-libs:
|
||||||
\t\tcp -f liblinphone-sdk/android-x86/bin/gdbserver libs/x86 && \\
|
\t\tcp -f liblinphone-sdk/android-x86/bin/gdbserver libs/x86 && \\
|
||||||
\t\tcp -f liblinphone-sdk/android-x86/bin/gdb.setup libs/x86; \\
|
\t\tcp -f liblinphone-sdk/android-x86/bin/gdb.setup libs/x86; \\
|
||||||
\tfi
|
\tfi
|
||||||
\tif test -d "liblinphone-sdk/android-arm/share/linphonej"; then \\
|
|
||||||
\t\tcp -R liblinphone-sdk/android-arm/share/linphonej/java/* src/linphone-wrapper; \\
|
|
||||||
\tfi
|
|
||||||
\tif test -d "liblinphone-sdk/android-armv7/share/linphonej"; then \\
|
|
||||||
\t\tcp -R liblinphone-sdk/android-armv7/share/linphonej/java/* src/linphone-wrapper; \\
|
|
||||||
\tfi
|
|
||||||
\tif test -d "liblinphone-sdk/android-arm64/share/linphonej"; then \\
|
|
||||||
\t\tcp -R liblinphone-sdk/android-arm64/share/linphonej/java/* src/linphone-wrapper; \\
|
|
||||||
\tfi
|
|
||||||
\tif test -d "liblinphone-sdk/android-x86/share/linphonej"; then \\
|
|
||||||
\t\tcp -R liblinphone-sdk/android-x86/share/linphonej/java/* src/linphone-wrapper; \\
|
|
||||||
\tfi
|
|
||||||
\tif test -d "liblinphone-sdk/android-arm/share/belr/grammars"; then \\
|
|
||||||
\t\tcp liblinphone-sdk/android-arm/share/belr/grammars/cpim_grammar res/raw/; \\
|
|
||||||
\tfi
|
|
||||||
\tif test -d "liblinphone-sdk/android-armv7/share/belr/grammars"; then \\
|
|
||||||
\t\tcp liblinphone-sdk/android-armv7/share/belr/grammars/cpim_grammar res/raw/; \\
|
|
||||||
\tfi
|
|
||||||
\tif test -d "liblinphone-sdk/android-arm64/share/belr/grammars"; then \\
|
|
||||||
\t\tcp liblinphone-sdk/android-arm64/share/belr/grammars/cpim_grammar res/raw/; \\
|
|
||||||
\tfi
|
|
||||||
\tif test -d "liblinphone-sdk/android-x86/share/belr/grammars"; then \\
|
|
||||||
\t\tcp liblinphone-sdk/android-x86/share/belr/grammars/cpim_grammar res/raw/; \\
|
|
||||||
\tfi
|
|
||||||
|
|
||||||
copy-libs-mediastreamer:
|
copy-libs-mediastreamer:
|
||||||
\trm -rf submodules/mediastreamer2/java/libs/armeabi
|
\trm -rf submodules/mediastreamer2/java/libs/armeabi
|
||||||
|
@ -372,7 +345,7 @@ copy-libs-mediastreamer:
|
||||||
\t\tsh WORK/android-x86/strip.sh submodules/mediastreamer2/java/libs/x86/*.so; \\
|
\t\tsh WORK/android-x86/strip.sh submodules/mediastreamer2/java/libs/x86/*.so; \\
|
||||||
\tfi
|
\tfi
|
||||||
|
|
||||||
generate-apk: java-clean build copy-libs $(TOPDIR)/res/raw/rootca.pem
|
generate-apk: java-clean build copy-libs
|
||||||
\t./gradlew assembleDebug
|
\t./gradlew assembleDebug
|
||||||
|
|
||||||
quick: clean install-apk run-linphone
|
quick: clean install-apk run-linphone
|
||||||
|
@ -392,17 +365,17 @@ unsigned: java-clean build copy-libs
|
||||||
generate-sdk: liblinphone-android-sdk
|
generate-sdk: liblinphone-android-sdk
|
||||||
|
|
||||||
generate-javadoc:
|
generate-javadoc:
|
||||||
\t./gradlew -b libLinphoneAndroidSdk.gradle androidJavadocsJar
|
\t./gradlew -q androidJavadocsJar
|
||||||
\t./gradlew -b libLinphoneAndroidSdk.gradle sourcesJar
|
\t./gradlew -q sourcesJar
|
||||||
|
|
||||||
liblinphone-android-sdk: java-clean build copy-libs $(TOPDIR)/res/raw/rootca.pem
|
liblinphone-android-sdk: java-clean build copy-libs
|
||||||
\t./gradlew -b libLinphoneAndroidSdk.gradle androidJavadocsJar
|
\t./gradlew -q androidJavadocsJar
|
||||||
\t./gradlew -b libLinphoneAndroidSdk.gradle sourcesJar
|
\t./gradlew -q sourcesJar
|
||||||
\t./gradlew -b libLinphoneAndroidSdk.gradle assembleRelease
|
\t./gradlew -q assembleRelease
|
||||||
\t@mv $(TOPDIR)/bin/outputs/aar/*.aar $(TOPDIR)/bin/outputs/aar/liblinphone-sdk.aar
|
\t@mv $(TOPDIR)/bin/outputs/aar/*.aar $(TOPDIR)/bin/outputs/aar/liblinphone-sdk.aar
|
||||||
\t./gradlew -b libLinphoneAndroidSdk.gradle sdkZip
|
\t./gradlew -q sdkZip
|
||||||
|
|
||||||
linphone-android-sdk: java-clean build copy-libs $(TOPDIR)/res/raw/rootca.pem
|
linphone-android-sdk: java-clean build copy-libs
|
||||||
\t./gradlew -b linphoneAndroidSdk.gradle androidJavadocsJar
|
\t./gradlew -b linphoneAndroidSdk.gradle androidJavadocsJar
|
||||||
\t./gradlew -b linphoneAndroidSdk.gradle sourcesJar
|
\t./gradlew -b linphoneAndroidSdk.gradle sourcesJar
|
||||||
\t./gradlew -b linphoneAndroidSdk.gradle assembleRelease
|
\t./gradlew -b linphoneAndroidSdk.gradle assembleRelease
|
||||||
|
|
Binary file not shown.
BIN
res/raw/hold.mkv
BIN
res/raw/hold.mkv
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -16,6 +16,7 @@
|
||||||
<string name="sync_account_name">جهات اتصال لِنْفُونْ</string>
|
<string name="sync_account_name">جهات اتصال لِنْفُونْ</string>
|
||||||
<!--Common-->
|
<!--Common-->
|
||||||
<string name="username">اسم المستخدم</string>
|
<string name="username">اسم المستخدم</string>
|
||||||
|
<string name="userid">معرِّف المستخدم (اختياري)</string>
|
||||||
<string name="phone_number">رقم الهاتف</string>
|
<string name="phone_number">رقم الهاتف</string>
|
||||||
<string name="display_name">الاسم المعروض</string>
|
<string name="display_name">الاسم المعروض</string>
|
||||||
<string name="password">كلمة السر</string>
|
<string name="password">كلمة السر</string>
|
||||||
|
@ -110,6 +111,7 @@
|
||||||
<string name="use_email_for_validation">استخدم عنوان البريد الإلكتروني لتأكيد الحساب</string>
|
<string name="use_email_for_validation">استخدم عنوان البريد الإلكتروني لتأكيد الحساب</string>
|
||||||
<string name="login_with_username">استعمل اسم المستخدم وكلمة السر عوضا عن رقم هاتفك</string>
|
<string name="login_with_username">استعمل اسم المستخدم وكلمة السر عوضا عن رقم هاتفك</string>
|
||||||
<string name="phone_number_info_title">لأي غرض سيجري استخدام رقم هاتفي ؟</string>
|
<string name="phone_number_info_title">لأي غرض سيجري استخدام رقم هاتفي ؟</string>
|
||||||
|
<string name="phone_number_info_content">\nبفضل رقم هاتفك، يستطيع أصدقاؤك العثور عليك بسهولة.\n\nسوف ترى في دفتر عناوينك من يستخدم لِنْفُونْ كما سيتمكن أصدقاؤك كذلك من الوصول إليك عبر لِنْفُونْ.\n</string>
|
||||||
<string name="phone_number_link_info_content">
|
<string name="phone_number_link_info_content">
|
||||||
\nسيجدك أصدقاؤك بسهولة إن ربطت حسابك برقم هاتفك\\n\nسوف تجد في دفتر عناوينك من يستخدم لِنْفُونْ وسيتمكن أصدقاؤك من الوصول إليك بواسطة لِنْفُونْ كذلك.لِنْفُونْ.\n</string>
|
\nسيجدك أصدقاؤك بسهولة إن ربطت حسابك برقم هاتفك\\n\nسوف تجد في دفتر عناوينك من يستخدم لِنْفُونْ وسيتمكن أصدقاؤك من الوصول إليك بواسطة لِنْفُونْ كذلك.لِنْفُونْ.\n</string>
|
||||||
<string name="phone_number_link_info_content_already_account">يمكنك استخدام رقم هاتفي واحد مع حساب لنفون واحد.\n\nإن ربطت رقم هاتفك مع حساب آخر لكنك تود استخدام هذا الحساب، يمكنك ببساطة ربطه مع رقم هاتفك تلقائيا وسيُنقَل هذا الأخير إلى هذا الحساب.</string>
|
<string name="phone_number_link_info_content_already_account">يمكنك استخدام رقم هاتفي واحد مع حساب لنفون واحد.\n\nإن ربطت رقم هاتفك مع حساب آخر لكنك تود استخدام هذا الحساب، يمكنك ببساطة ربطه مع رقم هاتفك تلقائيا وسيُنقَل هذا الأخير إلى هذا الحساب.</string>
|
||||||
|
@ -178,6 +180,7 @@
|
||||||
<string name="displayed">قُرِأ</string>
|
<string name="displayed">قُرِأ</string>
|
||||||
<string name="delivered">سُلِّم</string>
|
<string name="delivered">سُلِّم</string>
|
||||||
<string name="resend">أعد اﻹرسال</string>
|
<string name="resend">أعد اﻹرسال</string>
|
||||||
|
<string name="error_opening_file">حدث خطأ خلال فتح هذا الملف.</string>
|
||||||
<!--Status Bar-->
|
<!--Status Bar-->
|
||||||
<string name="status_connected">مُسجَّل</string>
|
<string name="status_connected">مُسجَّل</string>
|
||||||
<string name="status_not_connected">غير مُسجَّل</string>
|
<string name="status_not_connected">غير مُسجَّل</string>
|
||||||
|
@ -207,9 +210,12 @@
|
||||||
<string name="call_stats_ip">صنف IP :</string>
|
<string name="call_stats_ip">صنف IP :</string>
|
||||||
<string name="call_stats_upload">صبيب الرفع :</string>
|
<string name="call_stats_upload">صبيب الرفع :</string>
|
||||||
<string name="call_stats_download">صبيب التنزيل :</string>
|
<string name="call_stats_download">صبيب التنزيل :</string>
|
||||||
|
<string name="call_stats_estimated_download">تقدير صبيب التنزيل :</string>
|
||||||
<string name="call_stats_ice">توصيل ICE :</string>
|
<string name="call_stats_ice">توصيل ICE :</string>
|
||||||
<string name="call_stats_video_resolution_sent">دقة الفيديو المُرسَل :</string>
|
<string name="call_stats_video_resolution_sent">دقة الفيديو المُرسَل :</string>
|
||||||
<string name="call_stats_video_resolution_received">دقة الفيديو المُستلَم :</string>
|
<string name="call_stats_video_resolution_received">دقة الفيديو المُستلَم :</string>
|
||||||
|
<string name="call_stats_video_fps_sent">معدل عرض الفيديو المُرسَل :</string>
|
||||||
|
<string name="call_stats_video_fps_received">معدل عرض الفيديو المُستلَم : </string>
|
||||||
<string name="call_stats_sender_loss_rate">معدل ضياع المُرسِل :</string>
|
<string name="call_stats_sender_loss_rate">معدل ضياع المُرسِل :</string>
|
||||||
<string name="call_stats_receiver_loss_rate">معدل ضياع المتلقي :</string>
|
<string name="call_stats_receiver_loss_rate">معدل ضياع المتلقي :</string>
|
||||||
<string name="call_stats_jitter_buffer">صِوان الارتعاش :</string>
|
<string name="call_stats_jitter_buffer">صِوان الارتعاش :</string>
|
||||||
|
@ -330,7 +336,9 @@
|
||||||
<string name="pref_auto_answer_time">مهلة التشغيل التلقائي (بالميلي-ثواني)</string>
|
<string name="pref_auto_answer_time">مهلة التشغيل التلقائي (بالميلي-ثواني)</string>
|
||||||
<string name="pref_rfc2833_dtmf">أرسل DTMF مع التدفق (RFC2833)</string>
|
<string name="pref_rfc2833_dtmf">أرسل DTMF مع التدفق (RFC2833)</string>
|
||||||
<string name="pref_sipinfo_dtmf">أرسل DTMF خارج التدفق (SIP INFO)</string>
|
<string name="pref_sipinfo_dtmf">أرسل DTMF خارج التدفق (SIP INFO)</string>
|
||||||
|
<string name="pref_call_timeout_title">مهلة المكالمة (بالثواني)</string>
|
||||||
<string name="pref_voice_mail">عنوان العلبة الصوتية</string>
|
<string name="pref_voice_mail">عنوان العلبة الصوتية</string>
|
||||||
|
<string name="pref_dialer_call">استخدمْ لِنْفُونْ كتطبيق هاتفك الافتراضي</string>
|
||||||
<!--Chat settings-->
|
<!--Chat settings-->
|
||||||
<string name="pref_chat_title">المحادثة</string>
|
<string name="pref_chat_title">المحادثة</string>
|
||||||
<string name="pref_image_sharing_server_title">خادم المشاركة</string>
|
<string name="pref_image_sharing_server_title">خادم المشاركة</string>
|
||||||
|
|
|
@ -158,6 +158,8 @@ Vos amis pourront vous joindre plus facilement si vous associez votre compte à
|
||||||
<string name="delete_conversation">Voulez-vous supprimer la discussion sélectionnée ?</string>
|
<string name="delete_conversation">Voulez-vous supprimer la discussion sélectionnée ?</string>
|
||||||
<string name="delete_message">Voulez-vous supprimer le message sélectionné ?</string>
|
<string name="delete_message">Voulez-vous supprimer le message sélectionné ?</string>
|
||||||
<string name="remote_composing">Votre correspondant est en train de taper...</string>
|
<string name="remote_composing">Votre correspondant est en train de taper...</string>
|
||||||
|
<string name="remote_composing_single">%s écrit</string>
|
||||||
|
<string name="remote_composing_multiple">%s écrivent</string>
|
||||||
<string name="share_picture_size_small">Petite</string>
|
<string name="share_picture_size_small">Petite</string>
|
||||||
<string name="share_picture_size_medium">Moyenne</string>
|
<string name="share_picture_size_medium">Moyenne</string>
|
||||||
<string name="share_picture_size_large">Grande</string>
|
<string name="share_picture_size_large">Grande</string>
|
||||||
|
@ -176,30 +178,29 @@ Vos amis pourront vous joindre plus facilement si vous associez votre compte à
|
||||||
<string name="processing_image">Traitement de l\'image, cela peut prendre quelques secondes selon sa taille</string>
|
<string name="processing_image">Traitement de l\'image, cela peut prendre quelques secondes selon sa taille</string>
|
||||||
<string name="displayed">Lu</string>
|
<string name="displayed">Lu</string>
|
||||||
<string name="delivered">Reçu</string>
|
<string name="delivered">Reçu</string>
|
||||||
|
<string name="undelivered">Reçu</string>
|
||||||
<string name="sent">Envoyé</string>
|
<string name="sent">Envoyé</string>
|
||||||
<string name="resend">Renvoyer</string>
|
<string name="resend">Renvoyer</string>
|
||||||
<string name="error_opening_file">Une erreur est survenue en tentant d\'ouvrir ce fichier.</string>
|
|
||||||
<string name="conversation_information">Infos</string>
|
<string name="conversation_information">Infos</string>
|
||||||
<string name="administrator">Admin</string>
|
<string name="administrator">Admin</string>
|
||||||
<string name="conversation_subject_hint">Nommez ce groupe</string>
|
<string name="conversation_subject_hint">Nommer le groupe</string>
|
||||||
<string name="chat_room_infos_title">Infos</string>
|
<string name="chat_room_infos_title">Infos</string>
|
||||||
<string name="chat_room_infos_admin">Admin</string>
|
<string name="chat_room_infos_admin">Admin</string>
|
||||||
<string name="chat_room_participants">Participants</string>
|
<string name="chat_room_participants">Participants</string>
|
||||||
<string name="chat_room_leave_group">Quitter le groupe</string>
|
<string name="chat_room_leave_group">Quitter le groupe</string>
|
||||||
<string name="chat_room_creation_filter_hint">Filtrer les contacts</string>
|
<string name="chat_room_creation_filter_hint">Rechercher un contact</string>
|
||||||
<string name="conference_created">groupe créé</string>
|
<string name="conference_created">Vous avez rejoint le groupe</string>
|
||||||
<string name="conference_destroyed">groupe détruit</string>
|
<string name="conference_destroyed">Vous avez quitté le groupe</string>
|
||||||
<string name="participant_added">%s a été ajouté</string>
|
<string name="participant_added">%s a rejoint le groupe</string>
|
||||||
<string name="participant_removed">%s a quitté</string>
|
<string name="participant_removed">%s a quitté le groupe</string>
|
||||||
<string name="device_added">nouvel appareil pour %s</string>
|
<string name="subject_changed">Nouveau sujet : %s</string>
|
||||||
<string name="device_removed">appareil de %s retiré</string>
|
<string name="admin_set">%s est devenu(e) admin</string>
|
||||||
<string name="subject_changed">nouveau sujet : %s</string>
|
|
||||||
<string name="admin_set">%s est admin</string>
|
|
||||||
<string name="admin_unset">%s n\'est plus admin</string>
|
<string name="admin_unset">%s n\'est plus admin</string>
|
||||||
<string name="chat_room_leave_dialog">Souhaitez-vous vraiment quitter ce groupe ?</string>
|
<string name="chat_room_you_are_now_admin">Vous êtes maintenant admin</string>
|
||||||
|
<string name="chat_room_leave_dialog">Voulez vous vraiment quitter cette conversation ?</string>
|
||||||
<string name="chat_room_leave_button">Quitter</string>
|
<string name="chat_room_leave_button">Quitter</string>
|
||||||
<string name="chat_room_delete_dialog">Voulez-vous supprimer et quitter les discussions sélectionnées ?</string>
|
<string name="chat_room_delete_dialog">Voulez vous vraiment quitter et supprimer les conversations selectionnées ?</string>
|
||||||
<string name="separator"> : </string>
|
<string name="imdn_info">Etat du message</string>
|
||||||
<!--Status Bar-->
|
<!--Status Bar-->
|
||||||
<string name="status_connected">Enregistré</string>
|
<string name="status_connected">Enregistré</string>
|
||||||
<string name="status_not_connected">Non enregistré</string>
|
<string name="status_not_connected">Non enregistré</string>
|
||||||
|
|
|
@ -11,10 +11,12 @@
|
||||||
<string name="tunnel_host"></string>
|
<string name="tunnel_host"></string>
|
||||||
<string name="about_version">Linphone Android %s</string>
|
<string name="about_version">Linphone Android %s</string>
|
||||||
<string name="about_liblinphone_version">Linphone Core %s</string>
|
<string name="about_liblinphone_version">Linphone Core %s</string>
|
||||||
|
<string name="about_text">GNU General Public License V2\n © 2010-2017 Belledonne Communications</string>
|
||||||
<string name="about_link">www.linphone.org</string>
|
<string name="about_link">www.linphone.org</string>
|
||||||
<string name="sync_account_name">linphoneに問い合わせる</string>
|
<string name="sync_account_name">linphoneに問い合わせる</string>
|
||||||
<!--Common-->
|
<!--Common-->
|
||||||
<string name="username">ユーザー名</string>
|
<string name="username">ユーザー名</string>
|
||||||
|
<string name="userid">ユーザID(オプション)</string>
|
||||||
<string name="phone_number">電話番号</string>
|
<string name="phone_number">電話番号</string>
|
||||||
<string name="display_name">表示名</string>
|
<string name="display_name">表示名</string>
|
||||||
<string name="password">パスワード</string>
|
<string name="password">パスワード</string>
|
||||||
|
@ -44,6 +46,7 @@
|
||||||
<string name="maybe_later">また今度</string>
|
<string name="maybe_later">また今度</string>
|
||||||
<string name="later">そのうち</string>
|
<string name="later">そのうち</string>
|
||||||
<string name="no">いいえ</string>
|
<string name="no">いいえ</string>
|
||||||
|
<string name="ok">OK</string>
|
||||||
<string name="yes">はい</string>
|
<string name="yes">はい</string>
|
||||||
<string name="link_account">アカウントをリンクする</string>
|
<string name="link_account">アカウントをリンクする</string>
|
||||||
<!--Launch screen-->
|
<!--Launch screen-->
|
||||||
|
@ -85,6 +88,8 @@
|
||||||
<string name="assistant_error_bad_credentials">ユーザー名かパスワードが異なります</string>
|
<string name="assistant_error_bad_credentials">ユーザー名かパスワードが異なります</string>
|
||||||
<string name="assistant_codec_down_question">Cisco Systems,Incが提供するOpenH264ビデオコーデックをダウンロードしますか?</string>
|
<string name="assistant_codec_down_question">Cisco Systems,Incが提供するOpenH264ビデオコーデックをダウンロードしますか?</string>
|
||||||
<string name="assistant_codec_downloading">Cisco Systems,Incが提供するOpenH264ビデオコーデックをダウンロードします。</string>
|
<string name="assistant_codec_downloading">Cisco Systems,Incが提供するOpenH264ビデオコーデックをダウンロードします。</string>
|
||||||
|
<string name="assistant_openh264_downloading">OpenH264をダウンロードしています。</string>
|
||||||
|
<string name="assistant_openh264_restart">OpenH264コーデックを使うためには再起動する必要があります%s</string>
|
||||||
<string name="assistant_codec_downloaded">Cisco Systems,Incが提供するOpenH264ビデオコーデックがダウンロードされました。</string>
|
<string name="assistant_codec_downloaded">Cisco Systems,Incが提供するOpenH264ビデオコーデックがダウンロードされました。</string>
|
||||||
<string name="wizard_failed">エラーが発生しました。のちほど再試行してください。</string>
|
<string name="wizard_failed">エラーが発生しました。のちほど再試行してください。</string>
|
||||||
<string name="wizard_server_unavailable">ネットワーク接続を確認してください。</string>
|
<string name="wizard_server_unavailable">ネットワーク接続を確認してください。</string>
|
||||||
|
@ -164,7 +169,10 @@
|
||||||
<string name="image_saved">保存した画像</string>
|
<string name="image_saved">保存した画像</string>
|
||||||
<string name="image_not_saved">エラー、画像が保存できません。</string>
|
<string name="image_not_saved">エラー、画像が保存できません。</string>
|
||||||
<string name="wait">お待ちください...</string>
|
<string name="wait">お待ちください...</string>
|
||||||
|
<string name="message_not_encrypted">このメッセージは暗号化されていません。</string>
|
||||||
|
<string name="message_cant_be_decrypted_notif">このメッセージを復号化することが出来ませんでした。</string>
|
||||||
<string name="processing_image">画像の処理は、ファイルサイズによっては数秒かかることがあります</string>
|
<string name="processing_image">画像の処理は、ファイルサイズによっては数秒かかることがあります</string>
|
||||||
|
<string name="resend">再送信</string>
|
||||||
<!--Status Bar-->
|
<!--Status Bar-->
|
||||||
<string name="status_connected">登録済</string>
|
<string name="status_connected">登録済</string>
|
||||||
<string name="status_not_connected">登録なし</string>
|
<string name="status_not_connected">登録なし</string>
|
||||||
|
@ -191,6 +199,8 @@
|
||||||
<string name="call_stats_ice">ICE 接続:</string>
|
<string name="call_stats_ice">ICE 接続:</string>
|
||||||
<string name="call_stats_video_resolution_sent">送信ビデオ解像度:</string>
|
<string name="call_stats_video_resolution_sent">送信ビデオ解像度:</string>
|
||||||
<string name="call_stats_video_resolution_received">受信ビデオ解像度:</string>
|
<string name="call_stats_video_resolution_received">受信ビデオ解像度:</string>
|
||||||
|
<string name="call_stats_video_fps_sent">送信ビデオfps:</string>
|
||||||
|
<string name="call_stats_video_fps_received">受信ビデオfps:</string>
|
||||||
<string name="call_stats_sender_loss_rate">送信ロス:</string>
|
<string name="call_stats_sender_loss_rate">送信ロス:</string>
|
||||||
<string name="call_stats_receiver_loss_rate">受信ロス:</string>
|
<string name="call_stats_receiver_loss_rate">受信ロス:</string>
|
||||||
<string name="call_stats_encoder_name">エンコーダー:</string>
|
<string name="call_stats_encoder_name">エンコーダー:</string>
|
||||||
|
@ -216,6 +226,7 @@
|
||||||
<string name="error_user_busy">ビジーです</string>
|
<string name="error_user_busy">ビジーです</string>
|
||||||
<string name="error_user_not_found">ユーザーがおりません</string>
|
<string name="error_user_not_found">ユーザーがおりません</string>
|
||||||
<string name="error_incompatible_media">互換性のないメディアパラメーター</string>
|
<string name="error_incompatible_media">互換性のないメディアパラメーター</string>
|
||||||
|
<string name="error_low_bandwidth">あなたの相手の通信幅が狭いのでビデオが使えません</string>
|
||||||
<string name="error_network_unreachable">ネットワークに到達できません</string>
|
<string name="error_network_unreachable">ネットワークに到達できません</string>
|
||||||
<string name="error_bad_credentials">不正な証明書です</string>
|
<string name="error_bad_credentials">不正な証明書です</string>
|
||||||
<string name="error_unauthorized">無断</string>
|
<string name="error_unauthorized">無断</string>
|
||||||
|
@ -309,6 +320,7 @@
|
||||||
<string name="pref_rfc2833_dtmf">DTMFをインバンド(RFC2833)で送信する</string>
|
<string name="pref_rfc2833_dtmf">DTMFをインバンド(RFC2833)で送信する</string>
|
||||||
<string name="pref_sipinfo_dtmf">DTMFをSIP(情報)で送信する</string>
|
<string name="pref_sipinfo_dtmf">DTMFをSIP(情報)で送信する</string>
|
||||||
<string name="pref_voice_mail">音声メールのURI</string>
|
<string name="pref_voice_mail">音声メールのURI</string>
|
||||||
|
<string name="pref_dialer_call">Linphoneを標準の電話アプリとして使う</string>
|
||||||
<!--Chat settings-->
|
<!--Chat settings-->
|
||||||
<string name="pref_chat_title">チャット</string>
|
<string name="pref_chat_title">チャット</string>
|
||||||
<string name="pref_image_sharing_server_title">共有サーバー</string>
|
<string name="pref_image_sharing_server_title">共有サーバー</string>
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
<string name="retry">Повторить</string>
|
<string name="retry">Повторить</string>
|
||||||
<string name="cancel">Отменить</string>
|
<string name="cancel">Отменить</string>
|
||||||
<string name="accept">Принять</string>
|
<string name="accept">Принять</string>
|
||||||
|
<string name="open">Открыть</string>
|
||||||
<string name="continue_text">Продолжить</string>
|
<string name="continue_text">Продолжить</string>
|
||||||
<string name="about">О программе</string>
|
<string name="about">О программе</string>
|
||||||
<string name="deny">Отклонить</string>
|
<string name="deny">Отклонить</string>
|
||||||
|
@ -67,19 +68,19 @@
|
||||||
<string name="assistant_remote_provisioning_desc">Укажите URL-адрес конфигурации</string>
|
<string name="assistant_remote_provisioning_desc">Укажите URL-адрес конфигурации</string>
|
||||||
<string name="transport">Транспорт</string>
|
<string name="transport">Транспорт</string>
|
||||||
<string name="assistant_create_account_phone_number_address">Ваш SIP-адрес</string>
|
<string name="assistant_create_account_phone_number_address">Ваш SIP-адрес</string>
|
||||||
<string name="assistant_login_linphone">Использовать учетную запись Linphone</string>
|
<string name="assistant_login_linphone">Использовать аккаунт Linphone</string>
|
||||||
<string name="assistant_login_generic">Использовать учетную запись SIP</string>
|
<string name="assistant_login_generic">Использовать SIP-аккаунт</string>
|
||||||
<string name="assistant_remote_provisioning">Выбор удаленной конфигурации</string>
|
<string name="assistant_remote_provisioning">Удаленная конфигурация</string>
|
||||||
<string name="assistant_create_account_part_1">Подтвердите код страны и введите свой номер телефона</string>
|
<string name="assistant_create_account_part_1">Подтвердите код страны и введите свой номер телефона</string>
|
||||||
<string name="assistant_create_account_part_2">Мы отправили SMS-сообщение с кодом подтверждения на ваш номер телефона:</string>
|
<string name="assistant_create_account_part_2">Мы отправили SMS-сообщение с кодом подтверждения на ваш номер телефона:</string>
|
||||||
<string name="assistant_create_account_part_3">Чтобы завершить проверку номера телефона, введите 4-значный код ниже:\n</string>
|
<string name="assistant_create_account_part_3">Чтобы завершить проверку номера телефона, введите 4-значный код ниже:\n</string>
|
||||||
<string name="assistant_create_account_part_email">Введите имя пользователя, адрес электронной почты и пароль для вашей учетной записи Linphone</string>
|
<string name="assistant_create_account_part_email">Введите имя пользователя, адрес электронной почты и пароль для вашей учетной записи Linphone</string>
|
||||||
<string name="assistant_display_name_optional">Отображаемое имя (необязательно)</string>
|
<string name="assistant_display_name_optional">Отображаемое имя (необязательно)</string>
|
||||||
<string name="assistant_linphone_account">Использовать учетную запись Linphone</string>
|
<string name="assistant_linphone_account">Использовать аккаунт Linphone</string>
|
||||||
<string name="assistant_generic_account">Использовать учетную запись SIP</string>
|
<string name="assistant_generic_account">Использовать SIP-аккаунт</string>
|
||||||
<string name="assistant_remote_provisioning_title">Выбор удаленной конфигурации</string>
|
<string name="assistant_remote_provisioning_title">Удаленная конфигурация</string>
|
||||||
<string name="assistant_fetch_apply">Получить и применить</string>
|
<string name="assistant_fetch_apply">Получить и применить</string>
|
||||||
<string name="assistant_login">Имя пользователя</string>
|
<string name="assistant_login">Авторизация</string>
|
||||||
<string name="assistant_ec_calibration">Выполняется калибровка эхоподавления</string>
|
<string name="assistant_ec_calibration">Выполняется калибровка эхоподавления</string>
|
||||||
<string name="assistant_remote_provisioning_login">Введите имя пользователя</string>
|
<string name="assistant_remote_provisioning_login">Введите имя пользователя</string>
|
||||||
<string name="assistant_account_not_validated">Ваша учетная запись еще не проверена.</string>
|
<string name="assistant_account_not_validated">Ваша учетная запись еще не проверена.</string>
|
||||||
|
@ -111,6 +112,7 @@
|
||||||
<string name="use_email_for_validation">Использовать адрес электронной почты для проверки учетной записи</string>
|
<string name="use_email_for_validation">Использовать адрес электронной почты для проверки учетной записи</string>
|
||||||
<string name="login_with_username">Вместо номера телефона использовать имя пользователя и пароль</string>
|
<string name="login_with_username">Вместо номера телефона использовать имя пользователя и пароль</string>
|
||||||
<string name="phone_number_info_title">Для чего будет использоваться мой номер телефона?</string>
|
<string name="phone_number_info_title">Для чего будет использоваться мой номер телефона?</string>
|
||||||
|
<string name="phone_number_info_content">\nВашим друзьям будет проще связаться с вами, если вы свяжете свою учетную запись со своим номером телефона.\n\n В вашей адресной книге вы увидите, кто использует Linphone, а ваши друзья смогут узнать, что вы также зарегистрированы в Linphone.\n</string>
|
||||||
<string name="phone_number_link_info_content">\nВашим друзьям будет проще связаться с вами, если вы свяжете свою учетную запись со своим номером телефона.\n\nВ вашей адресной книге вы увидите, кто использует Linphone, а ваши друзья смогут узнать, что вы также зарегистрированы в Linphone.\n</string>
|
<string name="phone_number_link_info_content">\nВашим друзьям будет проще связаться с вами, если вы свяжете свою учетную запись со своим номером телефона.\n\nВ вашей адресной книге вы увидите, кто использует Linphone, а ваши друзья смогут узнать, что вы также зарегистрированы в Linphone.\n</string>
|
||||||
<string name="phone_number_link_info_content_already_account">Номер телефона можно использовать только с одной учетной записью Linphone.\n\nЕсли ваш номер уже был связан с другой учетной записью, но вы предпочитаете использовать его, просто свяжите его сейчас, и ваш номер будет автоматически перенесен в эту учетную запись.</string>
|
<string name="phone_number_link_info_content_already_account">Номер телефона можно использовать только с одной учетной записью Linphone.\n\nЕсли ваш номер уже был связан с другой учетной записью, но вы предпочитаете использовать его, просто свяжите его сейчас, и ваш номер будет автоматически перенесен в эту учетную запись.</string>
|
||||||
<!--Status-->
|
<!--Status-->
|
||||||
|
@ -159,6 +161,8 @@
|
||||||
<string name="delete_conversation">Вы действительно хотите удалить выбранный разговор?</string>
|
<string name="delete_conversation">Вы действительно хотите удалить выбранный разговор?</string>
|
||||||
<string name="delete_message">Вы действительно хотите удалить выбранное сообщение?</string>
|
<string name="delete_message">Вы действительно хотите удалить выбранное сообщение?</string>
|
||||||
<string name="remote_composing">Собеседник пишет...</string>
|
<string name="remote_composing">Собеседник пишет...</string>
|
||||||
|
<string name="remote_composing_single">%s печатает...</string>
|
||||||
|
<string name="remote_composing_multiple">%s печатают...</string>
|
||||||
<string name="share_picture_size_small">Маленький</string>
|
<string name="share_picture_size_small">Маленький</string>
|
||||||
<string name="share_picture_size_medium">Средний</string>
|
<string name="share_picture_size_medium">Средний</string>
|
||||||
<string name="share_picture_size_large">Большой</string>
|
<string name="share_picture_size_large">Большой</string>
|
||||||
|
@ -177,7 +181,28 @@
|
||||||
<string name="processing_image">Обработка изображения может занять несколько секунд в зависимости от размера файла</string>
|
<string name="processing_image">Обработка изображения может занять несколько секунд в зависимости от размера файла</string>
|
||||||
<string name="displayed">Прочитано</string>
|
<string name="displayed">Прочитано</string>
|
||||||
<string name="delivered">Доставлено</string>
|
<string name="delivered">Доставлено</string>
|
||||||
|
<string name="undelivered">Не доставлено</string>
|
||||||
|
<string name="sent">Отправлено</string>
|
||||||
<string name="resend">Переслать</string>
|
<string name="resend">Переслать</string>
|
||||||
|
<string name="error_opening_file">При открытии этого файла возникает ошибка.</string>
|
||||||
|
<string name="conversation_information">Информация</string>
|
||||||
|
<string name="administrator">Администратор</string>
|
||||||
|
<string name="chat_room_infos_title">Информация</string>
|
||||||
|
<string name="chat_room_infos_admin">Администратор</string>
|
||||||
|
<string name="chat_room_participants">Участники</string>
|
||||||
|
<string name="chat_room_leave_group">Покинуть группу</string>
|
||||||
|
<string name="device_added">новое устройство для %s</string>
|
||||||
|
<string name="device_removed">устройство для %s удалено</string>
|
||||||
|
<string name="subject_changed">новая тема: %s</string>
|
||||||
|
<string name="admin_set">%s это администратор</string>
|
||||||
|
<string name="admin_unset">%s больше не администратор</string>
|
||||||
|
<string name="group_chat_notif" formatted="false">%1: %2</string>
|
||||||
|
<string name="chat_room_you_are_now_admin">Теперь вы администратор</string>
|
||||||
|
<string name="chat_room_you_are_no_longer_admin">Вы больше не администратор</string>
|
||||||
|
<string name="chat_room_creation_failed">Не удалось создать чат-комнату</string>
|
||||||
|
<string name="chat_room_leave_button">Покинуть</string>
|
||||||
|
<string name="separator">: </string>
|
||||||
|
<string name="imdn_info">Статус доставки</string>
|
||||||
<!--Status Bar-->
|
<!--Status Bar-->
|
||||||
<string name="status_connected">Зарегистрирован</string>
|
<string name="status_connected">Зарегистрирован</string>
|
||||||
<string name="status_not_connected">Не зарегистрирован</string>
|
<string name="status_not_connected">Не зарегистрирован</string>
|
||||||
|
@ -233,6 +258,7 @@
|
||||||
<!--Errors-->
|
<!--Errors-->
|
||||||
<string name="skipable_error_service_not_ready">Предупреждение: служба не готова</string>
|
<string name="skipable_error_service_not_ready">Предупреждение: служба не готова</string>
|
||||||
<string name="error">Ошибка</string>
|
<string name="error">Ошибка</string>
|
||||||
|
<string name="file_transfer_error">Ошибка передачи файла</string>
|
||||||
<string name="warning_wrong_destination_address">Невозможно создать адрес назначения из %s</string>
|
<string name="warning_wrong_destination_address">Невозможно создать адрес назначения из %s</string>
|
||||||
<string name="error_unknown">Неизвестная ошибка</string>
|
<string name="error_unknown">Неизвестная ошибка</string>
|
||||||
<string name="error_call_declined">Вызов отклонен</string>
|
<string name="error_call_declined">Вызов отклонен</string>
|
||||||
|
@ -245,7 +271,7 @@
|
||||||
<string name="error_unauthorized">Неавторизован</string>
|
<string name="error_unauthorized">Неавторизован</string>
|
||||||
<string name="error_io_error">Ошибка сети</string>
|
<string name="error_io_error">Ошибка сети</string>
|
||||||
<string name="download_image_failed">Загрузка не удалась. Проверьте сетевое подключение или повторите попытку позже.</string>
|
<string name="download_image_failed">Загрузка не удалась. Проверьте сетевое подключение или повторите попытку позже.</string>
|
||||||
<string name="remote_provisioning_failure">Не удалось загрузить или применить профиль удаленного конфигурирования...</string>
|
<string name="remote_provisioning_failure">Не удалось загрузить или применить профиль удаленной конфигурации...</string>
|
||||||
<string name="remote_provisioning_again_title">Удаленное конфигурирование</string>
|
<string name="remote_provisioning_again_title">Удаленное конфигурирование</string>
|
||||||
<string name="remote_provisioning_again_message">Вы хотите изменить URI конфигурирования?</string>
|
<string name="remote_provisioning_again_message">Вы хотите изменить URI конфигурирования?</string>
|
||||||
<!--Account Settings-->
|
<!--Account Settings-->
|
||||||
|
@ -280,6 +306,7 @@
|
||||||
<string name="pref_change_password">Изменить пароль</string>
|
<string name="pref_change_password">Изменить пароль</string>
|
||||||
<string name="pref_default_account">Использовать по умолчанию</string>
|
<string name="pref_default_account">Использовать по умолчанию</string>
|
||||||
<string name="pref_password_changed">Пароль изменен</string>
|
<string name="pref_password_changed">Пароль изменен</string>
|
||||||
|
<string name="pref_proxy_push_notif">Разрешить push-уведомление</string>
|
||||||
<!--Settings-->
|
<!--Settings-->
|
||||||
<string name="pref_sipaccounts">Учетные записи SIP</string>
|
<string name="pref_sipaccounts">Учетные записи SIP</string>
|
||||||
<string name="default_account_flag">Учетная запись по умолчанию</string>
|
<string name="default_account_flag">Учетная запись по умолчанию</string>
|
||||||
|
@ -335,6 +362,7 @@
|
||||||
<string name="pref_sipinfo_dtmf">Отправить вне потока DTMFs(SIP INFO)</string>
|
<string name="pref_sipinfo_dtmf">Отправить вне потока DTMFs(SIP INFO)</string>
|
||||||
<string name="pref_call_timeout_title">Таймаут вызова(в секундах)</string>
|
<string name="pref_call_timeout_title">Таймаут вызова(в секундах)</string>
|
||||||
<string name="pref_voice_mail">URI голосовой почты</string>
|
<string name="pref_voice_mail">URI голосовой почты</string>
|
||||||
|
<string name="pref_dialer_call">Использовать Linphone в качестве приложения для звонков по умолчанию.</string>
|
||||||
<!--Chat settings-->
|
<!--Chat settings-->
|
||||||
<string name="pref_chat_title">Чат</string>
|
<string name="pref_chat_title">Чат</string>
|
||||||
<string name="pref_image_sharing_server_title">Сервер обмена</string>
|
<string name="pref_image_sharing_server_title">Сервер обмена</string>
|
||||||
|
@ -367,6 +395,7 @@
|
||||||
<string name="pref_advanced_title">Дополнительно</string>
|
<string name="pref_advanced_title">Дополнительно</string>
|
||||||
<string name="pref_debug_title">Отладка</string>
|
<string name="pref_debug_title">Отладка</string>
|
||||||
<string name="pref_debug">Отладка</string>
|
<string name="pref_debug">Отладка</string>
|
||||||
|
<string name="pref_java_debug">Использовать Java-регистратор</string>
|
||||||
<string name="pref_friendlist_subscribe">Подписка</string>
|
<string name="pref_friendlist_subscribe">Подписка</string>
|
||||||
<string name="pref_background_mode">Фоновый режим</string>
|
<string name="pref_background_mode">Фоновый режим</string>
|
||||||
<string name="pref_animation_enable_title">Включить анимацию</string>
|
<string name="pref_animation_enable_title">Включить анимацию</string>
|
||||||
|
@ -458,4 +487,6 @@
|
||||||
<string name="content_description_exit_conference">Выйти из конференции</string>
|
<string name="content_description_exit_conference">Выйти из конференции</string>
|
||||||
<string name="content_title_notification_service">Служба Linphone</string>
|
<string name="content_title_notification_service">Служба Linphone</string>
|
||||||
<string name="content_title_notification">Уведомление Linphone</string>
|
<string name="content_title_notification">Уведомление Linphone</string>
|
||||||
|
<string name="content_description_conversation_subject">Тема группового чата</string>
|
||||||
|
<string name="content_description_conversation_infos">Информация о групповом чате</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -111,6 +111,7 @@
|
||||||
<string name="use_email_for_validation">Använd e-postadress för kontovalidering</string>
|
<string name="use_email_for_validation">Använd e-postadress för kontovalidering</string>
|
||||||
<string name="login_with_username">Använd ditt användarnamn och lösenord istället för ditt telefonnummer</string>
|
<string name="login_with_username">Använd ditt användarnamn och lösenord istället för ditt telefonnummer</string>
|
||||||
<string name="phone_number_info_title">Vad ska mitt telefonnummer användas för?</string>
|
<string name="phone_number_info_title">Vad ska mitt telefonnummer användas för?</string>
|
||||||
|
<string name="phone_number_info_content">\nTack vare ditt telefonnummer kommer dina vänner att hitta dig lättare.\n\n Du kommer att se i din adressbok vem som använder Linphone och dina vänner kommer veta att de kan nå dig på Linphone också.\n</string>
|
||||||
<string name="phone_number_link_info_content">\nDina vänner hittar dig lättare om du kopplar ditt konto till ditt telefonnummer\n\nDu ser i din adressbok vilka som använder Linphone och dina vänner vet att de når dig på Linphone också.\n</string>
|
<string name="phone_number_link_info_content">\nDina vänner hittar dig lättare om du kopplar ditt konto till ditt telefonnummer\n\nDu ser i din adressbok vilka som använder Linphone och dina vänner vet att de når dig på Linphone också.\n</string>
|
||||||
<string name="phone_number_link_info_content_already_account">Du kan bara använda ditt telefonnummer med ett Linphone-konto.\n\nOm du redan har länkat ditt nummer till ett annat konto, men du föredrar att använda det här, kopplar du bara det nu och ditt nummer flyttas automatiskt till det här kontot.</string>
|
<string name="phone_number_link_info_content_already_account">Du kan bara använda ditt telefonnummer med ett Linphone-konto.\n\nOm du redan har länkat ditt nummer till ett annat konto, men du föredrar att använda det här, kopplar du bara det nu och ditt nummer flyttas automatiskt till det här kontot.</string>
|
||||||
<!--Status-->
|
<!--Status-->
|
||||||
|
@ -140,8 +141,8 @@
|
||||||
<!--Dailer-->
|
<!--Dailer-->
|
||||||
<string name="address_bar_hint">Ange ett nummer eller en adress</string>
|
<string name="address_bar_hint">Ange ett nummer eller en adress</string>
|
||||||
<!--History-->
|
<!--History-->
|
||||||
<string name="no_call_history">Inget samtal i din historia</string>
|
<string name="no_call_history">Inga samtal i din historik</string>
|
||||||
<string name="no_missed_call_history">Inget missat samtal i din historia</string>
|
<string name="no_missed_call_history">Inga missade samtal i din historik</string>
|
||||||
<string name="delete_history_log">Vill du ta bort vald samtalslog?</string>
|
<string name="delete_history_log">Vill du ta bort vald samtalslog?</string>
|
||||||
<string name="today">Idag</string>
|
<string name="today">Idag</string>
|
||||||
<string name="yesterday">Igår</string>
|
<string name="yesterday">Igår</string>
|
||||||
|
@ -178,6 +179,7 @@
|
||||||
<string name="displayed">Läs</string>
|
<string name="displayed">Läs</string>
|
||||||
<string name="delivered">Levererades</string>
|
<string name="delivered">Levererades</string>
|
||||||
<string name="resend">Skicka igen</string>
|
<string name="resend">Skicka igen</string>
|
||||||
|
<string name="error_opening_file">Ett fel uppstår när filen öppnas.</string>
|
||||||
<!--Status Bar-->
|
<!--Status Bar-->
|
||||||
<string name="status_connected">Registrerad</string>
|
<string name="status_connected">Registrerad</string>
|
||||||
<string name="status_not_connected">Inte registrerad</string>
|
<string name="status_not_connected">Inte registrerad</string>
|
||||||
|
@ -334,6 +336,7 @@
|
||||||
<string name="pref_rfc2833_dtmf">Skicka in-band DTMF (RFC2833)</string>
|
<string name="pref_rfc2833_dtmf">Skicka in-band DTMF (RFC2833)</string>
|
||||||
<string name="pref_sipinfo_dtmf">Skicka ut-band DTMF (SIP INFO)</string>
|
<string name="pref_sipinfo_dtmf">Skicka ut-band DTMF (SIP INFO)</string>
|
||||||
<string name="pref_voice_mail">Röstbrevlåda URI</string>
|
<string name="pref_voice_mail">Röstbrevlåda URI</string>
|
||||||
|
<string name="pref_dialer_call">Använd Linphone som standard telefonapp</string>
|
||||||
<!--Chat settings-->
|
<!--Chat settings-->
|
||||||
<string name="pref_chat_title">Chatt</string>
|
<string name="pref_chat_title">Chatt</string>
|
||||||
<string name="pref_image_sharing_server_title">Delar server</string>
|
<string name="pref_image_sharing_server_title">Delar server</string>
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
<string name="retry">Yeniden dene</string>
|
<string name="retry">Yeniden dene</string>
|
||||||
<string name="cancel">İptal</string>
|
<string name="cancel">İptal</string>
|
||||||
<string name="accept">Kabul et</string>
|
<string name="accept">Kabul et</string>
|
||||||
|
<string name="open">Aç</string>
|
||||||
<string name="continue_text">Sürdür</string>
|
<string name="continue_text">Sürdür</string>
|
||||||
<string name="about">Hakkında</string>
|
<string name="about">Hakkında</string>
|
||||||
<string name="deny">Yoksay</string>
|
<string name="deny">Yoksay</string>
|
||||||
|
@ -111,6 +112,7 @@
|
||||||
<string name="use_email_for_validation">Hesap doğrulama için e-posta adresi kullan</string>
|
<string name="use_email_for_validation">Hesap doğrulama için e-posta adresi kullan</string>
|
||||||
<string name="login_with_username">Telefon numaranız yerine kullanıcı adınızı ve parolanızı kullanın</string>
|
<string name="login_with_username">Telefon numaranız yerine kullanıcı adınızı ve parolanızı kullanın</string>
|
||||||
<string name="phone_number_info_title">Telefon numaram ne için kullanılacak?</string>
|
<string name="phone_number_info_title">Telefon numaram ne için kullanılacak?</string>
|
||||||
|
<string name="phone_number_info_content">\nTelefon numaranız sayesinde arkadaşlarınız sizi daha kolay bulacak.\n\n Adres defterinizde kimlerin Linphone kullandığını göreceksiniz ve arkadaşlarınız da size Linphone\'dan ulaşabileceklerini bilecek.\n</string>
|
||||||
<string name="phone_number_link_info_content">\nEğer hesabını telefon numarana bağlarsan arkadaşların seni daha kolay bulacak\n\nAdres listende kimlerin Linphone kullandığını göreceksin ve arkadaşların da sana Linphone üzerinden ulaşabileceğini bilecek.\n</string>
|
<string name="phone_number_link_info_content">\nEğer hesabını telefon numarana bağlarsan arkadaşların seni daha kolay bulacak\n\nAdres listende kimlerin Linphone kullandığını göreceksin ve arkadaşların da sana Linphone üzerinden ulaşabileceğini bilecek.\n</string>
|
||||||
<string name="phone_number_link_info_content_already_account">Telefon numaranı yalnızca tek Linphone hesabıyla kullanabilirsin.\n\nEğer hesabını zaten başka bir hesaba bağladıysan ama bunu kullanmak istiyorsan, şimdi bağla ve numaran kendiliğinden bu hesaba taşınsın.</string>
|
<string name="phone_number_link_info_content_already_account">Telefon numaranı yalnızca tek Linphone hesabıyla kullanabilirsin.\n\nEğer hesabını zaten başka bir hesaba bağladıysan ama bunu kullanmak istiyorsan, şimdi bağla ve numaran kendiliğinden bu hesaba taşınsın.</string>
|
||||||
<!--Status-->
|
<!--Status-->
|
||||||
|
@ -159,6 +161,8 @@
|
||||||
<string name="delete_conversation">Seçilen görüşmeyi silmek ister misiniz?</string>
|
<string name="delete_conversation">Seçilen görüşmeyi silmek ister misiniz?</string>
|
||||||
<string name="delete_message">Seçilen iletiyi silmek ister misiniz?</string>
|
<string name="delete_message">Seçilen iletiyi silmek ister misiniz?</string>
|
||||||
<string name="remote_composing">Karşıdan yazılıyor...</string>
|
<string name="remote_composing">Karşıdan yazılıyor...</string>
|
||||||
|
<string name="remote_composing_single">%s yazıyor...</string>
|
||||||
|
<string name="remote_composing_multiple">%s yazıyor...</string>
|
||||||
<string name="share_picture_size_small">Küçük</string>
|
<string name="share_picture_size_small">Küçük</string>
|
||||||
<string name="share_picture_size_medium">Orta</string>
|
<string name="share_picture_size_medium">Orta</string>
|
||||||
<string name="share_picture_size_large">Büyük</string>
|
<string name="share_picture_size_large">Büyük</string>
|
||||||
|
@ -177,7 +181,24 @@
|
||||||
<string name="processing_image">Görüntü işleniyor, dosyanın boyutuna bağlı olarak bir kaç saniye sürebilir</string>
|
<string name="processing_image">Görüntü işleniyor, dosyanın boyutuna bağlı olarak bir kaç saniye sürebilir</string>
|
||||||
<string name="displayed">Okundu</string>
|
<string name="displayed">Okundu</string>
|
||||||
<string name="delivered">Ulaştırıldı</string>
|
<string name="delivered">Ulaştırıldı</string>
|
||||||
|
<string name="sent">Gönderildi</string>
|
||||||
<string name="resend">Yeniden gönder</string>
|
<string name="resend">Yeniden gönder</string>
|
||||||
|
<string name="error_opening_file">Bu dosya açılırken bir hata oluştu.</string>
|
||||||
|
<string name="administrator">Yönetici</string>
|
||||||
|
<string name="chat_room_infos_admin">Yönetici</string>
|
||||||
|
<string name="chat_room_participants">Katılımcılar</string>
|
||||||
|
<string name="chat_room_leave_group">Kümeden ayrıl</string>
|
||||||
|
<string name="device_added">%s için yeni aygıt</string>
|
||||||
|
<string name="device_removed">%s için aygıt kaldırıldı</string>
|
||||||
|
<string name="subject_changed">yeni konu: %s</string>
|
||||||
|
<string name="admin_set">%s yöneticidir</string>
|
||||||
|
<string name="admin_unset">%s artık yönetici değildir</string>
|
||||||
|
<string name="group_chat_notif" formatted="false">%1: %2</string>
|
||||||
|
<string name="chat_room_you_are_now_admin">Şimdi yöneticisiniz</string>
|
||||||
|
<string name="chat_room_you_are_no_longer_admin">Artık yönetici değilsiniz</string>
|
||||||
|
<string name="chat_room_creation_failed">Konuşma odası oluşturma başarısız</string>
|
||||||
|
<string name="chat_room_leave_button">Ayrıl</string>
|
||||||
|
<string name="separator">: </string>
|
||||||
<!--Status Bar-->
|
<!--Status Bar-->
|
||||||
<string name="status_connected">Kayıtlı</string>
|
<string name="status_connected">Kayıtlı</string>
|
||||||
<string name="status_not_connected">Kayıtsız</string>
|
<string name="status_not_connected">Kayıtsız</string>
|
||||||
|
@ -233,6 +254,7 @@
|
||||||
<!--Errors-->
|
<!--Errors-->
|
||||||
<string name="skipable_error_service_not_ready">Uyarı: hizmet hazır değil</string>
|
<string name="skipable_error_service_not_ready">Uyarı: hizmet hazır değil</string>
|
||||||
<string name="error">Hata</string>
|
<string name="error">Hata</string>
|
||||||
|
<string name="file_transfer_error">Dosya aktarım hatası</string>
|
||||||
<string name="warning_wrong_destination_address">%s dan gidilecek adres inşa edilemiyor</string>
|
<string name="warning_wrong_destination_address">%s dan gidilecek adres inşa edilemiyor</string>
|
||||||
<string name="error_unknown">Tanımlanmayan hata</string>
|
<string name="error_unknown">Tanımlanmayan hata</string>
|
||||||
<string name="error_call_declined">Reddedilen çağrı</string>
|
<string name="error_call_declined">Reddedilen çağrı</string>
|
||||||
|
@ -335,6 +357,7 @@
|
||||||
<string name="pref_sipinfo_dtmf">Bant dışı DTMF(SIP INFO) gönder</string>
|
<string name="pref_sipinfo_dtmf">Bant dışı DTMF(SIP INFO) gönder</string>
|
||||||
<string name="pref_call_timeout_title">Çağrı zaman aşımı (saniye türünde)</string>
|
<string name="pref_call_timeout_title">Çağrı zaman aşımı (saniye türünde)</string>
|
||||||
<string name="pref_voice_mail">Sesli posta adresi</string>
|
<string name="pref_voice_mail">Sesli posta adresi</string>
|
||||||
|
<string name="pref_dialer_call">Linphone\'u öntanımlı telefon uygulaması olarak kullan</string>
|
||||||
<!--Chat settings-->
|
<!--Chat settings-->
|
||||||
<string name="pref_chat_title">Konuşma</string>
|
<string name="pref_chat_title">Konuşma</string>
|
||||||
<string name="pref_image_sharing_server_title">Paylaşım sunucusu</string>
|
<string name="pref_image_sharing_server_title">Paylaşım sunucusu</string>
|
||||||
|
@ -458,4 +481,5 @@
|
||||||
<string name="content_description_exit_conference">Görüşmeden çık</string>
|
<string name="content_description_exit_conference">Görüşmeden çık</string>
|
||||||
<string name="content_title_notification_service">Linphone Hizmeti</string>
|
<string name="content_title_notification_service">Linphone Hizmeti</string>
|
||||||
<string name="content_title_notification">Linphone Bildirimi</string>
|
<string name="content_title_notification">Linphone Bildirimi</string>
|
||||||
|
<string name="content_description_conversation_subject">Küme konuşma odası konusu</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -198,16 +198,16 @@
|
||||||
<string name="error_opening_file">An error occurs when opening this file.</string>
|
<string name="error_opening_file">An error occurs when opening this file.</string>
|
||||||
<string name="conversation_information">Info</string>
|
<string name="conversation_information">Info</string>
|
||||||
<string name="administrator">Admin</string>
|
<string name="administrator">Admin</string>
|
||||||
<string name="conversation_subject_hint">Name your group</string>
|
<string name="conversation_subject_hint">Name the group</string>
|
||||||
<string name="chat_room_infos_title">Info</string>
|
<string name="chat_room_infos_title">Info</string>
|
||||||
<string name="chat_room_infos_admin">Admin</string>
|
<string name="chat_room_infos_admin">Admin</string>
|
||||||
<string name="chat_room_participants">Participants</string>
|
<string name="chat_room_participants">Participants</string>
|
||||||
<string name="chat_room_leave_group">Leave the group</string>
|
<string name="chat_room_leave_group">Leave the group</string>
|
||||||
<string name="chat_room_creation_filter_hint">Contact filter</string>
|
<string name="chat_room_creation_filter_hint">Search a contact</string>
|
||||||
<string name="conference_created">group created</string>
|
<string name="conference_created">You have joined the group</string>
|
||||||
<string name="conference_destroyed">group destroyed</string>
|
<string name="conference_destroyed">You have left the group</string>
|
||||||
<string name="participant_added">%s added</string>
|
<string name="participant_added">%s has joined</string>
|
||||||
<string name="participant_removed">%s leaved</string>
|
<string name="participant_removed">%s has left</string>
|
||||||
<string name="device_added">new device for %s</string>
|
<string name="device_added">new device for %s</string>
|
||||||
<string name="device_removed">device for %s removed</string>
|
<string name="device_removed">device for %s removed</string>
|
||||||
<string name="subject_changed">new subject: %s</string>
|
<string name="subject_changed">new subject: %s</string>
|
||||||
|
@ -217,9 +217,9 @@
|
||||||
<string name="chat_room_you_are_now_admin">You are now admin</string>
|
<string name="chat_room_you_are_now_admin">You are now admin</string>
|
||||||
<string name="chat_room_you_are_no_longer_admin">You are no longer admin</string>
|
<string name="chat_room_you_are_no_longer_admin">You are no longer admin</string>
|
||||||
<string name="chat_room_creation_failed">Chat room creation failed</string>
|
<string name="chat_room_creation_failed">Chat room creation failed</string>
|
||||||
<string name="chat_room_leave_dialog">Do you really want to leave this group?</string>
|
<string name="chat_room_leave_dialog">Do you really want to leave this conversation?</string>
|
||||||
<string name="chat_room_leave_button">Leave</string>
|
<string name="chat_room_leave_button">Leave</string>
|
||||||
<string name="chat_room_delete_dialog">Do you want to delete and leave the selected conversations?</string>
|
<string name="chat_room_delete_dialog">Do you really want to delete and leave the selected conversations?</string>
|
||||||
<string name="separator">: </string>
|
<string name="separator">: </string>
|
||||||
<string name="imdn_info">Delivery status</string>
|
<string name="imdn_info">Delivery status</string>
|
||||||
|
|
||||||
|
|
1
settings.gradle
Normal file
1
settings.gradle
Normal file
|
@ -0,0 +1 @@
|
||||||
|
include 'liblinphone-sdk'
|
|
@ -240,7 +240,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
@Override
|
@Override
|
||||||
public void onRegistrationStateChanged(Core lc, ProxyConfig proxy, RegistrationState state, String smessage) {
|
public void onRegistrationStateChanged(Core lc, ProxyConfig proxy, RegistrationState state, String smessage) {
|
||||||
AuthInfo authInfo = lc.findAuthInfo(proxy.getRealm(), proxy.getIdentityAddress().getUsername(), proxy.getDomain());
|
AuthInfo authInfo = lc.findAuthInfo(proxy.getRealm(), proxy.getIdentityAddress().getUsername(), proxy.getDomain());
|
||||||
|
|
||||||
refreshAccounts();
|
refreshAccounts();
|
||||||
|
|
||||||
if(getResources().getBoolean(R.bool.use_phone_number_validation)
|
if(getResources().getBoolean(R.bool.use_phone_number_validation)
|
||||||
|
@ -424,6 +424,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
fragment = new ChatListFragment();
|
fragment = new ChatListFragment();
|
||||||
break;
|
break;
|
||||||
case CREATE_CHAT:
|
case CREATE_CHAT:
|
||||||
|
checkAndRequestWriteContactsPermission();
|
||||||
fragment = new ChatCreationFragment();
|
fragment = new ChatCreationFragment();
|
||||||
break;
|
break;
|
||||||
case INFO_GROUP_CHAT:
|
case INFO_GROUP_CHAT:
|
||||||
|
@ -685,6 +686,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
private void displayChat(String sipUri, String message, String fileUri, String pictureUri, String thumbnailUri, String displayName, Address lAddress) {
|
private void displayChat(String sipUri, String message, String fileUri, String pictureUri, String thumbnailUri, String displayName, Address lAddress) {
|
||||||
Bundle extras = new Bundle();
|
Bundle extras = new Bundle();
|
||||||
extras.putString("SipUri", sipUri);
|
extras.putString("SipUri", sipUri);
|
||||||
|
|
||||||
if (message != null)
|
if (message != null)
|
||||||
extras.putString("messageDraft", message);
|
extras.putString("messageDraft", message);
|
||||||
if (fileUri != null)
|
if (fileUri != null)
|
||||||
|
@ -694,14 +696,15 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
extras.putString("PictureUri", pictureUri);
|
extras.putString("PictureUri", pictureUri);
|
||||||
extras.putString("ThumbnailUri", thumbnailUri);
|
extras.putString("ThumbnailUri", thumbnailUri);
|
||||||
}
|
}
|
||||||
if (sipUri == null && message == null && fileUri == null) {
|
|
||||||
|
if (sipUri == null) {
|
||||||
changeCurrentFragment(FragmentsAvailable.CREATE_CHAT, extras);
|
changeCurrentFragment(FragmentsAvailable.CREATE_CHAT, extras);
|
||||||
} else {
|
} else {
|
||||||
changeCurrentFragment(FragmentsAvailable.GROUP_CHAT, extras);
|
changeCurrentFragment(FragmentsAvailable.GROUP_CHAT, extras);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void goToChatCreator(String address, ArrayList<ContactAddress> selectedContacts, String subject, boolean isGoBack) {
|
public void goToChatCreator(String address, ArrayList<ContactAddress> selectedContacts, String subject, boolean isGoBack, Bundle shareInfos) {
|
||||||
if (currentFragment == FragmentsAvailable.INFO_GROUP_CHAT && isGoBack) {
|
if (currentFragment == FragmentsAvailable.INFO_GROUP_CHAT && isGoBack) {
|
||||||
getFragmentManager().popBackStackImmediate();
|
getFragmentManager().popBackStackImmediate();
|
||||||
getFragmentManager().popBackStackImmediate();
|
getFragmentManager().popBackStackImmediate();
|
||||||
|
@ -710,23 +713,37 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
extras.putSerializable("selectedContacts", selectedContacts);
|
extras.putSerializable("selectedContacts", selectedContacts);
|
||||||
extras.putString("subject", subject);
|
extras.putString("subject", subject);
|
||||||
extras.putString("groupChatRoomAddress", address);
|
extras.putString("groupChatRoomAddress", address);
|
||||||
|
|
||||||
|
if (shareInfos != null) {
|
||||||
|
if (shareInfos.getString("fileSharedUri") != null)
|
||||||
|
extras.putString("fileSharedUri", shareInfos.getString("fileSharedUri"));
|
||||||
|
if (shareInfos.getString("messageDraft") != null)
|
||||||
|
extras.putString("messageDraft", shareInfos.getString("messageDraft"));
|
||||||
|
}
|
||||||
|
|
||||||
changeCurrentFragment(FragmentsAvailable.CREATE_CHAT, extras);
|
changeCurrentFragment(FragmentsAvailable.CREATE_CHAT, extras);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void goToChat(String sipUri) {
|
public void goToChat(String sipUri, Bundle shareInfos) {
|
||||||
|
Bundle extras = new Bundle();
|
||||||
|
extras.putString("SipUri", sipUri);
|
||||||
|
|
||||||
|
if (shareInfos != null) {
|
||||||
|
if (shareInfos.getString("fileSharedUri") != null)
|
||||||
|
extras.putString("fileSharedUri", shareInfos.getString("fileSharedUri"));
|
||||||
|
if (shareInfos.getString("messageDraft") != null)
|
||||||
|
extras.putString("messageDraft", shareInfos.getString("messageDraft"));
|
||||||
|
}
|
||||||
|
|
||||||
if (isTablet()) {
|
if (isTablet()) {
|
||||||
Fragment fragment2 = getFragmentManager().findFragmentById(R.id.fragmentContainer2);
|
Fragment fragment2 = getFragmentManager().findFragmentById(R.id.fragmentContainer2);
|
||||||
if (fragment2 != null && fragment2.isVisible() && currentFragment == FragmentsAvailable.GROUP_CHAT && !emptyFragment) {
|
if (fragment2 != null && fragment2.isVisible() && currentFragment == FragmentsAvailable.GROUP_CHAT && !emptyFragment) {
|
||||||
GroupChatFragment chatFragment = (GroupChatFragment) fragment2;
|
GroupChatFragment chatFragment = (GroupChatFragment) fragment2;
|
||||||
chatFragment.changeDisplayedChat(sipUri);
|
chatFragment.changeDisplayedChat(sipUri);
|
||||||
} else {
|
} else {
|
||||||
Bundle extras = new Bundle();
|
|
||||||
extras.putString("SipUri", sipUri);
|
|
||||||
changeCurrentFragment(FragmentsAvailable.GROUP_CHAT, extras);
|
changeCurrentFragment(FragmentsAvailable.GROUP_CHAT, extras);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Bundle extras = new Bundle();
|
|
||||||
extras.putString("SipUri", sipUri);
|
|
||||||
changeCurrentFragment(FragmentsAvailable.GROUP_CHAT, extras);
|
changeCurrentFragment(FragmentsAvailable.GROUP_CHAT, extras);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -734,7 +751,7 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
displayMissedChats(LinphoneManager.getInstance().getUnreadMessageCount());
|
displayMissedChats(LinphoneManager.getInstance().getUnreadMessageCount());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void goToChatGroupInfos(String address, ArrayList<ContactAddress> contacts, String subject, boolean isEditionEnabled, boolean isGoBack) {
|
public void goToChatGroupInfos(String address, ArrayList<ContactAddress> contacts, String subject, boolean isEditionEnabled, boolean isGoBack, Bundle shareInfos) {
|
||||||
if (currentFragment == FragmentsAvailable.CREATE_CHAT && isGoBack) {
|
if (currentFragment == FragmentsAvailable.CREATE_CHAT && isGoBack) {
|
||||||
getFragmentManager().popBackStackImmediate();
|
getFragmentManager().popBackStackImmediate();
|
||||||
getFragmentManager().popBackStackImmediate();
|
getFragmentManager().popBackStackImmediate();
|
||||||
|
@ -744,6 +761,14 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
extras.putBoolean("isEditionEnabled", isEditionEnabled);
|
extras.putBoolean("isEditionEnabled", isEditionEnabled);
|
||||||
extras.putSerializable("ContactAddress", contacts);
|
extras.putSerializable("ContactAddress", contacts);
|
||||||
extras.putString("subject", subject);
|
extras.putString("subject", subject);
|
||||||
|
|
||||||
|
if (shareInfos != null) {
|
||||||
|
if (shareInfos.getString("fileSharedUri") != null)
|
||||||
|
extras.putString("fileSharedUri", shareInfos.getString("fileSharedUri"));
|
||||||
|
if (shareInfos.getString("messageDraft") != null)
|
||||||
|
extras.putString("messageDraft", shareInfos.getString("messageDraft"));
|
||||||
|
}
|
||||||
|
|
||||||
changeCurrentFragment(FragmentsAvailable.INFO_GROUP_CHAT, extras);
|
changeCurrentFragment(FragmentsAvailable.INFO_GROUP_CHAT, extras);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1255,7 +1280,8 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
int readContactsI = -1;
|
int readContactsI = -1;
|
||||||
for (int i = 0; i < permissions.length; i++) {
|
for (int i = 0; i < permissions.length; i++) {
|
||||||
Log.i("[Permission] " + permissions[i] + " is " + (grantResults[i] == PackageManager.PERMISSION_GRANTED ? "granted" : "denied"));
|
Log.i("[Permission] " + permissions[i] + " is " + (grantResults[i] == PackageManager.PERMISSION_GRANTED ? "granted" : "denied"));
|
||||||
if (permissions[i].compareTo(Manifest.permission.READ_CONTACTS) == 0)
|
if (permissions[i].compareTo(Manifest.permission.READ_CONTACTS) == 0 ||
|
||||||
|
permissions[i].compareTo(Manifest.permission.WRITE_CONTACTS) == 0)
|
||||||
readContactsI = i;
|
readContactsI = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1528,17 +1554,24 @@ public class LinphoneActivity extends LinphoneGenericActivity implements OnClick
|
||||||
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
||||||
if (currentFragment == FragmentsAvailable.DIALER
|
switch(currentFragment) {
|
||||||
|| currentFragment == FragmentsAvailable.CONTACTS_LIST
|
case DIALER :
|
||||||
|| currentFragment == FragmentsAvailable.HISTORY_LIST
|
case CONTACTS_LIST:
|
||||||
|| currentFragment == FragmentsAvailable.CHAT_LIST) {
|
case HISTORY_LIST:
|
||||||
boolean isBackgroundModeActive = LinphonePreferences.instance().isBackgroundModeEnabled();
|
case CHAT_LIST:
|
||||||
if (!isBackgroundModeActive) {
|
boolean isBackgroundModeActive = LinphonePreferences.instance().isBackgroundModeEnabled();
|
||||||
stopService(new Intent(Intent.ACTION_MAIN).setClass(this, LinphoneService.class));
|
if (!isBackgroundModeActive) {
|
||||||
finish();
|
stopService(new Intent(Intent.ACTION_MAIN).setClass(this, LinphoneService.class));
|
||||||
} else if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) {
|
finish();
|
||||||
|
} else if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case GROUP_CHAT:
|
||||||
|
LinphoneActivity.instance().goToChatList();
|
||||||
return true;
|
return true;
|
||||||
}
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return super.onKeyDown(keyCode, event);
|
return super.onKeyDown(keyCode, event);
|
||||||
|
|
|
@ -1143,6 +1143,9 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList
|
||||||
private void showAcceptCallUpdateDialog() {
|
private void showAcceptCallUpdateDialog() {
|
||||||
dialog = new Dialog(this);
|
dialog = new Dialog(this);
|
||||||
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
|
||||||
|
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
|
||||||
|
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||||
Drawable d = new ColorDrawable(ContextCompat.getColor(this, R.color.colorC));
|
Drawable d = new ColorDrawable(ContextCompat.getColor(this, R.color.colorC));
|
||||||
d.setAlpha(200);
|
d.setAlpha(200);
|
||||||
dialog.setContentView(R.layout.dialog);
|
dialog.setContentView(R.layout.dialog);
|
||||||
|
|
|
@ -76,6 +76,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
private String mChatRoomSubject, mChatRoomAddress;
|
private String mChatRoomSubject, mChatRoomAddress;
|
||||||
private ChatRoom mChatRoom;
|
private ChatRoom mChatRoom;
|
||||||
private ChatRoomListenerStub mChatRoomCreationListener;
|
private ChatRoomListenerStub mChatRoomCreationListener;
|
||||||
|
private Bundle mShareInfos;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
@ -177,7 +178,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
public void onStateChanged(ChatRoom cr, ChatRoom.State newState) {
|
public void onStateChanged(ChatRoom cr, ChatRoom.State newState) {
|
||||||
if (newState == ChatRoom.State.Created) {
|
if (newState == ChatRoom.State.Created) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly(), mShareInfos);
|
||||||
} else if (newState == ChatRoom.State.CreationFailed) {
|
} else if (newState == ChatRoom.State.CreationFailed) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
LinphoneActivity.instance().displayChatRoomError();
|
LinphoneActivity.instance().displayChatRoomError();
|
||||||
|
@ -186,11 +187,28 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (getArguments() != null) {
|
||||||
|
String fileSharedUri = getArguments().getString("fileSharedUri");
|
||||||
|
String messageDraft = getArguments().getString("messageDraft");
|
||||||
|
|
||||||
|
if (fileSharedUri != null || messageDraft != null)
|
||||||
|
mShareInfos = new Bundle();
|
||||||
|
|
||||||
|
if (fileSharedUri != null) {
|
||||||
|
LinphoneActivity.instance().checkAndRequestPermissionsToSendImage();
|
||||||
|
mShareInfos.putString("fileSharedUri", fileSharedUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (messageDraft != null)
|
||||||
|
mShareInfos.putString("messageDraft", messageDraft);
|
||||||
|
}
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
|
ContactsManager.addContactsListener(this);
|
||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(INPUT_METHOD_SERVICE);
|
InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(INPUT_METHOD_SERVICE);
|
||||||
|
@ -204,6 +222,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
if (mChatRoom != null) {
|
if (mChatRoom != null) {
|
||||||
mChatRoom.removeListener(mChatRoomCreationListener);
|
mChatRoom.removeListener(mChatRoomCreationListener);
|
||||||
}
|
}
|
||||||
|
ContactsManager.removeContactsListener(this);
|
||||||
super.onPause();
|
super.onPause();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -270,7 +289,11 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
private void addSelectedContactAddress(ContactAddress ca) {
|
private void addSelectedContactAddress(ContactAddress ca) {
|
||||||
View viewContact = LayoutInflater.from(LinphoneActivity.instance()).inflate(R.layout.contact_selected, null);
|
View viewContact = LayoutInflater.from(LinphoneActivity.instance()).inflate(R.layout.contact_selected, null);
|
||||||
if (ca.getContact() != null) {
|
if (ca.getContact() != null) {
|
||||||
((TextView) viewContact.findViewById(R.id.sipUri)).setText(ca.getContact().getFullName());
|
String name = (ca.getContact().getFullName() != null && !ca.getContact().getFullName().isEmpty()) ?
|
||||||
|
ca.getContact().getFullName() : (ca.getDisplayName() != null) ?
|
||||||
|
ca.getDisplayName() : (ca.getUsername() != null) ?
|
||||||
|
ca.getUsername() : "";
|
||||||
|
((TextView) viewContact.findViewById(R.id.sipUri)).setText(name);
|
||||||
} else {
|
} else {
|
||||||
((TextView) viewContact.findViewById(R.id.sipUri)).setText(ca.getAddressAsDisplayableString());
|
((TextView) viewContact.findViewById(R.id.sipUri)).setText(ca.getAddressAsDisplayableString());
|
||||||
}
|
}
|
||||||
|
@ -367,17 +390,17 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
mChatRoom.addParticipant(participant);
|
mChatRoom.addParticipant(participant);
|
||||||
} else {
|
} else {
|
||||||
chatRoom = lc.getChatRoom(participant);
|
chatRoom = lc.getChatRoom(participant);
|
||||||
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly(), mShareInfos);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly(), mShareInfos);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mContactsSelectedLayout.removeAllViews();
|
mContactsSelectedLayout.removeAllViews();
|
||||||
LinphoneActivity.instance().goToChatGroupInfos(null, mContactsSelected, null, true, false);
|
LinphoneActivity.instance().goToChatGroupInfos(null, mContactsSelected, null, true, false, mShareInfos);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LinphoneActivity.instance().goToChatGroupInfos(mChatRoomAddress, mContactsSelected, mChatRoomSubject, true, true);
|
LinphoneActivity.instance().goToChatGroupInfos(mChatRoomAddress, mContactsSelected, mChatRoomSubject, true, true, mShareInfos);
|
||||||
}
|
}
|
||||||
} else if (id == R.id.clearSearchField) {
|
} else if (id == R.id.clearSearchField) {
|
||||||
mSearchField.setText("");
|
mSearchField.setText("");
|
||||||
|
@ -395,7 +418,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
if (lpc == null || lpc.getConferenceFactoryUri() == null) {
|
if (lpc == null || lpc.getConferenceFactoryUri() == null) {
|
||||||
ChatRoom chatRoom = lc.getChatRoom(ca.getAddress());
|
ChatRoom chatRoom = lc.getChatRoom(ca.getAddress());
|
||||||
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly(), mShareInfos);
|
||||||
} else {
|
} else {
|
||||||
removeContactFromSelection(ca);
|
removeContactFromSelection(ca);
|
||||||
}
|
}
|
||||||
|
@ -403,6 +426,6 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onContactsUpdated() {
|
public void onContactsUpdated() {
|
||||||
mSearchAdapter.searchContacts(mSearchField.getText().toString(), mContactsList);
|
updateList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,7 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
|
||||||
mNewDiscussionButton.setOnClickListener(new View.OnClickListener() {
|
mNewDiscussionButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
LinphoneActivity.instance().goToChatCreator(null, null, null, false);
|
LinphoneActivity.instance().goToChatCreator(null, null, null, false, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -142,7 +142,7 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
|
||||||
ChatRoomsAdapter adapter = (ChatRoomsAdapter)mChatRoomsList.getAdapter();
|
ChatRoomsAdapter adapter = (ChatRoomsAdapter)mChatRoomsList.getAdapter();
|
||||||
if (adapter != null && adapter.getCount() > 0) {
|
if (adapter != null && adapter.getCount() > 0) {
|
||||||
ChatRoom room = (ChatRoom) adapter.getItem(0);
|
ChatRoom room = (ChatRoom) adapter.getItem(0);
|
||||||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly(), null);
|
||||||
} else {
|
} else {
|
||||||
LinphoneActivity.instance().displayEmptyFragment();
|
LinphoneActivity.instance().displayEmptyFragment();
|
||||||
}
|
}
|
||||||
|
@ -208,6 +208,7 @@ public class ChatListFragment extends Fragment implements ContactsUpdatedListene
|
||||||
if (mChatRoomDeletionPendingCount > 0) {
|
if (mChatRoomDeletionPendingCount > 0) {
|
||||||
mWaitLayout.setVisibility(View.VISIBLE);
|
mWaitLayout.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
LinphoneActivity.instance().refreshMissedChatCountDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -244,7 +244,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
ChatRoom chatRoom = mRooms.get(position);
|
ChatRoom chatRoom = mRooms.get(position);
|
||||||
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asString());
|
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asString(), null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
holder.delete.setVisibility(isEditionEnabled() ? View.VISIBLE : View.GONE);
|
holder.delete.setVisibility(isEditionEnabled() ? View.VISIBLE : View.GONE);
|
||||||
|
|
|
@ -162,7 +162,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
ContactAddress ca = new ContactAddress(c, a.asString(), "", c.isFriend(), p.isAdmin());
|
ContactAddress ca = new ContactAddress(c, a.asString(), "", c.isFriend(), p.isAdmin());
|
||||||
participants.add(ca);
|
participants.add(ca);
|
||||||
}
|
}
|
||||||
LinphoneActivity.instance().goToChatGroupInfos(mRemoteSipAddress.asString(), participants, mChatRoom.getSubject(), mChatRoom.getMe() != null ? mChatRoom.getMe().isAdmin() : false, false);
|
LinphoneActivity.instance().goToChatGroupInfos(mRemoteSipAddress.asString(), participants, mChatRoom.getSubject(), mChatRoom.getMe() != null ? mChatRoom.getMe().isAdmin() : false, false, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -215,6 +215,25 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
mChatEventsList = view.findViewById(R.id.chat_message_list);
|
mChatEventsList = view.findViewById(R.id.chat_message_list);
|
||||||
registerForContextMenu(mChatEventsList);
|
registerForContextMenu(mChatEventsList);
|
||||||
|
|
||||||
|
if (getArguments() != null) {
|
||||||
|
String fileSharedUri = getArguments().getString("fileSharedUri");
|
||||||
|
if (fileSharedUri != null) {
|
||||||
|
if (LinphoneUtils.isExtensionImage(fileSharedUri)) {
|
||||||
|
addImageToPendingList(fileSharedUri);
|
||||||
|
} else {
|
||||||
|
if (fileSharedUri.startsWith("content://") || fileSharedUri.startsWith("file://")) {
|
||||||
|
fileSharedUri = LinphoneUtils.getFilePath(this.getActivity().getApplicationContext(), Uri.parse(fileSharedUri));
|
||||||
|
} else if (fileSharedUri.contains("com.android.contacts/contacts/")) {
|
||||||
|
fileSharedUri = LinphoneUtils.getCVSPathFromLookupUri(fileSharedUri).toString();
|
||||||
|
}
|
||||||
|
addFileToPendingList(fileSharedUri);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getArguments().getString("messageDraft") != null)
|
||||||
|
mMessageTextToSend.setText(getArguments().getString("messageDraft"));
|
||||||
|
}
|
||||||
|
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -289,7 +308,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
if (LinphoneUtils.isExtensionImage(fileToUploadPath)) {
|
if (LinphoneUtils.isExtensionImage(fileToUploadPath)) {
|
||||||
addImageToPendingList(fileToUploadPath);
|
addImageToPendingList(fileToUploadPath);
|
||||||
} else {
|
} else {
|
||||||
if (fileToUploadPath.startsWith("content://")) {
|
if (fileToUploadPath.startsWith("content://") || fileToUploadPath.startsWith("file://")) {
|
||||||
fileToUploadPath = LinphoneUtils.getFilePath(this.getActivity().getApplicationContext(), Uri.parse(fileToUploadPath));
|
fileToUploadPath = LinphoneUtils.getFilePath(this.getActivity().getApplicationContext(), Uri.parse(fileToUploadPath));
|
||||||
} else if (fileToUploadPath.contains("com.android.contacts/contacts/")) {
|
} else if (fileToUploadPath.contains("com.android.contacts/contacts/")) {
|
||||||
fileToUploadPath = LinphoneUtils.getCVSPathFromLookupUri(fileToUploadPath).toString();
|
fileToUploadPath = LinphoneUtils.getCVSPathFromLookupUri(fileToUploadPath).toString();
|
||||||
|
@ -751,19 +770,6 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*@Override
|
|
||||||
public void onAllInformationReceived(ChatRoom cr) {
|
|
||||||
// Currently flexisip doesn't send the participants list in the INVITE
|
|
||||||
// So we have to refresh the display when information is available
|
|
||||||
// In the meantime header will be chatroom-xxxxxxx
|
|
||||||
if (mChatRoom == null) mChatRoom = cr;
|
|
||||||
if (mChatRoom.hasCapability(ChatRoomCapabilities.OneToOne.toInt()) && mChatRoom.getParticipants().length > 0) {
|
|
||||||
mRemoteParticipantAddress = mChatRoom.getParticipants()[0].getAddress();
|
|
||||||
}
|
|
||||||
getContactsForParticipants();
|
|
||||||
displayChatRoomHeader();
|
|
||||||
}*/
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChatMessageReceived(ChatRoom cr, EventLog event) {
|
public void onChatMessageReceived(ChatRoom cr, EventLog event) {
|
||||||
cr.markAsRead();
|
cr.markAsRead();
|
||||||
|
@ -842,6 +848,26 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConferenceJoined(ChatRoom cr, EventLog event) {
|
||||||
|
// Currently flexisip doesn't send the participants list in the INVITE
|
||||||
|
// So we have to refresh the display when information is available
|
||||||
|
// In the meantime header will be chatroom-xxxxxxx
|
||||||
|
if (mChatRoom == null) mChatRoom = cr;
|
||||||
|
if (mChatRoom.hasCapability(ChatRoomCapabilities.OneToOne.toInt()) && mChatRoom.getParticipants().length > 0) {
|
||||||
|
mRemoteParticipantAddress = mChatRoom.getParticipants()[0].getAddress();
|
||||||
|
}
|
||||||
|
getContactsForParticipants();
|
||||||
|
displayChatRoomHeader();
|
||||||
|
|
||||||
|
mEventsAdapter.addToHistory(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConferenceLeft(ChatRoom cr, EventLog event) {
|
||||||
|
mEventsAdapter.addToHistory(event);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onParticipantAdminStatusChanged(ChatRoom cr, EventLog event) {
|
public void onParticipantAdminStatusChanged(ChatRoom cr, EventLog event) {
|
||||||
mEventsAdapter.addToHistory(event);
|
mEventsAdapter.addToHistory(event);
|
||||||
|
@ -852,16 +878,6 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConferenceJoined(ChatRoom cr, EventLog eventLog) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConferenceLeft(ChatRoom cr, EventLog eventLog) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onParticipantRemoved(ChatRoom cr, EventLog event) {
|
public void onParticipantRemoved(ChatRoom cr, EventLog event) {
|
||||||
getContactsForParticipants();
|
getContactsForParticipants();
|
||||||
|
|
|
@ -85,7 +85,8 @@ public class GroupInfoAdapter extends BaseAdapter {
|
||||||
final LinearLayout isAdmin = view.findViewById(R.id.isAdminLayout);
|
final LinearLayout isAdmin = view.findViewById(R.id.isAdminLayout);
|
||||||
final LinearLayout isNotAdmin = view.findViewById(R.id.isNotAdminLayout);
|
final LinearLayout isNotAdmin = view.findViewById(R.id.isNotAdminLayout);
|
||||||
|
|
||||||
name.setText(c.getFullName());
|
name.setText((c.getFullName() != null) ? c.getFullName() :
|
||||||
|
(ca.getDisplayName() != null) ? ca.getDisplayName() : ca.getUsername());
|
||||||
if (c.hasPhoto()) {
|
if (c.hasPhoto()) {
|
||||||
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), avatar, c.getThumbnailUri());
|
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), avatar, c.getThumbnailUri());
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,6 +72,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
private ChatRoom mChatRoom, mTempChatRoom;
|
private ChatRoom mChatRoom, mTempChatRoom;
|
||||||
private Dialog mAdminStateChangedDialog;
|
private Dialog mAdminStateChangedDialog;
|
||||||
private ChatRoomListenerStub mChatRoomCreationListener;
|
private ChatRoomListenerStub mChatRoomCreationListener;
|
||||||
|
private Bundle mShareInfos;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
|
@ -118,18 +119,30 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
mParticipantsList.setAdapter(mAdapter);
|
mParticipantsList.setAdapter(mAdapter);
|
||||||
mAdapter.setChatRoom(mChatRoom);
|
mAdapter.setChatRoom(mChatRoom);
|
||||||
|
|
||||||
|
String fileSharedUri = getArguments().getString("fileSharedUri");
|
||||||
|
String messageDraft = getArguments().getString("messageDraft");
|
||||||
|
|
||||||
|
if (fileSharedUri != null || messageDraft != null)
|
||||||
|
mShareInfos = new Bundle();
|
||||||
|
|
||||||
|
if (fileSharedUri != null)
|
||||||
|
mShareInfos.putString("fileSharedUri", fileSharedUri);
|
||||||
|
|
||||||
|
if (messageDraft != null)
|
||||||
|
mShareInfos.putString("messageDraft", messageDraft);
|
||||||
|
|
||||||
mBackButton = view.findViewById(R.id.back);
|
mBackButton = view.findViewById(R.id.back);
|
||||||
mBackButton.setOnClickListener(new View.OnClickListener() {
|
mBackButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (mIsAlreadyCreatedGroup) {
|
if (mIsAlreadyCreatedGroup) {
|
||||||
if (LinphoneActivity.instance().isTablet()) {
|
if (LinphoneActivity.instance().isTablet()) {
|
||||||
LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asStringUriOnly());
|
LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asStringUriOnly(), mShareInfos);
|
||||||
} else {
|
} else {
|
||||||
getFragmentManager().popBackStack();
|
getFragmentManager().popBackStack();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LinphoneActivity.instance().goToChatCreator(null, mParticipants, null, true);
|
LinphoneActivity.instance().goToChatCreator(null, mParticipants, null, true, mShareInfos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -150,7 +163,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (mChatRoom != null) {
|
if (mChatRoom != null) {
|
||||||
mChatRoom.leave();
|
mChatRoom.leave();
|
||||||
LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asString());
|
LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asString(), null);
|
||||||
} else {
|
} else {
|
||||||
Log.e("Can't leave, chatRoom for address " + mGroupChatRoomAddress.asString() + " is null...");
|
Log.e("Can't leave, chatRoom for address " + mGroupChatRoomAddress.asString() + " is null...");
|
||||||
}
|
}
|
||||||
|
@ -174,7 +187,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (mIsEditionEnabled) {
|
if (mIsEditionEnabled) {
|
||||||
LinphoneActivity.instance().goToChatCreator(mGroupChatRoomAddress != null ? mGroupChatRoomAddress.asString() : null, mParticipants, mSubject, !mIsAlreadyCreatedGroup);
|
LinphoneActivity.instance().goToChatCreator(mGroupChatRoomAddress != null ? mGroupChatRoomAddress.asString() : null, mParticipants, mSubject, !mIsAlreadyCreatedGroup, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -182,7 +195,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
mAddParticipantsButton.setOnClickListener(new View.OnClickListener() {
|
mAddParticipantsButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
LinphoneActivity.instance().goToChatCreator(mGroupChatRoomAddress != null ? mGroupChatRoomAddress.asString() : null, mParticipants, mSubject, !mIsAlreadyCreatedGroup);
|
LinphoneActivity.instance().goToChatCreator(mGroupChatRoomAddress != null ? mGroupChatRoomAddress.asString() : null, mParticipants, mSubject, !mIsAlreadyCreatedGroup, null);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -213,7 +226,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
// This will remove both the creation fragment and the group info fragment from the back stack
|
// This will remove both the creation fragment and the group info fragment from the back stack
|
||||||
getFragmentManager().popBackStack();
|
getFragmentManager().popBackStack();
|
||||||
getFragmentManager().popBackStack();
|
getFragmentManager().popBackStack();
|
||||||
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly(), mShareInfos);
|
||||||
} else if (newState == ChatRoom.State.CreationFailed) {
|
} else if (newState == ChatRoom.State.CreationFailed) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
LinphoneActivity.instance().displayChatRoomError();
|
LinphoneActivity.instance().displayChatRoomError();
|
||||||
|
@ -289,7 +302,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
toAdd.toArray(participantsToAdd);
|
toAdd.toArray(participantsToAdd);
|
||||||
mChatRoom.addParticipants(participantsToAdd);
|
mChatRoom.addParticipants(participantsToAdd);
|
||||||
|
|
||||||
LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asString());
|
LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asString(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -382,6 +395,14 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
mAdminStateChangedDialog.show();
|
mAdminStateChangedDialog.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConferenceJoined(ChatRoom cr, EventLog event_log) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConferenceLeft(ChatRoom cr, EventLog event_log) {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onParticipantAdded(ChatRoom cr, EventLog event_log) {
|
public void onParticipantAdded(ChatRoom cr, EventLog event_log) {
|
||||||
refreshParticipantsList();
|
refreshParticipantsList();
|
||||||
|
@ -448,16 +469,6 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConferenceJoined(ChatRoom cr, EventLog eventLog) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onConferenceLeft(ChatRoom cr, EventLog eventLog) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onParticipantDeviceAdded(ChatRoom cr, EventLog event_log) {
|
public void onParticipantDeviceAdded(ChatRoom cr, EventLog event_log) {
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ public class ImdnFragment extends Fragment {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
if (LinphoneActivity.instance().isTablet()) {
|
if (LinphoneActivity.instance().isTablet()) {
|
||||||
LinphoneActivity.instance().goToChat(mRoomUri);
|
LinphoneActivity.instance().goToChat(mRoomUri, null);
|
||||||
} else {
|
} else {
|
||||||
LinphoneActivity.instance().onBackPressed();
|
LinphoneActivity.instance().onBackPressed();
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,6 +85,26 @@ public class ContactAddress implements Serializable {
|
||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getDisplayName() {
|
||||||
|
if (address != null) {
|
||||||
|
Address addr = Factory.instance().createAddress(address);
|
||||||
|
if (addr != null) {
|
||||||
|
return addr.getDisplayName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
if (address != null) {
|
||||||
|
Address addr = Factory.instance().createAddress(address);
|
||||||
|
if (addr != null) {
|
||||||
|
return addr.getUsername();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPhoneNumber() {
|
public String getPhoneNumber() {
|
||||||
return phoneNumber;
|
return phoneNumber;
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,7 +77,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
||||||
Address participant = Factory.instance().createAddress(tag);
|
Address participant = Factory.instance().createAddress(tag);
|
||||||
ChatRoom room = lc.findOneToOneChatRoom(lc.getDefaultProxyConfig().getContact(), participant);
|
ChatRoom room = lc.findOneToOneChatRoom(lc.getDefaultProxyConfig().getContact(), participant);
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly(), null);
|
||||||
} else {
|
} else {
|
||||||
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
if (lpc != null && lpc.getConferenceFactoryUri() != null && !LinphonePreferences.instance().useBasicChatRoomFor1To1()) {
|
if (lpc != null && lpc.getConferenceFactoryUri() != null && !LinphonePreferences.instance().useBasicChatRoomFor1To1()) {
|
||||||
|
@ -87,7 +87,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
||||||
mChatRoom.addParticipant(participant);
|
mChatRoom.addParticipant(participant);
|
||||||
} else {
|
} else {
|
||||||
room = lc.getChatRoom(participant);
|
room = lc.getChatRoom(participant);
|
||||||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -134,7 +134,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
||||||
public void onStateChanged(ChatRoom cr, ChatRoom.State newState) {
|
public void onStateChanged(ChatRoom cr, ChatRoom.State newState) {
|
||||||
if (newState == ChatRoom.State.Created) {
|
if (newState == ChatRoom.State.Created) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly(), null);
|
||||||
} else if (newState == ChatRoom.State.CreationFailed) {
|
} else if (newState == ChatRoom.State.CreationFailed) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
LinphoneActivity.instance().displayChatRoomError();
|
LinphoneActivity.instance().displayChatRoomError();
|
||||||
|
|
|
@ -33,6 +33,7 @@ import org.linphone.LinphoneUtils;
|
||||||
import org.linphone.R;
|
import org.linphone.R;
|
||||||
import org.linphone.activities.LinphoneActivity;
|
import org.linphone.activities.LinphoneActivity;
|
||||||
import org.linphone.core.Address;
|
import org.linphone.core.Address;
|
||||||
|
import org.linphone.core.Factory;
|
||||||
import org.linphone.core.ProxyConfig;
|
import org.linphone.core.ProxyConfig;
|
||||||
import org.linphone.core.SearchResult;
|
import org.linphone.core.SearchResult;
|
||||||
|
|
||||||
|
@ -63,7 +64,6 @@ public class SearchContactsListAdapter extends BaseAdapter {
|
||||||
private ProgressBar progressBar;
|
private ProgressBar progressBar;
|
||||||
private boolean mOnlySipContact = false;
|
private boolean mOnlySipContact = false;
|
||||||
private View.OnClickListener listener;
|
private View.OnClickListener listener;
|
||||||
private int oldSize;
|
|
||||||
|
|
||||||
public List<ContactAddress> getContacts() {
|
public List<ContactAddress> getContacts() {
|
||||||
return contacts;
|
return contacts;
|
||||||
|
@ -82,7 +82,6 @@ public class SearchContactsListAdapter extends BaseAdapter {
|
||||||
progressBar = pB;
|
progressBar = pB;
|
||||||
setContactsSelectedList(null);
|
setContactsSelectedList(null);
|
||||||
setContactsList(contactsList);
|
setContactsList(contactsList);
|
||||||
oldSize = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean contactIsSelected(ContactAddress ca) {
|
private boolean contactIsSelected(ContactAddress ca) {
|
||||||
|
@ -166,17 +165,6 @@ public class SearchContactsListAdapter extends BaseAdapter {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void searchContacts(String search, ListView resultContactsSearch) {
|
public void searchContacts(String search, ListView resultContactsSearch) {
|
||||||
if (search == null || search.length() == 0 || search.trim().length() == 0) {
|
|
||||||
contacts = getContactsList();
|
|
||||||
resultContactsSearch.setAdapter(this);
|
|
||||||
if (ContactsManager.getInstance() != null) {
|
|
||||||
ContactsManager.getInstance().getMagicSearch().resetSearchCache();
|
|
||||||
}
|
|
||||||
oldSize = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
search = search.trim();
|
|
||||||
List<ContactAddress> result = new ArrayList<>();
|
List<ContactAddress> result = new ArrayList<>();
|
||||||
|
|
||||||
String domain = "";
|
String domain = "";
|
||||||
|
@ -213,7 +201,6 @@ public class SearchContactsListAdapter extends BaseAdapter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
oldSize = search.length();
|
|
||||||
contacts = result;
|
contacts = result;
|
||||||
resultContactsSearch.setAdapter(this);
|
resultContactsSearch.setAdapter(this);
|
||||||
this.notifyDataSetChanged();
|
this.notifyDataSetChanged();
|
||||||
|
@ -256,6 +243,10 @@ public class SearchContactsListAdapter extends BaseAdapter {
|
||||||
holder.name.setVisibility(View.VISIBLE);
|
holder.name.setVisibility(View.VISIBLE);
|
||||||
holder.name.setText(contact.getAddress().getDisplayName());
|
holder.name.setText(contact.getAddress().getDisplayName());
|
||||||
}
|
}
|
||||||
|
} else if (address != null) {
|
||||||
|
Address tmpAddr = Factory.instance().createAddress(address);
|
||||||
|
holder.name.setVisibility(View.VISIBLE);
|
||||||
|
holder.name.setText((tmpAddr.getDisplayName() != null) ? tmpAddr.getDisplayName() : tmpAddr.getUsername()) ;
|
||||||
} else {
|
} else {
|
||||||
holder.name.setVisibility(View.GONE);
|
holder.name.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,7 +109,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
public void onStateChanged(ChatRoom cr, ChatRoom.State newState) {
|
public void onStateChanged(ChatRoom cr, ChatRoom.State newState) {
|
||||||
if (newState == ChatRoom.State.Created) {
|
if (newState == ChatRoom.State.Created) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(cr.getPeerAddress().asStringUriOnly(), null);
|
||||||
} else if (newState == ChatRoom.State.CreationFailed) {
|
} else if (newState == ChatRoom.State.CreationFailed) {
|
||||||
mWaitLayout.setVisibility(View.GONE);
|
mWaitLayout.setVisibility(View.GONE);
|
||||||
LinphoneActivity.instance().displayChatRoomError();
|
LinphoneActivity.instance().displayChatRoomError();
|
||||||
|
@ -199,7 +199,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
Address participant = Factory.instance().createAddress(sipUri);
|
Address participant = Factory.instance().createAddress(sipUri);
|
||||||
ChatRoom room = lc.findOneToOneChatRoom(lc.getDefaultProxyConfig().getContact(), participant);
|
ChatRoom room = lc.findOneToOneChatRoom(lc.getDefaultProxyConfig().getContact(), participant);
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly(), null);
|
||||||
} else {
|
} else {
|
||||||
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
if (lpc != null && lpc.getConferenceFactoryUri() != null && !LinphonePreferences.instance().useBasicChatRoomFor1To1()) {
|
if (lpc != null && lpc.getConferenceFactoryUri() != null && !LinphonePreferences.instance().useBasicChatRoomFor1To1()) {
|
||||||
|
@ -209,7 +209,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
mChatRoom.addParticipant(participant);
|
mChatRoom.addParticipant(participant);
|
||||||
} else {
|
} else {
|
||||||
room = lc.getChatRoom(participant);
|
room = lc.getChatRoom(participant);
|
||||||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (id == R.id.add_contact) {
|
} else if (id == R.id.add_contact) {
|
||||||
|
|
|
@ -402,6 +402,9 @@ public class StatusFragment extends Fragment {
|
||||||
|
|
||||||
ZRTPdialog = new Dialog(getActivity());
|
ZRTPdialog = new Dialog(getActivity());
|
||||||
ZRTPdialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
ZRTPdialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||||
|
ZRTPdialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
|
||||||
|
ZRTPdialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
|
||||||
|
ZRTPdialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||||
Drawable d = new ColorDrawable(ContextCompat.getColor(getActivity(), R.color.colorC));
|
Drawable d = new ColorDrawable(ContextCompat.getColor(getActivity(), R.color.colorC));
|
||||||
d.setAlpha(200);
|
d.setAlpha(200);
|
||||||
ZRTPdialog.setContentView(R.layout.dialog);
|
ZRTPdialog.setContentView(R.layout.dialog);
|
||||||
|
|
|
@ -64,9 +64,11 @@ public class ListSelectionHelper {
|
||||||
mEditButton.setOnClickListener(new View.OnClickListener() {
|
mEditButton.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
mAdapter.enableEdition(true);
|
if (mAdapter.getCount() > 0) {
|
||||||
mTopBar.setVisibility(View.GONE);
|
mAdapter.enableEdition(true);
|
||||||
mEditTopBar.setVisibility(View.VISIBLE);
|
mTopBar.setVisibility(View.GONE);
|
||||||
|
mEditTopBar.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit f4b87c521a513b540f34a72ef82a52364929d0be
|
Subproject commit ca4a89930dd8db94a60ae4a1dbf44a3710497429
|
|
@ -1 +1 @@
|
||||||
Subproject commit acf7727002fa4837a25582b5c798516b6b288fac
|
Subproject commit 06cd2b31438ac632520ebce25796cf6e2ab5a759
|
|
@ -1 +1 @@
|
||||||
Subproject commit 7376c8ba975617c8b2a7232c3acc428513a4ae8f
|
Subproject commit b1622d7ddf1cbe6a0f929537861dfa8b45b293c4
|
|
@ -1 +1 @@
|
||||||
Subproject commit cbb4ab4c2a58e4fa1954043f6b17266e1685c887
|
Subproject commit d7b16228a2746644a5dea76be9fff45708773130
|
2
submodules/externals/libxsd
vendored
2
submodules/externals/libxsd
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 97dfa5b7af486a2730aa66ef4b2b04259c9ab21b
|
Subproject commit 34af5de2ee71dde72a010fde336d2efa9c386abd
|
9050
submodules/externals/sqlite3/shell.c
vendored
9050
submodules/externals/sqlite3/shell.c
vendored
File diff suppressed because it is too large
Load diff
12299
submodules/externals/sqlite3/sqlite3.c
vendored
12299
submodules/externals/sqlite3/sqlite3.c
vendored
File diff suppressed because it is too large
Load diff
658
submodules/externals/sqlite3/sqlite3.h
vendored
658
submodules/externals/sqlite3/sqlite3.h
vendored
File diff suppressed because it is too large
Load diff
7
submodules/externals/sqlite3/sqlite3ext.h
vendored
7
submodules/externals/sqlite3/sqlite3ext.h
vendored
|
@ -292,6 +292,9 @@ struct sqlite3_api_routines {
|
||||||
int (*bind_pointer)(sqlite3_stmt*,int,void*,const char*,void(*)(void*));
|
int (*bind_pointer)(sqlite3_stmt*,int,void*,const char*,void(*)(void*));
|
||||||
void (*result_pointer)(sqlite3_context*,void*,const char*,void(*)(void*));
|
void (*result_pointer)(sqlite3_context*,void*,const char*,void(*)(void*));
|
||||||
void *(*value_pointer)(sqlite3_value*,const char*);
|
void *(*value_pointer)(sqlite3_value*,const char*);
|
||||||
|
int (*vtab_nochange)(sqlite3_context*);
|
||||||
|
int (*value_nochange)(sqlite3_value*);
|
||||||
|
const char *(*vtab_collation)(sqlite3_index_info*,int);
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -558,6 +561,10 @@ typedef int (*sqlite3_loadext_entry)(
|
||||||
#define sqlite3_bind_pointer sqlite3_api->bind_pointer
|
#define sqlite3_bind_pointer sqlite3_api->bind_pointer
|
||||||
#define sqlite3_result_pointer sqlite3_api->result_pointer
|
#define sqlite3_result_pointer sqlite3_api->result_pointer
|
||||||
#define sqlite3_value_pointer sqlite3_api->value_pointer
|
#define sqlite3_value_pointer sqlite3_api->value_pointer
|
||||||
|
/* Version 3.22.0 and later */
|
||||||
|
#define sqlite3_vtab_nochange sqlite3_api->vtab_nochange
|
||||||
|
#define sqlite3_value_nochange sqlite3_api->value_nochange
|
||||||
|
#define sqlite3_vtab_collation sqlite3_api->vtab_collation
|
||||||
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
|
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
|
||||||
|
|
||||||
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
|
#if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
|
||||||
|
|
Loading…
Reference in a new issue