diff --git a/old_samples/.gitignore b/old_samples/.gitignore deleted file mode 100644 index fad17189b..000000000 --- a/old_samples/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -# built application files -*.apk -*.ap_ - -# files for the dex VM -*.dex - -# Java class files -*.class - -# generated files -bin/ -gen/ -out/ - -# Local configuration file (sdk path, etc) -local.properties - -# Eclipse project files -.classpath -.project - -# Android Studio -.idea/ -.gradle -/*/local.properties -/*/out -build -*/build -/*/*/build -/*/*/*/build -/*/*/production -*.iml -*.iws -*.ipr -*~ -*.swp - -# Mac -.DS_Store - -# Fabric -*/fabric.properties diff --git a/old_samples/LICENSE b/old_samples/LICENSE deleted file mode 100644 index 7397544bd..000000000 --- a/old_samples/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2015, QuickBlox -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - diff --git a/old_samples/README.md b/old_samples/README.md deleted file mode 100644 index 8b1378917..000000000 --- a/old_samples/README.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/old_samples/artifacts.gradle b/old_samples/artifacts.gradle deleted file mode 100644 index 99476f6da..000000000 --- a/old_samples/artifacts.gradle +++ /dev/null @@ -1,30 +0,0 @@ -android.applicationVariants.all { - variant -> - def appName - //Check if an applicationName property is supplied; if not use the name of the parent project. - if (project.hasProperty("applicationName")) { - appName = applicationName - } else { - appName = project.projectDir.getName() - } - - variant.outputs.each { - output -> - def newApkName - def apkEndName - //If there's no ZipAlign task it means that our artifact will be unaligned and we need to mark it as such. - if (output.zipAlign) { - apkEndName = ".apk" - } else { - apkEndName = "-unaligned.apk" - } - newApkName = "${appName}-${variant.buildType.name}-${getDate()}-code-${variant.versionCode}-version-${variant.versionName}" + apkEndName - output.outputFileName = newApkName - } -} - -def getDate() { - def date = new Date() - def formattedDate = date.format('yyyyMMdd') - return formattedDate -} \ No newline at end of file diff --git a/old_samples/build.gradle b/old_samples/build.gradle deleted file mode 100644 index 0a103dde1..000000000 --- a/old_samples/build.gradle +++ /dev/null @@ -1,66 +0,0 @@ -buildscript { - repositories { - google() - jcenter() - } - - dependencies { - classpath 'com.android.tools.build:gradle:3.2.0' - classpath 'com.google.gms:google-services:4.1.0' - } -} - -allprojects { - repositories { - google() - jcenter() - maven { - url "https://github.com/QuickBlox/quickblox-android-sdk-releases/raw/master/" - } - } -} - -ext { - compileSdkVersion = 28 - buildToolsVersion = "28.0.3" - - minSdkVersion = 14 - targetSdkVersion = 28 - - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 - - lintAbortOnError = false - - // QuickBlox SDK version - qbChatAdapterVersion = '2.0' - qbSdkVersion = '3.9.0' - - versionCode = 381 - versionName = '3.9.0' - - testRunnerVersion = "1.0.2" - - // Dependency versions - playServicesVersion = '16.0.0' - - constraintLayoutAndroidXVersion = '1.1.3' - viewPagerAndroidXVersion = '1.0.0' - fragmentAndroidXVersion = '1.0.0' - lifecycleViewmodelAndroidXVersion = '1.0.0' - coreKtxVersion = '1.0.0' - - rxAndroidVersion = '1.2.1' - materialVersion = '1.0.0' - - glideVersion = '3.6.1' - pullToRefreshVersion = '3.2.3' - robotoTextViewVersion = '4.0.0' - crashlyticsVersion = '2.9.5' - fabricToolsVersion = '1.25.4' - kotlinGradlePlugin = '1.2.71' - stickylistheadersVersion = '0.4.2' - swipyVersion = '1.2.3' - - dimensionDefault = 'default' -} \ No newline at end of file diff --git a/old_samples/cert/debug.keystore b/old_samples/cert/debug.keystore deleted file mode 100644 index e5fd6e269..000000000 Binary files a/old_samples/cert/debug.keystore and /dev/null differ diff --git a/old_samples/gradle.properties b/old_samples/gradle.properties deleted file mode 100644 index 3f56b1941..000000000 --- a/old_samples/gradle.properties +++ /dev/null @@ -1,22 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Settings specified in this file will override any Gradle settings -# configured through the IDE. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - -org.gradle.daemon=true -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -org.gradle.parallel=true -org.gradle.configureondemand=true -android.useAndroidX=true -android.enableJetifier=true \ No newline at end of file diff --git a/old_samples/gradle/wrapper/gradle-wrapper.jar b/old_samples/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 8c0fb64a8..000000000 Binary files a/old_samples/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/old_samples/gradle/wrapper/gradle-wrapper.properties b/old_samples/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 3e57d7248..000000000 --- a/old_samples/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Tue Oct 30 17:08:05 EET 2018 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip diff --git a/old_samples/gradlew b/old_samples/gradlew deleted file mode 100755 index 91a7e269e..000000000 --- a/old_samples/gradlew +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/old_samples/gradlew.bat b/old_samples/gradlew.bat deleted file mode 100644 index aec99730b..000000000 --- a/old_samples/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/old_samples/sample-chat/README.md b/old_samples/sample-chat/README.md deleted file mode 100644 index 39f9cdf97..000000000 --- a/old_samples/sample-chat/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## QuickBlox Android XMPP Chat Sample - -Go to project page on QuickBlox Developers Section -- - -Or clone project here and start to work with the code. - -       diff --git a/old_samples/sample-chat/build.gradle b/old_samples/sample-chat/build.gradle deleted file mode 100644 index b62967faf..000000000 --- a/old_samples/sample-chat/build.gradle +++ /dev/null @@ -1,86 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } - flatDir { dirs 'libs' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - flavorDimensions rootProject.dimensionDefault - - defaultConfig { - applicationId "com.quickblox.sample.chat" - minSdkVersion rootProject.minSdkVersion - targetSdkVersion rootProject.targetSdkVersion - versionCode rootProject.versionCode - versionName rootProject.versionName - } - - productFlavors { - speedDev { - dimension rootProject.dimensionDefault - minSdkVersion 21 - } - dev { - dimension rootProject.dimensionDefault - minSdkVersion rootProject.minSdkVersion - } - } - - buildTypes { - debug { - signingConfig signingConfigs.debug - minifyEnabled false - shrinkResources false - proguardFile 'proguard-rules.pro' - zipAlignEnabled false - } - - release { - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - lintOptions { - abortOnError false - } -} - -dependencies { - implementation(project(":sample-core")) - - implementation "com.quickblox:quickblox-android-sdk-chat:$rootProject.qbSdkVersion" - implementation "com.quickblox:quickblox-android-sdk-content:$rootProject.qbSdkVersion" - implementation "com.quickblox:chat-message-adapter:$rootProject.qbChatAdapterVersion" - - implementation "com.timehop.stickyheadersrecyclerview:library:$rootProject.stickylistheadersVersion@aar" - implementation "com.github.orangegangsters:swipy:$rootProject.swipyVersion@aar" - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } -} - -apply from: "../artifacts.gradle" -apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/old_samples/sample-chat/google-services.json b/old_samples/sample-chat/google-services.json deleted file mode 100644 index 052d41a42..000000000 --- a/old_samples/sample-chat/google-services.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "project_info": { - "project_id": "quickblox.com:api-project-761750217637", - "project_number": "761750217637", - "name": "QuickBlox Android samples" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "1:761750217637:android:c4299bc46191b0d7", - "client_id": "android:com.quickblox.sample.groupchatwebrtc", - "client_type": 1, - "android_client_info": { - "package_name": "com.quickblox.sample.groupchatwebrtc" - } - }, - "oauth_client": [], - "api_key": [], - "services": { - "analytics_service": { - "status": 1 - }, - "cloud_messaging_service": { - "status": 2, - "apns_config": [] - }, - "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] - }, - "google_signin_service": { - "status": 1 - }, - "ads_service": { - "status": 1 - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:761750217637:android:f7ceaf9593b66d36", - "client_id": "android:com.quickblox.simplesample.messages", - "client_type": 1, - "android_client_info": { - "package_name": "com.quickblox.simplesample.messages" - } - }, - "oauth_client": [], - "api_key": [], - "services": { - "analytics_service": { - "status": 1 - }, - "cloud_messaging_service": { - "status": 2, - "apns_config": [] - }, - "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] - }, - "google_signin_service": { - "status": 1 - }, - "ads_service": { - "status": 1 - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:761750217637:android:d150eafea3b1427e", - "client_id": "android:com.quickblox.sample.chat", - "client_type": 1, - "android_client_info": { - "package_name": "com.quickblox.sample.chat" - } - }, - "oauth_client": [], - "api_key": [ - { - "current_key": "" - } - ], - "services": { - "analytics_service": { - "status": 1 - }, - "cloud_messaging_service": { - "status": 2, - "apns_config": [] - }, - "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] - }, - "google_signin_service": { - "status": 1 - }, - "ads_service": { - "status": 1 - } - } - } - ], - "client_info": [], - "ARTIFACT_VERSION": "1" -} \ No newline at end of file diff --git a/old_samples/sample-chat/proguard-rules.pro b/old_samples/sample-chat/proguard-rules.pro deleted file mode 100755 index f1dd7da4b..000000000 --- a/old_samples/sample-chat/proguard-rules.pro +++ /dev/null @@ -1,70 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /home/tereha/Android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} -#-dontusemixedcaseclassnames -#-dontskipnonpubliclibraryclasses -#-verbose -# - -##---------------Begin: proguard configuration for Gson ---------- -# Gson uses generic type information stored in a class file when working with fields. Proguard -# removes such information by default, so configure it to keep all of it. --keepattributes Signature - -# For using GSON @Expose annotation --keepattributes *Annotation* - -# Gson specific classes --keep class sun.misc.Unsafe { *; } -#-keep class com.google.gson.stream.** { *; } - -# Application classes that will be serialized/deserialized over Gson - -keep class com.quickblox.core.account.model.** { *; } - - -##---------------End: proguard configuration for Gson ---------- -#quickblox sample chat - --keep class com.quickblox.auth.parsers.** { *; } --keep class com.quickblox.auth.model.** { *; } --keep class com.quickblox.core.parser.** { *; } --keep class com.quickblox.core.model.** { *; } --keep class com.quickblox.core.server.** { *; } --keep class com.quickblox.core.rest.** { *; } --keep class com.quickblox.core.error.** { *; } --keep class com.quickblox.core.Query { *; } - --keep class com.quickblox.users.parsers.** { *; } --keep class com.quickblox.users.model.** { *; } - --keep class com.quickblox.chat.parser.** { *; } --keep class com.quickblox.chat.model.** { *; } - --keep class com.quickblox.messages.parsers.** { *; } --keep class com.quickblox.messages.model.** { *; } - --keep class com.quickblox.content.parsers.** { *; } --keep class com.quickblox.content.model.** { *; } - --keep class org.jivesoftware.** { *; } - -#sample chat --keep class android.support.v7.** { *; } --keep class com.bumptech.** { *; } - --dontwarn org.jivesoftware.smackx.** --dontwarn android.support.v4.app.** \ No newline at end of file diff --git a/old_samples/sample-chat/project.properties b/old_samples/sample-chat/project.properties deleted file mode 100644 index 091de6bb1..000000000 --- a/old_samples/sample-chat/project.properties +++ /dev/null @@ -1,15 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-21 -android.library.reference.1=libraries/pull-to-refresh diff --git a/old_samples/sample-chat/screenshots/Chat1.png b/old_samples/sample-chat/screenshots/Chat1.png deleted file mode 100644 index 1cbdedd24..000000000 Binary files a/old_samples/sample-chat/screenshots/Chat1.png and /dev/null differ diff --git a/old_samples/sample-chat/screenshots/Chat2.png b/old_samples/sample-chat/screenshots/Chat2.png deleted file mode 100644 index 5cc925954..000000000 Binary files a/old_samples/sample-chat/screenshots/Chat2.png and /dev/null differ diff --git a/old_samples/sample-chat/screenshots/Chat3.png b/old_samples/sample-chat/screenshots/Chat3.png deleted file mode 100644 index 189de9eff..000000000 Binary files a/old_samples/sample-chat/screenshots/Chat3.png and /dev/null differ diff --git a/old_samples/sample-chat/screenshots/Chat4.png b/old_samples/sample-chat/screenshots/Chat4.png deleted file mode 100644 index 76682d402..000000000 Binary files a/old_samples/sample-chat/screenshots/Chat4.png and /dev/null differ diff --git a/old_samples/sample-chat/screenshots/Chat5.png b/old_samples/sample-chat/screenshots/Chat5.png deleted file mode 100644 index 52dd61aeb..000000000 Binary files a/old_samples/sample-chat/screenshots/Chat5.png and /dev/null differ diff --git a/old_samples/sample-chat/screenshots/Chat6.png b/old_samples/sample-chat/screenshots/Chat6.png deleted file mode 100644 index e8e718036..000000000 Binary files a/old_samples/sample-chat/screenshots/Chat6.png and /dev/null differ diff --git a/old_samples/sample-chat/screenshots/Chat7.png b/old_samples/sample-chat/screenshots/Chat7.png deleted file mode 100644 index f08231b3b..000000000 Binary files a/old_samples/sample-chat/screenshots/Chat7.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/AndroidManifest.xml b/old_samples/sample-chat/src/main/AndroidManifest.xml deleted file mode 100644 index 4e45f9588..000000000 --- a/old_samples/sample-chat/src/main/AndroidManifest.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/assets/qb_config.json b/old_samples/sample-chat/src/main/assets/qb_config.json deleted file mode 100644 index c6e242af6..000000000 --- a/old_samples/sample-chat/src/main/assets/qb_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "account_key": "C4_z7nuaANnBYmsG_k98", - "gcm_sender_id": "761750217637" -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/assets/sample_config.json b/old_samples/sample-chat/src/main/assets/sample_config.json deleted file mode 100644 index 3d220e6fa..000000000 --- a/old_samples/sample-chat/src/main/assets/sample_config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "users_tag": "webrtcusers", - "users_password": "x6Bt0VDy5", - "port": 5223, - "socket_timeout": 300, - "keep_alive": true, - "use_tls": true, - "auto_join": false, - "auto_mark_delivered": true, - "reconnection_allowed": true, - "allow_listen_network": true -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/App.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/App.java deleted file mode 100644 index 6a4e94ba4..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/App.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.quickblox.sample.chat; - -import com.crashlytics.android.Crashlytics; -import com.quickblox.sample.chat.models.SampleConfigs; -import com.quickblox.sample.chat.utils.Consts; -import com.quickblox.sample.chat.utils.configs.ConfigUtils; -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.utils.ActivityLifecycle; - -import java.io.IOException; - -import io.fabric.sdk.android.Fabric; - -public class App extends CoreApp { - private static final String TAG = App.class.getSimpleName(); - private static SampleConfigs sampleConfigs; - - @Override - public void onCreate() { - super.onCreate(); - initFabric(); - ActivityLifecycle.init(this); - initSampleConfigs(); - } - - private void initSampleConfigs() { - try { - sampleConfigs = ConfigUtils.getSampleConfigs(Consts.SAMPLE_CONFIG_FILE_NAME); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public static SampleConfigs getSampleConfigs() { - return sampleConfigs; - } - - private void initFabric() { - if (!BuildConfig.DEBUG) { - Fabric.with(this, new Crashlytics()); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/gcm/GcmPushListenerService.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/gcm/GcmPushListenerService.java deleted file mode 100644 index 036df87e1..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/gcm/GcmPushListenerService.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.quickblox.sample.chat.gcm; - -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.ui.activity.SplashActivity; -import com.quickblox.sample.core.gcm.CoreGcmPushListenerService; -import com.quickblox.sample.core.utils.NotificationUtils; -import com.quickblox.sample.core.utils.ResourceUtils; - -public class GcmPushListenerService extends CoreGcmPushListenerService { - private static final int NOTIFICATION_ID = 1; - - @Override - protected void showNotification(String message) { - NotificationUtils.showNotification(this, SplashActivity.class, - ResourceUtils.getString(R.string.notification_title), message, - R.mipmap.ic_notification, NOTIFICATION_ID); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/managers/DialogsManager.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/managers/DialogsManager.java deleted file mode 100644 index 2faf5cdfd..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/managers/DialogsManager.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.quickblox.sample.chat.managers; - -import android.os.Bundle; - -import com.quickblox.chat.QBChatService; -import com.quickblox.chat.QBSystemMessagesManager; -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.chat.utils.qb.QbDialogHolder; -import com.quickblox.sample.chat.utils.qb.QbDialogUtils; -import com.quickblox.sample.chat.utils.qb.callback.QbEntityCallbackImpl; -import com.quickblox.users.model.QBUser; - -import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smackx.muc.DiscussionHistory; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; - -public class DialogsManager { - - public static final String PROPERTY_OCCUPANTS_IDS = "current_occupant_ids"; - public static final String PROPERTY_DIALOG_TYPE = "type"; - public static final String PROPERTY_DIALOG_NAME = "room_name"; - public static final String PROPERTY_NOTIFICATION_TYPE = "notification_type"; - public static final String CREATING_DIALOG = "1"; - - private Set managingDialogsCallbackListener = new CopyOnWriteArraySet<>(); - - private boolean isMessageCreatingDialog(QBChatMessage systemMessage) { - return CREATING_DIALOG.equals(systemMessage.getProperty(PROPERTY_NOTIFICATION_TYPE)); - } - - private QBChatMessage buildSystemMessageAboutCreatingGroupDialog(QBChatDialog dialog) { - QBChatMessage qbChatMessage = new QBChatMessage(); - qbChatMessage.setDialogId(dialog.getDialogId()); - qbChatMessage.setProperty(PROPERTY_OCCUPANTS_IDS, QbDialogUtils.getOccupantsIdsStringFromList(dialog.getOccupants())); - qbChatMessage.setProperty(PROPERTY_DIALOG_TYPE, String.valueOf(dialog.getType().getCode())); - qbChatMessage.setProperty(PROPERTY_DIALOG_NAME, String.valueOf(dialog.getName())); - qbChatMessage.setProperty(PROPERTY_NOTIFICATION_TYPE, CREATING_DIALOG); - qbChatMessage.setDateSent(System.currentTimeMillis() / 1000); - qbChatMessage.setBody("New Chat Created"); - return qbChatMessage; - } - - private QBChatDialog buildChatDialogFromSystemMessage(QBChatMessage qbChatMessage) { - QBChatDialog chatDialog = new QBChatDialog(); - chatDialog.setDialogId(qbChatMessage.getDialogId()); - chatDialog.setOccupantsIds(QbDialogUtils.getOccupantsIdsListFromString((String) qbChatMessage.getProperty(PROPERTY_OCCUPANTS_IDS))); - chatDialog.setType(QBDialogType.parseByCode(Integer.parseInt(qbChatMessage.getProperty(PROPERTY_DIALOG_TYPE).toString()))); - chatDialog.setName(qbChatMessage.getProperty(PROPERTY_DIALOG_NAME).toString()); - chatDialog.setUnreadMessageCount(0); - return chatDialog; - } - - public void sendSystemMessageAboutCreatingDialog(QBSystemMessagesManager systemMessagesManager, QBChatDialog dialog) { - QBChatMessage systemMessageCreatingDialog = buildSystemMessageAboutCreatingGroupDialog(dialog); - - try { - for (Integer recipientId : dialog.getOccupants()) { - if (!recipientId.equals(QBChatService.getInstance().getUser().getId())) { - systemMessageCreatingDialog.setRecipientId(recipientId); - systemMessagesManager.sendSystemMessage(systemMessageCreatingDialog); - } - } - } catch (SmackException.NotConnectedException e) { - e.printStackTrace(); - } - } - - private void loadUsersFromDialog(QBChatDialog chatDialog) { - ChatHelper.getInstance().getUsersFromDialog(chatDialog, new QbEntityCallbackImpl>()); - } - - public void onGlobalMessageReceived(String dialogId, QBChatMessage chatMessage) { - if (chatMessage.isMarkable()) { - if (QbDialogHolder.getInstance().hasDialogWithId(dialogId)) { - QbDialogHolder.getInstance().updateDialog(dialogId, chatMessage); - notifyListenersDialogUpdated(dialogId); - } else { - ChatHelper.getInstance().getDialogById(dialogId, new QbEntityCallbackImpl() { - @Override - public void onSuccess(QBChatDialog chatDialog, Bundle bundle) { - loadUsersFromDialog(chatDialog); - QbDialogHolder.getInstance().addDialog(chatDialog); - notifyListenersNewDialogLoaded(chatDialog); - } - }); - } - } - } - - public void onSystemMessageReceived(final QBChatMessage systemMessage) { - if (isMessageCreatingDialog(systemMessage)) { - final QBChatDialog chatDialog = buildChatDialogFromSystemMessage(systemMessage); - chatDialog.initForChat(QBChatService.getInstance()); - - DiscussionHistory history = new DiscussionHistory(); - history.setMaxStanzas(0); - - chatDialog.join(history, new QbEntityCallbackImpl() { - @Override - public void onSuccess(Object o, Bundle bundle) { - QbDialogHolder.getInstance().addDialog(chatDialog); - notifyListenersDialogCreated(chatDialog); - QbDialogHolder.getInstance().updateDialog(chatDialog.getDialogId(), systemMessage); - onGlobalMessageReceived(chatDialog.getDialogId(), systemMessage); - notifyListenersDialogUpdated(chatDialog.getDialogId()); - } - }); - } - } - - private void notifyListenersDialogCreated(final QBChatDialog chatDialog) { - for (ManagingDialogsCallbacks listener : getManagingDialogsCallbackListeners()) { - listener.onDialogCreated(chatDialog); - } - } - - private void notifyListenersDialogUpdated(final String dialogId) { - for (ManagingDialogsCallbacks listener : getManagingDialogsCallbackListeners()) { - listener.onDialogUpdated(dialogId); - } - } - - private void notifyListenersNewDialogLoaded(final QBChatDialog chatDialog) { - for (ManagingDialogsCallbacks listener : getManagingDialogsCallbackListeners()) { - listener.onNewDialogLoaded(chatDialog); - } - } - - public void addManagingDialogsCallbackListener(ManagingDialogsCallbacks listener) { - if (listener != null) { - managingDialogsCallbackListener.add(listener); - } - } - - public void removeManagingDialogsCallbackListener(ManagingDialogsCallbacks listener) { - managingDialogsCallbackListener.remove(listener); - } - - public Collection getManagingDialogsCallbackListeners() { - return Collections.unmodifiableCollection(managingDialogsCallbackListener); - } - - public interface ManagingDialogsCallbacks { - - void onDialogCreated(QBChatDialog chatDialog); - - void onDialogUpdated(String chatDialog); - - void onNewDialogLoaded(QBChatDialog chatDialog); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/models/SampleConfigs.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/models/SampleConfigs.java deleted file mode 100644 index 5e40d7fe9..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/models/SampleConfigs.java +++ /dev/null @@ -1,119 +0,0 @@ -package com.quickblox.sample.chat.models; - -import com.google.gson.annotations.SerializedName; - -public class SampleConfigs { - - public SampleConfigs() { - } - - @SerializedName("users_tag") - private String usersTag; - - @SerializedName("users_password") - private String usersPassword; - - @SerializedName("port") - private int chatPort; - - @SerializedName("socket_timeout") - private int chatSocketTimeout; - - @SerializedName("keep_alive") - private boolean keepAlive; - - @SerializedName("use_tls") - private boolean useTls; - - @SerializedName("auto_join") - private boolean autoJoinEnabled; - - @SerializedName("auto_mark_delivered") - private boolean autoMarkDelivered; - - @SerializedName("reconnection_allowed") - private boolean reconnectionAllowed; - - @SerializedName("allow_listen_network") - private boolean allowListenNetwork; - - public String getUsersTag() { - return usersTag; - } - - public void setUsersTag(String usersTag) { - this.usersTag = usersTag; - } - - public String getUsersPassword() { - return usersPassword; - } - - public void setUsersPassword(String usersPassword) { - this.usersPassword = usersPassword; - } - - public int getChatPort() { - return chatPort; - } - - public void setChatPort(int chatPort) { - this.chatPort = chatPort; - } - - public int getChatSocketTimeout() { - return chatSocketTimeout; - } - - public void setChatSocketTimeout(int chatSocketTimeout) { - this.chatSocketTimeout = chatSocketTimeout; - } - - public boolean isKeepAlive() { - return keepAlive; - } - - public void setKeepAlive(boolean keepAlive) { - this.keepAlive = keepAlive; - } - - public boolean isUseTls() { - return useTls; - } - - public void setUseTls(boolean useTls) { - this.useTls = useTls; - } - - public boolean isAutoJoinEnabled() { - return autoJoinEnabled; - } - - public void setAutoJoinEnabled(boolean autoJoinEnabled) { - this.autoJoinEnabled = autoJoinEnabled; - } - - public boolean isAutoMarkDelivered() { - return autoMarkDelivered; - } - - public void setAutoMarkDelivered(boolean autoMarkDelivered) { - this.autoMarkDelivered = autoMarkDelivered; - } - - public boolean isReconnectionAllowed() { - return reconnectionAllowed; - } - - public void setReconnectionAllowed(boolean reconnectionAllowed) { - this.reconnectionAllowed = reconnectionAllowed; - } - - public boolean isAllowListenNetwork() { - return allowListenNetwork; - } - - public void setAllowListenNetwork(boolean allowListenNetwork) { - this.allowListenNetwork = allowListenNetwork; - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/AttachmentImageActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/AttachmentImageActivity.java deleted file mode 100644 index 9918fa83f..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/AttachmentImageActivity.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.text.TextUtils; -import android.view.View; -import android.widget.ImageView; -import android.widget.ProgressBar; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.bumptech.glide.load.resource.drawable.GlideDrawable; -import com.bumptech.glide.request.RequestListener; -import com.bumptech.glide.request.target.Target; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.utils.Consts; - -public class AttachmentImageActivity extends BaseActivity { - - private static final String EXTRA_URL = "url"; - - private ImageView imageView; - private ProgressBar progressBar; - - public static void start(Context context, String url) { - Intent intent = new Intent(context, AttachmentImageActivity.class); - intent.putExtra(EXTRA_URL, url); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_show_image); - initUI(); - loadImage(); - } - - @Override - protected View getSnackbarAnchorView() { - return _findViewById(R.id.layout_root); - } - - private void initUI() { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowTitleEnabled(false); - imageView = _findViewById(R.id.image_full_view); - progressBar = _findViewById(R.id.progress_bar_show_image); - } - - private void loadImage() { - String url = getIntent().getStringExtra(EXTRA_URL); - if (TextUtils.isEmpty(url)) { - imageView.setImageResource(R.drawable.ic_error_white); - return; - } - - progressBar.setVisibility(View.VISIBLE); - Glide.with(this) - .load(url) - .diskCacheStrategy(DiskCacheStrategy.ALL) - .listener(new RequestListener() { - @Override - public boolean onException(Exception e, String model, - Target target, boolean isFirstResource) { - e.printStackTrace(); - progressBar.setVisibility(View.GONE); - return false; - } - - @Override - public boolean onResourceReady(GlideDrawable resource, String model, - Target target, boolean isFromMemoryCache, - boolean isFirstResource) { - progressBar.setVisibility(View.GONE); - return false; - } - }) - .error(R.drawable.ic_error_white) - .dontTransform() - .override(Consts.PREFERRED_IMAGE_SIZE_FULL, Consts.PREFERRED_IMAGE_SIZE_FULL) - .into(imageView); - } - -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/BaseActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/BaseActivity.java deleted file mode 100644 index b786542e0..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/BaseActivity.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.os.Bundle; -import android.os.PersistableBundle; -import android.view.View; - -import com.google.android.material.snackbar.Snackbar; -import com.quickblox.sample.core.ui.activity.CoreBaseActivity; -import com.quickblox.sample.core.utils.ErrorUtils; - -import androidx.annotation.StringRes; -import androidx.appcompat.app.ActionBar; - -public abstract class BaseActivity extends CoreBaseActivity { - private static final String TAG = BaseActivity.class.getSimpleName(); - - protected ActionBar actionBar; - - @Override - protected void onCreate(final Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - actionBar = getSupportActionBar(); - - } - - @Override - public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { - outState.putInt("dummy_value", 0); - super.onSaveInstanceState(outState, outPersistentState); - } - - protected abstract View getSnackbarAnchorView(); - - protected Snackbar showErrorSnackbar(@StringRes int resId, Exception e, - View.OnClickListener clickListener) { - return ErrorUtils.showSnackbar(getSnackbarAnchorView(), resId, e, - com.quickblox.sample.core.R.string.dlg_retry, clickListener); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/ChatActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/ChatActivity.java deleted file mode 100644 index 15b7ec7a7..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/ChatActivity.java +++ /dev/null @@ -1,609 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.os.PersistableBundle; -import android.text.TextUtils; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.EditText; -import android.widget.LinearLayout; -import android.widget.ProgressBar; - -import com.google.android.material.snackbar.Snackbar; -import com.quickblox.chat.QBChatService; -import com.quickblox.chat.model.QBAttachment; -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.content.model.QBFile; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.ui.adapter.AttachmentPreviewAdapter; -import com.quickblox.sample.chat.ui.adapter.ChatAdapter; -import com.quickblox.sample.chat.ui.widget.AttachmentPreviewAdapterView; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.chat.utils.qb.PaginationHistoryListener; -import com.quickblox.sample.chat.utils.qb.QbChatDialogMessageListenerImp; -import com.quickblox.sample.chat.utils.qb.QbDialogHolder; -import com.quickblox.sample.chat.utils.qb.QbDialogUtils; -import com.quickblox.sample.chat.utils.qb.VerboseQbChatConnectionListener; -import com.quickblox.sample.core.ui.dialog.ProgressDialogFragment; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.core.utils.imagepick.ImagePickHelper; -import com.quickblox.sample.core.utils.imagepick.OnImagePickedListener; -import com.quickblox.ui.kit.chatmessage.adapter.listeners.QBChatAttachClickListener; -import com.quickblox.users.model.QBUser; -import com.timehop.stickyheadersrecyclerview.StickyRecyclerHeadersDecoration; - -import org.jivesoftware.smack.ConnectionListener; -import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smack.XMPPException; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -import androidx.appcompat.app.ActionBar; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -public class ChatActivity extends BaseActivity implements OnImagePickedListener { - private static final String TAG = ChatActivity.class.getSimpleName(); - private static final int REQUEST_CODE_ATTACHMENT = 721; - private static final int REQUEST_CODE_SELECT_PEOPLE = 752; - - public static final String EXTRA_DIALOG_ID = "dialogId"; - - private ProgressBar progressBar; - private EditText messageEditText; - - private LinearLayout attachmentPreviewContainerLayout; - private Snackbar snackbar; - - private ChatAdapter chatAdapter; - private RecyclerView chatMessagesRecyclerView; - protected List messagesList; - private AttachmentPreviewAdapter attachmentPreviewAdapter; - private ConnectionListener chatConnectionListener; - private ImageAttachClickListener imageAttachClickListener; - - private QBChatDialog qbChatDialog; - private ArrayList unShownMessages; - private int skipPagination = 0; - private ChatMessageListener chatMessageListener; - private boolean checkAdapterInit; - - public static void startForResult(Activity activity, int code, QBChatDialog dialogId) { - Intent intent = new Intent(activity, ChatActivity.class); - intent.putExtra(ChatActivity.EXTRA_DIALOG_ID, dialogId); - activity.startActivityForResult(intent, code); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_chat); - - Log.v(TAG, "onCreate ChatActivity on Thread ID = " + Thread.currentThread().getId()); - - qbChatDialog = (QBChatDialog) getIntent().getSerializableExtra(EXTRA_DIALOG_ID); - - Log.v(TAG, "deserialized dialog = " + qbChatDialog); - qbChatDialog.initForChat(QBChatService.getInstance()); - - initViews(); - initMessagesRecyclerView(); - - chatMessageListener = new ChatMessageListener(); - - qbChatDialog.addMessageListener(chatMessageListener); - - initChatConnectionListener(); - - initChat(); - } - - @Override - public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { - if (qbChatDialog != null) { - outState.putString(EXTRA_DIALOG_ID, qbChatDialog.getDialogId()); - } - super.onSaveInstanceState(outState, outPersistentState); - } - - @Override - protected void onRestoreInstanceState(Bundle savedInstanceState) { - super.onRestoreInstanceState(savedInstanceState); - if (qbChatDialog == null) { - qbChatDialog = QbDialogHolder.getInstance().getChatDialogById(savedInstanceState.getString(EXTRA_DIALOG_ID)); - } - } - - @Override - protected void onResume() { - super.onResume(); - addChatMessagesAdapterListeners(); - ChatHelper.getInstance().addConnectionListener(chatConnectionListener); - } - - @Override - protected void onPause() { - super.onPause(); - removeChatMessagesAdapterListeners(); - ChatHelper.getInstance().removeConnectionListener(chatConnectionListener); - } - - @Override - public void onBackPressed() { - releaseChat(); - sendDialogId(); - - super.onBackPressed(); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.activity_chat, menu); - - MenuItem menuItemLeave = menu.findItem(R.id.menu_chat_action_leave); - MenuItem menuItemAdd = menu.findItem(R.id.menu_chat_action_add); - MenuItem menuItemDelete = menu.findItem(R.id.menu_chat_action_delete); - if (qbChatDialog.getType() == QBDialogType.PRIVATE) { - menuItemLeave.setVisible(false); - menuItemAdd.setVisible(false); - } else { - menuItemDelete.setVisible(false); - } - - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - switch (id) { - case R.id.menu_chat_action_info: - ChatInfoActivity.start(this, qbChatDialog); - return true; - - case R.id.menu_chat_action_add: - SelectUsersActivity.startForResult(this, REQUEST_CODE_SELECT_PEOPLE, qbChatDialog); - return true; - - case R.id.menu_chat_action_leave: - leaveGroupChat(); - return true; - - case R.id.menu_chat_action_delete: - deleteChat(); - return true; - - case android.R.id.home: - onBackPressed(); - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - private void sendDialogId() { - Intent result = new Intent(); - result.putExtra(EXTRA_DIALOG_ID, qbChatDialog.getDialogId()); - setResult(RESULT_OK, result); - } - - private void leaveGroupChat() { - ProgressDialogFragment.show(getSupportFragmentManager()); - ChatHelper.getInstance().exitFromDialog(qbChatDialog, new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog qbDialog, Bundle bundle) { - ProgressDialogFragment.hide(getSupportFragmentManager()); - QbDialogHolder.getInstance().deleteDialog(qbDialog); - finish(); - } - - @Override - public void onError(QBResponseException e) { - ProgressDialogFragment.hide(getSupportFragmentManager()); - showErrorSnackbar(R.string.error_leave_chat, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - leaveGroupChat(); - } - }); - } - }); - } - - @SuppressWarnings("unchecked") - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - if (requestCode == REQUEST_CODE_SELECT_PEOPLE) { - ArrayList selectedUsers = (ArrayList) data.getSerializableExtra( - SelectUsersActivity.EXTRA_QB_USERS); - - updateDialog(selectedUsers); - } - } - } - - @Override - public void onImagePicked(int requestCode, File file) { - switch (requestCode) { - case REQUEST_CODE_ATTACHMENT: - attachmentPreviewAdapter.add(file); - break; - } - } - - @Override - public void onImagePickError(int requestCode, Exception e) { - showErrorSnackbar(0, e, null); - } - - @Override - public void onImagePickClosed(int requestCode) { - // ignore - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.list_chat_messages); - } - - public void onSendChatClick(View view) { - int totalAttachmentsCount = attachmentPreviewAdapter.getCount(); - Collection uploadedAttachments = attachmentPreviewAdapter.getUploadedAttachments(); - if (!uploadedAttachments.isEmpty()) { - if (uploadedAttachments.size() == totalAttachmentsCount) { - for (QBAttachment attachment : uploadedAttachments) { - sendChatMessage(null, attachment); - } - } else { - Toaster.shortToast(R.string.chat_wait_for_attachments_to_upload); - } - } - - String text = messageEditText.getText().toString().trim(); - if (!TextUtils.isEmpty(text)) { - sendChatMessage(text, null); - } - } - - public void onAttachmentsClick(View view) { - new ImagePickHelper().pickAnImage(this, REQUEST_CODE_ATTACHMENT); - } - - public void showMessage(QBChatMessage message) { - if (isAdapterConnected()) { - chatAdapter.add(message); - scrollMessageListDown(); - } else { - delayShowMessage(message); - } - } - - private boolean isAdapterConnected() { - return checkAdapterInit; - } - - private void delayShowMessage(QBChatMessage message) { - if (unShownMessages == null) { - unShownMessages = new ArrayList<>(); - } - unShownMessages.add(message); - } - - private void initViews() { - actionBar.setDisplayHomeAsUpEnabled(true); - - messageEditText = _findViewById(R.id.edit_chat_message); - progressBar = _findViewById(R.id.progress_chat); - attachmentPreviewContainerLayout = _findViewById(R.id.layout_attachment_preview_container); - - attachmentPreviewAdapter = new AttachmentPreviewAdapter(this, - new AttachmentPreviewAdapter.OnAttachmentCountChangedListener() { - @Override - public void onAttachmentCountChanged(int count) { - attachmentPreviewContainerLayout.setVisibility(count == 0 ? View.GONE : View.VISIBLE); - } - }, - new AttachmentPreviewAdapter.OnAttachmentUploadErrorListener() { - @Override - public void onAttachmentUploadError(QBResponseException e) { - showErrorSnackbar(0, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - onAttachmentsClick(v); - } - }); - } - }); - AttachmentPreviewAdapterView previewAdapterView = _findViewById(R.id.adapter_view_attachment_preview); - previewAdapterView.setAdapter(attachmentPreviewAdapter); - } - - private void initMessagesRecyclerView() { - chatMessagesRecyclerView = findViewById(R.id.list_chat_messages); - - LinearLayoutManager layoutManager = new LinearLayoutManager(this); - layoutManager.setStackFromEnd(true); - chatMessagesRecyclerView.setLayoutManager(layoutManager); - - messagesList = new ArrayList<>(); - chatAdapter = new ChatAdapter(this, qbChatDialog, messagesList); - chatAdapter.setPaginationHistoryListener(new PaginationListener()); - chatMessagesRecyclerView.addItemDecoration( - new StickyRecyclerHeadersDecoration(chatAdapter)); - - chatMessagesRecyclerView.setAdapter(chatAdapter); - imageAttachClickListener = new ImageAttachClickListener(); - } - - private void sendChatMessage(String text, QBAttachment attachment) { - QBChatMessage chatMessage = new QBChatMessage(); - if (attachment != null) { - chatMessage.addAttachment(attachment); - } else { - chatMessage.setBody(text); - } - chatMessage.setSaveToHistory(true); - chatMessage.setDateSent(System.currentTimeMillis() / 1000); - chatMessage.setMarkable(true); - - if (!QBDialogType.PRIVATE.equals(qbChatDialog.getType()) && !qbChatDialog.isJoined()) { - Toaster.shortToast("You're still joining a group chat, please wait a bit"); - return; - } - - try { - qbChatDialog.sendMessage(chatMessage); - - if (QBDialogType.PRIVATE.equals(qbChatDialog.getType())) { - showMessage(chatMessage); - } - - if (attachment != null) { - attachmentPreviewAdapter.remove(attachment); - } else { - messageEditText.setText(""); - } - } catch (SmackException.NotConnectedException e) { - Log.w(TAG, e); - Toaster.shortToast("Can't send a message, You are not connected to chat"); - } - } - - private void initChat() { - switch (qbChatDialog.getType()) { - case GROUP: - case PUBLIC_GROUP: - joinGroupChat(); - break; - - case PRIVATE: - loadDialogUsers(); - break; - - default: - Toaster.shortToast(String.format("%s %s", getString(R.string.chat_unsupported_type), qbChatDialog.getType().name())); - finish(); - break; - } - } - - private void joinGroupChat() { - progressBar.setVisibility(View.VISIBLE); - ChatHelper.getInstance().join(qbChatDialog, new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle b) { - if (snackbar != null) { - snackbar.dismiss(); - } - loadDialogUsers(); - } - - @Override - public void onError(QBResponseException e) { - progressBar.setVisibility(View.GONE); - snackbar = showErrorSnackbar(R.string.connection_error, e, null); - } - }); - } - - private void leaveGroupDialog() { - try { - ChatHelper.getInstance().leaveChatDialog(qbChatDialog); - } catch (XMPPException | SmackException.NotConnectedException e) { - Log.w(TAG, e); - } - } - - private void releaseChat() { - qbChatDialog.removeMessageListrener(chatMessageListener); - } - - private void updateDialog(final ArrayList selectedUsers) { - ChatHelper.getInstance().updateDialogUsers(qbChatDialog, selectedUsers, - new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - qbChatDialog = dialog; - loadDialogUsers(); - } - - @Override - public void onError(QBResponseException e) { - showErrorSnackbar(R.string.chat_info_add_people_error, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - updateDialog(selectedUsers); - } - }); - } - } - ); - } - - private void loadDialogUsers() { - ChatHelper.getInstance().getUsersFromDialog(qbChatDialog, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle bundle) { - setChatNameToActionBar(); - loadChatHistory(); - } - - @Override - public void onError(QBResponseException e) { - showErrorSnackbar(R.string.chat_load_users_error, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - loadDialogUsers(); - } - }); - } - }); - } - - private void setChatNameToActionBar() { - String chatName = QbDialogUtils.getDialogName(qbChatDialog); - ActionBar ab = getSupportActionBar(); - if (ab != null) { - ab.setTitle(chatName); - ab.setDisplayHomeAsUpEnabled(true); - ab.setHomeButtonEnabled(true); - } - } - - private void loadChatHistory() { - ChatHelper.getInstance().loadChatHistory(qbChatDialog, skipPagination, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList messages, Bundle args) { - // The newest messages should be in the end of list, - // so we need to reverse list to show messages in the right order - Collections.reverse(messages); - if (!checkAdapterInit) { - checkAdapterInit = true; - chatAdapter.addList(messages); - addDelayedMessagesToAdapter(); - } else { - chatAdapter.addToList(messages); - } - progressBar.setVisibility(View.GONE); - } - - @Override - public void onError(QBResponseException e) { - progressBar.setVisibility(View.GONE); - skipPagination -= ChatHelper.CHAT_HISTORY_ITEMS_PER_PAGE; - snackbar = showErrorSnackbar(R.string.connection_error, e, null); - } - }); - skipPagination += ChatHelper.CHAT_HISTORY_ITEMS_PER_PAGE; - } - - private void addDelayedMessagesToAdapter() { - if (unShownMessages != null && !unShownMessages.isEmpty()) { - List chatList = chatAdapter.getList(); - for (QBChatMessage message : unShownMessages) { - if (!chatList.contains(message)) { - chatAdapter.add(message); - } - } - } - } - - private void scrollMessageListDown() { - chatMessagesRecyclerView.scrollToPosition(messagesList.size() - 1); - } - - private void deleteChat() { - ChatHelper.getInstance().deleteDialog(qbChatDialog, new QBEntityCallback() { - @Override - public void onSuccess(Void aVoid, Bundle bundle) { - setResult(RESULT_OK); - finish(); - } - - @Override - public void onError(QBResponseException e) { - showErrorSnackbar(R.string.dialogs_deletion_error, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - deleteChat(); - } - }); - } - }); - } - - private void initChatConnectionListener() { - chatConnectionListener = new VerboseQbChatConnectionListener(getSnackbarAnchorView()) { - @Override - public void reconnectionSuccessful() { - super.reconnectionSuccessful(); - skipPagination = 0; - switch (qbChatDialog.getType()) { - case GROUP: - checkAdapterInit = false; - // Join active room if we're in Group Chat - runOnUiThread(new Runnable() { - @Override - public void run() { - joinGroupChat(); - } - }); - break; - } - } - }; - } - - private void addChatMessagesAdapterListeners() { - chatAdapter.setAttachImageClickListener(imageAttachClickListener); - } - - private void removeChatMessagesAdapterListeners() { - chatAdapter.removeAttachImageClickListener(imageAttachClickListener); - } - - private class ChatMessageListener extends QbChatDialogMessageListenerImp { - @Override - public void processMessage(String s, QBChatMessage qbChatMessage, Integer integer) { - showMessage(qbChatMessage); - } - } - - private class ImageAttachClickListener implements QBChatAttachClickListener { - - @Override - public void onLinkClicked(QBAttachment qbAttachment, int position) { - if (qbAttachment != null) { - String url = QBFile.getPrivateUrlForUID(qbAttachment.getId()); - AttachmentImageActivity.start(ChatActivity.this, url); - } - } - } - - private class PaginationListener implements PaginationHistoryListener { - - @Override - public void downloadMore() { - Log.w(TAG, "downloadMore"); - loadChatHistory(); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/ChatInfoActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/ChatInfoActivity.java deleted file mode 100644 index c5e802a4e..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/ChatInfoActivity.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.widget.ListView; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.ui.adapter.UsersAdapter; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.chat.utils.qb.QbUsersHolder; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.users.model.QBUser; - -import java.util.List; - -public class ChatInfoActivity extends BaseActivity { - private static final String EXTRA_DIALOG = "dialog"; - - private ListView usersListView; - private QBChatDialog qbDialog; - - public static void start(Context context, QBChatDialog qbDialog) { - Intent intent = new Intent(context, ChatInfoActivity.class); - intent.putExtra(EXTRA_DIALOG, qbDialog); - context.startActivity(intent); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_login); - - actionBar.setDisplayHomeAsUpEnabled(true); - usersListView = _findViewById(R.id.list_login_users); - qbDialog = (QBChatDialog) getIntent().getSerializableExtra(EXTRA_DIALOG); - - getDialog(); - } - - private void getDialog() { - String dialogID = qbDialog.getDialogId(); - ChatHelper.getInstance().getDialogById(dialogID, new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog qbChatDialog, Bundle bundle) { - qbDialog = qbChatDialog; - buildUserList(); - } - - @Override - public void onError(QBResponseException e) { - Toaster.shortToast(e.getMessage()); - finish(); - } - }); - } - - @Override - protected View getSnackbarAnchorView() { - return usersListView; - } - - private void buildUserList() { - List userIds = qbDialog.getOccupants(); - List users = QbUsersHolder.getInstance().getUsersByIds(userIds); - UsersAdapter adapter = new UsersAdapter(this, users); - usersListView.setAdapter(adapter); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/DialogsActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/DialogsActivity.java deleted file mode 100644 index 045e651fa..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/DialogsActivity.java +++ /dev/null @@ -1,540 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; -import android.widget.LinearLayout; -import android.widget.ListView; -import android.widget.ProgressBar; -import android.widget.TextView; -import android.widget.Toast; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayout; -import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayoutDirection; -import com.quickblox.chat.QBChatService; -import com.quickblox.chat.QBIncomingMessagesManager; -import com.quickblox.chat.QBSystemMessagesManager; -import com.quickblox.chat.exception.QBChatException; -import com.quickblox.chat.listeners.QBChatDialogMessageListener; -import com.quickblox.chat.listeners.QBSystemMessageListener; -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.request.QBRequestGetBuilder; -import com.quickblox.messages.services.QBPushManager; -import com.quickblox.messages.services.SubscribeService; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.managers.DialogsManager; -import com.quickblox.sample.chat.ui.adapter.DialogsAdapter; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.chat.utils.qb.QbChatDialogMessageListenerImp; -import com.quickblox.sample.chat.utils.qb.QbDialogHolder; -import com.quickblox.sample.chat.utils.qb.callback.QBPushSubscribeListenerImpl; -import com.quickblox.sample.chat.utils.qb.callback.QbEntityCallbackImpl; -import com.quickblox.sample.core.async.BaseAsyncTask; -import com.quickblox.sample.core.gcm.GooglePlayServicesHelper; -import com.quickblox.sample.core.ui.dialog.ProgressDialogFragment; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.core.utils.constant.GcmConsts; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Collection; - -import androidx.appcompat.view.ActionMode; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; - -public class DialogsActivity extends BaseActivity implements DialogsManager.ManagingDialogsCallbacks { - private static final String TAG = DialogsActivity.class.getSimpleName(); - private static final int REQUEST_SELECT_PEOPLE = 174; - private static final int REQUEST_DIALOG_ID_FOR_UPDATE = 165; - - private ProgressBar progressBar; - private FloatingActionButton fab; - private ActionMode currentActionMode; - private SwipyRefreshLayout setOnRefreshListener; - private QBRequestGetBuilder requestBuilder; - private Menu menu; - private int skipRecords = 0; - private boolean isProcessingResultInProgress; - - private BroadcastReceiver pushBroadcastReceiver; - private GooglePlayServicesHelper googlePlayServicesHelper; - private DialogsAdapter dialogsAdapter; - private QBChatDialogMessageListener allDialogsMessagesListener; - private SystemMessagesListener systemMessagesListener; - private QBSystemMessagesManager systemMessagesManager; - private QBIncomingMessagesManager incomingMessagesManager; - private DialogsManager dialogsManager; - private QBUser currentUser; - - public static void start(Context context) { - Intent intent = new Intent(context, DialogsActivity.class); - context.startActivity(intent); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_dialogs); - - googlePlayServicesHelper = new GooglePlayServicesHelper(); - - pushBroadcastReceiver = new PushBroadcastReceiver(); - - allDialogsMessagesListener = new AllDialogsMessageListener(); - systemMessagesListener = new SystemMessagesListener(); - - dialogsManager = new DialogsManager(); - - currentUser = ChatHelper.getCurrentUser(); - - initUi(); - - setActionBarTitle(getString(R.string.dialogs_logged_in_as, currentUser.getFullName())); - - registerQbChatListeners(); - if (QbDialogHolder.getInstance().getDialogs().size() > 0) { - loadDialogsFromQb(true, true); - } else { - loadDialogsFromQb(false, true); - } - } - - @Override - protected void onResume() { - super.onResume(); - googlePlayServicesHelper.checkPlayServicesAvailable(this); - - LocalBroadcastManager.getInstance(this).registerReceiver(pushBroadcastReceiver, - new IntentFilter(GcmConsts.ACTION_NEW_GCM_EVENT)); - } - - @Override - protected void onPause() { - super.onPause(); - LocalBroadcastManager.getInstance(this).unregisterReceiver(pushBroadcastReceiver); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - - unregisterQbChatListeners(); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.activity_dialogs, menu); - this.menu = menu; - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if (isProcessingResultInProgress) { - return super.onOptionsItemSelected(item); - } - - switch (item.getItemId()) { - case R.id.menu_dialogs_action_logout: - userLogout(); - item.setEnabled(false); - invalidateOptionsMenu(); - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - @SuppressWarnings("unchecked") - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - isProcessingResultInProgress = true; - if (requestCode == REQUEST_SELECT_PEOPLE) { - ArrayList selectedUsers = (ArrayList) data - .getSerializableExtra(SelectUsersActivity.EXTRA_QB_USERS); - - if (isPrivateDialogExist(selectedUsers)) { - selectedUsers.remove(ChatHelper.getCurrentUser()); - QBChatDialog existingPrivateDialog = QbDialogHolder.getInstance().getPrivateDialogWithUser(selectedUsers.get(0)); - isProcessingResultInProgress = false; - ChatActivity.startForResult(DialogsActivity.this, REQUEST_DIALOG_ID_FOR_UPDATE, existingPrivateDialog); - } else { - ProgressDialogFragment.show(getSupportFragmentManager(), R.string.create_chat); - createDialog(selectedUsers); - } - } else if (requestCode == REQUEST_DIALOG_ID_FOR_UPDATE) { - if (data != null) { - String dialogId = data.getStringExtra(ChatActivity.EXTRA_DIALOG_ID); - loadUpdatedDialog(dialogId); - } else { - isProcessingResultInProgress = false; - updateDialogsList(); - } - } - } else { - updateDialogsAdapter(); - } - } - - private boolean isPrivateDialogExist(ArrayList allSelectedUsers) { - ArrayList selectedUsers = new ArrayList<>(); - selectedUsers.addAll(allSelectedUsers); - selectedUsers.remove(ChatHelper.getCurrentUser()); - return selectedUsers.size() == 1 && QbDialogHolder.getInstance().hasPrivateDialogWithUser(selectedUsers.get(0)); - } - - private void loadUpdatedDialog(String dialogId) { - ChatHelper.getInstance().getDialogById(dialogId, new QbEntityCallbackImpl() { - @Override - public void onSuccess(QBChatDialog result, Bundle bundle) { - isProcessingResultInProgress = false; - QbDialogHolder.getInstance().addDialog(result); - updateDialogsAdapter(); - } - - @Override - public void onError(QBResponseException e) { - isProcessingResultInProgress = false; - } - }); - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.layout_root); - } - - @Override - public ActionMode startSupportActionMode(ActionMode.Callback callback) { - currentActionMode = super.startSupportActionMode(callback); - return currentActionMode; - } - - private void userLogout() { - ChatHelper.getInstance().destroy(); - logout(); - SharedPrefsHelper.getInstance().removeQbUser(); - LoginActivity.start(DialogsActivity.this); - QbDialogHolder.getInstance().clear(); - ProgressDialogFragment.hide(getSupportFragmentManager()); - finish(); - } - - private void logout() { - if (QBPushManager.getInstance().isSubscribedToPushes()) { - QBPushManager.getInstance().addListener(new QBPushSubscribeListenerImpl() { - @Override - public void onSubscriptionDeleted(boolean success) { - logoutREST(); - QBPushManager.getInstance().removeListener(this); - } - }); - SubscribeService.unSubscribeFromPushes(DialogsActivity.this); - } else { - logoutREST(); - } - } - - private void logoutREST() { - QBUsers.signOut().performAsync(null); - } - - private void updateDialogsList() { - requestBuilder.setSkip(skipRecords = 0); - loadDialogsFromQb(true, true); - } - - public void onStartNewChatClick(View view) { - SelectUsersActivity.startForResult(this, REQUEST_SELECT_PEOPLE); - } - - private void initUi() { - LinearLayout emptyHintLayout = _findViewById(R.id.layout_chat_empty); - ListView dialogsListView = _findViewById(R.id.list_dialogs_chats); - progressBar = _findViewById(R.id.progress_dialogs); - fab = _findViewById(R.id.fab_dialogs_new_chat); - setOnRefreshListener = _findViewById(R.id.swipy_refresh_layout); - - dialogsAdapter = new DialogsAdapter(this, new ArrayList<>(QbDialogHolder.getInstance().getDialogs().values())); - - TextView listHeader = (TextView) LayoutInflater.from(this) - .inflate(R.layout.include_list_hint_header, dialogsListView, false); - listHeader.setText(R.string.dialogs_list_hint); - dialogsListView.setEmptyView(emptyHintLayout); - dialogsListView.addHeaderView(listHeader, null, false); - - dialogsListView.setAdapter(dialogsAdapter); - - dialogsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - QBChatDialog selectedDialog = (QBChatDialog) parent.getItemAtPosition(position); - if (currentActionMode == null) { - ChatActivity.startForResult(DialogsActivity.this, REQUEST_DIALOG_ID_FOR_UPDATE, selectedDialog); - } else { - dialogsAdapter.toggleSelection(selectedDialog); - } - } - }); - dialogsListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { - @Override - public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { - QBChatDialog selectedDialog = (QBChatDialog) parent.getItemAtPosition(position); - startSupportActionMode(new DeleteActionModeCallback()); - dialogsAdapter.selectItem(selectedDialog); - return true; - } - }); - requestBuilder = new QBRequestGetBuilder(); - - setOnRefreshListener.setOnRefreshListener(new SwipyRefreshLayout.OnRefreshListener() { - @Override - public void onRefresh(SwipyRefreshLayoutDirection direction) { - requestBuilder.setSkip(skipRecords += ChatHelper.DIALOG_ITEMS_PER_PAGE); - loadDialogsFromQb(true, false); - } - }); - } - - private void registerQbChatListeners() { - incomingMessagesManager = QBChatService.getInstance().getIncomingMessagesManager(); - systemMessagesManager = QBChatService.getInstance().getSystemMessagesManager(); - - if (incomingMessagesManager != null) { - incomingMessagesManager.addDialogMessageListener(allDialogsMessagesListener != null - ? allDialogsMessagesListener : new AllDialogsMessageListener()); - } - - if (systemMessagesManager != null) { - systemMessagesManager.addSystemMessageListener(systemMessagesListener != null - ? systemMessagesListener : new SystemMessagesListener()); - } - - dialogsManager.addManagingDialogsCallbackListener(this); - } - - private void unregisterQbChatListeners() { - if (incomingMessagesManager != null) { - incomingMessagesManager.removeDialogMessageListrener(allDialogsMessagesListener); - } - - if (systemMessagesManager != null) { - systemMessagesManager.removeSystemMessageListener(systemMessagesListener); - } - - dialogsManager.removeManagingDialogsCallbackListener(this); - } - - private void createDialog(final ArrayList selectedUsers) { - ChatHelper.getInstance().createDialogWithSelectedUsers(selectedUsers, - new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - isProcessingResultInProgress = false; - dialogsManager.sendSystemMessageAboutCreatingDialog(systemMessagesManager, dialog); - ChatActivity.startForResult(DialogsActivity.this, REQUEST_DIALOG_ID_FOR_UPDATE, dialog); - ProgressDialogFragment.hide(getSupportFragmentManager()); - } - - @Override - public void onError(QBResponseException e) { - isProcessingResultInProgress = false; - ProgressDialogFragment.hide(getSupportFragmentManager()); - showErrorSnackbar(R.string.dialogs_creation_error, null, null); - } - } - ); - } - - private void loadDialogsFromQb(final boolean silentUpdate, final boolean clearDialogHolder) { - isProcessingResultInProgress = true; - if (!silentUpdate) { - progressBar.setVisibility(View.VISIBLE); - } - - ChatHelper.getInstance().getDialogs(requestBuilder, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList dialogs, Bundle bundle) { - DialogJoinerAsyncTask dialogJoinerAsyncTask = new DialogJoinerAsyncTask(DialogsActivity.this, dialogs, clearDialogHolder); - dialogJoinerAsyncTask.execute(); - } - - @Override - public void onError(QBResponseException e) { - disableProgress(); - Toast.makeText(DialogsActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show(); - } - }); - } - - private void disableProgress() { - isProcessingResultInProgress = false; - progressBar.setVisibility(View.GONE); - setOnRefreshListener.setRefreshing(false); - } - - private void updateDialogsAdapter() { - dialogsAdapter.updateList(new ArrayList<>(QbDialogHolder.getInstance().getDialogs().values())); - } - - @Override - public void onDialogCreated(QBChatDialog chatDialog) { - updateDialogsAdapter(); - } - - @Override - public void onDialogUpdated(String chatDialog) { - updateDialogsAdapter(); - } - - @Override - public void onNewDialogLoaded(QBChatDialog chatDialog) { - updateDialogsAdapter(); - } - - private class DeleteActionModeCallback implements ActionMode.Callback { - - DeleteActionModeCallback() { - fab.hide(); - } - - @Override - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - mode.getMenuInflater().inflate(R.menu.action_mode_dialogs, menu); - return true; - } - - @Override - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - return false; - } - - @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_dialogs_action_delete: - deleteSelectedDialogs(); - if (currentActionMode != null) { - currentActionMode.finish(); - } - return true; - } - return false; - } - - @Override - public void onDestroyActionMode(ActionMode mode) { - currentActionMode = null; - dialogsAdapter.clearSelection(); - fab.show(); - } - - private void deleteSelectedDialogs() { - final Collection selectedDialogs = dialogsAdapter.getSelectedItems(); - ChatHelper.getInstance().deleteDialogs(selectedDialogs, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList dialogsIds, Bundle bundle) { - QbDialogHolder.getInstance().deleteDialogs(dialogsIds); - updateDialogsAdapter(); - } - - @Override - public void onError(QBResponseException e) { - showErrorSnackbar(R.string.dialogs_deletion_error, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - deleteSelectedDialogs(); - } - }); - } - }); - } - } - - private class PushBroadcastReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { - // Get extra data included in the Intent - String message = intent.getStringExtra(GcmConsts.EXTRA_GCM_MESSAGE); - Log.v(TAG, "Received broadcast " + intent.getAction() + " with data: " + message); - requestBuilder.setSkip(skipRecords = 0); - loadDialogsFromQb(true, true); - } - } - - private class SystemMessagesListener implements QBSystemMessageListener { - @Override - public void processMessage(final QBChatMessage qbChatMessage) { - dialogsManager.onSystemMessageReceived(qbChatMessage); - } - - @Override - public void processError(QBChatException e, QBChatMessage qbChatMessage) { - - } - } - - private class AllDialogsMessageListener extends QbChatDialogMessageListenerImp { - @Override - public void processMessage(final String dialogId, final QBChatMessage qbChatMessage, Integer senderId) { - if (!senderId.equals(ChatHelper.getCurrentUser().getId())) { - dialogsManager.onGlobalMessageReceived(dialogId, qbChatMessage); - } - } - } - - private static class DialogJoinerAsyncTask extends BaseAsyncTask { - private WeakReference activityRef; - private ArrayList dialogs; - private boolean clearDialogHolder; - - DialogJoinerAsyncTask(DialogsActivity dialogsActivity, ArrayList dialogs, boolean clearDialogHolder) { - activityRef = new WeakReference<>(dialogsActivity); - this.dialogs = dialogs; - this.clearDialogHolder = clearDialogHolder; - } - - @Override - public Void performInBackground(Void... voids) throws Exception { - ChatHelper.getInstance().join(dialogs); - return null; - } - - @Override - public void onResult(Void aVoid) { - if (activityRef.get() != null) { - activityRef.get().disableProgress(); - if (clearDialogHolder) { - QbDialogHolder.getInstance().clear(); - } - QbDialogHolder.getInstance().addDialogs(dialogs); - activityRef.get().updateDialogsAdapter(); - } - } - - @Override - public void onException(Exception e) { - super.onException(e); - Toaster.shortToast("Error: " + e.getMessage()); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/LoginActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/LoginActivity.java deleted file mode 100644 index 21c4d7b00..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/LoginActivity.java +++ /dev/null @@ -1,125 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ListView; -import android.widget.TextView; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.chat.App; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.ui.adapter.UsersAdapter; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.core.ui.activity.CoreBaseActivity; -import com.quickblox.sample.core.ui.dialog.ProgressDialogFragment; -import com.quickblox.sample.core.utils.ErrorUtils; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - -public class LoginActivity extends CoreBaseActivity { - - private ListView userListView; - - public static void start(Context context) { - Intent intent = new Intent(context, LoginActivity.class); - context.startActivity(intent); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_login); - - userListView = _findViewById(R.id.list_login_users); - - TextView listHeader = (TextView) LayoutInflater.from(this) - .inflate(R.layout.include_list_hint_header, userListView, false); - listHeader.setText(R.string.login_select_user_for_login); - - userListView.addHeaderView(listHeader, null, false); - userListView.setOnItemClickListener(new OnUserLoginItemClickListener()); - - buildUsersList(); - } - - private void buildUsersList() { - List tags = new ArrayList<>(); - - tags.add(App.getSampleConfigs().getUsersTag()); - - QBUsers.getUsersByTags(tags, null).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList result, Bundle params) { - UsersAdapter adapter = new UsersAdapter(LoginActivity.this, result); - userListView.setAdapter(adapter); - } - - @Override - public void onError(QBResponseException e) { - ErrorUtils.showSnackbar(userListView, R.string.login_cant_obtain_users, e, - R.string.dlg_retry, new View.OnClickListener() { - @Override - public void onClick(View v) { - buildUsersList(); - } - }); - } - }); - } - - private void login(final QBUser user) { - ProgressDialogFragment.show(getSupportFragmentManager(), R.string.dlg_login); - ChatHelper.getInstance().login(user, new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - SharedPrefsHelper.getInstance().saveQbUser(user); - DialogsActivity.start(LoginActivity.this); - finish(); - - ProgressDialogFragment.hide(getSupportFragmentManager()); - } - - @Override - public void onError(QBResponseException e) { - ProgressDialogFragment.hide(getSupportFragmentManager()); - ErrorUtils.showSnackbar(userListView, R.string.login_chat_login_error, e, - R.string.dlg_retry, new View.OnClickListener() { - @Override - public void onClick(View v) { - login(user); - } - }); - } - }); - } - - private class OnUserLoginItemClickListener implements AdapterView.OnItemClickListener { - - public static final int LIST_HEADER_POSITION = 0; - - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - if (position == LIST_HEADER_POSITION) { - return; - } - - - final QBUser user = (QBUser) parent.getItemAtPosition(position); - // We use hardcoded password for all users for test purposes - // Of course you shouldn't do that in your app - user.setPassword(App.getSampleConfigs().getUsersPassword()); - - login(user); - } - - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/SelectUsersActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/SelectUsersActivity.java deleted file mode 100644 index a84adec73..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/SelectUsersActivity.java +++ /dev/null @@ -1,205 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.os.SystemClock; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.ListView; -import android.widget.ProgressBar; -import android.widget.TextView; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.chat.App; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.ui.adapter.CheckboxUsersAdapter; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - -public class SelectUsersActivity extends BaseActivity { - public static final String EXTRA_QB_USERS = "qb_users"; - public static final int MINIMUM_CHAT_OCCUPANTS_SIZE = 2; - private static final long CLICK_DELAY = TimeUnit.SECONDS.toMillis(2); - - private static final String EXTRA_QB_DIALOG = "qb_dialog"; - - private ListView usersListView; - private ProgressBar progressBar; - private CheckboxUsersAdapter usersAdapter; - private List users; - private long lastClickTime = 0l; - private QBChatDialog qbChatDialog; - - public static void start(Context context) { - Intent intent = new Intent(context, SelectUsersActivity.class); - context.startActivity(intent); - } - - /** - * Start activity for picking users - * - * @param activity activity to return result - * @param code request code for onActivityResult() method - * - * in onActivityResult there will be 'ArrayList' in the intent extras - * which can be obtained with SelectPeopleActivity.EXTRA_QB_USERS key - */ - public static void startForResult(Activity activity, int code) { - startForResult(activity, code, null); - } - - public static void startForResult(Activity activity, int code, QBChatDialog dialog) { - Intent intent = new Intent(activity, SelectUsersActivity.class); - intent.putExtra(EXTRA_QB_DIALOG, dialog); - activity.startActivityForResult(intent, code); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_select_users); - qbChatDialog = (QBChatDialog) getIntent().getSerializableExtra(EXTRA_QB_DIALOG); - - initUi(); - loadUsersFromQb(); - } - - private void initUi() { - progressBar = _findViewById(R.id.progress_select_users); - usersListView = _findViewById(R.id.list_select_users); - - TextView listHeader = (TextView) LayoutInflater.from(this) - .inflate(R.layout.include_list_hint_header, usersListView, false); - listHeader.setText(R.string.select_users_list_hint); - usersListView.addHeaderView(listHeader, null, false); - - if (isEditingChat()) { - setActionBarTitle(R.string.select_users_edit_chat); - } else { - setActionBarTitle(R.string.select_users_create_chat); - } - actionBar.setDisplayHomeAsUpEnabled(true); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.activity_select_users, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if ((SystemClock.uptimeMillis() - lastClickTime) < CLICK_DELAY) { - return super.onOptionsItemSelected(item); - } - lastClickTime = SystemClock.uptimeMillis(); - - switch (item.getItemId()) { - case R.id.menu_select_people_action_done: - if (usersAdapter != null) { - List users = new ArrayList<>(usersAdapter.getSelectedUsers()); - if (users.size() >= MINIMUM_CHAT_OCCUPANTS_SIZE) { - passResultToCallerActivity(); - } else { - Toaster.shortToast(R.string.select_users_choose_users); - } - } - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.layout_root); - } - - private void passResultToCallerActivity() { - Intent result = new Intent(); - ArrayList selectedUsers = new ArrayList<>(usersAdapter.getSelectedUsers()); - result.putExtra(EXTRA_QB_USERS, selectedUsers); - setResult(RESULT_OK, result); - finish(); - } - - private void loadUsersFromQb() { - List tags = new ArrayList<>(); - tags.add(App.getSampleConfigs().getUsersTag()); - - progressBar.setVisibility(View.VISIBLE); - QBUsers.getUsersByTags(tags, null).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList usersByTags, Bundle params) { - users = usersByTags; - - if (qbChatDialog != null) { - // update occupants list form server - getDialog(); - } else { - updateUsersAdapter(); - } - } - - @Override - public void onError(QBResponseException e) { - showErrorSnackbar(R.string.select_users_get_users_error, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - loadUsersFromQb(); - } - }); - progressBar.setVisibility(View.GONE); - } - }); - } - - private void getDialog() { - String dialogID = qbChatDialog.getDialogId(); - ChatHelper.getInstance().getDialogById(dialogID, new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog qbChatDialog, Bundle bundle) { - updateUsersAdapter(); - } - - @Override - public void onError(QBResponseException e) { - showErrorSnackbar(R.string.select_users_get_dialog_error, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - loadUsersFromQb(); - } - }); - progressBar.setVisibility(View.GONE); - } - }); - } - - private void updateUsersAdapter() { - usersAdapter = new CheckboxUsersAdapter(this, users); - if (qbChatDialog != null) { - usersAdapter.addSelectedUsers(qbChatDialog.getOccupants()); - } - usersListView.setAdapter(usersAdapter); - progressBar.setVisibility(View.GONE); - } - - private boolean isEditingChat() { - return getIntent().getSerializableExtra(EXTRA_QB_DIALOG) != null; - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/SplashActivity.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/SplashActivity.java deleted file mode 100644 index 53876417f..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/activity/SplashActivity.java +++ /dev/null @@ -1,111 +0,0 @@ -package com.quickblox.sample.chat.ui.activity; - -import android.os.Bundle; -import android.util.Log; -import android.view.View; - -import com.quickblox.auth.session.QBSessionManager; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.chat.App; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.core.ui.activity.CoreSplashActivity; -import com.quickblox.sample.core.ui.dialog.ProgressDialogFragment; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.users.model.QBUser; - -public class SplashActivity extends CoreSplashActivity { - - private static final String TAG = SplashActivity.class.getSimpleName(); - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - if (checkConfigsWithSnackebarError()) { - proceedToTheNextActivityWithDelay(); - } - } - - @Override - protected String getAppName() { - return getString(R.string.splash_app_title); - } - - @Override - protected void proceedToTheNextActivity() { - if (checkSignIn()) { - restoreChatSession(); - } else { - LoginActivity.start(this); - finish(); - } - } - - @Override - protected boolean sampleConfigIsCorrect() { - boolean result = super.sampleConfigIsCorrect(); - result = result && App.getSampleConfigs() != null; - return result; - } - - private void restoreChatSession() { - if (ChatHelper.getInstance().isLogged()) { - DialogsActivity.start(this); - finish(); - } else { - QBUser currentUser = getUserFromSession(); - if (currentUser == null) { - LoginActivity.start(this); - } else { - loginToChat(currentUser); - } - } - } - - private QBUser getUserFromSession() { - QBUser user = SharedPrefsHelper.getInstance().getQbUser(); - QBSessionManager qbSessionManager = QBSessionManager.getInstance(); - if (qbSessionManager.getSessionParameters() == null) { - ChatHelper.getInstance().destroy(); - return null; - } - Integer userId = qbSessionManager.getSessionParameters().getUserId(); - user.setId(userId); - return user; - } - - @Override - protected boolean checkSignIn() { - return SharedPrefsHelper.getInstance().hasQbUser(); - } - - private void loginToChat(final QBUser user) { - ProgressDialogFragment.show(getSupportFragmentManager(), R.string.dlg_restoring_chat_session); - - ChatHelper.getInstance().loginToChat(user, new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.v(TAG, "Chat login onSuccess()"); - - ProgressDialogFragment.hide(getSupportFragmentManager()); - DialogsActivity.start(SplashActivity.this); - finish(); - } - - @Override - public void onError(QBResponseException e) { - ProgressDialogFragment.hide(getSupportFragmentManager()); - Log.w(TAG, "Chat login onError(): " + e); - showSnackbarError(findViewById(R.id.layout_root), R.string.error_recreate_session, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - loginToChat(user); - } - }); - } - }); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/AttachmentPreviewAdapter.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/AttachmentPreviewAdapter.java deleted file mode 100644 index 3162825d6..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/AttachmentPreviewAdapter.java +++ /dev/null @@ -1,168 +0,0 @@ -package com.quickblox.sample.chat.ui.adapter; - -import android.content.Context; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.ProgressBar; - -import com.bumptech.glide.Glide; -import com.quickblox.chat.model.QBAttachment; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.QBProgressCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.chat.App; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.core.ui.adapter.BaseListAdapter; -import com.quickblox.sample.core.utils.ResourceUtils; - -import java.io.File; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; - -public class AttachmentPreviewAdapter extends BaseListAdapter { - - private static final Handler mainThreadHandler = new Handler(Looper.getMainLooper()); - - private Map fileQBAttachmentMap; - private Map fileUploadProgressMap; - - private OnAttachmentCountChangedListener onAttachmentCountChangedListener; - private OnAttachmentUploadErrorListener onAttachmentUploadErrorListener; - - public AttachmentPreviewAdapter(Context context, - OnAttachmentCountChangedListener countChangedListener, - OnAttachmentUploadErrorListener errorListener) { - super(context); - fileQBAttachmentMap = Collections.synchronizedMap(new HashMap()); - fileUploadProgressMap = Collections.synchronizedMap(new HashMap()); - onAttachmentCountChangedListener = countChangedListener; - onAttachmentUploadErrorListener = errorListener; - } - - @Override - public void add(final File item) { - fileUploadProgressMap.put(item, 1); - ChatHelper.getInstance().loadFileAsAttachment(item, new QBEntityCallback() { - @Override - public void onSuccess(QBAttachment result, Bundle params) { - fileUploadProgressMap.remove(item); - fileQBAttachmentMap.put(item, result); - notifyDataSetChanged(); - } - - @Override - public void onError(QBResponseException e) { - onAttachmentUploadErrorListener.onAttachmentUploadError(e); - remove(item); - } - }, new QBProgressCallback() { - @Override - public void onProgressUpdate(final int progress) { - fileUploadProgressMap.put(item, progress); - mainThreadHandler.post(new Runnable() { - @Override - public void run() { - notifyDataSetChanged(); - } - }); - } - }); - - super.add(item); - onAttachmentCountChangedListener.onAttachmentCountChanged(getCount()); - } - - @Override - public void remove(File item) { - fileUploadProgressMap.remove(item); - fileQBAttachmentMap.remove(item); - - super.remove(item); - onAttachmentCountChangedListener.onAttachmentCountChanged(getCount()); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder; - if (convertView == null) { - holder = new ViewHolder(); - convertView = inflater.inflate(R.layout.item_attachment_preview, parent, false); - holder.attachmentImageView = (ImageView) convertView.findViewById(R.id.image_attachment_preview); - holder.progressBar = (ProgressBar) convertView.findViewById(R.id.progress_attachment_preview); - holder.deleteButton = (ImageButton) convertView.findViewById(R.id.button_attachment_preview_delete); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - final File attachmentFile = getItem(position); - Glide.with(App.getInstance()) - .load(attachmentFile) - .override(ResourceUtils.getDimen(R.dimen.chat_attachment_preview_size), - ResourceUtils.getDimen(R.dimen.chat_attachment_preview_size)) - .into(holder.attachmentImageView); - - if (isFileUploading(attachmentFile)) { - holder.progressBar.setVisibility(View.VISIBLE); - holder.deleteButton.setVisibility(View.GONE); - holder.deleteButton.setOnClickListener(null); - - int progress = fileUploadProgressMap.get(attachmentFile); - holder.progressBar.setProgress(progress); - } else { - holder.progressBar.setVisibility(View.GONE); - holder.deleteButton.setVisibility(View.VISIBLE); - holder.deleteButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - remove(attachmentFile); - } - }); - } - - return convertView; - } - - public void remove(QBAttachment qbAttachment) { - if (fileQBAttachmentMap.containsValue(qbAttachment)) { - for (File file : fileQBAttachmentMap.keySet()) { - QBAttachment attachment = fileQBAttachmentMap.get(file); - if (attachment.equals(qbAttachment)) { - remove(file); - break; - } - } - } - } - - public Collection getUploadedAttachments() { - return new HashSet<>(fileQBAttachmentMap.values()); - } - - private boolean isFileUploading(File attachmentFile) { - return fileUploadProgressMap.containsKey(attachmentFile) && !fileQBAttachmentMap.containsKey(attachmentFile); - } - - private static class ViewHolder { - ImageView attachmentImageView; - ProgressBar progressBar; - ImageButton deleteButton; - } - - public interface OnAttachmentCountChangedListener { - void onAttachmentCountChanged(int count); - } - - public interface OnAttachmentUploadErrorListener { - void onAttachmentUploadError(QBResponseException e); - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/ChatAdapter.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/ChatAdapter.java deleted file mode 100644 index c6a10c2fa..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/ChatAdapter.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.quickblox.sample.chat.ui.adapter; - -import android.content.Context; -import android.util.Log; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.core.helper.CollectionsUtil; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.utils.TimeUtils; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.sample.chat.utils.qb.PaginationHistoryListener; -import com.quickblox.sample.chat.utils.qb.QbUsersHolder; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.core.utils.UiUtils; -import com.quickblox.ui.kit.chatmessage.adapter.QBMessagesAdapter; -import com.quickblox.users.model.QBUser; -import com.timehop.stickyheadersrecyclerview.StickyRecyclerHeadersAdapter; - -import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smack.XMPPException; - -import java.util.List; - -import androidx.recyclerview.widget.RecyclerView; - - -public class ChatAdapter extends QBMessagesAdapter implements StickyRecyclerHeadersAdapter { - private static final String TAG = ChatAdapter.class.getSimpleName(); - private final QBChatDialog chatDialog; - private PaginationHistoryListener paginationListener; - private int previousGetCount = 0; - - public ChatAdapter(Context context, QBChatDialog chatDialog, List chatMessages) { - super(context, chatMessages); - this.chatDialog = chatDialog; - } - - public void addToList(List items) { - chatMessages.addAll(0, items); - notifyItemRangeInserted(0, items.size()); - } - - @Override - public void add(QBChatMessage item) { - this.chatMessages.add(item); - this.notifyItemInserted(chatMessages.size() - 1); - } - - @Override - public void onBindViewHolder(QBMessageViewHolder holder, int position) { - downloadMore(position); - QBChatMessage chatMessage = getItem(position); - if (isIncoming(chatMessage) && !isRead(chatMessage)) { - readMessage(chatMessage); - } - super.onBindViewHolder(holder, position); - } - - @Override - protected void onBindViewMsgLeftHolder(TextMessageHolder holder, QBChatMessage chatMessage, int position) { - holder.timeTextMessageTextView.setVisibility(View.GONE); - - TextView opponentNameTextView = holder.itemView.findViewById(R.id.opponent_name_text_view); - opponentNameTextView.setTextColor(UiUtils.getRandomTextColorById(chatMessage.getSenderId())); - opponentNameTextView.setText(getSenderName(chatMessage)); - - TextView customMessageTimeTextView = holder.itemView.findViewById(R.id.custom_msg_text_time_message); - customMessageTimeTextView.setText(getDate(chatMessage.getDateSent())); - - super.onBindViewMsgLeftHolder(holder, chatMessage, position); - } - - @Override - protected void onBindViewAttachLeftHolder(ImageAttachHolder holder, QBChatMessage chatMessage, int position) { - TextView opponentNameTextView = holder.itemView.findViewById(R.id.opponent_name_attach_view); - opponentNameTextView.setTextColor(UiUtils.getRandomTextColorById(chatMessage.getSenderId())); - opponentNameTextView.setText(getSenderName(chatMessage)); - - super.onBindViewAttachLeftHolder(holder, chatMessage, position); - } - - private String getSenderName(QBChatMessage chatMessage) { - QBUser sender = QbUsersHolder.getInstance().getUserById(chatMessage.getSenderId()); - return sender.getFullName(); - } - - private void readMessage(QBChatMessage chatMessage) { - try { - chatDialog.readMessage(chatMessage); - } catch (XMPPException | SmackException.NotConnectedException e) { - Log.w(TAG, e); - } - } - - private boolean isRead(QBChatMessage chatMessage) { - Integer currentUserId = ChatHelper.getCurrentUser().getId(); - return !CollectionsUtil.isEmpty(chatMessage.getReadIds()) && chatMessage.getReadIds().contains(currentUserId); - } - - public void setPaginationHistoryListener(PaginationHistoryListener paginationListener) { - this.paginationListener = paginationListener; - } - - private void downloadMore(int position) { - if (position == 0) { - if (getItemCount() != previousGetCount) { - paginationListener.downloadMore(); - previousGetCount = getItemCount(); - } - } - } - - @Override - public long getHeaderId(int position) { - QBChatMessage chatMessage = getItem(position); - return TimeUtils.getDateAsHeaderId(chatMessage.getDateSent() * 1000); - } - - @Override - public RecyclerView.ViewHolder onCreateHeaderViewHolder(ViewGroup parent) { - View view = inflater.inflate(R.layout.view_chat_message_header, parent, false); - return new RecyclerView.ViewHolder(view) { - }; - } - - @Override - public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder, int position) { - View view = holder.itemView; - TextView dateTextView = view.findViewById(R.id.header_date_textview); - - QBChatMessage chatMessage = getItem(position); - dateTextView.setText(TimeUtils.getDate(chatMessage.getDateSent() * 1000)); - - LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) dateTextView.getLayoutParams(); - if (position == 0) { - lp.topMargin = ResourceUtils.getDimen(R.dimen.chat_date_header_top_margin); - } else { - lp.topMargin = 0; - } - dateTextView.setLayoutParams(lp); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/CheckboxUsersAdapter.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/CheckboxUsersAdapter.java deleted file mode 100644 index 46446ee31..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/CheckboxUsersAdapter.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.quickblox.sample.chat.ui.adapter; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; - -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -public class CheckboxUsersAdapter extends UsersAdapter { - - private List initiallySelectedUsers; - private Set selectedUsers; - - public CheckboxUsersAdapter(Context context, List users) { - super(context, users); - selectedUsers = new HashSet<>(); - this.selectedUsers.add(currentUser); - - this.initiallySelectedUsers = new ArrayList<>(); - } - - public void addSelectedUsers(List userIds) { - for (QBUser user : objectsList) { - for (Integer id : userIds) { - if (user.getId().equals(id)) { - selectedUsers.add(user); - initiallySelectedUsers.add(user.getId()); - break; - } - } - } - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - View view = super.getView(position, convertView, parent); - - final QBUser user = getItem(position); - final ViewHolder holder = (ViewHolder) view.getTag(); - - view.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (!isAvailableForSelection(user)) { - return; - } - - holder.userCheckBox.setChecked(!holder.userCheckBox.isChecked()); - if (holder.userCheckBox.isChecked()) { - selectedUsers.add(user); - } else { - selectedUsers.remove(user); - } - } - }); - - holder.userCheckBox.setVisibility(View.VISIBLE); - holder.userCheckBox.setChecked(selectedUsers.contains(user)); - - return view; - } - - public Set getSelectedUsers() { - return selectedUsers; - } - - @Override - protected boolean isAvailableForSelection(QBUser user) { - return super.isAvailableForSelection(user) && !initiallySelectedUsers.contains(user.getId()); - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/DialogsAdapter.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/DialogsAdapter.java deleted file mode 100644 index e76ed4d87..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/DialogsAdapter.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.quickblox.sample.chat.ui.adapter; - -import android.content.Context; -import android.text.TextUtils; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.utils.qb.QbDialogUtils; -import com.quickblox.sample.core.ui.adapter.BaseSelectableListAdapter; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.core.utils.UiUtils; - -import java.util.List; - -public class DialogsAdapter extends BaseSelectableListAdapter { - - private static final String EMPTY_STRING = ""; - - public DialogsAdapter(Context context, List dialogs) { - super(context, dialogs); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder holder; - if (convertView == null) { - convertView = inflater.inflate(R.layout.list_item_dialog, parent, false); - - holder = new ViewHolder(); - holder.rootLayout = (ViewGroup) convertView.findViewById(R.id.root); - holder.nameTextView = (TextView) convertView.findViewById(R.id.text_dialog_name); - holder.lastMessageTextView = (TextView) convertView.findViewById(R.id.text_dialog_last_message); - holder.dialogImageView = (ImageView) convertView.findViewById(R.id.image_dialog_icon); - holder.unreadCounterTextView = (TextView) convertView.findViewById(R.id.text_dialog_unread_count); - - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - QBChatDialog dialog = getItem(position); - if (dialog.getType().equals(QBDialogType.GROUP)) { - holder.dialogImageView.setBackgroundDrawable(UiUtils.getGreyCircleDrawable()); - holder.dialogImageView.setImageResource(R.drawable.ic_chat_group); - } else { - holder.dialogImageView.setBackgroundDrawable(UiUtils.getColorCircleDrawable(position)); - holder.dialogImageView.setImageDrawable(null); - } - - holder.nameTextView.setText(QbDialogUtils.getDialogName(dialog)); - holder.lastMessageTextView.setText(prepareTextLastMessage(dialog)); - - int unreadMessagesCount = getUnreadMsgCount(dialog); - if (unreadMessagesCount == 0) { - holder.unreadCounterTextView.setVisibility(View.GONE); - } else { - holder.unreadCounterTextView.setVisibility(View.VISIBLE); - holder.unreadCounterTextView.setText(String.valueOf(unreadMessagesCount > 99 ? "99+" : unreadMessagesCount)); - } - - holder.rootLayout.setBackgroundColor(isItemSelected(position) ? ResourceUtils.getColor(R.color.selected_list_item_color) : - ResourceUtils.getColor(android.R.color.transparent)); - - return convertView; - } - - private int getUnreadMsgCount(QBChatDialog chatDialog){ - Integer unreadMessageCount = chatDialog.getUnreadMessageCount(); - if (unreadMessageCount == null) { - return 0; - } else { - return unreadMessageCount; - } - } - - private boolean isLastMessageAttachment(QBChatDialog dialog) { - String lastMessage = dialog.getLastMessage(); - Integer lastMessageSenderId = dialog.getLastMessageUserId(); - return TextUtils.isEmpty(lastMessage) && lastMessageSenderId != null; - } - - private String prepareTextLastMessage(QBChatDialog chatDialog){ - if (isLastMessageAttachment(chatDialog)){ - return context.getString(R.string.chat_attachment); - } else { - return chatDialog.getLastMessage(); - } - } - - private static class ViewHolder { - ViewGroup rootLayout; - ImageView dialogImageView; - TextView nameTextView; - TextView lastMessageTextView; - TextView unreadCounterTextView; - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/UsersAdapter.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/UsersAdapter.java deleted file mode 100644 index bfd4ddc9f..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/adapter/UsersAdapter.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.quickblox.sample.chat.ui.adapter; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.CheckBox; -import android.widget.ImageView; -import android.widget.TextView; - -import com.quickblox.chat.QBChatService; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.core.ui.adapter.BaseListAdapter; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.core.utils.UiUtils; -import com.quickblox.users.model.QBUser; - -import java.util.List; - -public class UsersAdapter extends BaseListAdapter { - - protected QBUser currentUser; - - public UsersAdapter(Context context, List users) { - super(context, users); - currentUser = QBChatService.getInstance().getUser(); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - QBUser user = getItem(position); - - ViewHolder holder; - if (convertView == null) { - convertView = inflater.inflate(R.layout.list_item_user, parent, false); - holder = new ViewHolder(); - holder.userImageView = (ImageView) convertView.findViewById(R.id.image_user); - holder.loginTextView = (TextView) convertView.findViewById(R.id.text_user_login); - holder.userCheckBox = (CheckBox) convertView.findViewById(R.id.checkbox_user); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - if (isUserMe(user)) { - holder.loginTextView.setText(context.getString(R.string.placeholder_username_you, user.getFullName())); - } else { - holder.loginTextView.setText(user.getFullName()); - } - - if (isAvailableForSelection(user)) { - holder.loginTextView.setTextColor(ResourceUtils.getColor(R.color.text_color_black)); - } else { - holder.loginTextView.setTextColor(ResourceUtils.getColor(R.color.text_color_medium_grey)); - } - - holder.userImageView.setBackgroundDrawable(UiUtils.getColorCircleDrawable(position)); - holder.userCheckBox.setVisibility(View.GONE); - - return convertView; - } - - protected boolean isUserMe(QBUser user) { - return currentUser != null && currentUser.getId().equals(user.getId()); - } - - protected boolean isAvailableForSelection(QBUser user) { - return currentUser == null || !currentUser.getId().equals(user.getId()); - } - - protected static class ViewHolder { - ImageView userImageView; - TextView loginTextView; - CheckBox userCheckBox; - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/widget/AttachmentPreviewAdapterView.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/widget/AttachmentPreviewAdapterView.java deleted file mode 100644 index 7392c85c1..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/widget/AttachmentPreviewAdapterView.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.quickblox.sample.chat.ui.widget; - -import android.content.Context; -import android.database.DataSetObserver; -import android.os.Handler; -import android.os.Looper; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Adapter; -import android.widget.HorizontalScrollView; -import android.widget.LinearLayout; - -public class AttachmentPreviewAdapterView extends HorizontalScrollView { - - private static final Handler mainThreadHandler = new Handler(Looper.getMainLooper()); - - private LinearLayout container; - private Adapter adapter; - private DataSetObserver dataSetObserver; - - public AttachmentPreviewAdapterView(Context context, AttributeSet attrs) { - super(context, attrs); - - container = new LinearLayout(context); - container.setOrientation(LinearLayout.HORIZONTAL); - HorizontalScrollView.LayoutParams lp = new HorizontalScrollView.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - addView(container, lp); - - dataSetObserver = new DataSetObserver() { - @Override - public void onChanged() { - populateWithViewsFromAdapter(); - } - - @Override - public void onInvalidated() { - populateWithViewsFromAdapter(); - } - }; - } - - public void setAdapter(Adapter newAdapter) { - if (adapter != null) { - adapter.unregisterDataSetObserver(dataSetObserver); - } - adapter = newAdapter; - adapter.registerDataSetObserver(dataSetObserver); - populateWithViewsFromAdapter(); - } - - private void populateWithViewsFromAdapter() { - mainThreadHandler.post(new Runnable() { - @Override - public void run() { - container.removeAllViews(); - for (int i = 0; i < adapter.getCount(); i++) { - View childView = adapter.getView(i, null, AttachmentPreviewAdapterView.this); - container.addView(childView, i); - } - } - }); - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/widget/MaskedImageView.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/widget/MaskedImageView.java deleted file mode 100644 index 05cf4fe4e..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/ui/widget/MaskedImageView.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.quickblox.sample.chat.ui.widget; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffXfermode; -import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.drawable.Drawable; -import androidx.annotation.DrawableRes; -import android.util.AttributeSet; -import android.view.InflateException; -import android.widget.ImageView; - -import com.quickblox.sample.chat.R; - -public class MaskedImageView extends ImageView { - private static final int HAS_ALPHA_LAYER_SAVE_FLAG = 0x04; - private static final int FULL_COLOR_LAYER_SAVE_FLAG = 0x08; - - private Paint maskedPaint; - private Paint copyPaint; - private Drawable maskDrawable; - private int maskResourceId; - private Rect boundsRect; - private RectF boundsRectF; - - public MaskedImageView(Context context) { - this(context, null); - } - - public MaskedImageView(Context context, AttributeSet attrs) { - super(context, attrs); - init(attrs); - } - - private void init(AttributeSet attrs) { - maskResourceId = -1; - TypedArray array = getContext().getTheme().obtainStyledAttributes(attrs, R.styleable.MaskedImageView, 0, 0); - - try { - maskResourceId = array.getResourceId(R.styleable.MaskedImageView_mask, -1); - } finally { - array.recycle(); - } - - if (maskResourceId < 0) { - throw new InflateException("Mandatory 'mask' attribute not set!"); - } - - setMaskResourceId(maskResourceId); - } - - protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) { - boundsRect = new Rect(0, 0, width, height); - boundsRectF = new RectF(boundsRect); - } - - @Override - protected void onDraw(Canvas canvas) { - int sc = canvas.saveLayer(boundsRectF, copyPaint, - HAS_ALPHA_LAYER_SAVE_FLAG | FULL_COLOR_LAYER_SAVE_FLAG); - maskDrawable.setBounds(boundsRect); - maskDrawable.draw(canvas); - canvas.saveLayer(boundsRectF, maskedPaint, 0); - - super.onDraw(canvas); - - canvas.restoreToCount(sc); - } - - public void setMaskResourceId(@DrawableRes int maskResourceId) { - maskedPaint = new Paint(); - maskedPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP)); - - copyPaint = new Paint(); - maskDrawable = getResources().getDrawable(maskResourceId); - - invalidate(); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/Consts.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/Consts.java deleted file mode 100644 index 95417ff06..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/Consts.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.quickblox.sample.chat.utils; - -import com.quickblox.sample.chat.R; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.users.model.QBUser; - -public interface Consts { - - String SAMPLE_CONFIG_FILE_NAME = "sample_config.json"; - - int PREFERRED_IMAGE_SIZE_PREVIEW = ResourceUtils.getDimen(R.dimen.chat_attachment_preview_size); - int PREFERRED_IMAGE_SIZE_FULL = ResourceUtils.dpToPx(320); - String QB_USER_PASSWORD = "qb_user_password"; -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/StringUtils.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/StringUtils.java deleted file mode 100644 index 6a2d43516..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/StringUtils.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.quickblox.sample.chat.utils; - -public class StringUtils { - private static final String NULL_TEXT = "null"; - - public static boolean textIsNull(String text){ - return NULL_TEXT.equals(text); - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/TimeUtils.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/TimeUtils.java deleted file mode 100644 index ecab03240..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/TimeUtils.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.quickblox.sample.chat.utils; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; - -public class TimeUtils { - - private TimeUtils() { - } - - public static String getTime(long milliseconds) { - SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm", Locale.getDefault()); - return dateFormat.format(new Date(milliseconds)); - } - - public static String getDate(long milliseconds) { - SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM dd", Locale.getDefault()); - return dateFormat.format(new Date(milliseconds)); - } - - public static long getDateAsHeaderId(long milliseconds) { - SimpleDateFormat dateFormat = new SimpleDateFormat("ddMMyyyy", Locale.getDefault()); - return Long.parseLong(dateFormat.format(new Date(milliseconds))); - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/chat/ChatHelper.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/chat/ChatHelper.java deleted file mode 100644 index ff4870b3b..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/chat/ChatHelper.java +++ /dev/null @@ -1,378 +0,0 @@ -package com.quickblox.sample.chat.utils.chat; - -import android.os.Bundle; -import android.util.Log; - -import com.quickblox.auth.session.QBSettings; -import com.quickblox.chat.QBChatService; -import com.quickblox.chat.QBRestChatService; -import com.quickblox.chat.model.QBAttachment; -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.chat.request.QBDialogRequestBuilder; -import com.quickblox.chat.request.QBMessageGetBuilder; -import com.quickblox.chat.utils.DialogUtils; -import com.quickblox.content.QBContent; -import com.quickblox.content.model.QBFile; -import com.quickblox.core.LogLevel; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.QBProgressCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.quickblox.core.request.QBRequestGetBuilder; -import com.quickblox.sample.chat.App; -import com.quickblox.sample.chat.R; -import com.quickblox.sample.chat.models.SampleConfigs; -import com.quickblox.sample.chat.utils.qb.QbDialogHolder; -import com.quickblox.sample.chat.utils.qb.QbDialogUtils; -import com.quickblox.sample.chat.utils.qb.QbUsersHolder; -import com.quickblox.sample.chat.utils.qb.callback.QbEntityCallbackTwoTypeWrapper; -import com.quickblox.sample.chat.utils.qb.callback.QbEntityCallbackWrapper; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import org.jivesoftware.smack.ConnectionListener; -import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smackx.muc.DiscussionHistory; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -public class ChatHelper { - private static final String TAG = ChatHelper.class.getSimpleName(); - - public static final int DIALOG_ITEMS_PER_PAGE = 100; - public static final int CHAT_HISTORY_ITEMS_PER_PAGE = 50; - private static final String CHAT_HISTORY_ITEMS_SORT_FIELD = "date_sent"; - - private static ChatHelper instance; - - private QBChatService qbChatService; - - public static synchronized ChatHelper getInstance() { - if (instance == null) { - QBSettings.getInstance().setLogLevel(LogLevel.DEBUG); - QBChatService.setDebugEnabled(true); - QBChatService.setConfigurationBuilder(buildChatConfigs()); - instance = new ChatHelper(); - } - return instance; - } - - public boolean isLogged() { - return QBChatService.getInstance().isLoggedIn(); - } - - public static QBUser getCurrentUser() { - return QBChatService.getInstance().getUser(); - } - - private ChatHelper() { - qbChatService = QBChatService.getInstance(); - qbChatService.setUseStreamManagement(true); - } - - private static QBChatService.ConfigurationBuilder buildChatConfigs() { - QBChatService.ConfigurationBuilder configurationBuilder = new QBChatService.ConfigurationBuilder(); - SampleConfigs sampleConfigs = App.getSampleConfigs(); - - if (sampleConfigs != null) { - int port = sampleConfigs.getChatPort(); - int socketTimeout = sampleConfigs.getChatSocketTimeout(); - boolean useTls = sampleConfigs.isUseTls(); - boolean keepAlive = sampleConfigs.isKeepAlive(); - boolean autoJoinEnabled = sampleConfigs.isAutoJoinEnabled(); - boolean autoMarkDelivered = sampleConfigs.isAutoMarkDelivered(); - boolean reconnectionAllowed = sampleConfigs.isReconnectionAllowed(); - boolean allowListenNetwork = sampleConfigs.isAllowListenNetwork(); - - if (port != 0) { - configurationBuilder.setPort(port); - } - - configurationBuilder.setSocketTimeout(socketTimeout); - configurationBuilder.setUseTls(useTls); - configurationBuilder.setKeepAlive(keepAlive); - configurationBuilder.setAutojoinEnabled(autoJoinEnabled); - configurationBuilder.setAutoMarkDelivered(autoMarkDelivered); - configurationBuilder.setReconnectionAllowed(reconnectionAllowed); - configurationBuilder.setAllowListenNetwork(allowListenNetwork); - } - - return configurationBuilder; - } - - public void addConnectionListener(ConnectionListener listener) { - qbChatService.addConnectionListener(listener); - } - - public void removeConnectionListener(ConnectionListener listener) { - qbChatService.removeConnectionListener(listener); - } - - public void login(final QBUser user, final QBEntityCallback callback) { - // Create REST API session on QuickBlox - QBUsers.signIn(user).performAsync(new QbEntityCallbackTwoTypeWrapper(callback) { - @Override - public void onSuccess(QBUser qbUser, Bundle args) { - user.setId(qbUser.getId()); - loginToChat(user, new QbEntityCallbackWrapper<>(callback)); - } - }); - } - - public void loginToChat(final QBUser user, final QBEntityCallback callback) { - if (qbChatService.isLoggedIn()) { - callback.onSuccess(null, null); - return; - } - - qbChatService.login(user, callback); - } - - public void join(QBChatDialog chatDialog, final QBEntityCallback callback) { - DiscussionHistory history = new DiscussionHistory(); - history.setMaxStanzas(0); - - chatDialog.join(history, callback); - } - - public void join(List dialogs) throws Exception { - for (QBChatDialog dialog : dialogs) { - DiscussionHistory history = new DiscussionHistory(); - history.setMaxStanzas(0); - dialog.join(history); - } - } - - public void leaveChatDialog(QBChatDialog chatDialog) throws XMPPException, SmackException.NotConnectedException { - chatDialog.leave(); - } - - public void destroy() { - qbChatService.destroy(); - } - - public void createDialogWithSelectedUsers(final List users, - final QBEntityCallback callback) { - - QBRestChatService.createChatDialog(QbDialogUtils.createDialog(users)).performAsync( - new QbEntityCallbackWrapper(callback) { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - QbDialogHolder.getInstance().addDialog(dialog); - QbUsersHolder.getInstance().putUsers(users); - super.onSuccess(dialog, args); - } - }); - } - - public void deleteDialogs(Collection dialogs, final QBEntityCallback> callback) { - StringifyArrayList dialogsIds = new StringifyArrayList<>(); - for (QBChatDialog dialog : dialogs) { - dialogsIds.add(dialog.getDialogId()); - } - - QBRestChatService.deleteDialogs(dialogsIds, false, null).performAsync(callback); - } - - public void deleteDialog(QBChatDialog qbDialog, QBEntityCallback callback) { - if (qbDialog.getType() == QBDialogType.PUBLIC_GROUP) { - Toaster.shortToast(R.string.public_group_chat_cannot_be_deleted); - } else { - QBRestChatService.deleteDialog(qbDialog.getDialogId(), false) - .performAsync(new QbEntityCallbackWrapper(callback)); - } - } - - public void exitFromDialog(QBChatDialog qbDialog, QBEntityCallback callback) { - try { - leaveChatDialog(qbDialog); - } catch (XMPPException | SmackException.NotConnectedException e) { - callback.onError(new QBResponseException(e.getMessage())); - } - - QBUser currentUser = QBChatService.getInstance().getUser(); - QBDialogRequestBuilder qbRequestBuilder = new QBDialogRequestBuilder(); - qbRequestBuilder.removeUsers(currentUser.getId()); - - qbDialog.setName(buildDialogNameWithoutUser(qbDialog.getName(), currentUser.getFullName())); - - QBRestChatService.updateGroupChatDialog(qbDialog, qbRequestBuilder).performAsync(callback); - } - - private static String buildDialogNameWithoutUser(String dialogName, String userName) { - String regex = ", " + userName + "|" + userName + ", "; - return dialogName.replaceAll(regex, ""); - } - - public void updateDialogUsers(QBChatDialog qbDialog, - final List newQbDialogUsersList, - QBEntityCallback callback) { - List addedUsers = QbDialogUtils.getAddedUsers(qbDialog, newQbDialogUsersList); - List removedUsers = QbDialogUtils.getRemovedUsers(qbDialog, newQbDialogUsersList); - - QbDialogUtils.logDialogUsers(qbDialog); - QbDialogUtils.logUsers(addedUsers); - Log.w(TAG, "======================="); - QbDialogUtils.logUsers(removedUsers); - - QBDialogRequestBuilder qbRequestBuilder = new QBDialogRequestBuilder(); - if (!addedUsers.isEmpty()) { - qbRequestBuilder.addUsers(addedUsers.toArray(new QBUser[addedUsers.size()])); - } - if (!removedUsers.isEmpty()) { - qbRequestBuilder.removeUsers(removedUsers.toArray(new QBUser[removedUsers.size()])); - } - qbDialog.setName(DialogUtils.createChatNameFromUserList( - newQbDialogUsersList.toArray(new QBUser[newQbDialogUsersList.size()]))); - - QBRestChatService.updateGroupChatDialog(qbDialog, qbRequestBuilder).performAsync( - new QbEntityCallbackWrapper(callback) { - @Override - public void onSuccess(QBChatDialog qbDialog, Bundle bundle) { - QbUsersHolder.getInstance().putUsers(newQbDialogUsersList); - QbDialogUtils.logDialogUsers(qbDialog); - super.onSuccess(qbDialog, bundle); - } - }); - } - - public void loadChatHistory(QBChatDialog dialog, int skipPagination, - final QBEntityCallback> callback) { - QBMessageGetBuilder messageGetBuilder = new QBMessageGetBuilder(); - messageGetBuilder.setSkip(skipPagination); - messageGetBuilder.setLimit(CHAT_HISTORY_ITEMS_PER_PAGE); - messageGetBuilder.sortDesc(CHAT_HISTORY_ITEMS_SORT_FIELD); - messageGetBuilder.markAsRead(false); - - QBRestChatService.getDialogMessages(dialog, messageGetBuilder).performAsync( - new QbEntityCallbackWrapper>(callback) { - @Override - public void onSuccess(ArrayList qbChatMessages, Bundle bundle) { - - Set userIds = new HashSet<>(); - for (QBChatMessage message : qbChatMessages) { - userIds.add(message.getSenderId()); - } - - if (!userIds.isEmpty()) { - getUsersFromMessages(qbChatMessages, userIds, callback); - } else { - callback.onSuccess(qbChatMessages, bundle); - } - // Not calling super.onSuccess() because - // we're want to load chat users before triggering the callback - } - }); - } - - public void getDialogs(QBRequestGetBuilder customObjectRequestBuilder, final QBEntityCallback> callback) { - customObjectRequestBuilder.setLimit(DIALOG_ITEMS_PER_PAGE); - - QBRestChatService.getChatDialogs(null, customObjectRequestBuilder).performAsync( - new QbEntityCallbackWrapper>(callback) { - @Override - public void onSuccess(ArrayList dialogs, Bundle args) { - getUsersFromDialogs(dialogs, callback); - // Not calling super.onSuccess() because - // we want to load chat users before triggering callback - } - }); - } - - public void getDialogById(String dialogId, final QBEntityCallback callback) { - QBRestChatService.getChatDialogById(dialogId).performAsync(callback); - } - - public void getUsersFromDialog(QBChatDialog dialog, - final QBEntityCallback> callback) { - List userIds = dialog.getOccupants(); - - final ArrayList users = new ArrayList<>(userIds.size()); - for (Integer id : userIds) { - users.add(QbUsersHolder.getInstance().getUserById(id)); - } - - // If we already have all users in memory - // there is no need to make REST requests to QB - if (userIds.size() == users.size()) { - callback.onSuccess(users, null); - return; - } - - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(userIds.size(), 1); - QBUsers.getUsersByIDs(userIds, requestBuilder).performAsync( - new QbEntityCallbackWrapper>(callback) { - @Override - public void onSuccess(ArrayList qbUsers, Bundle bundle) { - QbUsersHolder.getInstance().putUsers(qbUsers); - callback.onSuccess(qbUsers, bundle); - } - }); - } - - public void loadFileAsAttachment(File file, QBEntityCallback callback) { - loadFileAsAttachment(file, callback, null); - } - - public void loadFileAsAttachment(File file, QBEntityCallback callback, - QBProgressCallback progressCallback) { - QBContent.uploadFileTask(file, true, null, progressCallback).performAsync( - new QbEntityCallbackTwoTypeWrapper(callback) { - @Override - public void onSuccess(QBFile qbFile, Bundle bundle) { - QBAttachment attachment = new QBAttachment(QBAttachment.IMAGE_TYPE); - attachment.setId(qbFile.getUid()); - attachment.setUrl(qbFile.getPublicUrl()); - attachment.setSize(qbFile.getSize()); - attachment.setName(qbFile.getName()); - attachment.setContentType(qbFile.getContentType()); - callback.onSuccess(attachment, bundle); - } - }); - } - - private void getUsersFromDialogs(final ArrayList dialogs, - final QBEntityCallback> callback) { - List userIds = new ArrayList<>(); - for (QBChatDialog dialog : dialogs) { - userIds.addAll(dialog.getOccupants()); - userIds.add(dialog.getLastMessageUserId()); - } - - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(userIds.size(), 1); - QBUsers.getUsersByIDs(userIds, requestBuilder).performAsync( - new QbEntityCallbackTwoTypeWrapper, ArrayList>(callback) { - @Override - public void onSuccess(ArrayList users, Bundle params) { - QbUsersHolder.getInstance().putUsers(users); - callback.onSuccess(dialogs, params); - } - }); - } - - private void getUsersFromMessages(final ArrayList messages, - final Set userIds, - final QBEntityCallback> callback) { - - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(userIds.size(), 1); - QBUsers.getUsersByIDs(userIds, requestBuilder).performAsync( - new QbEntityCallbackTwoTypeWrapper, ArrayList>(callback) { - @Override - public void onSuccess(ArrayList users, Bundle params) { - QbUsersHolder.getInstance().putUsers(users); - callback.onSuccess(messages, params); - } - }); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/configs/ConfigUtils.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/configs/ConfigUtils.java deleted file mode 100644 index 62f18831f..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/configs/ConfigUtils.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.quickblox.sample.chat.utils.configs; - -import com.google.gson.Gson; -import com.quickblox.sample.chat.models.SampleConfigs; -import com.quickblox.sample.core.utils.configs.ConfigParser; -import com.quickblox.sample.core.utils.configs.CoreConfigUtils; - -import java.io.IOException; - -public class ConfigUtils extends CoreConfigUtils { - - public static SampleConfigs getSampleConfigs(String fileName) throws IOException { - ConfigParser configParser = new ConfigParser(); - Gson gson = new Gson(); - return gson.fromJson(configParser.getConfigsAsJsonString(fileName), SampleConfigs.class); - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/PaginationHistoryListener.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/PaginationHistoryListener.java deleted file mode 100644 index 41c432a9d..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/PaginationHistoryListener.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.quickblox.sample.chat.utils.qb; - -public interface PaginationHistoryListener { - void downloadMore(); -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbChatDialogMessageListenerImp.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbChatDialogMessageListenerImp.java deleted file mode 100644 index 254cf7637..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbChatDialogMessageListenerImp.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.quickblox.sample.chat.utils.qb; - -import com.quickblox.chat.exception.QBChatException; -import com.quickblox.chat.listeners.QBChatDialogMessageListener; -import com.quickblox.chat.model.QBChatMessage; - -public class QbChatDialogMessageListenerImp implements QBChatDialogMessageListener{ - public QbChatDialogMessageListenerImp() { - } - - @Override - public void processMessage(String s, QBChatMessage qbChatMessage, Integer integer) { - - } - - @Override - public void processError(String s, QBChatException e, QBChatMessage qbChatMessage, Integer integer) { - - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbDialogHolder.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbDialogHolder.java deleted file mode 100644 index f1f524c8a..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbDialogHolder.java +++ /dev/null @@ -1,131 +0,0 @@ -package com.quickblox.sample.chat.utils.qb; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Comparator; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -public class QbDialogHolder { - - private static QbDialogHolder instance; - private Map dialogsMap; - - public static synchronized QbDialogHolder getInstance() { - if (instance == null) { - instance = new QbDialogHolder(); - } - return instance; - } - - private QbDialogHolder() { - dialogsMap = new TreeMap<>(); - } - - public Map getDialogs() { - return getSortedMap(dialogsMap); - } - - public QBChatDialog getChatDialogById(String dialogId) { - return dialogsMap.get(dialogId); - } - - public void clear() { - dialogsMap.clear(); - } - - public void addDialog(QBChatDialog dialog) { - if (dialog != null) { - dialogsMap.put(dialog.getDialogId(), dialog); - } - } - - public void addDialogs(List dialogs) { - for (QBChatDialog dialog : dialogs) { - addDialog(dialog); - } - } - - public void deleteDialogs(Collection dialogs) { - for (QBChatDialog dialog : dialogs) { - deleteDialog(dialog); - } - } - - public void deleteDialogs(ArrayList dialogsIds) { - for (String dialogId : dialogsIds) { - deleteDialog(dialogId); - } - } - - public void deleteDialog(QBChatDialog chatDialog) { - dialogsMap.remove(chatDialog.getDialogId()); - } - - public void deleteDialog(String dialogId) { - dialogsMap.remove(dialogId); - } - - public boolean hasDialogWithId(String dialogId) { - return dialogsMap.containsKey(dialogId); - } - - public boolean hasPrivateDialogWithUser(QBUser user) { - return getPrivateDialogWithUser(user) != null; - } - - public QBChatDialog getPrivateDialogWithUser(QBUser user) { - for (QBChatDialog chatDialog : dialogsMap.values()) { - if (QBDialogType.PRIVATE.equals(chatDialog.getType()) - && chatDialog.getOccupants().contains(user.getId())) { - return chatDialog; - } - } - - return null; - } - - private Map getSortedMap(Map unsortedMap) { - Map sortedMap = new TreeMap(new LastMessageDateSentComparator(unsortedMap)); - sortedMap.putAll(unsortedMap); - return sortedMap; - } - - public void updateDialog(String dialogId, QBChatMessage qbChatMessage) { - QBChatDialog updatedDialog = getChatDialogById(dialogId); - updatedDialog.setLastMessage(qbChatMessage.getBody()); - updatedDialog.setLastMessageDateSent(qbChatMessage.getDateSent()); - updatedDialog.setUnreadMessageCount(updatedDialog.getUnreadMessageCount() != null - ? updatedDialog.getUnreadMessageCount() + 1 : 1); - updatedDialog.setLastMessageUserId(qbChatMessage.getSenderId()); - - dialogsMap.put(updatedDialog.getDialogId(), updatedDialog); - } - - static class LastMessageDateSentComparator implements Comparator { - Map map; - - public LastMessageDateSentComparator(Map map) { - - this.map = map; - } - - public int compare(String keyA, String keyB) { - - long valueA = map.get(keyA).getLastMessageDateSent(); - long valueB = map.get(keyB).getLastMessageDateSent(); - - if (valueB < valueA) { - return -1; - } else { - return 1; - } - } - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbDialogUtils.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbDialogUtils.java deleted file mode 100644 index 620af3546..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbDialogUtils.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.quickblox.sample.chat.utils.qb; - -import android.text.TextUtils; -import android.util.Log; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.chat.utils.DialogUtils; -import com.quickblox.sample.chat.utils.chat.ChatHelper; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.List; - -public class QbDialogUtils { - private static final String TAG = QbDialogUtils.class.getSimpleName(); - - - public static QBChatDialog createDialog(List users) { - if (isPrivateChat(users)) { - QBUser currentUser = ChatHelper.getCurrentUser(); - users.remove(currentUser); - } - return DialogUtils.buildDialog(users.toArray(new QBUser[users.size()])); - } - - private static boolean isPrivateChat(List users) { - return users.size() == 2; - } - - public static List getAddedUsers(QBChatDialog dialog, List currentUsers) { - return getAddedUsers(getQbUsersFromQbDialog(dialog), currentUsers); - } - - public static List getAddedUsers(List previousUsers, List currentUsers) { - List addedUsers = new ArrayList<>(); - for (QBUser currentUser : currentUsers) { - boolean wasInChatBefore = false; - for (QBUser previousUser : previousUsers) { - if (currentUser.getId().equals(previousUser.getId())) { - wasInChatBefore = true; - break; - } - } - if (!wasInChatBefore) { - addedUsers.add(currentUser); - } - } - - QBUser currentUser = ChatHelper.getCurrentUser(); - addedUsers.remove(currentUser); - - return addedUsers; - } - - public static List getRemovedUsers(QBChatDialog dialog, List currentUsers) { - return getRemovedUsers(getQbUsersFromQbDialog(dialog), currentUsers); - } - - public static List getRemovedUsers(List previousUsers, List currentUsers) { - List removedUsers = new ArrayList<>(); - for (QBUser previousUser : previousUsers) { - boolean isUserStillPresented = false; - for (QBUser currentUser : currentUsers) { - if (previousUser.getId().equals(currentUser.getId())) { - isUserStillPresented = true; - break; - } - } - if (!isUserStillPresented) { - removedUsers.add(previousUser); - } - } - - QBUser currentUser = ChatHelper.getCurrentUser(); - removedUsers.remove(currentUser); - - return removedUsers; - } - - public static void logDialogUsers(QBChatDialog qbDialog) { - Log.v(TAG, "Dialog " + getDialogName(qbDialog)); - logUsersByIds(qbDialog.getOccupants()); - } - - public static void logUsers(List users) { - for (QBUser user : users) { - Log.i(TAG, user.getId() + " " + user.getFullName()); - } - } - - private static void logUsersByIds(List users) { - for (Integer id : users) { - QBUser user = QbUsersHolder.getInstance().getUserById(id); - Log.i(TAG, user.getId() + " " + user.getFullName()); - } - } - - public static Integer[] getUserIds(List users) { - ArrayList ids = new ArrayList<>(); - for (QBUser user : users) { - ids.add(user.getId()); - } - return ids.toArray(new Integer[ids.size()]); - } - - public static String getDialogName(QBChatDialog dialog) { - if (dialog.getType().equals(QBDialogType.GROUP)) { - return dialog.getName(); - } else { - // It's a private dialog, let's use opponent's name as chat name - Integer opponentId = dialog.getRecipientId(); - QBUser user = QbUsersHolder.getInstance().getUserById(opponentId); - if (user != null) { - return TextUtils.isEmpty(user.getFullName()) ? user.getLogin() : user.getFullName(); - } else { - return dialog.getName(); - } - } - } - - private static List getQbUsersFromQbDialog(QBChatDialog dialog) { - List previousDialogUsers = new ArrayList<>(); - for (Integer id : dialog.getOccupants()) { - QBUser user = QbUsersHolder.getInstance().getUserById(id); - if (user == null) { - throw new RuntimeException("User from dialog is not in memory. This should never happen, or we are screwed"); - } - previousDialogUsers.add(user); - } - return previousDialogUsers; - } - - public static List getOccupantsIdsListFromString(String occupantIds) { - List occupantIdsList = new ArrayList<>(); - String[] occupantIdsArray = occupantIds.split(","); - for (String occupantId : occupantIdsArray) { - occupantIdsList.add(Integer.valueOf(occupantId)); - } - return occupantIdsList; - } - - public static String getOccupantsIdsStringFromList(Collection occupantIdsList) { - return TextUtils.join(",", occupantIdsList); - } - - public static QBChatDialog buildPrivateChatDialog(String dialogId, Integer recipientId) { - QBChatDialog chatDialog = DialogUtils.buildPrivateDialog(recipientId); - chatDialog.setDialogId(dialogId); - - return chatDialog; - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbUsersHolder.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbUsersHolder.java deleted file mode 100644 index c394c4119..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/QbUsersHolder.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.quickblox.sample.chat.utils.qb; - -import android.util.SparseArray; - -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - -/** - * Basically in your app you should store users in database - * And load users to memory on demand - * We're using runtime SpaceArray holder just to simplify app logic - */ -public class QbUsersHolder { - - private static QbUsersHolder instance; - - private SparseArray qbUserSparseArray; - - public static synchronized QbUsersHolder getInstance() { - if (instance == null) { - instance = new QbUsersHolder(); - } - - return instance; - } - - private QbUsersHolder() { - qbUserSparseArray = new SparseArray<>(); - } - - public void putUsers(List users) { - for (QBUser user : users) { - putUser(user); - } - } - - public void putUser(QBUser user) { - qbUserSparseArray.put(user.getId(), user); - } - - public QBUser getUserById(int id) { - return qbUserSparseArray.get(id); - } - - public List getUsersByIds(List ids) { - List users = new ArrayList<>(); - for (Integer id : ids) { - QBUser user = getUserById(id); - if (user != null) { - users.add(user); - } - } - - return users; - } - -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/VerboseQbChatConnectionListener.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/VerboseQbChatConnectionListener.java deleted file mode 100644 index 9d85c7966..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/VerboseQbChatConnectionListener.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.quickblox.sample.chat.utils.qb; - -import android.util.Log; -import android.view.View; - -import com.google.android.material.snackbar.Snackbar; -import com.quickblox.sample.chat.App; -import com.quickblox.sample.chat.R; - -import org.jivesoftware.smack.ConnectionListener; -import org.jivesoftware.smack.XMPPConnection; - -public class VerboseQbChatConnectionListener implements ConnectionListener { - private static final String TAG = VerboseQbChatConnectionListener.class.getSimpleName(); - private View rootView; - private Snackbar snackbar; - - public VerboseQbChatConnectionListener(View rootView) { - this.rootView = rootView; - } - - @Override - public void connected(XMPPConnection connection) { - Log.i(TAG, "connected()"); - } - - @Override - public void authenticated(XMPPConnection connection, boolean authenticated) { - Log.i(TAG, "authenticated()"); - } - - @Override - public void connectionClosed() { - Log.i(TAG, "connectionClosed()"); - } - - @Override - public void connectionClosedOnError(final Exception e) { - Log.i(TAG, "connectionClosedOnError(): " + e.getLocalizedMessage()); - snackbar = Snackbar.make(rootView, App.getInstance().getString(R.string.connection_error), Snackbar.LENGTH_INDEFINITE); - snackbar.show(); - } - - @Override - public void reconnectingIn(final int seconds) { - if (seconds % 5 == 0 && seconds != 0) { - Log.i(TAG, "reconnectingIn(): " + seconds); - snackbar = Snackbar.make(rootView, App.getInstance().getString(R.string.reconnect_alert, String.valueOf(seconds)), Snackbar.LENGTH_INDEFINITE); - snackbar.show(); - } - } - - @Override - public void reconnectionSuccessful() { - Log.i(TAG, "reconnectionSuccessful()"); - if (snackbar != null) { - snackbar.dismiss(); - } - } - - @Override - public void reconnectionFailed(final Exception error) { - Log.i(TAG, "reconnectionFailed(): " + error.getLocalizedMessage()); - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QBPushSubscribeListenerImpl.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QBPushSubscribeListenerImpl.java deleted file mode 100644 index 4e159177a..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QBPushSubscribeListenerImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.quickblox.sample.chat.utils.qb.callback; - -import com.quickblox.messages.services.QBPushManager; - - -public class QBPushSubscribeListenerImpl implements QBPushManager.QBSubscribeListener { - - @Override - public void onSubscriptionCreated() { - - } - - @Override - public void onSubscriptionError(Exception e, int i) { - - } - - @Override - public void onSubscriptionDeleted(boolean b) { - - } -} \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackImpl.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackImpl.java deleted file mode 100644 index a233e0631..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.quickblox.sample.chat.utils.qb.callback; - -import android.os.Bundle; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; - -public class QbEntityCallbackImpl implements QBEntityCallback { - - public QbEntityCallbackImpl() { - } - - @Override - public void onSuccess(T result, Bundle bundle) { - - } - - @Override - public void onError(QBResponseException e) { - - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackTwoTypeWrapper.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackTwoTypeWrapper.java deleted file mode 100644 index 0d2df0f0c..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackTwoTypeWrapper.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.quickblox.sample.chat.utils.qb.callback; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; - -public class QbEntityCallbackTwoTypeWrapper implements QBEntityCallback { - protected static final Handler mainThreadHandler = new Handler(Looper.getMainLooper()); - protected QBEntityCallback callback; - - public QbEntityCallbackTwoTypeWrapper(QBEntityCallback callback) { - this.callback = callback; - } - - @Override - public void onSuccess(T t, Bundle bundle) { - // Do nothing, we want to trigger callback with another data type - } - - @Override - public void onError(QBResponseException error) { - onErrorInMainThread(error); - } - - protected void onSuccessInMainThread(final R result, final Bundle bundle) { - mainThreadHandler.post(new Runnable() { - @Override - public void run() { - callback.onSuccess(result, bundle); - } - }); - } - - protected void onErrorInMainThread(final QBResponseException error) { - mainThreadHandler.post(new Runnable() { - @Override - public void run() { - callback.onError(error); - } - }); - } -} diff --git a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackWrapper.java b/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackWrapper.java deleted file mode 100644 index 045e6b876..000000000 --- a/old_samples/sample-chat/src/main/java/com/quickblox/sample/chat/utils/qb/callback/QbEntityCallbackWrapper.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.quickblox.sample.chat.utils.qb.callback; - -import android.os.Bundle; - -import com.quickblox.core.QBEntityCallback; - -public class QbEntityCallbackWrapper extends QbEntityCallbackTwoTypeWrapper { - public QbEntityCallbackWrapper(QBEntityCallback callback) { - super(callback); - } - - @Override - public void onSuccess(T t, Bundle bundle) { - onSuccessInMainThread(t, bundle); - } -} diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/checkbox.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/checkbox.png deleted file mode 100644 index c1bc38c9f..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/checkbox.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/checkbox_on.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/checkbox_on.png deleted file mode 100644 index 40053b6aa..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/checkbox_on.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_attachment.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_attachment.png deleted file mode 100755 index 36e733538..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_attachment.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_delete.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_delete.png deleted file mode 100644 index d912755d2..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_done.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_done.png deleted file mode 100644 index 1ce11590f..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_done.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_keyboard.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_keyboard.png deleted file mode 100644 index ca6bdcca8..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_keyboard.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_logout.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_logout.png deleted file mode 100644 index 86f763e46..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_logout.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_remove.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_remove.png deleted file mode 100755 index cc3c6352e..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_remove.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_start_chat.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_start_chat.png deleted file mode 100644 index 7ad4a7fb5..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_action_start_chat.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_arrow_back.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_arrow_back.png deleted file mode 100644 index 67945d10e..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_chat_group.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_chat_group.png deleted file mode 100755 index d4a72e831..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_error.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_error.png deleted file mode 100644 index 700f3a9f7..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_error_white.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_error_white.png deleted file mode 100644 index dd4bfbdce..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_info.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_info.png deleted file mode 100644 index de7a02836..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_info.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_person_add.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_person_add.png deleted file mode 100644 index 9ab66bec1..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_person_add.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_send.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_send.png deleted file mode 100644 index fefceaeba..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/incoming_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/incoming_message_bg.9.png deleted file mode 100644 index 9b80487ed..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/incoming_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-hdpi/outgoing_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-hdpi/outgoing_message_bg.9.png deleted file mode 100644 index 056fe495c..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-hdpi/outgoing_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/checkbox.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/checkbox.png deleted file mode 100644 index feeda03d7..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/checkbox.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/checkbox_on.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/checkbox_on.png deleted file mode 100644 index 73dbae067..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/checkbox_on.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_attachment.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_attachment.png deleted file mode 100755 index 55be386bd..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_attachment.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_delete.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_delete.png deleted file mode 100644 index 864553a06..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_done.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_done.png deleted file mode 100644 index faa7b7dbc..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_done.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_keyboard.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_keyboard.png deleted file mode 100644 index b72e0cdd6..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_keyboard.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_logout.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_logout.png deleted file mode 100644 index 573c7fb53..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_logout.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_remove.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_remove.png deleted file mode 100755 index 57492af0a..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_remove.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_start_chat.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_start_chat.png deleted file mode 100644 index 262cdc502..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_action_start_chat.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_arrow_back.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_arrow_back.png deleted file mode 100644 index f2771d247..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_chat_group.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_chat_group.png deleted file mode 100755 index 13f2bd064..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_error.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_error.png deleted file mode 100644 index 56c4e87ac..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_error_white.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_error_white.png deleted file mode 100644 index 40a31e511..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_info.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_info.png deleted file mode 100644 index f777438b2..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_info.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_person_add.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_person_add.png deleted file mode 100644 index c12afadc0..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_person_add.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_send.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_send.png deleted file mode 100644 index 3b4c387aa..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/incoming_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/incoming_message_bg.9.png deleted file mode 100644 index 333349da6..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/incoming_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-mdpi/outgoing_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-mdpi/outgoing_message_bg.9.png deleted file mode 100644 index 15a75e04d..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-mdpi/outgoing_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/checkbox.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/checkbox.png deleted file mode 100644 index bc0548f81..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/checkbox.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/checkbox_on.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/checkbox_on.png deleted file mode 100644 index 4a88474ba..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/checkbox_on.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_attachment.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_attachment.png deleted file mode 100755 index bfc3c29c3..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_attachment.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_delete.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_delete.png deleted file mode 100644 index 37e9c219c..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_done.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_done.png deleted file mode 100644 index 99871bd12..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_done.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_keyboard.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_keyboard.png deleted file mode 100644 index da6b400dd..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_keyboard.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_logout.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_logout.png deleted file mode 100644 index 94ca4edbd..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_logout.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_remove.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_remove.png deleted file mode 100755 index b7a1afb19..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_remove.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_start_chat.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_start_chat.png deleted file mode 100644 index 27906684a..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_action_start_chat.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_arrow_back.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_arrow_back.png deleted file mode 100644 index c3c76291e..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_chat_group.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_chat_group.png deleted file mode 100755 index 007c44cea..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_error.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_error.png deleted file mode 100644 index 1988378bd..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_error_white.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_error_white.png deleted file mode 100644 index fedd142a7..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_info.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_info.png deleted file mode 100644 index 90c690f6b..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_info.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_person_add.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_person_add.png deleted file mode 100644 index 07d70e238..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_person_add.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_send.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_send.png deleted file mode 100644 index 4956f4c41..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/incoming_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/incoming_message_bg.9.png deleted file mode 100644 index ed8dedff7..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/incoming_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xhdpi/outgoing_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-xhdpi/outgoing_message_bg.9.png deleted file mode 100644 index d94215b2d..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xhdpi/outgoing_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/checkbox.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/checkbox.png deleted file mode 100644 index 99c059998..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/checkbox.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/checkbox_on.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/checkbox_on.png deleted file mode 100644 index a74b6ff89..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/checkbox_on.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_attachment.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_attachment.png deleted file mode 100755 index 6e16f7992..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_attachment.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_delete.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_delete.png deleted file mode 100644 index ef8e4bb42..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_done.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_done.png deleted file mode 100644 index d41775e6f..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_done.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_keyboard.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_keyboard.png deleted file mode 100644 index db871cc36..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_keyboard.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_logout.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_logout.png deleted file mode 100644 index ab152d777..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_logout.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_remove.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_remove.png deleted file mode 100755 index 75695ff06..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_remove.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_start_chat.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_start_chat.png deleted file mode 100644 index 41f71c783..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_action_start_chat.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_arrow_back.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_arrow_back.png deleted file mode 100644 index 2880e96d2..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_chat_group.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_chat_group.png deleted file mode 100755 index 5135cd02b..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_error.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_error.png deleted file mode 100644 index bae9ab200..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_error_white.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_error_white.png deleted file mode 100644 index 542b9ad4a..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_info.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_info.png deleted file mode 100644 index 73b31da79..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_info.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_person_add.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_person_add.png deleted file mode 100644 index 00e982004..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_person_add.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_send.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_send.png deleted file mode 100644 index 04e15ace4..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/incoming_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/incoming_message_bg.9.png deleted file mode 100644 index 290862e2b..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/incoming_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/outgoing_message_bg.9.png b/old_samples/sample-chat/src/main/res/drawable-xxhdpi/outgoing_message_bg.9.png deleted file mode 100644 index af7701d94..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxhdpi/outgoing_message_bg.9.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_action_delete.png b/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_action_delete.png deleted file mode 100644 index b66482880..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_action_remove.png b/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_action_remove.png deleted file mode 100755 index 89d2181e3..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_action_remove.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_error.png b/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_error.png deleted file mode 100644 index f1cf200da..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_error_white.png b/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_error_white.png deleted file mode 100644 index 710a32b80..000000000 Binary files a/old_samples/sample-chat/src/main/res/drawable-xxxhdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-chat/src/main/res/drawable/chat_date_bubble.xml b/old_samples/sample-chat/src/main/res/drawable/chat_date_bubble.xml deleted file mode 100644 index 67ceb7798..000000000 --- a/old_samples/sample-chat/src/main/res/drawable/chat_date_bubble.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/drawable/gradient_attachment.xml b/old_samples/sample-chat/src/main/res/drawable/gradient_attachment.xml deleted file mode 100644 index 5e1609c33..000000000 --- a/old_samples/sample-chat/src/main/res/drawable/gradient_attachment.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/drawable/shape_circle.xml b/old_samples/sample-chat/src/main/res/drawable/shape_circle.xml deleted file mode 100644 index d3fdbc07f..000000000 --- a/old_samples/sample-chat/src/main/res/drawable/shape_circle.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/drawable/shape_progressbar_circle.xml b/old_samples/sample-chat/src/main/res/drawable/shape_progressbar_circle.xml deleted file mode 100644 index 65e68bfd3..000000000 --- a/old_samples/sample-chat/src/main/res/drawable/shape_progressbar_circle.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/drawable/shape_rectangle.xml b/old_samples/sample-chat/src/main/res/drawable/shape_rectangle.xml deleted file mode 100644 index f02e1152f..000000000 --- a/old_samples/sample-chat/src/main/res/drawable/shape_rectangle.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/drawable/shape_rectangle_semi_transparent.xml b/old_samples/sample-chat/src/main/res/drawable/shape_rectangle_semi_transparent.xml deleted file mode 100644 index 37d58cbb0..000000000 --- a/old_samples/sample-chat/src/main/res/drawable/shape_rectangle_semi_transparent.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/activity_chat.xml b/old_samples/sample-chat/src/main/res/layout/activity_chat.xml deleted file mode 100644 index bc633237b..000000000 --- a/old_samples/sample-chat/src/main/res/layout/activity_chat.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/activity_chat_info.xml b/old_samples/sample-chat/src/main/res/layout/activity_chat_info.xml deleted file mode 100644 index a4a115fd1..000000000 --- a/old_samples/sample-chat/src/main/res/layout/activity_chat_info.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/activity_dialogs.xml b/old_samples/sample-chat/src/main/res/layout/activity_dialogs.xml deleted file mode 100644 index 6ed0e06e9..000000000 --- a/old_samples/sample-chat/src/main/res/layout/activity_dialogs.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/activity_login.xml b/old_samples/sample-chat/src/main/res/layout/activity_login.xml deleted file mode 100644 index 5844ca630..000000000 --- a/old_samples/sample-chat/src/main/res/layout/activity_login.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/activity_select_users.xml b/old_samples/sample-chat/src/main/res/layout/activity_select_users.xml deleted file mode 100644 index e5c99a603..000000000 --- a/old_samples/sample-chat/src/main/res/layout/activity_select_users.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/activity_show_image.xml b/old_samples/sample-chat/src/main/res/layout/activity_show_image.xml deleted file mode 100644 index 0851db30e..000000000 --- a/old_samples/sample-chat/src/main/res/layout/activity_show_image.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/custom_msg_left_top_widget.xml b/old_samples/sample-chat/src/main/res/layout/custom_msg_left_top_widget.xml deleted file mode 100644 index a8171f525..000000000 --- a/old_samples/sample-chat/src/main/res/layout/custom_msg_left_top_widget.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/include_list_hint_header.xml b/old_samples/sample-chat/src/main/res/layout/include_list_hint_header.xml deleted file mode 100644 index b2f300615..000000000 --- a/old_samples/sample-chat/src/main/res/layout/include_list_hint_header.xml +++ /dev/null @@ -1,5 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/item_attachment_preview.xml b/old_samples/sample-chat/src/main/res/layout/item_attachment_preview.xml deleted file mode 100644 index d457b7e69..000000000 --- a/old_samples/sample-chat/src/main/res/layout/item_attachment_preview.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/list_item_dialog.xml b/old_samples/sample-chat/src/main/res/layout/list_item_dialog.xml deleted file mode 100644 index 3cca3479e..000000000 --- a/old_samples/sample-chat/src/main/res/layout/list_item_dialog.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/list_item_text_left.xml b/old_samples/sample-chat/src/main/res/layout/list_item_text_left.xml deleted file mode 100644 index 7e67b3ee6..000000000 --- a/old_samples/sample-chat/src/main/res/layout/list_item_text_left.xml +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/list_item_user.xml b/old_samples/sample-chat/src/main/res/layout/list_item_user.xml deleted file mode 100644 index 30070f757..000000000 --- a/old_samples/sample-chat/src/main/res/layout/list_item_user.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/view_chat_message_header.xml b/old_samples/sample-chat/src/main/res/layout/view_chat_message_header.xml deleted file mode 100644 index d300ec42e..000000000 --- a/old_samples/sample-chat/src/main/res/layout/view_chat_message_header.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/layout/widget_item_attach_left.xml b/old_samples/sample-chat/src/main/res/layout/widget_item_attach_left.xml deleted file mode 100644 index 3f9fb043f..000000000 --- a/old_samples/sample-chat/src/main/res/layout/widget_item_attach_left.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/menu/action_mode_dialogs.xml b/old_samples/sample-chat/src/main/res/menu/action_mode_dialogs.xml deleted file mode 100644 index 341bd2481..000000000 --- a/old_samples/sample-chat/src/main/res/menu/action_mode_dialogs.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/menu/activity_chat.xml b/old_samples/sample-chat/src/main/res/menu/activity_chat.xml deleted file mode 100644 index 74677a879..000000000 --- a/old_samples/sample-chat/src/main/res/menu/activity_chat.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/menu/activity_chat_info.xml b/old_samples/sample-chat/src/main/res/menu/activity_chat_info.xml deleted file mode 100644 index 8d6069cee..000000000 --- a/old_samples/sample-chat/src/main/res/menu/activity_chat_info.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/menu/activity_dialogs.xml b/old_samples/sample-chat/src/main/res/menu/activity_dialogs.xml deleted file mode 100644 index a5ca80358..000000000 --- a/old_samples/sample-chat/src/main/res/menu/activity_dialogs.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/menu/activity_select_users.xml b/old_samples/sample-chat/src/main/res/menu/activity_select_users.xml deleted file mode 100644 index f2a887d1d..000000000 --- a/old_samples/sample-chat/src/main/res/menu/activity_select_users.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/values/attrs.xml b/old_samples/sample-chat/src/main/res/values/attrs.xml deleted file mode 100644 index 4c3e1cabb..000000000 --- a/old_samples/sample-chat/src/main/res/values/attrs.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/values/colors.xml b/old_samples/sample-chat/src/main/res/values/colors.xml deleted file mode 100644 index d28e322ab..000000000 --- a/old_samples/sample-chat/src/main/res/values/colors.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - #d3d3d3 - - #f5f6f5 - #80dedede - - #e0e0e0 - #e0e0e0 - - #ff9500 - #007aff - #ff0091 - #4cd964 - #c3c1f2 - #a727a5 - #77a6d0 - #d0021b - #166642 - #bdbdbd - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/values/dimens.xml b/old_samples/sample-chat/src/main/res/values/dimens.xml deleted file mode 100644 index 2c29b82e9..000000000 --- a/old_samples/sample-chat/src/main/res/values/dimens.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - 13sp - - 13sp - 30dp - - 16sp - 80dp - - 16sp - 13sp - 4dp - @dimen/chat_message_content_margin - - 12dp - 160dp - - @dimen/padding_common_twice - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/values/strings.xml b/old_samples/sample-chat/src/main/res/values/strings.xml deleted file mode 100644 index 66c1c21d9..000000000 --- a/old_samples/sample-chat/src/main/res/values/strings.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - Chat - Chat Sample - - New Chat - Chat info - Add Users to Chat - Leave Chat - Delete Chat - Logout - Delete - Done - - Loading - Restoring chat session… - Restoring session and logout - Creating chat… - Login… - - %s (you) - Login Chat error - - @string/chat_sample - - @string/chat_sample - Create session errors: - - Select User for Login to Chat - Can\'t obtain users errors - Login Chat error. Please relogin. Error - - Logged in as %s - Dialog creation errors - Dialog deletion errors - Select a Dialog to Chat - Get dialogs errors - - Select Users you want to chat - Create new chat - Add Users to chat - Get users errors - Error getting dialog from server - Please, choose at least one participant - - Sticker - Send - Message - Me - Friend - Error join group chat - Failed to send a message - Load chat history errors - Load chat users errors - Can\'t load chosen file - Attachment - You\'re all alone out here. - Start new chat. - Unsupported dialog type - Wait for all attachments to upload - Quickblox Chat Notification - Chat connection has been dropped - Reconnecting in %s seconds - - Chat info - Add people errors - - Could not join chat, errors: - Public Group chat can be deleted only by owner - Error leaving room - - 761750217637 - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/values/styles.xml b/old_samples/sample-chat/src/main/res/values/styles.xml deleted file mode 100644 index 7a3b749f0..000000000 --- a/old_samples/sample-chat/src/main/res/values/styles.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-chat/src/main/res/values/styles_widgets.xml b/old_samples/sample-chat/src/main/res/values/styles_widgets.xml deleted file mode 100644 index 41cfa1d4b..000000000 --- a/old_samples/sample-chat/src/main/res/values/styles_widgets.xml +++ /dev/null @@ -1,152 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-content/README.md b/old_samples/sample-content/README.md deleted file mode 100644 index bc5b5591f..000000000 --- a/old_samples/sample-content/README.md +++ /dev/null @@ -1,18 +0,0 @@ -## Quick Blox Android Content Sample - -This is a code sample for [QuickBlox](http://quickblox.com/) platform. It is a great way for developers using QuickBlox platform to learn how to save file on Quick Blox by yours apps. - -This is an Android build, it demonstrates how to work with [Content](http://quickblox.com/developers/Content) QuickBlox module. -It allows to organize user's photo gallery. - -It shows how to: -
    -
  • Download user's images
  • -
  • Upload new image
  • -
- -Go to project page on QuickBlox Developers Section -- - -Or clone project here and start to work with the code. - -     diff --git a/old_samples/sample-content/build.gradle b/old_samples/sample-content/build.gradle deleted file mode 100644 index d6c065812..000000000 --- a/old_samples/sample-content/build.gradle +++ /dev/null @@ -1,73 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - flavorDimensions rootProject.dimensionDefault - - defaultConfig { - applicationId "com.quickblox.sample.content" - minSdkVersion rootProject.minSdkVersion - targetSdkVersion rootProject.targetSdkVersion - versionCode rootProject.versionCode - versionName rootProject.versionName - } - - productFlavors { - speedDev { - dimension rootProject.dimensionDefault - minSdkVersion 21 - } - dev { - dimension rootProject.dimensionDefault - minSdkVersion rootProject.minSdkVersion - } - } - - buildTypes { - debug { - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - lintOptions { - abortOnError false - } -} - -dependencies { - implementation(project(":sample-core")) - - implementation "com.quickblox:quickblox-android-sdk-content:$rootProject.qbSdkVersion" - - implementation "com.github.bumptech.glide:glide:${rootProject.glideVersion}" - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } -} - -apply from: "../artifacts.gradle" \ No newline at end of file diff --git a/old_samples/sample-content/screenshots/Content1.png b/old_samples/sample-content/screenshots/Content1.png deleted file mode 100755 index 7607b941e..000000000 Binary files a/old_samples/sample-content/screenshots/Content1.png and /dev/null differ diff --git a/old_samples/sample-content/screenshots/Content2.png b/old_samples/sample-content/screenshots/Content2.png deleted file mode 100755 index 5496f3f6e..000000000 Binary files a/old_samples/sample-content/screenshots/Content2.png and /dev/null differ diff --git a/old_samples/sample-content/screenshots/Content3.png b/old_samples/sample-content/screenshots/Content3.png deleted file mode 100755 index 56c316b9c..000000000 Binary files a/old_samples/sample-content/screenshots/Content3.png and /dev/null differ diff --git a/old_samples/sample-content/screenshots/Content4.png b/old_samples/sample-content/screenshots/Content4.png deleted file mode 100755 index 682d14781..000000000 Binary files a/old_samples/sample-content/screenshots/Content4.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/AndroidManifest.xml b/old_samples/sample-content/src/main/AndroidManifest.xml deleted file mode 100644 index 43f4c8c17..000000000 --- a/old_samples/sample-content/src/main/AndroidManifest.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-content/src/main/assets/qb_config.json b/old_samples/sample-content/src/main/assets/qb_config.json deleted file mode 100644 index c6e242af6..000000000 --- a/old_samples/sample-content/src/main/assets/qb_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "account_key": "C4_z7nuaANnBYmsG_k98", - "gcm_sender_id": "761750217637" -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/assets/sample_config.json b/old_samples/sample-content/src/main/assets/sample_config.json deleted file mode 100644 index 235f452e0..000000000 --- a/old_samples/sample-content/src/main/assets/sample_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "user_login": "bobbobbob", - "user_password": "bobbobbob" -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/App.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/App.java deleted file mode 100644 index e7d701d37..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/App.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.quickblox.sample.content; - -import com.crashlytics.android.Crashlytics; -import com.quickblox.sample.core.CoreApp; - -import io.fabric.sdk.android.Fabric; - -public class App extends CoreApp { - - @Override - public void onCreate() { - super.onCreate(); - Fabric.with(this, new Crashlytics()); - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/BaseActivity.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/BaseActivity.java deleted file mode 100644 index 7c1103d41..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/BaseActivity.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.quickblox.sample.content.activities; - -import android.app.ProgressDialog; -import android.os.Bundle; - -import com.quickblox.auth.QBAuth; -import com.quickblox.core.exception.BaseServiceException; -import com.quickblox.sample.core.ui.activity.CoreBaseActivity; -import com.quickblox.sample.core.utils.DialogUtils; - -import java.util.Date; - -import androidx.appcompat.app.ActionBar; - -public abstract class BaseActivity extends CoreBaseActivity { - - protected ActionBar actionBar; - protected ProgressDialog progressDialog; - private String TOKEN = "token"; - private String DATE = "date"; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - actionBar = getSupportActionBar(); - progressDialog = DialogUtils.getProgressDialog(this); - if (savedInstanceState != null) { - restoreSession(savedInstanceState); - } - } - - @Override - public void onSaveInstanceState(Bundle savedInstanceState) { - super.onSaveInstanceState(savedInstanceState); - try { - savedInstanceState.putString(TOKEN, QBAuth.getBaseService().getToken()); - savedInstanceState.putSerializable(DATE, QBAuth.getBaseService().getTokenExpirationDate()); - } catch (BaseServiceException e) { - e.printStackTrace(); - } - } - - public void restoreSession(Bundle savedInstanceState) { - try { - String token = savedInstanceState.getString(TOKEN); - Date date = (Date) savedInstanceState.getSerializable(DATE); - - QBAuth.createFromExistentToken(token, date); - } catch (BaseServiceException e) { - e.printStackTrace(); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/GalleryActivity.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/GalleryActivity.java deleted file mode 100644 index a055183e4..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/GalleryActivity.java +++ /dev/null @@ -1,202 +0,0 @@ -package com.quickblox.sample.content.activities; - -import android.app.ProgressDialog; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.widget.AdapterView; -import android.widget.GridView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.quickblox.content.QBContent; -import com.quickblox.content.model.QBFile; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.QBProgressCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.quickblox.sample.content.R; -import com.quickblox.sample.content.adapter.GalleryAdapter; -import com.quickblox.sample.content.helper.DataHolder; -import com.quickblox.sample.content.helper.DownloadMoreListener; -import com.quickblox.sample.core.utils.DialogUtils; -import com.quickblox.sample.core.utils.ErrorUtils; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.core.utils.imagepick.ImagePickHelper; -import com.quickblox.sample.core.utils.imagepick.OnImagePickedListener; - -import java.io.File; -import java.util.ArrayList; - -import androidx.core.content.ContextCompat; - -public class GalleryActivity extends BaseActivity - implements AdapterView.OnItemClickListener, OnImagePickedListener, DownloadMoreListener { - - public static final int GALLERY_REQUEST_CODE = 183; - - private static final int IMAGE_SIZE_LIMIT_KB = 1024 * 100; - private static final int IMAGES_PER_PAGE = 50; - private int current_page = 1; - - private GalleryAdapter galleryAdapter; - private ImagePickHelper imagePickHelper; - private LinearLayout emptyView; - private TextView problemView; - private TextView descriptionView; - - public static void start(Context context) { - Intent intent = new Intent(context, GalleryActivity.class); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_gallery); - DataHolder.getInstance().clear(); - initUI(); - getFileList(); - imagePickHelper = new ImagePickHelper(); - } - - @Override - public void onItemClick(AdapterView adapterView, View view, int position, long id) { - QBFile qbFile = (QBFile) adapterView.getItemAtPosition(position); - ShowImageActivity.start(this, qbFile.getId()); - } - - public void onStartUploadImageClick(View view) { - imagePickHelper.pickAnImage(this, GALLERY_REQUEST_CODE); - } - - private void initUI() { - galleryAdapter = new GalleryAdapter(this, DataHolder.getInstance().getQBFiles()); - galleryAdapter.setDownloadMoreListener(this); - - GridView galleryGridView = _findViewById(R.id.gallery_gridview); - emptyView = _findViewById(R.id.empty_view); - problemView = _findViewById(R.id.problem); - descriptionView = _findViewById(R.id.description); - - galleryGridView.setAdapter(galleryAdapter); - galleryGridView.setOnItemClickListener(this); - } - - private void getFileList() { - progressDialog = DialogUtils.getProgressDialog(this); - progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); - progressDialog.show(); - - QBPagedRequestBuilder builder = new QBPagedRequestBuilder(); - builder.setPerPage(IMAGES_PER_PAGE); - builder.setPage(current_page++); - - QBContent.getFiles(builder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList qbFiles, Bundle bundle) { - if (qbFiles.isEmpty()) { - current_page--; - } else { - DataHolder.getInstance().addQbFiles(qbFiles); - } - if (progressDialog.isIndeterminate()) { - progressDialog.dismiss(); - } - updateData(); - } - - @Override - public void onError(QBResponseException e) { - progressDialog.dismiss(); - current_page--; - View view = findViewById(R.id.activity_gallery); - showSnackbarError(view, R.string.splash_create_session_error, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - getFileList(); - } - }); - } - }); - } - - private void updateData() { - if (DataHolder.getInstance().isEmpty()) { - noPhoto(); - } else { - emptyView.setVisibility(View.GONE); - } - - galleryAdapter.updateData(DataHolder.getInstance().getQBFiles()); - } - - private void noPhoto() { - problemView.setText(getResources().getString(R.string.no_photo)); - descriptionView.setText(getResources().getString(R.string.press_button)); - descriptionView.setTextColor(ContextCompat.getColor(this, R.color.text_color_light_grey)); - emptyView.setVisibility(View.VISIBLE); - } - - private void uploadSelectedImage(final File imageFile) { - final int imageSizeKb = (int) imageFile.length() / 1024; - final float onePercent = (float) imageSizeKb / 100; - if (imageSizeKb >= IMAGE_SIZE_LIMIT_KB) { - Toaster.longToast(R.string.image_size_error); - return; - } - - progressDialog.dismiss(); - progressDialog = DialogUtils.getProgressDialog(this); - progressDialog.setMax(imageSizeKb); - progressDialog.setProgressNumberFormat("%1d/%2d kB"); - progressDialog.show(); - - QBContent.uploadFileTask(imageFile, true, null, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - progressDialog.setProgress((int) (onePercent * progress)); - } - }).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBFile qbFile, Bundle bundle) { - DataHolder.getInstance().addQbFile(qbFile); - progressDialog.dismiss(); - updateData(); - } - - @Override - public void onError(QBResponseException e) { - progressDialog.dismiss(); - View view = findViewById(R.id.activity_gallery); - showSnackbarError(view, R.string.splash_create_session_error, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - uploadSelectedImage(imageFile); - } - }); - } - }); - } - - @Override - public void onImagePicked(int requestCode, File file) { - uploadSelectedImage(file); - } - - @Override - public void onImagePickError(int requestCode, Exception e) { - ErrorUtils.showErrorDialog(this, R.string.gallery_pick_error, e.getMessage()); - } - - @Override - public void onImagePickClosed(int requestCode) { - // ignored - } - - @Override - public void downloadMore() { - getFileList(); - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/ShowImageActivity.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/ShowImageActivity.java deleted file mode 100644 index e85688b16..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/ShowImageActivity.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.quickblox.sample.content.activities; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.view.View; -import android.widget.ImageView; -import android.widget.ProgressBar; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.bumptech.glide.load.resource.drawable.GlideDrawable; -import com.bumptech.glide.request.RequestListener; -import com.bumptech.glide.request.target.Target; -import com.quickblox.content.model.QBFile; -import com.quickblox.sample.content.R; -import com.quickblox.sample.content.helper.DataHolder; -import com.quickblox.sample.content.utils.Consts; -import com.quickblox.sample.content.utils.QBContentUtils; - -public class ShowImageActivity extends BaseActivity { - - private static final String EXTRA_QB_FILE_ID = "qb_file_id"; - private static final int NO_ID = -1; - - private ImageView imageView; - private ProgressBar progressBar; - - public static void start(Context context, int id) { - Intent intent = new Intent(context, ShowImageActivity.class); - intent.putExtra(EXTRA_QB_FILE_ID, id); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_show_image); - initUI(); - loadImage(); - } - - private void initUI() { - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setDisplayShowTitleEnabled(false); - imageView = _findViewById(R.id.image_full_view); - progressBar = _findViewById(R.id.progress_bar_show_image); - } - - private void loadImage() { - int id = getIntent().getIntExtra(EXTRA_QB_FILE_ID, NO_ID); - QBFile qbFile = DataHolder.getInstance().getQBFile(id); - if (qbFile == null) { - imageView.setImageResource(R.drawable.ic_error); - return; - } - - progressBar.setVisibility(View.VISIBLE); - Glide.with(this) - .load(QBContentUtils.getUrl(qbFile)) - .diskCacheStrategy(DiskCacheStrategy.ALL) - .listener(new RequestListener() { - @Override - public boolean onException(Exception e, String model, - Target target, boolean isFirstResource) { - progressBar.setVisibility(View.GONE); - return false; - } - - @Override - public boolean onResourceReady(GlideDrawable resource, String model, - Target target, boolean isFromMemoryCache, - boolean isFirstResource) { - progressBar.setVisibility(View.GONE); - return false; - } - }) - .error(R.drawable.ic_error_white) - .dontTransform() - .override(Consts.PREFERRED_IMAGE_WIDTH_FULL, Consts.PREFERRED_IMAGE_HEIGHT_FULL) - .into(imageView); - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/SplashActivity.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/SplashActivity.java deleted file mode 100644 index cefc1523c..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/activities/SplashActivity.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.quickblox.sample.content.activities; - -import android.os.Bundle; -import android.view.View; - -import com.quickblox.auth.QBAuth; -import com.quickblox.auth.session.QBSession; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.content.R; -import com.quickblox.sample.content.utils.Consts; -import com.quickblox.sample.core.ui.activity.CoreSplashActivity; -import com.quickblox.sample.core.utils.configs.CoreConfigUtils; -import com.quickblox.users.model.QBUser; - -public class SplashActivity extends CoreSplashActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - if (checkConfigsWithSnackebarError()) { - createSession(); - } - } - - private void createSession() { - QBUser qbUser = CoreConfigUtils.getUserFromConfig(Consts.SAMPLE_CONFIG_FILE_NAME); - - QBAuth.createSession(qbUser).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBSession qbSession, Bundle bundle) { - proceedToTheNextActivity(); - } - - @Override - public void onError(QBResponseException e) { - showSnackbarError(null, R.string.splash_create_session_error, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - createSession(); - } - }); - } - }); - } - - @Override - protected String getAppName() { - return getString(R.string.splash_app_title); - } - - @Override - protected void proceedToTheNextActivity() { - GalleryActivity.start(this); - finish(); - } - - @Override - protected boolean sampleConfigIsCorrect() { - boolean result = super.sampleConfigIsCorrect(); - result = result && CoreConfigUtils.getUserFromConfig(Consts.SAMPLE_CONFIG_FILE_NAME) != null; - return result; - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/adapter/GalleryAdapter.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/adapter/GalleryAdapter.java deleted file mode 100644 index b5afaea4e..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/adapter/GalleryAdapter.java +++ /dev/null @@ -1,127 +0,0 @@ -package com.quickblox.sample.content.adapter; - -import android.content.Context; -import android.util.SparseArray; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.ProgressBar; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.Priority; -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.bumptech.glide.load.resource.drawable.GlideDrawable; -import com.bumptech.glide.request.RequestListener; -import com.bumptech.glide.request.target.Target; -import com.quickblox.content.model.QBFile; -import com.quickblox.sample.content.R; -import com.quickblox.sample.content.helper.DownloadMoreListener; -import com.quickblox.sample.content.utils.Consts; -import com.quickblox.sample.content.utils.QBContentUtils; -import com.quickblox.sample.core.ui.adapter.BaseListAdapter; - -public class GalleryAdapter extends BaseListAdapter { - - private SparseArray qbFileSparseArray; - private DownloadMoreListener downloadListener; - private int previousGetCount = 0; - - public GalleryAdapter(Context context, SparseArray qbFileSparseArray) { - super(context); - this.qbFileSparseArray = qbFileSparseArray; - } - - @Override - public int getCount() { - return qbFileSparseArray.size(); - } - - @Override - public QBFile getItem(int position) { - return qbFileSparseArray.valueAt(position); - } - - @Override - public long getItemId(int position) { - return qbFileSparseArray.keyAt(position); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - final ViewHolder holder; - if (convertView == null) { - convertView = inflater.inflate(R.layout.list_item_gallery, parent, false); - holder = new ViewHolder(); - holder.imageView = (ImageView) convertView.findViewById(R.id.image_preview); - holder.progressBar = (ProgressBar) convertView.findViewById(R.id.progress_bar_adapter); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - QBFile qbFile = getItem(position); - loadImage(holder, qbFile); - - downloadMore(position); - return convertView; - } - - private void downloadMore(int position) { - int count = getCount(); - if (count - 1 == position) { - if (count != previousGetCount) { - downloadListener.downloadMore(); - previousGetCount = count; - } - } - } - - public void updateData(SparseArray qbFileSparseArray) { - this.qbFileSparseArray = qbFileSparseArray; - notifyDataSetChanged(); - } - - private void loadImage(final ViewHolder holder, QBFile qbFile) { - holder.progressBar.setVisibility(View.VISIBLE); - - Priority customPriority = qbFile.getSize() > Consts.PRIORITY_MAX_IMAGE_SIZE - ? Priority.LOW - : Priority.NORMAL; - - Glide.with(context) - .load(QBContentUtils.getUrl(qbFile)) - .diskCacheStrategy(DiskCacheStrategy.ALL) - .priority(customPriority) - .listener(new RequestListener() { - @Override - public boolean onException(Exception e, String model, - Target target, boolean isFirstResource) { - holder.progressBar.setVisibility(View.GONE); - holder.imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); - return false; - } - - @Override - public boolean onResourceReady(GlideDrawable resource, String model, - Target target, boolean isFromMemoryCache, - boolean isFirstResource) { - holder.progressBar.setVisibility(View.GONE); - holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - return false; - } - }) - .error(R.drawable.ic_error) - .dontAnimate() - .dontTransform() - .override(Consts.PREFERRED_IMAGE_WIDTH_PREVIEW, Consts.PREFERRED_IMAGE_HEIGHT_PREVIEW) - .into(holder.imageView); - } - - public void setDownloadMoreListener(DownloadMoreListener downloadListener) { - this.downloadListener = downloadListener; - } - - private static class ViewHolder { - ImageView imageView; - ProgressBar progressBar; - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/helper/DataHolder.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/helper/DataHolder.java deleted file mode 100644 index ab39cb546..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/helper/DataHolder.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.quickblox.sample.content.helper; - -import android.util.SparseArray; - -import com.quickblox.content.model.QBFile; - -import java.util.Collection; - -public class DataHolder { - - private static DataHolder instance; - private SparseArray qbFiles; - - private DataHolder() { - qbFiles = new SparseArray<>(); - } - - public static synchronized DataHolder getInstance() { - if (instance == null) { - instance = new DataHolder(); - } - return instance; - } - - public void addQbFiles(Collection qbFileList) { - for (QBFile qbFile : qbFileList) { - addQbFile(qbFile); - } - } - - public SparseArray getQBFiles() { - return qbFiles; - } - - public boolean isEmpty() { - return qbFiles.size() == 0; - } - - public void clear() { - qbFiles.clear(); - } - - public void addQbFile(QBFile qbFile) { - qbFiles.put(qbFile.getId(), qbFile); - } - - public QBFile getQBFile(int id) { - return qbFiles.get(id); - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/helper/DownloadMoreListener.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/helper/DownloadMoreListener.java deleted file mode 100644 index 778685d8e..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/helper/DownloadMoreListener.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.quickblox.sample.content.helper; - -public interface DownloadMoreListener { - - void downloadMore(); -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/Consts.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/Consts.java deleted file mode 100644 index 6b9d68792..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/Consts.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.quickblox.sample.content.utils; - -import com.quickblox.sample.content.R; -import com.quickblox.sample.core.utils.ResourceUtils; - -public interface Consts { - String SAMPLE_CONFIG_FILE_NAME = "sample_config.json"; - - int PREFERRED_IMAGE_WIDTH_PREVIEW = ResourceUtils.getDimen(R.dimen.item_gallery_width); - int PREFERRED_IMAGE_HEIGHT_PREVIEW = ResourceUtils.getDimen(R.dimen.item_gallery_height); - - int PREFERRED_IMAGE_WIDTH_FULL = ResourceUtils.dpToPx(320); - int PREFERRED_IMAGE_HEIGHT_FULL = ResourceUtils.dpToPx(320); - - int PRIORITY_MAX_IMAGE_SIZE = 1024 * 1024 * 20; -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/GlideConfiguration.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/GlideConfiguration.java deleted file mode 100644 index a80ddbaed..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/GlideConfiguration.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.quickblox.sample.content.utils; - -import android.content.Context; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.GlideBuilder; -import com.bumptech.glide.load.DecodeFormat; -import com.bumptech.glide.module.GlideModule; - -public class GlideConfiguration implements GlideModule { - - @Override - public void applyOptions(Context context, GlideBuilder builder) { - builder.setDecodeFormat(DecodeFormat.PREFER_RGB_565); - } - - @Override - public void registerComponents(Context context, Glide glide) { - - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/QBContentUtils.java b/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/QBContentUtils.java deleted file mode 100644 index 8fdcb2203..000000000 --- a/old_samples/sample-content/src/main/java/com/quickblox/sample/content/utils/QBContentUtils.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.quickblox.sample.content.utils; - -import android.text.TextUtils; - -import com.quickblox.content.model.QBFile; - -public class QBContentUtils { - - public static String getUrl(QBFile qbFile) { - // URL formation documentation - // http://quickblox.com/developers/Content#API_Content_Get_File_As_A_Redirect_To_The_S3_Object - - if (qbFile.isPublic()) { - String publicUrl = qbFile.getPublicUrl(); - if (!TextUtils.isEmpty(publicUrl)) { - return publicUrl; - } - } - - return qbFile.getPrivateUrl(); - } -} \ No newline at end of file diff --git a/old_samples/sample-content/src/main/res/drawable-hdpi/ic_action_add.png b/old_samples/sample-content/src/main/res/drawable-hdpi/ic_action_add.png deleted file mode 100755 index 30b5b2d14..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-hdpi/ic_action_add.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-hdpi/ic_error.png b/old_samples/sample-content/src/main/res/drawable-hdpi/ic_error.png deleted file mode 100755 index 700f3a9f7..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-hdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-hdpi/ic_error_white.png b/old_samples/sample-content/src/main/res/drawable-hdpi/ic_error_white.png deleted file mode 100644 index dd4bfbdce..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-hdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-mdpi/ic_action_add.png b/old_samples/sample-content/src/main/res/drawable-mdpi/ic_action_add.png deleted file mode 100755 index 7a64f9e1e..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-mdpi/ic_action_add.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-mdpi/ic_error.png b/old_samples/sample-content/src/main/res/drawable-mdpi/ic_error.png deleted file mode 100755 index 56c4e87ac..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-mdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-mdpi/ic_error_white.png b/old_samples/sample-content/src/main/res/drawable-mdpi/ic_error_white.png deleted file mode 100644 index 40a31e511..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-mdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_action_add.png b/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_action_add.png deleted file mode 100755 index 9aaf85813..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_action_add.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_error.png b/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_error.png deleted file mode 100755 index 1988378bd..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_error_white.png b/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_error_white.png deleted file mode 100644 index fedd142a7..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xhdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_action_add.png b/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_action_add.png deleted file mode 100755 index 390e6e077..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_action_add.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_error.png b/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_error.png deleted file mode 100755 index bae9ab200..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_error_white.png b/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_error_white.png deleted file mode 100644 index 542b9ad4a..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xxhdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_action_add.png b/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_action_add.png deleted file mode 100755 index 7ea805430..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_action_add.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_error.png b/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_error.png deleted file mode 100755 index f1cf200da..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_error.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_error_white.png b/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_error_white.png deleted file mode 100644 index 710a32b80..000000000 Binary files a/old_samples/sample-content/src/main/res/drawable-xxxhdpi/ic_error_white.png and /dev/null differ diff --git a/old_samples/sample-content/src/main/res/layout/activity_gallery.xml b/old_samples/sample-content/src/main/res/layout/activity_gallery.xml deleted file mode 100644 index 51b01691c..000000000 --- a/old_samples/sample-content/src/main/res/layout/activity_gallery.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-content/src/main/res/layout/activity_show_image.xml b/old_samples/sample-content/src/main/res/layout/activity_show_image.xml deleted file mode 100644 index 0a2e0b449..000000000 --- a/old_samples/sample-content/src/main/res/layout/activity_show_image.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-content/src/main/res/layout/list_item_gallery.xml b/old_samples/sample-content/src/main/res/layout/list_item_gallery.xml deleted file mode 100644 index 0e110cda3..000000000 --- a/old_samples/sample-content/src/main/res/layout/list_item_gallery.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-content/src/main/res/values/colors.xml b/old_samples/sample-content/src/main/res/values/colors.xml deleted file mode 100644 index 54ba216b0..000000000 --- a/old_samples/sample-content/src/main/res/values/colors.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - #d0031c - #afebb0 - - \ No newline at end of file diff --git a/old_samples/sample-content/src/main/res/values/dimens.xml b/old_samples/sample-content/src/main/res/values/dimens.xml deleted file mode 100644 index f2a3a58c2..000000000 --- a/old_samples/sample-content/src/main/res/values/dimens.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - 115dp - 115dp - - 15dp - 18sp - - @dimen/item_gallery_width - - 5dp - - \ No newline at end of file diff --git a/old_samples/sample-content/src/main/res/values/strings.xml b/old_samples/sample-content/src/main/res/values/strings.xml deleted file mode 100644 index fb0a1695d..000000000 --- a/old_samples/sample-content/src/main/res/values/strings.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Content - Content Sample - Errors - Initializing configs error - - Upload image errors: - Pick image errors: - File mustn\'t be more than 100 MB - - Images - Show image - - No photos - Press plus button to add images - - \ No newline at end of file diff --git a/old_samples/sample-content/src/main/res/values/styles.xml b/old_samples/sample-content/src/main/res/values/styles.xml deleted file mode 100644 index 286e0eff0..000000000 --- a/old_samples/sample-content/src/main/res/values/styles.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-core/build.gradle b/old_samples/sample-core/build.gradle deleted file mode 100644 index cbdbd8db8..000000000 --- a/old_samples/sample-core/build.gradle +++ /dev/null @@ -1,43 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.library' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - - defaultConfig { - minSdkVersion rootProject.minSdkVersion - targetSdkVersion rootProject.targetSdkVersion - versionCode rootProject.versionCode - versionName rootProject.versionName - } - - lintOptions { - abortOnError false - } -} - -dependencies { - api("com.quickblox:quickblox-android-sdk-messages:$rootProject.qbSdkVersion") - - api "com.google.android.material:material:${rootProject.materialVersion}" - api "androidx.fragment:fragment:${rootProject.fragmentAndroidXVersion}" - api "com.github.johnkil.android-robototextview:robototextview:${rootProject.robotoTextViewVersion}" - api("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } -} \ No newline at end of file diff --git a/old_samples/sample-core/proguard-rules.pro b/old_samples/sample-core/proguard-rules.pro deleted file mode 100644 index 677edc8f4..000000000 --- a/old_samples/sample-core/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in C:\android-sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/old_samples/sample-core/src/main/AndroidManifest.xml b/old_samples/sample-core/src/main/AndroidManifest.xml deleted file mode 100644 index 6c5dba3ce..000000000 --- a/old_samples/sample-core/src/main/AndroidManifest.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/assets/qb_config.json b/old_samples/sample-core/src/main/assets/qb_config.json deleted file mode 100644 index c6e242af6..000000000 --- a/old_samples/sample-core/src/main/assets/qb_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "account_key": "C4_z7nuaANnBYmsG_k98", - "gcm_sender_id": "761750217637" -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/CoreApp.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/CoreApp.java deleted file mode 100644 index aff3d3cd0..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/CoreApp.java +++ /dev/null @@ -1,97 +0,0 @@ -package com.quickblox.sample.core; - -import android.app.Application; -import android.text.TextUtils; -import android.util.Log; - -import com.crashlytics.android.Crashlytics; -import com.quickblox.auth.session.QBSession; -import com.quickblox.auth.session.QBSessionManager; -import com.quickblox.auth.session.QBSessionParameters; -import com.quickblox.auth.session.QBSettings; -import com.quickblox.core.ServiceZone; -import com.quickblox.sample.core.models.QbConfigs; -import com.quickblox.sample.core.utils.configs.CoreConfigUtils; - -import io.fabric.sdk.android.Fabric; - -public class CoreApp extends Application { - public static final String TAG = CoreApp.class.getSimpleName(); - - private static CoreApp instance; - private static final String QB_CONFIG_DEFAULT_FILE_NAME = "qb_config.json"; - protected QbConfigs qbConfigs; - - @Override - public void onCreate() { - super.onCreate(); - Fabric.with(this, new Crashlytics()); - instance = this; - initQBSessionManager(); - initQbConfigs(); - initCredentials(); - } - - private void initQbConfigs() { - Log.e(TAG, "QB CONFIG FILE NAME: " + getQbConfigFileName()); - qbConfigs = CoreConfigUtils.getCoreConfigsOrNull(getQbConfigFileName()); - } - - public static synchronized CoreApp getInstance() { - return instance; - } - - public void initCredentials() { - if (qbConfigs != null) { - QBSettings.getInstance().init(getApplicationContext(), qbConfigs.getAppId(), qbConfigs.getAuthKey(), qbConfigs.getAuthSecret()); - QBSettings.getInstance().setAccountKey(qbConfigs.getAccountKey()); - - if (!TextUtils.isEmpty(qbConfigs.getApiDomain()) && !TextUtils.isEmpty(qbConfigs.getChatDomain())) { - QBSettings.getInstance().setEndpoints(qbConfigs.getApiDomain(), qbConfigs.getChatDomain(), ServiceZone.PRODUCTION); - QBSettings.getInstance().setZone(ServiceZone.PRODUCTION); - } - } - } - - public QbConfigs getQbConfigs() { - return qbConfigs; - } - - protected String getQbConfigFileName() { - return QB_CONFIG_DEFAULT_FILE_NAME; - } - - private void initQBSessionManager() { - QBSessionManager.getInstance().addListener(new QBSessionManager.QBSessionListener() { - @Override - public void onSessionCreated(QBSession qbSession) { - Log.d(TAG, "Session Created"); - } - - @Override - public void onSessionUpdated(QBSessionParameters qbSessionParameters) { - Log.d(TAG, "Session Updated"); - } - - @Override - public void onSessionDeleted() { - Log.d(TAG, "Session Deleted"); - } - - @Override - public void onSessionRestored(QBSession qbSession) { - Log.d(TAG, "Session Restored"); - } - - @Override - public void onSessionExpired() { - Log.d(TAG, "Session Expired"); - } - - @Override - public void onProviderSessionExpired(String provider) { - Log.d(TAG, "Session Expired for provider:" + provider); - } - }); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/async/BaseAsyncTask.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/async/BaseAsyncTask.java deleted file mode 100644 index 1513e78c2..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/async/BaseAsyncTask.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.quickblox.sample.core.async; - -import android.os.AsyncTask; -import android.os.Handler; -import android.os.Looper; -import android.util.Log; - -public abstract class BaseAsyncTask extends AsyncTask { - private static final String TAG = BaseAsyncTask.class.getSimpleName(); - - private static final Handler mainThreadHandler = new Handler(Looper.getMainLooper()); - private boolean isExceptionOccurred; - - @Override - protected final Result doInBackground(Params... params) { - try { - return performInBackground(params); - } catch (final Exception e) { - isExceptionOccurred = true; - mainThreadHandler.post(new Runnable() { - @Override - public void run() { - onException(e); - } - }); - return null; - } - } - - @Override - protected final void onPostExecute(Result result) { - if (!isExceptionOccurred) { - onResult(result); - } - } - - public abstract Result performInBackground(Params... params) throws Exception; - - public abstract void onResult(Result result); - - public void onException(Exception e) { - Log.w(TAG, e); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/gcm/CoreGcmPushListenerService.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/gcm/CoreGcmPushListenerService.java deleted file mode 100644 index 65352172f..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/gcm/CoreGcmPushListenerService.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.quickblox.sample.core.gcm; - -import android.os.Bundle; -import android.util.Log; - -import com.quickblox.messages.services.gcm.QBGcmPushListenerService; -import com.quickblox.sample.core.utils.ActivityLifecycle; - -public abstract class CoreGcmPushListenerService extends QBGcmPushListenerService { - private static final String TAG = CoreGcmPushListenerService.class.getSimpleName(); - - @Override - public void sendPushMessage(Bundle data, String from, String message) { - super.sendPushMessage(data, from, message); - Log.v(TAG, "From: " + from); - Log.v(TAG, "Message: " + message); - - if (ActivityLifecycle.getInstance().isBackground()) { - showNotification(message); - } - } - - protected abstract void showNotification(String message); -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/gcm/GooglePlayServicesHelper.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/gcm/GooglePlayServicesHelper.java deleted file mode 100644 index 95aca1e83..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/gcm/GooglePlayServicesHelper.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.quickblox.sample.core.gcm; - -import android.app.Activity; -import android.util.Log; - -import com.google.android.gms.common.ConnectionResult; -import com.google.android.gms.common.GoogleApiAvailability; -import com.quickblox.sample.core.CoreApp; - -public class GooglePlayServicesHelper { - private static final String TAG = GooglePlayServicesHelper.class.getSimpleName(); - - private static final int PLAY_SERVICES_REQUEST_CODE = 9000; - - /** - * Check the device to make sure it has the Google Play Services APK. If - * it doesn't, display a dialog that allows users to download the APK from - * the Google Play Store or enable it in the device's system settings. - * - * @param activity activity where you check Google Play Services availability - */ - public boolean checkPlayServicesAvailable(Activity activity) { - GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance(); - int resultCode = apiAvailability.isGooglePlayServicesAvailable(activity); - if (resultCode != ConnectionResult.SUCCESS) { - if (apiAvailability.isUserResolvableError(resultCode)) { - apiAvailability.getErrorDialog(activity, resultCode, PLAY_SERVICES_REQUEST_CODE) - .show(); - } else { - Log.i(TAG, "This device is not supported."); - activity.finish(); - } - return false; - } - return true; - } - - public boolean checkPlayServicesAvailable() { - return getPlayServicesAvailabilityResultCode() == ConnectionResult.SUCCESS; - } - - private int getPlayServicesAvailabilityResultCode() { - GoogleApiAvailability apiAvailability = GoogleApiAvailability.getInstance(); - return apiAvailability.isGooglePlayServicesAvailable(CoreApp.getInstance()); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/models/QbConfigs.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/models/QbConfigs.java deleted file mode 100644 index 56f7346aa..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/models/QbConfigs.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.quickblox.sample.core.models; - -import com.google.gson.annotations.SerializedName; - -import java.io.Serializable; - -public class QbConfigs implements Serializable { - - public QbConfigs() { - } - - @SerializedName("app_id") - private String appId; - - @SerializedName("auth_key") - private String authKey; - - @SerializedName("auth_secret") - private String authSecret; - - @SerializedName("account_key") - private String accountKey; - - @SerializedName("api_domain") - private String apiDomain; - - @SerializedName("chat_domain") - private String chatDomain; - - @SerializedName("gcm_sender_id") - private String gcmSenderId; - - @SerializedName("janus_server_url") - private String janusServerUrl; - - public String getAppId() { - return appId; - } - - public void setAppId(String appId) { - this.appId = appId; - } - - public String getAuthKey() { - return authKey; - } - - public void setAuthKey(String authKey) { - this.authKey = authKey; - } - - public String getAuthSecret() { - return authSecret; - } - - public void setAuthSecret(String authSecret) { - this.authSecret = authSecret; - } - - public String getAccountKey() { - return accountKey; - } - - public void setAccountKey(String accountKey) { - this.accountKey = accountKey; - } - - public String getApiDomain() { - return apiDomain; - } - - public void setApiDomain(String apiDomain) { - this.apiDomain = apiDomain; - } - - public String getChatDomain() { - return chatDomain; - } - - public void setChatDomain(String chatDomain) { - this.chatDomain = chatDomain; - } - - public String getGcmSenderId() { - return gcmSenderId; - } - - public void setGcmSenderId(String gcmSenderId) { - this.gcmSenderId = gcmSenderId; - } - - public String getJanusServerUrl() { - return janusServerUrl; - } - - public void setJanusServerUrl(String janusServerUrl) { - this.janusServerUrl = janusServerUrl; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/activity/CoreBaseActivity.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/activity/CoreBaseActivity.java deleted file mode 100644 index d03213255..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/activity/CoreBaseActivity.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.quickblox.sample.core.ui.activity; - -import android.os.Bundle; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewConfiguration; -import android.widget.TextView; - -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.core.R; -import com.quickblox.sample.core.utils.ErrorUtils; - -import java.lang.reflect.Field; - -import androidx.annotation.StringRes; -import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; - -public class CoreBaseActivity extends AppCompatActivity { - protected ActionBar actionBar; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - actionBar = getSupportActionBar(); - - // Hack. Forcing overflow button on actionbar on devices with hardware menu button - try { - ViewConfiguration config = ViewConfiguration.get(this); - Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey"); - if (menuKeyField != null) { - menuKeyField.setAccessible(true); - menuKeyField.setBoolean(config, false); - } - } catch (Exception ex) { - // Ignore - } - } - - @SuppressWarnings("unchecked") - public T _findViewById(int viewId) { - return (T) findViewById(viewId); - } - - public void setActionBarTitle(int title) { - if (actionBar != null) { - actionBar.setTitle(title); - } - } - - public void setActionBarTitle(CharSequence title) { - if (actionBar != null) { - actionBar.setTitle(title); - } - } - - protected void fillField(TextView textView, String value) { - textView.setText(value); - } - - protected void showSnackbarError(View rootLayout, @StringRes int resId, QBResponseException e, View.OnClickListener clickListener) { - ErrorUtils.showSnackbar(rootLayout, resId, e, R.string.dlg_retry, clickListener); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - finish(); - return true; - } - return super.onOptionsItemSelected(item); - } - -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/activity/CoreSplashActivity.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/activity/CoreSplashActivity.java deleted file mode 100644 index 94483621c..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/activity/CoreSplashActivity.java +++ /dev/null @@ -1,80 +0,0 @@ -package com.quickblox.sample.core.ui.activity; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.view.View; -import android.view.Window; -import android.widget.TextView; - -import com.quickblox.auth.session.QBSessionManager; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.R; -import com.quickblox.sample.core.utils.ErrorUtils; -import com.quickblox.sample.core.utils.VersionUtils; - -import androidx.annotation.StringRes; - -public abstract class CoreSplashActivity extends CoreBaseActivity { - private static final int SPLASH_DELAY = 1500; - - private static Handler mainThreadHandler = new Handler(Looper.getMainLooper()); - - @Override - protected void onCreate(Bundle savedInstanceState) { - requestWindowFeature(Window.FEATURE_ACTION_BAR); - super.onCreate(savedInstanceState); - if (getSupportActionBar() != null) { - getSupportActionBar().hide(); - } - - setContentView(R.layout.activity_splash); - - TextView appNameTextView = _findViewById(R.id.text_splash_app_title); - TextView versionTextView = _findViewById(R.id.text_splash_app_version); - - appNameTextView.setText(getAppName()); - versionTextView.setText(getString(R.string.splash_app_version, VersionUtils.getAppVersionName())); - } - - protected abstract String getAppName(); - - protected abstract void proceedToTheNextActivity(); - - protected boolean sampleConfigIsCorrect() { - return CoreApp.getInstance().getQbConfigs() != null; - } - - protected void proceedToTheNextActivityWithDelay() { - mainThreadHandler.postDelayed(new Runnable() { - @Override - public void run() { - proceedToTheNextActivity(); - } - }, SPLASH_DELAY); - } - - protected boolean checkConfigsWithSnackebarError() { - if (!sampleConfigIsCorrect()) { - showSnackbarErrorParsingConfigs(); - return false; - } - - return true; - } - - @Override - protected void showSnackbarError(View rootLayout, @StringRes int resId, QBResponseException e, View.OnClickListener clickListener) { - rootLayout = findViewById(R.id.layout_root); - ErrorUtils.showSnackbar(rootLayout, resId, e, R.string.dlg_retry, clickListener); - } - - protected void showSnackbarErrorParsingConfigs() { - ErrorUtils.showSnackbar(findViewById(R.id.layout_root), R.string.error_parsing_configs, R.string.dlg_ok, null); - } - - protected boolean checkSignIn() { - return QBSessionManager.getInstance().getSessionParameters() != null; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/adapter/BaseListAdapter.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/adapter/BaseListAdapter.java deleted file mode 100644 index 89dc1434b..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/adapter/BaseListAdapter.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.quickblox.sample.core.ui.adapter; - -import android.content.Context; -import android.view.LayoutInflater; -import android.widget.BaseAdapter; - -import java.util.ArrayList; -import java.util.List; - -public abstract class BaseListAdapter extends BaseAdapter { - - protected LayoutInflater inflater; - protected Context context; - protected List objectsList; - - public BaseListAdapter(Context context) { - this(context, new ArrayList()); - } - - public BaseListAdapter(Context context, List objectsList) { - this.context = context; - this.objectsList = objectsList; - this.inflater = LayoutInflater.from(context); - } - - @Override - public int getCount() { - return objectsList.size(); - } - - @Override - public T getItem(int position) { - return objectsList.get(position); - } - - @Override - public long getItemId(int position) { - return position; - } - - public void updateList(List newData) { - objectsList = newData; - notifyDataSetChanged(); - } - - public void add(T item) { - objectsList.add(item); - notifyDataSetChanged(); - } - - public void addList(List items) { - objectsList.addAll(0, items); - notifyDataSetChanged(); - } - - public List getList() { - return objectsList; - } - - public void remove(T item) { - objectsList.remove(item); - notifyDataSetChanged(); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/adapter/BaseSelectableListAdapter.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/adapter/BaseSelectableListAdapter.java deleted file mode 100644 index 3b27e7ce8..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/adapter/BaseSelectableListAdapter.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.quickblox.sample.core.ui.adapter; - -import android.content.Context; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -public abstract class BaseSelectableListAdapter extends BaseListAdapter { - - protected List selectedItems; - - public BaseSelectableListAdapter(Context context, List objectsList) { - super(context, objectsList); - selectedItems = new ArrayList<>(); - } - - public void toggleSelection(int position) { - T item = getItem(position); - toggleSelection(item); - } - - public void toggleSelection(T item) { - if (selectedItems.contains(item)) { - selectedItems.remove(item); - } else { - selectedItems.add(item); - } - notifyDataSetChanged(); - } - - public void selectItem(int position) { - T item = getItem(position); - selectItem(item); - } - - public void selectItem(T item) { - if (selectedItems.contains(item)) { - return; - } - selectedItems.add(item); - notifyDataSetChanged(); - } - - public Collection getSelectedItems() { - return selectedItems; - } - - protected boolean isItemSelected(int position) { - return !selectedItems.isEmpty() && selectedItems.contains(getItem(position)); - } - - public void clearSelection() { - selectedItems.clear(); - notifyDataSetChanged(); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/dialog/ProgressDialogFragment.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/dialog/ProgressDialogFragment.java deleted file mode 100644 index dc37acfdd..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/ui/dialog/ProgressDialogFragment.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.quickblox.sample.core.ui.dialog; - -import android.app.Dialog; -import android.app.ProgressDialog; -import android.content.DialogInterface; -import android.os.Bundle; -import android.util.Log; -import android.view.KeyEvent; - -import com.quickblox.sample.core.R; - -import androidx.annotation.NonNull; -import androidx.annotation.StringRes; -import androidx.fragment.app.DialogFragment; -import androidx.fragment.app.FragmentManager; - -public class ProgressDialogFragment extends DialogFragment { - - private static final String TAG = ProgressDialogFragment.class.getSimpleName(); - private static final String ARG_MESSAGE_ID = "message_id"; - - public static void show(FragmentManager fm) { - show(fm, R.string.dlg_loading); - } - - public static void show(FragmentManager fm, @StringRes int messageId) { - // We're not using dialogFragment.show() method because we may call this DialogFragment - // in onActivityResult() method and there will be a state loss exception - Log.d(TAG, "show"); - if (fm.findFragmentByTag(TAG) == null) { - Log.d(TAG, "fm.findFragmentByTag(TAG) == null"); - fm.beginTransaction().add(newInstance(messageId), TAG).commitAllowingStateLoss(); - } - Log.d(TAG, "backstack = " + fm.getFragments()); - } - - public static void hide(FragmentManager fm) { - DialogFragment fragment = (DialogFragment) fm.findFragmentByTag(TAG); - if (fragment != null) { - fm.beginTransaction().remove(fragment).commitAllowingStateLoss(); - Log.d(TAG, "fm.beginTransaction().remove(fragment)" + fragment); - } - Log.d(TAG, "backstack = " + fm.getFragments()); - } - - public static ProgressDialogFragment newInstance(@StringRes int messageId) { - Bundle args = new Bundle(); - args.putInt(ARG_MESSAGE_ID, messageId); - - ProgressDialogFragment dialog = new ProgressDialogFragment(); - dialog.setArguments(args); - Log.d(TAG, "newInstance = " + dialog); - return dialog; - } - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - ProgressDialog dialog = new ProgressDialog(getActivity()); - dialog.setMessage(getString(getArguments().getInt(ARG_MESSAGE_ID))); - dialog.setIndeterminate(true); - dialog.setCancelable(false); - dialog.setCanceledOnTouchOutside(false); - - // Disable the back button - DialogInterface.OnKeyListener keyListener = new DialogInterface.OnKeyListener() { - @Override - public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - return keyCode == KeyEvent.KEYCODE_BACK; - } - }; - dialog.setOnKeyListener(keyListener); - - return dialog; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ActivityLifecycle.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ActivityLifecycle.java deleted file mode 100644 index ef3afd159..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ActivityLifecycle.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.app.Activity; -import android.app.Application; -import android.os.Bundle; - -public class ActivityLifecycle implements Application.ActivityLifecycleCallbacks { - - private static ActivityLifecycle instance; - - private boolean foreground = false; - - public static void init(Application app) { - if (instance == null) { - instance = new ActivityLifecycle(); - app.registerActivityLifecycleCallbacks(instance); - } - } - - private ActivityLifecycle() { - } - - public static synchronized ActivityLifecycle getInstance() { - return instance; - } - - public boolean isForeground() { - return foreground; - } - - public boolean isBackground() { - return !foreground; - } - - @Override - public void onActivityCreated(Activity activity, Bundle savedInstanceState) { - - } - - @Override - public void onActivityStarted(Activity activity) { - - } - - @Override - public void onActivityResumed(Activity activity) { - foreground = true; - } - - @Override - public void onActivityPaused(Activity activity) { - foreground = false; - } - - @Override - public void onActivityStopped(Activity activity) { - - } - - @Override - public void onActivitySaveInstanceState(Activity activity, Bundle outState) { - - } - - @Override - public void onActivityDestroyed(Activity activity) { - - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/AssetsUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/AssetsUtils.java deleted file mode 100644 index 9f8155d69..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/AssetsUtils.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.Context; -import android.content.res.AssetManager; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; - -public class AssetsUtils { - - public static String getJsonAsString(String filename, Context context) throws IOException { - AssetManager manager = context.getAssets(); - StringBuilder buf = new StringBuilder(); - InputStream json = manager.open(filename); - BufferedReader in = new BufferedReader(new InputStreamReader(json, "UTF-8")); - String str; - - while ((str = in.readLine()) != null) { - buf.append(str); - } - - in.close(); - - return buf.toString(); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ConnectivityUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ConnectivityUtils.java deleted file mode 100644 index 2504d88f8..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ConnectivityUtils.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.Context; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; - -import com.quickblox.sample.core.CoreApp; - -public class ConnectivityUtils { - - public static boolean isNetworkConnected() { - ConnectivityManager connectivityManager = (ConnectivityManager) CoreApp.getInstance().getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo wifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); - NetworkInfo mobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); - NetworkInfo bluetooth = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_BLUETOOTH); - NetworkInfo wimax = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIMAX); - - if (wifi == null && mobile == null && bluetooth == null && wimax == null) { - return false; - } - - if (wifi != null && wifi.isConnected()) { - return true; - } - - if (mobile != null && mobile.isConnected()) { - return true; - } - - if (bluetooth != null && bluetooth.isConnected()) { - return true; - } - - if (wimax != null && wimax.isConnected()) { - return true; - } - - return false; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/DeviceUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/DeviceUtils.java deleted file mode 100644 index 9b0aee633..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/DeviceUtils.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.ContentResolver; -import android.content.Context; -import android.provider.Settings; -import android.telephony.TelephonyManager; -import android.text.TextUtils; - -import com.quickblox.sample.core.CoreApp; - -public class DeviceUtils { - - public static String getDeviceUid() { - Context context = CoreApp.getInstance(); - TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); - String uniqueDeviceId = telephonyManager.getDeviceId(); - if (TextUtils.isEmpty(uniqueDeviceId)) { - // for tablets - ContentResolver cr = context.getContentResolver(); - uniqueDeviceId = Settings.Secure.getString(cr, Settings.Secure.ANDROID_ID); - } - - return uniqueDeviceId; - } - -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/DialogUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/DialogUtils.java deleted file mode 100644 index 8288a7971..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/DialogUtils.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.app.Dialog; -import android.app.ProgressDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.view.View; - -import com.quickblox.sample.core.R; - -import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; - -public class DialogUtils { - - public static ProgressDialog getProgressDialog(Context context) { - ProgressDialog progressDialog = new ProgressDialog(context); - progressDialog.setCancelable(false); - progressDialog.setMax(100); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setMessage(context.getString(R.string.please_wait)); - return progressDialog; - } - - public static Dialog createDialog(Context context, - @StringRes int titleId, @StringRes int messageId, View view, - DialogInterface.OnClickListener positiveClickListener, - DialogInterface.OnClickListener negativeClickListener) { - AlertDialog.Builder builder = new AlertDialog.Builder(context); - builder.setTitle(titleId); - builder.setMessage(messageId); - builder.setView(view); - builder.setPositiveButton(R.string.dlg_ok, positiveClickListener); - builder.setNegativeButton(R.string.dlg_cancel, negativeClickListener); - - return builder.create(); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ErrorUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ErrorUtils.java deleted file mode 100644 index 044d23e48..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ErrorUtils.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.Context; -import android.os.Handler; -import android.os.Looper; -import android.view.View; - -import com.google.android.material.snackbar.Snackbar; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.R; - -import java.util.List; - -import androidx.annotation.StringRes; -import androidx.appcompat.app.AlertDialog; - -public class ErrorUtils { - - private static final String NO_CONNECTION_ERROR = "Connection failed. Please check your internet connection."; - private static final String NO_RESPONSE_TIMEOUT = "No response received within reply timeout."; - private static Handler mainThreadHandler = new Handler(Looper.getMainLooper()); - - private ErrorUtils() { - } - - public static Snackbar showSnackbar(View view, @StringRes int errorMessage, Exception e, - @StringRes int actionLabel, View.OnClickListener clickListener) { - String error = (e == null) ? "" : e.getMessage(); - boolean noConnection = NO_CONNECTION_ERROR.equals(error); - boolean timeout = error.startsWith(NO_RESPONSE_TIMEOUT); - if (noConnection || timeout) { - return showSnackbar(view, R.string.no_internet_connection, actionLabel, clickListener); - } else if (errorMessage == 0) { - return showSnackbar(view, error, actionLabel, clickListener); - } else if (error.equals("")) { - return showSnackbar(view, errorMessage, CoreApp.getInstance().getString(R.string.no_internet_connection), actionLabel, clickListener); - } else { - return showSnackbar(view, errorMessage, error, actionLabel, clickListener); - } - } - - public static Snackbar showSnackbar(View view, @StringRes int errorMessage, String error, - @StringRes int actionLabel, View.OnClickListener clickListener) { - String errorMessageString = CoreApp.getInstance().getString(errorMessage); - String message = String.format("%s: %s", errorMessageString, error); - return showSnackbar(view, message, actionLabel, clickListener); - } - - public static Snackbar showSnackbar(View view, @StringRes int message, - @StringRes int actionLabel, - View.OnClickListener clickListener) { - Snackbar snackbar = Snackbar.make(view, message, Snackbar.LENGTH_INDEFINITE); - snackbar.setAction(actionLabel, clickListener); - snackbar.show(); - return snackbar; - } - - private static Snackbar showSnackbar(View view, String message, - @StringRes int actionLabel, - View.OnClickListener clickListener) { - Snackbar snackbar = Snackbar.make(view, message.trim(), Snackbar.LENGTH_INDEFINITE); - if (clickListener != null) { - snackbar.setAction(actionLabel, clickListener); - } - snackbar.show(); - return snackbar; - } - - public static void showErrorToast(QBResponseException exception) { - Toaster.shortToast(String.format("[ERROR] Request has been completed with errors: %s", exception.getErrors() - + ", code: " + exception.getHttpStatusCode())); - } - - public static void showErrorDialog(Context context, @StringRes int errorMessage, String error) { - showErrorDialog(context, context.getString(errorMessage), error); - } - - public static void showErrorDialog(Context context, @StringRes int errorMessage, List errors) { - showErrorDialog(context, context.getString(errorMessage), errors.toString()); - } - - private static void showErrorDialog(Context context, String errorMessage, String error) { - showErrorDialog(context, String.format("%s: %s", errorMessage, error)); - } - - private static void showErrorDialog(final Context context, final String errorMessage) { - mainThreadHandler.post(new Runnable() { - @Override - public void run() { - new AlertDialog.Builder(context) - .setTitle(R.string.dlg_error) - .setMessage(errorMessage) - .create() - .show(); - } - }); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ImageUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ImageUtils.java deleted file mode 100644 index e8a99ccac..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ImageUtils.java +++ /dev/null @@ -1,148 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.os.Build; -import android.os.ParcelFileDescriptor; -import android.provider.MediaStore; - -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.R; -import com.quickblox.sample.core.utils.constant.MimeType; - -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.FileDescriptor; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import androidx.core.content.FileProvider; -import androidx.fragment.app.Fragment; - -public class ImageUtils { - - public static final int GALLERY_REQUEST_CODE = 183; - public static final int CAMERA_REQUEST_CODE = 212; - - private static final String CAMERA_FILE_NAME_PREFIX = "CAMERA_"; - - private ImageUtils() { - } - - public static String saveUriToFile(Uri uri) throws Exception { - ParcelFileDescriptor parcelFileDescriptor = CoreApp.getInstance().getContentResolver().openFileDescriptor(uri, "r"); - FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor(); - - InputStream inputStream = new FileInputStream(fileDescriptor); - BufferedInputStream bis = new BufferedInputStream(inputStream); - - File parentDir = StorageUtils.getAppExternalDataDirectoryFile(); - String fileName = String.valueOf(System.currentTimeMillis()) + ".jpg"; - File resultFile = new File(parentDir, fileName); - - BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(resultFile)); - - byte[] buf = new byte[2048]; - int length; - - try { - while ((length = bis.read(buf)) > 0) { - bos.write(buf, 0, length); - } - } catch (Exception e) { - throw new IOException("Can\'t save Storage API bitmap to a file!", e); - } finally { - parcelFileDescriptor.close(); - bis.close(); - bos.close(); - } - - return resultFile.getAbsolutePath(); - } - - public static void startImagePicker(Activity activity) { - Intent intent = new Intent(Intent.ACTION_GET_CONTENT); - intent.setType(MimeType.IMAGE_MIME); - activity.startActivityForResult(Intent.createChooser(intent, activity.getString(R.string.dlg_choose_image_from)), GALLERY_REQUEST_CODE); - } - - public static void startImagePicker(Fragment fragment) { - Intent intent = new Intent(Intent.ACTION_GET_CONTENT); - intent.setType(MimeType.IMAGE_MIME); - fragment.startActivityForResult(Intent.createChooser(intent, fragment.getString(R.string.dlg_choose_image_from)), GALLERY_REQUEST_CODE); - } - - public static void startCameraForResult(Activity activity) { - Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - if (intent.resolveActivity(activity.getPackageManager()) == null) { - return; - } - - File photoFile = getTemporaryCameraFile(); - intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photoFile)); - activity.startActivityForResult(intent, CAMERA_REQUEST_CODE); - } - - public static void startCameraForResult(Fragment fragment) { - Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - if (intent.resolveActivity(CoreApp.getInstance().getPackageManager()) == null) { - return; - } - - File photoFile = getTemporaryCameraFile(); - intent.putExtra(MediaStore.EXTRA_OUTPUT, getValidUri(photoFile, fragment.getContext())); - fragment.startActivityForResult(intent, CAMERA_REQUEST_CODE); - } - - public static File getTemporaryCameraFile() { - File storageDir = StorageUtils.getAppExternalDataDirectoryFile(); - File file = new File(storageDir, getTemporaryCameraFileName()); - try { - file.createNewFile(); - } catch (IOException e) { - e.printStackTrace(); - } - return file; - } - - public static File getLastUsedCameraFile() { - File dataDir = StorageUtils.getAppExternalDataDirectoryFile(); - File[] files = dataDir.listFiles(); - List filteredFiles = new ArrayList<>(); - for (File file : files) { - if (file.getName().startsWith(CAMERA_FILE_NAME_PREFIX)) { - filteredFiles.add(file); - } - } - - Collections.sort(filteredFiles); - if (!filteredFiles.isEmpty()) { - return filteredFiles.get(filteredFiles.size() - 1); - } else { - return null; - } - } - - private static Uri getValidUri(File file, Context context) { - Uri outputUri; - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - String authority = context.getPackageName() + ".provider"; - outputUri = FileProvider.getUriForFile(context, authority, file); - } else { - outputUri = Uri.fromFile(file); - } - return outputUri; - } - - private static String getTemporaryCameraFileName() { - return CAMERA_FILE_NAME_PREFIX + System.currentTimeMillis() + ".jpg"; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/KeyboardUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/KeyboardUtils.java deleted file mode 100644 index f9d1cc804..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/KeyboardUtils.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.Context; -import android.view.inputmethod.InputMethodManager; -import android.widget.EditText; - -import com.quickblox.sample.core.CoreApp; - -public class KeyboardUtils { - - public static void showKeyboard(EditText editText) { - InputMethodManager imm = (InputMethodManager) CoreApp.getInstance().getSystemService(Context.INPUT_METHOD_SERVICE); - if (imm != null) { - imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); - } - } - - public static void hideKeyboard(EditText editText) { - InputMethodManager imm = (InputMethodManager) CoreApp.getInstance().getSystemService(Context.INPUT_METHOD_SERVICE); - if (imm != null) { - imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); - } - } - -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/NotificationUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/NotificationUtils.java deleted file mode 100644 index c5bf034b9..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/NotificationUtils.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.app.Activity; -import android.app.Notification; -import android.app.NotificationChannel; -import android.app.NotificationManager; -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.graphics.Color; -import android.media.RingtoneManager; -import android.net.Uri; -import android.os.Build; - -import com.quickblox.sample.core.utils.constant.GcmConsts; - -import androidx.annotation.DrawableRes; -import androidx.annotation.RequiresApi; -import androidx.core.app.NotificationCompat; - -public class NotificationUtils { - private static final String CHANNEL_ONE_ID = "com.quickblox.samples.ONE";// The id of the channel. - private static final String CHANNEL_ONE_NAME = "Channel One"; - - public static void showNotification(Context context, Class activityClass, - String title, String message, @DrawableRes int icon, - int notificationId) { - NotificationManager notificationManager = - (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - createChannelIfNotExist(notificationManager); - } - Notification notification = buildNotification(context, activityClass, title, message, icon); - - notificationManager.notify(notificationId, notification); - } - - @RequiresApi(api = Build.VERSION_CODES.O) - private static void createChannelIfNotExist(NotificationManager notificationManager) { - if (notificationManager.getNotificationChannel(CHANNEL_ONE_ID) == null) { - int importance = NotificationManager.IMPORTANCE_HIGH; - NotificationChannel notificationChannel = new NotificationChannel(CHANNEL_ONE_ID, - CHANNEL_ONE_NAME, importance); - notificationChannel.enableLights(true); - notificationChannel.setLightColor(Color.BLUE); - notificationChannel.setShowBadge(true); - notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); - notificationManager.createNotificationChannel(notificationChannel); - } - } - - private static Notification buildNotification(Context context, Class activityClass, - String title, String message, @DrawableRes int icon) { - Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); - - return new NotificationCompat.Builder(context, CHANNEL_ONE_ID) - .setSmallIcon(icon) - .setContentTitle(title) - .setContentText(message) - .setAutoCancel(true) - .setSound(defaultSoundUri) - .setContentIntent(buildContentIntent(context, activityClass, message)) - .build(); - } - - private static PendingIntent buildContentIntent(Context context, Class activityClass, String message) { - Intent intent = new Intent(context, activityClass); - intent.putExtra(GcmConsts.EXTRA_GCM_MESSAGE, message); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ResourceUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ResourceUtils.java deleted file mode 100644 index 4949b5969..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/ResourceUtils.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.res.Resources; -import android.graphics.drawable.Drawable; - -import com.quickblox.sample.core.CoreApp; - -import androidx.annotation.ColorRes; -import androidx.annotation.DimenRes; -import androidx.annotation.DrawableRes; -import androidx.annotation.StringRes; - -public class ResourceUtils { - - public static String getString(@StringRes int stringId) { - return CoreApp.getInstance().getString(stringId); - } - - public static Drawable getDrawable(@DrawableRes int drawableId) { - return CoreApp.getInstance().getResources().getDrawable(drawableId); - } - - public static int getColor(@ColorRes int colorId) { - return CoreApp.getInstance().getResources().getColor(colorId); - } - - public static int getDimen(@DimenRes int dimenId) { - return (int) CoreApp.getInstance().getResources().getDimension(dimenId); - } - - public static int dpToPx(int dp) { - return (int) (dp * Resources.getSystem().getDisplayMetrics().density); - } - - public static int pxToDp(int px) { - return (int) (px / Resources.getSystem().getDisplayMetrics().density); - } - -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/SharedPrefsHelper.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/SharedPrefsHelper.java deleted file mode 100644 index aa71575a1..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/SharedPrefsHelper.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.Context; -import android.content.SharedPreferences; - -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.sample.core.CoreApp; -import com.quickblox.users.model.QBUser; - -public class SharedPrefsHelper { - private static final String SHARED_PREFS_NAME = "qb"; - - private static final String QB_USER_ID = "qb_user_id"; - private static final String QB_USER_LOGIN = "qb_user_login"; - private static final String QB_USER_PASSWORD = "qb_user_password"; - private static final String QB_USER_FULL_NAME = "qb_user_full_name"; - private static final String QB_USER_TAGS = "qb_user_tags"; - - private static SharedPrefsHelper instance; - - private SharedPreferences sharedPreferences; - - public static synchronized SharedPrefsHelper getInstance() { - if (instance == null) { - instance = new SharedPrefsHelper(); - } - - return instance; - } - - private SharedPrefsHelper() { - instance = this; - sharedPreferences = CoreApp.getInstance().getSharedPreferences(SHARED_PREFS_NAME, Context.MODE_PRIVATE); - } - - public void delete(String key) { - if (sharedPreferences.contains(key)) { - getEditor().remove(key).commit(); - } - } - - public void save(String key, Object value) { - SharedPreferences.Editor editor = getEditor(); - if (value instanceof Boolean) { - editor.putBoolean(key, (Boolean) value); - } else if (value instanceof Integer) { - editor.putInt(key, (Integer) value); - } else if (value instanceof Float) { - editor.putFloat(key, (Float) value); - } else if (value instanceof Long) { - editor.putLong(key, (Long) value); - } else if (value instanceof String) { - editor.putString(key, (String) value); - } else if (value instanceof Enum) { - editor.putString(key, value.toString()); - } else if (value != null) { - throw new RuntimeException("Attempting to save non-supported preference"); - } - - editor.commit(); - } - - @SuppressWarnings("unchecked") - public T get(String key) { - return (T) sharedPreferences.getAll().get(key); - } - - @SuppressWarnings("unchecked") - public T get(String key, T defValue) { - T returnValue = (T) sharedPreferences.getAll().get(key); - return returnValue == null ? defValue : returnValue; - } - - public boolean has(String key) { - return sharedPreferences.contains(key); - } - - - public void saveQbUser(QBUser qbUser) { - save(QB_USER_ID, qbUser.getId()); - save(QB_USER_LOGIN, qbUser.getLogin()); - save(QB_USER_PASSWORD, qbUser.getPassword()); - save(QB_USER_FULL_NAME, qbUser.getFullName()); - save(QB_USER_TAGS, qbUser.getTags().getItemsAsString()); - } - - public void removeQbUser() { - delete(QB_USER_ID); - delete(QB_USER_LOGIN); - delete(QB_USER_PASSWORD); - delete(QB_USER_FULL_NAME); - delete(QB_USER_TAGS); - } - - public QBUser getQbUser() { - if (hasQbUser()) { - Integer id = get(QB_USER_ID); - String login = get(QB_USER_LOGIN); - String password = get(QB_USER_PASSWORD); - String fullName = get(QB_USER_FULL_NAME); - String tagsInString = get(QB_USER_TAGS); - - StringifyArrayList tags = null; - - if (tagsInString != null) { - tags = new StringifyArrayList<>(); - tags.add(tagsInString.split(",")); - } - - QBUser user = new QBUser(login, password); - user.setId(id); - user.setFullName(fullName); - user.setTags(tags); - return user; - } else { - return null; - } - } - - public boolean hasQbUser() { - return has(QB_USER_LOGIN) && has(QB_USER_PASSWORD); - } - - public void clearAllData() { - SharedPreferences.Editor editor = getEditor(); - editor.clear().commit(); - } - - private SharedPreferences.Editor getEditor() { - return sharedPreferences.edit(); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/StorageUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/StorageUtils.java deleted file mode 100644 index dfaf525ff..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/StorageUtils.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.os.Environment; - -import com.quickblox.sample.core.CoreApp; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.ObjectInputStream; -import java.io.ObjectOutputStream; - -public class StorageUtils { - - public static String getAppExternalDataDirectoryPath() { - StringBuilder sb = new StringBuilder(); - sb.append(Environment.getExternalStorageDirectory()) - .append(File.separator) - .append("Android") - .append(File.separator) - .append("data") - .append(File.separator) - .append(CoreApp.getInstance().getPackageName()) - .append(File.separator); - - return sb.toString(); - } - - public static File getAppExternalDataDirectoryFile() { - File dataDirectoryFile = new File(getAppExternalDataDirectoryPath()); - dataDirectoryFile.mkdirs(); - - return dataDirectoryFile; - } - - public static void writeStringToFile(String string, File file) { - FileOutputStream fos = null; - try { - fos = new FileOutputStream(file); - fos.write(string.getBytes()); - } catch (IOException e) { - e.printStackTrace(); - } finally { - if (fos != null) { - try { - fos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - } - - public static void writeObjectToFile(Object object, File file) { - ObjectOutputStream oos = null; - try { - FileOutputStream fos = new FileOutputStream(file); - oos = new ObjectOutputStream(fos); - oos.writeObject(object); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (oos != null) { - oos.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - @SuppressWarnings("unchecked") - public static T readObjectFromFile(File file) { - ObjectInputStream ois = null; - T object = null; - try { - FileInputStream fis = new FileInputStream(file); - ois = new ObjectInputStream(fis); - object = (T) ois.readObject(); - } catch (ClassNotFoundException | IOException e) { - e.printStackTrace(); - } finally { - if (ois != null) { - try { - ois.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - return object; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/SystemPermissionHelper.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/SystemPermissionHelper.java deleted file mode 100644 index 450caaf58..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/SystemPermissionHelper.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.Manifest; -import android.app.Activity; -import android.content.pm.PackageManager; - -import java.util.ArrayList; - -import androidx.core.app.ActivityCompat; -import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; - -public class SystemPermissionHelper { - public static final int PERMISSIONS_FOR_SAVE_FILE_IMAGE_REQUEST = 1; - public static final int PERMISSIONS_FOR_TAKE_PHOTO_REQUEST = 2; - public static final int PERMISSIONS_FOR_CALL_REQUEST = 3; - - private Activity activity; - private Fragment fragment; - - public SystemPermissionHelper(Activity activity) { - this.activity = activity; - } - - public SystemPermissionHelper(Fragment fragment) { - this.fragment = fragment; - } - - public boolean isSaveImagePermissionGranted() { - return isPermissionGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE); - } - - public boolean isCameraPermissionGranted() { - return isPermissionGranted(Manifest.permission.CAMERA); - } - - public boolean isCallPermissionsGranted() { - return isPermissionGranted(Manifest.permission.RECORD_AUDIO) && isPermissionGranted(Manifest.permission.CAMERA); - } - - private boolean isPermissionGranted(String permission) { - if (fragment != null) { - return ContextCompat.checkSelfPermission(fragment.getContext(), permission) == PackageManager.PERMISSION_GRANTED; - } else { - return ContextCompat.checkSelfPermission(activity.getApplicationContext(), permission) == PackageManager.PERMISSION_GRANTED; - } - } - - public void requestPermissionsForCallByType() { - checkAndRequestPermissions(PERMISSIONS_FOR_CALL_REQUEST, Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA); - } - - public void requestPermissionsForSaveFileImage() { - checkAndRequestPermissions(PERMISSIONS_FOR_SAVE_FILE_IMAGE_REQUEST, Manifest.permission.WRITE_EXTERNAL_STORAGE); - } - - public void requestPermissionsTakePhoto() { - checkAndRequestPermissions(PERMISSIONS_FOR_TAKE_PHOTO_REQUEST, Manifest.permission.CAMERA); - } - - private void checkAndRequestPermissions(int requestCode, String... permissions) { - if (collectDeniedPermissions(permissions).length > 0) { - requestPermissions(requestCode, collectDeniedPermissions(permissions)); - } - } - - private String[] collectDeniedPermissions(String... permissions) { - ArrayList deniedPermissionsList = new ArrayList<>(); - for (String permission : permissions) { - if (!isPermissionGranted(permission)) { - deniedPermissionsList.add(permission); - } - } - - return deniedPermissionsList.toArray(new String[deniedPermissionsList.size()]); - } - - private void requestPermissions(int requestCode, String... permissions) { - if (fragment != null) { - fragment.requestPermissions(permissions, requestCode); - } else { - ActivityCompat.requestPermissions(activity, permissions, requestCode); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/Toaster.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/Toaster.java deleted file mode 100644 index 6a4f870fa..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/Toaster.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.graphics.Rect; -import android.util.DisplayMetrics; -import android.view.Gravity; -import android.view.View; -import android.view.Window; -import android.widget.Toast; - -import com.quickblox.sample.core.CoreApp; - -import androidx.annotation.IntDef; -import androidx.annotation.StringRes; - -public class Toaster { - - @IntDef({Toast.LENGTH_LONG, Toast.LENGTH_SHORT}) - private @interface ToastLength { - } - - public static void shortToast(View view, Window window, @StringRes int text) { - Toast toast = makeToast(CoreApp.getInstance().getString(text), Toast.LENGTH_SHORT); - - Rect rect = new Rect(); - window.getDecorView().getWindowVisibleDisplayFrame(rect); - int[] viewLocation = new int[2]; - view.getLocationInWindow(viewLocation); - int viewLeft = viewLocation[0] - rect.left; - int viewTop = viewLocation[1] - rect.top; - - DisplayMetrics metrics = new DisplayMetrics(); - window.getWindowManager().getDefaultDisplay().getMetrics(metrics); - - int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(metrics.widthPixels, View.MeasureSpec.UNSPECIFIED); - int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(metrics.heightPixels, View.MeasureSpec.UNSPECIFIED); - toast.getView().measure(widthMeasureSpec, heightMeasureSpec); - - int toastY = viewTop + view.getHeight(); - - toast.setGravity(Gravity.TOP | Gravity.CENTER_VERTICAL, 0, toastY); - toast.show(); - } - - public static void shortToast(@StringRes int text) { - shortToast(CoreApp.getInstance().getString(text)); - } - - public static void shortToast(String text) { - show(text, Toast.LENGTH_SHORT); - } - - public static void longToast(@StringRes int text) { - longToast(CoreApp.getInstance().getString(text)); - } - - public static void longToast(String text) { - show(text, Toast.LENGTH_LONG); - } - - private static Toast makeToast(String text, @ToastLength int length) { - return Toast.makeText(CoreApp.getInstance(), text, length); - } - - private static void show(String text, @ToastLength int length) { - makeToast(text, length).show(); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/UiUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/UiUtils.java deleted file mode 100644 index f10c4f77c..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/UiUtils.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.graphics.Color; -import android.graphics.drawable.Drawable; -import android.graphics.drawable.GradientDrawable; - -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.R; - -import java.util.HashMap; -import java.util.Map; -import java.util.Random; - -import androidx.annotation.ColorInt; -import androidx.annotation.IntRange; - -public class UiUtils { - - private static final int RANDOM_COLOR_START_RANGE = 0; - private static final int RANDOM_COLOR_END_RANGE = 9; - - private static final int COLOR_MAX_VALUE = 255; - private static final float COLOR_ALPHA = 0.8f; - private static Map colorsMap = new HashMap<>(); - - private static final Random random = new Random(); - private static int previousColor; - - private UiUtils() { - } - - public static Drawable getGreyCircleDrawable() { - return getColoredCircleDrawable(ResourceUtils.getColor(R.color.color_grey)); - } - - public static Drawable getRandomColorCircleDrawable() { - return getColoredCircleDrawable(getRandomCircleColor()); - } - - public static Drawable getColorCircleDrawable(int colorPosition) { - return getColoredCircleDrawable(getCircleColor(colorPosition % RANDOM_COLOR_END_RANGE)); - } - - public static Drawable getColoredCircleDrawable(@ColorInt int color) { - GradientDrawable drawable = (GradientDrawable) ResourceUtils.getDrawable(R.drawable.shape_circle); - drawable.setColor(color); - return drawable; - } - - public static int getRandomCircleColor() { - int randomNumber = random.nextInt(RANDOM_COLOR_END_RANGE) + 1; - - int generatedColor = getCircleColor(randomNumber); - if (generatedColor != previousColor) { - previousColor = generatedColor; - return generatedColor; - } else { - do { - generatedColor = getRandomCircleColor(); - } while (generatedColor != previousColor); - } - return previousColor; - } - - public static int getCircleColor(@IntRange(from = RANDOM_COLOR_START_RANGE, to = RANDOM_COLOR_END_RANGE) - int colorPosition) { - String colorIdName = String.format("random_color_%d", colorPosition + 1); - int colorId = CoreApp.getInstance().getResources() - .getIdentifier(colorIdName, "color", CoreApp.getInstance().getPackageName()); - - return ResourceUtils.getColor(colorId); - } - - public static int getRandomTextColorById(Integer senderId) { - if (colorsMap.get(senderId) != null) { - return colorsMap.get(senderId); - } else { - int colorValue = getRandomColor(); - colorsMap.put(senderId, colorValue); - return colorsMap.get(senderId); - } - } - - public static int getRandomColor() { - float[] hsv = new float[3]; - int color = Color.argb(COLOR_MAX_VALUE, random.nextInt(COLOR_MAX_VALUE), random.nextInt( - COLOR_MAX_VALUE), random.nextInt(COLOR_MAX_VALUE)); - Color.colorToHSV(color, hsv); - hsv[2] *= COLOR_ALPHA; - color = Color.HSVToColor(hsv); - return color; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/VersionUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/VersionUtils.java deleted file mode 100644 index 65d761dfd..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/VersionUtils.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.quickblox.sample.core.utils; - -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; - -import com.quickblox.sample.core.CoreApp; - -public class VersionUtils { - - public static int getAppVersion() { - return getAppPackageInfo().versionCode; - } - - public static String getAppVersionName() { - return getAppPackageInfo().versionName; - } - - private static PackageInfo getAppPackageInfo() { - Context context = CoreApp.getInstance(); - try { - return context.getPackageManager().getPackageInfo(context.getPackageName(), 0); - } catch (PackageManager.NameNotFoundException e) { - // should never happen - throw new RuntimeException("Could not get package name: " + e); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/configs/ConfigParser.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/configs/ConfigParser.java deleted file mode 100644 index 68c3d722e..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/configs/ConfigParser.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.quickblox.sample.core.utils.configs; - -import android.content.Context; - -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.utils.AssetsUtils; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; - -public class ConfigParser { - - private Context context; - - public ConfigParser() { - context = CoreApp.getInstance().getApplicationContext(); - } - - public String getConfigsAsJsonString(String fileName) throws IOException { - return AssetsUtils.getJsonAsString(fileName, context); - } - - public JSONObject getConfigsAsJson(String fileName) throws IOException, JSONException { - return new JSONObject(getConfigsAsJsonString(fileName)); - } - - public String getConfigByName(JSONObject jsonObject, String fieldName) throws JSONException { - return jsonObject.getString(fieldName); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/configs/CoreConfigUtils.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/configs/CoreConfigUtils.java deleted file mode 100644 index 2177bc3d6..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/configs/CoreConfigUtils.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.quickblox.sample.core.utils.configs; - -import android.text.TextUtils; - -import com.google.gson.Gson; -import com.quickblox.sample.core.models.QbConfigs; -import com.quickblox.users.model.QBUser; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; - -public class CoreConfigUtils { - - public static final String USER_LOGIN_FIELD_NAME = "user_login"; - public static final String USER_PASSWORD_FIELD_NAME = "user_password"; - - public static QbConfigs getCoreConfigs(String fileName) throws IOException { - ConfigParser configParser = new ConfigParser(); - Gson gson = new Gson(); - return gson.fromJson(configParser.getConfigsAsJsonString(fileName), QbConfigs.class); - } - - public static QbConfigs getCoreConfigsOrNull(String fileName) { - QbConfigs qbConfigs = null; - - try { - qbConfigs = getCoreConfigs(fileName); - } catch (IOException e) { - e.printStackTrace(); - } - - return qbConfigs; - } - - public static String getStringConfigFromFile(String fileName, String fieldName) throws IOException, JSONException { - JSONObject appConfigs = new ConfigParser().getConfigsAsJson(fileName); - return appConfigs.getString(fieldName); - } - - public static String getStringConfigFromFileOrNull(String fileName, String fieldName) { - String fieldValue = null; - - try { - fieldValue = getStringConfigFromFile(fileName, fieldName); - } catch (IOException | JSONException e) { - e.printStackTrace(); - } - - return fieldValue; - } - - public static boolean isStringConfigFromFileNotEmpty(String fileName, String fieldName) { - return !TextUtils.isEmpty(getStringConfigFromFileOrNull(fileName, fieldName)); - } - - public static QBUser getUserFromConfig(String fileName) { - QBUser qbUser = null; - - String userLogin; - String userPassword; - - try { - JSONObject configs = new ConfigParser().getConfigsAsJson(fileName); - userLogin = configs.getString(USER_LOGIN_FIELD_NAME); - userPassword = configs.getString(USER_PASSWORD_FIELD_NAME); - qbUser = new QBUser(userLogin, userPassword); - } catch (IOException | JSONException e) { - e.printStackTrace(); - } - - return qbUser; - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/GcmConsts.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/GcmConsts.java deleted file mode 100644 index 06a0e780b..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/GcmConsts.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.quickblox.sample.core.utils.constant; - -public interface GcmConsts { - String EXTRA_GCM_MESSAGE = "message"; - String ACTION_NEW_GCM_EVENT = "new-push-event"; - String EMPTY_GCM_MESSAGE = "empty message"; -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/MimeType.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/MimeType.java deleted file mode 100644 index f7fe76b3b..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/MimeType.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.quickblox.sample.core.utils.constant; - -public interface MimeType { - - String IMAGE_MIME = "image/*"; - String STREAM_MIME = "application/octet-stream"; -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/SchemeType.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/SchemeType.java deleted file mode 100644 index 7ebdd1e50..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/constant/SchemeType.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.quickblox.sample.core.utils.constant; - -public interface SchemeType { - - String SCHEME_CONTENT = "content"; - String SCHEME_CONTENT_GOOGLE = "content://com.google.android"; - String SCHEME_FILE = "file"; - -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/GetFilepathFromUriTask.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/GetFilepathFromUriTask.java deleted file mode 100644 index 803c9e967..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/GetFilepathFromUriTask.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.quickblox.sample.core.utils.imagepick; - -import android.content.Intent; -import android.database.Cursor; -import android.net.Uri; -import android.os.Build; -import android.provider.MediaStore; -import android.text.TextUtils; -import android.util.Log; - -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.async.BaseAsyncTask; -import com.quickblox.sample.core.ui.dialog.ProgressDialogFragment; -import com.quickblox.sample.core.utils.ImageUtils; -import com.quickblox.sample.core.utils.constant.SchemeType; - -import java.io.File; -import java.io.IOException; -import java.lang.ref.WeakReference; - -import androidx.fragment.app.FragmentManager; - -public class GetFilepathFromUriTask extends BaseAsyncTask { - - private WeakReference fmWeakReference; - private OnImagePickedListener listener; - private int requestCode; - - public GetFilepathFromUriTask(FragmentManager fm, OnImagePickedListener listener, int requestCode) { - this.fmWeakReference = new WeakReference<>(fm); - this.listener = listener; - this.requestCode = requestCode; - } - - @Override - protected void onPreExecute() { - super.onPreExecute(); - showProgress(); - } - - @Override - public File performInBackground(Intent... params) throws Exception { - Intent data = params[0]; - - String imageFilePath = null; - Uri uri = data.getData(); - String uriScheme = uri.getScheme(); - - boolean isFromGoogleApp = uri.toString().startsWith(SchemeType.SCHEME_CONTENT_GOOGLE); - boolean isKitKatAndUpper = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; - - if (SchemeType.SCHEME_CONTENT.equalsIgnoreCase(uriScheme) && !isFromGoogleApp && !isKitKatAndUpper) { - String[] filePathColumn = {MediaStore.Images.Media.DATA}; - Cursor cursor = CoreApp.getInstance().getContentResolver().query(uri, filePathColumn, null, null, null); - if (cursor != null) { - if (cursor.getCount() > 0) { - cursor.moveToFirst(); - int columnIndex = cursor.getColumnIndex(filePathColumn[0]); - imageFilePath = cursor.getString(columnIndex); - } - cursor.close(); - } - } else if (SchemeType.SCHEME_FILE.equalsIgnoreCase(uriScheme)) { - imageFilePath = uri.getPath(); - } else { - imageFilePath = ImageUtils.saveUriToFile(uri); - } - - if (TextUtils.isEmpty(imageFilePath)) { - throw new IOException("Can't find a filepath for URI " + uri.toString()); - } - - return new File(imageFilePath); - } - - @Override - public void onResult(File file) { - hideProgress(); - Log.w(GetFilepathFromUriTask.class.getSimpleName(), "onResult listener = " + listener); - if (listener != null) { - listener.onImagePicked(requestCode, file); - } - } - - @Override - public void onException(Exception e) { - hideProgress(); - Log.w(GetFilepathFromUriTask.class.getSimpleName(), "onException listener = " + listener); - if (listener != null) { - listener.onImagePickError(requestCode, e); - } - } - - private void showProgress() { - FragmentManager fm = fmWeakReference.get(); - if (fm != null) { - ProgressDialogFragment.show(fm); - } - } - - private void hideProgress() { - FragmentManager fm = fmWeakReference.get(); - if (fm != null) { - ProgressDialogFragment.hide(fm); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/ImagePickHelper.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/ImagePickHelper.java deleted file mode 100644 index 46b704350..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/ImagePickHelper.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.quickblox.sample.core.utils.imagepick; - -import com.quickblox.sample.core.utils.imagepick.fragment.ImagePickHelperFragment; -import com.quickblox.sample.core.utils.imagepick.fragment.ImageSourcePickDialogFragment; - -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - -public class ImagePickHelper { - - public void pickAnImage(Fragment fragment, int requestCode) { - ImagePickHelperFragment imagePickHelperFragment = ImagePickHelperFragment.start(fragment, requestCode); - showImageSourcePickerDialog(fragment.getChildFragmentManager(), imagePickHelperFragment); - } - - public void pickAnImage(FragmentActivity activity, int requestCode) { - ImagePickHelperFragment imagePickHelperFragment = ImagePickHelperFragment.start(activity, requestCode); - showImageSourcePickerDialog(activity.getSupportFragmentManager(), imagePickHelperFragment); - } - - private void showImageSourcePickerDialog(FragmentManager fm, ImagePickHelperFragment fragment) { - ImageSourcePickDialogFragment.show(fm, - new ImageSourcePickDialogFragment.LoggableActivityImageSourcePickedListener(fragment)); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/OnImagePickedListener.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/OnImagePickedListener.java deleted file mode 100644 index 312807dec..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/OnImagePickedListener.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.quickblox.sample.core.utils.imagepick; - -import java.io.File; - -public interface OnImagePickedListener { - - void onImagePicked(int requestCode, File file); - - void onImagePickError(int requestCode, Exception e); - - void onImagePickClosed(int requestCode); -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/fragment/ImagePickHelperFragment.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/fragment/ImagePickHelperFragment.java deleted file mode 100644 index 801b0038a..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/fragment/ImagePickHelperFragment.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.quickblox.sample.core.utils.imagepick.fragment; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; - -import com.quickblox.sample.core.utils.ImageUtils; -import com.quickblox.sample.core.utils.imagepick.GetFilepathFromUriTask; -import com.quickblox.sample.core.utils.imagepick.OnImagePickedListener; - -import androidx.appcompat.app.AppCompatActivity; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentActivity; -import androidx.fragment.app.FragmentManager; - -public class ImagePickHelperFragment extends Fragment { - - private static final String ARG_REQUEST_CODE = "requestCode"; - private static final String ARG_PARENT_FRAGMENT = "parentFragment"; - - private static final String TAG = ImagePickHelperFragment.class.getSimpleName(); - - private OnImagePickedListener listener; - - public static ImagePickHelperFragment start(Fragment fragment, int requestCode) { - Bundle args = new Bundle(); - args.putInt(ARG_REQUEST_CODE, requestCode); - args.putString(ARG_PARENT_FRAGMENT, fragment.getClass().getSimpleName()); - - return start(fragment.getActivity().getSupportFragmentManager(), args); - } - - public static ImagePickHelperFragment start(FragmentActivity activity, int requestCode) { - Bundle args = new Bundle(); - args.putInt(ARG_REQUEST_CODE, requestCode); - - return start(activity.getSupportFragmentManager(), args); - } - - private static ImagePickHelperFragment start(FragmentManager fm, Bundle args) { - ImagePickHelperFragment fragment = (ImagePickHelperFragment) fm.findFragmentByTag(TAG); - if (fragment == null) { - fragment = new ImagePickHelperFragment(); - fm.beginTransaction().add(fragment, TAG).commitAllowingStateLoss(); - fragment.setArguments(args); - } - return fragment; - } - - public static void stop(FragmentManager fm) { - Fragment fragment = fm.findFragmentByTag(TAG); - if (fragment != null) { - fm.beginTransaction().remove(fragment).commitAllowingStateLoss(); - } - } - - public ImagePickHelperFragment() { - } - - @Override - public void onAttach(Context context) { - super.onAttach(context); - Fragment fragment = ((AppCompatActivity) context).getSupportFragmentManager() - .findFragmentByTag(getArguments().getString(ARG_PARENT_FRAGMENT)); - if (fragment != null) { - if (fragment instanceof OnImagePickedListener) { - listener = (OnImagePickedListener) fragment; - } - } else { - if (context instanceof OnImagePickedListener) { - listener = (OnImagePickedListener) context; - } - } - - if (listener == null) { - throw new IllegalStateException("Either activity or fragment should implement OnImagePickedListener"); - } - } - - @Override - public void onDetach() { - super.onDetach(); - listener = null; - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (isResultFromImagePick(requestCode, resultCode, data)) { - if (requestCode == ImageUtils.CAMERA_REQUEST_CODE && (data == null || data.getData() == null)) { - // Hacky way to get EXTRA_OUTPUT param to work. - // When setting EXTRA_OUTPUT param in the camera intent there is a chance that data will return as null - // So we just pass temporary camera file as a data, because RESULT_OK means that photo was written in the file. - data = new Intent(); - data.setData(Uri.fromFile(ImageUtils.getLastUsedCameraFile())); - } - new GetFilepathFromUriTask(getChildFragmentManager(), listener, getArguments().getInt(ARG_REQUEST_CODE)).execute(data); - } else { - stop(getChildFragmentManager()); - if (listener != null) { - listener.onImagePickClosed(getArguments().getInt(ARG_REQUEST_CODE)); - } - } - } - - public void setListener(OnImagePickedListener listener) { - this.listener = listener; - } - - private boolean isResultFromImagePick(int requestCode, int resultCode, Intent data) { - return resultCode == Activity.RESULT_OK - && ((requestCode == ImageUtils.CAMERA_REQUEST_CODE) - || (requestCode == ImageUtils.GALLERY_REQUEST_CODE && data != null)); - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/fragment/ImageSourcePickDialogFragment.java b/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/fragment/ImageSourcePickDialogFragment.java deleted file mode 100644 index b0fba0f35..000000000 --- a/old_samples/sample-core/src/main/java/com/quickblox/sample/core/utils/imagepick/fragment/ImageSourcePickDialogFragment.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.quickblox.sample.core.utils.imagepick.fragment; - -import android.app.Activity; -import android.app.Dialog; -import android.content.DialogInterface; -import android.os.Bundle; - -import com.quickblox.sample.core.R; -import com.quickblox.sample.core.utils.ImageUtils; -import com.quickblox.sample.core.utils.SystemPermissionHelper; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AlertDialog; -import androidx.fragment.app.DialogFragment; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; - -public class ImageSourcePickDialogFragment extends DialogFragment { - - private static final int POSITION_GALLERY = 0; - private static final int POSITION_CAMERA = 1; - - private static SystemPermissionHelper systemPermissionHelper; - - private OnImageSourcePickedListener onImageSourcePickedListener; - - public ImageSourcePickDialogFragment() { - systemPermissionHelper = new SystemPermissionHelper(this); - } - - public static void show(FragmentManager fm, OnImageSourcePickedListener onImageSourcePickedListener) { - ImageSourcePickDialogFragment fragment = new ImageSourcePickDialogFragment(); - fragment.setOnImageSourcePickedListener(onImageSourcePickedListener); - fragment.show(fm, ImageSourcePickDialogFragment.class.getSimpleName()); - } - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setTitle(R.string.dlg_choose_image_from); - builder.setItems(R.array.dlg_image_pick, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (!systemPermissionHelper.isSaveImagePermissionGranted()) { - systemPermissionHelper.requestPermissionsForSaveFileImage(); - return; - } - switch (which) { - case POSITION_GALLERY: - onImageSourcePickedListener.onImageSourcePicked(ImageSource.GALLERY); - break; - case POSITION_CAMERA: - onImageSourcePickedListener.onImageSourcePicked(ImageSource.CAMERA); - break; - } - } - }); - - return builder.create(); - } - - public void setOnImageSourcePickedListener(OnImageSourcePickedListener onImageSourcePickedListener) { - this.onImageSourcePickedListener = onImageSourcePickedListener; - } - - public interface OnImageSourcePickedListener { - - void onImageSourcePicked(ImageSource source); - } - - public enum ImageSource { - GALLERY, - CAMERA - } - - public static class LoggableActivityImageSourcePickedListener implements OnImageSourcePickedListener { - - private Activity activity; - private Fragment fragment; - - public LoggableActivityImageSourcePickedListener(Activity activity) { - this.activity = activity; - } - - public LoggableActivityImageSourcePickedListener(Fragment fragment) { - this.fragment = fragment; - } - - @Override - public void onImageSourcePicked(ImageSource source) { - switch (source) { - case GALLERY: - if (fragment != null) { - ImageUtils.startImagePicker(fragment); - } else { - ImageUtils.startImagePicker(activity); - } - break; - case CAMERA: - if (fragment != null) { - ImageUtils.startCameraForResult(fragment); - } else { - ImageUtils.startCameraForResult(activity); - } - break; - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/drawable-hdpi/qb_logo.png b/old_samples/sample-core/src/main/res/drawable-hdpi/qb_logo.png deleted file mode 100644 index 5f8c67345..000000000 Binary files a/old_samples/sample-core/src/main/res/drawable-hdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/drawable-mdpi/qb_logo.png b/old_samples/sample-core/src/main/res/drawable-mdpi/qb_logo.png deleted file mode 100644 index 48e7f08ef..000000000 Binary files a/old_samples/sample-core/src/main/res/drawable-mdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/drawable-xhdpi/qb_logo.png b/old_samples/sample-core/src/main/res/drawable-xhdpi/qb_logo.png deleted file mode 100644 index 74419479a..000000000 Binary files a/old_samples/sample-core/src/main/res/drawable-xhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/drawable-xxhdpi/qb_logo.png b/old_samples/sample-core/src/main/res/drawable-xxhdpi/qb_logo.png deleted file mode 100644 index b1b023cfb..000000000 Binary files a/old_samples/sample-core/src/main/res/drawable-xxhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/drawable/shape_circle.xml b/old_samples/sample-core/src/main/res/drawable/shape_circle.xml deleted file mode 100644 index d3fdbc07f..000000000 --- a/old_samples/sample-core/src/main/res/drawable/shape_circle.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/layout/activity_splash.xml b/old_samples/sample-core/src/main/res/layout/activity_splash.xml deleted file mode 100644 index 048eef1e5..000000000 --- a/old_samples/sample-core/src/main/res/layout/activity_splash.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/mipmap-hdpi/ic_launcher.png b/old_samples/sample-core/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index d888bc398..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-hdpi/ic_notification.png b/old_samples/sample-core/src/main/res/mipmap-hdpi/ic_notification.png deleted file mode 100755 index 54559cab4..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-hdpi/ic_notification.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-mdpi/ic_launcher.png b/old_samples/sample-core/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 82138c47e..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-mdpi/ic_notification.png b/old_samples/sample-core/src/main/res/mipmap-mdpi/ic_notification.png deleted file mode 100755 index d25c85acb..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-mdpi/ic_notification.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-xhdpi/ic_launcher.png b/old_samples/sample-core/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 7bea6026a..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-xhdpi/ic_notification.png b/old_samples/sample-core/src/main/res/mipmap-xhdpi/ic_notification.png deleted file mode 100755 index 39049c532..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-xhdpi/ic_notification.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-xxhdpi/ic_launcher.png b/old_samples/sample-core/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index dad8898a7..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-xxhdpi/ic_notification.png b/old_samples/sample-core/src/main/res/mipmap-xxhdpi/ic_notification.png deleted file mode 100755 index 852e872c5..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-xxhdpi/ic_notification.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/old_samples/sample-core/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4baa11be0..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/mipmap-xxxhdpi/ic_notification.png b/old_samples/sample-core/src/main/res/mipmap-xxxhdpi/ic_notification.png deleted file mode 100755 index 71361257d..000000000 Binary files a/old_samples/sample-core/src/main/res/mipmap-xxxhdpi/ic_notification.png and /dev/null differ diff --git a/old_samples/sample-core/src/main/res/values-v21/themes.xml b/old_samples/sample-core/src/main/res/values-v21/themes.xml deleted file mode 100644 index cb500e164..000000000 --- a/old_samples/sample-core/src/main/res/values-v21/themes.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/values/arrays.xml b/old_samples/sample-core/src/main/res/values/arrays.xml deleted file mode 100644 index 251cd7be4..000000000 --- a/old_samples/sample-core/src/main/res/values/arrays.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - Gallery - Camera - - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/values/colors.xml b/old_samples/sample-core/src/main/res/values/colors.xml deleted file mode 100644 index aa5fd252f..000000000 --- a/old_samples/sample-core/src/main/res/values/colors.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - #000000 - #d3d3d3 - #ffffff - - @color/white - #d0d0d0 - @color/color_green_qb - - #ffffff - - #046ad0 - #87cefa - #4ad24d - #99000000 - - #212121 - #ffffff - #000000 - #dedede - #b1b1b1 - #747474 - #6e6e6e - @color/color_green_qb - - #ff9500 - #007aff - #ff0091 - #4cd964 - #c3c1f2 - #a727a5 - #77a6d0 - #d0021b - #166642 - #bdbdbd - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/values/dimens.xml b/old_samples/sample-core/src/main/res/values/dimens.xml deleted file mode 100644 index a72a6a68a..000000000 --- a/old_samples/sample-core/src/main/res/values/dimens.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - 8dp - 16dp - - 32sp - 12sp - - 16dp - 16dp - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/values/strings.xml b/old_samples/sample-core/src/main/res/values/strings.xml deleted file mode 100644 index b9f517f26..000000000 --- a/old_samples/sample-core/src/main/res/values/strings.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - Please wait… - - Error - OK - Cancel - Loading… - Select photo from… - Retry - - Initializing configs error - - No internet connection - - v %s - - Parsing sample\'s configs error - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/values/styles_base.xml b/old_samples/sample-core/src/main/res/values/styles_base.xml deleted file mode 100644 index 910cd9f22..000000000 --- a/old_samples/sample-core/src/main/res/values/styles_base.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/values/styles_widgets.xml b/old_samples/sample-core/src/main/res/values/styles_widgets.xml deleted file mode 100644 index 7c806aa0f..000000000 --- a/old_samples/sample-core/src/main/res/values/styles_widgets.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-core/src/main/res/values/themes.xml b/old_samples/sample-core/src/main/res/values/themes.xml deleted file mode 100644 index 042852184..000000000 --- a/old_samples/sample-core/src/main/res/values/themes.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/README.md b/old_samples/sample-pushnotifications/README.md deleted file mode 100644 index a54382a02..000000000 --- a/old_samples/sample-pushnotifications/README.md +++ /dev/null @@ -1,18 +0,0 @@ -## QuickBlox Android Push Notifications (Messages) Sample - -This is a code sample for [QuickBlox](http://quickblox.com/) platform. It is a great way for developers using QuickBlox platform to learn how to integrate Push Notifications into yours apps. - -This is an Android build, it demonstrates how to work with [Messages](http://quickblox.com/developers/Messages) QuickBlox API. -It allows to send and receive Push Notifications. - -It shows how to: -
    -
  • Subscribe a User to receive Push Notifications
  • -
  • Send push notification
  • -
- -Go to project page on QuickBlox Developers Section -- - -Or clone project here and start to work with the code. - -    diff --git a/old_samples/sample-pushnotifications/build.gradle b/old_samples/sample-pushnotifications/build.gradle deleted file mode 100644 index cdac40848..000000000 --- a/old_samples/sample-pushnotifications/build.gradle +++ /dev/null @@ -1,71 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - flavorDimensions rootProject.dimensionDefault - - defaultConfig { - applicationId "com.quickblox.sample.pushnotifications" - minSdkVersion rootProject.minSdkVersion - targetSdkVersion rootProject.targetSdkVersion - versionCode rootProject.versionCode - versionName rootProject.versionName - } - - productFlavors { - speedDev { - dimension rootProject.dimensionDefault - minSdkVersion 21 - } - dev { - dimension rootProject.dimensionDefault - minSdkVersion rootProject.minSdkVersion - } - } - - buildTypes { - debug { - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - lintOptions { - abortOnError false - } -} - -dependencies { - implementation(project(":sample-core")) - - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } -} - -apply from: "../artifacts.gradle" -apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/google-services.json b/old_samples/sample-pushnotifications/google-services.json deleted file mode 100644 index bb35c5863..000000000 --- a/old_samples/sample-pushnotifications/google-services.json +++ /dev/null @@ -1,108 +0,0 @@ -{ - "project_info": { - "project_id": "quickblox.com:api-project-761750217637", - "project_number": "761750217637", - "name": "QuickBlox Android samples" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "1:761750217637:android:c4299bc46191b0d7", - "client_id": "android:com.quickblox.sample.groupchatwebrtc", - "client_type": 1, - "android_client_info": { - "package_name": "com.quickblox.sample.groupchatwebrtc" - } - }, - "oauth_client": [], - "api_key": [], - "services": { - "analytics_service": { - "status": 1 - }, - "cloud_messaging_service": { - "status": 2, - "apns_config": [] - }, - "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] - }, - "google_signin_service": { - "status": 1 - }, - "ads_service": { - "status": 1 - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:761750217637:android:f7ceaf9593b66d36", - "client_id": "android:com.quickblox.sample.pushnotifications", - "client_type": 1, - "android_client_info": { - "package_name": "com.quickblox.sample.pushnotifications" - } - }, - "oauth_client": [], - "api_key": [ - { - "current_key": "" - } - ], - "services": { - "analytics_service": { - "status": 1 - }, - "cloud_messaging_service": { - "status": 2, - "apns_config": [] - }, - "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] - }, - "google_signin_service": { - "status": 1 - }, - "ads_service": { - "status": 1 - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:761750217637:android:d150eafea3b1427e", - "client_id": "android:com.quickblox.sample.chat", - "client_type": 1, - "android_client_info": { - "package_name": "com.quickblox.sample.chat" - } - }, - "oauth_client": [], - "api_key": [], - "services": { - "analytics_service": { - "status": 1 - }, - "cloud_messaging_service": { - "status": 2, - "apns_config": [] - }, - "appinvite_service": { - "status": 1, - "other_platform_oauth_client": [] - }, - "google_signin_service": { - "status": 1 - }, - "ads_service": { - "status": 1 - } - } - } - ], - "client_info": [], - "ARTIFACT_VERSION": "1" -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/screenshots/Push1.png b/old_samples/sample-pushnotifications/screenshots/Push1.png deleted file mode 100644 index dfc00465a..000000000 Binary files a/old_samples/sample-pushnotifications/screenshots/Push1.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/screenshots/Push2.png b/old_samples/sample-pushnotifications/screenshots/Push2.png deleted file mode 100644 index 0b1012a80..000000000 Binary files a/old_samples/sample-pushnotifications/screenshots/Push2.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/screenshots/Push3.png b/old_samples/sample-pushnotifications/screenshots/Push3.png deleted file mode 100644 index 6e5763eae..000000000 Binary files a/old_samples/sample-pushnotifications/screenshots/Push3.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/screenshots/Push4.png b/old_samples/sample-pushnotifications/screenshots/Push4.png deleted file mode 100644 index 1f4a0c812..000000000 Binary files a/old_samples/sample-pushnotifications/screenshots/Push4.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/src/main/AndroidManifest.xml b/old_samples/sample-pushnotifications/src/main/AndroidManifest.xml deleted file mode 100644 index 97b25acc4..000000000 --- a/old_samples/sample-pushnotifications/src/main/AndroidManifest.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/assets/qb_config.json b/old_samples/sample-pushnotifications/src/main/assets/qb_config.json deleted file mode 100644 index 8051d77c5..000000000 --- a/old_samples/sample-pushnotifications/src/main/assets/qb_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "account_key": "C4_z7nuaANnBYmsG_k98", - "gcm_sender_id": "763802285074" -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/assets/sample_config.json b/old_samples/sample-pushnotifications/src/main/assets/sample_config.json deleted file mode 100644 index 6b1942147..000000000 --- a/old_samples/sample-pushnotifications/src/main/assets/sample_config.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "user_login": "test_user_id2", - "user_password": "test_user_id2" -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/App.java b/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/App.java deleted file mode 100644 index 5ce915357..000000000 --- a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/App.java +++ /dev/null @@ -1,56 +0,0 @@ -package com.quickblox.sample.pushnotifications; - -import android.util.Log; - -import com.crashlytics.android.Crashlytics; -import com.google.android.gms.common.GoogleApiAvailability; -import com.quickblox.messages.services.QBPushManager; -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.core.utils.ActivityLifecycle; -import com.quickblox.sample.core.utils.Toaster; - -import io.fabric.sdk.android.Fabric; - -public class App extends CoreApp { - - private static final String TAG = App.class.getSimpleName(); - private static App instance; - - @Override - public void onCreate() { - super.onCreate(); - Fabric.with(this, new Crashlytics()); - instance = this; - ActivityLifecycle.init(this); - initPushManager(); - } - - private void initPushManager() { - QBPushManager.getInstance().addListener(new QBPushManager.QBSubscribeListener() { - @Override - public void onSubscriptionCreated() { - Toaster.shortToast("Subscription Created"); - Log.d(TAG, "SubscriptionCreated"); - } - - @Override - public void onSubscriptionError(Exception e, int resultCode) { - Log.d(TAG, "SubscriptionError" + e.getLocalizedMessage()); - if (resultCode >= 0) { - String error = GoogleApiAvailability.getInstance().getErrorString(resultCode); - Log.d(TAG, "SubscriptionError playServicesAbility: " + error); - } - Toaster.shortToast(e.getLocalizedMessage()); - } - - @Override - public void onSubscriptionDeleted(boolean success) { - - } - }); - } - - public static synchronized App getInstance() { - return instance; - } -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/activities/MessagesActivity.java b/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/activities/MessagesActivity.java deleted file mode 100644 index 1a8a323fd..000000000 --- a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/activities/MessagesActivity.java +++ /dev/null @@ -1,234 +0,0 @@ -package com.quickblox.sample.pushnotifications.activities; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.util.Log; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.ArrayAdapter; -import android.widget.EditText; -import android.widget.ListView; -import android.widget.ProgressBar; - -import com.quickblox.auth.session.QBSessionManager; -import com.quickblox.auth.session.QBSettings; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.messages.QBPushNotifications; -import com.quickblox.messages.model.QBEnvironment; -import com.quickblox.messages.model.QBEvent; -import com.quickblox.messages.model.QBNotificationType; -import com.quickblox.sample.core.gcm.GooglePlayServicesHelper; -import com.quickblox.sample.core.ui.activity.CoreBaseActivity; -import com.quickblox.sample.core.utils.KeyboardUtils; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.core.utils.constant.GcmConsts; -import com.quickblox.sample.pushnotifications.R; - -import java.util.ArrayList; -import java.util.List; - -import androidx.localbroadcastmanager.content.LocalBroadcastManager; - -public class MessagesActivity extends CoreBaseActivity implements TextWatcher { - - private final String TAG = getClass().getSimpleName(); - - private EditText outgoingMessageEditText; - private ProgressBar progressBar; - private ArrayAdapter adapter; - - private List receivedPushes; - private GooglePlayServicesHelper googlePlayServicesHelper; - - private BroadcastReceiver pushBroadcastReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String message = intent.getStringExtra(GcmConsts.EXTRA_GCM_MESSAGE); - if (TextUtils.isEmpty(message)) { - message = GcmConsts.EMPTY_GCM_MESSAGE; - } - Log.i(TAG, "Receiving event " + GcmConsts.ACTION_NEW_GCM_EVENT + " with data: " + message); - retrieveMessage(message); - } - }; - - public static void start(Context context, String message) { - Intent intent = new Intent(context, MessagesActivity.class); - intent.putExtra(GcmConsts.EXTRA_GCM_MESSAGE, message); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_messages); - - boolean enable = QBSettings.getInstance().isEnablePushNotification(); - String subtitle = getSubtitleStatus(enable); - setActionbarSubTitle(subtitle); - - receivedPushes = new ArrayList<>(); - googlePlayServicesHelper = new GooglePlayServicesHelper(); - - initUI(); - - String message = getIntent().getStringExtra(GcmConsts.EXTRA_GCM_MESSAGE); - - if (message != null) { - retrieveMessage(message); - } - - registerReceiver(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - LocalBroadcastManager.getInstance(this).unregisterReceiver(pushBroadcastReceiver); - } - - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - menu.getItem(0).setEnabled(true); - return true; - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater menuInflater = getMenuInflater(); - menuInflater.inflate(R.menu.activity_messages, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_send_message: - item.setEnabled(false); - sendPushMessage(); - return true; - case R.id.menu_enable_notification: - QBSettings.getInstance().setEnablePushNotification(true); - setActionbarSubTitle(getResources().getString(R.string.subtitle_enabled)); - return true; - case R.id.menu_disable_notification: - QBSettings.getInstance().setEnablePushNotification(false); - setActionbarSubTitle(getResources().getString(R.string.subtitle_disabled)); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - private String getSubtitleStatus(boolean enable) { - return enable ? getResources().getString(R.string.subtitle_enabled) - : getResources().getString(R.string.subtitle_disabled); - } - - private void setActionbarSubTitle(String subTitle) { - if (actionBar != null) - actionBar.setSubtitle(subTitle); - } - - private void initUI() { - progressBar = _findViewById(R.id.progress_bar); - outgoingMessageEditText = _findViewById(R.id.edit_message_out); - outgoingMessageEditText.addTextChangedListener(this); - - ListView incomingMessagesListView = _findViewById(R.id.list_messages); - adapter = new ArrayAdapter<>(this, R.layout.list_item_message, R.id.item_message, receivedPushes); - incomingMessagesListView.setAdapter(adapter); - incomingMessagesListView.setEmptyView(_findViewById(R.id.text_empty_messages)); - } - - private void registerReceiver() { - googlePlayServicesHelper.checkPlayServicesAvailable(this); - - LocalBroadcastManager.getInstance(this).registerReceiver(pushBroadcastReceiver, - new IntentFilter(GcmConsts.ACTION_NEW_GCM_EVENT)); - } - - private void retrieveMessage(String message) { - receivedPushes.add(0, message); - adapter.notifyDataSetChanged(); - - progressBar.setVisibility(View.INVISIBLE); - } - - private void sendPushMessage() { - String outMessage = outgoingMessageEditText.getText().toString().trim(); - if (!isValidData(outMessage)) { - Toaster.longToast(R.string.error_field_is_empty); - invalidateOptionsMenu(); - return; - } - - // Send Push: create QuickBlox Push Notification Event - QBEvent qbEvent = new QBEvent(); - qbEvent.setNotificationType(QBNotificationType.PUSH); - qbEvent.setEnvironment(QBEnvironment.DEVELOPMENT); - // Generic push - will be delivered to all platforms (Android, iOS, WP, Blackberry..) - qbEvent.setMessage(outMessage); - - StringifyArrayList userIds = new StringifyArrayList<>(); - userIds.add(QBSessionManager.getInstance().getSessionParameters().getUserId()); - qbEvent.setUserIds(userIds); - - QBPushNotifications.createEvent(qbEvent).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBEvent qbEvent, Bundle bundle) { - progressBar.setVisibility(View.INVISIBLE); - KeyboardUtils.hideKeyboard(outgoingMessageEditText); - outgoingMessageEditText.setText(null); - invalidateOptionsMenu(); - } - - @Override - public void onError(QBResponseException e) { - View rootView = findViewById(R.id.activity_messages); - showSnackbarError(rootView, R.string.connection_error, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - sendPushMessage(); - } - }); - progressBar.setVisibility(View.INVISIBLE); - KeyboardUtils.hideKeyboard(outgoingMessageEditText); - invalidateOptionsMenu(); - } - }); - - progressBar.setVisibility(View.VISIBLE); - } - - private boolean isValidData(String message) { - return !TextUtils.isEmpty(message); - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - //ignore - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - //ignore - } - - @Override - public void afterTextChanged(Editable s) { - if (s.length() >= getResources().getInteger(R.integer.push_max_length)) { - Toaster.shortToast(R.string.error_too_long_push); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/activities/SplashActivity.java b/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/activities/SplashActivity.java deleted file mode 100644 index cceb51217..000000000 --- a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/activities/SplashActivity.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.quickblox.sample.pushnotifications.activities; - -import android.os.Bundle; -import android.view.View; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.core.ui.activity.CoreSplashActivity; -import com.quickblox.sample.core.utils.configs.CoreConfigUtils; -import com.quickblox.sample.core.utils.constant.GcmConsts; -import com.quickblox.sample.pushnotifications.R; -import com.quickblox.sample.pushnotifications.utils.Consts; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -public class SplashActivity extends CoreSplashActivity { - private String message; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - Bundle extras = getIntent().getExtras(); - if (extras != null) { - message = getIntent().getExtras().getString(GcmConsts.EXTRA_GCM_MESSAGE); - } - - if (checkConfigsWithSnackebarError()) { - signInQB(); - } - } - - private void signInQB() { - if (!checkSignIn()) { - QBUser qbUser = CoreConfigUtils.getUserFromConfig(Consts.SAMPLE_CONFIG_FILE_NAME); - - QBUsers.signIn(qbUser).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser qbUser, Bundle bundle) { - proceedToTheNextActivity(); - } - - @Override - public void onError(QBResponseException e) { - showSnackbarError(null, R.string.splash_create_session_error, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - signInQB(); - } - }); - } - }); - } else { - proceedToTheNextActivityWithDelay(); - } - } - - @Override - protected String getAppName() { - return getString(R.string.app_title); - } - - @Override - protected void proceedToTheNextActivity() { - MessagesActivity.start(this, message); - finish(); - } - - @Override - protected boolean sampleConfigIsCorrect() { - boolean result = super.sampleConfigIsCorrect(); - result = result && CoreConfigUtils.getUserFromConfig(Consts.SAMPLE_CONFIG_FILE_NAME) != null; - return result; - } -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/gcm/GcmPushListenerService.java b/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/gcm/GcmPushListenerService.java deleted file mode 100644 index 008236cab..000000000 --- a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/gcm/GcmPushListenerService.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.quickblox.sample.pushnotifications.gcm; - -import com.quickblox.sample.core.gcm.CoreGcmPushListenerService; -import com.quickblox.sample.core.utils.NotificationUtils; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.pushnotifications.R; -import com.quickblox.sample.pushnotifications.activities.SplashActivity; - -public class GcmPushListenerService extends CoreGcmPushListenerService { - private static final int NOTIFICATION_ID = 1; - - @Override - protected void showNotification(String message) { - NotificationUtils.showNotification(this, SplashActivity.class, - ResourceUtils.getString(R.string.notification_title), message, - R.mipmap.ic_notification, NOTIFICATION_ID); - } -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/utils/Consts.java b/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/utils/Consts.java deleted file mode 100644 index 7f49f702d..000000000 --- a/old_samples/sample-pushnotifications/src/main/java/com/quickblox/sample/pushnotifications/utils/Consts.java +++ /dev/null @@ -1,5 +0,0 @@ -package com.quickblox.sample.pushnotifications.utils; - -public interface Consts { - String SAMPLE_CONFIG_FILE_NAME = "sample_config.json"; -} \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/res/drawable-hdpi/ic_send.png b/old_samples/sample-pushnotifications/src/main/res/drawable-hdpi/ic_send.png deleted file mode 100644 index fefceaeba..000000000 Binary files a/old_samples/sample-pushnotifications/src/main/res/drawable-hdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/src/main/res/drawable-mdpi/ic_send.png b/old_samples/sample-pushnotifications/src/main/res/drawable-mdpi/ic_send.png deleted file mode 100644 index 3b4c387aa..000000000 Binary files a/old_samples/sample-pushnotifications/src/main/res/drawable-mdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/src/main/res/drawable-xhdpi/ic_send.png b/old_samples/sample-pushnotifications/src/main/res/drawable-xhdpi/ic_send.png deleted file mode 100644 index 4956f4c41..000000000 Binary files a/old_samples/sample-pushnotifications/src/main/res/drawable-xhdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/src/main/res/drawable-xxhdpi/ic_send.png b/old_samples/sample-pushnotifications/src/main/res/drawable-xxhdpi/ic_send.png deleted file mode 100644 index 04e15ace4..000000000 Binary files a/old_samples/sample-pushnotifications/src/main/res/drawable-xxhdpi/ic_send.png and /dev/null differ diff --git a/old_samples/sample-pushnotifications/src/main/res/drawable/text_line.xml b/old_samples/sample-pushnotifications/src/main/res/drawable/text_line.xml deleted file mode 100644 index 9ccf51a07..000000000 --- a/old_samples/sample-pushnotifications/src/main/res/drawable/text_line.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/res/layout/activity_messages.xml b/old_samples/sample-pushnotifications/src/main/res/layout/activity_messages.xml deleted file mode 100755 index 735053acb..000000000 --- a/old_samples/sample-pushnotifications/src/main/res/layout/activity_messages.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/res/layout/list_item_message.xml b/old_samples/sample-pushnotifications/src/main/res/layout/list_item_message.xml deleted file mode 100644 index d297efccf..000000000 --- a/old_samples/sample-pushnotifications/src/main/res/layout/list_item_message.xml +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/res/menu/activity_messages.xml b/old_samples/sample-pushnotifications/src/main/res/menu/activity_messages.xml deleted file mode 100644 index f50b822aa..000000000 --- a/old_samples/sample-pushnotifications/src/main/res/menu/activity_messages.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/res/values/dimens.xml b/old_samples/sample-pushnotifications/src/main/res/values/dimens.xml deleted file mode 100755 index eacaa7784..000000000 --- a/old_samples/sample-pushnotifications/src/main/res/values/dimens.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - 32dp - 48dp - - 1dp - - 46dp - 80dp - - 16dp - - 14sp - 16sp - - 1000 - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/res/values/strings.xml b/old_samples/sample-pushnotifications/src/main/res/values/strings.xml deleted file mode 100755 index f433dee7c..000000000 --- a/old_samples/sample-pushnotifications/src/main/res/values/strings.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - Push Notifications - Push Notification Sample - Push Notification Sample - - Incoming message - Enter push message here - Send push - Received Push Notifications - No messages received yet - GCM Notification - Field is empty! - Create session errors: - Connection errors: - You can enter only 1000 characters! - - Enable Notification - Disable Notification - Notification enabled - Notification disabled - 763802285074 - - \ No newline at end of file diff --git a/old_samples/sample-pushnotifications/src/main/res/values/styles_widgets.xml b/old_samples/sample-pushnotifications/src/main/res/values/styles_widgets.xml deleted file mode 100644 index 1726b6f05..000000000 --- a/old_samples/sample-pushnotifications/src/main/res/values/styles_widgets.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/README.md b/old_samples/sample-users/README.md deleted file mode 100644 index b30d575b2..000000000 --- a/old_samples/sample-users/README.md +++ /dev/null @@ -1,20 +0,0 @@ -## QuickBlox Android User Sample - -This is a code sample for [QuickBlox](http://quickblox.com/) platform. It is a great way for developers using QuickBlox platform to learn how to create users for yours apps. - -This is an Android build, it demonstrates how to work with [Users](http://quickblox.com/developers/Users) QuickBlox module. -It allows to see all users, their details, create user, edit current user, sign in, sign out. - -It shows how to: -
    -
  • Retrieve all users
  • -
  • Get users' details
  • -
  • Edit user's parameters
  • -
  • Sign Up, Sign In/Sign out
  • -
- -Go to project page on QuickBlox Developers Section -- - -Or clone project here and start to work with the code. - -     diff --git a/old_samples/sample-users/build.gradle b/old_samples/sample-users/build.gradle deleted file mode 100644 index 74203cd05..000000000 --- a/old_samples/sample-users/build.gradle +++ /dev/null @@ -1,75 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - flavorDimensions rootProject.dimensionDefault - - defaultConfig { - applicationId "com.quickblox.sample.user" - minSdkVersion rootProject.minSdkVersion - targetSdkVersion rootProject.targetSdkVersion - versionCode rootProject.versionCode - versionName rootProject.versionName - } - - productFlavors { - speedDev { - dimension rootProject.dimensionDefault - minSdkVersion 21 - } - dev { - dimension rootProject.dimensionDefault - minSdkVersion rootProject.minSdkVersion - } - } - - buildTypes { - debug { - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - dataBinding { - enabled = true - } - - lintOptions { - abortOnError false - } -} - -dependencies { - implementation(project(':sample-core')) - - implementation "com.github.orangegangsters:swipy:$rootProject.swipyVersion@aar" - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } -} - -apply from: "../artifacts.gradle" \ No newline at end of file diff --git a/old_samples/sample-users/screenshots/Users1.png b/old_samples/sample-users/screenshots/Users1.png deleted file mode 100755 index 41f06849d..000000000 Binary files a/old_samples/sample-users/screenshots/Users1.png and /dev/null differ diff --git a/old_samples/sample-users/screenshots/Users2.png b/old_samples/sample-users/screenshots/Users2.png deleted file mode 100755 index 124b53820..000000000 Binary files a/old_samples/sample-users/screenshots/Users2.png and /dev/null differ diff --git a/old_samples/sample-users/screenshots/Users3.png b/old_samples/sample-users/screenshots/Users3.png deleted file mode 100755 index d96e7a10e..000000000 Binary files a/old_samples/sample-users/screenshots/Users3.png and /dev/null differ diff --git a/old_samples/sample-users/screenshots/Users4.png b/old_samples/sample-users/screenshots/Users4.png deleted file mode 100755 index cb4f25b78..000000000 Binary files a/old_samples/sample-users/screenshots/Users4.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/AndroidManifest.xml b/old_samples/sample-users/src/main/AndroidManifest.xml deleted file mode 100644 index 7a0b7e821..000000000 --- a/old_samples/sample-users/src/main/AndroidManifest.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/assets/qb_config.json b/old_samples/sample-users/src/main/assets/qb_config.json deleted file mode 100644 index c6e242af6..000000000 --- a/old_samples/sample-users/src/main/assets/qb_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "account_key": "C4_z7nuaANnBYmsG_k98", - "gcm_sender_id": "761750217637" -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/App.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/App.java deleted file mode 100644 index 595cf4b36..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/App.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.quickblox.sample.user; - -import com.crashlytics.android.Crashlytics; -import com.quickblox.sample.core.CoreApp; - -import io.fabric.sdk.android.Fabric; - -public class App extends CoreApp { - private static final String TAG = App.class.getSimpleName(); - - @Override - public void onCreate() { - super.onCreate(); - Fabric.with(this, new Crashlytics()); - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/BaseActivity.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/BaseActivity.java deleted file mode 100644 index 824c89129..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/BaseActivity.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.quickblox.sample.user.activities; - -import android.app.ProgressDialog; -import android.os.Bundle; - -import com.quickblox.sample.core.ui.activity.CoreBaseActivity; -import com.quickblox.sample.core.utils.DialogUtils; - -public abstract class BaseActivity extends CoreBaseActivity { - - protected ProgressDialog progressDialog; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - progressDialog = DialogUtils.getProgressDialog(this); - progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); - } - - protected abstract void initUI(); -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/ShowUserActivity.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/ShowUserActivity.java deleted file mode 100644 index c6823228f..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/ShowUserActivity.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.quickblox.sample.user.activities; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.EditText; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.user.R; -import com.quickblox.sample.user.databinding.ActivityShowUserBinding; -import com.quickblox.sample.user.helper.DataHolder; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import androidx.databinding.DataBindingUtil; - -public class ShowUserActivity extends BaseActivity { - - private static final String QB_USER = "qbUser"; - - private QBUser qbUser; - private boolean currentUserSignIn; - private EditText fullNameEditText; - private EditText emailEditText; - private EditText phoneNumberEditText; - private EditText tagsEditText; - - private ActivityShowUserBinding showUserBinding; - - public static void start(Context context, QBUser qbUser) { - Intent intent = new Intent(context, ShowUserActivity.class); - intent.putExtra(QB_USER, qbUser); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceBundle) { - super.onCreate(savedInstanceBundle); - - initUI(); - - qbUser = (QBUser) getIntent().getSerializableExtra(QB_USER); - - showUserBinding.setUser(qbUser); - - setFieldsFocusable(qbUser); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.activity_sign_in_up, menu); - menu.getItem(0).setVisible(currentUserSignIn); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_sign_in_up: - updateProfile(); - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - protected void initUI() { - actionBar.setDisplayHomeAsUpEnabled(true); - showUserBinding = DataBindingUtil.setContentView(this, R.layout.activity_show_user); - - fullNameEditText = _findViewById(R.id.full_name_textview); - emailEditText = _findViewById(R.id.email_textview); - phoneNumberEditText = _findViewById(R.id.phone_textview); - tagsEditText = _findViewById(R.id.tag_textview); - } - - private void setFieldsFocusable(QBUser qbUser) { - if (DataHolder.getInstance().isSignedIn()) { - currentUserSignIn = DataHolder.getInstance().getSignInQbUser().equals(qbUser); - } - fullNameEditText.setEnabled(currentUserSignIn); - emailEditText.setEnabled(currentUserSignIn); - phoneNumberEditText.setEnabled(currentUserSignIn); - tagsEditText.setEnabled(currentUserSignIn); - } - - private void updateProfile() { - String fullName = fullNameEditText.getText().toString().trim(); - String email = emailEditText.getText().toString().trim(); - String phoneNumber = phoneNumberEditText.getText().toString().trim(); - String tags = tagsEditText.getText().toString().trim(); - - StringifyArrayList tagsArray = new StringifyArrayList<>(); - tagsArray.add(tags); - - qbUser.setFullName(fullName); - qbUser.setEmail(email); - qbUser.setPhone(phoneNumber); - qbUser.setTags(tagsArray); - - QBUsers.updateUser(qbUser).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser user, Bundle args) { - - int location = DataHolder.getInstance().getQBUsers().indexOf(user); - DataHolder.getInstance().updateQbUserList(location, user); - DataHolder.getInstance().setSignInQbUser(user); - - Toaster.shortToast(R.string.update); - progressDialog.dismiss(); - - finish(); - } - - @Override - public void onError(QBResponseException errors) { - progressDialog.dismiss(); - View rootLayout = findViewById(R.id.activity_show_user); - showSnackbarError(rootLayout, R.string.errors, errors, new View.OnClickListener() { - @Override - public void onClick(View v) { - updateProfile(); - } - }); - } - }); - progressDialog.show(); - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SignInActivity.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SignInActivity.java deleted file mode 100644 index d0e009373..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SignInActivity.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.quickblox.sample.user.activities; - -import android.os.Bundle; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.EditText; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.user.R; -import com.quickblox.sample.user.helper.DataHolder; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -public class SignInActivity extends BaseActivity { - - private EditText loginEditText; - private EditText passwordEditText; - - @Override - public void onCreate(Bundle savedInstanceBundle) { - super.onCreate(savedInstanceBundle); - setContentView(R.layout.activity_sign_in); - initUI(); - } - - @Override - protected void initUI() { - actionBar.setDisplayHomeAsUpEnabled(true); - - loginEditText = _findViewById(R.id.login_in_edittext); - passwordEditText = _findViewById(R.id.password_in_edittext); - } - - public void signIn() { - - progressDialog.show(); - - QBUser qbUser = new QBUser(loginEditText.getText().toString(), passwordEditText.getText().toString()); - QBUsers.signIn(qbUser).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser qbUser, Bundle bundle) { - progressDialog.dismiss(); - - setResult(RESULT_OK); - - DataHolder.getInstance().setSignInQbUser(qbUser); - Toaster.longToast(R.string.user_successfully_sign_in); - - finish(); - } - - @Override - public void onError(QBResponseException errors) { - progressDialog.dismiss(); - View rootLayout = findViewById(R.id.activity_sign_in); - showSnackbarError(rootLayout, R.string.errors, errors, new View.OnClickListener() { - @Override - public void onClick(View v) { - signIn(); - } - }); - } - }); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.activity_sign_in_up, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_sign_in_up: - signIn(); - return true; - - default: - return super.onOptionsItemSelected(item); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SignUpUserActivity.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SignUpUserActivity.java deleted file mode 100644 index 58c1daf5d..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SignUpUserActivity.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.quickblox.sample.user.activities; - -import android.annotation.SuppressLint; -import android.content.Intent; -import android.os.Bundle; -import android.text.TextUtils; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.EditText; -import android.widget.Toast; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.user.R; -import com.quickblox.sample.user.helper.DataHolder; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -public class SignUpUserActivity extends BaseActivity { - - private EditText loginEditText; - private EditText passwordEditText; - private EditText confirmPasswordEditText; - private Toast toast; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_sign_up); - initUI(); - } - - @SuppressLint("ShowToast") - @Override - protected void initUI() { - actionBar.setDisplayHomeAsUpEnabled(true); - - toast = Toast.makeText(this, R.string.error, Toast.LENGTH_LONG); - loginEditText = _findViewById(R.id.login_up_edittext); - passwordEditText = _findViewById(R.id.password_up_edittext); - confirmPasswordEditText = _findViewById(R.id.password_confirm_edittext); - } - - public void signUp() { - String login = loginEditText.getText().toString().trim(); - String password = passwordEditText.getText().toString(); - String confirmPassword = confirmPasswordEditText.getText().toString(); - - if (!isValidData(login, password, confirmPassword)) { - return; - } - - progressDialog.show(); - - QBUser qbUser = new QBUser(); - qbUser.setLogin(login); - qbUser.setPassword(password); - QBUsers.signUpSignInTask(qbUser).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser qbUser, Bundle bundle) { - progressDialog.dismiss(); - - DataHolder.getInstance().addQbUser(qbUser); - DataHolder.getInstance().setSignInQbUser(qbUser); - - setResult(RESULT_OK, new Intent()); - finish(); - } - - @Override - public void onError(QBResponseException error) { - progressDialog.dismiss(); - View rootLayout = findViewById(R.id.activity_sign_up); - showSnackbarError(rootLayout, R.string.errors, error, new View.OnClickListener() { - @Override - public void onClick(View v) { - signUp(); - } - }); - } - }); - } - - private boolean isValidData(String login, String password, String confirm) { - - if (TextUtils.isEmpty(login) || TextUtils.isEmpty(password) || TextUtils.isEmpty(confirm)) { - if (TextUtils.isEmpty(login)) { - loginEditText.setError(getResources().getString(R.string.error_field_is_empty)); - } - if (TextUtils.isEmpty(password)) { - passwordEditText.setError(getResources().getString(R.string.error_field_is_empty)); - } - if (TextUtils.isEmpty(confirm)) { - confirmPasswordEditText.setError(getResources().getString(R.string.error_field_is_empty)); - } - return false; - } - - if (!TextUtils.equals(password, confirm)) { - confirmPasswordEditText.setError(getResources().getString(R.string.confirm_error)); - return false; - } - return true; - } - - @Override - public void onDestroy() { - super.onDestroy(); - toast.cancel(); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.activity_sign_in_up, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.menu_sign_in_up: - signUp(); - return true; - - default: - return super.onOptionsItemSelected(item); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SplashActivity.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SplashActivity.java deleted file mode 100644 index e07c89f1a..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/SplashActivity.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.quickblox.sample.user.activities; - -import android.os.Bundle; - -import com.quickblox.sample.core.ui.activity.CoreSplashActivity; -import com.quickblox.sample.user.R; - -public class SplashActivity extends CoreSplashActivity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - if (checkConfigsWithSnackebarError()) { - proceedToTheNextActivityWithDelay(); - } - } - - @Override - protected String getAppName() { - return getString(R.string.splash_app_title); - } - - @Override - protected void proceedToTheNextActivity() { - UsersListActivity.start(this); - finish(); - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/UsersListActivity.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/UsersListActivity.java deleted file mode 100644 index 293b8a99c..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/activities/UsersListActivity.java +++ /dev/null @@ -1,231 +0,0 @@ -package com.quickblox.sample.user.activities; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ListView; -import android.widget.TextView; - -import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayout; -import com.orangegangsters.github.swipyrefreshlayout.library.SwipyRefreshLayoutDirection; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.request.GenericQueryRule; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.user.R; -import com.quickblox.sample.user.adapter.UserListAdapter; -import com.quickblox.sample.user.helper.DataHolder; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class UsersListActivity extends BaseActivity implements AdapterView.OnItemClickListener { - - private static final int LIMIT_USERS = 50; - private static final int REQUEST_CODE_SIGN_UP = 100; - private static final String ORDER_RULE = "order"; - private static final String ORDER_VALUE = "desc date created_at"; - private int currentPage = 1; - private UserListAdapter usersListAdapter; - private QBPagedRequestBuilder qbPagedBuilder; - private SwipyRefreshLayout setOnRefreshListener; - private List qbUsersList; - - public static void start(Context context) { - Intent intent = new Intent(context, UsersListActivity.class); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_users_list); - DataHolder.getInstance().clear(); - initUI(); - getAllUsers(true); - } - - @Override - protected void initUI() { - ListView usersListView = _findViewById(R.id.users_listview); - setOnRefreshListener = _findViewById(R.id.swipy_refresh_layout); - - TextView listHeader = (TextView) LayoutInflater.from(this) - .inflate(R.layout.include_list_header, usersListView, false); - - usersListView.addHeaderView(listHeader, null, false); - qbUsersList = DataHolder.getInstance().getQBUsers(); - usersListAdapter = new UserListAdapter(this, qbUsersList); - usersListView.setAdapter(usersListAdapter); - usersListView.setOnItemClickListener(this); - - setQBPagedBuilder(); - setOnRefreshListener.setOnRefreshListener(new SwipyRefreshLayout.OnRefreshListener() { - @Override - public void onRefresh(SwipyRefreshLayoutDirection direction) { - qbPagedBuilder.setPage(++currentPage); - getAllUsers(false); - } - }); - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - if (requestCode == REQUEST_CODE_SIGN_UP) { - qbUsersList = DataHolder.getInstance().getQBUsers(); - Collections.rotate(qbUsersList, 1); - usersListAdapter.updateList(qbUsersList); - } - } - } - - @Override - public void onResume() { - super.onResume(); - usersListAdapter.notifyDataSetChanged(); - setActionBarTitle(DataHolder.getInstance().isSignedIn() ? DataHolder.getInstance().getSignInQbUser().getLogin() - : getString(R.string.not_signed_in)); - } - - @Override - public void onDestroy() { - super.onDestroy(); - DataHolder.getInstance().setSignInQbUser(null); - } - - @Override - public void onItemClick(AdapterView adapterView, View view, int position, long id) { - QBUser qbUser = (QBUser) adapterView.getItemAtPosition(position); - ShowUserActivity.start(this, qbUser); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater inflater = getMenuInflater(); - inflater.inflate(R.menu.activity_users_list, menu); - return true; - } - - @Override - public boolean onPrepareOptionsMenu(Menu menu) { - if (!DataHolder.getInstance().isSignedIn()) { - setActionBarTitle(R.string.not_signed_in); - menu.getItem(0).setVisible(true); - menu.getItem(1).setVisible(true); - menu.getItem(2).setVisible(false); - menu.getItem(3).setEnabled(false); - } else { - setActionBarTitle(DataHolder.getInstance().getSignInQbUser().getLogin()); - menu.getItem(0).setVisible(false); - menu.getItem(1).setVisible(false); - menu.getItem(2).setVisible(true); - menu.getItem(3).setEnabled(true); - } - - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - Intent intent; - switch (item.getItemId()) { - case R.id.sign_in: - intent = new Intent(this, SignInActivity.class); - startActivity(intent); - return true; - - case R.id.sign_up: - intent = new Intent(this, SignUpUserActivity.class); - startActivityForResult(intent, REQUEST_CODE_SIGN_UP); - return true; - - case R.id.profile: - ShowUserActivity.start(this, DataHolder.getInstance().getSignInQbUser()); - return true; - - case R.id.logout: - progressDialog.show(); - QBUsers.signOut().performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - progressDialog.dismiss(); - Toaster.longToast(R.string.user_log_out_msg); - updateDataAfterLogOut(); - } - - @Override - public void onError(QBResponseException e) { - progressDialog.dismiss(); - - Toaster.longToast(e.getErrors().toString()); - } - }); - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - private void updateDataAfterLogOut() { - DataHolder.getInstance().setSignInQbUser(null); - invalidateOptionsMenu(); - } - - private void setQBPagedBuilder() { - qbPagedBuilder = new QBPagedRequestBuilder(); - GenericQueryRule genericQueryRule = new GenericQueryRule(ORDER_RULE, ORDER_VALUE); - - ArrayList rule = new ArrayList<>(); - rule.add(genericQueryRule); - - qbPagedBuilder.setPerPage(LIMIT_USERS); - qbPagedBuilder.setRules(rule); - } - - private void getAllUsers(boolean showProgress) { - if (showProgress) { - progressDialog.show(); - } - - QBUsers.getUsers(qbPagedBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList qbUsers, Bundle bundle) { - setOnRefreshListener.setEnabled(true); - setOnRefreshListener.setRefreshing(false); - - DataHolder.getInstance().addQbUsers(qbUsers); - qbUsersList = DataHolder.getInstance().getQBUsers(); - progressDialog.dismiss(); - usersListAdapter.updateList(qbUsersList); - } - - @Override - public void onError(QBResponseException e) { - progressDialog.dismiss(); - setOnRefreshListener.setEnabled(false); - setOnRefreshListener.setRefreshing(false); - - View rootLayout = findViewById(R.id.swipy_refresh_layout); - showSnackbarError(rootLayout, R.string.errors, e, new View.OnClickListener() { - @Override - public void onClick(View v) { - getAllUsers(false); - } - }); - } - }); - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/adapter/UserListAdapter.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/adapter/UserListAdapter.java deleted file mode 100644 index a97e7ee6c..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/adapter/UserListAdapter.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.quickblox.sample.user.adapter; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; - -import com.quickblox.sample.core.ui.adapter.BaseListAdapter; -import com.quickblox.sample.user.R; -import com.quickblox.sample.user.databinding.ListItemUserBinding; -import com.quickblox.users.model.QBUser; - -import java.util.List; - -import androidx.databinding.DataBindingUtil; - -public class UserListAdapter extends BaseListAdapter { - - public UserListAdapter(Context context, List qbUsersList) { - super(context, qbUsersList); - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - ViewHolder viewHolder; - if (convertView == null) { - convertView = inflater.inflate(R.layout.list_item_user, parent, false); - viewHolder = new ViewHolder(convertView); - convertView.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) convertView.getTag(); - } - QBUser qbUser = getItem(position); - viewHolder.userBinding.setUser(qbUser); - return convertView; - } - - public static class ViewHolder { - ListItemUserBinding userBinding; - - public ViewHolder(View v) { - userBinding = DataBindingUtil.bind(v); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/helper/DataHolder.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/helper/DataHolder.java deleted file mode 100644 index c99795bf5..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/helper/DataHolder.java +++ /dev/null @@ -1,62 +0,0 @@ -package com.quickblox.sample.user.helper; - -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - -public class DataHolder { - - private static DataHolder instance; - private List qbUsers; - private QBUser signInQbUser; - - private DataHolder() { - qbUsers = new ArrayList<>(); - } - - public static synchronized DataHolder getInstance() { - if (instance == null) { - instance = new DataHolder(); - } - return instance; - } - - public void addQbUsers(List qbUsers) { - for (QBUser qbUser : qbUsers) { - addQbUser(qbUser); - } - } - - public void addQbUser(QBUser qbUser) { - if (!qbUsers.contains(qbUser)) { - qbUsers.add(qbUser); - } - } - - public void updateQbUserList(int location, QBUser qbUser) { - if (location != -1) { - qbUsers.set(location, qbUser); - } - } - - public List getQBUsers() { - return qbUsers; - } - - public void clear() { - qbUsers.clear(); - } - - public QBUser getSignInQbUser() { - return signInQbUser; - } - - public void setSignInQbUser(QBUser singInQbUser) { - this.signInQbUser = singInQbUser; - } - - public boolean isSignedIn() { - return signInQbUser != null; - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/helper/Utils.java b/old_samples/sample-users/src/main/java/com/quickblox/sample/user/helper/Utils.java deleted file mode 100644 index f4b493d83..000000000 --- a/old_samples/sample-users/src/main/java/com/quickblox/sample/user/helper/Utils.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.quickblox.sample.user.helper; - -import com.quickblox.core.helper.StringifyArrayList; - -public class Utils { - - public static String ListToString(StringifyArrayList tags) { - return tags.isEmpty() ? "" : tags.toString().replace("[", "").replace("]", ""); - } -} \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/drawable-hdpi/ic_action_check.png b/old_samples/sample-users/src/main/res/drawable-hdpi/ic_action_check.png deleted file mode 100755 index 006fe9bbb..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-hdpi/ic_action_check.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable-hdpi/ic_action_timer_auto.png b/old_samples/sample-users/src/main/res/drawable-hdpi/ic_action_timer_auto.png deleted file mode 100755 index 356ae066f..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-hdpi/ic_action_timer_auto.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable-mdpi/ic_action_check.png b/old_samples/sample-users/src/main/res/drawable-mdpi/ic_action_check.png deleted file mode 100755 index 5723d097f..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-mdpi/ic_action_check.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable-mdpi/ic_action_timer_auto.png b/old_samples/sample-users/src/main/res/drawable-mdpi/ic_action_timer_auto.png deleted file mode 100755 index 5f111c962..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-mdpi/ic_action_timer_auto.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable-xhdpi/ic_action_check.png b/old_samples/sample-users/src/main/res/drawable-xhdpi/ic_action_check.png deleted file mode 100755 index b51a38569..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-xhdpi/ic_action_check.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable-xhdpi/ic_action_timer_auto.png b/old_samples/sample-users/src/main/res/drawable-xhdpi/ic_action_timer_auto.png deleted file mode 100755 index c3edcdc93..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-xhdpi/ic_action_timer_auto.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable-xxhdpi/ic_action_check.png b/old_samples/sample-users/src/main/res/drawable-xxhdpi/ic_action_check.png deleted file mode 100755 index 7f6b7c44f..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-xxhdpi/ic_action_check.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable-xxhdpi/ic_action_timer_auto.png b/old_samples/sample-users/src/main/res/drawable-xxhdpi/ic_action_timer_auto.png deleted file mode 100755 index e1f3f1cc8..000000000 Binary files a/old_samples/sample-users/src/main/res/drawable-xxhdpi/ic_action_timer_auto.png and /dev/null differ diff --git a/old_samples/sample-users/src/main/res/drawable/shape_circle.xml b/old_samples/sample-users/src/main/res/drawable/shape_circle.xml deleted file mode 100644 index 6dd59d214..000000000 --- a/old_samples/sample-users/src/main/res/drawable/shape_circle.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/layout/activity_show_user.xml b/old_samples/sample-users/src/main/res/layout/activity_show_user.xml deleted file mode 100644 index 65f1536dd..000000000 --- a/old_samples/sample-users/src/main/res/layout/activity_show_user.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/layout/activity_sign_in.xml b/old_samples/sample-users/src/main/res/layout/activity_sign_in.xml deleted file mode 100644 index f5ac43c5c..000000000 --- a/old_samples/sample-users/src/main/res/layout/activity_sign_in.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/layout/activity_sign_up.xml b/old_samples/sample-users/src/main/res/layout/activity_sign_up.xml deleted file mode 100644 index 274aebd3d..000000000 --- a/old_samples/sample-users/src/main/res/layout/activity_sign_up.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/layout/activity_users_list.xml b/old_samples/sample-users/src/main/res/layout/activity_users_list.xml deleted file mode 100644 index b8ebb63ee..000000000 --- a/old_samples/sample-users/src/main/res/layout/activity_users_list.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/layout/include_list_header.xml b/old_samples/sample-users/src/main/res/layout/include_list_header.xml deleted file mode 100644 index aa7dc061e..000000000 --- a/old_samples/sample-users/src/main/res/layout/include_list_header.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/layout/list_item_user.xml b/old_samples/sample-users/src/main/res/layout/list_item_user.xml deleted file mode 100644 index 93ee64b60..000000000 --- a/old_samples/sample-users/src/main/res/layout/list_item_user.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/menu/activity_sign_in_up.xml b/old_samples/sample-users/src/main/res/menu/activity_sign_in_up.xml deleted file mode 100644 index 1585314a8..000000000 --- a/old_samples/sample-users/src/main/res/menu/activity_sign_in_up.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/menu/activity_users_list.xml b/old_samples/sample-users/src/main/res/menu/activity_users_list.xml deleted file mode 100644 index 02b9e1de2..000000000 --- a/old_samples/sample-users/src/main/res/menu/activity_users_list.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/values/colors.xml b/old_samples/sample-users/src/main/res/values/colors.xml deleted file mode 100644 index 117503165..000000000 --- a/old_samples/sample-users/src/main/res/values/colors.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - #1f1f1f - #6e6e6e - #d3d3d3 - #757575 - #9e9e9e - #e0e0e0 - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/values/dimens.xml b/old_samples/sample-users/src/main/res/values/dimens.xml deleted file mode 100644 index 81519aa0d..000000000 --- a/old_samples/sample-users/src/main/res/values/dimens.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - -5dp - 3dp - 5dp - 8dp - 20dp - 80dp - - 8dp - 17dp - 34dp - - 16dp - 23dp - 26dp - - 12sp - 14sp - 16sp - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/values/strings.xml b/old_samples/sample-users/src/main/res/values/strings.xml deleted file mode 100644 index a9108fec7..000000000 --- a/old_samples/sample-users/src/main/res/values/strings.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - Users - Users Sample - User Details - Users - - Email - Password - User successfully logout! - User was successfully sign in! - - Signed In - Not Signed In - - Select User - Sign In - Sign Up - Check - Profile - LogOut - Updated! - - User - Username - Full name - Alex Bass - Alex "the King" Bass - alex@bass.com - Phone Number - Tags - - Confirm password - Passwords does not match! - error - Errors - Field is empty! - - \ No newline at end of file diff --git a/old_samples/sample-users/src/main/res/values/styles.xml b/old_samples/sample-users/src/main/res/values/styles.xml deleted file mode 100644 index 48410660f..000000000 --- a/old_samples/sample-users/src/main/res/values/styles.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/.gitignore b/old_samples/sample-videochat-conference/.gitignore deleted file mode 100644 index 796b96d1c..000000000 --- a/old_samples/sample-videochat-conference/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/old_samples/sample-videochat-conference/README.md b/old_samples/sample-videochat-conference/README.md deleted file mode 100755 index 416cc9a9a..000000000 --- a/old_samples/sample-videochat-conference/README.md +++ /dev/null @@ -1,154 +0,0 @@ -# Overview -QuickBlox provides the Multiparty Video Conferencing solution which allows to setup video conference between 10-12 people. It's built on top of WebRTC SFU technologies. - -Multi-conference server is available only for **Enterprise** plans, with additional **fee**. Please refer to https://quickblox.com/developers/EnterpriseFeatures for more information and contacts. - -# Features supported -* Video/Audio Conference with 10-12 people -* Join-Rejoin video room functionality (like Skype) -* Mute/Unmute audio/video stream (own and opponents) -* Display bitrate -* Switch video input device (camera) - -# Getting started - -

Integrate QuickBlox Conference sdk in your application. -For using conference chat based on WEBRTC technology in your app, you must add dependency:

- -
compile "com.quickblox:quickblox-android-sdk-conference:3.8.1"
- -

The next params can be set before start conference.

- -

ConferenceConfig class contains settings for conference:

- -
ConferenceConfig.setPlugin("");
-ConferenceConfig.setProtocol("");
-ConferenceConfig.setUrl("");
- -

Sign in user, create QBDialogType.GROUP dialog with users you want to join and create conference session:

- -
ConferenceClient client = ConferenceClient.getInstance(getApplicationContext());
-
-// Create session with Video or Audio type conference
-QBRTCTypes.QBConferenceType conferenceType = isVideoCall
-           ? QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO
-           : QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_AUDIO;
-
-client.createSession(userID, conferenceType, new ConferenceEntityCallback() {
-     @Override
-     public void onSuccess(ConferenceSession session) {
-         CallActivity.start(context, dialogID);
-     }
-
-});
- -

ConferenceClient instance - is a client model responsible for managing Conference session.

- -

ConferenceClient has setAutoSubscribeAfterJoin option, which means your client will be subscribing to all online publisher after join to room.

- -

ConferenceSession - is a session with certain Dialog, managing all current processes.

- -

Prepare your activity class to join in video room.

- -

In order to have an ability to receive callbacks about current ConferenceSession instance state and conference events, you must implement appropriate interfaces:

- -

For tracking connection state implement QBRTCSessionStateCallback:

- -
currentSession.addSessionCallbacksListener(this);
-currentSession.removeSessionCallbacksListener(this);
-
-/** -* Called when session state is changed -*/ -void onStateChanged(ConferenceSession session, BaseSession.QBRTCSessionState state); -
- -/** -*Called in case when connection with opponent is established -*/ -void onConnectedToUser(ConferenceSession session, Integer userID); - -
-/** -* Called in case when opponent disconnected -*/ -void onDisconnectedFromUser(ConferenceSession session, Integer userID); - -
-/** -* Called in case when connection closed with certain user. -*/ -void onConnectionClosedForUser(ConferenceSession session, Integer userID);
- -

For tracking conference events implement ConferenceSessionCallbacks:

- -
currentSession.addConferenceSessionListener(this);
-currentSession.removeConferenceSessionListener(this);
-
-
-/** -* Called when some publisher - is a user, joined to the video room -*/ -void onPublishersReceived(ArrayList<Integer> publishers); - -
-/** -* Called when some publisher left room -*/ -void onPublisherLeft(Integer userID); - -
-/** -* Called when Media - audio or video type is received -*/ -void onMediaReceived(String type, boolean success); - -
-/** -* Called when slowLink is received. SlowLink with uplink=true means you notified several missing packets from server, -* while uplink=false means server is not receiving all your packets. -*/ -void onSlowLinkReceived(boolean uplink, int nacks); - -
-/** -* Called when received errors from server -*/ -void onError(String error); - -
-/** -* Called when ConferenceSession is closed -*/ -void onSessionClosed(ConferenceSession session);
- -

For obtaining video and audio tracks implement interface QBRTCClientVideoTracksCallbacks and QBRTCClientAudioTracksCallbackRender. -For setting video track - the QBConferenceSurfaceView class is provided.

- -

Join to the room. - -

You can join to room as a listener or as a publisher. As listener you subscribe only to the publishers, not giving own video and audio streams.

- -
QBConferenceRole conferenceRole = asListenerRole ? QBConferenceRole.LISTENER : QBConferenceRole.PUBLISHER;
- -
currentSession.joinDialog(dialogID, conferenceRole, new QBEntityCallback<ArrayList<Integer>>());
- -

For subscribing to the active publisher: -java -currentSession.subscribeToPublisher(publisherId); -

- -

Note: You should subscribe to publishers only when session state becomes “connected”. Use “onStateChanged” callback method to track session states, as described in “sample-videochat-conference” code sample. -
If you are listener, then you can subscribe to publishers right after successful joinDialog.

- -

For unsubscribing from publisher:

- -
currentSession.unSubscribeFromPublisher(publisherId);
- -

To leave session:

- -
currentSession.leave();
- - - - diff --git a/old_samples/sample-videochat-conference/build.gradle b/old_samples/sample-videochat-conference/build.gradle deleted file mode 100644 index 7443b7108..000000000 --- a/old_samples/sample-videochat-conference/build.gradle +++ /dev/null @@ -1,91 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - flavorDimensions rootProject.dimensionDefault - - defaultConfig { - applicationId "com.quickblox.sample.conference" - minSdkVersion 16 - targetSdkVersion rootProject.targetSdkVersion - versionCode 223 - versionName "1.0.23" - -// ext.betaDistrubutionGroupAliases=testers_group_name -// ext.betaDistributionEmails=testers_emails - } - - productFlavors { - speedDev { - dimension rootProject.dimensionDefault - minSdkVersion 21 - } - dev { - dimension rootProject.dimensionDefault - minSdkVersion 16 - } - } - - buildTypes { - debug { - resValue "string", "versionName", "QuickBlox WebRTC\nBuild version " + defaultConfig.getVersionName() - signingConfig signingConfigs.debug - } - - release { - resValue "string", "versionName", "QuickBlox WebRTC\nBuild version " + defaultConfig.getVersionName() - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - lintOptions { - abortOnError false - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } -} - -dependencies { - implementation project(':sample-core') - - implementation "com.quickblox:quickblox-android-sdk-conference:$rootProject.qbSdkVersion" - - implementation "com.google.android.material:material:${rootProject.materialVersion}" - implementation "androidx.fragment:fragment:${rootProject.fragmentAndroidXVersion}" - implementation "androidx.lifecycle:lifecycle-viewmodel:${rootProject.lifecycleViewmodelAndroidXVersion}" - implementation "com.navercorp.pulltorefresh:library:${rootProject.pullToRefreshVersion}@aar" - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } - implementation "com.github.bumptech.glide:glide:${rootProject.glideVersion}" -} - -apply from: "../artifacts.gradle" \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/proguard-rules.pro b/old_samples/sample-videochat-conference/proguard-rules.pro deleted file mode 100644 index 074cabaef..000000000 --- a/old_samples/sample-videochat-conference/proguard-rules.pro +++ /dev/null @@ -1,25 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in C:\Users\Roman\AppData\Local\Android\Sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/old_samples/sample-videochat-conference/src/main/AndroidManifest.xml b/old_samples/sample-videochat-conference/src/main/AndroidManifest.xml deleted file mode 100644 index eca82bd6c..000000000 --- a/old_samples/sample-videochat-conference/src/main/AndroidManifest.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/assets/qb_config.json b/old_samples/sample-videochat-conference/src/main/assets/qb_config.json deleted file mode 100644 index 4785838a0..000000000 --- a/old_samples/sample-videochat-conference/src/main/assets/qb_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "account_key": "C4_z7nuaANnBYmsG_k98", - "janus_server_url": "" -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/App.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/App.java deleted file mode 100644 index 751e306e3..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/App.java +++ /dev/null @@ -1,50 +0,0 @@ -package com.quickblox.sample.conference; - -import android.text.TextUtils; - -import com.crashlytics.android.Crashlytics; -import com.quickblox.conference.ConferenceConfig; -import com.quickblox.sample.conference.util.QBResRequestExecutor; -import com.quickblox.sample.core.CoreApp; - -import io.fabric.sdk.android.Fabric; - -public class App extends CoreApp { - private static App instance; - private QBResRequestExecutor qbResRequestExecutor; - - public static App getInstance() { - return instance; - } - - @Override - public void onCreate() { - super.onCreate(); - Fabric.with(this, new Crashlytics()); - initApplication(); - initConferenceConfig(); - checkMultiServer(); - } - - private void initApplication() { - instance = this; - } - - private void initConferenceConfig() { - if (!TextUtils.isEmpty(qbConfigs.getJanusServerUrl())) { - ConferenceConfig.setUrl(qbConfigs.getJanusServerUrl()); - } - } - - private void checkMultiServer() { - if (ConferenceConfig.getUrl() == null) { - throw new AssertionError(getString(R.string.error_server_url_null)); - } - } - - public synchronized QBResRequestExecutor getQbResRequestExecutor() { - return qbResRequestExecutor == null - ? qbResRequestExecutor = new QBResRequestExecutor() - : qbResRequestExecutor; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/BaseActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/BaseActivity.java deleted file mode 100644 index 57ba45227..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/BaseActivity.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.app.ProgressDialog; -import android.content.DialogInterface; -import android.os.Bundle; -import android.view.KeyEvent; -import android.view.View; - -import com.quickblox.sample.conference.App; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.util.QBResRequestExecutor; -import com.quickblox.sample.conference.utils.Consts; -import com.quickblox.sample.core.gcm.GooglePlayServicesHelper; -import com.quickblox.sample.core.ui.activity.CoreBaseActivity; -import com.quickblox.sample.core.utils.ErrorUtils; -import com.quickblox.sample.core.utils.SharedPrefsHelper; - -import androidx.annotation.StringRes; - -/** - * QuickBlox team - */ -public abstract class BaseActivity extends CoreBaseActivity { - - SharedPrefsHelper sharedPrefsHelper; - private ProgressDialog progressDialog; - protected GooglePlayServicesHelper googlePlayServicesHelper; - protected QBResRequestExecutor requestExecutor; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - requestExecutor = App.getInstance().getQbResRequestExecutor(); - sharedPrefsHelper = SharedPrefsHelper.getInstance(); - googlePlayServicesHelper = new GooglePlayServicesHelper(); - } - - public void initDefaultActionBar() { - String currentUserFullName = ""; - String currentRoomName = sharedPrefsHelper.get(Consts.PREF_CURREN_ROOM_NAME, ""); - - if (sharedPrefsHelper.getQbUser() != null) { - currentUserFullName = sharedPrefsHelper.getQbUser().getFullName(); - } - - setActionBarTitle(currentRoomName); - setActionbarSubTitle(String.format(getString(R.string.subtitle_text_logged_in_as), currentUserFullName)); - } - - - public void setActionbarSubTitle(String subTitle) { - if (actionBar != null) - actionBar.setSubtitle(subTitle); - } - - public void removeActionbarSubTitle() { - if (actionBar != null) - actionBar.setSubtitle(null); - } - - void showProgressDialog(@StringRes int messageId) { - if (progressDialog == null) { - progressDialog = new ProgressDialog(this); - progressDialog.setIndeterminate(true); - progressDialog.setCancelable(false); - progressDialog.setCanceledOnTouchOutside(false); - - // Disable the back button - DialogInterface.OnKeyListener keyListener = new DialogInterface.OnKeyListener() { - @Override - public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - return keyCode == KeyEvent.KEYCODE_BACK; - } - }; - progressDialog.setOnKeyListener(keyListener); - } - - progressDialog.setMessage(getString(messageId)); - - progressDialog.show(); - - } - - void hideProgressDialog() { - if (progressDialog != null && progressDialog.isShowing()) { - progressDialog.dismiss(); - } - } - - protected void showErrorSnackbar(@StringRes int resId, Exception e, - View.OnClickListener clickListener) { - if (getSnackbarAnchorView() != null) { - ErrorUtils.showSnackbar(getSnackbarAnchorView(), resId, e, - com.quickblox.sample.core.R.string.dlg_retry, clickListener); - } - } - - protected abstract View getSnackbarAnchorView(); -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/CallActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/CallActivity.java deleted file mode 100644 index e17418ea7..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/CallActivity.java +++ /dev/null @@ -1,595 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.os.Handler; -import android.preference.PreferenceManager; -import android.util.Log; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.quickblox.conference.ConferenceClient; -import com.quickblox.conference.ConferenceSession; -import com.quickblox.conference.QBConferenceRole; -import com.quickblox.conference.WsException; -import com.quickblox.conference.WsHangUpException; -import com.quickblox.conference.WsNoResponseException; -import com.quickblox.conference.callbacks.ConferenceEntityCallback; -import com.quickblox.conference.callbacks.ConferenceSessionCallbacks; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.fragments.AudioConversationFragment; -import com.quickblox.sample.conference.fragments.BaseConversationFragment; -import com.quickblox.sample.conference.fragments.ConversationFragmentCallbackListener; -import com.quickblox.sample.conference.fragments.OnCallEventsController; -import com.quickblox.sample.conference.fragments.VideoConversationFragment; -import com.quickblox.sample.conference.util.NetworkConnectionChecker; -import com.quickblox.sample.conference.utils.Consts; -import com.quickblox.sample.conference.utils.FragmentExecuotr; -import com.quickblox.sample.conference.utils.SettingsUtil; -import com.quickblox.sample.conference.utils.WebRtcSessionManager; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.videochat.webrtc.AppRTCAudioManager; -import com.quickblox.videochat.webrtc.BaseSession; -import com.quickblox.videochat.webrtc.QBRTCCameraVideoCapturer; -import com.quickblox.videochat.webrtc.QBRTCConfig; -import com.quickblox.videochat.webrtc.QBRTCTypes; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback; - -import org.webrtc.CameraVideoCapturer; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; - -import androidx.fragment.app.Fragment; - -/** - * QuickBlox team - */ -public class CallActivity extends BaseActivity implements QBRTCSessionStateCallback, ConferenceSessionCallbacks, - OnCallEventsController, ConversationFragmentCallbackListener, NetworkConnectionChecker.OnConnectivityChangedListener { - - private static final String TAG = CallActivity.class.getSimpleName(); - private static final String ICE_FAILED_REASON = "ICE failed"; - - private ConferenceSession currentSession; - private String hangUpReason; - private ConferenceClient rtcClient; - private OnChangeDynamicToggle onChangeDynamicCallback; - private SharedPreferences sharedPref; - private LinearLayout connectionView; - private AppRTCAudioManager audioManager; - private NetworkConnectionChecker networkConnectionChecker; - private WebRtcSessionManager sessionManager; - private boolean isVideoCall; - private ArrayList currentCallStateCallbackList = new ArrayList<>(); - private ArrayList opponentsIdsList; - private boolean callStarted; - private boolean previousDeviceEarPiece; - private boolean showToastAfterHeadsetPlugged = true; - private Set subscribedPublishers = new CopyOnWriteArraySet<>(); - private volatile boolean connectedToJanus; - private String dialogID; - private boolean readyToSubscribe; - private boolean asListenerRole; - - - public static void start(Context context, String dialogID, List occupants, boolean listenerRole) { - - Intent intent = new Intent(context, CallActivity.class); - intent.putExtra(Consts.EXTRA_DIALOG_ID, dialogID); - intent.putExtra(Consts.EXTRA_DIALOG_OCCUPANTS, (Serializable) occupants); - intent.putExtra(Consts.EXTRA_AS_LISTENER, listenerRole); - - context.startActivity(intent); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - parseIntentExtras(); - - sessionManager = WebRtcSessionManager.getInstance(this); - if (!currentSessionExist()) { - //we have already currentSession == null, so it's no reason to do further initialization - finish(); - Log.d(TAG, "finish CallActivity"); - return; - } - isVideoCall = QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO.equals(currentSession.getConferenceType()); - initCurrentSession(currentSession); - - PreferenceManager.setDefaultValues(this, R.xml.preferences, false); - sharedPref = PreferenceManager.getDefaultSharedPreferences(this); - initConferenceClient(); - initAudioManager(); - initWiFiManagerListener(); - - connectionView = (LinearLayout) View.inflate(this, R.layout.connection_popup, null); - - startConversationFragment(); - } - - private boolean currentSessionExist() { - currentSession = sessionManager.getCurrentSession(); - return currentSession != null; - } - - @Override - protected View getSnackbarAnchorView() { - return null; - } - - private void parseIntentExtras() { - dialogID = getIntent().getExtras().getString(Consts.EXTRA_DIALOG_ID); - opponentsIdsList = (ArrayList) getIntent().getSerializableExtra(Consts.EXTRA_DIALOG_OCCUPANTS); - asListenerRole = getIntent().getBooleanExtra(Consts.EXTRA_AS_LISTENER, false); - } - - private void initAudioManager() { - audioManager = AppRTCAudioManager.create(this, new AppRTCAudioManager.OnAudioManagerStateListener() { - @Override - public void onAudioChangedState(AppRTCAudioManager.AudioDevice audioDevice) { - if (callStarted) { - if (audioManager.getSelectedAudioDevice() == AppRTCAudioManager.AudioDevice.EARPIECE) { - previousDeviceEarPiece = true; - } else if (audioManager.getSelectedAudioDevice() == AppRTCAudioManager.AudioDevice.SPEAKER_PHONE) { - previousDeviceEarPiece = false; - } - if (showToastAfterHeadsetPlugged) { - Toaster.shortToast("Audio device switched to " + audioDevice); - } - } - } - }); - - if (isVideoCall) { - audioManager.setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE); - Log.d(TAG, "AppRTCAudioManager.AudioDevice.SPEAKER_PHONE"); - } else { - audioManager.setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE); - previousDeviceEarPiece = true; - Log.d(TAG, "AppRTCAudioManager.AudioDevice.EARPIECE"); - } - - audioManager.setOnWiredHeadsetStateListener(new AppRTCAudioManager.OnWiredHeadsetStateListener() { - @Override - public void onWiredHeadsetStateChanged(boolean plugged, boolean hasMicrophone) { - if (callStarted) { - Toaster.shortToast("Headset " + (plugged ? "plugged" : "unplugged")); - } - if (onChangeDynamicCallback != null) { - if (!plugged) { - showToastAfterHeadsetPlugged = false; - if (previousDeviceEarPiece) { - setAudioDeviceDelayed(AppRTCAudioManager.AudioDevice.EARPIECE); - } else { - setAudioDeviceDelayed(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE); - } - } - onChangeDynamicCallback.enableDynamicToggle(plugged, previousDeviceEarPiece); - } - } - }); - audioManager.init(); - } - - private void setAudioDeviceDelayed(final AppRTCAudioManager.AudioDevice audioDevice) { - new Handler().postDelayed(new Runnable() { - @Override - public void run() { - showToastAfterHeadsetPlugged = true; - audioManager.setAudioDevice(audioDevice); - } - }, 500); - } - - private void initConferenceClient() { - rtcClient = ConferenceClient.getInstance(this); - - rtcClient.setCameraErrorHandler(new CameraVideoCapturer.CameraEventsHandler() { - @Override - public void onCameraError(final String s) { - - showToast("Camera error: " + s); - } - - @Override - public void onCameraDisconnected() { - showToast("Camera onCameraDisconnected: "); - } - - @Override - public void onCameraFreezed(String s) { - showToast("Camera freezed: " + s); - if (currentSession != null) { - leaveCurrentSession(); - } - } - - @Override - public void onCameraOpening(String s) { - showToast("Camera aOpening: " + s); - } - - @Override - public void onFirstFrameAvailable() { - showToast("onFirstFrameAvailable: "); - } - - @Override - public void onCameraClosed() { - } - }); - - - // Configure - // - SettingsUtil.setSettingsStrategy(opponentsIdsList, sharedPref, CallActivity.this); - QBRTCConfig.setDebugEnabled(true); - } - - @Override - public void connectivityChanged(boolean availableNow) { - if (callStarted) { - showToast("Internet connection " + (availableNow ? "available" : " unavailable")); - } - } - - private void showNotificationPopUp(final int text, final boolean show) { - runOnUiThread(new Runnable() { - @Override - public void run() { - if (show) { - ((TextView) connectionView.findViewById(R.id.notification)).setText(text); - if (connectionView.getParent() == null) { - ((ViewGroup) CallActivity.this.findViewById(R.id.fragment_container)).addView(connectionView); - } - } else { - ((ViewGroup) CallActivity.this.findViewById(R.id.fragment_container)).removeView(connectionView); - } - } - }); - - } - - private void initWiFiManagerListener() { - networkConnectionChecker = new NetworkConnectionChecker(getApplication()); - } - - public void leaveCurrentSession() { - currentSession.leave(); - } - - private void setAudioEnabled(boolean isAudioEnabled) { - if (currentSession != null && currentSession.getMediaStreamManager() != null) { - currentSession.getMediaStreamManager().getLocalAudioTrack().setEnabled(isAudioEnabled); - } - } - - private void setVideoEnabled(boolean isVideoEnabled) { - if (currentSession != null && currentSession.getMediaStreamManager() != null) { - currentSession.getMediaStreamManager().getLocalVideoTrack().setEnabled(isVideoEnabled); - } - } - - @Override - protected void onResume() { - super.onResume(); - readyToSubscribe = true; - subscribeToPublishersIfNeed(); - networkConnectionChecker.registerListener(this); - } - - private void subscribeToPublishersIfNeed() { - Set notSubscribedPublishers = new CopyOnWriteArraySet<>(currentSession.getActivePublishers()); - notSubscribedPublishers.removeAll(subscribedPublishers); - if (!notSubscribedPublishers.isEmpty()) { - subscribeToPublishers(new ArrayList<>(notSubscribedPublishers)); - } - } - - @Override - protected void onPause() { - super.onPause(); - readyToSubscribe = false; - networkConnectionChecker.unregisterListener(this); - } - - @Override - protected void onStop() { - super.onStop(); - } - - - public void initCurrentSession(ConferenceSession session) { - if (session != null) { - Log.d(TAG, "Init new ConferenceSession"); - this.currentSession = session; - this.currentSession.addSessionCallbacksListener(CallActivity.this); - this.currentSession.addConferenceSessionListener(CallActivity.this); - } - } - - public void releaseCurrentSession() { - Log.d(TAG, "Release current session"); - if (currentSession != null) { - leaveCurrentSession(); - this.currentSession.removeSessionCallbacksListener(CallActivity.this); - this.currentSession.removeConferenceSessionListener(CallActivity.this); - this.currentSession = null; - } - } - - // ---------------Chat callback methods implementation ----------------------// - - - @Override - public void onConnectionClosedForUser(ConferenceSession session, Integer userID) { - Log.d(TAG, "QBRTCSessionStateCallbackImpl onConnectionClosedForUser userID=" + userID); - // Close app after session close of network was disabled - if (hangUpReason != null && hangUpReason.equals(Consts.WIFI_DISABLED)) { - Intent returnIntent = new Intent(); - setResult(Consts.CALL_ACTIVITY_CLOSE_WIFI_DISABLED, returnIntent); - finish(); - } - } - - @Override - public void onConnectedToUser(ConferenceSession session, final Integer userID) { - Log.d(TAG, "onConnectedToUser userID= " + userID + " sessionID= " + session.getSessionID()); - callStarted = true; - notifyCallStateListenersCallStarted(); - - Log.d(TAG, "onConnectedToUser() is started"); - } - - @Override - public void onStateChanged(ConferenceSession session, BaseSession.QBRTCSessionState state) { - if (BaseSession.QBRTCSessionState.QB_RTC_SESSION_CONNECTED.equals(state)) { - connectedToJanus = true; - Log.d(TAG, "onStateChanged and begin subscribeToPublishersIfNeed"); - subscribeToPublishersIfNeed(); - } - } - - @Override - public void onDisconnectedFromUser(ConferenceSession session, Integer userID) { - Log.d(TAG, "QBRTCSessionStateCallbackImpl onDisconnectedFromUser userID=" + userID); - } - - private void showToast(final int message) { - runOnUiThread(new Runnable() { - @Override - public void run() { - Toaster.shortToast(message); - } - }); - } - - private void showToast(final String message) { - runOnUiThread(new Runnable() { - @Override - public void run() { - Toaster.shortToast(message); - } - }); - } - - - private Fragment getCurrentFragment() { - return getSupportFragmentManager().findFragmentById(R.id.fragment_container); - } - - private void startConversationFragment() { - Bundle bundle = new Bundle(); - bundle.putIntegerArrayList(Consts.EXTRA_DIALOG_OCCUPANTS, opponentsIdsList); - bundle.putBoolean(Consts.EXTRA_AS_LISTENER, asListenerRole); - BaseConversationFragment conversationFragment = BaseConversationFragment.newInstance( - isVideoCall - ? new VideoConversationFragment() - : new AudioConversationFragment()); - conversationFragment.setArguments(bundle); - FragmentExecuotr.addFragment(getSupportFragmentManager(), R.id.fragment_container, conversationFragment, conversationFragment.getClass().getSimpleName()); - } - - - public void onUseHeadSet(boolean use) { - audioManager.setManageHeadsetByDefault(use); - } - - @Override - public void onBackPressed() { - } - - ////////////////////////////// ConversationFragmentCallbackListener //////////////////////////// - - @Override - public void addClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks) { - if (currentSession != null) { - currentSession.addSessionCallbacksListener(clientConnectionCallbacks); - } - } - - @Override - public void onSetAudioEnabled(boolean isAudioEnabled) { - setAudioEnabled(isAudioEnabled); - } - - @Override - public void onLeaveCurrentSession() { - leaveCurrentSession(); - } - - @Override - public void onSwitchCamera(CameraVideoCapturer.CameraSwitchHandler cameraSwitchHandler) { - ((QBRTCCameraVideoCapturer) (currentSession.getMediaStreamManager().getVideoCapturer())) - .switchCamera(cameraSwitchHandler); - } - - @Override - public void onStartJoinConference() { - int userID = currentSession.getCurrentUserID(); - QBConferenceRole conferenceRole = asListenerRole ? QBConferenceRole.LISTENER : QBConferenceRole.PUBLISHER; - currentSession.joinDialog(dialogID, conferenceRole, new JoinedCallback(userID)); - } - - @Override - public void onSetVideoEnabled(boolean isNeedEnableCam) { - setVideoEnabled(isNeedEnableCam); - } - - @Override - public void onSwitchAudio() { - if (audioManager.getSelectedAudioDevice() == AppRTCAudioManager.AudioDevice.WIRED_HEADSET - || audioManager.getSelectedAudioDevice() == AppRTCAudioManager.AudioDevice.EARPIECE) { - audioManager.setAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE); - } else { - audioManager.setAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE); - } - } - - @Override - public void removeClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks) { - if (currentSession != null) { - currentSession.removeSessionCallbacksListener(clientConnectionCallbacks); - } - } - - @Override - public void addCurrentCallStateCallback(CurrentCallStateCallback currentCallStateCallback) { - currentCallStateCallbackList.add(currentCallStateCallback); - } - - @Override - public void removeCurrentCallStateCallback(CurrentCallStateCallback currentCallStateCallback) { - currentCallStateCallbackList.remove(currentCallStateCallback); - } - - @Override - public void addOnChangeDynamicToggle(OnChangeDynamicToggle onChangeDynamicCallback) { - this.onChangeDynamicCallback = onChangeDynamicCallback; - } - - @Override - public void removeOnChangeDynamicToggle(OnChangeDynamicToggle onChangeDynamicCallback) { - this.onChangeDynamicCallback = null; - } - - ////////////////////////////// ConferenceSessionCallbacks //////////////////////////// - - private void subscribeToPublishers(ArrayList publishersList) { - subscribedPublishers.addAll(currentSession.getActivePublishers()); - for (Integer publisher : publishersList) { - currentSession.subscribeToPublisher(publisher); - } - } - - @Override - public void onPublishersReceived(ArrayList publishersList) { - Log.d(TAG, "OnPublishersReceived connectedToJanus " + connectedToJanus + ", readyToSubscribe= " + readyToSubscribe); - if (connectedToJanus && readyToSubscribe) { - subscribedPublishers.addAll(publishersList); - subscribeToPublishers(publishersList); - } - } - - @Override - public void onPublisherLeft(Integer userID) { - Log.d(TAG, "OnPublisherLeft userID" + userID); - subscribedPublishers.remove(userID); - } - - @Override - public void onMediaReceived(String type, boolean success) { - Log.d(TAG, "OnMediaReceived type " + type + ", success" + success); - } - - @Override - public void onSlowLinkReceived(boolean uplink, int nacks) { - Log.d(TAG, "OnSlowLinkReceived uplink " + uplink + ", nacks" + nacks); - } - - @Override - public void onError(WsException exception) { - Log.d(TAG, "OnError getClass= " + exception.getClass()); - if (WsHangUpException.class.isInstance(exception)) { - Log.d(TAG, "OnError exception= " + exception.getMessage()); - if (exception.getMessage().equals(ICE_FAILED_REASON)) { - showToast(exception.getMessage()); - releaseCurrentSession(); - finish(); - } - } else { - showToast((WsNoResponseException.class.isInstance(exception)) ? getString(R.string.packet_failed) : exception.getMessage()); - } - } - - @Override - public void onSessionClosed(final ConferenceSession session) { - Log.d(TAG, "Session " + session.getSessionID() + " start stop session"); - - if (session.equals(currentSession)) { - Log.d(TAG, "Stop session"); - - if (audioManager != null) { - audioManager.close(); - } - releaseCurrentSession(); - - finish(); - } - } - - ////////////////////////////////////////// end ///////////////////////////////////////////// - - public interface OnChangeDynamicToggle { - void enableDynamicToggle(boolean plugged, boolean wasEarpiece); - } - - - public interface CurrentCallStateCallback { - void onCallStarted(); - } - - private void notifyCallStateListenersCallStarted() { - for (CurrentCallStateCallback callback : currentCallStateCallbackList) { - callback.onCallStarted(); - } - } - - private class JoinedCallback implements ConferenceEntityCallback> { - Integer userID; - - JoinedCallback(Integer userID) { - this.userID = userID; - } - - @Override - public void onSuccess(ArrayList publishers) { - Log.d(TAG, "onSuccess joinDialog sessionUserID= " + userID + ", publishers= " + publishers); - if (rtcClient.isAutoSubscribeAfterJoin()) { - subscribedPublishers.addAll(publishers); - } - if (asListenerRole) { - connectedToJanus = true; - } - } - - @Override - public void onError(WsException exception) { - Log.d(TAG, "onError joinDialog exception= " + exception); - showToast("Join exception: " + exception.getMessage()); - releaseCurrentSession(); - finish(); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/DialogsActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/DialogsActivity.java deleted file mode 100644 index 2ae4f9e18..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/DialogsActivity.java +++ /dev/null @@ -1,429 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ListView; - -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.conference.ConferenceClient; -import com.quickblox.conference.ConferenceSession; -import com.quickblox.conference.WsException; -import com.quickblox.conference.callbacks.ConferenceEntityCallback; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.adapters.DialogsAdapter; -import com.quickblox.sample.conference.db.QbUsersDbManager; -import com.quickblox.sample.conference.utils.Consts; -import com.quickblox.sample.conference.utils.PermissionsChecker; -import com.quickblox.sample.conference.utils.UsersUtils; -import com.quickblox.sample.conference.utils.WebRtcSessionManager; -import com.quickblox.sample.core.ui.dialog.ProgressDialogFragment; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.QBRTCTypes; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import androidx.appcompat.view.ActionMode; - - -public class DialogsActivity extends BaseActivity { - private static final String TAG = DialogsActivity.class.getSimpleName(); - private static final int REQUEST_SELECT_PEOPLE = 174; - private static final int REQUEST_PERMISSION = 175; - - private DialogsAdapter dialogsAdapter; - private ListView dialogsListView; - private QBUser currentUser; - private ArrayList chatDialogs; - private QbUsersDbManager dbManager; - private WebRtcSessionManager webRtcSessionManager; - private ActionMode currentActionMode; - private FloatingActionButton fab; - private String dialogID; - private List occupants; - private boolean isVideoCall; - - private PermissionsChecker checker; - - public static void start(Context context) { - Intent intent = new Intent(context, DialogsActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_dialogs); - initFields(); - - initDefaultActionBar(); - - initUi(); - - startLoadDialogs(); - loadUsersFromQb(); - - checker = new PermissionsChecker(getApplicationContext()); - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.list_dialogs); - } - - private void initFields() { - Bundle extras = getIntent().getExtras(); - - currentUser = sharedPrefsHelper.getQbUser(); - dbManager = QbUsersDbManager.getInstance(getApplicationContext()); - webRtcSessionManager = WebRtcSessionManager.getInstance(getApplicationContext()); - } - - private void initUi() { - dialogsListView = (ListView) findViewById(R.id.list_dialogs); - fab = _findViewById(R.id.fab_dialogs_new_chat); - } - - private void startLoadDialogs() { - showProgressDialog(R.string.dlg_loading_dialogs_users); - requestExecutor.loadDialogs(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList result, Bundle params) { - hideProgressDialog(); - chatDialogs = result; - initDialogAdapter(); - } - - @Override - public void onError(QBResponseException responseException) { - hideProgressDialog(); - showErrorSnackbar(R.string.loading_users_error, responseException, new View.OnClickListener() { - @Override - public void onClick(View v) { - startLoadDialogs(); - } - }); - } - }); - } - - private void loadUsersFromQb() { - showProgressDialog(R.string.dlg_loading_dialogs_users); - String currentRoomName = SharedPrefsHelper.getInstance().get(Consts.PREF_CURREN_ROOM_NAME); - - requestExecutor.loadUsersByTag(currentRoomName, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList result, Bundle params) { - hideProgressDialog(); - dbManager.saveAllUsers(result, true); - } - - @Override - public void onError(QBResponseException responseException) { - hideProgressDialog(); - showErrorSnackbar(R.string.loading_users_error, responseException, new View.OnClickListener() { - @Override - public void onClick(View v) { - loadUsersFromQb(); - } - }); - } - }); - } - - @Override - public ActionMode startSupportActionMode(ActionMode.Callback callback) { - currentActionMode = super.startSupportActionMode(callback); - return currentActionMode; - } - - private void initDialogAdapter() { - Log.d(TAG, "proceedInitUsersList chatDialogs= " + chatDialogs); - if (dialogsAdapter == null) { - dialogsAdapter = new DialogsAdapter(this, chatDialogs); - dialogsListView.setAdapter(dialogsAdapter); - dialogsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - QBChatDialog selectedDialog = (QBChatDialog) parent.getItemAtPosition(position); - if (currentActionMode == null) { - Log.d(TAG, "startConference selectedDialog.getDialogId()= " + selectedDialog.getDialogId() - + ", currentUser.getId()= " + currentUser.getId()); - occupants = selectedDialog.getOccupants(); - occupants.remove(currentUser.getId()); - dialogID = selectedDialog.getDialogId(); - - - dialogsAdapter.toggleOneItem(selectedDialog); - invalidateOptionsMenu(); - - } else { - dialogsAdapter.toggleSelection(selectedDialog); - updateActionBar(dialogsAdapter.getSelectedItems().size()); - } - } - }); - dialogsListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { - @Override - public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { - QBChatDialog selectedDialog = (QBChatDialog) parent.getItemAtPosition(position); - startSupportActionMode(new DeleteActionModeCallback()); - dialogsAdapter.selectItem(selectedDialog); - updateActionBar(dialogsAdapter.getSelectedItems().size()); - return true; - } - }); - } else { - dialogsAdapter.updateList(chatDialogs); - } - } - - private void startPermissionsActivity(boolean checkOnlyAudio) { - PermissionsActivity.startForResult(this, REQUEST_PERMISSION, checkOnlyAudio, Consts.PERMISSIONS); - } - - private void updateActionBar(int countSelectedUsers) { - currentActionMode.setSubtitle(null); - currentActionMode.setTitle(String.format(getString( - countSelectedUsers > 1 - ? R.string.tile_many_dialogs_selected - : R.string.title_one_dialog_selected), - countSelectedUsers)); - currentActionMode.invalidate(); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - if (dialogsAdapter != null && !dialogsAdapter.getSelectedItems().isEmpty()) { - getMenuInflater().inflate(R.menu.activity_selected_opponents, menu); - } else { - getMenuInflater().inflate(R.menu.activity_opponents, menu); - } - - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - - switch (id) { - case R.id.update_opponents_list: - updateDialogsAdapter(); - loadUsersFromQb(); - return true; - - case R.id.settings: - showSettings(); - return true; - - case R.id.log_out: - logOut(); - return true; - - case R.id.start_video_call: - isVideoCall = true; - startConference(); - return true; - - case R.id.start_audio_call: - isVideoCall = false; - startConference(); - return true; - - case R.id.start_as_listener: - isVideoCall = true; - startConference(dialogID, currentUser.getId(), isVideoCall, occupants, true); - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - private void startConference() { - if (checker.lacksPermissions(Consts.PERMISSIONS)) { - startPermissionsActivity(!isVideoCall); - } else { - startConference(dialogID, currentUser.getId(), isVideoCall, occupants, false); - } - } - - private void updateDialogsAdapter() { - startLoadDialogs(); - } - - private void showSettings() { - SettingsActivity.start(this); - } - - private void logOut() { - removeAllUserData(); - startLoginActivity(); - } - - - private void removeAllUserData() { - UsersUtils.removeUserData(getApplicationContext()); - requestExecutor.deleteCurrentUser(currentUser.getId(), new QBEntityCallback() { - @Override - public void onSuccess(Void aVoid, Bundle bundle) { - Log.d(TAG, "Current user was deleted from QB"); - } - - @Override - public void onError(QBResponseException e) { - Log.e(TAG, "Current user wasn't deleted from QB " + e); - } - }); - } - - private void startLoginActivity() { - LoginActivity.start(this); - finish(); - } - - public void onCreateNewDialog(View view) { - SelectUsersActivity.startForResult(this, REQUEST_SELECT_PEOPLE); - } - - @SuppressWarnings("unchecked") - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == RESULT_OK) { - if (requestCode == REQUEST_SELECT_PEOPLE) { - ArrayList selectedUsers = (ArrayList) data - .getSerializableExtra(SelectUsersActivity.EXTRA_QB_USERS); - - ProgressDialogFragment.show(getSupportFragmentManager(), R.string.create_dialog); - createDialog(selectedUsers); - } - if (requestCode == REQUEST_PERMISSION) { - startConference(dialogID, currentUser.getId(), isVideoCall, occupants, false); - } else { - updateDialogsAdapter(); - } - } - } - - private void createDialog(final ArrayList selectedUsers) { - requestExecutor.createDialogWithSelectedUsers(selectedUsers, currentUser, - new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - // dialogsManager.sendSystemMessageAboutCreatingDialog(systemMessagesManager, dialog); - Log.d(TAG, "createDialogWithSelectedUsers dialog name= " + dialog.getName()); - updateDialogsAdapter(); - ProgressDialogFragment.hide(getSupportFragmentManager()); - } - - @Override - public void onError(QBResponseException e) { - ProgressDialogFragment.hide(getSupportFragmentManager()); - showErrorSnackbar(R.string.dialogs_creation_error, null, null); - } - } - ); - } - - private class DeleteActionModeCallback implements ActionMode.Callback { - - public DeleteActionModeCallback() { - fab.hide(); - } - - @Override - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - mode.getMenuInflater().inflate(R.menu.activity_selected_dialogs, menu); - return true; - } - - @Override - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - return false; - } - - @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - switch (item.getItemId()) { - case R.id.delete_dialog: - deleteSelectedDialogs(); - if (currentActionMode != null) { - currentActionMode.finish(); - } - return true; - } - return false; - } - - @Override - public void onDestroyActionMode(ActionMode mode) { - currentActionMode = null; - dialogsAdapter.clearSelection(); - invalidateOptionsMenu(); - fab.show(); - } - - - private void deleteSelectedDialogs() { - final Collection selectedDialogs = dialogsAdapter.getSelectedItems(); - requestExecutor.deleteDialogs(selectedDialogs, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList dialogsIds, Bundle bundle) { - updateDialogsAdapter(); - } - - @Override - public void onError(QBResponseException e) { - showErrorSnackbar(R.string.dialogs_deletion_error, e, - new View.OnClickListener() { - @Override - public void onClick(View v) { - deleteSelectedDialogs(); - } - }); - } - }); - } - } - - private void startConference(final String dialogID, int userID, boolean isVideoCall, final List occupants, final boolean asListener) { - Log.d(TAG, "startConference()"); - ProgressDialogFragment.show(getSupportFragmentManager(), R.string.join_conference); - ConferenceClient client = ConferenceClient.getInstance(getApplicationContext()); - - QBRTCTypes.QBConferenceType conferenceType = isVideoCall - ? QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO - : QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_AUDIO; - - client.createSession(userID, conferenceType, new ConferenceEntityCallback() { - @Override - public void onSuccess(ConferenceSession session) { - ProgressDialogFragment.hide(getSupportFragmentManager()); - webRtcSessionManager.setCurrentSession(session); - Log.d(TAG, "DialogActivity setCurrentSession onSuccess() session getCurrentUserID= " + session.getCurrentUserID()); - - CallActivity.start(DialogsActivity.this, dialogID, occupants, asListener); - } - - @Override - public void onError(WsException responseException) { - ProgressDialogFragment.hide(getSupportFragmentManager()); - showErrorSnackbar(R.string.join_conference_error, null, null); - } - }); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/LoginActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/LoginActivity.java deleted file mode 100644 index ee80569bf..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/LoginActivity.java +++ /dev/null @@ -1,244 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.EditText; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.helper.Utils; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.utils.Consts; -import com.quickblox.sample.conference.utils.UsersUtils; -import com.quickblox.sample.conference.utils.ValidationUtils; -import com.quickblox.sample.core.utils.KeyboardUtils; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.users.model.QBUser; - -import androidx.annotation.Nullable; - -public class LoginActivity extends BaseActivity { - - private String TAG = LoginActivity.class.getSimpleName(); - - private EditText userNameEditText; - private EditText chatRoomNameEditText; - - private QBUser userForSave; - - public static void start(Context context) { - Intent intent = new Intent(context, LoginActivity.class); - context.startActivity(intent); - } - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_login); - - initUI(); - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.root_view_login_activity); - } - - private void initUI() { - setActionBarTitle(R.string.title_login_activity); - userNameEditText = (EditText) findViewById(R.id.user_name); - userNameEditText.addTextChangedListener(new LoginEditTextWatcher(userNameEditText)); - - chatRoomNameEditText = (EditText) findViewById(R.id.chat_room_name); - chatRoomNameEditText.addTextChangedListener(new LoginEditTextWatcher(chatRoomNameEditText)); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.activity_login, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - - switch (item.getItemId()) { - case R.id.menu_login_user_done: - if (isEnteredUserNameValid() && isEnteredRoomNameValid()) { - hideKeyboard(); - startSignUpNewUser(createUserWithEnteredData()); - } - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - private boolean isEnteredRoomNameValid() { - return ValidationUtils.isRoomNameValid(this, chatRoomNameEditText); - } - - private boolean isEnteredUserNameValid() { - return ValidationUtils.isUserNameValid(this, userNameEditText); - } - - private void hideKeyboard() { - KeyboardUtils.hideKeyboard(userNameEditText); - KeyboardUtils.hideKeyboard(chatRoomNameEditText); - } - - private void startSignUpNewUser(final QBUser newUser) { - showProgressDialog(R.string.dlg_creating_new_user); - requestExecutor.signUpNewUser(newUser, new QBEntityCallback() { - @Override - public void onSuccess(QBUser result, Bundle params) { - signInToQB(result); - } - - @Override - public void onError(QBResponseException e) { - if (e.getHttpStatusCode() == Consts.ERR_LOGIN_ALREADY_TAKEN_HTTP_STATUS) { - signInCreatedUser(newUser, true); - } else { - hideProgressDialog(); - Toaster.longToast(R.string.sign_up_error); - } - } - } - ); - } - - private void signInToQB(final QBUser qbUser) { - qbUser.setPassword(Consts.DEFAULT_USER_PASSWORD); - - userForSave = qbUser; - saveUserData(userForSave); - - signInCreatedUser(userForSave, false); - } - - private void startDialogsActivity() { - DialogsActivity.start(LoginActivity.this); - finish(); - } - - private void saveUserData(QBUser qbUser) { - SharedPrefsHelper sharedPrefsHelper = SharedPrefsHelper.getInstance(); - sharedPrefsHelper.save(Consts.PREF_CURREN_ROOM_NAME, qbUser.getTags().get(0)); - sharedPrefsHelper.saveQbUser(qbUser); - } - - private QBUser createUserWithEnteredData() { - return createQBUserWithCurrentData(String.valueOf(userNameEditText.getText()), - String.valueOf(chatRoomNameEditText.getText())); - } - - private QBUser createQBUserWithCurrentData(String userName, String chatRoomName) { - QBUser qbUser = null; - if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(chatRoomName)) { - StringifyArrayList userTags = new StringifyArrayList<>(); - userTags.add(chatRoomName); - - qbUser = new QBUser(); - qbUser.setFullName(userName); - qbUser.setLogin(getCurrentDeviceId()); - qbUser.setPassword(Consts.DEFAULT_USER_PASSWORD); - qbUser.setTags(userTags); - } - - return qbUser; - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == Consts.EXTRA_LOGIN_RESULT_CODE) { - hideProgressDialog(); - boolean isLoginSuccess = data.getBooleanExtra(Consts.EXTRA_LOGIN_RESULT, false); - String errorMessage = data.getStringExtra(Consts.EXTRA_LOGIN_ERROR_MESSAGE); - - if (isLoginSuccess) { - saveUserData(userForSave); - - signInCreatedUser(userForSave, false); - } else { - Toaster.longToast(getString(R.string.login_chat_login_error) + errorMessage); - userNameEditText.setText(userForSave.getFullName()); - chatRoomNameEditText.setText(userForSave.getTags().get(0)); - } - } - } - - private void signInCreatedUser(final QBUser user, final boolean deleteCurrentUser) { - requestExecutor.signInUser(user, new QBEntityCallback() { - @Override - public void onSuccess(QBUser result, Bundle params) { - if (deleteCurrentUser) { - removeAllUserData(result); - } else { - hideProgressDialog(); - startDialogsActivity(); - } - } - - @Override - public void onError(QBResponseException responseException) { - hideProgressDialog(); - Toaster.longToast(R.string.sign_up_error); - } - }); - } - - private void removeAllUserData(final QBUser user) { - requestExecutor.deleteCurrentUser(user.getId(), new QBEntityCallback() { - @Override - public void onSuccess(Void aVoid, Bundle bundle) { - UsersUtils.removeUserData(getApplicationContext()); - startSignUpNewUser(createUserWithEnteredData()); - } - - @Override - public void onError(QBResponseException e) { - hideProgressDialog(); - Toaster.longToast(R.string.sign_up_error); - } - }); - } - - private String getCurrentDeviceId() { - return Utils.generateDeviceId(this); - } - - private class LoginEditTextWatcher implements TextWatcher { - private EditText editText; - - private LoginEditTextWatcher(EditText editText) { - this.editText = editText; - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - editText.setError(null); - } - - @Override - public void afterTextChanged(Editable s) { - - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/PermissionsActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/PermissionsActivity.java deleted file mode 100644 index 6a8656d15..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/PermissionsActivity.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.app.Activity; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.os.Bundle; - -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.utils.PermissionsChecker; -import com.quickblox.sample.core.utils.Toaster; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.app.ActivityCompat; - -public class PermissionsActivity extends AppCompatActivity { - - private static final int PERMISSION_REQUEST_CODE = 0; - private static final String EXTRA_PERMISSIONS = "extraPermissions"; - private static final String CHECK_ONLY_AUDIO = "checkAudio"; - - private enum permissionFeatures { - CAMERA, - MICROPHONE - } - - private PermissionsChecker checker; - private boolean requiresCheck; - - public static void startActivity(Activity activity, boolean checkOnlyAudio, String... permissions) { - Intent intent = new Intent(activity, PermissionsActivity.class); - intent.putExtra(EXTRA_PERMISSIONS, permissions); - intent.putExtra(CHECK_ONLY_AUDIO, checkOnlyAudio); - ActivityCompat.startActivity(activity, intent, null); - } - - public static void startForResult(Activity activity, int code, boolean checkOnlyAudio, String... permissions) { - Intent intent = new Intent(activity, PermissionsActivity.class); - intent.putExtra(EXTRA_PERMISSIONS, permissions); - intent.putExtra(CHECK_ONLY_AUDIO, checkOnlyAudio); - ActivityCompat.startActivityForResult(activity, intent, code, null); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (getIntent() == null || !getIntent().hasExtra(EXTRA_PERMISSIONS)) { - throw new RuntimeException("This Activity needs to be launched using the static startActivityForResult() method."); - } - setContentView(R.layout.activity_permissions); - - checker = new PermissionsChecker(this); - requiresCheck = true; - } - - @Override - protected void onResume() { - super.onResume(); - if (requiresCheck) { - checkPermissions(); - } else { - requiresCheck = true; - } - } - - private void checkPermissions() { - String[] permissions = getPermissions(); - boolean checkOnlyAudio = getCheckOnlyAudio(); - - if (checkOnlyAudio) { - checkPermissionAudio(permissions[1]); - } else { - checkPermissionAudioVideo(permissions); - } - } - - private void checkPermissionAudio(String audioPermission) { - if (checker.lacksPermissions(audioPermission)) { - requestPermissions(audioPermission); - } else { - allPermissionsGranted(); - } - } - - private void checkPermissionAudioVideo(String[] permissions) { - if (checker.lacksPermissions(permissions)) { - requestPermissions(permissions); - } else { - allPermissionsGranted(); - } - } - - private String[] getPermissions() { - return getIntent().getStringArrayExtra(EXTRA_PERMISSIONS); - } - - private boolean getCheckOnlyAudio() { - return getIntent().getBooleanExtra(CHECK_ONLY_AUDIO, false); - } - - private void requestPermissions(String... permissions) { - ActivityCompat.requestPermissions(this, permissions, PERMISSION_REQUEST_CODE); - } - - private void allPermissionsGranted() { - setResult(RESULT_OK); - finish(); - } - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - if (requestCode == PERMISSION_REQUEST_CODE && hasAllPermissionsGranted(grantResults)) { - requiresCheck = true; - allPermissionsGranted(); - } else { - requiresCheck = false; - showDeniedResponse(grantResults); - finish(); - } - } - - private void showDeniedResponse(int[] grantResults) { - if (grantResults.length > 1) { - for (int i = 0; i < grantResults.length; i++) { - if (grantResults[i] != 0) { - Toaster.longToast(getString(R.string.permission_unavailable, permissionFeatures.values()[i])); - } - } - } else { - Toaster.longToast(getString(R.string.permission_unavailable, permissionFeatures.MICROPHONE)); - } - } - - private boolean hasAllPermissionsGranted(@NonNull int[] grantResults) { - for (int grantResult : grantResults) { - if (grantResult == PackageManager.PERMISSION_DENIED) { - return false; - } - } - return true; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SelectUsersActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SelectUsersActivity.java deleted file mode 100644 index 33a0eb614..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SelectUsersActivity.java +++ /dev/null @@ -1,272 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.os.SystemClock; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.ListView; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.adapters.CheckboxUsersAdapter; -import com.quickblox.sample.conference.db.QbUsersDbManager; -import com.quickblox.sample.conference.utils.Consts; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.users.model.QBUser; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Iterator; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import androidx.annotation.StringRes; -import androidx.fragment.app.Fragment; - - -public class SelectUsersActivity extends BaseActivity { - public static final String EXTRA_QB_USERS = "qb_users"; - public static final String EXTRA_QB_OCCUPANTS_IDS = "qb_occupants_ids"; - public static final int MINIMUM_CHAT_OCCUPANTS_SIZE = 2; - private static final long CLICK_DELAY = TimeUnit.SECONDS.toMillis(2); - - private static final String EXTRA_QB_DIALOG = "qb_dialog"; - - private QbUsersDbManager dbManager; - - private ListView usersListView; - private CheckboxUsersAdapter usersAdapter; - private long lastClickTime = 0l; - private QBUser currentUser; - private QBChatDialog dialog; - - public static void startForResult(Fragment fragment, int code, QBChatDialog dialog) { - Intent intent = new Intent(fragment.getContext(), SelectUsersActivity.class); - - intent.putExtra(EXTRA_QB_DIALOG, dialog); - fragment.startActivityForResult(intent, code); - } - - /** - * Start activity for picking users - * - * @param activity activity to return result - * @param code request code for onActivityResult() method - *

- * in onActivityResult there will be 'ArrayList' in the intent extras - * which can be obtained with SelectPeopleActivity.EXTRA_QB_USERS key - */ - public static void startForResult(Activity activity, int code) { - Intent intent = new Intent(activity, SelectUsersActivity.class); - - activity.startActivityForResult(intent, code); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_select_users); - - usersListView = _findViewById(R.id.list_select_users); - currentUser = sharedPrefsHelper.getQbUser(); - setActionBarTitle(isEditingChat() ? R.string.select_users_edit_dialog : R.string.select_users_create_dialog); - actionBar.setDisplayHomeAsUpEnabled(true); - - dbManager = QbUsersDbManager.getInstance(getApplicationContext()); - initUsersAdapter(); - } - - @Override - protected void onDestroy() { - hideProgressDialog(); - super.onDestroy(); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.activity_select_users, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - if ((SystemClock.uptimeMillis() - lastClickTime) < CLICK_DELAY) { - return super.onOptionsItemSelected(item); - } - lastClickTime = SystemClock.uptimeMillis(); - - switch (item.getItemId()) { - case R.id.menu_select_people_action_done: - if (isEditingChat()) { - addOccupantsToDialog(); - } else if (usersAdapter != null) { - List users = usersAdapter.getSelectedUsers(); - if (users.size() >= MINIMUM_CHAT_OCCUPANTS_SIZE) { - passResultToCallerActivity(null); - } else { - Toaster.shortToast(R.string.select_users_choose_users); - } - } - return true; - case R.id.menu_refresh_users: - if (isEditingChat()) { - updateDialogAndUsers(); - } else { - loadUsersFromQb(); - } - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.list_select_users); - } - - private void addOccupantsToDialog() { - showProgressDialogIfPossible(R.string.dlg_updating_dialog); - - List users = usersAdapter.getSelectedUsers(); - QBUser[] usersArray = users.toArray(new QBUser[users.size()]); - Log.d("SelectedUsersActivity", "usersArray= " + Arrays.toString(usersArray)); - - requestExecutor.updateDialog(dialog, usersArray, new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle params) { - dismissProgressDialogIfPossible(); - passResultToCallerActivity(dialog.getOccupants()); - } - - @Override - public void onError(QBResponseException responseException) { - dismissProgressDialogIfPossible(); - showErrorSnackbar(R.string.dlg_updating_dialog, responseException, new View.OnClickListener() { - @Override - public void onClick(View v) { - addOccupantsToDialog(); - } - }); - } - }); - } - - private void removeExistentOccupants(List users) { - List userIDs = dialog.getOccupants(); - if (userIDs == null) { - return; - } - - Iterator i = users.iterator(); - while (i.hasNext()) { - QBUser user = i.next(); - - for (Integer userID : userIDs) { - if (user.getId().equals(userID)) { - Log.d("SelectedUsersActivity", "users.remove(user)= " + user); - i.remove(); - } - } - } - } - - private void passResultToCallerActivity(List occupantsIds) { - Intent result = new Intent(); - ArrayList selectedUsers = new ArrayList<>(usersAdapter.getSelectedUsers()); - result.putExtra(EXTRA_QB_USERS, selectedUsers); - if (occupantsIds != null) { - result.putExtra(EXTRA_QB_OCCUPANTS_IDS, (Serializable) occupantsIds); - } - setResult(RESULT_OK, result); - finish(); - } - - private void initUsersAdapter() { - ArrayList users = dbManager.getAllUsers(); - dialog = (QBChatDialog) getIntent().getSerializableExtra(EXTRA_QB_DIALOG); - if (dialog != null) { - updateDialogAndUsers(); - usersAdapter = new CheckboxUsersAdapter(SelectUsersActivity.this, new ArrayList(), currentUser); - } else { - usersAdapter = new CheckboxUsersAdapter(SelectUsersActivity.this, users, currentUser); - } - usersListView.setAdapter(usersAdapter); - } - - private boolean isEditingChat() { - return getIntent().getSerializableExtra(EXTRA_QB_DIALOG) != null; - } - - private void updateDialogAndUsers() { - showProgressDialogIfPossible(R.string.dlg_loading_dialogs_users); - requestExecutor.loadDialogByID(dialog.getDialogId(), new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle params) { - SelectUsersActivity.this.dialog.setOccupantsIds(dialog.getOccupants()); - loadUsersFromQb(); - dismissProgressDialogIfPossible(); - } - - @Override - public void onError(QBResponseException responseException) { - dismissProgressDialogIfPossible(); - showErrorSnackbar(R.string.loading_dialog_error, responseException, new View.OnClickListener() { - @Override - public void onClick(View v) { - loadUsersFromQb(); - } - }); - } - }); - } - - private void showProgressDialogIfPossible(@StringRes int messageId) { - if (!isFinishing()) { - showProgressDialog(messageId); - } - } - - private void dismissProgressDialogIfPossible() { - if (!isFinishing()) { - hideProgressDialog(); - } - } - - private void loadUsersFromQb() { - showProgressDialogIfPossible(R.string.dlg_loading_dialogs_users); - String currentRoomName = SharedPrefsHelper.getInstance().get(Consts.PREF_CURREN_ROOM_NAME); - - requestExecutor.loadUsersByTag(currentRoomName, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - dbManager.saveAllUsers(users, true); - if (isEditingChat()) { - users.remove(currentUser); - removeExistentOccupants(users); - } - usersAdapter.updateList(users); - - dismissProgressDialogIfPossible(); - } - - @Override - public void onError(QBResponseException responseException) { - dismissProgressDialogIfPossible(); - showErrorSnackbar(R.string.loading_users_error, responseException, new View.OnClickListener() { - @Override - public void onClick(View v) { - loadUsersFromQb(); - } - }); - } - }); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SettingsActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SettingsActivity.java deleted file mode 100644 index 3c29c0ecf..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SettingsActivity.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.EditTextPreference; -import android.preference.Preference; -import android.view.View; - -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.fragments.SettingsFragment; -import com.quickblox.sample.conference.view.SeekBarPreference; -import com.quickblox.sample.core.utils.Toaster; - -/** - * QuickBlox team - */ -public class SettingsActivity extends BaseActivity implements SharedPreferences.OnSharedPreferenceChangeListener { - - - private static final int MAX_VIDEO_START_BITRATE = 2000; - private String bitrateStringKey; - private SettingsFragment settingsFragment; - - public static void start(Context context) { - Intent intent = new Intent(context, SettingsActivity.class); - context.startActivity(intent); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - initActionBar(); - - // Display the fragment as the main content. - settingsFragment = new SettingsFragment(); - getFragmentManager().beginTransaction() - .replace(android.R.id.content, settingsFragment) - .commit(); - bitrateStringKey = getString(R.string.pref_startbitratevalue_key); - } - - private void initActionBar() { - actionBar.setTitle(R.string.actionbar_title_settings); - } - - @Override - protected View getSnackbarAnchorView() { - return null; - } - - @Override - protected void onResume() { - super.onResume(); - SharedPreferences sharedPreferences = - settingsFragment.getPreferenceScreen().getSharedPreferences(); - sharedPreferences.registerOnSharedPreferenceChangeListener(this); - } - - @Override - protected void onPause() { - super.onPause(); - SharedPreferences sharedPreferences = - settingsFragment.getPreferenceScreen().getSharedPreferences(); - sharedPreferences.unregisterOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (key.equals(bitrateStringKey)) { - int bitrateValue = sharedPreferences.getInt(bitrateStringKey, Integer.parseInt( - getString(R.string.pref_startbitratevalue_default))); - if (bitrateValue == 0) { - setDefaultstartingBitrate(sharedPreferences); - return; - } - int startBitrate = bitrateValue; - if (startBitrate > MAX_VIDEO_START_BITRATE) { - Toaster.longToast("Max value is:" + MAX_VIDEO_START_BITRATE); - setDefaultstartingBitrate(sharedPreferences); - } - } - } - - private void setDefaultstartingBitrate(SharedPreferences sharedPreferences) { - SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.putInt(bitrateStringKey, - Integer.parseInt(getString(R.string.pref_startbitratevalue_default))); - editor.apply(); - updateSummary(sharedPreferences, bitrateStringKey); - } - - private void updateSummary(SharedPreferences sharedPreferences, String key) { - Preference updatedPref = settingsFragment.findPreference(key); - // Set summary to be the user-description for the selected value - if (updatedPref instanceof EditTextPreference) { - ((EditTextPreference) updatedPref).setText(sharedPreferences.getString(key, "")); - } else if (updatedPref instanceof SeekBarPreference) { - updatedPref.setSummary(String.valueOf(sharedPreferences.getInt(key, 0))); - } else { - updatedPref.setSummary(sharedPreferences.getString(key, "")); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SplashActivity.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SplashActivity.java deleted file mode 100644 index aa17562e1..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/activities/SplashActivity.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.quickblox.sample.conference.activities; - -import android.os.Bundle; - -import com.quickblox.sample.conference.R; -import com.quickblox.sample.core.ui.activity.CoreSplashActivity; -import com.quickblox.sample.core.utils.SharedPrefsHelper; - -public class SplashActivity extends CoreSplashActivity { - - private SharedPrefsHelper sharedPrefsHelper; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - sharedPrefsHelper = SharedPrefsHelper.getInstance(); - - if (sharedPrefsHelper.hasQbUser()) { - startDialogsActivity(); - return; - } - - if (checkConfigsWithSnackebarError()) { - proceedToTheNextActivityWithDelay(); - } - } - - @Override - protected String getAppName() { - return getString(R.string.splash_app_title); - } - - @Override - protected void proceedToTheNextActivity() { - LoginActivity.start(this); - finish(); - } - - private void startDialogsActivity() { - DialogsActivity.start(SplashActivity.this); - finish(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/CheckboxUsersAdapter.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/CheckboxUsersAdapter.java deleted file mode 100644 index 809d27eb4..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/CheckboxUsersAdapter.java +++ /dev/null @@ -1,117 +0,0 @@ -package com.quickblox.sample.conference.adapters; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.CheckBox; -import android.widget.ImageView; -import android.widget.TextView; - -import com.quickblox.sample.conference.R; -import com.quickblox.sample.core.ui.adapter.BaseListAdapter; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.core.utils.UiUtils; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - - -public class CheckboxUsersAdapter extends BaseListAdapter { - private QBUser currentUser; - - private List initiallySelectedUsers; - private List selectedUsers; - - public CheckboxUsersAdapter(Context context, List users, QBUser currentUser) { - super(context, users); - this.currentUser = currentUser; - this.selectedUsers = new ArrayList<>(); - this.selectedUsers.add(currentUser); - - this.initiallySelectedUsers = new ArrayList<>(); - } - - public void addSelectedUsers(List userIds) { - for (QBUser user : objectsList) { - for (Integer id : userIds) { - if (user.getId().equals(id)) { - selectedUsers.add(user); - initiallySelectedUsers.add(user.getId()); - break; - } - } - } - } - - @Override - public View getView(int position, View convertView, ViewGroup parent) { - final QBUser user = getItem(position); - - final ViewHolder holder; - if (convertView == null) { - convertView = inflater.inflate(R.layout.list_item_user, parent, false); - holder = new ViewHolder(); - holder.userImageView = (ImageView) convertView.findViewById(R.id.image_user); - holder.loginTextView = (TextView) convertView.findViewById(R.id.text_user_login); - holder.userCheckBox = (CheckBox) convertView.findViewById(R.id.checkbox_user); - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - if (isUserMe(user)) { - holder.loginTextView.setText(context.getString(R.string.placeholder_username_you, user.getFullName())); - } else { - holder.loginTextView.setText(user.getFullName()); - } - - if (isAvailableForSelection(user)) { - holder.loginTextView.setTextColor(ResourceUtils.getColor(R.color.text_color_black)); - } else { - holder.loginTextView.setTextColor(ResourceUtils.getColor(R.color.text_color_medium_grey)); - } - - holder.userImageView.setBackgroundDrawable(UiUtils.getColorCircleDrawable(position)); - holder.userCheckBox.setVisibility(View.GONE); - - convertView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (!isAvailableForSelection(user)) { - return; - } - - holder.userCheckBox.setChecked(!holder.userCheckBox.isChecked()); - if (holder.userCheckBox.isChecked()) { - selectedUsers.add(user); - } else { - selectedUsers.remove(user); - } - } - }); - - holder.userCheckBox.setVisibility(View.VISIBLE); - holder.userCheckBox.setChecked(selectedUsers.contains(user)); - - return convertView; - } - - protected boolean isUserMe(QBUser user) { - return currentUser != null && currentUser.getId().equals(user.getId()); - } - - public List getSelectedUsers() { - return selectedUsers; - } - - protected boolean isAvailableForSelection(QBUser user) { - return currentUser == null || !currentUser.getId().equals(user.getId()) && !initiallySelectedUsers.contains(user.getId()); - } - - protected static class ViewHolder { - ImageView userImageView; - TextView loginTextView; - CheckBox userCheckBox; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/DialogsAdapter.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/DialogsAdapter.java deleted file mode 100644 index 8955ab828..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/DialogsAdapter.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.quickblox.sample.conference.adapters; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.core.ui.adapter.BaseSelectableListAdapter; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.core.utils.UiUtils; - -import java.util.List; - - -public class DialogsAdapter extends BaseSelectableListAdapter { - - public DialogsAdapter(Context context, List dialogs) { - super(context, dialogs); - } - - @Override - public View getView(final int position, View convertView, ViewGroup parent) { - ViewHolder holder; - if (convertView == null) { - convertView = inflater.inflate(R.layout.list_item_dialog, parent, false); - - holder = new ViewHolder(); - holder.rootLayout = (ViewGroup) convertView.findViewById(R.id.root); - holder.nameTextView = (TextView) convertView.findViewById(R.id.text_dialog_name); - holder.dialogImageView = (ImageView) convertView.findViewById(R.id.image_dialog_icon); - - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - QBChatDialog dialog = getItem(position); - holder.dialogImageView.setBackgroundDrawable(UiUtils.getGreyCircleDrawable()); - - holder.nameTextView.setText(dialog.getName()); - - holder.rootLayout.setBackgroundColor(isItemSelected(position) ? ResourceUtils.getColor(R.color.selected_list_item_color) : - ResourceUtils.getColor(android.R.color.transparent)); - - - return convertView; - } - - public void toggleOneItem(QBChatDialog item) { - if (selectedItems.contains(item)) { - selectedItems.remove(item); - } else { - selectedItems.clear(); - selectedItems.add(item); - } - notifyDataSetChanged(); - } - - private static class ViewHolder { - ViewGroup rootLayout; - ImageView dialogImageView; - TextView nameTextView; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/OpponentsFromCallAdapter.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/OpponentsFromCallAdapter.java deleted file mode 100644 index a1ef68691..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/adapters/OpponentsFromCallAdapter.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.quickblox.sample.conference.adapters; - -import android.content.Context; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.CompoundButton; -import android.widget.FrameLayout; -import android.widget.ProgressBar; -import android.widget.TextView; -import android.widget.ToggleButton; - -import com.quickblox.conference.ConferenceSession; -import com.quickblox.conference.QBConferencePeerConnection; -import com.quickblox.conference.view.QBConferenceSurfaceView; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.utils.QBRTCSessionUtils; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.QBRTCTypes; - -import java.util.List; - -import androidx.recyclerview.widget.RecyclerView; - -/** - * QuickBlox team - */ -public class OpponentsFromCallAdapter extends RecyclerView.Adapter { - - private static final String TAG = OpponentsFromCallAdapter.class.getSimpleName(); - private final int itemHeight; - private final int itemWidth; - - private Context context; - private ConferenceSession session; - private List opponents; - private LayoutInflater inflater; - private OnAdapterEventListener adapterListener; - - - public OpponentsFromCallAdapter(Context context, ConferenceSession session, List users, int width, int height) { - this.context = context; - this.session = session; - this.opponents = users; - this.inflater = LayoutInflater.from(context); - itemWidth = width; - itemHeight = height; - Log.d(TAG, "item width=" + itemWidth + ", item height=" + itemHeight); - } - - public void setAdapterListener(OnAdapterEventListener adapterListener) { - this.adapterListener = adapterListener; - } - - @Override - public int getItemCount() { - return opponents.size(); - } - - public Integer getItem(int position) { - return opponents.get(position).getId(); - } - - public List getOpponents() { - return opponents; - } - - public void removeItem(int index) { - opponents.remove(index); - notifyItemRemoved(index); - notifyItemRangeChanged(index, opponents.size()); - } - - public void removeOpponent(QBUser user) { - opponents.remove(user); - notifyDataSetChanged(); - } - - public void replaceUsers(int position, QBUser qbUser) { - opponents.set(position, qbUser); - notifyItemChanged(position); - } - - @Override - public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View v = inflater.inflate(R.layout.list_item_opponent_from_call, null); - v.findViewById(R.id.innerLayout).setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, itemHeight)); - - final ViewHolder vh = new ViewHolder(v); - vh.toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { - adapterListener.onToggleButtonItemClick(vh.getAdapterPosition(), isChecked); - } - }); - vh.showOpponentView(true); - return vh; - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - final QBUser user = opponents.get(position); - int userID = user.getId(); - holder.opponentsName.setText(user.getFullName()); - - if (session.getMediaStreamManager() != null) { - holder.toggleButton.setChecked(session.getMediaStreamManager().getAudioTrack(userID).enabled()); - } - - holder.getOpponentView().setId(user.getId()); - holder.setUserId(userID); - QBConferencePeerConnection peerConnection = session.getPeerConnection(userID); - if (peerConnection != null) { - QBRTCTypes.QBRTCConnectionState state = peerConnection.getState(); - Log.d(TAG, "state ordinal= " + state.ordinal()); - holder.setStatus(context.getResources().getString(QBRTCSessionUtils.getStatusDescriptionResource(state))); - } - if (position == (opponents.size() - 1)) { - adapterListener.OnBindLastViewHolder(holder, position); - } - } - - public void add(QBUser item) { - opponents.add(item); - notifyItemRangeChanged((opponents.size() - 1), opponents.size()); - } - - @Override - public long getItemId(int position) { - return position; - } - - public interface OnAdapterEventListener { - void OnBindLastViewHolder(ViewHolder holder, int position); - - void onToggleButtonItemClick(int position, boolean isChecked); - } - - public static class ViewHolder extends RecyclerView.ViewHolder { - ToggleButton toggleButton; - TextView opponentsName; - TextView connectionStatus; - QBConferenceSurfaceView opponentView; - ProgressBar progressBar; - private int userId; - - public ViewHolder(View itemView) { - super(itemView); - toggleButton = (ToggleButton) itemView.findViewById(R.id.opponent_toggle_mic); - opponentsName = (TextView) itemView.findViewById(R.id.opponentName); - connectionStatus = (TextView) itemView.findViewById(R.id.connectionStatus); - opponentView = (QBConferenceSurfaceView) itemView.findViewById(R.id.opponentView); - progressBar = (ProgressBar) itemView.findViewById(R.id.progress_bar_adapter); - } - - public void setStatus(String status) { - connectionStatus.setText(status); - } - - public void setUserName(String userName) { - opponentsName.setText(userName); - } - - public void setUserId(int userId) { - this.userId = userId; - } - - public int getUserId() { - return userId; - } - - public ProgressBar getProgressBar() { - return progressBar; - } - - public QBConferenceSurfaceView getOpponentView() { - return opponentView; - } - - public void showOpponentView(boolean show) { - Log.d(TAG, "show? " + show); - opponentView.setVisibility(show ? View.VISIBLE : View.GONE); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/db/DbHelper.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/db/DbHelper.java deleted file mode 100644 index 31f4915c1..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/db/DbHelper.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.quickblox.sample.conference.db; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; -import android.util.Log; - - -public class DbHelper extends SQLiteOpenHelper { - - private String TAG = DbHelper.class.getSimpleName(); - - private static final String DB_NAME = "groupchatwebrtcDB"; - - public static final String DB_TABLE_NAME = "users"; - public static final String DB_COLUMN_ID = "ID"; - public static final String DB_COLUMN_USER_FULL_NAME = "userFullName"; - public static final String DB_COLUMN_USER_LOGIN = "userLogin"; - public static final String DB_COLUMN_USER_ID = "userID"; - public static final String DB_COLUMN_USER_PASSWORD = "userPass"; - public static final String DB_COLUMN_USER_TAG = "userTag"; - - - public DbHelper(Context context) { - super(context, DB_NAME, null, 1); - } - - @Override - public void onCreate(SQLiteDatabase db) { - Log.d(TAG, "--- onCreate database ---"); - db.execSQL("create table " + DB_TABLE_NAME + " (" - + DB_COLUMN_ID + " integer primary key autoincrement," - + DB_COLUMN_USER_ID + " integer," - + DB_COLUMN_USER_LOGIN + " text," - + DB_COLUMN_USER_PASSWORD + " text," - + DB_COLUMN_USER_FULL_NAME + " text," - + DB_COLUMN_USER_TAG + " text" - + ");"); - } - - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/db/QbUsersDbManager.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/db/QbUsersDbManager.java deleted file mode 100644 index 5e5960f04..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/db/QbUsersDbManager.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.quickblox.sample.conference.db; - -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.util.Log; - -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - - -public class QbUsersDbManager { - private static String TAG = QbUsersDbManager.class.getSimpleName(); - - private static QbUsersDbManager instance; - private Context mContext; - - private QbUsersDbManager(Context context) { - this.mContext = context; - } - - public static QbUsersDbManager getInstance(Context context) { - if (instance == null) { - instance = new QbUsersDbManager(context); - } - - return instance; - } - - public ArrayList getAllUsers() { - ArrayList allUsers = new ArrayList<>(); - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - Cursor c = db.query(DbHelper.DB_TABLE_NAME, null, null, null, null, null, null); - - if (c.moveToFirst()) { - int userIdColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_ID); - int userLoginColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_LOGIN); - int userPassColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_PASSWORD); - int userFullNameColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_FULL_NAME); - int userTagColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_TAG); - - do { - QBUser qbUser = new QBUser(); - - qbUser.setFullName(c.getString(userFullNameColIndex)); - qbUser.setLogin(c.getString(userLoginColIndex)); - qbUser.setId(c.getInt(userIdColIndex)); - qbUser.setPassword(c.getString(userPassColIndex)); - - StringifyArrayList tags = new StringifyArrayList<>(); - tags.add(c.getString(userTagColIndex)); - qbUser.setTags(tags); - - allUsers.add(qbUser); - } while (c.moveToNext()); - } - - c.close(); - dbHelper.close(); - - return allUsers; - } - - public QBUser getUserById(Integer userId) { - QBUser qbUser = null; - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - Cursor c = db.query(DbHelper.DB_TABLE_NAME, null, null, null, null, null, null); - - if (c.moveToFirst()) { - int userIdColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_ID); - int userLoginColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_LOGIN); - int userPassColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_PASSWORD); - int userFullNameColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_FULL_NAME); - int userTagColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_TAG); - - do { - if (c.getInt(userIdColIndex) == userId) { - qbUser = new QBUser(); - qbUser.setFullName(c.getString(userFullNameColIndex)); - qbUser.setLogin(c.getString(userLoginColIndex)); - qbUser.setId(c.getInt(userIdColIndex)); - qbUser.setPassword(c.getString(userPassColIndex)); - - StringifyArrayList tags = new StringifyArrayList<>(); - tags.add(c.getString(userTagColIndex).split(",")); - qbUser.setTags(tags); - break; - } - } while (c.moveToNext()); - } - - c.close(); - dbHelper.close(); - - return qbUser; - } - - public void saveAllUsers(ArrayList allUsers, boolean needRemoveOldData) { - if (needRemoveOldData) { - clearDB(); - } - - for (QBUser qbUser : allUsers) { - saveUser(qbUser); - } - Log.d(TAG, "saveAllUsers"); - } - - public void saveUser(QBUser qbUser) { - ContentValues cv = new ContentValues(); - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - cv.put(DbHelper.DB_COLUMN_USER_FULL_NAME, qbUser.getFullName()); - cv.put(DbHelper.DB_COLUMN_USER_LOGIN, qbUser.getLogin()); - cv.put(DbHelper.DB_COLUMN_USER_ID, qbUser.getId()); - cv.put(DbHelper.DB_COLUMN_USER_PASSWORD, qbUser.getPassword()); - cv.put(DbHelper.DB_COLUMN_USER_TAG, qbUser.getTags().getItemsAsString()); - - db.insert(DbHelper.DB_TABLE_NAME, null, cv); - dbHelper.close(); - } - - public void clearDB() { - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - db.delete(DbHelper.DB_TABLE_NAME, null, null); - dbHelper.close(); - } - - public ArrayList getUsersByIds(List usersIds) { - ArrayList qbUsers = new ArrayList<>(); - - for (Integer userId : usersIds) { - if (getUserById(userId) != null) { - qbUsers.add(getUserById(userId)); - } - } - - return qbUsers; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/AudioConversationFragment.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/AudioConversationFragment.java deleted file mode 100644 index 5d881667a..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/AudioConversationFragment.java +++ /dev/null @@ -1,121 +0,0 @@ -package com.quickblox.sample.conference.fragments; - -import android.util.Log; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.TextView; -import android.widget.ToggleButton; - -import com.quickblox.conference.ConferenceSession; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.activities.CallActivity; -import com.quickblox.sample.conference.adapters.OpponentsFromCallAdapter; -import com.quickblox.videochat.webrtc.QBRTCAudioTrack; -import com.quickblox.videochat.webrtc.callbacks.QBRTCClientAudioTracksCallback; - -import java.io.Serializable; - - -public class AudioConversationFragment extends BaseConversationFragment implements Serializable, OpponentsFromCallAdapter.OnAdapterEventListener, - QBRTCClientAudioTracksCallback, CallActivity.OnChangeDynamicToggle { - private String TAG = getClass().getSimpleName(); - - private TextView localName; - private ToggleButton audioSwitchToggleButton; - - private boolean headsetPlugged; - - @Override - public void onStart() { - super.onStart(); - conversationFragmentCallbackListener.addOnChangeDynamicToggle(this); - } - - @Override - protected void initViews(View view) { - localName = (TextView) view.findViewById(R.id.localName); - localName.setVisibility(View.VISIBLE); - audioSwitchToggleButton = (ToggleButton) view.findViewById(R.id.toggle_speaker); - audioSwitchToggleButton.setVisibility(View.VISIBLE); - super.initViews(view); - } - - @Override - public void onLocalAudioTrackReceive(ConferenceSession session, QBRTCAudioTrack audioTrack) { - Log.d(TAG, "onLocalAudioTrackReceive() run"); - setStatusForCurrentUser(getString(R.string.text_status_connected)); - actionButtonsEnabled(true); - } - - @Override - public void onRemoteAudioTrackReceive(ConferenceSession session, QBRTCAudioTrack audioTrack, final Integer userID) { - Log.d(TAG, "onRemoteAudioTrackReceive() run"); - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - super.onCreateOptionsMenu(menu, inflater); - MenuItem cameraSwitchItem = menu.findItem(R.id.camera_switch); - cameraSwitchItem.setVisible(false); - } - - @Override - protected void initButtonsListener() { - super.initButtonsListener(); - - audioSwitchToggleButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - conversationFragmentCallbackListener.onSwitchAudio(); - } - }); - } - - @Override - protected void actionButtonsEnabled(boolean inability) { - super.actionButtonsEnabled(inability); - if (!headsetPlugged) { - audioSwitchToggleButton.setEnabled(inability); - } - audioSwitchToggleButton.setActivated(inability); - } - - @Override - public void enableDynamicToggle(boolean plugged, boolean previousDeviceEarPiece) { - headsetPlugged = plugged; - audioSwitchToggleButton.setEnabled(!plugged); - - if (plugged) { - audioSwitchToggleButton.setChecked(true); - } else if (previousDeviceEarPiece) { - audioSwitchToggleButton.setChecked(true); - } else { - audioSwitchToggleButton.setChecked(false); - } - } - - @Override - protected void initTrackListeners() { - super.initTrackListeners(); - initAudioTracksListener(); - } - - @Override - protected void removeTrackListeners() { - removeAudioTracksListener(); - } - - private void initAudioTracksListener() { - if (currentSession != null) { - currentSession.addAudioTrackCallbacksListener(this); - } - } - - private void removeAudioTracksListener() { - if (currentSession != null) { - currentSession.removeAudioTrackCallbacksListener(this); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/BaseConversationFragment.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/BaseConversationFragment.java deleted file mode 100644 index ab86887ab..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/BaseConversationFragment.java +++ /dev/null @@ -1,847 +0,0 @@ -package com.quickblox.sample.conference.fragments; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.graphics.Rect; -import android.os.Bundle; -import android.util.Log; -import android.util.SparseArray; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewTreeObserver; -import android.widget.CompoundButton; -import android.widget.ImageButton; -import android.widget.LinearLayout; -import android.widget.TextView; -import android.widget.ToggleButton; - -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.conference.ConferenceSession; -import com.quickblox.conference.view.QBConferenceSurfaceView; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.activities.CallActivity; -import com.quickblox.sample.conference.activities.SelectUsersActivity; -import com.quickblox.sample.conference.adapters.OpponentsFromCallAdapter; -import com.quickblox.sample.conference.db.QbUsersDbManager; -import com.quickblox.sample.conference.utils.CollectionsUtils; -import com.quickblox.sample.conference.utils.Consts; -import com.quickblox.sample.conference.utils.WebRtcSessionManager; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.BaseSession; -import com.quickblox.videochat.webrtc.callbacks.QBRTCClientVideoTracksCallbacks; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback; -import com.quickblox.videochat.webrtc.view.QBRTCVideoTrack; - -import org.webrtc.RendererCommon; -import org.webrtc.SurfaceViewRenderer; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import androidx.annotation.DimenRes; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.GridLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -public abstract class BaseConversationFragment extends BaseToolBarFragment implements CallActivity.CurrentCallStateCallback, QBRTCSessionStateCallback, - QBRTCClientVideoTracksCallbacks, OpponentsFromCallAdapter.OnAdapterEventListener { - - private static final String TAG = BaseConversationFragment.class.getSimpleName(); - - protected static final long LOCAL_TRACk_INITIALIZE_DELAY = 500; - private static final int REQUEST_ADD_OCCUPANTS = 175; - - private static final int DISPLAY_ROW_AMOUNT = 3; - private static final int SMALL_CELLS_AMOUNT = 8; - private static final int LARGE_CELLS_AMOUNT = 12; - - protected QbUsersDbManager dbManager; - protected WebRtcSessionManager sessionManager; - protected ConferenceSession currentSession; - protected ArrayList opponents; - protected ArrayList opponentsIds; - private LocalViewOnClickListener localViewOnClickListener; - private Set usersToDestroy; - private boolean allCallbacksInit; - - private RecyclerView recyclerView; - protected QBConferenceSurfaceView localVideoView; - private List allOpponents; - protected boolean isRemoteShown; - protected TextView connectionStatusLocal; - protected LinearLayout actionButtonsLayout; - protected OpponentsFromCallAdapter opponentsAdapter; - - private GridLayoutManager gridLayoutManager; - private SpanSizeLookupImpl spanSizeLookup; - - protected boolean isNeedCleanUp; - - private ToggleButton micToggleCall; - private ImageButton handUpCall; - protected ConversationFragmentCallbackListener conversationFragmentCallbackListener; - protected View outgoingOpponentsRelativeLayout; - protected TextView allOpponentsTextView; - protected TextView ringingTextView; - protected QBUser currentUser; - protected SharedPrefsHelper sharedPrefsHelper; - protected Map videoTrackMap; - protected boolean asListenerRole; - - private SparseArray opponentViewHolders; - - public static BaseConversationFragment newInstance(BaseConversationFragment baseConversationFragment) { - Bundle args = new Bundle(); - - baseConversationFragment.setArguments(args); - - return baseConversationFragment; - } - - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - - try { - conversationFragmentCallbackListener = (ConversationFragmentCallbackListener) activity; - } catch (ClassCastException e) { - throw new ClassCastException(activity.toString() - + " must implement ConversationFragmentCallbackListener"); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setHasOptionsMenu(true); - sharedPrefsHelper = SharedPrefsHelper.getInstance(); - conversationFragmentCallbackListener.addCurrentCallStateCallback(this); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = super.onCreateView(inflater, container, savedInstanceState); - opponentsIds = this.getArguments().getIntegerArrayList(Consts.EXTRA_DIALOG_OCCUPANTS); - asListenerRole = this.getArguments().getBoolean(Consts.EXTRA_AS_LISTENER); - sessionManager = WebRtcSessionManager.getInstance(getActivity()); - currentSession = sessionManager.getCurrentSession(); - if (currentSession == null) { - Log.d(TAG, "currentSession = null onCreateView"); - return view; - } - initFields(); - initViews(view); - initActionBar(); - initButtonsListener(); - prepareAndShowOutgoingScreen(); - - return view; - } - - private void prepareAndShowOutgoingScreen() { - configureOutgoingScreen(); - allOpponentsTextView.setText(CollectionsUtils.makeStringFromUsersFullNames(opponents)); - } - - @Override - int getFragmentLayout() { - return R.layout.fragment_conversation; - } - - protected void configureOutgoingScreen() { - outgoingOpponentsRelativeLayout.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.grey_transparent_50)); - allOpponentsTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - ringingTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - } - - private void initActionBar() { - configureToolbar(); - configureActionBar(); - } - - protected void configureActionBar() { - actionBar = ((AppCompatActivity) getActivity()).getDelegate().getSupportActionBar(); - actionBar.setDisplayShowTitleEnabled(false); - } - - protected void configureToolbar() { - toolbar.setVisibility(View.VISIBLE); - toolbar.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.black_transparent_50)); - toolbar.setTitleTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - toolbar.setSubtitleTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - } - - protected void initFields() { - currentUser = sharedPrefsHelper.getQbUser(); - dbManager = QbUsersDbManager.getInstance(getActivity().getApplicationContext()); - sessionManager = WebRtcSessionManager.getInstance(getActivity()); - currentSession = sessionManager.getCurrentSession(); - - initOpponentsList(); - - localViewOnClickListener = new LocalViewOnClickListener(); - usersToDestroy = new HashSet<>(); - allOpponents = Collections.synchronizedList(new ArrayList(opponents.size())); - allOpponents.addAll(opponents); - - Log.d(TAG, "opponents: " + opponents.toString()); - Log.d(TAG, "currentSession " + currentSession.toString()); - } - - protected void setOpponentToAdapter(Integer userID) { - QBUser qbUser = getUserById(userID); - if (qbUser != null) { - opponentsAdapter.add(qbUser); - } else { - QBUser user = new QBUser(userID); - user.setFullName("NoName"); - opponentsAdapter.add(user); - } - recyclerView.requestLayout(); - } - - public void setDuringCallActionBar() { - actionBar.setDisplayShowTitleEnabled(true); - actionBar.setTitle(currentUser.getFullName()); - } - - protected void updateActionBar(int amountOpponents) { - actionBar.setSubtitle(getString(R.string.opponents, String.valueOf(amountOpponents))); - } - - private void setProgressBarForOpponentGone(int userId) { - final OpponentsFromCallAdapter.ViewHolder holder = getViewHolderForOpponent(userId); - if (holder == null) { - return; - } - holder.getProgressBar().setVisibility(View.GONE); - } - - //last opponent view is bind - @Override - public void OnBindLastViewHolder(final OpponentsFromCallAdapter.ViewHolder holder, final int position) { - Log.i(TAG, "OnBindLastViewHolder position=" + position); - - } - - @Override - public void onToggleButtonItemClick(int position, boolean isAudioEnabled) { - int userId = opponentsAdapter.getItem(position); - Log.d(TAG, "onToggleButtonItemClick userId= " + userId); - adjustOpponentAudio(userId, isAudioEnabled); - } - - private void adjustOpponentAudio(int userID, boolean isAudioEnabled) { - currentSession.getMediaStreamManager().getAudioTrack(userID).setEnabled(isAudioEnabled); - } - - - @SuppressWarnings("unchecked") - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == Activity.RESULT_OK) { - if (requestCode == REQUEST_ADD_OCCUPANTS) { - Log.d(TAG, "onActivityResult REQUEST_ADD_OCCUPANTS"); - ArrayList addedOccupants = (ArrayList) data - .getSerializableExtra(SelectUsersActivity.EXTRA_QB_USERS); - List allOccupants = (List) data - .getSerializableExtra(SelectUsersActivity.EXTRA_QB_OCCUPANTS_IDS); - allOpponents.addAll(0, addedOccupants); - } - } - } - - @Override - public void onStart() { - super.onStart(); - if (currentSession == null) { - Log.d(TAG, "currentSession = null onStart"); - return; - } - - if (currentSession.getState() != BaseSession.QBRTCSessionState.QB_RTC_SESSION_CONNECTED) { - startJoinConference(); - } - if (!allCallbacksInit) { - conversationFragmentCallbackListener.addClientConnectionCallback(this); - initTrackListeners(); - allCallbacksInit = true; - } - } - - protected void initTrackListeners() { - initVideoTracksListener(); - } - - protected void removeTrackListeners() { - removeVideoTracksListener(); - } - - @Override - public void onResume() { - super.onResume(); - isNeedCleanUp = true; - cleanAdapterIfNeed(); - } - - @Override - public void onPause() { - super.onPause(); - isNeedCleanUp = false; - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - Log.d(TAG, "onDestroyView"); - removeVideoTrackRenderers(); - releaseViews(); - releaseViewHolders(); - removeConnectionStateListeners(); - removeTrackListeners(); - } - - private void removeConnectionStateListeners() { - conversationFragmentCallbackListener.removeClientConnectionCallback(this); - } - - - protected void releaseOpponentsViews() { - RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); - int childCount = layoutManager.getChildCount(); - Log.d(TAG, " releaseOpponentsViews for " + childCount + " views"); - for (int i = 0; i < childCount; i++) { - View childView = layoutManager.getChildAt(i); - Log.d(TAG, " release View for " + i + ", " + childView); - OpponentsFromCallAdapter.ViewHolder childViewHolder = (OpponentsFromCallAdapter.ViewHolder) recyclerView.getChildViewHolder(childView); - childViewHolder.getOpponentView().release(); - } - } - - private QBUser getUserById(int userID) { - for (QBUser qbUser : allOpponents) { - if (qbUser.getId().equals(userID)) { - return qbUser; - } - } - return null; - } - - @Override - public void onDestroy() { - conversationFragmentCallbackListener.removeCurrentCallStateCallback(this); - super.onDestroy(); - } - - private void startJoinConference() { - conversationFragmentCallbackListener.onStartJoinConference(); - } - - protected void initViews(View view) { - Log.i(TAG, "initViews"); - micToggleCall = (ToggleButton) view.findViewById(R.id.toggle_mic); - handUpCall = (ImageButton) view.findViewById(R.id.button_hangup_call); - outgoingOpponentsRelativeLayout = view.findViewById(R.id.layout_background_outgoing_screen); - allOpponentsTextView = (TextView) view.findViewById(R.id.text_outgoing_opponents_names); - ringingTextView = (TextView) view.findViewById(R.id.text_ringing); - - opponentViewHolders = new SparseArray<>(opponents.size()); - isRemoteShown = false; - - localVideoView = (QBConferenceSurfaceView) view.findViewById(R.id.local_video_view); - localVideoView.setOnClickListener(localViewOnClickListener); - - recyclerView = (RecyclerView) view.findViewById(R.id.grid_opponents); - - recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), R.dimen.grid_item_divider)); - recyclerView.setHasFixedSize(false); - - gridLayoutManager = new GridManager(getActivity(), 12); - gridLayoutManager.setReverseLayout(false); - spanSizeLookup = new SpanSizeLookupImpl(); - spanSizeLookup.setSpanIndexCacheEnabled(false); - gridLayoutManager.setSpanSizeLookup(spanSizeLookup); - recyclerView.setLayoutManager(gridLayoutManager); - -// for correct removing item in adapter - recyclerView.setItemAnimator(null); - recyclerView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - setGrid(recyclerView.getHeight()); - recyclerView.getViewTreeObserver().removeGlobalOnLayoutListener(this); - } - }); - - connectionStatusLocal = (TextView) view.findViewById(R.id.connectionStatusLocal); - - actionButtonsLayout = (LinearLayout) view.findViewById(R.id.element_set_call_buttons); - - actionButtonsEnabled(false); - setActionButtonsVisibility(); - } - - private void setActionButtonsVisibility() { - if (asListenerRole) { - setActionButtonsInvisible(); - } - } - - protected void setActionButtonsInvisible() { - micToggleCall.setVisibility(View.INVISIBLE); - } - - private void setGrid(int recycleViewHeight) { - ArrayList qbUsers = new ArrayList<>(); - int itemHeight = recycleViewHeight / DISPLAY_ROW_AMOUNT; - opponentsAdapter = new OpponentsFromCallAdapter(getActivity(), currentSession, qbUsers, - (int) getResources().getDimension(R.dimen.item_width), - itemHeight); - opponentsAdapter.setAdapterListener(this); - recyclerView.setAdapter(opponentsAdapter); - } - - private void releaseViewHolders() { - if (opponentViewHolders != null) { - opponentViewHolders.clear(); - } - } - - private void removeVideoTrackRenderers() { - Log.d(TAG, "removeVideoTrackRenderers"); - Log.d(TAG, "remove opponents video Tracks"); - Map videoTrackMap = getVideoTrackMap(); - for (QBRTCVideoTrack videoTrack : videoTrackMap.values()) { - if (videoTrack.getRenderer() != null) { - Log.d(TAG, "remove opponent video Tracks"); - videoTrack.removeRenderer(videoTrack.getRenderer()); - } - } - } - - private void releaseViews() { - if (localVideoView != null) { - localVideoView.release(); - } - localVideoView = null; - - releaseOpponentsViews(); - } - - protected void initButtonsListener() { - - micToggleCall.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - conversationFragmentCallbackListener.onSetAudioEnabled(isChecked); - } - }); - - handUpCall.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - actionButtonsEnabled(false); - handUpCall.setEnabled(false); - handUpCall.setActivated(false); - - conversationFragmentCallbackListener.onLeaveCurrentSession(); - Log.d(TAG, "Call is stopped"); - } - }); - } - - protected void actionButtonsEnabled(boolean inability) { - - micToggleCall.setEnabled(inability); - - // inactivate toggle buttons - micToggleCall.setActivated(inability); - } - - private void hideOutgoingScreen() { - outgoingOpponentsRelativeLayout.setVisibility(View.GONE); - } - - @Override - public void onCallStarted() { - hideOutgoingScreen(); - actionButtonsEnabled(true); - } - - private void initOpponentsList() { - Log.v(TAG, "initOpponentsList() opponentsIds= " + opponentsIds); - opponents = dbManager.getUsersByIds(opponentsIds); - } - - protected OpponentsFromCallAdapter.ViewHolder getViewHolderForOpponent(Integer userID) { - OpponentsFromCallAdapter.ViewHolder holder = opponentViewHolders.get(userID); - if (holder == null) { - Log.d(TAG, "holder not found in cache"); - holder = findHolder(userID); - if (holder != null) { - opponentViewHolders.put(userID, holder); - } - } - return holder; - } - - private void setStatusForOpponent(int userId, final String status) { - if (userId == currentUser.getId()) { - return; - } - final OpponentsFromCallAdapter.ViewHolder holder = getViewHolderForOpponent(userId); - if (holder == null) { - return; - } - - holder.setStatus(status); - } - - protected void setStatusForCurrentUser(final String status) { - connectionStatusLocal.setText(status); - } - - protected void cleanUpAdapter(int userId) { - Log.d(TAG, "onConnectionClosedForUser cleanUpAdapter userId= " + userId); - OpponentsFromCallAdapter.ViewHolder itemHolder = getViewHolderForOpponent(userId); - if (itemHolder != null) { - if (itemHolder.getAdapterPosition() != -1) { - Log.d(TAG, "onConnectionClosedForUser opponentsAdapter.removeItem"); - opponentsAdapter.removeItem(itemHolder.getAdapterPosition()); - opponentViewHolders.remove(userId); - } - } - updateActionBar(opponentsAdapter.getItemCount()); - recyclerView.requestLayout(); - getVideoTrackMap().remove(userId); - } - - protected void addOpponentToDialog() { - SelectUsersActivity.startForResult(this, REQUEST_ADD_OCCUPANTS, getChatDialog(currentSession.getDialogID())); - } - - private QBChatDialog getChatDialog(String dialogId) { - QBChatDialog chatDialog = new QBChatDialog(dialogId); - chatDialog.setType(QBDialogType.GROUP); - return chatDialog; - } - - protected void cleanAdapterIfNeed() { - if (!usersToDestroy.isEmpty()) { - Iterator iterator = usersToDestroy.iterator(); - while (iterator.hasNext()) { - cleanUpAdapter(iterator.next()); - iterator.remove(); - } - } - } - - protected void setRecyclerViewVisibleState() { - recyclerView.setVisibility(View.VISIBLE); - } - - - protected OpponentsFromCallAdapter.ViewHolder findHolder(Integer userID) { - Log.d(TAG, "findHolder for " + userID); - int childCount = recyclerView.getChildCount(); - Log.d(TAG, "findHolder for childCount= " + childCount); - for (int i = 0; i < childCount; i++) { - View childView = recyclerView.getChildAt(i); - OpponentsFromCallAdapter.ViewHolder childViewHolder = (OpponentsFromCallAdapter.ViewHolder) recyclerView.getChildViewHolder(childView); - Log.d(TAG, "childViewHolder.getUserId= " + childViewHolder.getUserId()); - if (userID.equals(childViewHolder.getUserId())) { - Log.d(TAG, "return childViewHolder"); - return childViewHolder; - } - } - return null; - } - - private void setOpponentView(int userID) { - setOpponentToAdapter(userID); - if (!isRemoteShown) { - isRemoteShown = true; - setRecyclerViewVisibleState(); - setDuringCallActionBar(); - } - updateActionBar(opponentsAdapter.getItemCount()); - } - - private boolean checkIfUserInAdapter(int userId) { - for (QBUser user : opponentsAdapter.getOpponents()) { - if (user.getId() == userId) { - return true; - } - } - return false; - } - - /////////////////////////////// QBRTCSessionConnectionCallbacks /////////////////////////// - - @Override - public void onConnectedToUser(ConferenceSession qbrtcSession, final Integer userId) { - if (checkIfUserInAdapter(userId)) { - setStatusForOpponent(userId, getString(R.string.text_status_connected)); - Log.d(TAG, "onConnectedToUser user already in, userId= " + userId); - return; - } - setOpponentView(userId); - - mainHandler.postDelayed(new Runnable() { - @Override - public void run() { - setRemoteViewMultiCall(userId); - - setStatusForOpponent(userId, getString(R.string.text_status_connected)); - setProgressBarForOpponentGone(userId); - } - }, LOCAL_TRACk_INITIALIZE_DELAY); - } - - @Override - public void onConnectionClosedForUser(ConferenceSession qbrtcSession, Integer userId) { - Log.d(TAG, "onConnectionClosedForUser userId= " + userId); - - if (currentSession.isDestroyed()) { - Log.d(TAG, "onConnectionClosedForUser isDestroyed userId= " + userId); - return; - } - - if (isNeedCleanUp) { - setStatusForOpponent(userId, getString(R.string.text_status_closed)); - cleanUpAdapter(userId); - } else { - usersToDestroy.add(userId); - } - - } - - @Override - public void onDisconnectedFromUser(ConferenceSession qbrtcSession, Integer integer) { - setStatusForOpponent(integer, getString(R.string.text_status_disconnected)); - } - - @Override - public void onStateChanged(ConferenceSession session, BaseSession.QBRTCSessionState state) { - - } - - ////////////////////////////////// end ////////////////////////////////////////// - - - protected Map getVideoTrackMap() { - if (videoTrackMap == null) { - videoTrackMap = new HashMap<>(); - } - return videoTrackMap; - } - - - @Override - public void onLocalVideoTrackReceive(ConferenceSession session, QBRTCVideoTrack videoTrack) { - Log.d(TAG, "onLocalVideoTrackReceive"); - } - - @Override - public void onRemoteVideoTrackReceive(ConferenceSession session, final QBRTCVideoTrack videoTrack, final Integer userID) { - Log.d(TAG, "onRemoteVideoTrackReceive for opponent= " + userID); - getVideoTrackMap().put(userID, videoTrack); - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.conversation_fragment, menu); - if (asListenerRole) { - MenuItem cameraSwitchItem = menu.findItem(R.id.camera_switch); - cameraSwitchItem.setVisible(false); - } - super.onCreateOptionsMenu(menu, inflater); - } - - protected void setRemoteViewMultiCall(int userID) { - if (currentSession.isDestroyed()) { - Log.d(TAG, "setRemoteViewMultiCall currentSession.isDestroyed RETURN"); - return; - } - updateActionBar(opponentsAdapter.getItemCount()); - Log.d(TAG, "setRemoteViewMultiCall fillVideoView"); - - final OpponentsFromCallAdapter.ViewHolder itemHolder = getViewHolderForOpponent(userID); - if (itemHolder == null) { - Log.d(TAG, "itemHolder == null - true"); - return; - } - final QBConferenceSurfaceView remoteVideoView = itemHolder.getOpponentView(); - - if (remoteVideoView != null) { - remoteVideoView.setZOrderMediaOverlay(true); - updateVideoView(remoteVideoView, false); - Log.d(TAG, "onRemoteVideoTrackReceive fillVideoView"); - QBRTCVideoTrack remoteVideoTrack = getVideoTrackMap().get(userID); - if (remoteVideoTrack != null) { - fillVideoView(remoteVideoView, remoteVideoTrack, true); - } - } - } - - protected void updateVideoView(SurfaceViewRenderer surfaceViewRenderer, boolean mirror) { - updateVideoView(surfaceViewRenderer, mirror, RendererCommon.ScalingType.SCALE_ASPECT_FILL); - } - - protected void updateVideoView(SurfaceViewRenderer surfaceViewRenderer, boolean mirror, RendererCommon.ScalingType scalingType) { - Log.i(TAG, "updateVideoView mirror:" + mirror + ", scalingType = " + scalingType); - surfaceViewRenderer.setScalingType(scalingType); - surfaceViewRenderer.setMirror(mirror); - surfaceViewRenderer.requestLayout(); - } - - protected void fillVideoView(QBConferenceSurfaceView videoView, QBRTCVideoTrack videoTrack, - boolean remoteRenderer) { - videoTrack.removeRenderer(videoTrack.getRenderer()); - videoTrack.addRenderer(videoView); - Log.d(TAG, (remoteRenderer ? "remote" : "local") + " Track is rendering"); - } - - private void initVideoTracksListener() { - if (currentSession != null) { - currentSession.addVideoTrackCallbacksListener(this); - } - } - - private void removeVideoTracksListener() { - if (currentSession != null) { - currentSession.removeVideoTrackCallbacksListener(this); - } - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.add_opponent: - Log.d(TAG, "add_opponent"); - addOpponentToDialog(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - private class GridManager extends GridLayoutManager { - - GridManager(Context context, int spanCount) { - super(context, spanCount); - } - - @Override - public void onItemsAdded(RecyclerView recyclerView, int positionStart, int itemCount) { - super.onItemsAdded(recyclerView, positionStart, itemCount); - Log.d("GridManager", "onItemsAdded positionStart= " + positionStart); - } - - @Override - public void onItemsRemoved(RecyclerView recyclerView, int positionStart, int itemCount) { - super.onItemsRemoved(recyclerView, positionStart, itemCount); - Log.d("GridManager", "onItemsRemoved positionStart= " + positionStart); - updateAdaptersItems(); - } - - private void updateAdaptersItems() { - if (opponentsAdapter.getItemCount() > 0) { - OpponentsFromCallAdapter.ViewHolder itemHolder = getViewHolderForOpponent(opponentsAdapter.getItem(0)); - if (itemHolder != null) { - itemHolder.itemView.requestLayout(); - } - } - } - - @Override - public void onItemsUpdated(RecyclerView recyclerView, int positionStart, int itemCount, - Object payload) { - super.onItemsUpdated(recyclerView, positionStart, itemCount, payload); - Log.d("GridManager", "onItemsUpdated positionStart= " + positionStart); - } - - @Override - public void onItemsChanged(RecyclerView recyclerView) { - super.onItemsChanged(recyclerView); - Log.d("GridManager", "onItemsChanged"); - } - - @Override - public void onLayoutCompleted(RecyclerView.State state) { - super.onLayoutCompleted(state); - Log.d("GridManager", "onLayoutCompleted"); - } - } - - private class SpanSizeLookupImpl extends GridManager.SpanSizeLookup { - - - @Override - public int getSpanSize(int position) { - int itemCount = opponentsAdapter.getItemCount(); - if (itemCount % 4 == 0) { - return 3; - } - - if (itemCount % 4 == 1) { - //check last position - if (position == itemCount - 1) { - return 12; - } - } else if (itemCount % 4 == 2) { - if (position == itemCount - 1 || position == itemCount - 2) { - return 6; - } - } else if (itemCount % 4 == 3) { - if (position == itemCount - 1 || position == itemCount - 2 || position == itemCount - 3) { - return 4; - } - } - - return 3; - } - } - - - private class DividerItemDecoration extends RecyclerView.ItemDecoration { - - private int space; - - public DividerItemDecoration(@NonNull Context context, @DimenRes int dimensionDivider) { - this.space = context.getResources().getDimensionPixelSize(dimensionDivider); - } - - @Override - public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { - outRect.set(space, space, space, space); - } - } - - private class LocalViewOnClickListener implements View.OnClickListener { - - @Override - public void onClick(View v) { - Log.d(TAG, "localView onClick"); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/BaseToolBarFragment.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/BaseToolBarFragment.java deleted file mode 100644 index b3ecc4766..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/BaseToolBarFragment.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.quickblox.sample.conference.fragments; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.quickblox.sample.conference.R; - -import java.lang.ref.WeakReference; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; -import androidx.fragment.app.Fragment; - -public abstract class BaseToolBarFragment extends Fragment { - - private static final String TAG = BaseToolBarFragment.class.getSimpleName(); - protected Handler mainHandler; - protected Toolbar toolbar; - protected ActionBar actionBar; - - abstract int getFragmentLayout(); - - @Override - public void onCreate(Bundle savedInstanceState) { - setHasOptionsMenu(true); - mainHandler = new FragmentLifeCycleHandler(this); - super.onCreate(savedInstanceState); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(getFragmentLayout(), container, false); - initActionBar(); - return view; - } - - private void initActionBar() { - toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar_call); - - ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); - actionBar = ((AppCompatActivity) getActivity()).getDelegate().getSupportActionBar(); - } - - - static class FragmentLifeCycleHandler extends Handler { - - private WeakReference fragmentRef; - - FragmentLifeCycleHandler(Fragment fragment) { - - this.fragmentRef = new WeakReference<>(fragment); - } - - @Override - public void dispatchMessage(Message msg) { - Fragment fragment = fragmentRef.get(); - if (fragment == null) { - return; - } - if (fragment.isAdded() && (fragment.getActivity() != null)) { - super.dispatchMessage(msg); - } else { - Log.d(TAG, "Fragment under destroying"); - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/ConversationFragmentCallbackListener.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/ConversationFragmentCallbackListener.java deleted file mode 100644 index 5c26c7efa..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/ConversationFragmentCallbackListener.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.quickblox.sample.conference.fragments; - -import com.quickblox.conference.ConferenceSession; -import com.quickblox.sample.conference.activities.CallActivity; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback; - -import org.webrtc.CameraVideoCapturer; - - -public interface ConversationFragmentCallbackListener { - - void addClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks); - - void removeClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks); - - void addCurrentCallStateCallback(CallActivity.CurrentCallStateCallback currentCallStateCallback); - - void removeCurrentCallStateCallback(CallActivity.CurrentCallStateCallback currentCallStateCallback); - - void addOnChangeDynamicToggle(CallActivity.OnChangeDynamicToggle onChangeDynamicCallback); - - void removeOnChangeDynamicToggle(CallActivity.OnChangeDynamicToggle onChangeDynamicCallback); - - void onSetAudioEnabled(boolean isAudioEnabled); - - void onSetVideoEnabled(boolean isNeedEnableCam); - - void onSwitchAudio(); - - void onLeaveCurrentSession(); - - void onSwitchCamera(CameraVideoCapturer.CameraSwitchHandler cameraSwitchHandler); - - void onStartJoinConference(); -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/OnCallEventsController.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/OnCallEventsController.java deleted file mode 100644 index cd75ae995..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/OnCallEventsController.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.quickblox.sample.conference.fragments; - - -public interface OnCallEventsController { - - void onUseHeadSet(boolean use); -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/SettingsFragment.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/SettingsFragment.java deleted file mode 100644 index c537ced2b..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/SettingsFragment.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.quickblox.sample.conference.fragments; - -import android.os.Bundle; -import android.preference.PreferenceFragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ListView; - -import com.quickblox.sample.conference.R; - -/** - * QuickBlox team - */ -public class SettingsFragment extends PreferenceFragment { - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - addPreferencesFromResource(R.xml.preferences); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View v = super.onCreateView(inflater, container, savedInstanceState); - if (v != null) { - ListView lv = (ListView) v.findViewById(android.R.id.list); - lv.setPadding(0, 0, 0, 0); - } - return v; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/VideoConversationFragment.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/VideoConversationFragment.java deleted file mode 100644 index f024a8b40..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/fragments/VideoConversationFragment.java +++ /dev/null @@ -1,215 +0,0 @@ -package com.quickblox.sample.conference.fragments; - -import android.os.Bundle; -import android.util.Log; -import android.view.MenuItem; -import android.view.View; -import android.widget.CompoundButton; -import android.widget.ToggleButton; - -import com.quickblox.conference.ConferenceSession; -import com.quickblox.conference.view.QBConferenceSurfaceView; -import com.quickblox.sample.conference.R; -import com.quickblox.sample.conference.adapters.OpponentsFromCallAdapter; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback; -import com.quickblox.videochat.webrtc.view.QBRTCVideoTrack; - -import org.webrtc.CameraVideoCapturer; - -import java.io.Serializable; - -/** - * QuickBlox team - */ -public class VideoConversationFragment extends BaseConversationFragment implements Serializable, - QBRTCSessionStateCallback, OpponentsFromCallAdapter.OnAdapterEventListener { - - private String TAG = VideoConversationFragment.class.getSimpleName(); - - private ToggleButton cameraToggle; - private CameraState cameraState = CameraState.DISABLED_FROM_USER; - - private QBRTCVideoTrack localVideoTrack; - protected boolean isCurrentCameraFront; - - - @Override - protected void initViews(View view) { - isCurrentCameraFront = true; - cameraToggle = (ToggleButton) view.findViewById(R.id.toggle_camera); - cameraToggle.setVisibility(View.VISIBLE); - super.initViews(view); - } - - @Override - protected void actionButtonsEnabled(boolean inability) { - super.actionButtonsEnabled(inability); - cameraToggle.setEnabled(inability); - // inactivate toggle buttons - cameraToggle.setActivated(inability); - } - - @Override - public void onStart() { - super.onStart(); - Log.i(TAG, "onStart"); - } - - @Override - public void onResume() { - super.onResume(); - Log.d(TAG, "onResume"); - // If user changed camera state few times and last state was CameraState.ENABLED_FROM_USER - // than we turn on cam, else we nothing change - if (cameraState != VideoConversationFragment.CameraState.DISABLED_FROM_USER) { - cameraToggle.setChecked(true); - toggleCamera(true); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Log.i(TAG, "onCreate"); - } - - @Override - public void onPause() { - // If camera state is CameraState.ENABLED_FROM_USER or CameraState.NONE - // than we turn off cam - if (cameraState != CameraState.DISABLED_FROM_USER) { - toggleCamera(false); - } - super.onPause(); - } - - @Override - public void onStop() { - super.onStop(); - Log.d(TAG, "onStop"); - } - - - @Override - public void onDetach() { - super.onDetach(); - Log.d(TAG, "onDetach"); - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - Log.d(TAG, "onDestroyView"); - } - - @Override - protected void setActionButtonsInvisible() { - super.setActionButtonsInvisible(); - cameraToggle.setVisibility(View.INVISIBLE); - } - - - protected void initButtonsListener() { - super.initButtonsListener(); - - cameraToggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (cameraState != CameraState.DISABLED_FROM_USER) { - toggleCamera(isChecked); - } - } - }); - } - - private void switchCamera(final MenuItem item) { - if (cameraState == CameraState.DISABLED_FROM_USER) { - return; - } - cameraToggle.setEnabled(false); - conversationFragmentCallbackListener.onSwitchCamera(new CameraVideoCapturer.CameraSwitchHandler() { - @Override - public void onCameraSwitchDone(boolean b) { - Log.d(TAG, "camera switched, bool = " + b); - isCurrentCameraFront = b; - updateSwitchCameraIcon(item); - toggleCameraInternal(); - } - - @Override - public void onCameraSwitchError(String s) { - Log.d(TAG, "camera switch error " + s); - Toaster.shortToast(getString(R.string.camera_swicth_failed) + s); - cameraToggle.setEnabled(true); - } - }); - } - - private void updateSwitchCameraIcon(final MenuItem item) { - if (isCurrentCameraFront) { - Log.d(TAG, "CameraFront now!"); - item.setIcon(R.drawable.ic_camera_front); - } else { - Log.d(TAG, "CameraRear now!"); - item.setIcon(R.drawable.ic_camera_rear); - } - } - - private void toggleCameraInternal() { - Log.d(TAG, "Camera was switched!"); - updateVideoView(localVideoView, isCurrentCameraFront); - toggleCamera(true); - } - - private void toggleCamera(boolean isNeedEnableCam) { - if (currentSession != null && currentSession.getMediaStreamManager() != null) { - conversationFragmentCallbackListener.onSetVideoEnabled(isNeedEnableCam); - } - if (!cameraToggle.isEnabled()) { - cameraToggle.setEnabled(true); - } - } - - @Override - protected void fillVideoView(QBConferenceSurfaceView videoView, QBRTCVideoTrack videoTrack, - boolean remoteRenderer) { - super.fillVideoView(videoView, videoTrack, remoteRenderer); - if (!remoteRenderer) { - updateVideoView(videoView, isCurrentCameraFront); - } - } - - //////////////////////////// callbacks from QBRTCClientVideoTracksCallbacks /////////////////// - @Override - public void onLocalVideoTrackReceive(ConferenceSession qbrtcSession, final QBRTCVideoTrack videoTrack) { - Log.d(TAG, "onLocalVideoTrackReceive() run"); - localVideoTrack = videoTrack; - cameraState = CameraState.NONE; - actionButtonsEnabled(true); - - if (localVideoView != null) { - fillVideoView(localVideoView, localVideoTrack, false); - } - } - - ///////////////////////////////////////// end //////////////////////////////////////////// - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.camera_switch: - Log.d(TAG, "camera_switch"); - switchCamera(item); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - private enum CameraState { - NONE, - DISABLED_FROM_USER, - ENABLED_FROM_USER - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/util/NetworkConnectionChecker.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/util/NetworkConnectionChecker.java deleted file mode 100644 index dd8b84312..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/util/NetworkConnectionChecker.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.quickblox.sample.conference.util; - -import android.app.Application; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; - -import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; - -public class NetworkConnectionChecker { - - private final ConnectivityManager connectivityManager; - - private Set listeners = new CopyOnWriteArraySet<>(); - - public NetworkConnectionChecker(Application context) { - this.connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); - context.registerReceiver(new NetworkStateReceiver(), intentFilter); - } - - public void registerListener(OnConnectivityChangedListener listener) { - listeners.add(listener); - listener.connectivityChanged(isConnectedNow()); - } - - public void unregisterListener(OnConnectivityChangedListener listener) { - listeners.remove(listener); - } - - public boolean isConnectedNow() { - NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); - return activeNetworkInfo != null && activeNetworkInfo.isConnected(); - } - - public interface OnConnectivityChangedListener { - - void connectivityChanged(boolean availableNow); - - } - - private class NetworkStateReceiver extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - boolean isConnectedNow = isConnectedNow(); - - for (OnConnectivityChangedListener listener : listeners) { - listener.connectivityChanged(isConnectedNow); - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/util/QBResRequestExecutor.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/util/QBResRequestExecutor.java deleted file mode 100644 index 1b3d25cf5..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/util/QBResRequestExecutor.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.quickblox.sample.conference.util; - -import android.os.Bundle; - -import com.quickblox.chat.QBRestChatService; -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.chat.request.QBDialogRequestBuilder; -import com.quickblox.chat.utils.DialogUtils; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.quickblox.core.request.QBRequestGetBuilder; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; - - -public class QBResRequestExecutor { - private String TAG = QBResRequestExecutor.class.getSimpleName(); - - public void signUpNewUser(final QBUser newQbUser, final QBEntityCallback callback) { - QBUsers.signUp(newQbUser).performAsync(callback); - } - - public void signInUser(final QBUser currentQbUser, final QBEntityCallback callback) { - QBUsers.signIn(currentQbUser).performAsync(callback); - } - - public void deleteCurrentUser(int currentQbUserID, QBEntityCallback callback) { - QBUsers.deleteUser(currentQbUserID).performAsync(callback); - } - - public void loadDialogs(final QBEntityCallback> callback) { - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - requestBuilder.setLimit(100); - - - QBRestChatService.getChatDialogs(QBDialogType.GROUP, requestBuilder).performAsync(callback); - } - - public void loadDialogByID(String dialogId, final QBEntityCallback callback) { - QBRestChatService.getChatDialogById(dialogId).performAsync(callback); - } - - - public void deleteDialog(QBChatDialog qbDialog, QBEntityCallback callback) { - QBRestChatService.deleteDialog(qbDialog.getDialogId(), false) - .performAsync(callback); - } - - public void deleteDialogs(Collection dialogs, final QBEntityCallback> callback) { - StringifyArrayList dialogsIds = new StringifyArrayList<>(); - for (QBChatDialog dialog : dialogs) { - dialogsIds.add(dialog.getDialogId()); - } - - QBRestChatService.deleteDialogs(dialogsIds, false, null).performAsync(callback); - } - - public void createDialogWithSelectedUsers(final List users, QBUser currentUser, - final QBEntityCallback callback) { - - QBRestChatService.createChatDialog(createDialog(users, currentUser)).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - callback.onSuccess(dialog, args); - } - - @Override - public void onError(QBResponseException responseException) { - callback.onError(responseException); - } - }); - } - - private static QBChatDialog createDialog(List users, QBUser currentUser) { - return DialogUtils.buildDialog(DialogUtils.createChatNameFromUserList(users.toArray(new QBUser[users.size()])), - QBDialogType.GROUP, DialogUtils.getUserIds(users)); - } - - public void loadUsersByTag(final String tag, final QBEntityCallback> callback) { - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(); - requestBuilder.setPerPage(50); - List tags = new LinkedList<>(); - tags.add(tag); - - QBUsers.getUsersByTags(tags, requestBuilder).performAsync(callback); - } - - public void loadUsersByIds(final Collection usersIDs, final QBEntityCallback> callback) { - QBUsers.getUsersByIDs(usersIDs, null).performAsync(callback); - } - - public void updateDialog(QBChatDialog dialog, QBUser[] users, QBEntityCallback callback) { - QBDialogRequestBuilder requestBuilder = new QBDialogRequestBuilder(); - requestBuilder.addUsers(users); - - QBRestChatService.updateGroupChatDialog(dialog, requestBuilder).performAsync(callback); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/CameraUtils.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/CameraUtils.java deleted file mode 100644 index 053b37cca..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/CameraUtils.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.hardware.Camera; -import android.util.Log; - -/** - * QuickBlox team - */ -public class CameraUtils { - - private static final String TAG = CameraUtils.class.getSimpleName(); - - public static Camera.CameraInfo getCameraInfo(int deviceId) { - - Camera.CameraInfo info = null; - - try { - info = new Camera.CameraInfo(); - Camera.getCameraInfo(deviceId, info); - } catch (Exception var3) { - info = null; - Log.e(TAG, "getCameraInfo failed on device " + deviceId); - } - return info; - } - - public static boolean isCameraFront(int deviceId) { - Camera.CameraInfo cameraInfo = getCameraInfo(deviceId); - - return (cameraInfo != null && cameraInfo.facing == 1); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/CollectionsUtils.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/CollectionsUtils.java deleted file mode 100644 index 6fcb90166..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/CollectionsUtils.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.Collection; - - -public class CollectionsUtils { - - public static String makeStringFromUsersFullNames(ArrayList allUsers) { - StringifyArrayList usersNames = new StringifyArrayList<>(); - - for (QBUser usr : allUsers) { - if (usr.getFullName() != null) { - usersNames.add(usr.getFullName()); - } else if (usr.getId() != null) { - usersNames.add(String.valueOf(usr.getId())); - } - } - return usersNames.getItemsAsString().replace(",", ", "); - } - - public static ArrayList getIdsSelectedOpponents(Collection selectedUsers) { - ArrayList opponentsIds = new ArrayList<>(); - if (!selectedUsers.isEmpty()) { - for (QBUser qbUser : selectedUsers) { - opponentsIds.add(qbUser.getId()); - } - } - - return opponentsIds; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/Consts.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/Consts.java deleted file mode 100644 index d6e4a3e6b..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/Consts.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.Manifest; - -/** - * QuickBlox team - */ -public interface Consts { - - String DEFAULT_USER_PASSWORD = "x6Bt0VDy5"; - - String VERSION_NUMBER = "1.0"; - - int CALL_ACTIVITY_CLOSE = 1000; - - int ERR_LOGIN_ALREADY_TAKEN_HTTP_STATUS = 422; - int ERR_MSG_DELETING_HTTP_STATUS = 401; - - //CALL ACTIVITY CLOSE REASONS - int CALL_ACTIVITY_CLOSE_WIFI_DISABLED = 1001; - String WIFI_DISABLED = "wifi_disabled"; - - String OPPONENTS = "opponents"; - String CONFERENCE_TYPE = "conference_type"; - String EXTRA_TAG = "currentRoomName"; - int MAX_OPPONENTS_COUNT = 6; - - String PREF_CURREN_ROOM_NAME = "current_room_name"; - - String EXTRA_USER_ID = "user_id"; - String EXTRA_USER_LOGIN = "user_login"; - String EXTRA_USER_PASSWORD = "user_password"; - String EXTRA_DIALOG_ID = "dialog_id"; - String EXTRA_DIALOG_OCCUPANTS = "dialog_occupants"; - String EXTRA_AS_LISTENER = "as_listener"; - String EXTRA_DIALOG_IS_VIDEO = "dialog_is_video"; - String EXTRA_PENDING_INTENT = "pending_Intent"; - - String EXTRA_LOGIN_RESULT = "login_result"; - String EXTRA_LOGIN_ERROR_MESSAGE = "login_error_message"; - int EXTRA_LOGIN_RESULT_CODE = 1002; - - String[] PERMISSIONS = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO}; -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/FragmentExecuotr.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/FragmentExecuotr.java deleted file mode 100644 index f9c13d5ba..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/FragmentExecuotr.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; - -/** - * QuickBlox team - */ -public class FragmentExecuotr { - - public static void addFragment(FragmentManager fragmentManager, int containerId, Fragment fragment, String tag) { - fragmentManager.beginTransaction().replace(containerId, fragment, tag).commitAllowingStateLoss(); - } - - public static void addFragmentAtTop(FragmentManager fragmentManager, int containerId, Fragment fragment, String tag) { - fragmentManager.beginTransaction().add(containerId, fragment, tag).commitAllowingStateLoss(); - } - - public static void addFragmentWithBackStack(FragmentManager fragmentManager, int containerId, Fragment fragment, String tag) { - fragmentManager.beginTransaction().replace(containerId, fragment, tag).addToBackStack(null).commitAllowingStateLoss(); - } - - public static void removeFragment(FragmentManager fragmentManager, Fragment fragment) { - fragmentManager.beginTransaction().remove(fragment).commitAllowingStateLoss(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/PermissionsChecker.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/PermissionsChecker.java deleted file mode 100644 index ef493a2d6..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/PermissionsChecker.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.content.Context; -import android.content.pm.PackageManager; - -import androidx.core.content.ContextCompat; - -public class PermissionsChecker { - private final Context context; - - public PermissionsChecker(Context context) { - this.context = context; - } - - public boolean lacksPermissions(String... permissions) { - for (String permission : permissions) { - if (lacksPermission(permission)) { - return true; - } - } - return false; - } - - private boolean lacksPermission(String permission) { - return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_DENIED; - } - -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/QBRTCSessionUtils.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/QBRTCSessionUtils.java deleted file mode 100644 index 841156d84..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/QBRTCSessionUtils.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.util.SparseArray; - -import com.quickblox.sample.conference.R; -import com.quickblox.videochat.webrtc.QBRTCTypes; - -public class QBRTCSessionUtils { - - private static final SparseArray peerStateDescriptions = new SparseArray<>(); - - static { - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_NEW.ordinal(), R.string.new_connection); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_PENDING.ordinal(), R.string.opponent_pending); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CONNECTING.ordinal(), R.string.text_status_connect); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CHECKING.ordinal(), R.string.text_status_checking); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CONNECTED.ordinal(), R.string.text_status_connected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_DISCONNECTED.ordinal(), R.string.text_status_disconnected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CLOSED.ordinal(), R.string.opponent_closed); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_DISCONNECT_TIMEOUT.ordinal(), R.string.text_status_disconnected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_NOT_ANSWER.ordinal(), R.string.text_status_no_answer); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_NOT_OFFER.ordinal(), R.string.text_status_no_answer); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_REJECT.ordinal(), R.string.text_status_rejected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_HANG_UP.ordinal(), R.string.text_status_hang_up); - } - - public static Integer getStatusDescriptionResource(QBRTCTypes.QBRTCConnectionState connectionState) { - return peerStateDescriptions.get(connectionState.ordinal()); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/SettingsUtil.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/SettingsUtil.java deleted file mode 100644 index 49e4ebe57..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/SettingsUtil.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.content.Context; -import android.content.SharedPreferences; -import android.util.Log; - -import com.quickblox.sample.conference.R; -import com.quickblox.videochat.webrtc.QBRTCMediaConfig; - -import java.util.List; - -/** - * QuickBlox team - */ -public class SettingsUtil { - - private static final String TAG = SettingsUtil.class.getSimpleName(); - - private static void setSettingsForMultiCall(List users) { - if (users.size() <= 4) { - setDefaultVideoQuality(); - } else { - //set to minimum settings - QBRTCMediaConfig.setVideoWidth(QBRTCMediaConfig.VideoQuality.QBGA_VIDEO.width); - QBRTCMediaConfig.setVideoHeight(QBRTCMediaConfig.VideoQuality.QBGA_VIDEO.height); - QBRTCMediaConfig.setVideoHWAcceleration(false); - QBRTCMediaConfig.setVideoCodec(null); - } - } - - public static void setSettingsStrategy(List users, SharedPreferences sharedPref, Context context) { - setCommonSettings(sharedPref, context); - if (users.size() == 1) { - setSettingsFromPreferences(sharedPref, context); - } else { - setSettingsForMultiCall(users); - } - } - - private static void setCommonSettings(SharedPreferences sharedPref, Context context) { - String audioCodecDescription = getPreferenceString(sharedPref, context, R.string.pref_audiocodec_key, - R.string.pref_audiocodec_def); - QBRTCMediaConfig.AudioCodec audioCodec = QBRTCMediaConfig.AudioCodec.ISAC.getDescription() - .equals(audioCodecDescription) ? - QBRTCMediaConfig.AudioCodec.ISAC : QBRTCMediaConfig.AudioCodec.OPUS; - Log.e(TAG, "audioCodec =: " + audioCodec.getDescription()); - QBRTCMediaConfig.setAudioCodec(audioCodec); - Log.v(TAG, "audioCodec = " + QBRTCMediaConfig.getAudioCodec()); - // Check Disable built-in AEC flag. - boolean disableBuiltInAEC = getPreferenceBoolean(sharedPref, context, - R.string.pref_disable_built_in_aec_key, - R.string.pref_disable_built_in_aec_default); - - QBRTCMediaConfig.setUseBuildInAEC(!disableBuiltInAEC); - Log.v(TAG, "setUseBuildInAEC = " + QBRTCMediaConfig.isUseBuildInAEC()); - // Check Disable Audio Processing flag. - boolean noAudioProcessing = getPreferenceBoolean(sharedPref, context, - R.string.pref_noaudioprocessing_key, - R.string.pref_noaudioprocessing_default); - QBRTCMediaConfig.setAudioProcessingEnabled(!noAudioProcessing); - Log.v(TAG, "isAudioProcessingEnabled = " + QBRTCMediaConfig.isAudioProcessingEnabled()); - // Check OpenSL ES enabled flag. - boolean useOpenSLES = getPreferenceBoolean(sharedPref, context, - R.string.pref_opensles_key, - R.string.pref_opensles_default); - QBRTCMediaConfig.setUseOpenSLES(useOpenSLES); - Log.v(TAG, "isUseOpenSLES = " + QBRTCMediaConfig.isUseOpenSLES()); - } - - private static void setSettingsFromPreferences(SharedPreferences sharedPref, Context context) { - - // Check HW codec flag. - boolean hwCodec = sharedPref.getBoolean(context.getString(R.string.pref_hwcodec_key), - Boolean.valueOf(context.getString(R.string.pref_hwcodec_default))); - - QBRTCMediaConfig.setVideoHWAcceleration(hwCodec); - - // Get video resolution from settings. - int resolutionItem = Integer.parseInt(sharedPref.getString(context.getString(R.string.pref_resolution_key), - "0")); - Log.e(TAG, "resolutionItem =: " + resolutionItem); - setVideoQuality(resolutionItem); - Log.v(TAG, "resolution = " + QBRTCMediaConfig.getVideoHeight() + "x" + QBRTCMediaConfig.getVideoWidth()); - - // Get start bitrate. - int startBitrate = getPreferenceInt(sharedPref, context, - R.string.pref_startbitratevalue_key, - R.string.pref_startbitratevalue_default); - Log.e(TAG, "videoStartBitrate =: " + startBitrate); - QBRTCMediaConfig.setVideoStartBitrate(startBitrate); - Log.v(TAG, "videoStartBitrate = " + QBRTCMediaConfig.getVideoStartBitrate()); - - int videoCodecItem = Integer.parseInt(getPreferenceString(sharedPref, context, R.string.pref_videocodec_key, "0")); - for (QBRTCMediaConfig.VideoCodec codec : QBRTCMediaConfig.VideoCodec.values()) { - if (codec.ordinal() == videoCodecItem) { - Log.e(TAG, "videoCodecItem =: " + codec.getDescription()); - QBRTCMediaConfig.setVideoCodec(codec); - Log.v(TAG, "videoCodecItem = " + QBRTCMediaConfig.getVideoCodec()); - break; - } - } - // Get camera fps from settings. - int cameraFps = getPreferenceInt(sharedPref, context, R.string.pref_frame_rate_key, R.string.pref_frame_rate_default); - Log.e(TAG, "cameraFps = " + cameraFps); - QBRTCMediaConfig.setVideoFps(cameraFps); - Log.v(TAG, "cameraFps = " + QBRTCMediaConfig.getVideoFps()); - } - - private static void setVideoQuality(int resolutionItem) { - if (resolutionItem != -1) { - setVideoFromLibraryPreferences(resolutionItem); - } else { - setDefaultVideoQuality(); - } - } - - private static void setDefaultVideoQuality() { - QBRTCMediaConfig.setVideoWidth(QBRTCMediaConfig.VideoQuality.VGA_VIDEO.width); - QBRTCMediaConfig.setVideoHeight(QBRTCMediaConfig.VideoQuality.VGA_VIDEO.height); - } - - private static void setVideoFromLibraryPreferences(int resolutionItem) { - for (QBRTCMediaConfig.VideoQuality quality : QBRTCMediaConfig.VideoQuality.values()) { - if (quality.ordinal() == resolutionItem) { - Log.e(TAG, "resolution =: " + quality.height + ":" + quality.width); - QBRTCMediaConfig.setVideoHeight(quality.height); - QBRTCMediaConfig.setVideoWidth(quality.width); - } - } - } - - private static String getPreferenceString(SharedPreferences sharedPref, Context context, int strResKey, int strResDefValue) { - return sharedPref.getString(context.getString(strResKey), context.getString(strResDefValue)); - } - - private static String getPreferenceString(SharedPreferences sharedPref, Context context, int strResKey, String strResDefValue) { - return sharedPref.getString(context.getString(strResKey), strResDefValue); - } - - public static int getPreferenceInt(SharedPreferences sharedPref, Context context, int strResKey, int strResDefValue) { - return sharedPref.getInt(context.getString(strResKey), Integer.valueOf(context.getString(strResDefValue))); - } - - private static boolean getPreferenceBoolean(SharedPreferences sharedPref, Context context, int StrRes, int strResDefValue) { - return sharedPref.getBoolean(context.getString(StrRes), Boolean.valueOf(context.getString(strResDefValue))); - } -} diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/UsersUtils.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/UsersUtils.java deleted file mode 100644 index 8fb6b5a60..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/UsersUtils.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.content.Context; -import android.text.TextUtils; - -import com.quickblox.sample.conference.db.QbUsersDbManager; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - - -public class UsersUtils { - - private static SharedPrefsHelper sharedPrefsHelper; - private static QbUsersDbManager dbManager; - - public static String getUserNameOrId(QBUser qbUser, Integer userId) { - if (qbUser == null) { - return String.valueOf(userId); - } - - String fullName = qbUser.getFullName(); - - return TextUtils.isEmpty(fullName) ? String.valueOf(userId) : fullName; - } - - public static ArrayList getListAllUsersFromIds(ArrayList existedUsers, List allIds) { - ArrayList qbUsers = new ArrayList<>(); - - - for (Integer userId : allIds) { - QBUser stubUser = createStubUserById(userId); - if (!existedUsers.contains(stubUser)) { - qbUsers.add(stubUser); - } - } - - qbUsers.addAll(existedUsers); - - return qbUsers; - } - - private static QBUser createStubUserById(Integer userId) { - QBUser stubUser = new QBUser(userId); - stubUser.setFullName(String.valueOf(userId)); - return stubUser; - } - - public static ArrayList getIdsNotLoadedUsers(ArrayList existedUsers, List allIds) { - ArrayList idsNotLoadedUsers = new ArrayList<>(); - - for (Integer userId : allIds) { - QBUser stubUser = createStubUserById(userId); - if (!existedUsers.contains(stubUser)) { - idsNotLoadedUsers.add(userId); - } - } - - return idsNotLoadedUsers; - } - - public static void removeUserData(Context context) { - if (sharedPrefsHelper == null) { - sharedPrefsHelper = SharedPrefsHelper.getInstance(); - } - sharedPrefsHelper.clearAllData(); - if (dbManager == null) { - dbManager = QbUsersDbManager.getInstance(context); - } - dbManager.clearDB(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/ValidationUtils.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/ValidationUtils.java deleted file mode 100644 index 3f1858e39..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/ValidationUtils.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.content.Context; -import android.widget.EditText; - -import com.quickblox.sample.conference.R; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - - -public class ValidationUtils { - - private static boolean isEnteredTextValid(Context context, EditText editText, int resFieldName, int maxLength, boolean checkName) { - - boolean isCorrect; - Pattern p; - if (checkName) { - p = Pattern.compile("^[a-zA-Z][a-zA-Z 0-9]{2," + (maxLength - 1) + "}+$"); - } else { - p = Pattern.compile("^[a-zA-Z][a-zA-Z0-9]{2," + (maxLength - 1) + "}+$"); - } - - Matcher m = p.matcher(editText.getText().toString().trim()); - isCorrect = m.matches(); - - if (!isCorrect) { - editText.setError(String.format(context.getString(R.string.error_name_must_not_contain_special_characters_from_app), - context.getString(resFieldName), - maxLength)); - return false; - } else { - return true; - } - } - - public static boolean isUserNameValid(Context context, EditText editText) { - return isEnteredTextValid(context, editText, R.string.field_name_user_name, 20, true); - } - - public static boolean isRoomNameValid(Context context, EditText editText) { - return isEnteredTextValid(context, editText, R.string.field_name_chat_room_name, 15, false); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/WebRtcSessionManager.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/WebRtcSessionManager.java deleted file mode 100644 index dc37ec0e3..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/utils/WebRtcSessionManager.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.quickblox.sample.conference.utils; - -import android.content.Context; - -import com.quickblox.conference.ConferenceSession; - - -public class WebRtcSessionManager { - private static final String TAG = WebRtcSessionManager.class.getSimpleName(); - - private static WebRtcSessionManager instance; - private Context context; - - private static ConferenceSession currentSession; - - private WebRtcSessionManager(Context context) { - this.context = context; - } - - public static WebRtcSessionManager getInstance(Context context) { - if (instance == null) { - instance = new WebRtcSessionManager(context); - } - - return instance; - } - - public ConferenceSession getCurrentSession() { - return currentSession; - } - - public void setCurrentSession(ConferenceSession qbCurrentSession) { - currentSession = qbCurrentSession; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/view/ListPreferenceCompat.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/view/ListPreferenceCompat.java deleted file mode 100644 index 26dcb9759..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/view/ListPreferenceCompat.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.quickblox.sample.conference.view; - -import android.annotation.TargetApi; -import android.content.Context; -import android.os.Build; -import android.preference.ListPreference; -import android.text.TextUtils; -import android.util.AttributeSet; - -public class ListPreferenceCompat extends ListPreference { - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public ListPreferenceCompat(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public ListPreferenceCompat(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public ListPreferenceCompat(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public ListPreferenceCompat(Context context) { - super(context); - } - - @Override - public void setValue(String value) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - super.setValue(value); - } else { - String oldValue = getValue(); - super.setValue(value); - if (!TextUtils.equals(value, oldValue)) { - notifyChanged(); - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/view/SeekBarPreference.java b/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/view/SeekBarPreference.java deleted file mode 100644 index 044df1d44..000000000 --- a/old_samples/sample-videochat-conference/src/main/java/com/quickblox/sample/conference/view/SeekBarPreference.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.quickblox.sample.conference.view; - -import android.content.Context; -import android.content.res.TypedArray; -import android.preference.Preference; -import android.util.AttributeSet; -import android.util.Log; -import android.view.View; -import android.widget.SeekBar; - -import com.quickblox.sample.conference.R; - -public class SeekBarPreference extends Preference implements SeekBar.OnSeekBarChangeListener { - - private static final String ANDROID_NS = "http://schemas.android.com/apk/res/android"; - private static final String SEEKBAR_NS = "http://schemas.android.com/apk/res-auto"; - - - private Context context; - private SeekBar seekBar; - private int progress, maxSeekBarValue, minSeekBarValue, seekBarStepSize; - - public SeekBarPreference(Context context) { - this(context, null, 0); - } - - public SeekBarPreference(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public SeekBarPreference(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - setLayoutResource(R.layout.seekbar_preference); - - this.context = context; - - initFields(context, attrs); - } - - private void initFields(Context context, AttributeSet attrs) { - int maxValueResourceId = attrs.getAttributeResourceValue(ANDROID_NS, "max", R.integer.pref_default_int_value); - maxSeekBarValue = context.getResources().getInteger(maxValueResourceId); - - int minValueResourceId = attrs.getAttributeResourceValue(SEEKBAR_NS, "min", R.integer.pref_default_int_value); - minSeekBarValue = context.getResources().getInteger(minValueResourceId); - - int stepSizeValueResourceId = attrs.getAttributeResourceValue(SEEKBAR_NS, "stepSize", R.integer.pref_default_int_value); - seekBarStepSize = context.getResources().getInteger(stepSizeValueResourceId); - - Log.v("Attribute", "max = " + maxSeekBarValue); - Log.v("Attribute", "min = " + minSeekBarValue); - Log.v("Attribute", "step = " + seekBarStepSize); - } - - @Override - protected void onBindView(View view) { - super.onBindView(view); - seekBar = (SeekBar) view.findViewById(R.id.seekbar); - seekBar.setMax(maxSeekBarValue); - seekBar.setProgress(progress); - seekBar.setOnSeekBarChangeListener(this); - } - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - if (!fromUser) - return; - - progress = (progress / seekBarStepSize) * seekBarStepSize; - - if (progress <= minSeekBarValue) { - progress = minSeekBarValue + progress; - } - - setValue(progress); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - // not used - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - // not used - } - - @Override - protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { - setValue(restoreValue ? getPersistedInt(progress) : (Integer) defaultValue); - } - - public void setValue(int value) { - if (shouldPersist()) { - persistInt(value); - } - - if (value != progress) { - progress = value; - notifyChanged(); - } - - setSummary(String.valueOf(progress)); - } - - @Override - protected Object onGetDefaultValue(TypedArray a, int index) { - return a.getInt(index, 0); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_accept_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_accept_call.png deleted file mode 100644 index 29562e518..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_action_delete.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_action_delete.png deleted file mode 100644 index d912755d2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_arrow_back.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_arrow_back.png deleted file mode 100644 index 8dc2eb6e5..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_arrow_back_w.png deleted file mode 100644 index 4cd9faa04..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call.png deleted file mode 100644 index 871a1ee75..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call_end_sm.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call_end_sm.png deleted file mode 100644 index 9e50f90c6..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call_grey.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call_grey.png deleted file mode 100644 index 3d0e8ec78..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_camera_front.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_camera_front.png deleted file mode 100644 index a67103382..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_camera_rear.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_camera_rear.png deleted file mode 100644 index 18b501c5b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_chat_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_chat_group.png deleted file mode 100644 index d4a72e831..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_checkmark.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_checkmark.png deleted file mode 100644 index 8e6a7c49e..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_ear_hearing_grey600_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_ear_hearing_grey600_24dp.png deleted file mode 100755 index d4bf994e4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_ear_hearing_grey600_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_group.png deleted file mode 100644 index c3ca659e4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone.png deleted file mode 100644 index c9e8d04e2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_off.png deleted file mode 100644 index 576d3bfa3..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index 8d9cdd7fd..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png deleted file mode 100644 index 3bda65d32..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_person.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_person.png deleted file mode 100644 index e04e43f94..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_person_big.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_person_big.png deleted file mode 100644 index 5008c0bf1..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_phone_hangup.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_phone_hangup.png deleted file mode 100644 index b7936fc5b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_phonelink_ring.png deleted file mode 100644 index 2a6f5fec9..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_refresh.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_refresh.png deleted file mode 100644 index 16de9a598..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_screen_share.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_screen_share.png deleted file mode 100644 index b49af36e7..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_speaker_phone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_speaker_phone.png deleted file mode 100644 index 7bff8b3f4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_stop_screenshare.png deleted file mode 100644 index 97a78b8cd..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 02888fabe..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_white.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_white.png deleted file mode 100644 index 8224786d1..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_white_24dp.png deleted file mode 100644 index 192343c67..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_videocam.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_videocam.png deleted file mode 100644 index cd93b32e0..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_videocam_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_videocam_w.png deleted file mode 100644 index 4daccdc1b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 05e9dbeed..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index f4908010e..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_medium_white_24dp.png deleted file mode 100644 index 743efd664..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_off.png deleted file mode 100644 index 4e4d4dfa2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_off_white_24dp.png deleted file mode 100644 index 9e0e0284d..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_on.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_on.png deleted file mode 100644 index 53e6b959d..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/pres_img.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/pres_img.png deleted file mode 100644 index 83b44d291..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/qb_logo.png b/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/qb_logo.png deleted file mode 100644 index c7c50a285..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-hdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_accept_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_accept_call.png deleted file mode 100644 index e7a8b21ba..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_action_delete.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_action_delete.png deleted file mode 100644 index 864553a06..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_arrow_back.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_arrow_back.png deleted file mode 100644 index bb6ad14bd..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_arrow_back_w.png deleted file mode 100644 index 9882fa280..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call.png deleted file mode 100644 index 80ad50b59..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call_end_sm.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call_end_sm.png deleted file mode 100644 index 7783b348b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call_grey.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call_grey.png deleted file mode 100644 index 95e574927..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_camera_front.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_camera_front.png deleted file mode 100644 index 4b0426b24..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_camera_rear.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_camera_rear.png deleted file mode 100644 index 19ff948ac..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_chat_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_chat_group.png deleted file mode 100644 index 13f2bd064..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_checkmark.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_checkmark.png deleted file mode 100644 index a0380f7bd..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_ear_hearing_grey600_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_ear_hearing_grey600_24dp.png deleted file mode 100755 index 35f6edace..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_ear_hearing_grey600_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_group.png deleted file mode 100644 index a2e20f657..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone.png deleted file mode 100644 index 84ab52624..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_off.png deleted file mode 100644 index caf7fca45..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index d3d468e2e..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png deleted file mode 100644 index aa495bae4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_person.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_person.png deleted file mode 100644 index 789dddb5f..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_person_big.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_person_big.png deleted file mode 100644 index 76a4c5779..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_phone_hangup.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_phone_hangup.png deleted file mode 100644 index 16bc978b3..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_phonelink_ring.png deleted file mode 100644 index 88cd9f8ec..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_refresh.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_refresh.png deleted file mode 100644 index 37e5894f6..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_screen_share.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_screen_share.png deleted file mode 100644 index 142124e91..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_speaker_phone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_speaker_phone.png deleted file mode 100644 index b38b4de34..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_stop_screenshare.png deleted file mode 100644 index a10098fcf..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 108ffa93b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_white.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_white.png deleted file mode 100644 index af92443ae..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_white_24dp.png deleted file mode 100644 index db99aa34e..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_videocam.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_videocam.png deleted file mode 100644 index 5969f4950..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_videocam_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_videocam_w.png deleted file mode 100644 index ffb5ae0b0..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 20b0a6630..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png deleted file mode 100644 index a448c6d36..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_off.png deleted file mode 100644 index b7a27d5d4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_off_white_24dp.png deleted file mode 100644 index 9ca5c66e0..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_on.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_on.png deleted file mode 100644 index 9e79ad16f..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/pres_img.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/pres_img.png deleted file mode 100644 index b7d005d8b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/qb_logo.png b/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/qb_logo.png deleted file mode 100644 index e2e05ec81..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-mdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_accept_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_accept_call.png deleted file mode 100644 index b2e162259..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_action_delete.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_action_delete.png deleted file mode 100644 index 37e9c219c..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_arrow_back.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_arrow_back.png deleted file mode 100644 index fc3b3743c..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_arrow_back_w.png deleted file mode 100644 index cd0875351..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call.png deleted file mode 100644 index e41639177..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call_end_sm.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call_end_sm.png deleted file mode 100644 index 56e1651ab..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call_grey.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call_grey.png deleted file mode 100644 index af3f47b52..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_camera_front.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_camera_front.png deleted file mode 100644 index 2d5ebab27..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_camera_rear.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_camera_rear.png deleted file mode 100644 index e61d4f065..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_chat_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_chat_group.png deleted file mode 100644 index 007c44cea..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_checkmark.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_checkmark.png deleted file mode 100644 index 0ea5e7e6e..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_ear_hearing_grey600_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_ear_hearing_grey600_24dp.png deleted file mode 100755 index e69716780..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_ear_hearing_grey600_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_group.png deleted file mode 100644 index 6372dc1fb..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone.png deleted file mode 100644 index 5f9e6cd32..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_off.png deleted file mode 100644 index 4b5ea40bb..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index d4da234ce..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png deleted file mode 100644 index 84ab52624..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_person.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_person.png deleted file mode 100644 index a35be4402..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_person_big.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_person_big.png deleted file mode 100644 index 12a45d97d..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_phone_hangup.png deleted file mode 100644 index d9edd9d10..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_phonelink_ring.png deleted file mode 100644 index 94eb9626e..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_refresh.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_refresh.png deleted file mode 100644 index 015eb0923..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_screen_share.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_screen_share.png deleted file mode 100644 index e30a7450b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_speaker_phone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_speaker_phone.png deleted file mode 100644 index dc3fd75ef..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_stop_screenshare.png deleted file mode 100644 index 5f05b6c85..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png deleted file mode 100644 index a206dac60..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_white.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_white.png deleted file mode 100644 index 103cd61a3..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_white_24dp.png deleted file mode 100644 index af92443ae..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_videocam.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_videocam.png deleted file mode 100644 index 0e50d06be..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_videocam_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_videocam_w.png deleted file mode 100644 index 51804d813..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 9e79ad16f..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index f01896163..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_medium_white_24dp.png deleted file mode 100644 index 0947e82ac..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_off.png deleted file mode 100644 index f4a898bf4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_off_white_24dp.png deleted file mode 100644 index b7a27d5d4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_on.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_on.png deleted file mode 100644 index d45d7f667..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/pres_img.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/pres_img.png deleted file mode 100644 index 15f9884cd..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/qb_logo.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/qb_logo.png deleted file mode 100644 index 2290d4d25..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_accept_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_accept_call.png deleted file mode 100644 index 770849665..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_action_delete.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_action_delete.png deleted file mode 100644 index ef8e4bb42..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_arrow_back.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_arrow_back.png deleted file mode 100644 index 8511be4d0..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png deleted file mode 100644 index 8e4372dc1..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call.png deleted file mode 100644 index 954112462..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call_end_sm.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call_end_sm.png deleted file mode 100644 index a65fe44bb..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call_grey.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call_grey.png deleted file mode 100644 index eae2adbf7..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_camera_front.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_camera_front.png deleted file mode 100644 index 3b25fc0d6..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_camera_rear.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_camera_rear.png deleted file mode 100644 index 82f2d5e46..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_chat_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_chat_group.png deleted file mode 100644 index 5135cd02b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_chat_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_checkmark.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_checkmark.png deleted file mode 100644 index 429c7afaf..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_ear_hearing_grey600_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_ear_hearing_grey600_24dp.png deleted file mode 100755 index 38d9d81bf..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_ear_hearing_grey600_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_group.png deleted file mode 100644 index b087c9c28..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone.png deleted file mode 100644 index cb7beb66a..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_off.png deleted file mode 100644 index 47e9ee603..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index 472bc6838..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png deleted file mode 100644 index c9e8d04e2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_person.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_person.png deleted file mode 100644 index 8d4cd22cf..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_person_big.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_person_big.png deleted file mode 100644 index 0f7d90864..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_phone_hangup.png deleted file mode 100644 index 2cf895af0..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_phonelink_ring.png deleted file mode 100644 index a42a34951..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_refresh.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_refresh.png deleted file mode 100644 index 2348df4d3..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_screen_share.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_screen_share.png deleted file mode 100644 index e4f850d74..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_speaker_phone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_speaker_phone.png deleted file mode 100644 index d776b9838..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png deleted file mode 100644 index 5599e5a35..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 140baaf87..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_white.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_white.png deleted file mode 100644 index a5b5b1c36..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png deleted file mode 100644 index 8224786d1..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_videocam.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_videocam.png deleted file mode 100644 index 9b062eda2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_videocam_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_videocam_w.png deleted file mode 100644 index 56aaa2375..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 53e6b959d..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index 7b0d27f51..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_medium_white_24dp.png deleted file mode 100644 index 6b61b6ae9..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_off.png deleted file mode 100644 index 9f33a81b1..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_off_white_24dp.png deleted file mode 100644 index 4e4d4dfa2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_on.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_on.png deleted file mode 100644 index 74b8e59a3..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/pres_img.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/pres_img.png deleted file mode 100644 index eb493e057..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/qb_logo.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/qb_logo.png deleted file mode 100644 index 0f7429a61..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_accept_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_accept_call.png deleted file mode 100644 index 734c07205..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_action_delete.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_action_delete.png deleted file mode 100644 index b66482880..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_action_delete.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_arrow_back.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_arrow_back.png deleted file mode 100644 index 56d1819cb..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png deleted file mode 100644 index 0bb0ece63..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call.png deleted file mode 100644 index a7cc48d1c..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call_end_sm.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call_end_sm.png deleted file mode 100644 index a6ef6552a..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call_grey.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call_grey.png deleted file mode 100644 index ba974924d..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_camera_front.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_camera_front.png deleted file mode 100644 index 46396e717..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_camera_rear.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_camera_rear.png deleted file mode 100644 index 0d73b2aea..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_checkmark.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_checkmark.png deleted file mode 100644 index f774f608f..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_ear_hearing_grey600_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_ear_hearing_grey600_24dp.png deleted file mode 100755 index 35f6edace..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_ear_hearing_grey600_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_group.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_group.png deleted file mode 100644 index 6c68fe21f..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone.png deleted file mode 100644 index 325af96b7..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_off.png deleted file mode 100644 index 2da399d40..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index 648ce1595..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png deleted file mode 100644 index 5f9e6cd32..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_person.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_person.png deleted file mode 100644 index b80122227..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_person_big.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_person_big.png deleted file mode 100644 index 9ff8222a1..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png deleted file mode 100644 index 8570234fe..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_phonelink_ring.png deleted file mode 100644 index 767fdd50b..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_refresh.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_refresh.png deleted file mode 100644 index d3ae3130a..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_screen_share.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_screen_share.png deleted file mode 100644 index 86eb5ed48..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_speaker_phone.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_speaker_phone.png deleted file mode 100644 index 51414aab4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png deleted file mode 100644 index bac4d67b3..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 10bfed66a..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_white.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_white.png deleted file mode 100644 index 58454db8f..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png deleted file mode 100644 index 103cd61a3..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_videocam.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_videocam.png deleted file mode 100644 index 3c909e3da..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_videocam_w.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_videocam_w.png deleted file mode 100644 index 9a61ac4a2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index d45d7f667..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index 57a09875e..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_medium_white_24dp.png deleted file mode 100644 index 7a8defd2d..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_off.png deleted file mode 100644 index 8ce4ac290..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_off_white_24dp.png deleted file mode 100644 index f4a898bf4..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_on.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_on.png deleted file mode 100644 index ed841e6c2..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/pres_img.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/pres_img.png deleted file mode 100644 index 10e73171d..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/qb_logo.png b/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/qb_logo.png deleted file mode 100644 index 4260b836a..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable-xxxhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/call_cam_toggle_background.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/call_cam_toggle_background.xml deleted file mode 100644 index ae760c080..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/call_cam_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/call_mic_toggle_background.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/call_mic_toggle_background.xml deleted file mode 100644 index a2fab5553..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/call_mic_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/call_mic_toggle_small_background.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/call_mic_toggle_small_background.xml deleted file mode 100644 index e18d8d4b4..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/call_mic_toggle_small_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/call_speaker_toggle_background.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/call_speaker_toggle_background.xml deleted file mode 100644 index 25f5b8a4e..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/call_speaker_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/call_toggle_button_background.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/call_toggle_button_background.xml deleted file mode 100644 index 6e5b779e5..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/call_toggle_button_background.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/call_toggle_button_small_background.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/call_toggle_button_small_background.xml deleted file mode 100644 index 8a0139846..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/call_toggle_button_small_background.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/group_call.png b/old_samples/sample-videochat-conference/src/main/res/drawable/group_call.png deleted file mode 100644 index 1cef7d925..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable/group_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/ic_mic_off.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/ic_mic_off.xml deleted file mode 100644 index 1a0663209..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/ic_mic_off.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/ic_user_camera_off.png b/old_samples/sample-videochat-conference/src/main/res/drawable/ic_user_camera_off.png deleted file mode 100644 index ca2977c57..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable/ic_user_camera_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/login_screen.png b/old_samples/sample-videochat-conference/src/main/res/drawable/login_screen.png deleted file mode 100644 index 6ebbaab05..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable/login_screen.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/opponents.png b/old_samples/sample-videochat-conference/src/main/res/drawable/opponents.png deleted file mode 100644 index ccf01bdc6..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable/opponents.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/p2p.png b/old_samples/sample-videochat-conference/src/main/res/drawable/p2p.png deleted file mode 100644 index f04edb804..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/drawable/p2p.png and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_call_end.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/selector_call_end.xml deleted file mode 100644 index d97d9fe65..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_call_end.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_call_take.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/selector_call_take.xml deleted file mode 100644 index e3af6a664..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_call_take.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_cam.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_cam.xml deleted file mode 100644 index 176033493..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_cam.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_mic.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_mic.xml deleted file mode 100644 index ae148b6e8..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_mic.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_speaker.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_speaker.xml deleted file mode 100644 index aeddfc2de..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/selector_toggle_speaker.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_green.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_green.xml deleted file mode 100644 index 954df606f..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_green.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_red.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_red.xml deleted file mode 100644 index aadadbf08..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_red.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_transparent.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_transparent.xml deleted file mode 100644 index 353b8c079..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_transparent.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_transparent_small.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_transparent_small.xml deleted file mode 100644 index 105d9a40b..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_transparent_small.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_white_green.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_white_green.xml deleted file mode 100644 index 921380d57..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_white_green.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_white_red.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_white_red.xml deleted file mode 100644 index ecab943e7..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/shape_oval_white_red.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/drawable/toolbar_shadow.xml b/old_samples/sample-videochat-conference/src/main/res/drawable/toolbar_shadow.xml deleted file mode 100644 index 178b097ef..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/drawable/toolbar_shadow.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/activity_dialogs.xml b/old_samples/sample-videochat-conference/src/main/res/layout/activity_dialogs.xml deleted file mode 100644 index d10d5a343..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/activity_dialogs.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/activity_login.xml b/old_samples/sample-videochat-conference/src/main/res/layout/activity_login.xml deleted file mode 100644 index 8c66e3092..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/activity_login.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/activity_main.xml b/old_samples/sample-videochat-conference/src/main/res/layout/activity_main.xml deleted file mode 100644 index 22eb9dede..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/activity_opponents.xml b/old_samples/sample-videochat-conference/src/main/res/layout/activity_opponents.xml deleted file mode 100644 index 77635774f..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/activity_opponents.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/activity_permissions.xml b/old_samples/sample-videochat-conference/src/main/res/layout/activity_permissions.xml deleted file mode 100644 index 23c099dc8..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/activity_permissions.xml +++ /dev/null @@ -1,8 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/activity_select_users.xml b/old_samples/sample-videochat-conference/src/main/res/layout/activity_select_users.xml deleted file mode 100644 index 12102e749..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/activity_select_users.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/activity_show_image.xml b/old_samples/sample-videochat-conference/src/main/res/layout/activity_show_image.xml deleted file mode 100644 index 0851db30e..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/activity_show_image.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/connection_popup.xml b/old_samples/sample-videochat-conference/src/main/res/layout/connection_popup.xml deleted file mode 100644 index e212d5fbc..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/connection_popup.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/fragment_conversation.xml b/old_samples/sample-videochat-conference/src/main/res/layout/fragment_conversation.xml deleted file mode 100644 index 5623033dc..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/fragment_conversation.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/item_opponents_list.xml b/old_samples/sample-videochat-conference/src/main/res/layout/item_opponents_list.xml deleted file mode 100644 index 337963549..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/item_opponents_list.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/list_item_dialog.xml b/old_samples/sample-videochat-conference/src/main/res/layout/list_item_dialog.xml deleted file mode 100644 index 5e11a645d..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/list_item_dialog.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/list_item_opponent_from_call.xml b/old_samples/sample-videochat-conference/src/main/res/layout/list_item_opponent_from_call.xml deleted file mode 100644 index 11e9372f5..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/list_item_opponent_from_call.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/list_item_user.xml b/old_samples/sample-videochat-conference/src/main/res/layout/list_item_user.xml deleted file mode 100644 index 30070f757..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/list_item_user.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/local_video_view.xml b/old_samples/sample-videochat-conference/src/main/res/layout/local_video_view.xml deleted file mode 100644 index a7678675e..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/local_video_view.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/preference_version.xml b/old_samples/sample-videochat-conference/src/main/res/layout/preference_version.xml deleted file mode 100644 index f8f846465..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/preference_version.xml +++ /dev/null @@ -1,11 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/remote_video_view.xml b/old_samples/sample-videochat-conference/src/main/res/layout/remote_video_view.xml deleted file mode 100644 index c134336e5..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/remote_video_view.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/seekbar_preference.xml b/old_samples/sample-videochat-conference/src/main/res/layout/seekbar_preference.xml deleted file mode 100644 index ba3b7d6c9..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/seekbar_preference.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/toolbar_call.xml b/old_samples/sample-videochat-conference/src/main/res/layout/toolbar_call.xml deleted file mode 100644 index 2733203c8..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/toolbar_call.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/view_action_buttons_conversation_fragment.xml b/old_samples/sample-videochat-conference/src/main/res/layout/view_action_buttons_conversation_fragment.xml deleted file mode 100644 index 559ee18da..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/view_action_buttons_conversation_fragment.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/view_for_preference.xml b/old_samples/sample-videochat-conference/src/main/res/layout/view_for_preference.xml deleted file mode 100644 index 26e0289bd..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/view_for_preference.xml +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/layout/view_outgoing_screen.xml b/old_samples/sample-videochat-conference/src/main/res/layout/view_outgoing_screen.xml deleted file mode 100644 index 72008eaf3..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/layout/view_outgoing_screen.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/menu/activity_login.xml b/old_samples/sample-videochat-conference/src/main/res/menu/activity_login.xml deleted file mode 100644 index 8528f5e32..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/menu/activity_login.xml +++ /dev/null @@ -1,10 +0,0 @@ - -

- - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/menu/activity_opponents.xml b/old_samples/sample-videochat-conference/src/main/res/menu/activity_opponents.xml deleted file mode 100644 index ac0ec3c98..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/menu/activity_opponents.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/menu/activity_select_users.xml b/old_samples/sample-videochat-conference/src/main/res/menu/activity_select_users.xml deleted file mode 100644 index 7e0d2e699..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/menu/activity_select_users.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/menu/activity_selected_dialogs.xml b/old_samples/sample-videochat-conference/src/main/res/menu/activity_selected_dialogs.xml deleted file mode 100644 index 95a62295b..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/menu/activity_selected_dialogs.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/menu/activity_selected_opponents.xml b/old_samples/sample-videochat-conference/src/main/res/menu/activity_selected_opponents.xml deleted file mode 100644 index 0da19d053..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/menu/activity_selected_opponents.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/menu/conversation_fragment.xml b/old_samples/sample-videochat-conference/src/main/res/menu/conversation_fragment.xml deleted file mode 100644 index 4db92a5bc..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/menu/conversation_fragment.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/raw/beep.wav b/old_samples/sample-videochat-conference/src/main/res/raw/beep.wav deleted file mode 100644 index 6cbc44afa..000000000 Binary files a/old_samples/sample-videochat-conference/src/main/res/raw/beep.wav and /dev/null differ diff --git a/old_samples/sample-videochat-conference/src/main/res/values/arrays.xml b/old_samples/sample-videochat-conference/src/main/res/values/arrays.xml deleted file mode 100644 index dab582a17..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/values/arrays.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Front - Back - - - - 0 - 1 - - - - Default - HD (1280 x 720) - VGA (640 x 480) - QVGA (320 x 240) - - - - -1 - 0 - 1 - 2 - - - - 0 - 15 - 20 - 30 - - - - Default - 15 fps - 20 fps - 30 fps - - - - Default - Manual - - - - VP8 - VP9 - H264 - - - - 0 - 1 - 2 - - - - ISAC - opus - - - - 0 - 0 - 100 - 100 - - - - 70 - 0 - 30 - 30 - - - - 0 - 0 - 5 - 5 - - - - 70 - 0 - 30 - 30 - - - - 4 - 20 - 22 - 27 - - - - 4 - 20 - 22 - 33 - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/values/attrs.xml b/old_samples/sample-videochat-conference/src/main/res/values/attrs.xml deleted file mode 100644 index bca6c1d03..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/values/attrs.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/values/colors.xml b/old_samples/sample-videochat-conference/src/main/res/values/colors.xml deleted file mode 100644 index f78c5a8d6..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/values/colors.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - #e0e0e0 - - #FFFFFF - #000000 - #606060 - #1FCECB - #FF0000 - #45D100 - #A9FF80 - #30000000 - #50000000 - #80FFFFFF - #50FFFFFF - #50606060 - #20606060 - #10606060 - #0088e7 - #88333333 - #6e6e6e - #1f1f1f - - #1f1f1f - - #eeeeee - #ffffff - #959595 - #2b2a2a - - #ff2744 - #FC5876 - #cc212121 - #ccffffff - #6e6e6e - @color/text_color_call_type - #1f1f1f - #1f1f1f - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/values/dimens.xml b/old_samples/sample-videochat-conference/src/main/res/values/dimens.xml deleted file mode 100644 index e8b612690..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/values/dimens.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - 16dp - 16dp - 1dp - - 4dp - 80dp - 136dp - 80dp - - 60dp - 30dp - 30dp - 8dp - - 16dp - 8dp - 3dp - - 20sp - 18sp - 16sp - - 10 - - 16dp - 16dp - 24dp - 24dp - 16dp - 62dp - 48dp - - @dimen/padding_common_twice - 8dp - 8dp - - 22sp - 16sp - 16sp - 16sp - - 64dp - 16dp - 16dp - 32dp - 64dp - 24dp - 24dp - 176dp - 112dp - 88dp - 64dp - - 78dp - 50dp - 25sp - 200dp - 50dp - - - 400dp - 500dp - - diff --git a/old_samples/sample-videochat-conference/src/main/res/values/ids.xml b/old_samples/sample-videochat-conference/src/main/res/values/ids.xml deleted file mode 100644 index f21084133..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/values/ids.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/values/strings.xml b/old_samples/sample-videochat-conference/src/main/res/values/strings.xml deleted file mode 100644 index f2b93e34c..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/values/strings.xml +++ /dev/null @@ -1,226 +0,0 @@ - - - - 0.9.1 - Conference chat sample - @string/app_name - Create session errors: - - - Disconnected… Please check your Internet connection! - Login… - Sign In… - Updating user… - Creating new user… - Logout… - Loading opponents… - Loading dialogs and users… - Updating dialog… - - - You can select up to %d opponents - Error creating new user, please try again - Sign In error. Error - Sign In error - Logout user error. Error - - Login can not be empty - Chat room name can not be empty - - Login Chat error. Please relogin. Error - Update user error. Error - Loading users error. Error - Loading dialog error. Error - - %s is not available now! - - User name - Chat room name - - %1$s must contain 3 — %2$s alphanumeric Latin characters without space, the first char must be a letter - - Multi-conference server is available only for Enterprise plans. Please refer to https://quickblox.com/developers/EnterpriseFeatures for more information and contacts. - - - Done - Settings - Screen share - Update opponents list - Logout - Video call - Audio call - Join to broadcast - Leave Dialog - Dialog deletion errors - - - Settings - Enter to chat - Logged in as %s - %s dialog selected - %s dialogs selected - - Incoming Call - Also on call: - Edit opponents list - Incoming Audio Call - Incoming Video Call - %s\n\nRinging - User 1, User 2, User 3, User 4, User 5, User 6 - - Pending - new connection - Closed - Incoming Audio Call - Incoming Video Call - Connect… - Checking… - Connected - Disconnected - Me - - Rejected - No answer - Hung up - Closed - Time Out - Failed - - Please enter username and chat room name. \nYou can join existed chat room. - User name - Chat room name - %s (you) - Creating dialog… - Join to conference… - Dialog creation errors - Join to conference errors - - Done - Refresh - Select users you want to call - Select users you want create dialog with - Select dialog you want to join - Create new dialog - Add Users to dialog - Please, choose at least one participant - - Call was stopped because connection was lost - Connection lost - - "%s is calling you" - - - Video - Call Settings - - Default - 0 - - default_camera_preference - Default Camera - Select default camera - 0 - - frame_rate - Frame Rate (0–30) - 0 - 0 - 30 - 5 - - resolution_preference - Video Format - Enter RTC local video resolution - -1 - - startbitrate_preference - Start bitrate setting - Start bitrate setting - Default - - startbitratevalue_preference - Bandwidth (0–2000) - 0 - 0 - 2000 - 100 - - disable_built_in_aec_preference - Disable built-in AEC - Disable built-in AEC - false - Built-in AEC is not available - - opensles_preference - Use OpenSL ES for audio playback - Use OpenSL ES for audio playback - false - - audioprocessing_preference - Disable audio processing - Disable audio processing pipeline - false - - - answer_time_interval - Answer Time Interval (15–90s) - 60 - 15 - 90 - 5 - - disconnect_time_interval - Disconnect Time Interval (10–90s) - 10 - 10 - 90 - 5 - - Dialing_time_interval - Dialing Time Interval (3–10s) - 5 - 3 - 10 - 1 - - videocodec_preference - Default video codec - Select default video codec - 0 - - hwcodec_preference - Video codec hardware acceleration - true - - Enabled - Disabled - - room_server_url_preference - Room server URL. - Enter a room server URL. - https://apprtc.appspot.com - - displayhud_preference - Display call statistics. - Display call statistics. - false - pref_audio_codec - Default audio codec - ISAC - Select default audio codec - QuickBlox WebRTC\nBuild version 1.0.1 - screenShot - Accepted - Connection was lost - - and %s other - and %s - Ringing - In Conference - Stop - \"Failed switch camera\" - Packet loss occurs - - 761750217637 - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/values/styles.xml b/old_samples/sample-videochat-conference/src/main/res/values/styles.xml deleted file mode 100644 index 68e1fd1c5..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/values/styles.xml +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-conference/src/main/res/xml/preferences.xml b/old_samples/sample-videochat-conference/src/main/res/xml/preferences.xml deleted file mode 100644 index 1f2080d56..000000000 --- a/old_samples/sample-videochat-conference/src/main/res/xml/preferences.xml +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/README.md b/old_samples/sample-videochat-kotlin/README.md deleted file mode 100755 index 43aee7f97..000000000 --- a/old_samples/sample-videochat-kotlin/README.md +++ /dev/null @@ -1,11 +0,0 @@ -

QuickBlox Android Video Chat WebRTC Kotlin code sample

-This is a code sample for [QuickBlox](http://quickblox.com/) platform written on Kotlin. It is a great way for developers using QuickBlox platform to learn how to integrate WebRTC video calling features into your application. - -
Before start sample:
- -1. Register new account and application at https://admin.quickblox.com then put Application credentials from Overview page + Account key from https://admin.quickblox.com/account/settings page to qb_config.json file. - - -2. Go to https://admin.quickblox.com and create from 2 to 4 users in \'Users\' module and put them to user_config.json file. - - diff --git a/old_samples/sample-videochat-kotlin/build.gradle b/old_samples/sample-videochat-kotlin/build.gradle deleted file mode 100644 index 46e09e7d0..000000000 --- a/old_samples/sample-videochat-kotlin/build.gradle +++ /dev/null @@ -1,91 +0,0 @@ -buildscript { - repositories { - google() - mavenCentral() - maven { url 'https://maven.fabric.io/public' } - } - dependencies { - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$rootProject.kotlinGradlePlugin" - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-android-extensions' -apply plugin: 'io.fabric' - -androidExtensions { - experimental = true -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - flavorDimensions rootProject.dimensionDefault - - defaultConfig { - applicationId "com.quickblox.sample.videochatkotlin" - minSdkVersion 16 - targetSdkVersion rootProject.targetSdkVersion - versionCode rootProject.versionCode - versionName rootProject.versionName - - } - - productFlavors { - speedDev { - dimension rootProject.dimensionDefault - minSdkVersion 21 - } - dev { - dimension rootProject.dimensionDefault - minSdkVersion 16 - } - } - - buildTypes { - debug { - resValue "string", "versionName", "QuickBlox WebRTC\nBuild version " + defaultConfig.getVersionName() - signingConfig signingConfigs.debug - } - - release { - resValue "string", "versionName", "QuickBlox WebRTC\nBuild version " + defaultConfig.getVersionName() - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - lintOptions { - abortOnError false - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } -} - -dependencies { - implementation "com.quickblox:quickblox-android-sdk-videochat-webrtc:$rootProject.qbSdkVersion" - - implementation "com.google.android.material:material:${rootProject.materialVersion}" - implementation "androidx.fragment:fragment:${rootProject.fragmentAndroidXVersion}" - implementation "androidx.lifecycle:lifecycle-viewmodel:${rootProject.lifecycleViewmodelAndroidXVersion}" - implementation "androidx.constraintlayout:constraintlayout:${rootProject.constraintLayoutAndroidXVersion}" - implementation "androidx.viewpager:viewpager:${rootProject.viewPagerAndroidXVersion}" - implementation "androidx.core:core-ktx:${rootProject.coreKtxVersion}" - implementation "com.github.bumptech.glide:glide:${rootProject.glideVersion}" - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/dev/debug/output.json b/old_samples/sample-videochat-kotlin/dev/debug/output.json deleted file mode 100644 index b9e20af6a..000000000 --- a/old_samples/sample-videochat-kotlin/dev/debug/output.json +++ /dev/null @@ -1 +0,0 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":381},"path":"sample-videochat-kotlin-dev-debug.apk","properties":{"packageId":"com.quickblox.sample.videochatkotlin","split":"","minSdkVersion":"16"}}] \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/dev/release/output.json b/old_samples/sample-videochat-kotlin/dev/release/output.json deleted file mode 100644 index cc6f1c3a8..000000000 --- a/old_samples/sample-videochat-kotlin/dev/release/output.json +++ /dev/null @@ -1 +0,0 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":381},"path":"sample-videochat-kotlin-dev-release.apk","properties":{"packageId":"com.quickblox.sample.videochatkotlin","split":"","minSdkVersion":"16"}}] \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/proguard-rules.pro b/old_samples/sample-videochat-kotlin/proguard-rules.pro deleted file mode 100644 index f1b424510..000000000 --- a/old_samples/sample-videochat-kotlin/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/old_samples/sample-videochat-kotlin/screenshots/users_screen.png b/old_samples/sample-videochat-kotlin/screenshots/users_screen.png deleted file mode 100755 index 0d1b018dc..000000000 Binary files a/old_samples/sample-videochat-kotlin/screenshots/users_screen.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/AndroidManifest.xml b/old_samples/sample-videochat-kotlin/src/main/AndroidManifest.xml deleted file mode 100644 index bd23afb21..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/AndroidManifest.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/assets/user_config.json b/old_samples/sample-videochat-kotlin/src/main/assets/user_config.json deleted file mode 100644 index 28162a3b6..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/assets/user_config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "test_user_id1": "test_user_id1", - "test_user_id2": "test_user_id2", - "test_user_id3": "test_user_id3", - "test_user_id4": "test_user_id4" -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/App.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/App.kt deleted file mode 100644 index 30a862936..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/App.kt +++ /dev/null @@ -1,61 +0,0 @@ -package com.quickblox.sample.videochatkotlin - -import android.app.Application -import com.crashlytics.android.Crashlytics -import com.quickblox.auth.session.QBSettings -import com.quickblox.sample.videochatkotlin.utils.SAMPLE_CONFIG_FILE_NAME -import com.quickblox.sample.videochatkotlin.utils.getAllUsersFromFile -import com.quickblox.users.model.QBUser -import io.fabric.sdk.android.Fabric - -class App : Application() { - private val applicationID = "72448" - private val authKey = "f4HYBYdeqTZ7KNb" - private val authSecret = "ZC7dK39bOjVc-Z8" - private val accountKey = "C4_z7nuaANnBYmsG_k98" - - override fun onCreate() { - super.onCreate() - checkQBConfigJson() - checkUserJson() - initCredentials() - initFabric() - } - - private fun checkQBConfigJson() { - if (applicationID.isEmpty() || authKey.isEmpty() || authSecret.isEmpty() || accountKey.isEmpty()) { - throw AssertionError(getString(R.string.error_qb_credentials_empty)) - } - } - - private fun checkUserJson() { - val users = getAllUsersFromFile(SAMPLE_CONFIG_FILE_NAME, this) - if (users.size !in 2..4 || isUsersEmpty(users)) - throw AssertionError(getString(R.string.error_users_empty)) - } - - private fun isUsersEmpty(users: ArrayList): Boolean { - users.forEach { user -> if (user.login.isBlank() || user.password.isBlank()) return true } - return false - } - - private fun initCredentials() { - QBSettings.getInstance().init(applicationContext, applicationID, authKey, authSecret) - QBSettings.getInstance().accountKey = accountKey - - // Uncomment and put your Api and Chat servers endpoints if you want to point the sample - // against your own server. - // - // Please note. If you plan to migrate from the shared instance to enterprise, - // you shouldn't set the custom endpoints - // - // QBSettings.getInstance().setEndpoints("https://your_api_endpoint.com", "your_chat_endpoint", ServiceZone.PRODUCTION); - // QBSettings.getInstance().zone = ServiceZone.PRODUCTION - } - - private fun initFabric() { - if (!BuildConfig.DEBUG) { - Fabric.with(this, Crashlytics()) - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/activities/CallActivity.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/activities/CallActivity.kt deleted file mode 100644 index 206d9f636..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/activities/CallActivity.kt +++ /dev/null @@ -1,371 +0,0 @@ -package com.quickblox.sample.videochatkotlin.activities - -import android.Manifest -import android.app.Activity -import android.content.Intent -import android.content.pm.PackageManager -import android.os.Build -import android.os.Bundle -import android.os.Handler -import android.util.Log -import android.widget.Toast -import androidx.appcompat.app.AppCompatActivity -import androidx.core.app.ActivityCompat -import androidx.core.content.ContextCompat -import androidx.core.os.postDelayed -import androidx.fragment.app.Fragment -import com.quickblox.chat.QBChatService -import com.quickblox.chat.QBWebRTCSignaling -import com.quickblox.sample.videochatkotlin.R -import com.quickblox.sample.videochatkotlin.fragments.PreviewCallFragment -import com.quickblox.sample.videochatkotlin.fragments.ScreenShareFragment -import com.quickblox.sample.videochatkotlin.fragments.VideoConversationFragment -import com.quickblox.sample.videochatkotlin.utils.* -import com.quickblox.users.model.QBUser -import com.quickblox.videochat.webrtc.* -import com.quickblox.videochat.webrtc.callbacks.QBRTCClientSessionCallbacks -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionEventsCallback -import org.webrtc.CameraVideoCapturer -import java.util.* - - -class CallActivity : AppCompatActivity(), QBRTCClientSessionCallbacks, PreviewCallFragment.CallFragmentCallbackListener, - VideoConversationFragment.CallFragmentCallbackListener, QBRTCSessionEventsCallback, ScreenShareFragment.OnSharingEvents { - - val TAG = CallActivity::class.java.simpleName - private lateinit var opponents: ArrayList - private var rtcClient: QBRTCClient? = null - private var currentSession: QBRTCSession? = null - private var audioManager: AppRTCAudioManager? = null - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - Log.d(TAG, "onCreate") - setContentView(R.layout.activity_main) - initFields() - initQBRTCClient() - checkCameraPermissionAndStart() - } - - private fun initAudioManagerIfNeed() { - if (audioManager == null) { - audioManager = AppRTCAudioManager.create(this) - - audioManager!!.defaultAudioDevice = AppRTCAudioManager.AudioDevice.SPEAKER_PHONE - Log.d(TAG, "AppRTCAudioManager.AudioDevice.SPEAKER_PHONE") - - audioManager!!.setOnWiredHeadsetStateListener { plugged, hasMicrophone -> - Log.d(TAG, "setOnWiredHeadsetStateListener plugged= $plugged") - } - } - } - - private fun startAudioManager() { - initAudioManagerIfNeed() - audioManager!!.start { selectedAudioDevice, _ -> - Toast.makeText(applicationContext, "Audio device switched to $selectedAudioDevice", Toast.LENGTH_SHORT).show() - updateAudioDevice() - } - } - - private fun initFields() { - val obj = intent.getSerializableExtra(EXTRA_QB_USERS_LIST) - if (obj is ArrayList<*>) { - opponents = obj.filterIsInstance() as ArrayList - } - } - - private fun initQBRTCClient() { - rtcClient = QBRTCClient.getInstance(this) - QBChatService.getInstance().videoChatWebRTCSignalingManager?.addSignalingManagerListener { qbSignaling, createdLocally -> - if (!createdLocally) { - rtcClient!!.addSignaling(qbSignaling as QBWebRTCSignaling) - } - } - - // Configure - // - QBRTCConfig.setMaxOpponentsCount(MAX_OPPONENTS_COUNT) - setSettingsForMultiCall() - QBRTCConfig.setDebugEnabled(true) - - // Add activity as callback to RTCClient - rtcClient!!.addSessionCallbacksListener(this) - // Start mange QBRTCSessions according to VideoCall parser's callbacks - rtcClient!!.prepareToProcessCalls() - } - - private fun setSettingsForMultiCall() { - if (opponents.size == 2) { - QBRTCMediaConfig.setVideoWidth(QBRTCMediaConfig.VideoQuality.HD_VIDEO.width) - QBRTCMediaConfig.setVideoHeight(QBRTCMediaConfig.VideoQuality.HD_VIDEO.height) - } else { - //set to minimum settings - QBRTCMediaConfig.setVideoWidth(QBRTCMediaConfig.VideoQuality.QBGA_VIDEO.width) - QBRTCMediaConfig.setVideoHeight(QBRTCMediaConfig.VideoQuality.QBGA_VIDEO.height) - QBRTCMediaConfig.setVideoHWAcceleration(false) - } - } - - override fun onAttachFragment(fragment: Fragment) { - if (fragment is VideoConversationFragment) { - fragment.initSession(currentSession) - } - } - - private fun checkCameraPermissionAndStart() { - if (!isCallPermissionsGranted()) { - requestCameraPermission() - } else { - initPreviewFragment() - } - } - - private fun isCallPermissionsGranted(): Boolean { - return ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED && - ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED - } - - private fun requestCameraPermission() { - ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO), PERMISSIONS_FOR_CALL_REQUEST) - } - - private fun initPreviewFragIfNeed() { - if (supportFragmentManager.findFragmentByTag(PreviewCallFragment::class.java.simpleName) !is PreviewCallFragment) { - initPreviewFragment() - } else { - initPreviewFragDelayed() - } - } - - private fun initPreviewFragDelayed() { - Handler().postDelayed(CAMERA_RELEASE_DELAY) { popBackStackFragment(supportFragmentManager) } - } - - private fun initPreviewFragment() { - val previewFragment = PreviewCallFragment.newInstance(opponents) - addFragment(supportFragmentManager, R.id.fragment_container, previewFragment, PreviewCallFragment::class.java.simpleName) - } - - private fun initConversationFragment(incoming: Boolean) { - val conversationFragment = VideoConversationFragment.newInstance(incoming, opponents) - addFragmentWithBackStack(supportFragmentManager, R.id.fragment_container, conversationFragment, VideoConversationFragment::class.java.simpleName) - } - - private fun updatePreviewCallButtons(show: Boolean) { - val previewFrag = supportFragmentManager.findFragmentByTag(PreviewCallFragment::class.java.simpleName) as PreviewCallFragment? - Log.d(TAG, "updatePreviewCallButtons") - if (previewFrag != null) { - Log.d(TAG, "updateCallButtons") - previewFrag.updateCallButtons(show) - } - } - - private fun updateAudioDevice() { - val videoFrag = supportFragmentManager.findFragmentByTag(VideoConversationFragment::class.java.simpleName) as VideoConversationFragment? - Log.d(TAG, "updateAudioDevice") - if (videoFrag != null) { - videoFrag.audioDeviceChanged(audioManager!!.selectedAudioDevice) - } - } - - override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { - when (requestCode) { - PERMISSIONS_FOR_CALL_REQUEST -> - if (grantResults.isNotEmpty()) { - if (!isCallPermissionsGranted()) { - Log.d(TAG, "showToastDeniedPermissions") - showToastDeniedPermissions(permissions) - startLogout() - finish() - } else { - initPreviewFragment() - } - } - } - } - - override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - Log.i(TAG, "onActivityResult requestCode=$requestCode, resultCode= $resultCode") - if (requestCode == QBRTCScreenCapturer.REQUEST_MEDIA_PROJECTION) { - if (resultCode == Activity.RESULT_OK) { - startScreenSharing(data!!) - Log.i(TAG, "Starting screen capture") - } else { - Toast.makeText(applicationContext, getString(R.string.denied_permission_message, "screen"), Toast.LENGTH_SHORT).show() - } - } - } - - private fun showToastDeniedPermissions(permissions: Array) { - Toast.makeText(applicationContext, getString(R.string.denied_permission_message, Arrays.toString(permissions)), Toast.LENGTH_LONG).show() - } - - private fun startLogout() { - QBChatService.getInstance().destroy() - } - - private fun initCurrentSession(session: QBRTCSession) { - Log.d(TAG, "Init new QBRTCSession addSessionCallbacksListener") - currentSession = session - } - - private fun releaseCurrentSession() { - Log.d(TAG, "Release current session removeSessionCallbacksListener") - if (currentSession != null) { - this.currentSession = null - } - } - - override fun onDestroy() { - super.onDestroy() - rtcClient!!.removeSessionsCallbacksListener(this@CallActivity) - rtcClient!!.destroy() - } - - override fun onBackPressed() { - val fragmentByTag = supportFragmentManager.findFragmentByTag(ScreenShareFragment::class.java.simpleName) - if (fragmentByTag is ScreenShareFragment) { - returnToCamera() - super.onBackPressed() - Log.i(TAG, "onBackPressed") - } - } - - private fun returnToCamera() { - try { - currentSession!!.mediaStreamManager.videoCapturer = QBRTCCameraVideoCapturer(this, null) - } catch (e: QBRTCCameraVideoCapturer.QBRTCCameraCapturerException) { - Log.i(TAG, "Error: device doesn't have camera") - } - } - - private fun startScreenSharing(data: Intent) { - val screenShareFragment = ScreenShareFragment.newInstance() - addFragmentWithBackStack(supportFragmentManager, R.id.fragment_container, screenShareFragment, ScreenShareFragment::class.java.simpleName) - currentSession!!.mediaStreamManager.videoCapturer = QBRTCScreenCapturer(data, null) - } - - override fun onStopSharingPreview() { - onBackPressed() - } - - private fun hangUpCurrentSession() { - Log.d(TAG, "hangUpCurrentSession") - if (currentSession != null) { - Log.d(TAG, "hangUpCurrentSession currentSession != null") - currentSession!!.hangUp(HashMap()) - } - } - - override fun onStartCall(session: QBRTCSession) { - Log.d(TAG, "onStartCall = $session") - initCurrentSession(session) - startAudioManager() - initConversationFragment(false) - } - - override fun onHangUpCall() { - hangUpCurrentSession() - } - - override fun onAcceptCall() { - Log.d(TAG, "onAcceptCall") - startAudioManager() - initConversationFragment(true) - } - - override fun onRejectCall() { - if (currentSession != null) { - currentSession!!.rejectCall(null) - } - } - - override fun onLogout() { - startLogout() - finish() - } - - //QBRTCClientSessionCallbacks - override fun onSessionStartClose(session: QBRTCSession) { - Log.d(TAG, "onSessionStartClose") - if (session == currentSession) { - updatePreviewCallButtons(false) - } - } - - override fun onReceiveNewSession(session: QBRTCSession) { - Log.d(TAG, "onReceiveNewSession") - if (currentSession == null) { - currentSession = session - updatePreviewCallButtons(true) - } else { - Log.d(TAG, "Stop new session. Device now is busy") - session.rejectCall(null) - } - } - - override fun onUserNoActions(session: QBRTCSession, userId: Int) { - } - - // QBRTCSessionEventsCallback - override fun onReceiveHangUpFromUser(session: QBRTCSession, userId: Int, userInfo: MutableMap?) { - Log.d(TAG, "onReceiveHangUpFromUser") - fun getUserNameOrLogin(userId: Int): String { - opponents.forEach { if (it.id == userId) return it.fullName ?: it.login } - return "" - } - Toast.makeText(applicationContext, "User " + getUserNameOrLogin(userId) + " " + getString(R.string.text_status_hang_up), Toast.LENGTH_SHORT).show() - } - - override fun onCallAcceptByUser(session: QBRTCSession?, p1: Int?, p2: MutableMap?) { - Log.d(TAG, "onCallAcceptByUser") - } - - override fun onSessionClosed(session: QBRTCSession) { - Log.d(TAG, "Session " + session.sessionID) - - if (session.equals(currentSession)) { - Log.d(TAG, "Stop session") - audioManager?.stop() - audioManager = null - releaseCurrentSession() - initPreviewFragIfNeed() - } - } - - override fun onCallRejectByUser(session: QBRTCSession, userId: Int, userInfo: MutableMap?) { - Log.d(TAG, "onCallRejectByUser") - } - - override fun onUserNotAnswer(session: QBRTCSession, userId: Int) { - - } - - override fun onSwitchAudio() { - Log.v(TAG, "onSwitchAudio(), SelectedAudioDevice() = " + audioManager!!.selectedAudioDevice) - if (audioManager!!.selectedAudioDevice != AppRTCAudioManager.AudioDevice.SPEAKER_PHONE) { - audioManager!!.selectAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE) - } else { - if (audioManager!!.audioDevices.contains(AppRTCAudioManager.AudioDevice.BLUETOOTH)) { - audioManager!!.selectAudioDevice(AppRTCAudioManager.AudioDevice.BLUETOOTH) - } else if (audioManager!!.audioDevices.contains(AppRTCAudioManager.AudioDevice.WIRED_HEADSET)) { - audioManager!!.selectAudioDevice(AppRTCAudioManager.AudioDevice.WIRED_HEADSET) - } else { - audioManager!!.selectAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE) - } - } - } - - override fun onStartScreenSharing() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { - return - } - QBRTCScreenCapturer.requestPermissions(this@CallActivity) - } - - override fun onSwitchCamera(cameraSwitchHandler: CameraVideoCapturer.CameraSwitchHandler) { - (currentSession!!.mediaStreamManager.videoCapturer as QBRTCCameraVideoCapturer) - .switchCamera(cameraSwitchHandler) - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/activities/LoginActivity.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/activities/LoginActivity.kt deleted file mode 100644 index 0a8f998d6..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/activities/LoginActivity.kt +++ /dev/null @@ -1,144 +0,0 @@ -package com.quickblox.sample.videochatkotlin.activities - -import android.app.ProgressDialog -import android.content.Context -import android.content.Intent -import android.os.Bundle -import android.widget.AdapterView -import android.widget.ArrayAdapter -import android.widget.ListView -import android.widget.Toast -import androidx.annotation.StringRes -import androidx.appcompat.app.AppCompatActivity -import com.quickblox.auth.session.QBSettings -import com.quickblox.chat.QBChatService -import com.quickblox.core.LogLevel -import com.quickblox.core.QBEntityCallback -import com.quickblox.core.exception.QBResponseException -import com.quickblox.sample.videochatkotlin.R -import com.quickblox.sample.videochatkotlin.utils.EXTRA_QB_USERS_LIST -import com.quickblox.sample.videochatkotlin.utils.SAMPLE_CONFIG_FILE_NAME -import com.quickblox.sample.videochatkotlin.utils.getAllUsersFromFile -import com.quickblox.users.QBUsers -import com.quickblox.users.model.QBUser -import kotlinx.android.synthetic.main.activity_login.* - - -class LoginActivity : AppCompatActivity() { - - val TAG = LoginActivity::class.java.simpleName - private lateinit var users: ArrayList - private lateinit var adapter: ArrayAdapter - var progressDialog: ProgressDialog? = null - private var opponents: ArrayList? = null - private val qbChatService: QBChatService = QBChatService.getInstance() - val isLoggedIn: Boolean - get() = QBChatService.getInstance().isLoggedIn - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_login) - supportActionBar?.setTitle(R.string.title_login_activity) - initChat() - initQBUsers() - initUserAdapter() - } - - private fun initQBUsers() { - users = getAllUsersFromFile(SAMPLE_CONFIG_FILE_NAME, this) - } - - private fun initUserAdapter() { - val userList: ArrayList = ArrayList(users.size) - users.forEachIndexed { index, _ -> userList.add(users[index].login) } - adapter = ArrayAdapter(this, R.layout.list_item_user, userList) - list_users.adapter = adapter - list_users.choiceMode = ListView.CHOICE_MODE_SINGLE - list_users.onItemClickListener = AdapterView.OnItemClickListener { _, _, position, _ -> - loginToQB(users[position]) - } - } - - private fun initChat() { - QBSettings.getInstance().logLevel = LogLevel.DEBUG - QBChatService.setDebugEnabled(true) - QBChatService.setConfigurationBuilder(QBChatService.ConfigurationBuilder().apply { socketTimeout = 0 }) - } - - private fun startCallActivity() { - val intent = Intent(this, CallActivity::class.java) - intent.putExtra(EXTRA_QB_USERS_LIST, opponents) - startActivity(intent) - } - - - private fun loginToQB(user: QBUser) { - showProgress(R.string.dlg_login) - QBUsers.signIn(user).performAsync(object : QBEntityCallback { - override fun onSuccess(qbUser: QBUser, args: Bundle) { - user.id = qbUser.id!! - loginToChat(user) - } - - override fun onError(ex: QBResponseException) { - hideProgress() - Toast.makeText(applicationContext, getString(R.string.login_chat_login_error, ex.message), Toast.LENGTH_SHORT).show() - } - }) - } - - fun loginToChat(user: QBUser) { - if (!isLoggedIn) { - qbChatService.login(user, object : QBEntityCallback { - override fun onSuccess(void: Void?, bundle: Bundle?) { - hideProgress() - loadUsers() - } - - override fun onError(ex: QBResponseException) { - hideProgress() - Toast.makeText(applicationContext, getString(R.string.login_chat_login_error, ex.message), Toast.LENGTH_SHORT).show() - } - }) - } - } - - fun loadUsers() { - showProgress(R.string.dlg_loading_opponents) - val usersLogins = ArrayList() - users.forEach { usersLogins.add(it.login) } - QBUsers.getUsersByLogins(usersLogins, null).performAsync(object : QBEntityCallback> { - override fun onSuccess(qbUsers: ArrayList, p1: Bundle?) { - hideProgress() - opponents = qbUsers - startCallActivity() - } - - override fun onError(ex: QBResponseException) { - hideProgress() - Toast.makeText(applicationContext, getString(R.string.loading_users_error, ex.message), Toast.LENGTH_SHORT).show() - } - }) - } - - private fun showProgress(@StringRes messageId: Int) { - if (progressDialog == null) { - progressDialog = ProgressDialog(this) - } - showProgressDialog(this, progressDialog!!, messageId) - } - - private fun hideProgress() { - progressDialog?.dismiss() - } - - private fun showProgressDialog(context: Context, progressDialog: ProgressDialog, @StringRes messageId: Int) { - progressDialog.isIndeterminate = true - progressDialog.setCancelable(false) - progressDialog.setCanceledOnTouchOutside(false) - - progressDialog.setMessage(context.getString(messageId)) - - progressDialog.show() - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/adapters/OpponentsCallAdapter.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/adapters/OpponentsCallAdapter.kt deleted file mode 100644 index bf04075b2..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/adapters/OpponentsCallAdapter.kt +++ /dev/null @@ -1,60 +0,0 @@ -package com.quickblox.sample.videochatkotlin.adapters - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.annotation.LayoutRes -import com.quickblox.sample.videochatkotlin.R -import com.quickblox.users.model.QBUser -import kotlinx.android.extensions.LayoutContainer -import kotlinx.android.synthetic.main.list_item_opponent_from_call.* - -class OpponentsCallAdapter(context: Context, val opponents: ArrayList, var itemWidth: Int, var itemHeight: Int) : androidx.recyclerview.widget.RecyclerView.Adapter() { - private val TAG = OpponentsCallAdapter::class.java.simpleName - private var inflater: LayoutInflater = LayoutInflater.from(context) - - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder { - val view = parent.inflate(R.layout.list_item_opponent_from_call) - val vh = ViewHolder(view) - initCellHeight(vh) - return vh - } - - private fun ViewGroup.inflate(@LayoutRes layoutRes: Int, attachToRoot: Boolean = false): View { - return inflater.inflate(layoutRes, this, attachToRoot) - } - - fun initCellHeight(holder: ViewHolder, height: Int = itemHeight) { - val params = holder.item_layout.layoutParams - params.height = height - holder.item_layout.layoutParams = params - } - - override fun getItemCount(): Int { - return opponents.size - } - - fun add(item: QBUser) { - opponents.add(item) - notifyItemRangeChanged(opponents.size - 1, opponents.size) - } - - fun removeItem(index: Int) { - opponents.removeAt(index) - notifyItemRemoved(index) - notifyItemRangeChanged(index, opponents.size) - } - - override fun onBindViewHolder(holder: ViewHolder, position: Int) { - val user = opponents[position] - val userID = user.id - holder.opponent_name.id = user.id - holder.userId = userID - holder.opponent_name.text = user.fullName ?: user.login - } - - class ViewHolder(override val containerView: View) : androidx.recyclerview.widget.RecyclerView.ViewHolder(containerView), LayoutContainer { - var userId: Int = 0 - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/BaseToolBarFragment.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/BaseToolBarFragment.kt deleted file mode 100644 index 4357d2bc0..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/BaseToolBarFragment.kt +++ /dev/null @@ -1,58 +0,0 @@ -package com.quickblox.sample.videochatkotlin.fragments - -import android.graphics.drawable.ColorDrawable -import android.os.Bundle -import android.os.Handler -import android.os.Message -import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.appcompat.app.ActionBar -import androidx.appcompat.app.AppCompatActivity -import androidx.core.content.ContextCompat -import androidx.fragment.app.Fragment -import com.quickblox.chat.QBChatService -import com.quickblox.sample.videochatkotlin.R -import java.lang.ref.WeakReference - -abstract class BaseToolBarFragment : Fragment() { - private var TAG = BaseToolBarFragment::class.java.simpleName - lateinit var mainHandler: Handler - lateinit var actionBar: ActionBar - - protected abstract val fragmentLayout: Int - - override fun onCreate(savedInstanceState: Bundle?) { - setHasOptionsMenu(true) - mainHandler = FragmentLifeCycleHandler(this) - super.onCreate(savedInstanceState) - } - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = inflater.inflate(fragmentLayout, container, false) - actionBar = (activity as AppCompatActivity).delegate.supportActionBar!! - initActionBar() - return view - } - - open fun initActionBar() { - actionBar.title = String.format(QBChatService.getInstance().user.login) - actionBar.setBackgroundDrawable(ColorDrawable(ContextCompat.getColor(context!!, R.color.black_transparent_50))) - } - - - class FragmentLifeCycleHandler(fragment: Fragment) : Handler() { - - private val fragmentRef: WeakReference = WeakReference(fragment) - - override fun dispatchMessage(msg: Message) { - val fragment = fragmentRef.get() ?: return - if (fragment.isAdded && fragment.activity != null) { - super.dispatchMessage(msg) - } else { - Log.d("BaseToolBarFragment", "Fragment under destroying") - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/PreviewCallFragment.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/PreviewCallFragment.kt deleted file mode 100644 index 08c83e16f..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/PreviewCallFragment.kt +++ /dev/null @@ -1,202 +0,0 @@ -package com.quickblox.sample.videochatkotlin.fragments - -import android.annotation.SuppressLint -import android.content.Context -import android.hardware.Camera -import android.os.Bundle -import android.util.Log -import android.view.Menu -import android.view.MenuInflater -import android.view.MenuItem -import android.view.View -import android.widget.TextView -import android.widget.Toast -import com.quickblox.chat.QBChatService -import com.quickblox.sample.videochatkotlin.R -import com.quickblox.sample.videochatkotlin.utils.EXTRA_QB_USERS_LIST -import com.quickblox.sample.videochatkotlin.utils.MAX_OPPONENTS_COUNT -import com.quickblox.sample.videochatkotlin.view.CameraPreview -import com.quickblox.users.model.QBUser -import com.quickblox.videochat.webrtc.QBRTCClient -import com.quickblox.videochat.webrtc.QBRTCSession -import com.quickblox.videochat.webrtc.QBRTCTypes -import kotlinx.android.synthetic.main.fragment_preview.* -import kotlinx.android.synthetic.main.view_action_buttons_conversation_fragment.* -import org.webrtc.ContextUtils - - -class PreviewCallFragment : BaseToolBarFragment() { - private val TAG = PreviewCallFragment::class.java.simpleName - - private lateinit var cameraPreview: CameraPreview - private lateinit var opponents: ArrayList - private lateinit var eventListener: CallFragmentCallbackListener - private lateinit var snackBar: com.google.android.material.snackbar.Snackbar - private var isIncomingCall: Boolean = false - - override val fragmentLayout: Int - get() = R.layout.fragment_preview - - // Container CallActivity must implement this interface - interface CallFragmentCallbackListener { - fun onStartCall(session: QBRTCSession) - fun onAcceptCall() - fun onRejectCall() - fun onLogout() - } - - override fun onAttach(context: Context) { - super.onAttach(context) - // This makes sure that the container activity has implemented - // the callback interface. If not, it throws an exception - try { - eventListener = context as CallFragmentCallbackListener - } catch (e: ClassCastException) { - throw ClassCastException(activity.toString() + " must implement CallFragmentCallbackListener") - } - - } - - override fun onCreate(savedInstanceState: Bundle?) { - retainInstance = true - initFields() - super.onCreate(savedInstanceState) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - isIncomingCall = false - button_start_call.setOnClickListener({ startOrAcceptCall() }) - startCallButtonVisibility(View.VISIBLE) - button_hangup_call.setOnClickListener({ rejectCall() }) - hangUpButtonVisibility(View.GONE) - initSnackBar() - } - - private fun initFields() { - arguments!!.get(EXTRA_QB_USERS_LIST).let { - if (it is ArrayList<*>) { - opponents = it.filterIsInstance() as ArrayList - val currentUser = QBChatService.getInstance().user - opponents.remove(currentUser) - } - } - Log.d(TAG, "users= $opponents") - } - - @SuppressLint("NewApi") - private fun initSnackBar() { - snackBar = com.google.android.material.snackbar.Snackbar.make(snackbar_view, R.string.text_incoming_video_call, com.google.android.material.snackbar.Snackbar.LENGTH_INDEFINITE) - val textView = snackBar.view.findViewById(com.google.android.material.R.id.snackbar_text) as TextView - textView.textAlignment = View.TEXT_ALIGNMENT_CENTER - } - - private fun startOrAcceptCall() { - if (isIncomingCall) { - isIncomingCall = false - snackBar.dismiss() - startCallButtonVisibility(View.GONE) - eventListener.onAcceptCall() - } else { - startCall() - } - } - - private fun rejectCall() { - eventListener.onRejectCall() - hangUpButtonVisibility(View.GONE) - snackBar.dismiss() - } - - private fun startCall() { - if (opponents.size > MAX_OPPONENTS_COUNT) { - Toast.makeText(activity, String.format(getString(R.string.error_max_opponents_count), - MAX_OPPONENTS_COUNT), Toast.LENGTH_LONG).show() - return - } - - Log.d(TAG, "startCall()") - val opponentsList = getIdsOpponents(opponents) - val conferenceType = QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO - - val qbrtcClient = QBRTCClient.getInstance(ContextUtils.getApplicationContext()) - - val newQbRtcSession = qbrtcClient.createNewSessionWithOpponents(opponentsList, conferenceType) - eventListener.onStartCall(newQbRtcSession) - } - - override fun onResume() { - super.onResume() - startCameraPreview() - } - - private fun startCameraPreview() { - cameraPreview = CameraPreview(activity!!, Camera.CameraInfo.CAMERA_FACING_FRONT) - camera_preview.addView(cameraPreview) - } - - private fun stopCameraPreview() { - cameraPreview.stop() - } - - override fun onPause() { - super.onPause() - stopCameraPreview() - camera_preview.removeAllViews() - } - - fun updateCallButtons(show: Boolean) { - Log.d(TAG, "updateCallButtons show= $show") - if (show) { - isIncomingCall = true - hangUpButtonVisibility(View.VISIBLE) - snackBar.show() - } else { - isIncomingCall = false - hangUpButtonVisibility(View.GONE) - snackBar.dismiss() - } - } - - private fun startCallButtonVisibility(visibility: Int) { - button_start_call.visibility = visibility - } - - private fun hangUpButtonVisibility(visibility: Int) { - button_hangup_call?.visibility = visibility - } - - private fun getIdsOpponents(selectedUsers: Collection): ArrayList { - val opponentsIds = ArrayList() - if (!selectedUsers.isEmpty()) { - for (qbUser in selectedUsers) { - opponentsIds.add(qbUser.id) - } - } - return opponentsIds - } - - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - inflater.inflate(R.menu.activity_call, menu) - super.onCreateOptionsMenu(menu, inflater) - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - return when (item.itemId) { - R.id.menu_logout_user_done -> { - eventListener.onLogout() - true - } - else -> super.onOptionsItemSelected(item) - } - } - - companion object { - - fun newInstance(opponents: ArrayList) = - PreviewCallFragment().apply { - arguments = Bundle().apply { - putSerializable(EXTRA_QB_USERS_LIST, opponents) - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/PreviewSharingFragment.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/PreviewSharingFragment.kt deleted file mode 100644 index 80409e0ca..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/PreviewSharingFragment.kt +++ /dev/null @@ -1,44 +0,0 @@ -package com.quickblox.sample.videochatkotlin.fragments - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.ImageView -import androidx.fragment.app.Fragment -import com.bumptech.glide.Glide -import com.bumptech.glide.load.engine.DiskCacheStrategy -import com.quickblox.sample.videochatkotlin.R -import kotlinx.android.synthetic.main.fragment_item_screen_share.* - -class PreviewSharingFragment : Fragment() { - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.fragment_item_screen_share, container, false) - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - image_preview.loadUrl(arguments!!.getInt(PREVIEW_IMAGE)) - } - - private fun ImageView.loadUrl(resourceId: Int) { - Glide.with(this@PreviewSharingFragment) - .load(resourceId) - .diskCacheStrategy(DiskCacheStrategy.ALL) - .override((activity!!.resources.getDimension(R.dimen.pager_image_width)).toInt(), - (activity!!.resources.getDimension(R.dimen.pager_image_height)).toInt()) - .into(this) - } - - companion object { - - const val PREVIEW_IMAGE = "preview_image" - - fun newInstance(imageResourceId: Int) = - PreviewSharingFragment().apply { - arguments = Bundle().apply { - putInt(PREVIEW_IMAGE, imageResourceId) - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/ScreenShareFragment.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/ScreenShareFragment.kt deleted file mode 100644 index 529e0873e..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/ScreenShareFragment.kt +++ /dev/null @@ -1,82 +0,0 @@ -package com.quickblox.sample.videochatkotlin.fragments - -import android.content.Context -import android.graphics.drawable.ColorDrawable -import android.os.Bundle -import android.util.Log -import android.view.Menu -import android.view.MenuInflater -import android.view.MenuItem -import android.view.View -import androidx.core.content.ContextCompat -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentPagerAdapter -import com.quickblox.sample.videochatkotlin.R -import kotlinx.android.synthetic.main.fragment_pager.* - -class ScreenShareFragment : BaseToolBarFragment() { - val TAG = ScreenShareFragment::class.java.simpleName - private var onSharingEvents: OnSharingEvents? = null - - override val fragmentLayout: Int - get() = R.layout.fragment_pager - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - val adapter = MyAdapter(childFragmentManager) - pager.adapter = adapter - } - - override fun initActionBar() { - actionBar.setBackgroundDrawable(ColorDrawable(ContextCompat.getColor(context!!, R.color.white))) - } - - override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) { - inflater!!.inflate(R.menu.screen_share_fragment, menu) - super.onCreateOptionsMenu(menu, inflater) - } - - override fun onOptionsItemSelected(item: MenuItem?): Boolean { - return when (item!!.itemId) { - R.id.stop_screen_share -> { - Log.d(TAG, "stop_screen_share") - if (onSharingEvents != null) { - onSharingEvents!!.onStopSharingPreview() - } - true - } - else -> super.onOptionsItemSelected(item) - } - } - - override fun onAttach(context: Context) { - super.onAttach(context) - onSharingEvents = context as OnSharingEvents - } - - override fun onDetach() { - super.onDetach() - onSharingEvents = null - } - - interface OnSharingEvents { - fun onStopSharingPreview() - } - - companion object { - fun newInstance() = ScreenShareFragment() - } - - class MyAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { - - private val images = intArrayOf(R.drawable.pres_img, R.drawable.splash_screen, R.drawable.users_screen) - - override fun getCount(): Int { - return images.size - } - - override fun getItem(position: Int): Fragment { - return PreviewSharingFragment.newInstance(images[position]) - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/VideoConversationFragment.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/VideoConversationFragment.kt deleted file mode 100644 index 26ade75a4..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/fragments/VideoConversationFragment.kt +++ /dev/null @@ -1,520 +0,0 @@ -package com.quickblox.sample.videochatkotlin.fragments - -import android.content.Context -import android.graphics.Rect -import android.os.Bundle -import android.os.Handler -import android.util.Log -import android.util.SparseArray -import android.view.* -import android.widget.Toast -import androidx.annotation.DimenRes -import androidx.core.util.forEach -import androidx.core.util.isEmpty -import androidx.core.util.putAll -import androidx.recyclerview.widget.RecyclerView -import com.quickblox.chat.QBChatService -import com.quickblox.sample.videochatkotlin.R -import com.quickblox.sample.videochatkotlin.adapters.OpponentsCallAdapter -import com.quickblox.sample.videochatkotlin.utils.EXTRA_IS_INCOMING_CALL -import com.quickblox.sample.videochatkotlin.utils.EXTRA_QB_USERS_LIST -import com.quickblox.users.model.QBUser -import com.quickblox.videochat.webrtc.AppRTCAudioManager -import com.quickblox.videochat.webrtc.BaseSession -import com.quickblox.videochat.webrtc.QBRTCSession -import com.quickblox.videochat.webrtc.QBRTCTypes -import com.quickblox.videochat.webrtc.callbacks.QBRTCClientVideoTracksCallbacks -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback -import com.quickblox.videochat.webrtc.view.QBRTCSurfaceView -import com.quickblox.videochat.webrtc.view.QBRTCVideoTrack -import kotlinx.android.synthetic.main.fragment_conversation_call.* -import kotlinx.android.synthetic.main.list_item_opponent_from_call.* -import kotlinx.android.synthetic.main.view_action_buttons_conversation_fragment.* -import org.webrtc.CameraVideoCapturer -import org.webrtc.RendererCommon -import org.webrtc.SurfaceViewRenderer -import java.util.* - - -class VideoConversationFragment : BaseToolBarFragment(), QBRTCSessionStateCallback, QBRTCClientVideoTracksCallbacks { - - private val TAG = VideoConversationFragment::class.java.simpleName - private val TRACK_INITIALIZE_DELAY = 500L - private val spanCount = 2 - - private var isIncomingCall: Boolean = false - lateinit var layoutManager: androidx.recyclerview.widget.GridLayoutManager - - private var cameraState = CameraState.DISABLED_FROM_USER - - private var isCurrentCameraFront: Boolean = true - private var currentSession: QBRTCSession? = null - private lateinit var eventListener: CallFragmentCallbackListener - lateinit var opponentsAdapter: OpponentsCallAdapter - private lateinit var opponents: ArrayList - private lateinit var opponentViewHolders: SparseArray - private val videoTracks: SparseArray = SparseArray() - private var currentUserId: Int = 0 - private var isRemoteShown = false - - override val fragmentLayout: Int - get() = R.layout.fragment_conversation_call - - private enum class CameraState { - NONE, - DISABLED_FROM_USER, - ENABLED_FROM_USER - } - - interface CallFragmentCallbackListener { - fun onHangUpCall() - fun onSwitchAudio() - fun onStartScreenSharing() - fun onSwitchCamera(cameraSwitchHandler: CameraVideoCapturer.CameraSwitchHandler) - } - - override fun onAttach(context: Context) { - super.onAttach(context) - // This makes sure that the container activity has implemented - // the callback interface. If not, it throws an exception - try { - eventListener = context as CallFragmentCallbackListener - } catch (e: ClassCastException) { - throw ClassCastException(activity.toString() + " must implement CallFragmentCallbackListener") - } - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - Log.d(TAG, "onCreate") - mainHandler = Handler() - } - - override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - val view = super.onCreateView(inflater, container, savedInstanceState) - initArguments() - restoreSession() - return view - } - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - initFields() - } - - override fun onStart() { - super.onStart() - if (currentSession!!.state != BaseSession.QBRTCSessionState.QB_RTC_SESSION_CONNECTED) { - if (isIncomingCall) { - currentSession!!.acceptCall(null) - } else { - currentSession!!.startCall(null) - } - } - initVideoTrackSListener() - initSessionListeners() - } - - private fun restoreSession() { - Log.d(TAG, "restoreSession ") - if (currentSession?.state != BaseSession.QBRTCSessionState.QB_RTC_SESSION_CONNECTED) { - return - } - if (!videoTracks.isEmpty()) { - val videoTracks = SparseArray() - videoTracks.putAll(this.videoTracks) - videoTracks.forEach { userId, videoTrack -> - if (currentSession!!.getPeerConnection(userId) != null && currentSession!!.getPeerConnection(userId).state != QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CLOSED) { - mainHandler.post { - onConnectedToUser(currentSession!!, userId) - onRemoteVideoTrackReceive(currentSession!!, videoTrack, userId) - } - } else { - this.videoTracks.remove(userId) - } - } - } - } - - private fun initArguments() { - arguments!!.let { - isIncomingCall = it.getBoolean(EXTRA_IS_INCOMING_CALL) - val obj = it.get(EXTRA_QB_USERS_LIST) - if (obj is ArrayList<*>) { - opponents = obj.filterIsInstance() as ArrayList - } - } - currentUserId = QBChatService.getInstance().user.id - isCurrentCameraFront = true - } - - private fun initFields() { - button_hangup_call.setOnClickListener({ hangUp() }) - toggle_switch_camera.setOnCheckedChangeListener { _, _ -> - switchCamera() - } - toggle_switch_camera.visibility = View.VISIBLE - toggle_camera.setOnCheckedChangeListener { _, isChecked -> - if (cameraState != CameraState.DISABLED_FROM_USER) { - toggleCamera(isChecked) - } - } - toggle_camera.visibility = View.VISIBLE - toggle_speaker.setOnClickListener({ eventListener.onSwitchAudio() }) - toggle_speaker.visibility = View.VISIBLE - - toggle_mute_mic.setOnCheckedChangeListener { _, isChecked -> toggleMic(isChecked) } - toggle_mute_mic.visibility = View.VISIBLE - - opponentViewHolders = SparseArray(opponents.size) - initRecyclerView() - } - - private fun initRecyclerView() { - recycler_view_opponents.setHasFixedSize(false) - recycler_view_opponents.addItemDecoration(DividerItemDecoration(context!!, R.dimen.grid_item_divider)) - layoutManager = androidx.recyclerview.widget.GridLayoutManager(activity, spanCount) - layoutManager.reverseLayout = false - val spanSizeLookup = SpanSizeLookupImpl() - spanSizeLookup.isSpanIndexCacheEnabled = false - layoutManager.spanSizeLookup = spanSizeLookup - recycler_view_opponents.layoutManager = layoutManager - - recycler_view_opponents.itemAnimator = null - initAdapter() - recycler_view_opponents.viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener { - override fun onGlobalLayout() { - var height = recycler_view_opponents.height - if (height != 0) { - if (isRemoteShown) { - height /= 2 - } - updateAllCellHeight(height) - recycler_view_opponents.viewTreeObserver.removeOnGlobalLayoutListener(this) - } - } - }) - } - - private fun initAdapter() { - val cellSizeWidth = 0 - val cellSizeHeight = screenHeight() - - val qbUsers = ArrayList() - opponentsAdapter = OpponentsCallAdapter(context!!, qbUsers, cellSizeWidth, cellSizeHeight) - recycler_view_opponents.adapter = opponentsAdapter - } - - private fun hangUp() { - eventListener.onHangUpCall() - } - - override fun onLocalVideoTrackReceive(session: QBRTCSession, videoTrack: QBRTCVideoTrack) { - Log.d(TAG, "onLocalVideoTrackReceive") - cameraState = CameraState.NONE - setUserToAdapter(currentUserId) - mainHandler.postDelayed(Runnable { setViewMultiCall(currentUserId, videoTrack, false) }, TRACK_INITIALIZE_DELAY) - } - - override fun onRemoteVideoTrackReceive(session: QBRTCSession, videoTrack: QBRTCVideoTrack, userId: Int) { - Log.d(TAG, "onRemoteVideoTrackReceive") - updateCellSizeIfNeed() - setUserToAdapter(userId) - mainHandler.postDelayed(Runnable { setViewMultiCall(userId, videoTrack, true) }, TRACK_INITIALIZE_DELAY) - } - - private fun updateCellSizeIfNeed(height: Int = recycler_view_opponents.height / 2) { - if (!isRemoteShown) { - isRemoteShown = true - - initCurrentUserCellHeight(height) - opponentsAdapter.itemHeight = height - } - } - - private fun updateAllCellHeight(height: Int) { - for (user in opponentsAdapter.opponents) { - val holder = getViewHolderForOpponent(user.id) - holder?.let { opponentsAdapter.initCellHeight(it, height) } - } - opponentsAdapter.itemHeight = height - } - - private fun initCurrentUserCellHeight(height: Int) { - val holder = recycler_view_opponents.findViewHolderForAdapterPosition(0) - if (holder is OpponentsCallAdapter.ViewHolder) { - opponentsAdapter.initCellHeight(holder, height) - } - } - - private fun setUserToAdapter(userID: Int) { - val qbUser = getUserById(userID) - opponentsAdapter.add(qbUser!!) - recycler_view_opponents.requestLayout() - } - - private fun getUserById(userID: Int): QBUser? { - for (qbUser in opponents) { - if (qbUser.id == userID) { - return qbUser - } - } - return null - } - - private fun setViewMultiCall(userId: Int, videoTrack: QBRTCVideoTrack, remoteRenderer: Boolean) { - Log.d(TAG, "setViewMultiCall userId= $userId") - - val itemHolder = getViewHolderForOpponent(userId) - if (itemHolder != null) { - val videoView = itemHolder.opponent_view - Log.d(TAG, "setViewMultiCall fillVideoView") - Log.d(TAG, "setViewMultiCall videoView height= " + videoView.height) - fillVideoView(userId, videoView, videoTrack, remoteRenderer) - } - } - - private fun getViewHolderForOpponent(userID: Int): OpponentsCallAdapter.ViewHolder? { - var holder: OpponentsCallAdapter.ViewHolder? = opponentViewHolders.get(userID) - if (holder == null) { - Log.d(TAG, "holder not found in cache") - holder = findHolder(userID) - if (holder != null) { - opponentViewHolders.append(userID, holder) - } - } - return holder - } - - private fun findHolder(userID: Int): OpponentsCallAdapter.ViewHolder? { - Log.d(TAG, "findHolder for userID $userID") - val childCount = recycler_view_opponents.childCount - Log.d(TAG, "childCount for $childCount") - for (i in 0 until childCount) { - Log.d(TAG, "findHolder childCount $childCount , i= $i") - val childView = recycler_view_opponents[i] - Log.d(TAG, "childView= $childView") - val childViewHolder = recycler_view_opponents.getChildViewHolder(childView) as OpponentsCallAdapter.ViewHolder - Log.d(TAG, "childViewHolder= $childViewHolder") - if (userID == childViewHolder.userId) { - return childViewHolder - } - } - return null - } - - operator fun ViewGroup.get(pos: Int): View = getChildAt(pos) - - private fun fillVideoView(userId: Int, videoView: QBRTCSurfaceView, videoTrack: QBRTCVideoTrack, - remoteRenderer: Boolean) { - videoTrack.removeRenderer(videoTrack.renderer) - videoTrack.addRenderer(videoView) - videoTracks.put(userId, videoTrack) - if (!remoteRenderer) { - updateVideoView(videoView, isCurrentCameraFront) - } - Log.d(TAG, (if (remoteRenderer) "remote" else "local") + " Track is rendering") - } - - private fun updateVideoView(surfaceViewRenderer: SurfaceViewRenderer, mirror: Boolean) { - updateVideoView(surfaceViewRenderer, mirror, RendererCommon.ScalingType.SCALE_ASPECT_FILL) - } - - protected fun updateVideoView(surfaceViewRenderer: SurfaceViewRenderer, mirror: Boolean, scalingType: RendererCommon.ScalingType) { - Log.i(TAG, "updateVideoView mirror:$mirror, scalingType = $scalingType") - surfaceViewRenderer.setScalingType(scalingType) - surfaceViewRenderer.setMirror(mirror) - surfaceViewRenderer.requestLayout() - } - - private fun initSessionListeners() { - currentSession!!.addSessionCallbacksListener(this) - } - - private fun removeSessionListeners() { - currentSession!!.removeSessionCallbacksListener(this) - } - - private fun initVideoTrackSListener() { - currentSession!!.addVideoTrackCallbacksListener(this) - } - - private fun removeVideoTrackSListener() { - currentSession!!.removeVideoTrackCallbacksListener(this) - } - - protected fun releaseOpponentsViews() { - opponentViewHolders.forEach { _, itemView -> - itemView.opponent_view.release() - } - } - - private fun releaseViewHolders() { - opponentViewHolders.clear() - } - - fun initSession(session: QBRTCSession?) { - currentSession = session - } - - private fun setStatusForOpponent(userId: Int, status: String) { - val holder = getViewHolderForOpponent(userId) - holder?.connection_status?.text = status - } - - private fun updateNameForOpponent(userId: Int, userName: String) { - val holder = getViewHolderForOpponent(userId) - holder?.opponent_name?.text = userName - } - - private fun screenHeight(): Int { - val displayMetrics = resources.displayMetrics - - val screenHeightPx = displayMetrics.heightPixels - Log.d(TAG, "screenWidthPx $screenHeightPx") - return screenHeightPx - } - - private fun screenWidth(): Int { - val displayMetrics = resources.displayMetrics - - val screenWidthPx = displayMetrics.widthPixels - Log.d(TAG, "screenWidthPx $screenWidthPx") - return screenWidthPx - } - - override fun onDestroyView() { - super.onDestroyView() - Log.d(TAG, "onDestroyView") - removeSessionListeners() - removeVideoTrackSListener() - releaseOpponentsViews() - releaseViewHolders() - } - - - //////////////////////////// QBRTCSessionStateCallbacks /////////////////// - override fun onDisconnectedFromUser(session: QBRTCSession, userId: Int) { - setStatusForOpponent(userId, getString(R.string.text_status_disconnected)) - } - - override fun onConnectedToUser(session: QBRTCSession, userId: Int) { - Log.d(TAG, "onConnectedToUser userId= $userId") - setStatusForOpponent(userId, getString(R.string.text_status_connected)) - } - - override fun onConnectionClosedForUser(session: QBRTCSession, userId: Int) { - Log.d(TAG, "onConnectionClosedForUser cleanUpAdapter userId= " + userId) - setStatusForOpponent(userId, getString(R.string.text_status_closed)) - videoTracks.remove(userId) - cleanAdapter(userId) - } - - override fun onStateChanged(session: QBRTCSession, state: BaseSession.QBRTCSessionState) { - } - - private fun cleanAdapter(userId: Int) { - val itemHolder = getViewHolderForOpponent(userId) - if (itemHolder != null) { - Log.d(TAG, "onConnectionClosedForUser opponentsAdapter.removeItem") - opponentsAdapter.removeItem(itemHolder.adapterPosition) - opponentViewHolders.remove(userId) - } - } - - override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - inflater.inflate(R.menu.conversation_fragment, menu) - super.onCreateOptionsMenu(menu, inflater) - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - return when (item.itemId) { - R.id.screen_share -> { - startScreenSharing() - true - } - else -> super.onOptionsItemSelected(item) - } - } - - private fun startScreenSharing() { - eventListener.onStartScreenSharing() - } - - private fun switchCamera() { - if (cameraState == CameraState.DISABLED_FROM_USER) { - return - } - toggle_camera.isEnabled = false - eventListener.onSwitchCamera(object : CameraVideoCapturer.CameraSwitchHandler { - override fun onCameraSwitchDone(b: Boolean) { - Log.d(TAG, "camera switched, bool = $b") - isCurrentCameraFront = b - toggleCameraInternal() - } - - override fun onCameraSwitchError(s: String) { - Log.d(TAG, "camera switch error $s") - Toast.makeText(activity, getString(R.string.loading_users_error, s), Toast.LENGTH_SHORT).show() - toggle_camera.isEnabled = true - } - }) - } - - private fun toggleMic(isAudioEnabled: Boolean) { - currentSession!!.mediaStreamManager.localAudioTrack.setEnabled(isAudioEnabled) - } - - private fun toggleCameraInternal() { - Log.d(TAG, "Camera was switched!") - val localView = getViewHolderForOpponent(currentUserId)!!.opponent_view - updateVideoView(localView, isCurrentCameraFront) - toggleCamera(true) - } - - private fun toggleCamera(isNeedEnableCam: Boolean) { - currentSession?.mediaStreamManager?.localVideoTrack?.setEnabled(isNeedEnableCam) - if (!toggle_camera.isEnabled) { - toggle_camera.isEnabled = true - } - } - - fun audioDeviceChanged(newAudioDevice: AppRTCAudioManager.AudioDevice) { - toggle_speaker.isChecked = newAudioDevice != AppRTCAudioManager.AudioDevice.SPEAKER_PHONE - } - - companion object { - - fun newInstance(incoming: Boolean, opponents: ArrayList) = - VideoConversationFragment().apply { - arguments = Bundle().apply { - putBoolean(EXTRA_IS_INCOMING_CALL, incoming) - putSerializable(EXTRA_QB_USERS_LIST, opponents) - } - } - } - - private inner class SpanSizeLookupImpl : androidx.recyclerview.widget.GridLayoutManager.SpanSizeLookup() { - - override fun getSpanSize(position: Int): Int { - val itemCount = opponentsAdapter.itemCount - if (itemCount == 4) { - return 1 - } - if (itemCount == 3) { - if (position % 3 > 0) { - return 1 - } - } - return 2 - } - } - - private inner class DividerItemDecoration(context: Context, @DimenRes dimensionDivider: Int) : RecyclerView.ItemDecoration() { - - private val space: Int = context.resources.getDimensionPixelSize(dimensionDivider) - override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { - super.getItemOffsets(outRect, view, parent, state) - outRect.set(space, 0, space, space) - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/Consts.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/Consts.kt deleted file mode 100644 index 3ad5fb2a9..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/Consts.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.quickblox.sample.videochatkotlin.utils - - -const val SAMPLE_CONFIG_FILE_NAME = "user_config.json" -const val EXTRA_QB_USERS_LIST = "qb_users" - -const val EXTRA_IS_INCOMING_CALL = "conversation_reason" - -const val MAX_OPPONENTS_COUNT = 4 -const val CAMERA_RELEASE_DELAY = 1000L - -const val PERMISSIONS_FOR_CALL_REQUEST = 3 \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/FragmentExecutor.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/FragmentExecutor.kt deleted file mode 100644 index ee010cd7b..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/FragmentExecutor.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.quickblox.sample.videochatkotlin.utils - -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager - -fun addFragment(fragmentManager: FragmentManager, containerId: Int, fragment: Fragment, tag: String) { - fragmentManager.beginTransaction().replace(containerId, fragment, tag).commitAllowingStateLoss() -} - -fun addFragmentAtTop(fragmentManager: FragmentManager, containerId: Int, fragment: Fragment, tag: String) { - fragmentManager.beginTransaction().add(containerId, fragment, tag).commitAllowingStateLoss() -} - -fun addFragmentWithBackStack(fragmentManager: FragmentManager, containerId: Int, fragment: Fragment, tag: String) { - fragmentManager.beginTransaction().replace(containerId, fragment, tag).addToBackStack(null).commitAllowingStateLoss() -} - -fun removeFragment(fragmentManager: FragmentManager, fragment: Fragment) { - fragmentManager.beginTransaction().remove(fragment).commitAllowingStateLoss() -} - -fun popBackStackFragment(fragmentManager: FragmentManager) { - fragmentManager.popBackStack() -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/UserConfig.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/UserConfig.kt deleted file mode 100644 index 982898b24..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/utils/UserConfig.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.quickblox.sample.videochatkotlin.utils - -import android.content.Context -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.quickblox.users.model.QBUser -import java.io.BufferedReader - - -fun getAllUsersFromFile(filename: String, context: Context): ArrayList { - val jsonInputStream = context.assets.open(filename) - val jsonUsers = jsonInputStream.bufferedReader().use(BufferedReader::readText) - jsonInputStream.close() - - val type = object : TypeToken>() {}.type - val userMap: Map = Gson().fromJson(jsonUsers, type) - - val qbUsers = ArrayList() - userMap.forEach { (login, password) -> qbUsers.add(QBUser(login, password)) } - return qbUsers -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/view/CameraPreview.kt b/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/view/CameraPreview.kt deleted file mode 100644 index 675b55316..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/java/com/quickblox/sample/videochatkotlin/view/CameraPreview.kt +++ /dev/null @@ -1,173 +0,0 @@ -package com.quickblox.sample.videochatkotlin.view - -import android.app.Activity -import android.hardware.Camera -import android.util.Log -import android.view.Surface -import android.view.SurfaceHolder -import android.view.SurfaceView -import android.view.View -import java.io.IOException - -/** - * Camera preview that displays a [Camera]. - * - * Handles basic lifecycle methods to display and stop the preview. - * - * - * Implementation is based directly on the documentation at - * http://developer.android.com/guide/topics/media/camera.html - */ -class CameraPreview(val activity: Activity, val cameraId: Int) : SurfaceView(activity), SurfaceHolder.Callback { - private val mHolder: SurfaceHolder - private var mCamera: Camera? = null - private var mSupportedPreviewSizes: List? = null - private var mPreviewSize: Camera.Size? = null - - init { - // Install a SurfaceHolder.Callback so we get notified when the - // underlying surface is created and destroyed. - mCamera = Camera.open(cameraId) - mHolder = holder - mHolder.addCallback(this) - mSupportedPreviewSizes = mCamera!!.parameters.supportedPreviewSizes - } - - override fun surfaceCreated(holder: SurfaceHolder) { - // The Surface has been created, now tell the camera where to draw the preview. - try { - mCamera!!.setPreviewDisplay(holder) - mCamera!!.startPreview() - Log.d(TAG, "Camera preview started.") - } catch (e: IOException) { - Log.d(TAG, "Error setting camera preview: " + e.message) - } - - } - - private fun getOptimalPreviewSize(sizes: List?, w: Int, h: Int): Camera.Size? { - val ASPECT_TOLERANCE = 0.1 - val targetRatio = h.toDouble() / w - - if (sizes == null) return null - - var optimalSize: Camera.Size? = null - var minDiff = java.lang.Double.MAX_VALUE - - val targetHeight = h - - for (size in sizes) { - val ratio = size.width.toDouble() / size.height - if (Math.abs(ratio - targetRatio) > ASPECT_TOLERANCE) continue - if (Math.abs(size.height - targetHeight) < minDiff) { - optimalSize = size - minDiff = Math.abs(size.height - targetHeight).toDouble() - } - } - - if (optimalSize == null) { - minDiff = java.lang.Double.MAX_VALUE - for (size in sizes) { - if (Math.abs(size.height - targetHeight) < minDiff) { - optimalSize = size - minDiff = Math.abs(size.height - targetHeight).toDouble() - } - } - } - return optimalSize - } - - override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - val width = View.resolveSize(suggestedMinimumWidth, widthMeasureSpec) - val height = View.resolveSize(suggestedMinimumHeight, heightMeasureSpec) - setMeasuredDimension(width, height) - - if (mSupportedPreviewSizes != null) { - mPreviewSize = getOptimalPreviewSize(mSupportedPreviewSizes, width, height) - } - } - - override fun surfaceDestroyed(holder: SurfaceHolder) { - // empty. Take care of releasing the Camera preview in your activity. - stop() - } - - fun stop() { - if (null == mCamera) { - return - } - mCamera!!.stopPreview() - mCamera!!.release() - mCamera = null - } - - override fun surfaceChanged(holder: SurfaceHolder, format: Int, w: Int, h: Int) { - // If your preview can change or rotate, take care of those events here. - // Make sure to stop the preview before resizing or reformatting it. - - if (mHolder.surface == null) { - // preview surface does not exist - Log.d(TAG, "Preview surface does not exist") - return - } - - // stop preview before making changes - try { - mCamera!!.stopPreview() - Log.d(TAG, "Preview stopped.") - } catch (e: Exception) { - // ignore: tried to stop a non-existent preview - Log.d(TAG, "Error starting camera preview: " + e.message) - } - val displayRotation = activity.windowManager.defaultDisplay - .rotation - val orientation = calculatePreviewOrientation(cameraId, displayRotation) - val parameters = mCamera!!.parameters - parameters.setPreviewSize(mPreviewSize!!.width, mPreviewSize!!.height) - mCamera!!.parameters = parameters - mCamera!!.setDisplayOrientation(orientation) - - try { - mCamera!!.setPreviewDisplay(mHolder) - mCamera!!.startPreview() - Log.d(TAG, "Camera preview started.") - } catch (e: Exception) { - Log.d(TAG, "Error starting camera preview: " + e.message) - } - - } - - companion object { - - private const val TAG = "CameraPreview" - - /** - * Calculate the correct orientation for a [Camera] preview that is displayed on screen. - * - * Implementation is based on the sample code provided in - * [Camera.setDisplayOrientation]. - */ - fun calculatePreviewOrientation(cameraId: Int, rotation: Int): Int { - val cameraInfo = Camera.CameraInfo() - Camera.getCameraInfo(cameraId, cameraInfo) - var degrees = 0 - - when (rotation) { - Surface.ROTATION_0 -> degrees = 0 - Surface.ROTATION_90 -> degrees = 90 - Surface.ROTATION_180 -> degrees = 180 - Surface.ROTATION_270 -> degrees = 270 - } - - var result: Int - if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) { - result = (cameraInfo.orientation + degrees) % 360 - result = (360 - result) % 360 // compensate the mirror - } else { // back-facing - result = (cameraInfo.orientation - degrees + 360) % 360 - } - - return result - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/baseline_screen_share_white_24.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/baseline_screen_share_white_24.png deleted file mode 100755 index e4369cf33..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/baseline_screen_share_white_24.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/baseline_screen_share_white_36.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/baseline_screen_share_white_36.png deleted file mode 100755 index 68a7e701c..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/baseline_screen_share_white_36.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_accept_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_accept_call.png deleted file mode 100644 index 29562e518..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_arrow_back.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_arrow_back.png deleted file mode 100644 index 8dc2eb6e5..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_arrow_back_w.png deleted file mode 100644 index 4cd9faa04..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_call.png deleted file mode 100644 index 871a1ee75..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_camera_front.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_camera_front.png deleted file mode 100644 index a67103382..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_camera_rear.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_camera_rear.png deleted file mode 100644 index 18b501c5b..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone.png deleted file mode 100644 index c9e8d04e2..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_off.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_off.png deleted file mode 100644 index 576d3bfa3..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index 8d9cdd7fd..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png deleted file mode 100644 index 3bda65d32..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_phone_hangup.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_phone_hangup.png deleted file mode 100644 index b7936fc5b..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_stop_screenshare.png deleted file mode 100644 index 97a78b8cd..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 02888fabe..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_white.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_white.png deleted file mode 100644 index 8224786d1..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_white_24dp.png deleted file mode 100644 index 192343c67..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_videocam.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_videocam.png deleted file mode 100644 index cd93b32e0..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_videocam_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_videocam_w.png deleted file mode 100644 index 4daccdc1b..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 05e9dbeed..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index f4908010e..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/pres_img.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/pres_img.png deleted file mode 100644 index 83b44d291..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-hdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/baseline_screen_share_white_24.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/baseline_screen_share_white_24.png deleted file mode 100755 index 2129a4026..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/baseline_screen_share_white_24.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/baseline_screen_share_white_36.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/baseline_screen_share_white_36.png deleted file mode 100755 index e4369cf33..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/baseline_screen_share_white_36.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_accept_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_accept_call.png deleted file mode 100644 index e7a8b21ba..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_arrow_back.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_arrow_back.png deleted file mode 100644 index bb6ad14bd..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_arrow_back_w.png deleted file mode 100644 index 9882fa280..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_call.png deleted file mode 100644 index 80ad50b59..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_camera_front.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_camera_front.png deleted file mode 100644 index 4b0426b24..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_camera_rear.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_camera_rear.png deleted file mode 100644 index 19ff948ac..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone.png deleted file mode 100644 index 84ab52624..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_off.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_off.png deleted file mode 100644 index caf7fca45..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index d3d468e2e..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png deleted file mode 100644 index aa495bae4..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_phone_hangup.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_phone_hangup.png deleted file mode 100644 index 16bc978b3..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_stop_screenshare.png deleted file mode 100644 index a10098fcf..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 108ffa93b..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_white.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_white.png deleted file mode 100644 index af92443ae..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_white_24dp.png deleted file mode 100644 index db99aa34e..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_videocam.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_videocam.png deleted file mode 100644 index 5969f4950..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_videocam_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_videocam_w.png deleted file mode 100644 index ffb5ae0b0..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 20b0a6630..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png deleted file mode 100644 index a448c6d36..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/pres_img.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/pres_img.png deleted file mode 100644 index b7d005d8b..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-mdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/baseline_screen_share_white_24.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/baseline_screen_share_white_24.png deleted file mode 100755 index ed031f936..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/baseline_screen_share_white_24.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/baseline_screen_share_white_36.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/baseline_screen_share_white_36.png deleted file mode 100755 index 0180fc09d..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/baseline_screen_share_white_36.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_accept_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_accept_call.png deleted file mode 100644 index b2e162259..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_arrow_back.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_arrow_back.png deleted file mode 100644 index fc3b3743c..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_arrow_back_w.png deleted file mode 100644 index cd0875351..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_call.png deleted file mode 100644 index e41639177..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_camera_front.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_camera_front.png deleted file mode 100644 index 2d5ebab27..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_camera_rear.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_camera_rear.png deleted file mode 100644 index e61d4f065..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone.png deleted file mode 100644 index 5f9e6cd32..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_off.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_off.png deleted file mode 100644 index 4b5ea40bb..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index d4da234ce..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png deleted file mode 100644 index 84ab52624..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_phone_hangup.png deleted file mode 100644 index d9edd9d10..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_stop_screenshare.png deleted file mode 100644 index 5f05b6c85..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png deleted file mode 100644 index a206dac60..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_white.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_white.png deleted file mode 100644 index 103cd61a3..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_white_24dp.png deleted file mode 100644 index af92443ae..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_videocam.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_videocam.png deleted file mode 100644 index 0e50d06be..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_videocam_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_videocam_w.png deleted file mode 100644 index 51804d813..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 9e79ad16f..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index f01896163..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/pres_img.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/pres_img.png deleted file mode 100644 index 15f9884cd..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/baseline_screen_share_white_24.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/baseline_screen_share_white_24.png deleted file mode 100755 index 0180fc09d..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/baseline_screen_share_white_24.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/baseline_screen_share_white_36.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/baseline_screen_share_white_36.png deleted file mode 100755 index 8b5a49f50..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/baseline_screen_share_white_36.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_accept_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_accept_call.png deleted file mode 100644 index 770849665..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_arrow_back.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_arrow_back.png deleted file mode 100644 index 8511be4d0..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png deleted file mode 100644 index 8e4372dc1..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_call.png deleted file mode 100644 index 954112462..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_camera_front.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_camera_front.png deleted file mode 100644 index 3b25fc0d6..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_camera_rear.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_camera_rear.png deleted file mode 100644 index 82f2d5e46..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone.png deleted file mode 100644 index cb7beb66a..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_off.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_off.png deleted file mode 100644 index 47e9ee603..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index 472bc6838..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png deleted file mode 100644 index c9e8d04e2..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_phone_hangup.png deleted file mode 100644 index 2cf895af0..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png deleted file mode 100644 index 5599e5a35..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 140baaf87..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_white.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_white.png deleted file mode 100644 index a5b5b1c36..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png deleted file mode 100644 index 8224786d1..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_videocam.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_videocam.png deleted file mode 100644 index 9b062eda2..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_videocam_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_videocam_w.png deleted file mode 100644 index 56aaa2375..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index 53e6b959d..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index 7b0d27f51..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/pres_img.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/pres_img.png deleted file mode 100644 index eb493e057..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/baseline_screen_share_white_24.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/baseline_screen_share_white_24.png deleted file mode 100755 index 745dd5039..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/baseline_screen_share_white_24.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/baseline_screen_share_white_36.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/baseline_screen_share_white_36.png deleted file mode 100755 index 5e9d18e5e..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/baseline_screen_share_white_36.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_accept_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_accept_call.png deleted file mode 100644 index 734c07205..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_arrow_back.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_arrow_back.png deleted file mode 100644 index 56d1819cb..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png deleted file mode 100644 index 0bb0ece63..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_call.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_call.png deleted file mode 100644 index a7cc48d1c..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_camera_front.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_camera_front.png deleted file mode 100644 index 46396e717..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_camera_rear.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_camera_rear.png deleted file mode 100644 index 0d73b2aea..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone.png deleted file mode 100644 index 325af96b7..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_off.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_off.png deleted file mode 100644 index 2da399d40..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png deleted file mode 100644 index 648ce1595..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png deleted file mode 100644 index 5f9e6cd32..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png deleted file mode 100644 index 8570234fe..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png deleted file mode 100644 index bac4d67b3..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png deleted file mode 100644 index 10bfed66a..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_white.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_white.png deleted file mode 100644 index 58454db8f..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png deleted file mode 100644 index 103cd61a3..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_videocam.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_videocam.png deleted file mode 100644 index 3c909e3da..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_videocam_w.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_videocam_w.png deleted file mode 100644 index 9a61ac4a2..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png deleted file mode 100644 index d45d7f667..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png deleted file mode 100644 index 57a09875e..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/pres_img.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/pres_img.png deleted file mode 100644 index 10e73171d..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable-xxxhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_cam_toggle_background.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_cam_toggle_background.xml deleted file mode 100644 index ae760c080..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_cam_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_mic_toggle_background.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_mic_toggle_background.xml deleted file mode 100644 index a2fab5553..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_mic_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_mic_toggle_small_background.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_mic_toggle_small_background.xml deleted file mode 100644 index e18d8d4b4..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_mic_toggle_small_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_speaker_toggle_background.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_speaker_toggle_background.xml deleted file mode 100644 index 25f5b8a4e..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_speaker_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_switch_camera_toggle_background.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_switch_camera_toggle_background.xml deleted file mode 100644 index 9324b3f09..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_switch_camera_toggle_background.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_toggle_button_background.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_toggle_button_background.xml deleted file mode 100644 index 6e5b779e5..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_toggle_button_background.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_toggle_button_small_background.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_toggle_button_small_background.xml deleted file mode 100644 index 8a0139846..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/call_toggle_button_small_background.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_call_end.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_call_end.xml deleted file mode 100644 index d97d9fe65..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_call_end.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_call_start.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_call_start.xml deleted file mode 100644 index 802e4df82..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_call_start.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_cam.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_cam.xml deleted file mode 100644 index 176033493..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_cam.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_camera_switch.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_camera_switch.xml deleted file mode 100644 index 7767f00b4..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_camera_switch.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_mic.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_mic.xml deleted file mode 100644 index ae148b6e8..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_mic.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_speaker.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_speaker.xml deleted file mode 100644 index aeddfc2de..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/selector_toggle_speaker.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_green.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_green.xml deleted file mode 100644 index 954df606f..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_green.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_red.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_red.xml deleted file mode 100644 index aadadbf08..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_red.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_transparent.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_transparent.xml deleted file mode 100644 index 353b8c079..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_transparent.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_transparent_small.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_transparent_small.xml deleted file mode 100644 index 105d9a40b..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_transparent_small.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_white_green.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_white_green.xml deleted file mode 100644 index 921380d57..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_white_green.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_white_red.xml b/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_white_red.xml deleted file mode 100644 index ecab943e7..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/drawable/shape_oval_white_red.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/splash_screen.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable/splash_screen.png deleted file mode 100755 index 4ca236294..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable/splash_screen.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/drawable/users_screen.png b/old_samples/sample-videochat-kotlin/src/main/res/drawable/users_screen.png deleted file mode 100755 index 0d1b018dc..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/drawable/users_screen.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/activity_login.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/activity_login.xml deleted file mode 100644 index 0085d3944..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/activity_login.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/activity_main.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/activity_main.xml deleted file mode 100644 index 1d31a1849..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_conversation_call.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_conversation_call.xml deleted file mode 100644 index 958afc18a..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_conversation_call.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_item_screen_share.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_item_screen_share.xml deleted file mode 100644 index e674f4880..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_item_screen_share.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_pager.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_pager.xml deleted file mode 100644 index 5f3b7a145..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_pager.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_preview.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_preview.xml deleted file mode 100644 index 46da626dc..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/fragment_preview.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/list_item_opponent_from_call.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/list_item_opponent_from_call.xml deleted file mode 100644 index 151a82074..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/list_item_opponent_from_call.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/list_item_user.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/list_item_user.xml deleted file mode 100644 index 9236ea9d0..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/list_item_user.xml +++ /dev/null @@ -1,15 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/layout/view_action_buttons_conversation_fragment.xml b/old_samples/sample-videochat-kotlin/src/main/res/layout/view_action_buttons_conversation_fragment.xml deleted file mode 100644 index 5b24e8926..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/layout/view_action_buttons_conversation_fragment.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/menu/activity_call.xml b/old_samples/sample-videochat-kotlin/src/main/res/menu/activity_call.xml deleted file mode 100644 index a3a1b60d0..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/menu/activity_call.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/menu/conversation_fragment.xml b/old_samples/sample-videochat-kotlin/src/main/res/menu/conversation_fragment.xml deleted file mode 100644 index 9044c049d..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/menu/conversation_fragment.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/menu/screen_share_fragment.xml b/old_samples/sample-videochat-kotlin/src/main/res/menu/screen_share_fragment.xml deleted file mode 100644 index aaccd4167..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/menu/screen_share_fragment.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-hdpi/ic_launcher.png b/old_samples/sample-videochat-kotlin/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index d888bc398..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-mdpi/ic_launcher.png b/old_samples/sample-videochat-kotlin/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 82138c47e..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xhdpi/ic_launcher.png b/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 7bea6026a..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xxhdpi/ic_launcher.png b/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index dad8898a7..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index 4baa11be0..000000000 Binary files a/old_samples/sample-videochat-kotlin/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/old_samples/sample-videochat-kotlin/src/main/res/values/colors.xml b/old_samples/sample-videochat-kotlin/src/main/res/values/colors.xml deleted file mode 100644 index 29e0dce76..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/values/colors.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - #000000 - #d3d3d3 - #ffffff - - @color/white - #d0d0d0 - @color/color_green_qb - - #046ad0 - #87cefa - #4ad24d - - #ffffff - - #0088e7 - - #FF0000 - #45D100 - #A9FF80 - #50000000 - #50606060 - - #FC5876 - #2b2a2a - - #6e6e6e - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/values/dimens.xml b/old_samples/sample-videochat-kotlin/src/main/res/values/dimens.xml deleted file mode 100644 index 7a0524969..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/values/dimens.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - 8dp - - 60dp - 30dp - 8dp - - 1dp - - 64dp - 16dp - - 80dp - 30dp - - 16dp - 8dp - 3dp - - 26sp - - 80dp - 136dp - - - 400dp - 500dp - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/values/strings.xml b/old_samples/sample-videochat-kotlin/src/main/res/values/strings.xml deleted file mode 100644 index 8c04def03..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/values/strings.xml +++ /dev/null @@ -1,47 +0,0 @@ - - - VideoChat-kotlin - VideoChat-kotlin Sample - VideoChat-kotlin Sample - - Login as - User %1$s - Login Chat error. Please relogin. Error %s - Loading users error. Error %s - - Incoming Video Call - - - Login - Logged in as %1$s - Logout - - - Switch camera - Screen share - Stop share - - - Disconnected… Please check your Internet connection! - Login… - Sign In… - Updating user… - Creating new user… - Logout… - Loading opponents… - - Connect… - Connected - Disconnected - Closed - Hung up - - - The App class should contain QuickBlox credentials. Register new account and application at https://admin.quickblox.com - then put Application credentials from Overview page + Account key from https://admin.quickblox.com/account/settings - The user_config.json file should contain at least 2 and max 4 users with format [\"login\":\"password\"]. Please go to https://admin.quickblox.com and create users in \'Users\' module. - You can select up to %d opponents - You cannot continue without an access to %s - \"Failed switch camera\" - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/values/styles.xml b/old_samples/sample-videochat-kotlin/src/main/res/values/styles.xml deleted file mode 100644 index 1c538f231..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/values/styles.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-kotlin/src/main/res/values/theme.xml b/old_samples/sample-videochat-kotlin/src/main/res/values/theme.xml deleted file mode 100644 index aeb5ca746..000000000 --- a/old_samples/sample-videochat-kotlin/src/main/res/values/theme.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/README.md b/old_samples/sample-videochat-webrtc/README.md deleted file mode 100755 index 1afda88f5..000000000 --- a/old_samples/sample-videochat-webrtc/README.md +++ /dev/null @@ -1,11 +0,0 @@ -

QuickBlox Android Video Group Chat WebRTC code sample

-This is a code sample for [QuickBlox](http://quickblox.com/) platform. It is a great way for developers using QuickBlox platform to learn how to integrate WebRTC video calling features into your application. - -Original sample description & setup guide - [http://quickblox.com/developers/Sample-webrtc-android](http://quickblox.com/developers/Sample-webrtc-android) - - -     -     -     -     -     diff --git a/old_samples/sample-videochat-webrtc/build.gradle b/old_samples/sample-videochat-webrtc/build.gradle deleted file mode 100755 index 21b2d36d7..000000000 --- a/old_samples/sample-videochat-webrtc/build.gradle +++ /dev/null @@ -1,96 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - flavorDimensions rootProject.dimensionDefault - - defaultConfig { - applicationId "com.quickblox.sample.groupchatwebrtc" - minSdkVersion 16 - targetSdkVersion rootProject.targetSdkVersion - versionCode rootProject.versionCode - versionName rootProject.versionName - - } - - productFlavors { - speedDev { - dimension rootProject.dimensionDefault - minSdkVersion 21 - } - dev { - dimension rootProject.dimensionDefault - minSdkVersion 16 - } - } - - buildTypes { - debug { - resValue "string", "versionName", "QuickBlox WebRTC\nBuild version " + defaultConfig.getVersionName() - signingConfig signingConfigs.debug - } - - release { - resValue "string", "versionName", "QuickBlox WebRTC\nBuild version " + defaultConfig.getVersionName() - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - lintOptions { - abortOnError false - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - //There is code for excluding some native libs (it useful if you need reduce apk size and want - //build apk only for specific platform). This method allows you to achieve savings about 10MB - //of apk's size (but you need build 4 different apks). -// packagingOptions { -// exclude '**/armeabi-v7a/libjingle_peerconnection_so.so' -// exclude '**/arm64-v8a/libjingle_peerconnection_so.so' -// exclude '**/x86_64/libjingle_peerconnection_so.so' -// exclude '**/x86/libjingle_peerconnection_so.so' -// } -} - -dependencies { - implementation(project(":sample-core")) - - implementation "com.quickblox:quickblox-android-sdk-videochat-webrtc:$rootProject.qbSdkVersion" - - implementation "com.navercorp.pulltorefresh:library:${rootProject.pullToRefreshVersion}@aar" - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } - implementation "com.github.bumptech.glide:glide:${rootProject.glideVersion}" -} - -apply from: "../artifacts.gradle" \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/proguard-rules.pro b/old_samples/sample-videochat-webrtc/proguard-rules.pro deleted file mode 100755 index 03e56d48b..000000000 --- a/old_samples/sample-videochat-webrtc/proguard-rules.pro +++ /dev/null @@ -1,17 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /home/tereha/Android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} diff --git a/old_samples/sample-videochat-webrtc/screenshots/Group.png b/old_samples/sample-videochat-webrtc/screenshots/Group.png deleted file mode 100644 index 1cef7d925..000000000 Binary files a/old_samples/sample-videochat-webrtc/screenshots/Group.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/screenshots/Login.png b/old_samples/sample-videochat-webrtc/screenshots/Login.png deleted file mode 100644 index 6ebbaab05..000000000 Binary files a/old_samples/sample-videochat-webrtc/screenshots/Login.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/screenshots/Screenshare_picture.png b/old_samples/sample-videochat-webrtc/screenshots/Screenshare_picture.png deleted file mode 100644 index a33d19669..000000000 Binary files a/old_samples/sample-videochat-webrtc/screenshots/Screenshare_picture.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/screenshots/Screenshare_youtube.png b/old_samples/sample-videochat-webrtc/screenshots/Screenshare_youtube.png deleted file mode 100644 index bac2c00ff..000000000 Binary files a/old_samples/sample-videochat-webrtc/screenshots/Screenshare_youtube.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/screenshots/Users.png b/old_samples/sample-videochat-webrtc/screenshots/Users.png deleted file mode 100644 index ccf01bdc6..000000000 Binary files a/old_samples/sample-videochat-webrtc/screenshots/Users.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/screenshots/p2p.png b/old_samples/sample-videochat-webrtc/screenshots/p2p.png deleted file mode 100644 index f04edb804..000000000 Binary files a/old_samples/sample-videochat-webrtc/screenshots/p2p.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/AndroidManifest.xml b/old_samples/sample-videochat-webrtc/src/main/AndroidManifest.xml deleted file mode 100755 index bbeb3dc4e..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/AndroidManifest.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/assets/qb_config.json b/old_samples/sample-videochat-webrtc/src/main/assets/qb_config.json deleted file mode 100644 index c6e242af6..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/assets/qb_config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "account_key": "C4_z7nuaANnBYmsG_k98", - "gcm_sender_id": "761750217637" -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/App.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/App.java deleted file mode 100644 index 18daf2284..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/App.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc; - -import com.crashlytics.android.Crashlytics; -import com.quickblox.sample.core.CoreApp; -import com.quickblox.sample.groupchatwebrtc.util.QBResRequestExecutor; - -import io.fabric.sdk.android.Fabric; - -public class App extends CoreApp { - private static App instance; - private QBResRequestExecutor qbResRequestExecutor; - - public static App getInstance() { - return instance; - } - - @Override - public void onCreate() { - super.onCreate(); - Fabric.with(this, new Crashlytics()); - initApplication(); - } - - private void initApplication() { - instance = this; - } - - public synchronized QBResRequestExecutor getQbResRequestExecutor() { - return qbResRequestExecutor == null - ? qbResRequestExecutor = new QBResRequestExecutor() - : qbResRequestExecutor; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/BaseActivity.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/BaseActivity.java deleted file mode 100755 index 0af0ef0ed..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/BaseActivity.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.activities; - -import android.app.ProgressDialog; -import android.content.DialogInterface; -import android.os.Bundle; -import android.view.KeyEvent; -import android.view.View; - -import com.quickblox.sample.core.gcm.GooglePlayServicesHelper; -import com.quickblox.sample.core.ui.activity.CoreBaseActivity; -import com.quickblox.sample.core.utils.ErrorUtils; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.groupchatwebrtc.App; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.util.QBResRequestExecutor; -import com.quickblox.sample.groupchatwebrtc.utils.Consts; - -import androidx.annotation.StringRes; - -/** - * QuickBlox team - */ -public abstract class BaseActivity extends CoreBaseActivity { - - SharedPrefsHelper sharedPrefsHelper; - private ProgressDialog progressDialog; - protected GooglePlayServicesHelper googlePlayServicesHelper; - protected QBResRequestExecutor requestExecutor; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - requestExecutor = App.getInstance().getQbResRequestExecutor(); - sharedPrefsHelper = SharedPrefsHelper.getInstance(); - googlePlayServicesHelper = new GooglePlayServicesHelper(); - } - - public void initDefaultActionBar() { - String currentUserFullName = ""; - String currentRoomName = sharedPrefsHelper.get(Consts.PREF_CURREN_ROOM_NAME, ""); - - if (sharedPrefsHelper.getQbUser() != null) { - currentUserFullName = sharedPrefsHelper.getQbUser().getFullName(); - } - - setActionBarTitle(currentRoomName); - setActionbarSubTitle(String.format(getString(R.string.subtitle_text_logged_in_as), currentUserFullName)); - } - - - public void setActionbarSubTitle(String subTitle) { - if (actionBar != null) - actionBar.setSubtitle(subTitle); - } - - public void removeActionbarSubTitle() { - if (actionBar != null) - actionBar.setSubtitle(null); - } - - void showProgressDialog(@StringRes int messageId) { - if (progressDialog == null) { - progressDialog = new ProgressDialog(this); - progressDialog.setIndeterminate(true); - progressDialog.setCancelable(false); - progressDialog.setCanceledOnTouchOutside(false); - - // Disable the back button - DialogInterface.OnKeyListener keyListener = new DialogInterface.OnKeyListener() { - @Override - public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) { - return keyCode == KeyEvent.KEYCODE_BACK; - } - }; - progressDialog.setOnKeyListener(keyListener); - } - - progressDialog.setMessage(getString(messageId)); - - progressDialog.show(); - - } - - void hideProgressDialog() { - if (progressDialog != null) { - progressDialog.dismiss(); - } - } - - protected void showErrorSnackbar(@StringRes int resId, Exception e, - View.OnClickListener clickListener) { - if (getSnackbarAnchorView() != null) { - ErrorUtils.showSnackbar(getSnackbarAnchorView(), resId, e, - com.quickblox.sample.core.R.string.dlg_retry, clickListener); - } - } - - protected abstract View getSnackbarAnchorView(); -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/CallActivity.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/CallActivity.java deleted file mode 100755 index 5d8419793..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/CallActivity.java +++ /dev/null @@ -1,843 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.activities; - -import android.annotation.TargetApi; -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.media.projection.MediaProjectionManager; -import android.os.Build; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.os.SystemClock; -import android.preference.PreferenceManager; -import android.util.Log; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.quickblox.chat.QBChatService; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.db.QbUsersDbManager; -import com.quickblox.sample.groupchatwebrtc.fragments.AudioConversationFragment; -import com.quickblox.sample.groupchatwebrtc.fragments.BaseConversationFragment; -import com.quickblox.sample.groupchatwebrtc.fragments.ConversationFragmentCallbackListener; -import com.quickblox.sample.groupchatwebrtc.fragments.IncomeCallFragment; -import com.quickblox.sample.groupchatwebrtc.fragments.IncomeCallFragmentCallbackListener; -import com.quickblox.sample.groupchatwebrtc.fragments.OnCallEventsController; -import com.quickblox.sample.groupchatwebrtc.fragments.ScreenShareFragment; -import com.quickblox.sample.groupchatwebrtc.fragments.VideoConversationFragment; -import com.quickblox.sample.groupchatwebrtc.util.NetworkConnectionChecker; -import com.quickblox.sample.groupchatwebrtc.utils.Consts; -import com.quickblox.sample.groupchatwebrtc.utils.FragmentExecuotr; -import com.quickblox.sample.groupchatwebrtc.utils.PermissionsChecker; -import com.quickblox.sample.groupchatwebrtc.utils.QBEntityCallbackImpl; -import com.quickblox.sample.groupchatwebrtc.utils.RingtonePlayer; -import com.quickblox.sample.groupchatwebrtc.utils.SettingsUtil; -import com.quickblox.sample.groupchatwebrtc.utils.UsersUtils; -import com.quickblox.sample.groupchatwebrtc.utils.WebRtcSessionManager; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.AppRTCAudioManager; -import com.quickblox.videochat.webrtc.BaseSession; -import com.quickblox.videochat.webrtc.QBRTCCameraVideoCapturer; -import com.quickblox.videochat.webrtc.QBRTCClient; -import com.quickblox.videochat.webrtc.QBRTCConfig; -import com.quickblox.videochat.webrtc.QBRTCScreenCapturer; -import com.quickblox.videochat.webrtc.QBRTCSession; -import com.quickblox.videochat.webrtc.QBRTCTypes; -import com.quickblox.videochat.webrtc.QBSignalingSpec; -import com.quickblox.videochat.webrtc.callbacks.QBRTCClientSessionCallbacks; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionEventsCallback; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSignalingCallback; -import com.quickblox.videochat.webrtc.exception.QBRTCSignalException; - -import org.jivesoftware.smack.AbstractConnectionListener; -import org.webrtc.CameraVideoCapturer; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import androidx.fragment.app.Fragment; - -/** - * QuickBlox team - */ -public class CallActivity extends BaseActivity implements QBRTCClientSessionCallbacks, QBRTCSessionStateCallback, QBRTCSignalingCallback, - OnCallEventsController, IncomeCallFragmentCallbackListener, ConversationFragmentCallbackListener, NetworkConnectionChecker.OnConnectivityChangedListener, - ScreenShareFragment.OnSharingEvents { - - private static final String TAG = CallActivity.class.getSimpleName(); - - public static final String OPPONENTS_CALL_FRAGMENT = "opponents_call_fragment"; - public static final String INCOME_CALL_FRAGMENT = "income_call_fragment"; - public static final String CONVERSATION_CALL_FRAGMENT = "conversation_call_fragment"; - public static final String CALLER_NAME = "caller_name"; - public static final String SESSION_ID = "sessionID"; - public static final String START_CONVERSATION_REASON = "start_conversation_reason"; - - private static final int REQUEST_MEDIA_PROJECTION = 1; - - private QBRTCSession currentSession; - public List opponentsList; - private Runnable showIncomingCallWindowTask; - private Handler showIncomingCallWindowTaskHandler; - private boolean closeByWifiStateAllow = true; - private String hangUpReason; - private boolean isInCommingCall; - private QBRTCClient rtcClient; - private OnChangeAudioDevice onChangeAudioDeviceCallback; - private ConnectionListener connectionListener; - private boolean wifiEnabled = true; - private SharedPreferences sharedPref; - private RingtonePlayer ringtonePlayer; - private LinearLayout connectionView; - private AppRTCAudioManager audioManager; - private NetworkConnectionChecker networkConnectionChecker; - private WebRtcSessionManager sessionManager; - private QbUsersDbManager dbManager; - private ArrayList currentCallStateCallbackList = new ArrayList<>(); - private List opponentsIdsList; - private boolean callStarted; - private boolean isVideoCall; - private long expirationReconnectionTime; - private int reconnectHangUpTimeMillis; - private PermissionsChecker checker; - private MediaProjectionManager mMediaProjectionManager; - - public static void start(Context context, - boolean isIncomingCall) { - - Intent intent = new Intent(context, CallActivity.class); - intent.putExtra(Consts.EXTRA_IS_INCOMING_CALL, isIncomingCall); - - context.startActivity(intent); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - - parseIntentExtras(); - - sessionManager = WebRtcSessionManager.getInstance(this); - if (!currentSessionExist()) { - //we have already currentSession == null, so it's no reason to do further initialization - finish(); - Log.d(TAG, "finish CallActivity"); - return; - } - - initFields(); - initCurrentSession(currentSession); - - PreferenceManager.setDefaultValues(this, R.xml.preferences, false); - sharedPref = PreferenceManager.getDefaultSharedPreferences(this); - initQBRTCClient(); - initAudioManager(); - initWiFiManagerListener(); - - ringtonePlayer = new RingtonePlayer(this, R.raw.beep); - connectionView = (LinearLayout) View.inflate(this, R.layout.connection_popup, null); - checker = new PermissionsChecker(getApplicationContext()); - - if (!isInCommingCall) { - startAudioManager(); - ringtonePlayer.play(true); - } - startSuitableFragment(isInCommingCall); - } - - private void startAudioManager() { - audioManager.start((selectedAudioDevice, availableAudioDevices) -> { - Toaster.shortToast("Audio device switched to " + selectedAudioDevice); - - if (onChangeAudioDeviceCallback != null) { - onChangeAudioDeviceCallback.audioDeviceChanged(selectedAudioDevice); - } - }); - } - - private void startScreenSharing(final Intent data) { - ScreenShareFragment screenShareFragment = ScreenShareFragment.newIntstance(); - FragmentExecuotr.addFragmentWithBackStack(getSupportFragmentManager(), R.id.fragment_container, screenShareFragment, ScreenShareFragment.TAG); - currentSession.getMediaStreamManager().setVideoCapturer(new QBRTCScreenCapturer(data, null)); - } - - private void returnToCamera() { - try { - currentSession.getMediaStreamManager().setVideoCapturer(new QBRTCCameraVideoCapturer(this, null)); - } catch (QBRTCCameraVideoCapturer.QBRTCCameraCapturerException e) { - Log.i(TAG, "Error: device doesn't have camera"); - } - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, final Intent data) { - Log.i(TAG, "onActivityResult requestCode=" + requestCode + ", resultCode= " + resultCode); - if (requestCode == QBRTCScreenCapturer.REQUEST_MEDIA_PROJECTION) { - if (resultCode == Activity.RESULT_OK) { - startScreenSharing(data); - Log.i(TAG, "Starting screen capture"); - } else { - - } - } - } - - private void startSuitableFragment(boolean isInComingCall) { - if (isInComingCall) { - initIncomingCallTask(); - startLoadAbsentUsers(); - addIncomeCallFragment(); - checkPermission(); - } else { - addConversationFragment(isInComingCall); - } - } - - private void checkPermission() { - if (checker.lacksPermissions(Consts.PERMISSIONS)) { - startPermissionsActivity(!isVideoCall); - } - } - - private void startPermissionsActivity(boolean checkOnlyAudio) { - PermissionsActivity.startActivity(this, checkOnlyAudio, Consts.PERMISSIONS); - } - - private void startLoadAbsentUsers() { - ArrayList usersFromDb = dbManager.getAllUsers(); - ArrayList allParticipantsOfCall = new ArrayList<>(); - allParticipantsOfCall.addAll(opponentsIdsList); - - if (isInCommingCall) { - allParticipantsOfCall.add(currentSession.getCallerID()); - } - - ArrayList idsUsersNeedLoad = UsersUtils.getIdsNotLoadedUsers(usersFromDb, allParticipantsOfCall); - if (!idsUsersNeedLoad.isEmpty()) { - requestExecutor.loadUsersByIds(idsUsersNeedLoad, new QBEntityCallbackImpl>() { - @Override - public void onSuccess(ArrayList result, Bundle params) { - dbManager.saveAllUsers(result, false); - needUpdateOpponentsList(result); - } - }); - } - } - - private void needUpdateOpponentsList(ArrayList newUsers) { - notifyCallStateListenersNeedUpdateOpponentsList(newUsers); - } - - private boolean currentSessionExist() { - currentSession = sessionManager.getCurrentSession(); - return currentSession != null; - } - - private void initFields() { - dbManager = QbUsersDbManager.getInstance(getApplicationContext()); - opponentsIdsList = currentSession.getOpponents(); - } - - @Override - protected View getSnackbarAnchorView() { - return null; - } - - private void parseIntentExtras() { - isInCommingCall = getIntent().getExtras().getBoolean(Consts.EXTRA_IS_INCOMING_CALL); - } - - private void initAudioManager() { - audioManager = AppRTCAudioManager.create(this); - - isVideoCall = QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO.equals(currentSession.getConferenceType()); - if (isVideoCall) { - audioManager.setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE); - Log.d(TAG, "AppRTCAudioManager.AudioDevice.SPEAKER_PHONE"); - } else { - audioManager.setDefaultAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE); - audioManager.setManageSpeakerPhoneByProximity(SettingsUtil.isManageSpeakerPhoneByProximity(this)); - Log.d(TAG, "AppRTCAudioManager.AudioDevice.EARPIECE"); - } - - audioManager.setOnWiredHeadsetStateListener((plugged, hasMicrophone) -> { - if (callStarted) { - Toaster.shortToast("Headset " + (plugged ? "plugged" : "unplugged")); - } - }); - - audioManager.setBluetoothAudioDeviceStateListener(connected -> { - if (callStarted) { - Toaster.shortToast("Bluetooth " + (connected ? "connected" : "disconnected")); - } - }); - } - - private void initQBRTCClient() { - rtcClient = QBRTCClient.getInstance(this); - - rtcClient.setCameraErrorHandler(new CameraVideoCapturer.CameraEventsHandler() { - @Override - public void onCameraError(final String s) { - - showToast("Camera error: " + s); - } - - @Override - public void onCameraDisconnected() { - showToast("Camera onCameraDisconnected: "); - } - - @Override - public void onCameraFreezed(String s) { - showToast("Camera freezed: " + s); - hangUpCurrentSession(); - } - - @Override - public void onCameraOpening(String s) { - showToast("Camera aOpening: " + s); - } - - @Override - public void onFirstFrameAvailable() { - showToast("onFirstFrameAvailable: "); - } - - @Override - public void onCameraClosed() { - } - }); - - - // Configure - // - QBRTCConfig.setMaxOpponentsCount(Consts.MAX_OPPONENTS_COUNT); - SettingsUtil.setSettingsStrategy(opponentsIdsList, sharedPref, CallActivity.this); - SettingsUtil.configRTCTimers(CallActivity.this); - QBRTCConfig.setDebugEnabled(true); - - - // Add activity as callback to RTCClient - rtcClient.addSessionCallbacksListener(this); - // Start mange QBRTCSessions according to VideoCall parser's callbacks - rtcClient.prepareToProcessCalls(); - connectionListener = new ConnectionListener(); - QBChatService.getInstance().addConnectionListener(connectionListener); - } - - private void setExpirationReconnectionTime() { - reconnectHangUpTimeMillis = SettingsUtil.getPreferenceInt(sharedPref, this, R.string.pref_disconnect_time_interval_key, - R.string.pref_disconnect_time_interval_default_value) * 1000; - expirationReconnectionTime = System.currentTimeMillis() + reconnectHangUpTimeMillis; - } - - private void hangUpAfterLongReconnection() { - if (expirationReconnectionTime < System.currentTimeMillis()) { - hangUpCurrentSession(); - } - } - - @Override - public void connectivityChanged(boolean availableNow) { - if (callStarted) { - showToast("Internet connection " + (availableNow ? "available" : " unavailable")); - } - } - - private void showNotificationPopUp(final int text, final boolean show) { - runOnUiThread(new Runnable() { - @Override - public void run() { - if (show) { - ((TextView) connectionView.findViewById(R.id.notification)).setText(text); - if (connectionView.getParent() == null) { - ((ViewGroup) CallActivity.this.findViewById(R.id.fragment_container)).addView(connectionView); - } - } else { - ((ViewGroup) CallActivity.this.findViewById(R.id.fragment_container)).removeView(connectionView); - } - } - }); - - } - - private void initWiFiManagerListener() { - networkConnectionChecker = new NetworkConnectionChecker(getApplication()); - } - - private void initIncomingCallTask() { - showIncomingCallWindowTaskHandler = new Handler(Looper.myLooper()); - showIncomingCallWindowTask = new Runnable() { - @Override - public void run() { - if (currentSession == null) { - return; - } - - QBRTCSession.QBRTCSessionState currentSessionState = currentSession.getState(); - if (QBRTCSession.QBRTCSessionState.QB_RTC_SESSION_NEW.equals(currentSessionState)) { - rejectCurrentSession(); - } else { - ringtonePlayer.stop(); - hangUpCurrentSession(); - } - Toaster.longToast("Call was stopped by timer"); - } - }; - } - - - private QBRTCSession getCurrentSession() { - return currentSession; - } - - public void rejectCurrentSession() { - if (getCurrentSession() != null) { - getCurrentSession().rejectCall(new HashMap()); - } - } - - public void hangUpCurrentSession() { - ringtonePlayer.stop(); - if (getCurrentSession() != null) { - getCurrentSession().hangUp(new HashMap()); - } - } - - private void setAudioEnabled(boolean isAudioEnabled) { - if (currentSession != null && currentSession.getMediaStreamManager() != null) { - currentSession.getMediaStreamManager().getLocalAudioTrack().setEnabled(isAudioEnabled); - } - } - - private void setVideoEnabled(boolean isVideoEnabled) { - if (currentSession != null && currentSession.getMediaStreamManager() != null) { - currentSession.getMediaStreamManager().getLocalVideoTrack().setEnabled(isVideoEnabled); - } - } - - private void startIncomeCallTimer(long time) { - showIncomingCallWindowTaskHandler.postAtTime(showIncomingCallWindowTask, SystemClock.uptimeMillis() + time); - } - - private void stopIncomeCallTimer() { - Log.d(TAG, "stopIncomeCallTimer"); - showIncomingCallWindowTaskHandler.removeCallbacks(showIncomingCallWindowTask); - } - - - @Override - protected void onResume() { - super.onResume(); - networkConnectionChecker.registerListener(this); - } - - @Override - protected void onPause() { - super.onPause(); - networkConnectionChecker.unregisterListener(this); - } - - @Override - protected void onStop() { - super.onStop(); - QBChatService.getInstance().removeConnectionListener(connectionListener); - } - - - private void forbiddenCloseByWifiState() { - closeByWifiStateAllow = false; - } - - - public void initCurrentSession(QBRTCSession session) { - if (session != null) { - Log.d(TAG, "Init new QBRTCSession"); - this.currentSession = session; - this.currentSession.addSessionCallbacksListener(CallActivity.this); - this.currentSession.addSignalingCallback(CallActivity.this); - } - } - - public void releaseCurrentSession() { - Log.d(TAG, "Release current session"); - if (currentSession != null) { - this.currentSession.removeSessionCallbacksListener(CallActivity.this); - this.currentSession.removeSignalingCallback(CallActivity.this); - rtcClient.removeSessionsCallbacksListener(CallActivity.this); - this.currentSession = null; - } - } - - // ---------------Chat callback methods implementation ----------------------// - - @Override - public void onReceiveNewSession(final QBRTCSession session) { - Log.d(TAG, "Session " + session.getSessionID() + " are income"); - if (getCurrentSession() != null) { - Log.d(TAG, "Stop new session. Device now is busy"); - session.rejectCall(null); - } - } - - @Override - public void onUserNotAnswer(QBRTCSession session, Integer userID) { - if (!session.equals(getCurrentSession())) { - return; - } - ringtonePlayer.stop(); - } - - @Override - public void onUserNoActions(QBRTCSession qbrtcSession, Integer integer) { - startIncomeCallTimer(0); - } - - @Override - public void onCallAcceptByUser(QBRTCSession session, Integer userId, Map userInfo) { - if (!session.equals(getCurrentSession())) { - return; - } - ringtonePlayer.stop(); - } - - @Override - public void onCallRejectByUser(QBRTCSession session, Integer userID, Map userInfo) { - if (!session.equals(getCurrentSession())) { - return; - } - ringtonePlayer.stop(); - } - - @Override - public void onConnectionClosedForUser(QBRTCSession session, Integer userID) { - // Close app after session close of network was disabled - if (hangUpReason != null && hangUpReason.equals(Consts.WIFI_DISABLED)) { - Intent returnIntent = new Intent(); - setResult(Consts.CALL_ACTIVITY_CLOSE_WIFI_DISABLED, returnIntent); - finish(); - } - } - - @Override - public void onStateChanged(QBRTCSession qbrtcSession, BaseSession.QBRTCSessionState qbrtcSessionState) { - - } - - @Override - public void onConnectedToUser(QBRTCSession session, final Integer userID) { - callStarted = true; - notifyCallStateListenersCallStarted(); - forbiddenCloseByWifiState(); - if (isInCommingCall) { - stopIncomeCallTimer(); - } - Log.d(TAG, "onConnectedToUser() is started"); - } - - @Override - public void onSessionClosed(final QBRTCSession session) { - - Log.d(TAG, "Session " + session.getSessionID() + " start stop session"); - - if (session.equals(getCurrentSession())) { - Log.d(TAG, "Stop session"); - - if (audioManager != null) { - audioManager.stop(); - } - releaseCurrentSession(); - - closeByWifiStateAllow = true; - finish(); - } - } - - @Override - public void onSessionStartClose(final QBRTCSession session) { - if (session.equals(getCurrentSession())) { - session.removeSessionCallbacksListener(CallActivity.this); - notifyCallStateListenersCallStopped(); - } - } - - @Override - public void onDisconnectedFromUser(QBRTCSession session, Integer userID) { - - } - - private void showToast(final int message) { - runOnUiThread(new Runnable() { - @Override - public void run() { - Toaster.shortToast(message); - } - }); - } - - private void showToast(final String message) { - runOnUiThread(new Runnable() { - @Override - public void run() { - Toaster.shortToast(message); - } - }); - } - - @Override - public void onReceiveHangUpFromUser(final QBRTCSession session, final Integer userID, Map map) { - if (session.equals(getCurrentSession())) { - - if (userID.equals(session.getCallerID())) { - hangUpCurrentSession(); - Log.d(TAG, "initiator hung up the call"); - } - - QBUser participant = dbManager.getUserById(userID); - final String participantName = participant != null ? participant.getFullName() : String.valueOf(userID); - - showToast("User " + participantName + " " + getString(R.string.text_status_hang_up) + " conversation"); - } - } - - private Fragment getCurrentFragment() { - return getSupportFragmentManager().findFragmentById(R.id.fragment_container); - } - - private void addIncomeCallFragment() { - Log.d(TAG, "QBRTCSession in addIncomeCallFragment is " + currentSession); - - if (currentSession != null) { - IncomeCallFragment fragment = new IncomeCallFragment(); - FragmentExecuotr.addFragment(getSupportFragmentManager(), R.id.fragment_container, fragment, INCOME_CALL_FRAGMENT); - } else { - Log.d(TAG, "SKIP addIncomeCallFragment method"); - } - } - - private void addConversationFragment(boolean isIncomingCall) { - BaseConversationFragment conversationFragment = BaseConversationFragment.newInstance( - isVideoCall - ? new VideoConversationFragment() - : new AudioConversationFragment(), - isIncomingCall); - FragmentExecuotr.addFragment(getSupportFragmentManager(), R.id.fragment_container, conversationFragment, conversationFragment.getClass().getSimpleName()); - } - - public SharedPreferences getDefaultSharedPrefs() { - return sharedPref; - } - - @Override - public void onSuccessSendingPacket(QBSignalingSpec.QBSignalCMD qbSignalCMD, Integer integer) { - } - - @Override - public void onErrorSendingPacket(QBSignalingSpec.QBSignalCMD qbSignalCMD, Integer userId, QBRTCSignalException e) { - showToast(R.string.dlg_signal_error); - } - - - public void onUseHeadSet(boolean use) { - audioManager.setManageHeadsetByDefault(use); - } - - public void notifyAboutCurrentAudioDevice() { - onChangeAudioDeviceCallback.audioDeviceChanged(audioManager.getSelectedAudioDevice()); - } - - ////////////////////////////// IncomeCallFragmentCallbackListener //////////////////////////// - - @Override - public void onAcceptCurrentSession() { - if (currentSession != null) { - startAudioManager(); - addConversationFragment(true); - } else { - Log.d(TAG, "SKIP addConversationFragment method"); - } - } - - @Override - public void onRejectCurrentSession() { - rejectCurrentSession(); - } - ////////////////////////////////////////// end ///////////////////////////////////////////// - - - @Override - public void onBackPressed() { - Fragment fragmentByTag = getSupportFragmentManager().findFragmentByTag(ScreenShareFragment.TAG); - if (fragmentByTag instanceof ScreenShareFragment) { - returnToCamera(); - super.onBackPressed(); - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - } - - - ////////////////////////////// ConversationFragmentCallbackListener //////////////////////////// - - @Override - public void addTCClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks) { - if (currentSession != null) { - currentSession.addSessionCallbacksListener(clientConnectionCallbacks); - } - } - - @Override - public void addRTCSessionEventsCallback(QBRTCSessionEventsCallback eventsCallback) { - QBRTCClient.getInstance(this).addSessionCallbacksListener(eventsCallback); - } - - @Override - public void onSetAudioEnabled(boolean isAudioEnabled) { - setAudioEnabled(isAudioEnabled); - } - - @Override - public void onHangUpCurrentSession() { - hangUpCurrentSession(); - } - - @TargetApi(21) - @Override - public void onStartScreenSharing() { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { - return; - } - QBRTCScreenCapturer.requestPermissions(CallActivity.this); - } - - @Override - public void onSwitchCamera(CameraVideoCapturer.CameraSwitchHandler cameraSwitchHandler) { - ((QBRTCCameraVideoCapturer) (currentSession.getMediaStreamManager().getVideoCapturer())) - .switchCamera(cameraSwitchHandler); - } - - @Override - public void onSetVideoEnabled(boolean isNeedEnableCam) { - setVideoEnabled(isNeedEnableCam); - } - - @Override - public void onSwitchAudio() { - Log.v(TAG, "onSwitchAudio(), SelectedAudioDevice() = " + audioManager.getSelectedAudioDevice()); - if (audioManager.getSelectedAudioDevice() != AppRTCAudioManager.AudioDevice.SPEAKER_PHONE) { - audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.SPEAKER_PHONE); - } else { - if (audioManager.getAudioDevices().contains(AppRTCAudioManager.AudioDevice.BLUETOOTH)) { - audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.BLUETOOTH); - } else if (audioManager.getAudioDevices().contains(AppRTCAudioManager.AudioDevice.WIRED_HEADSET)) { - audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.WIRED_HEADSET); - } else { - audioManager.selectAudioDevice(AppRTCAudioManager.AudioDevice.EARPIECE); - } - } - } - - @Override - public void removeRTCClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks) { - if (currentSession != null) { - currentSession.removeSessionCallbacksListener(clientConnectionCallbacks); - } - } - - @Override - public void removeRTCSessionEventsCallback(QBRTCSessionEventsCallback eventsCallback) { - QBRTCClient.getInstance(this).removeSessionsCallbacksListener(eventsCallback); - } - - @Override - public void addCurrentCallStateCallback(CurrentCallStateCallback currentCallStateCallback) { - currentCallStateCallbackList.add(currentCallStateCallback); - } - - @Override - public void removeCurrentCallStateCallback(CurrentCallStateCallback currentCallStateCallback) { - currentCallStateCallbackList.remove(currentCallStateCallback); - } - - @Override - public void addOnChangeAudioDeviceCallback(OnChangeAudioDevice onChangeDynamicCallback) { - this.onChangeAudioDeviceCallback = onChangeDynamicCallback; - notifyAboutCurrentAudioDevice(); - } - - @Override - public void removeOnChangeAudioDeviceCallback(OnChangeAudioDevice onChangeDynamicCallback) { - this.onChangeAudioDeviceCallback = null; - } - - @Override - public void onStopPreview() { - onBackPressed(); - } - - ////////////////////////////////////////// end ///////////////////////////////////////////// - private class ConnectionListener extends AbstractConnectionListener { - @Override - public void connectionClosedOnError(Exception e) { - showNotificationPopUp(R.string.connection_was_lost, true); - setExpirationReconnectionTime(); - } - - @Override - public void reconnectionSuccessful() { - showNotificationPopUp(R.string.connection_was_lost, false); - } - - @Override - public void reconnectingIn(int seconds) { - Log.i(TAG, "reconnectingIn " + seconds); - if (!callStarted) { - hangUpAfterLongReconnection(); - } - } - } - - public interface OnChangeAudioDevice { - void audioDeviceChanged(AppRTCAudioManager.AudioDevice newAudioDevice); - } - - - public interface CurrentCallStateCallback { - void onCallStarted(); - - void onCallStopped(); - - void onOpponentsListUpdated(ArrayList newUsers); - } - - private void notifyCallStateListenersCallStarted() { - for (CurrentCallStateCallback callback : currentCallStateCallbackList) { - callback.onCallStarted(); - } - } - - private void notifyCallStateListenersCallStopped() { - for (CurrentCallStateCallback callback : currentCallStateCallbackList) { - callback.onCallStopped(); - } - } - - private void notifyCallStateListenersNeedUpdateOpponentsList(final ArrayList newUsers) { - for (CurrentCallStateCallback callback : currentCallStateCallbackList) { - callback.onOpponentsListUpdated(newUsers); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/LoginActivity.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/LoginActivity.java deleted file mode 100644 index 6713f5aea..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/LoginActivity.java +++ /dev/null @@ -1,250 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.activities; - -import android.app.PendingIntent; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.text.Editable; -import android.text.TextUtils; -import android.text.TextWatcher; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.EditText; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.helper.Utils; -import com.quickblox.sample.core.utils.KeyboardUtils; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.services.CallService; -import com.quickblox.sample.groupchatwebrtc.utils.Consts; -import com.quickblox.sample.groupchatwebrtc.utils.QBEntityCallbackImpl; -import com.quickblox.sample.groupchatwebrtc.utils.UsersUtils; -import com.quickblox.sample.groupchatwebrtc.utils.ValidationUtils; -import com.quickblox.users.model.QBUser; - -import androidx.annotation.Nullable; - -public class LoginActivity extends BaseActivity { - - private String TAG = LoginActivity.class.getSimpleName(); - - private EditText userNameEditText; - private EditText chatRoomNameEditText; - - private QBUser userForSave; - - public static void start(Context context) { - Intent intent = new Intent(context, LoginActivity.class); - context.startActivity(intent); - } - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_login); - - initUI(); - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.root_view_login_activity); - } - - private void initUI() { - setActionBarTitle(R.string.title_login_activity); - userNameEditText = (EditText) findViewById(R.id.user_name); - userNameEditText.addTextChangedListener(new LoginEditTextWatcher(userNameEditText)); - - chatRoomNameEditText = (EditText) findViewById(R.id.chat_room_name); - chatRoomNameEditText.addTextChangedListener(new LoginEditTextWatcher(chatRoomNameEditText)); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - getMenuInflater().inflate(R.menu.activity_login, menu); - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - - switch (item.getItemId()) { - case R.id.menu_login_user_done: - if (isEnteredUserNameValid() && isEnteredRoomNameValid()) { - hideKeyboard(); - startSignUpNewUser(createUserWithEnteredData()); - } - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - private boolean isEnteredRoomNameValid() { - return ValidationUtils.isRoomNameValid(this, chatRoomNameEditText); - } - - private boolean isEnteredUserNameValid() { - return ValidationUtils.isUserNameValid(this, userNameEditText); - } - - private void hideKeyboard() { - KeyboardUtils.hideKeyboard(userNameEditText); - KeyboardUtils.hideKeyboard(chatRoomNameEditText); - } - - private void startSignUpNewUser(final QBUser newUser) { - showProgressDialog(R.string.dlg_creating_new_user); - requestExecutor.signUpNewUser(newUser, new QBEntityCallback() { - @Override - public void onSuccess(QBUser result, Bundle params) { - loginToChat(result); - } - - @Override - public void onError(QBResponseException e) { - if (e.getHttpStatusCode() == Consts.ERR_LOGIN_ALREADY_TAKEN_HTTP_STATUS) { - signInCreatedUser(newUser, true); - } else { - hideProgressDialog(); - Toaster.longToast(R.string.sign_up_error); - } - } - } - ); - } - - private void loginToChat(final QBUser qbUser) { - qbUser.setPassword(Consts.DEFAULT_USER_PASSWORD); - - userForSave = qbUser; - startLoginService(qbUser); - } - - private void startOpponentsActivity() { - OpponentsActivity.start(LoginActivity.this, false); - finish(); - } - - private void saveUserData(QBUser qbUser) { - SharedPrefsHelper sharedPrefsHelper = SharedPrefsHelper.getInstance(); - sharedPrefsHelper.save(Consts.PREF_CURREN_ROOM_NAME, qbUser.getTags().get(0)); - sharedPrefsHelper.saveQbUser(qbUser); - } - - private QBUser createUserWithEnteredData() { - return createQBUserWithCurrentData(String.valueOf(userNameEditText.getText()), - String.valueOf(chatRoomNameEditText.getText())); - } - - private QBUser createQBUserWithCurrentData(String userName, String chatRoomName) { - QBUser qbUser = null; - if (!TextUtils.isEmpty(userName) && !TextUtils.isEmpty(chatRoomName)) { - StringifyArrayList userTags = new StringifyArrayList<>(); - userTags.add(chatRoomName); - - qbUser = new QBUser(); - qbUser.setFullName(userName); - qbUser.setLogin(getCurrentDeviceId()); - qbUser.setPassword(Consts.DEFAULT_USER_PASSWORD); - qbUser.setTags(userTags); - } - - return qbUser; - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (resultCode == Consts.EXTRA_LOGIN_RESULT_CODE) { - hideProgressDialog(); - boolean isLoginSuccess = data.getBooleanExtra(Consts.EXTRA_LOGIN_RESULT, false); - String errorMessage = data.getStringExtra(Consts.EXTRA_LOGIN_ERROR_MESSAGE); - - if (isLoginSuccess) { - saveUserData(userForSave); - - signInCreatedUser(userForSave, false); - } else { - Toaster.longToast(getString(R.string.login_chat_login_error) + errorMessage); - userNameEditText.setText(userForSave.getFullName()); - chatRoomNameEditText.setText(userForSave.getTags().get(0)); - } - } - } - - private void signInCreatedUser(final QBUser user, final boolean deleteCurrentUser) { - requestExecutor.signInUser(user, new QBEntityCallbackImpl() { - @Override - public void onSuccess(QBUser result, Bundle params) { - if (deleteCurrentUser) { - removeAllUserData(result); - } else { - startOpponentsActivity(); - } - } - - @Override - public void onError(QBResponseException responseException) { - hideProgressDialog(); - Toaster.longToast(R.string.sign_up_error); - } - }); - } - - private void removeAllUserData(final QBUser user) { - requestExecutor.deleteCurrentUser(user.getId(), new QBEntityCallback() { - @Override - public void onSuccess(Void aVoid, Bundle bundle) { - UsersUtils.removeUserData(getApplicationContext()); - startSignUpNewUser(createUserWithEnteredData()); - } - - @Override - public void onError(QBResponseException e) { - hideProgressDialog(); - Toaster.longToast(R.string.sign_up_error); - } - }); - } - - private void startLoginService(QBUser qbUser) { - Intent tempIntent = new Intent(this, CallService.class); - PendingIntent pendingIntent = createPendingResult(Consts.EXTRA_LOGIN_RESULT_CODE, tempIntent, 0); - CallService.start(this, qbUser, pendingIntent); - } - - private String getCurrentDeviceId() { - return Utils.generateDeviceId(this); - } - - private class LoginEditTextWatcher implements TextWatcher { - private EditText editText; - - private LoginEditTextWatcher(EditText editText) { - this.editText = editText; - } - - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - - } - - @Override - public void onTextChanged(CharSequence s, int start, int before, int count) { - editText.setError(null); - } - - @Override - public void afterTextChanged(Editable s) { - - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/OpponentsActivity.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/OpponentsActivity.java deleted file mode 100755 index 058ee1cb2..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/OpponentsActivity.java +++ /dev/null @@ -1,332 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.activities; - -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.util.Log; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.widget.ListView; - -import com.crashlytics.android.Crashlytics; -import com.quickblox.chat.QBChatService; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.messages.services.SubscribeService; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.adapters.OpponentsAdapter; -import com.quickblox.sample.groupchatwebrtc.db.QbUsersDbManager; -import com.quickblox.sample.groupchatwebrtc.services.CallService; -import com.quickblox.sample.groupchatwebrtc.utils.CollectionsUtils; -import com.quickblox.sample.groupchatwebrtc.utils.Consts; -import com.quickblox.sample.groupchatwebrtc.utils.PermissionsChecker; -import com.quickblox.sample.groupchatwebrtc.utils.PushNotificationSender; -import com.quickblox.sample.groupchatwebrtc.utils.UsersUtils; -import com.quickblox.sample.groupchatwebrtc.utils.WebRtcSessionManager; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.QBRTCClient; -import com.quickblox.videochat.webrtc.QBRTCSession; -import com.quickblox.videochat.webrtc.QBRTCTypes; - -import java.util.ArrayList; -import java.util.concurrent.TimeUnit; - -import io.fabric.sdk.android.Fabric; - -/** - * QuickBlox team - */ -public class OpponentsActivity extends BaseActivity { - private static final String TAG = OpponentsActivity.class.getSimpleName(); - - private static final long ON_ITEM_CLICK_DELAY = TimeUnit.SECONDS.toMillis(10); - - private OpponentsAdapter opponentsAdapter; - private ListView opponentsListView; - private QBUser currentUser; - private ArrayList currentOpponentsList; - private QbUsersDbManager dbManager; - private boolean isRunForCall; - private WebRtcSessionManager webRtcSessionManager; - - private PermissionsChecker checker; - - public static void start(Context context, boolean isRunForCall) { - Intent intent = new Intent(context, OpponentsActivity.class); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); - intent.putExtra(Consts.EXTRA_IS_STARTED_FOR_CALL, isRunForCall); - context.startActivity(intent); - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Fabric.with(this, new Crashlytics()); - setContentView(R.layout.activity_opponents); - - initFields(); - - initDefaultActionBar(); - - initUi(); - - startLoadUsers(); - - if (isRunForCall && webRtcSessionManager.getCurrentSession() != null) { - CallActivity.start(OpponentsActivity.this, true); - } - - checker = new PermissionsChecker(getApplicationContext()); - } - - @Override - protected void onResume() { - super.onResume(); - initUsersList(); - } - - @Override - protected void onNewIntent(Intent intent) { - super.onNewIntent(intent); - if (intent.getExtras() != null) { - isRunForCall = intent.getExtras().getBoolean(Consts.EXTRA_IS_STARTED_FOR_CALL); - if (isRunForCall && webRtcSessionManager.getCurrentSession() != null) { - CallActivity.start(OpponentsActivity.this, true); - } - } - } - - @Override - protected View getSnackbarAnchorView() { - return findViewById(R.id.list_opponents); - } - - private void startPermissionsActivity(boolean checkOnlyAudio) { - PermissionsActivity.startActivity(this, checkOnlyAudio, Consts.PERMISSIONS); - } - - private void initFields() { - Bundle extras = getIntent().getExtras(); - if (extras != null) { - isRunForCall = extras.getBoolean(Consts.EXTRA_IS_STARTED_FOR_CALL); - } - - currentUser = sharedPrefsHelper.getQbUser(); - dbManager = QbUsersDbManager.getInstance(getApplicationContext()); - webRtcSessionManager = WebRtcSessionManager.getInstance(getApplicationContext()); - } - - private void startLoadUsers() { - showProgressDialog(R.string.dlg_loading_opponents); - String currentRoomName = SharedPrefsHelper.getInstance().get(Consts.PREF_CURREN_ROOM_NAME); - requestExecutor.loadUsersByTag(currentRoomName, new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList result, Bundle params) { - hideProgressDialog(); - dbManager.saveAllUsers(result, true); - initUsersList(); - } - - @Override - public void onError(QBResponseException responseException) { - hideProgressDialog(); - showErrorSnackbar(R.string.loading_users_error, responseException, new View.OnClickListener() { - @Override - public void onClick(View v) { - startLoadUsers(); - } - }); - } - }); - } - - private void initUi() { - opponentsListView = (ListView) findViewById(R.id.list_opponents); - } - - private boolean isCurrentOpponentsListActual(ArrayList actualCurrentOpponentsList) { - boolean equalActual = actualCurrentOpponentsList.retainAll(currentOpponentsList); - boolean equalCurrent = currentOpponentsList.retainAll(actualCurrentOpponentsList); - return !equalActual && !equalCurrent; - } - - private void initUsersList() { - //checking whether currentOpponentsList is actual, if yes - return - if (currentOpponentsList != null) { - ArrayList actualCurrentOpponentsList = dbManager.getAllUsers(); - actualCurrentOpponentsList.remove(sharedPrefsHelper.getQbUser()); - if (isCurrentOpponentsListActual(actualCurrentOpponentsList)) { - return; - } - } - proceedInitUsersList(); - } - - private void proceedInitUsersList() { - currentOpponentsList = dbManager.getAllUsers(); - Log.d(TAG, "proceedInitUsersList currentOpponentsList= " + currentOpponentsList); - currentOpponentsList.remove(sharedPrefsHelper.getQbUser()); - opponentsAdapter = new OpponentsAdapter(this, currentOpponentsList); - opponentsAdapter.setSelectedItemsCountsChangedListener(new OpponentsAdapter.SelectedItemsCountsChangedListener() { - @Override - public void onCountSelectedItemsChanged(int count) { - updateActionBar(count); - } - }); - - opponentsListView.setAdapter(opponentsAdapter); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - if (opponentsAdapter != null && !opponentsAdapter.getSelectedItems().isEmpty()) { - getMenuInflater().inflate(R.menu.activity_selected_opponents, menu); - } else { - getMenuInflater().inflate(R.menu.activity_opponents, menu); - } - - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - - switch (id) { - case R.id.update_opponents_list: - startLoadUsers(); - return true; - - case R.id.settings: - showSettings(); - return true; - - case R.id.log_out: - logOut(); - return true; - - case R.id.start_video_call: - if (isLoggedInChat()) { - startCall(true); - } - if (checker.lacksPermissions(Consts.PERMISSIONS)) { - startPermissionsActivity(false); - } - return true; - - case R.id.start_audio_call: - if (isLoggedInChat()) { - startCall(false); - } - if (checker.lacksPermissions(Consts.PERMISSIONS[1])) { - startPermissionsActivity(true); - } - return true; - - default: - return super.onOptionsItemSelected(item); - } - } - - private boolean isLoggedInChat() { - if (!QBChatService.getInstance().isLoggedIn()) { - Toaster.shortToast(R.string.dlg_signal_error); - tryReLoginToChat(); - return false; - } - return true; - } - - private void tryReLoginToChat() { - if (sharedPrefsHelper.hasQbUser()) { - QBUser qbUser = sharedPrefsHelper.getQbUser(); - CallService.start(this, qbUser); - } - } - - private void showSettings() { - SettingsActivity.start(this); - } - - private void startCall(boolean isVideoCall) { - if (opponentsAdapter.getSelectedItems().size() > Consts.MAX_OPPONENTS_COUNT) { - Toaster.longToast(String.format(getString(R.string.error_max_opponents_count), - Consts.MAX_OPPONENTS_COUNT)); - return; - } - - Log.d(TAG, "startCall()"); - ArrayList opponentsList = CollectionsUtils.getIdsSelectedOpponents(opponentsAdapter.getSelectedItems()); - QBRTCTypes.QBConferenceType conferenceType = isVideoCall - ? QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO - : QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_AUDIO; - - QBRTCClient qbrtcClient = QBRTCClient.getInstance(getApplicationContext()); - - QBRTCSession newQbRtcSession = qbrtcClient.createNewSessionWithOpponents(opponentsList, conferenceType); - - WebRtcSessionManager.getInstance(this).setCurrentSession(newQbRtcSession); - - PushNotificationSender.sendPushMessage(opponentsList, currentUser.getFullName()); - - CallActivity.start(this, false); - Log.d(TAG, "conferenceType = " + conferenceType); - } - - private void initActionBarWithSelectedUsers(int countSelectedUsers) { - setActionBarTitle(String.format(getString( - countSelectedUsers > 1 - ? R.string.tile_many_users_selected - : R.string.title_one_user_selected), - countSelectedUsers)); - } - - private void updateActionBar(int countSelectedUsers) { - if (countSelectedUsers < 1) { - initDefaultActionBar(); - } else { - removeActionbarSubTitle(); - initActionBarWithSelectedUsers(countSelectedUsers); - } - - invalidateOptionsMenu(); - } - - private void logOut() { - unsubscribeFromPushes(); - startLogoutCommand(); - removeAllUserData(); - startLoginActivity(); - } - - private void startLogoutCommand() { - CallService.logout(this); - } - - private void unsubscribeFromPushes() { - SubscribeService.unSubscribeFromPushes(this); - } - - private void removeAllUserData() { - UsersUtils.removeUserData(getApplicationContext()); - requestExecutor.deleteCurrentUser(currentUser.getId(), new QBEntityCallback() { - @Override - public void onSuccess(Void aVoid, Bundle bundle) { - Log.d(TAG, "Current user was deleted from QB"); - } - - @Override - public void onError(QBResponseException e) { - Log.e(TAG, "Current user wasn't deleted from QB " + e); - } - }); - } - - private void startLoginActivity() { - LoginActivity.start(this); - finish(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/PermissionsActivity.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/PermissionsActivity.java deleted file mode 100644 index c9e17fe1a..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/PermissionsActivity.java +++ /dev/null @@ -1,134 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.activities; - -import android.app.Activity; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.os.Bundle; - -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.utils.PermissionsChecker; - -import androidx.annotation.NonNull; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.app.ActivityCompat; - -public class PermissionsActivity extends AppCompatActivity { - - private static final int PERMISSION_REQUEST_CODE = 0; - private static final String EXTRA_PERMISSIONS = "extraPermissions"; - private static final String CHECK_ONLY_AUDIO = "checkAudio"; - - private enum permissionFeatures { - CAMERA, - MICROPHONE - } - - private PermissionsChecker checker; - private boolean requiresCheck; - - public static void startActivity(Activity activity, boolean checkOnlyAudio, String... permissions) { - Intent intent = new Intent(activity, PermissionsActivity.class); - intent.putExtra(EXTRA_PERMISSIONS, permissions); - intent.putExtra(CHECK_ONLY_AUDIO, checkOnlyAudio); - ActivityCompat.startActivity(activity, intent, null); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - if (getIntent() == null || !getIntent().hasExtra(EXTRA_PERMISSIONS)) { - throw new RuntimeException("This Activity needs to be launched using the static startActivityForResult() method."); - } - setContentView(R.layout.activity_permissions); - - checker = new PermissionsChecker(this); - requiresCheck = true; - } - - @Override - protected void onResume() { - super.onResume(); - if (requiresCheck) { - checkPermissions(); - } else { - requiresCheck = true; - } - } - - private void checkPermissions() { - String[] permissions = getPermissions(); - boolean checkOnlyAudio = getCheckOnlyAudio(); - - if (checkOnlyAudio) { - checkPermissionAudio(permissions[1]); - } else { - checkPermissionAudioVideo(permissions); - } - } - - private void checkPermissionAudio(String audioPermission) { - if (checker.lacksPermissions(audioPermission)) { - requestPermissions(audioPermission); - } else { - allPermissionsGranted(); - } - } - - private void checkPermissionAudioVideo(String[] permissions) { - if (checker.lacksPermissions(permissions)) { - requestPermissions(permissions); - } else { - allPermissionsGranted(); - } - } - - private String[] getPermissions() { - return getIntent().getStringArrayExtra(EXTRA_PERMISSIONS); - } - - private boolean getCheckOnlyAudio() { - return getIntent().getBooleanExtra(CHECK_ONLY_AUDIO, false); - } - - private void requestPermissions(String... permissions) { - ActivityCompat.requestPermissions(this, permissions, PERMISSION_REQUEST_CODE); - } - - private void allPermissionsGranted() { - finish(); - } - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - if (requestCode == PERMISSION_REQUEST_CODE && hasAllPermissionsGranted(grantResults)) { - requiresCheck = true; - allPermissionsGranted(); - } else { - requiresCheck = false; - showDeniedResponse(grantResults); - finish(); - } - } - - private void showDeniedResponse(int[] grantResults) { - if (grantResults.length > 1) { - for (int i = 0; i < grantResults.length; i++) { - if (grantResults[i] != 0) { - Toaster.longToast(getString(R.string.permission_unavailable, permissionFeatures.values()[i])); - } - } - } else { - Toaster.longToast(getString(R.string.permission_unavailable, permissionFeatures.MICROPHONE)); - } - } - - private boolean hasAllPermissionsGranted(@NonNull int[] grantResults) { - for (int grantResult : grantResults) { - if (grantResult == PackageManager.PERMISSION_DENIED) { - return false; - } - } - return true; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/SettingsActivity.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/SettingsActivity.java deleted file mode 100755 index 4f0a998c1..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/SettingsActivity.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.activities; - -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.EditTextPreference; -import android.preference.Preference; -import android.view.View; - -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.fragments.SettingsFragment; -import com.quickblox.sample.groupchatwebrtc.view.SeekBarPreference; - -/** - * QuickBlox team - */ -public class SettingsActivity extends BaseActivity implements SharedPreferences.OnSharedPreferenceChangeListener { - - - private static final int MAX_VIDEO_START_BITRATE = 2000; - private String bitrateStringKey; - private SettingsFragment settingsFragment; - - public static void start(Context context) { - Intent intent = new Intent(context, SettingsActivity.class); - context.startActivity(intent); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - initActionBar(); - - // Display the fragment as the main content. - settingsFragment = new SettingsFragment(); - getFragmentManager().beginTransaction() - .replace(android.R.id.content, settingsFragment) - .commit(); - bitrateStringKey = getString(R.string.pref_startbitratevalue_key); - } - - private void initActionBar() { - actionBar.setTitle(R.string.actionbar_title_settings); - } - - @Override - protected View getSnackbarAnchorView() { - return null; - } - - @Override - protected void onResume() { - super.onResume(); - SharedPreferences sharedPreferences = - settingsFragment.getPreferenceScreen().getSharedPreferences(); - sharedPreferences.registerOnSharedPreferenceChangeListener(this); - } - - @Override - protected void onPause() { - super.onPause(); - SharedPreferences sharedPreferences = - settingsFragment.getPreferenceScreen().getSharedPreferences(); - sharedPreferences.unregisterOnSharedPreferenceChangeListener(this); - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - if (key.equals(bitrateStringKey)) { - int bitrateValue = sharedPreferences.getInt(bitrateStringKey, Integer.parseInt( - getString(R.string.pref_startbitratevalue_default))); - if (bitrateValue == 0) { - setDefaultstartingBitrate(sharedPreferences); - return; - } - int startBitrate = bitrateValue; - if (startBitrate > MAX_VIDEO_START_BITRATE) { - Toaster.longToast("Max value is:" + MAX_VIDEO_START_BITRATE); - setDefaultstartingBitrate(sharedPreferences); - } - } - } - - private void setDefaultstartingBitrate(SharedPreferences sharedPreferences) { - SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.putInt(bitrateStringKey, - Integer.parseInt(getString(R.string.pref_startbitratevalue_default))); - editor.apply(); - updateSummary(sharedPreferences, bitrateStringKey); - } - - private void updateSummary(SharedPreferences sharedPreferences, String key) { - Preference updatedPref = settingsFragment.findPreference(key); - // Set summary to be the user-description for the selected value - if (updatedPref instanceof EditTextPreference) { - ((EditTextPreference) updatedPref).setText(sharedPreferences.getString(key, "")); - } else if (updatedPref instanceof SeekBarPreference) { - updatedPref.setSummary(String.valueOf(sharedPreferences.getInt(key, 0))); - } else { - updatedPref.setSummary(sharedPreferences.getString(key, "")); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/SplashActivity.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/SplashActivity.java deleted file mode 100644 index dd21b7a4d..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/activities/SplashActivity.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.activities; - -import android.os.Bundle; - -import com.quickblox.sample.core.ui.activity.CoreSplashActivity; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.services.CallService; -import com.quickblox.users.model.QBUser; - -public class SplashActivity extends CoreSplashActivity { - - private SharedPrefsHelper sharedPrefsHelper; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - sharedPrefsHelper = SharedPrefsHelper.getInstance(); - - if (sharedPrefsHelper.hasQbUser()) { - startLoginService(sharedPrefsHelper.getQbUser()); - startOpponentsActivity(); - return; - } - - if (checkConfigsWithSnackebarError()) { - proceedToTheNextActivityWithDelay(); - } - } - - @Override - protected String getAppName() { - return getString(R.string.splash_app_title); - } - - @Override - protected void proceedToTheNextActivity() { - LoginActivity.start(this); - finish(); - } - - protected void startLoginService(QBUser qbUser) { - CallService.start(this, qbUser); - } - - private void startOpponentsActivity() { - OpponentsActivity.start(SplashActivity.this, false); - finish(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/adapters/OpponentsAdapter.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/adapters/OpponentsAdapter.java deleted file mode 100755 index e748aee13..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/adapters/OpponentsAdapter.java +++ /dev/null @@ -1,82 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.adapters; - -import android.content.Context; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.TextView; - -import com.quickblox.sample.core.ui.adapter.BaseSelectableListAdapter; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.core.utils.UiUtils; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.users.model.QBUser; - -import java.util.List; - -/** - * QuickBlox team - */ -public class OpponentsAdapter extends BaseSelectableListAdapter { - - private SelectedItemsCountsChangedListener selectedItemsCountChangedListener; - - public OpponentsAdapter(Context context, List users) { - super(context, users); - } - - public View getView(final int position, View convertView, final ViewGroup parent) { - - final ViewHolder holder; - - if (convertView == null) { - convertView = inflater.inflate(R.layout.item_opponents_list, null); - holder = new ViewHolder(); - holder.opponentIcon = (ImageView) convertView.findViewById(R.id.image_opponent_icon); - holder.opponentName = (TextView) convertView.findViewById(R.id.opponentsName); - - convertView.setTag(holder); - } else { - holder = (ViewHolder) convertView.getTag(); - } - - final QBUser user = getItem(position); - - if (user != null) { - holder.opponentName.setText(user.getFullName()); - - if (selectedItems.contains(user)) { - convertView.setBackgroundResource(R.color.background_color_selected_user_item); - holder.opponentIcon.setBackgroundDrawable( - UiUtils.getColoredCircleDrawable(ResourceUtils.getColor(R.color.icon_background_color_selected_user))); - holder.opponentIcon.setImageResource(R.drawable.ic_checkmark); - } else { - convertView.setBackgroundResource(R.color.background_color_normal_user_item); - holder.opponentIcon.setBackgroundDrawable(UiUtils.getColorCircleDrawable(user.getId())); - holder.opponentIcon.setImageResource(R.drawable.ic_person); - } - } - - convertView.setOnClickListener(v -> { - toggleSelection(position); - selectedItemsCountChangedListener.onCountSelectedItemsChanged(selectedItems.size()); - }); - - return convertView; - } - - public static class ViewHolder { - ImageView opponentIcon; - TextView opponentName; - } - - public void setSelectedItemsCountsChangedListener(SelectedItemsCountsChangedListener selectedItemsCountsChanged) { - if (selectedItemsCountsChanged != null) { - this.selectedItemsCountChangedListener = selectedItemsCountsChanged; - } - } - - public interface SelectedItemsCountsChangedListener { - void onCountSelectedItemsChanged(int count); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/adapters/OpponentsFromCallAdapter.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/adapters/OpponentsFromCallAdapter.java deleted file mode 100755 index 27b19fd49..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/adapters/OpponentsFromCallAdapter.java +++ /dev/null @@ -1,180 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.adapters; - -import android.content.Context; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.View.OnClickListener; -import android.view.ViewGroup; -import android.widget.FrameLayout; -import android.widget.ProgressBar; -import android.widget.TextView; - -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.utils.QBRTCSessionUtils; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.QBRTCSession; -import com.quickblox.videochat.webrtc.QBRTCTypes; -import com.quickblox.videochat.webrtc.view.QBRTCSurfaceView; - -import java.util.List; - -import androidx.recyclerview.widget.RecyclerView; - -/** - * QuickBlox team - */ -public class OpponentsFromCallAdapter extends RecyclerView.Adapter { - - private static final String TAG = OpponentsFromCallAdapter.class.getSimpleName(); - private final int itemHeight; - private final int itemWidth; - - private Context context; - private QBRTCSession session; - private List opponents; - private LayoutInflater inflater; - private OnAdapterEventListener adapterListener; - - - public OpponentsFromCallAdapter(Context context, QBRTCSession session, List users, int width, int height) { - this.context = context; - this.session = session; - this.opponents = users; - this.inflater = LayoutInflater.from(context); - itemWidth = width; - itemHeight = height; - Log.d(TAG, "item width=" + itemWidth + ", item height=" + itemHeight); - } - - public void setAdapterListener(OnAdapterEventListener adapterListener) { - this.adapterListener = adapterListener; - } - - @Override - public int getItemCount() { - return opponents.size(); - } - - public Integer getItem(int position) { - return opponents.get(position).getId(); - } - - public List getOpponents() { - return opponents; - } - - public void removeItem(int index) { - opponents.remove(index); - notifyItemRemoved(index); - notifyItemRangeChanged(index, opponents.size()); - } - - public void replaceUsers(int position, QBUser qbUser) { - opponents.set(position, qbUser); - notifyItemChanged(position); - } - - @Override - public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View v = inflater.inflate(R.layout.list_item_opponent_from_call, null); - v.findViewById(R.id.innerLayout).setLayoutParams(new FrameLayout.LayoutParams(itemWidth, itemHeight)); - - ViewHolder vh = new ViewHolder(v); - vh.setListener(new ViewHolder.ViewHolderClickListener() { - @Override - public void onShowOpponent(int callerId) { - adapterListener.onItemClick(callerId); - } - }); - vh.showOpponentView(true); - return vh; - } - - @Override - public void onBindViewHolder(ViewHolder holder, int position) { - final QBUser user = opponents.get(position); - int userID = user.getId(); - holder.opponentsName.setText(user.getFullName()); - - holder.getOpponentView().setId(user.getId()); - holder.setUserId(userID); - QBRTCTypes.QBRTCConnectionState state = session.getPeerChannel(userID).getState(); - Log.d(TAG, "state ordinal= " + state.ordinal()); - holder.setStatus(context.getResources().getString(QBRTCSessionUtils.getStatusDescriptionResource(state))); - if (position == (opponents.size() - 1)) { - adapterListener.OnBindLastViewHolder(holder, position); - } - } - - @Override - public long getItemId(int position) { - return position; - } - - public interface OnAdapterEventListener { - void OnBindLastViewHolder(ViewHolder holder, int position); - - void onItemClick(int position); - } - - public static class ViewHolder extends RecyclerView.ViewHolder implements OnClickListener { - TextView opponentsName; - TextView connectionStatus; - QBRTCSurfaceView opponentView; - ProgressBar progressBar; - private int userId; - private ViewHolderClickListener viewHolderClickListener; - - public ViewHolder(View itemView) { - super(itemView); - itemView.setOnClickListener(this); - opponentsName = (TextView) itemView.findViewById(R.id.opponentName); - connectionStatus = (TextView) itemView.findViewById(R.id.connectionStatus); - opponentView = (QBRTCSurfaceView) itemView.findViewById(R.id.opponentView); - progressBar = (ProgressBar) itemView.findViewById(R.id.progress_bar_adapter); - } - - private void setListener(ViewHolderClickListener viewHolderClickListener) { - this.viewHolderClickListener = viewHolderClickListener; - } - - public void setStatus(String status) { - connectionStatus.setText(status); - } - - public void setUserName(String userName) { - opponentsName.setText(userName); - } - - public void setUserId(int userId) { - this.userId = userId; - } - - public int getUserId() { - return userId; - } - - public ProgressBar getProgressBar() { - return progressBar; - } - - public QBRTCSurfaceView getOpponentView() { - return opponentView; - } - - public void showOpponentView(boolean show) { - Log.d("OpponentsAdapter", "show? " + show); - opponentView.setVisibility(show ? View.VISIBLE : View.GONE); - } - - @Override - public void onClick(View v) { - viewHolderClickListener.onShowOpponent(getAdapterPosition()); - } - - public interface ViewHolderClickListener { - void onShowOpponent(int callerId); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/db/DbHelper.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/db/DbHelper.java deleted file mode 100644 index 9b7c13018..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/db/DbHelper.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.db; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; -import android.util.Log; - - -public class DbHelper extends SQLiteOpenHelper { - - private String TAG = DbHelper.class.getSimpleName(); - - private static final String DB_NAME = "groupchatwebrtcDB"; - - public static final String DB_TABLE_NAME = "users"; - public static final String DB_COLUMN_ID = "ID"; - public static final String DB_COLUMN_USER_FULL_NAME = "userFullName"; - public static final String DB_COLUMN_USER_LOGIN = "userLogin"; - public static final String DB_COLUMN_USER_ID = "userID"; - public static final String DB_COLUMN_USER_PASSWORD = "userPass"; - public static final String DB_COLUMN_USER_TAG = "userTag"; - - - public DbHelper(Context context) { - super(context, DB_NAME, null, 1); - } - - @Override - public void onCreate(SQLiteDatabase db) { - Log.d(TAG, "--- onCreate database ---"); - db.execSQL("create table " + DB_TABLE_NAME + " (" - + DB_COLUMN_ID + " integer primary key autoincrement," - + DB_COLUMN_USER_ID + " integer," - + DB_COLUMN_USER_LOGIN + " text," - + DB_COLUMN_USER_PASSWORD + " text," - + DB_COLUMN_USER_FULL_NAME + " text," - + DB_COLUMN_USER_TAG + " text" - + ");"); - } - - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/db/QbUsersDbManager.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/db/QbUsersDbManager.java deleted file mode 100644 index 5a365c83c..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/db/QbUsersDbManager.java +++ /dev/null @@ -1,147 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.db; - -import android.content.ContentValues; -import android.content.Context; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.util.Log; - -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - - -public class QbUsersDbManager { - private static String TAG = QbUsersDbManager.class.getSimpleName(); - - private static QbUsersDbManager instance; - private Context mContext; - - private QbUsersDbManager(Context context) { - this.mContext = context; - } - - public static QbUsersDbManager getInstance(Context context) { - if (instance == null) { - instance = new QbUsersDbManager(context); - } - - return instance; - } - - public ArrayList getAllUsers() { - ArrayList allUsers = new ArrayList<>(); - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - Cursor c = db.query(DbHelper.DB_TABLE_NAME, null, null, null, null, null, null); - - if (c.moveToFirst()) { - int userIdColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_ID); - int userLoginColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_LOGIN); - int userPassColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_PASSWORD); - int userFullNameColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_FULL_NAME); - int userTagColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_TAG); - - do { - QBUser qbUser = new QBUser(); - - qbUser.setFullName(c.getString(userFullNameColIndex)); - qbUser.setLogin(c.getString(userLoginColIndex)); - qbUser.setId(c.getInt(userIdColIndex)); - qbUser.setPassword(c.getString(userPassColIndex)); - - StringifyArrayList tags = new StringifyArrayList<>(); - tags.add(c.getString(userTagColIndex)); - qbUser.setTags(tags); - - allUsers.add(qbUser); - } while (c.moveToNext()); - } - - c.close(); - dbHelper.close(); - - return allUsers; - } - - public QBUser getUserById(Integer userId) { - QBUser qbUser = null; - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - Cursor c = db.query(DbHelper.DB_TABLE_NAME, null, null, null, null, null, null); - - if (c.moveToFirst()) { - int userIdColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_ID); - int userLoginColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_LOGIN); - int userPassColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_PASSWORD); - int userFullNameColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_FULL_NAME); - int userTagColIndex = c.getColumnIndex(DbHelper.DB_COLUMN_USER_TAG); - - do { - if (c.getInt(userIdColIndex) == userId) { - qbUser = new QBUser(); - qbUser.setFullName(c.getString(userFullNameColIndex)); - qbUser.setLogin(c.getString(userLoginColIndex)); - qbUser.setId(c.getInt(userIdColIndex)); - qbUser.setPassword(c.getString(userPassColIndex)); - - StringifyArrayList tags = new StringifyArrayList<>(); - tags.add(c.getString(userTagColIndex).split(",")); - qbUser.setTags(tags); - break; - } - } while (c.moveToNext()); - } - - c.close(); - dbHelper.close(); - - return qbUser; - } - - public void saveAllUsers(ArrayList allUsers, boolean needRemoveOldData) { - if (needRemoveOldData) { - clearDB(); - } - - for (QBUser qbUser : allUsers) { - saveUser(qbUser); - } - Log.d(TAG, "saveAllUsers"); - } - - public void saveUser(QBUser qbUser) { - ContentValues cv = new ContentValues(); - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - cv.put(DbHelper.DB_COLUMN_USER_FULL_NAME, qbUser.getFullName()); - cv.put(DbHelper.DB_COLUMN_USER_LOGIN, qbUser.getLogin()); - cv.put(DbHelper.DB_COLUMN_USER_ID, qbUser.getId()); - cv.put(DbHelper.DB_COLUMN_USER_PASSWORD, qbUser.getPassword()); - cv.put(DbHelper.DB_COLUMN_USER_TAG, qbUser.getTags().getItemsAsString()); - - db.insert(DbHelper.DB_TABLE_NAME, null, cv); - dbHelper.close(); - } - - public void clearDB() { - DbHelper dbHelper = new DbHelper(mContext); - SQLiteDatabase db = dbHelper.getWritableDatabase(); - db.delete(DbHelper.DB_TABLE_NAME, null, null); - dbHelper.close(); - } - - public ArrayList getUsersByIds(List usersIds) { - ArrayList qbUsers = new ArrayList<>(); - - for (Integer userId : usersIds) { - if (getUserById(userId) != null) { - qbUsers.add(getUserById(userId)); - } - } - - return qbUsers; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/AudioConversationFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/AudioConversationFragment.java deleted file mode 100644 index 5cb304907..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/AudioConversationFragment.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Chronometer; -import android.widget.ImageView; -import android.widget.TextView; -import android.widget.ToggleButton; - -import com.quickblox.sample.core.utils.UiUtils; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.activities.CallActivity; -import com.quickblox.sample.groupchatwebrtc.utils.CollectionsUtils; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.AppRTCAudioManager; - -import java.util.ArrayList; - -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; - - -public class AudioConversationFragment extends BaseConversationFragment implements CallActivity.OnChangeAudioDevice { - private static final String TAG = AudioConversationFragment.class.getSimpleName(); - - private ToggleButton audioSwitchToggleButton; - private TextView alsoOnCallText; - private TextView firstOpponentNameTextView; - private TextView otherOpponentsTextView; - private boolean headsetPlugged; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - } - - @Override - public void onStart() { - super.onStart(); - conversationFragmentCallbackListener.addOnChangeAudioDeviceCallback(this); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - return super.onCreateView(inflater, container, savedInstanceState); - } - - @Override - protected void configureOutgoingScreen() { - outgoingOpponentsRelativeLayout.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white)); - allOpponentsTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_outgoing_opponents_names_audio_call)); - ringingTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_call_type)); - } - - @Override - protected void configureToolbar() { - toolbar.setVisibility(View.VISIBLE); - toolbar.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white)); - toolbar.setTitleTextColor(ContextCompat.getColor(getActivity(), R.color.toolbar_title_color)); - toolbar.setSubtitleTextColor(ContextCompat.getColor(getActivity(), R.color.toolbar_subtitle_color)); - } - - @Override - protected void configureActionBar() { - actionBar.setTitle(currentUser.getTags().get(0)); - actionBar.setSubtitle(String.format(getString(R.string.subtitle_text_logged_in_as), currentUser.getFullName())); - } - - @Override - protected void initViews(View view) { - super.initViews(view); - timerChronometer = (Chronometer) view.findViewById(R.id.chronometer_timer_audio_call); - - ImageView firstOpponentAvatarImageView = (ImageView) view.findViewById(R.id.image_caller_avatar); - firstOpponentAvatarImageView.setBackgroundDrawable(UiUtils.getColorCircleDrawable(opponents.get(0).getId())); - - alsoOnCallText = (TextView) view.findViewById(R.id.text_also_on_call); - setVisibilityAlsoOnCallTextView(); - - firstOpponentNameTextView = (TextView) view.findViewById(R.id.text_caller_name); - firstOpponentNameTextView.setText(opponents.get(0).getFullName()); - - otherOpponentsTextView = (TextView) view.findViewById(R.id.text_other_inc_users); - otherOpponentsTextView.setText(getOtherOpponentsNames()); - - audioSwitchToggleButton = (ToggleButton) view.findViewById(R.id.toggle_speaker); - audioSwitchToggleButton.setVisibility(View.VISIBLE); - - actionButtonsEnabled(false); - } - - private void setVisibilityAlsoOnCallTextView() { - if (opponents.size() < 2) { - alsoOnCallText.setVisibility(View.INVISIBLE); - } - } - - private String getOtherOpponentsNames() { - ArrayList otherOpponents = new ArrayList<>(); - otherOpponents.addAll(opponents); - otherOpponents.remove(0); - - return CollectionsUtils.makeStringFromUsersFullNames(otherOpponents); - } - - @Override - public void onStop() { - super.onStop(); - conversationFragmentCallbackListener.removeOnChangeAudioDeviceCallback(this); - } - - @Override - protected void initButtonsListener() { - super.initButtonsListener(); - - audioSwitchToggleButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - conversationFragmentCallbackListener.onSwitchAudio(); - } - }); - } - - @Override - protected void actionButtonsEnabled(boolean inability) { - super.actionButtonsEnabled(inability); - audioSwitchToggleButton.setActivated(inability); - } - - @Override - int getFragmentLayout() { - return R.layout.fragment_audio_conversation; - } - - @Override - public void onOpponentsListUpdated(ArrayList newUsers) { - super.onOpponentsListUpdated(newUsers); - firstOpponentNameTextView.setText(opponents.get(0).getFullName()); - otherOpponentsTextView.setText(getOtherOpponentsNames()); - } - - @Override - public void audioDeviceChanged(AppRTCAudioManager.AudioDevice newAudioDevice) { - audioSwitchToggleButton.setChecked(newAudioDevice != AppRTCAudioManager.AudioDevice.SPEAKER_PHONE); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/BaseConversationFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/BaseConversationFragment.java deleted file mode 100644 index 1cd85e859..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/BaseConversationFragment.java +++ /dev/null @@ -1,260 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.app.Activity; -import android.os.Bundle; -import android.os.SystemClock; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.Chronometer; -import android.widget.CompoundButton; -import android.widget.ImageButton; -import android.widget.TextView; -import android.widget.ToggleButton; - -import com.quickblox.chat.QBChatService; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.activities.CallActivity; -import com.quickblox.sample.groupchatwebrtc.db.QbUsersDbManager; -import com.quickblox.sample.groupchatwebrtc.utils.CollectionsUtils; -import com.quickblox.sample.groupchatwebrtc.utils.Consts; -import com.quickblox.sample.groupchatwebrtc.utils.UsersUtils; -import com.quickblox.sample.groupchatwebrtc.utils.WebRtcSessionManager; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.QBRTCSession; -import com.quickblox.videochat.webrtc.QBRTCTypes; - -import java.util.ArrayList; - -import androidx.annotation.Nullable; - -public abstract class BaseConversationFragment extends BaseToolBarFragment implements CallActivity.CurrentCallStateCallback { - - private static final String TAG = BaseConversationFragment.class.getSimpleName(); - protected QbUsersDbManager dbManager; - protected WebRtcSessionManager sessionManager; - private boolean isIncomingCall; - protected QBRTCSession currentSession; - protected ArrayList opponents; - private QBRTCTypes.QBConferenceType qbConferenceType; - - private ToggleButton micToggleVideoCall; - private ImageButton handUpVideoCall; - protected ConversationFragmentCallbackListener conversationFragmentCallbackListener; - protected Chronometer timerChronometer; - private boolean isMessageProcessed; - protected boolean isStarted; - protected View outgoingOpponentsRelativeLayout; - protected TextView allOpponentsTextView; - protected TextView ringingTextView; - protected QBUser currentUser; - - public static BaseConversationFragment newInstance(BaseConversationFragment baseConversationFragment, boolean isIncomingCall) { - Log.d(TAG, "isIncomingCall = " + isIncomingCall); - Bundle args = new Bundle(); - args.putBoolean(Consts.EXTRA_IS_INCOMING_CALL, isIncomingCall); - - baseConversationFragment.setArguments(args); - - return baseConversationFragment; - } - - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - - try { - conversationFragmentCallbackListener = (ConversationFragmentCallbackListener) activity; - } catch (ClassCastException e) { - throw new ClassCastException(activity.toString() - + " must implement ConversationFragmentCallbackListener"); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - conversationFragmentCallbackListener.addCurrentCallStateCallback(this); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = super.onCreateView(inflater, container, savedInstanceState); - sessionManager = WebRtcSessionManager.getInstance(getActivity()); - currentSession = sessionManager.getCurrentSession(); - if (currentSession == null) { - Log.d(TAG, "currentSession = null onCreateView"); - return view; - } - initFields(); - initViews(view); - initActionBar(); - initButtonsListener(); - prepareAndShowOutgoingScreen(); - - return view; - } - - private void prepareAndShowOutgoingScreen() { - configureOutgoingScreen(); - allOpponentsTextView.setText(CollectionsUtils.makeStringFromUsersFullNames(opponents)); - } - - protected abstract void configureOutgoingScreen(); - - private void initActionBar() { - configureToolbar(); - configureActionBar(); - } - - protected abstract void configureActionBar(); - - protected abstract void configureToolbar(); - - protected void initFields() { - currentUser = QBChatService.getInstance().getUser(); - dbManager = QbUsersDbManager.getInstance(getActivity().getApplicationContext()); - sessionManager = WebRtcSessionManager.getInstance(getActivity()); - currentSession = sessionManager.getCurrentSession(); - - if (getArguments() != null) { - isIncomingCall = getArguments().getBoolean(Consts.EXTRA_IS_INCOMING_CALL); - } - - initOpponentsList(); - - qbConferenceType = currentSession.getConferenceType(); - - Log.d(TAG, "opponents: " + opponents.toString()); - Log.d(TAG, "currentSession " + currentSession.toString()); - } - - @Override - public void onStart() { - super.onStart(); - if (currentSession == null) { - Log.d(TAG, "currentSession = null onStart"); - return; - - } - - if (currentSession.getState() != QBRTCSession.QBRTCSessionState.QB_RTC_SESSION_CONNECTED) { - if (isIncomingCall) { - currentSession.acceptCall(null); - } else { - currentSession.startCall(null); - } - isMessageProcessed = true; - } - } - - @Override - public void onDestroy() { - conversationFragmentCallbackListener.removeCurrentCallStateCallback(this); - super.onDestroy(); - } - - protected void initViews(View view) { - micToggleVideoCall = (ToggleButton) view.findViewById(R.id.toggle_mic); - handUpVideoCall = (ImageButton) view.findViewById(R.id.button_hangup_call); - outgoingOpponentsRelativeLayout = view.findViewById(R.id.layout_background_outgoing_screen); - allOpponentsTextView = (TextView) view.findViewById(R.id.text_outgoing_opponents_names); - ringingTextView = (TextView) view.findViewById(R.id.text_ringing); - - if (isIncomingCall) { - hideOutgoingScreen(); - } - } - - protected void initButtonsListener() { - - micToggleVideoCall.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - conversationFragmentCallbackListener.onSetAudioEnabled(isChecked); - } - }); - - handUpVideoCall.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - actionButtonsEnabled(false); - handUpVideoCall.setEnabled(false); - handUpVideoCall.setActivated(false); - - conversationFragmentCallbackListener.onHangUpCurrentSession(); - Log.d(TAG, "Call is stopped"); - } - }); - } - - protected void actionButtonsEnabled(boolean inability) { - - micToggleVideoCall.setEnabled(inability); - - // inactivate toggle buttons - micToggleVideoCall.setActivated(inability); - } - - private void startTimer() { - if (!isStarted) { - timerChronometer.setVisibility(View.VISIBLE); - timerChronometer.setBase(SystemClock.elapsedRealtime()); - timerChronometer.start(); - isStarted = true; - } - } - - private void stopTimer() { - if (timerChronometer != null) { - timerChronometer.stop(); - isStarted = false; - } - } - - private void hideOutgoingScreen() { - outgoingOpponentsRelativeLayout.setVisibility(View.GONE); - } - - @Override - public void onCallStarted() { - hideOutgoingScreen(); - startTimer(); - actionButtonsEnabled(true); - } - - @Override - public void onCallStopped() { - if (currentSession == null) { - Log.d(TAG, "currentSession = null onCallStopped"); - return; - } - stopTimer(); - actionButtonsEnabled(false); - } - - @Override - public void onOpponentsListUpdated(ArrayList newUsers) { - initOpponentsList(); - } - - private void initOpponentsList() { - Log.v("UPDATE_USERS", "super initOpponentsList()"); - ArrayList usersFromDb = dbManager.getUsersByIds(currentSession.getOpponents()); - opponents = UsersUtils.getListAllUsersFromIds(usersFromDb, currentSession.getOpponents()); - - QBUser caller = dbManager.getUserById(currentSession.getCallerID()); - if (caller == null) { - caller = new QBUser(currentSession.getCallerID()); - caller.setFullName(String.valueOf(currentSession.getCallerID())); - } - - if (isIncomingCall) { - opponents.add(caller); - opponents.remove(QBChatService.getInstance().getUser()); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/BaseToolBarFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/BaseToolBarFragment.java deleted file mode 100644 index cf97088ae..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/BaseToolBarFragment.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; - -import com.quickblox.sample.groupchatwebrtc.R; - -import java.lang.ref.WeakReference; - -import androidx.annotation.Nullable; -import androidx.appcompat.app.ActionBar; -import androidx.appcompat.app.AppCompatActivity; -import androidx.appcompat.widget.Toolbar; -import androidx.fragment.app.Fragment; - -public abstract class BaseToolBarFragment extends Fragment { - - private static final String TAG = BaseToolBarFragment.class.getSimpleName(); - protected Handler mainHandler; - protected Toolbar toolbar; - protected ActionBar actionBar; - - abstract int getFragmentLayout(); - - @Override - public void onCreate(Bundle savedInstanceState) { - setHasOptionsMenu(true); - mainHandler = new FragmentLifeCycleHandler(this); - super.onCreate(savedInstanceState); - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = inflater.inflate(getFragmentLayout(), container, false); - initActionBar(); - return view; - } - - private void initActionBar() { - toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar_call); - - ((AppCompatActivity) getActivity()).setSupportActionBar(toolbar); - actionBar = ((AppCompatActivity) getActivity()).getDelegate().getSupportActionBar(); - } - - static class FragmentLifeCycleHandler extends Handler { - - private WeakReference fragmentRef; - - FragmentLifeCycleHandler(Fragment fragment) { - - this.fragmentRef = new WeakReference<>(fragment); - } - - @Override - public void dispatchMessage(Message msg) { - Fragment fragment = fragmentRef.get(); - if (fragment == null) { - return; - } - if (fragment.isAdded() && (fragment.getActivity() != null)) { - super.dispatchMessage(msg); - } else { - Log.d(TAG, "Fragment under destroying"); - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/ConversationFragmentCallbackListener.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/ConversationFragmentCallbackListener.java deleted file mode 100644 index 2c31ebd54..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/ConversationFragmentCallbackListener.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import com.quickblox.sample.groupchatwebrtc.activities.CallActivity; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionEventsCallback; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback; - -import org.webrtc.CameraVideoCapturer; - - -public interface ConversationFragmentCallbackListener { - - void addTCClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks); - - void removeRTCClientConnectionCallback(QBRTCSessionStateCallback clientConnectionCallbacks); - - void addRTCSessionEventsCallback(QBRTCSessionEventsCallback eventsCallback); - - void removeRTCSessionEventsCallback(QBRTCSessionEventsCallback eventsCallback); - - void addCurrentCallStateCallback(CallActivity.CurrentCallStateCallback currentCallStateCallback); - - void removeCurrentCallStateCallback(CallActivity.CurrentCallStateCallback currentCallStateCallback); - - void addOnChangeAudioDeviceCallback(CallActivity.OnChangeAudioDevice onChangeDynamicCallback); - - void removeOnChangeAudioDeviceCallback(CallActivity.OnChangeAudioDevice onChangeDynamicCallback); - - void onSetAudioEnabled(boolean isAudioEnabled); - - void onSetVideoEnabled(boolean isNeedEnableCam); - - void onSwitchAudio(); - - void onHangUpCurrentSession(); - - void onStartScreenSharing(); - - void onSwitchCamera(CameraVideoCapturer.CameraSwitchHandler cameraSwitchHandler); -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/IncomeCallFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/IncomeCallFragment.java deleted file mode 100755 index b9ca20e4d..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/IncomeCallFragment.java +++ /dev/null @@ -1,245 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.app.Activity; -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.os.SystemClock; -import android.os.Vibrator; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.TextView; - -import com.quickblox.chat.QBChatService; -import com.quickblox.sample.core.utils.UiUtils; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.db.QbUsersDbManager; -import com.quickblox.sample.groupchatwebrtc.utils.CollectionsUtils; -import com.quickblox.sample.groupchatwebrtc.utils.RingtonePlayer; -import com.quickblox.sample.groupchatwebrtc.utils.UsersUtils; -import com.quickblox.sample.groupchatwebrtc.utils.WebRtcSessionManager; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.QBRTCSession; -import com.quickblox.videochat.webrtc.QBRTCTypes; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; - -import androidx.appcompat.widget.Toolbar; -import androidx.fragment.app.Fragment; - -/** - * QuickBlox team - */ -public class IncomeCallFragment extends Fragment implements Serializable, View.OnClickListener { - - private static final String TAG = IncomeCallFragment.class.getSimpleName(); - private static final long CLICK_DELAY = TimeUnit.SECONDS.toMillis(2); - private TextView callTypeTextView; - private ImageButton rejectButton; - private ImageButton takeButton; - - private List opponentsIds; - private Vibrator vibrator; - private QBRTCTypes.QBConferenceType conferenceType; - private long lastClickTime = 0l; - private RingtonePlayer ringtonePlayer; - private IncomeCallFragmentCallbackListener incomeCallFragmentCallbackListener; - private QBRTCSession currentSession; - private QbUsersDbManager qbUserDbManager; - private TextView alsoOnCallText; - - @Override - public void onAttach(Activity activity) { - super.onAttach(activity); - - try { - incomeCallFragmentCallbackListener = (IncomeCallFragmentCallbackListener) activity; - } catch (ClassCastException e) { - throw new ClassCastException(activity.toString() - + " must implement OnCallEventsController"); - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - setRetainInstance(true); - - Log.d(TAG, "onCreate() from IncomeCallFragment"); - super.onCreate(savedInstanceState); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_income_call, container, false); - - initFields(); - hideToolBar(); - - if (currentSession != null) { - initUI(view); - setDisplayedTypeCall(conferenceType); - initButtonsListener(); - } - - ringtonePlayer = new RingtonePlayer(getActivity()); - return view; - } - - private void initFields() { - currentSession = WebRtcSessionManager.getInstance(getActivity()).getCurrentSession(); - qbUserDbManager = QbUsersDbManager.getInstance(getActivity().getApplicationContext()); - - if (currentSession != null) { - opponentsIds = currentSession.getOpponents(); - conferenceType = currentSession.getConferenceType(); - Log.d(TAG, conferenceType.toString() + "From onCreateView()"); - } - } - - public void hideToolBar() { - Toolbar toolbar = (Toolbar) getActivity().findViewById(R.id.toolbar_call); - toolbar.setVisibility(View.GONE); - } - - @Override - public void onStart() { - super.onStart(); - startCallNotification(); - } - - private void initButtonsListener() { - rejectButton.setOnClickListener(this); - takeButton.setOnClickListener(this); - } - - private void initUI(View view) { - callTypeTextView = (TextView) view.findViewById(R.id.call_type); - - ImageView callerAvatarImageView = (ImageView) view.findViewById(R.id.image_caller_avatar); - callerAvatarImageView.setBackgroundDrawable(getBackgroundForCallerAvatar(currentSession.getCallerID())); - - TextView callerNameTextView = (TextView) view.findViewById(R.id.text_caller_name); - - QBUser callerUser = qbUserDbManager.getUserById(currentSession.getCallerID()); - callerNameTextView.setText(UsersUtils.getUserNameOrId(callerUser, currentSession.getCallerID())); - - TextView otherIncUsersTextView = (TextView) view.findViewById(R.id.text_other_inc_users); - otherIncUsersTextView.setText(getOtherIncUsersNames()); - - alsoOnCallText = (TextView) view.findViewById(R.id.text_also_on_call); - setVisibilityAlsoOnCallTextView(); - - rejectButton = (ImageButton) view.findViewById(R.id.image_button_reject_call); - takeButton = (ImageButton) view.findViewById(R.id.image_button_accept_call); - } - - private void setVisibilityAlsoOnCallTextView() { - if (opponentsIds.size() < 2) { - alsoOnCallText.setVisibility(View.INVISIBLE); - } - } - - private Drawable getBackgroundForCallerAvatar(int callerId) { - return UiUtils.getColorCircleDrawable(callerId); - } - - public void startCallNotification() { - Log.d(TAG, "startCallNotification()"); - - ringtonePlayer.play(false); - - vibrator = (Vibrator) getActivity().getSystemService(Context.VIBRATOR_SERVICE); - - long[] vibrationCycle = {0, 1000, 1000}; - if (vibrator.hasVibrator()) { - vibrator.vibrate(vibrationCycle, 1); - } - - } - - private void stopCallNotification() { - Log.d(TAG, "stopCallNotification()"); - - if (ringtonePlayer != null) { - ringtonePlayer.stop(); - } - - if (vibrator != null) { - vibrator.cancel(); - } - } - - private String getOtherIncUsersNames() { - ArrayList usersFromDb = qbUserDbManager.getUsersByIds(opponentsIds); - ArrayList opponents = new ArrayList<>(); - opponents.addAll(UsersUtils.getListAllUsersFromIds(usersFromDb, opponentsIds)); - - opponents.remove(QBChatService.getInstance().getUser()); - Log.d(TAG, "opponentsIds = " + opponentsIds); - return CollectionsUtils.makeStringFromUsersFullNames(opponents); - } - - private void setDisplayedTypeCall(QBRTCTypes.QBConferenceType conferenceType) { - boolean isVideoCall = conferenceType == QBRTCTypes.QBConferenceType.QB_CONFERENCE_TYPE_VIDEO; - - callTypeTextView.setText(isVideoCall ? R.string.text_incoming_video_call : R.string.text_incoming_audio_call); - takeButton.setImageResource(isVideoCall ? R.drawable.ic_video_white : R.drawable.ic_call); - } - - @Override - public void onStop() { - stopCallNotification(); - super.onStop(); - Log.d(TAG, "onStop() from IncomeCallFragment"); - } - - @Override - public void onClick(View v) { - - if ((SystemClock.uptimeMillis() - lastClickTime) < CLICK_DELAY) { - return; - } - lastClickTime = SystemClock.uptimeMillis(); - - switch (v.getId()) { - case R.id.image_button_reject_call: - reject(); - break; - - case R.id.image_button_accept_call: - accept(); - break; - - default: - break; - } - } - - private void accept() { - enableButtons(false); - stopCallNotification(); - - incomeCallFragmentCallbackListener.onAcceptCurrentSession(); - Log.d(TAG, "Call is started"); - } - - private void reject() { - enableButtons(false); - stopCallNotification(); - - incomeCallFragmentCallbackListener.onRejectCurrentSession(); - Log.d(TAG, "Call is rejected"); - } - - private void enableButtons(boolean enable) { - takeButton.setEnabled(enable); - rejectButton.setEnabled(enable); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/IncomeCallFragmentCallbackListener.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/IncomeCallFragmentCallbackListener.java deleted file mode 100644 index 467827363..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/IncomeCallFragmentCallbackListener.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - - -public interface IncomeCallFragmentCallbackListener { - - void onAcceptCurrentSession(); - - void onRejectCurrentSession(); -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/OnCallEventsController.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/OnCallEventsController.java deleted file mode 100644 index ebc5cce4d..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/OnCallEventsController.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - - -public interface OnCallEventsController { - - void onUseHeadSet(boolean use); -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/PreviewFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/PreviewFragment.java deleted file mode 100644 index 7cee78f93..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/PreviewFragment.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.os.Bundle; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.quickblox.sample.core.utils.ResourceUtils; -import com.quickblox.sample.groupchatwebrtc.R; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; - -public class PreviewFragment extends Fragment { - - public static final String PREVIEW_IMAGE = "preview_image"; - - - public static Fragment newInstance(int imageResourceId) { - PreviewFragment previewFragment = new PreviewFragment(); - Bundle bundle = new Bundle(); - bundle.putInt(PREVIEW_IMAGE, imageResourceId); - previewFragment.setArguments(bundle); - return previewFragment; - - } - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - - View view = inflater.inflate(R.layout.fragment_item_screen_share, container, false); - Glide.with(this) - .load(getArguments().getInt(PREVIEW_IMAGE)) - .diskCacheStrategy(DiskCacheStrategy.ALL) - .override(ResourceUtils.getDimen(R.dimen.pager_image_width), - ResourceUtils.getDimen(R.dimen.pager_image_height)) - .into((ImageView) view.findViewById(R.id.image_preview)); - return view; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/ScreenShareFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/ScreenShareFragment.java deleted file mode 100644 index bba48d5d1..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/ScreenShareFragment.java +++ /dev/null @@ -1,106 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.content.Context; -import android.os.Bundle; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; - -import com.quickblox.sample.groupchatwebrtc.R; - -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentPagerAdapter; -import androidx.viewpager.widget.ViewPager; - - -public class ScreenShareFragment extends BaseToolBarFragment { - - public static final String TAG = ScreenShareFragment.class.getSimpleName(); - private OnSharingEvents onSharingEvents; - - @Override - int getFragmentLayout() { - return R.layout.fragment_pager; - } - - @Nullable - @Override - public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - View view = super.onCreateView(inflater, container, savedInstanceState); - - MyAdapter adapter = new MyAdapter(getChildFragmentManager()); - - ViewPager pager = (ViewPager) view.findViewById(R.id.pager); - pager.setAdapter(adapter); - - toolbar.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.white)); - return view; - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.screen_share_fragment, menu); - super.onCreateOptionsMenu(menu, inflater); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.stop_screen_share: - Log.d(TAG, "stop_screen_share"); - if (onSharingEvents != null) { - onSharingEvents.onStopPreview(); - } - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - @Override - public void onAttach(Context context) { - super.onAttach(context); - onSharingEvents = (OnSharingEvents) context; - } - - @Override - public void onDetach() { - super.onDetach(); - onSharingEvents = null; - } - - public interface OnSharingEvents { - void onStopPreview(); - } - - public static ScreenShareFragment newIntstance() { - return new ScreenShareFragment(); - } - - public static class MyAdapter extends FragmentPagerAdapter { - private static final int NUM_ITEMS = 4; - - private int[] images = {R.drawable.pres_img, R.drawable.p2p, R.drawable.group_call, R.drawable.opponents}; - - public MyAdapter(FragmentManager fm) { - super(fm); - } - - @Override - public int getCount() { - return NUM_ITEMS; - } - - @Override - public Fragment getItem(int position) { - return PreviewFragment.newInstance(images[position]); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/SettingsFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/SettingsFragment.java deleted file mode 100755 index fb6e24977..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/SettingsFragment.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.os.Bundle; -import android.preference.PreferenceFragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ListView; - -import com.quickblox.sample.groupchatwebrtc.R; - -/** - * QuickBlox team - */ -public class SettingsFragment extends PreferenceFragment { - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - addPreferencesFromResource(R.xml.preferences); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, - Bundle savedInstanceState) { - View v = super.onCreateView(inflater, container, savedInstanceState); - if (v != null) { - ListView lv = (ListView) v.findViewById(android.R.id.list); - lv.setPadding(0, 0, 0, 0); - } - return v; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/VideoConversationFragment.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/VideoConversationFragment.java deleted file mode 100755 index 7936cc74b..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/fragments/VideoConversationFragment.java +++ /dev/null @@ -1,969 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.fragments; - -import android.content.Context; -import android.graphics.Color; -import android.graphics.Rect; -import android.os.Bundle; -import android.os.SystemClock; -import android.util.DisplayMetrics; -import android.util.Log; -import android.util.SparseArray; -import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewTreeObserver; -import android.widget.Chronometer; -import android.widget.CompoundButton; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.widget.TextView; -import android.widget.ToggleButton; - -import com.quickblox.sample.core.utils.Toaster; -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.sample.groupchatwebrtc.adapters.OpponentsFromCallAdapter; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.BaseSession; -import com.quickblox.videochat.webrtc.QBRTCSession; -import com.quickblox.videochat.webrtc.QBRTCTypes; -import com.quickblox.videochat.webrtc.callbacks.QBRTCClientVideoTracksCallbacks; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionEventsCallback; -import com.quickblox.videochat.webrtc.callbacks.QBRTCSessionStateCallback; -import com.quickblox.videochat.webrtc.view.QBRTCSurfaceView; -import com.quickblox.videochat.webrtc.view.QBRTCVideoTrack; - -import org.webrtc.CameraVideoCapturer; -import org.webrtc.RendererCommon; -import org.webrtc.SurfaceViewRenderer; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import androidx.annotation.DimenRes; -import androidx.annotation.NonNull; -import androidx.appcompat.app.AppCompatActivity; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import static android.widget.LinearLayout.HORIZONTAL; - - -/** - * QuickBlox team - */ -public class VideoConversationFragment extends BaseConversationFragment implements Serializable, QBRTCClientVideoTracksCallbacks, - QBRTCSessionStateCallback, QBRTCSessionEventsCallback, OpponentsFromCallAdapter.OnAdapterEventListener { - - private static final int DEFAULT_ROWS_COUNT = 2; - private static final int DEFAULT_COLS_COUNT = 3; - private static final long TOGGLE_CAMERA_DELAY = 1000; - private static final long LOCAL_TRACk_INITIALIZE_DELAY = 500; - private static final int RECYCLE_VIEW_PADDING = 2; - private static final long UPDATING_USERS_DELAY = 2000; - private static final long FULL_SCREEN_CLICK_DELAY = 1000; - private static final int REQUEST_CODE_ATTACHMENT = 100; - - private String TAG = VideoConversationFragment.class.getSimpleName(); - - private ToggleButton cameraToggle; - private View view; - private LinearLayout actionVideoButtonsLayout; - private QBRTCSurfaceView remoteFullScreenVideoView; - private QBRTCSurfaceView localVideoView; - private CameraState cameraState = CameraState.DISABLED_FROM_USER; - private RecyclerView recyclerView; - private SparseArray opponentViewHolders; - private boolean isPeerToPeerCall; - private QBRTCVideoTrack localVideoTrack; - private TextView connectionStatusLocal; - - private Map videoTrackMap; - private OpponentsFromCallAdapter opponentsAdapter; - private LocalViewOnClickListener localViewOnClickListener; - private boolean isRemoteShown; - - private int amountOpponents; - private int userIDFullScreen; - private List allOpponents; - private boolean connectionEstablished; - private boolean allCallbacksInit; - private boolean isCurrentCameraFront; - private boolean isLocalVideoFullScreen; - - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - view = super.onCreateView(inflater, container, savedInstanceState); - return view; - } - - @Override - protected void configureOutgoingScreen() { - outgoingOpponentsRelativeLayout.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.grey_transparent_50)); - allOpponentsTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - ringingTextView.setTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - } - - @Override - protected void configureActionBar() { - actionBar = ((AppCompatActivity) getActivity()).getDelegate().getSupportActionBar(); - actionBar.setDisplayShowTitleEnabled(false); - } - - @Override - protected void configureToolbar() { - toolbar.setVisibility(View.VISIBLE); - toolbar.setBackgroundColor(ContextCompat.getColor(getActivity(), R.color.black_transparent_50)); - toolbar.setTitleTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - toolbar.setSubtitleTextColor(ContextCompat.getColor(getActivity(), R.color.white)); - } - - @Override - int getFragmentLayout() { - return R.layout.fragment_video_conversation; - } - - @Override - protected void initFields() { - super.initFields(); - localViewOnClickListener = new LocalViewOnClickListener(); - amountOpponents = opponents.size(); - allOpponents = Collections.synchronizedList(new ArrayList(opponents.size())); - allOpponents.addAll(opponents); - - timerChronometer = (Chronometer) getActivity().findViewById(R.id.timer_chronometer_action_bar); - - isPeerToPeerCall = opponents.size() == 1; - } - - public void setDuringCallActionBar() { - actionBar.setDisplayShowTitleEnabled(true); - actionBar.setTitle(currentUser.getFullName()); - if (isPeerToPeerCall) { - actionBar.setSubtitle(getString(R.string.opponent, opponents.get(0).getFullName())); - } else { - actionBar.setSubtitle(getString(R.string.opponents, amountOpponents)); - } - - actionButtonsEnabled(true); - } - - private void initVideoTrackSListener() { - if (currentSession != null) { - currentSession.addVideoTrackCallbacksListener(this); - } - } - - private void removeVideoTrackSListener() { - if (currentSession != null) { - currentSession.removeVideoTrackCallbacksListener(this); - } - } - - @Override - protected void actionButtonsEnabled(boolean inability) { - super.actionButtonsEnabled(inability); - cameraToggle.setEnabled(inability); - // inactivate toggle buttons - cameraToggle.setActivated(inability); - } - - @Override - public void onStart() { - super.onStart(); - Log.i(TAG, "onStart"); - if (!allCallbacksInit) { - conversationFragmentCallbackListener.addTCClientConnectionCallback(this); - conversationFragmentCallbackListener.addRTCSessionEventsCallback(this); - initVideoTrackSListener(); - allCallbacksInit = true; - } - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - Log.i(TAG, "onCreate"); - setHasOptionsMenu(true); - } - - @Override - protected void initViews(View view) { - super.initViews(view); - Log.i(TAG, "initViews"); - opponentViewHolders = new SparseArray<>(opponents.size()); - isRemoteShown = false; - isCurrentCameraFront = true; - localVideoView = (QBRTCSurfaceView) view.findViewById(R.id.local_video_view); - initCorrectSizeForLocalView(); - localVideoView.setZOrderMediaOverlay(true); - - remoteFullScreenVideoView = (QBRTCSurfaceView) view.findViewById(R.id.remote_video_view); - remoteFullScreenVideoView.setOnClickListener(localViewOnClickListener); - - if (!isPeerToPeerCall) { - recyclerView = (RecyclerView) view.findViewById(R.id.grid_opponents); - - recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), R.dimen.grid_item_divider)); - recyclerView.setHasFixedSize(true); - final int columnsCount = defineColumnsCount(); - LinearLayoutManager layoutManager - = new LinearLayoutManager(getActivity(), HORIZONTAL, false); - recyclerView.setLayoutManager(layoutManager); - - //for correct removing item in adapter - recyclerView.setItemAnimator(null); - recyclerView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - setGrid(columnsCount); - recyclerView.getViewTreeObserver().removeGlobalOnLayoutListener(this); - } - }); - } - connectionStatusLocal = (TextView) view.findViewById(R.id.connectionStatusLocal); - - cameraToggle = (ToggleButton) view.findViewById(R.id.toggle_camera); - cameraToggle.setVisibility(View.VISIBLE); - - actionVideoButtonsLayout = (LinearLayout) view.findViewById(R.id.element_set_video_buttons); - - actionButtonsEnabled(false); - restoreSession(); - } - - private void restoreSession() { - Log.d(TAG, "restoreSession "); - if (currentSession.getState() != QBRTCSession.QBRTCSessionState.QB_RTC_SESSION_CONNECTED) { - return; - } - onCallStarted(); - Map videoTrackMap = getVideoTrackMap(); - if (!videoTrackMap.isEmpty()) { - for (final Iterator> entryIterator - = videoTrackMap.entrySet().iterator(); entryIterator.hasNext(); ) { - final Map.Entry entry = entryIterator.next(); - Log.d(TAG, "check ability to restoreSession for user:" + entry.getKey()); - //if connection with peer wasn't closed do restore it otherwise remove from collection - if (currentSession.getPeerChannel(entry.getKey()).getState() != - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CLOSED) { - Log.d(TAG, "execute restoreSession for user:" + entry.getKey()); - mainHandler.postDelayed(new Runnable() { - @Override - public void run() { - onConnectedToUser(currentSession, entry.getKey()); - onRemoteVideoTrackReceive(currentSession, entry.getValue(), entry.getKey()); - } - }, LOCAL_TRACk_INITIALIZE_DELAY); - } else { - entryIterator.remove(); - } - } - } - } - - private void initCorrectSizeForLocalView() { - ViewGroup.LayoutParams params = localVideoView.getLayoutParams(); - DisplayMetrics displaymetrics = getResources().getDisplayMetrics(); - - int screenWidthPx = displaymetrics.widthPixels; - Log.d(TAG, "screenWidthPx " + screenWidthPx); - params.width = (int) (screenWidthPx * 0.3); - params.height = (params.width / 2) * 3; - localVideoView.setLayoutParams(params); - } - - private void setGrid(int columnsCount) { - int gridWidth = view.getMeasuredWidth(); - Log.i(TAG, "onGlobalLayout : gridWidth=" + gridWidth + " columnsCount= " + columnsCount); - float itemMargin = getResources().getDimension(R.dimen.grid_item_divider); - int cellSizeWidth = defineSize(gridWidth, columnsCount, itemMargin); - Log.i(TAG, "onGlobalLayout : cellSize=" + cellSizeWidth); - opponentsAdapter = new OpponentsFromCallAdapter(getActivity(), currentSession, opponents, cellSizeWidth, - (int) getResources().getDimension(R.dimen.item_height)); - opponentsAdapter.setAdapterListener(VideoConversationFragment.this); - recyclerView.setAdapter(opponentsAdapter); - } - - private Map getVideoTrackMap() { - if (videoTrackMap == null) { - videoTrackMap = new HashMap<>(); - } - return videoTrackMap; - } - - private int defineSize(int measuredWidth, int columnsCount, float padding) { - return measuredWidth / columnsCount - (int) (padding * 2) - RECYCLE_VIEW_PADDING; - } - - private int defineColumnsCount() { - return opponents.size() - 1; - } - - - @Override - public void onResume() { - super.onResume(); - Log.d(TAG, "onResume"); - // If user changed camera state few times and last state was CameraState.ENABLED_FROM_USER - // than we turn on cam, else we nothing change - if (cameraState != CameraState.DISABLED_FROM_USER) { - toggleCamera(true); - } - } - - - @Override - public void onPause() { - // If camera state is CameraState.ENABLED_FROM_USER or CameraState.NONE - // than we turn off cam - if (cameraState != CameraState.DISABLED_FROM_USER) { - toggleCamera(false); - } - - super.onPause(); - } - - @Override - public void onStop() { - super.onStop(); - Log.d(TAG, "onStop"); - if (connectionEstablished) { - allCallbacksInit = false; - } else { - Log.d(TAG, "We are in dialing process yet!"); - } - } - - private void removeVideoTrackRenderers() { - Log.d(TAG, "removeVideoTrackRenderers"); - Log.d(TAG, "remove opponents video Tracks"); - Map videoTrackMap = getVideoTrackMap(); - for (QBRTCVideoTrack videoTrack : videoTrackMap.values()) { - if (videoTrack.getRenderer() != null) { - Log.d(TAG, "remove opponent video Tracks"); - videoTrack.removeRenderer(videoTrack.getRenderer()); - } - } - } - - @Override - public void onDetach() { - super.onDetach(); - Log.d(TAG, "onDetach"); - } - - @Override - public void onDestroyView() { - super.onDestroyView(); - Log.d(TAG, "onDestroyView"); - releaseViewHolders(); - removeConnectionStateListeners(); - removeVideoTrackSListener(); - removeVideoTrackRenderers(); - releaseViews(); - } - - private void releaseViewHolders() { - opponentViewHolders.clear(); - } - - private void removeConnectionStateListeners() { - conversationFragmentCallbackListener.removeRTCClientConnectionCallback(this); - conversationFragmentCallbackListener.removeRTCSessionEventsCallback(this); - } - - private void releaseViews() { - if (localVideoView != null) { - localVideoView.release(); - } - if (remoteFullScreenVideoView != null) { - remoteFullScreenVideoView.release(); - } - remoteFullScreenVideoView = null; - if (!isPeerToPeerCall) { - releseOpponentsViews(); - } - } - - @Override - public void onCallStopped() { - super.onCallStopped(); - Log.i(TAG, "onCallStopped"); - } - - protected void initButtonsListener() { - super.initButtonsListener(); - - cameraToggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - if (cameraState != CameraState.DISABLED_FROM_USER) { - toggleCamera(isChecked); - } - } - }); - } - - private void switchCamera(final MenuItem item) { - if (cameraState == CameraState.DISABLED_FROM_USER) { - return; - } - cameraToggle.setEnabled(false); - conversationFragmentCallbackListener.onSwitchCamera(new CameraVideoCapturer.CameraSwitchHandler() { - @Override - public void onCameraSwitchDone(boolean b) { - Log.d(TAG, "camera switched, bool = " + b); - isCurrentCameraFront = b; - updateSwitchCameraIcon(item); - toggleCameraInternal(); - } - - @Override - public void onCameraSwitchError(String s) { - Log.d(TAG, "camera switch error " + s); - Toaster.shortToast(getString(R.string.camera_swicth_failed) + s); - cameraToggle.setEnabled(true); - } - }); - } - - private void updateSwitchCameraIcon(final MenuItem item) { - if (isCurrentCameraFront) { - Log.d(TAG, "CameraFront now!"); - item.setIcon(R.drawable.ic_camera_front); - } else { - Log.d(TAG, "CameraRear now!"); - item.setIcon(R.drawable.ic_camera_rear); - } - } - - private void toggleCameraInternal() { - Log.d(TAG, "Camera was switched!"); - updateVideoView(isLocalVideoFullScreen ? remoteFullScreenVideoView : localVideoView, isCurrentCameraFront); - toggleCamera(true); - } - - private void runOnUiThread(Runnable runnable) { - mainHandler.post(runnable); - } - - private void toggleCamera(boolean isNeedEnableCam) { - if (currentSession != null && currentSession.getMediaStreamManager() != null) { - conversationFragmentCallbackListener.onSetVideoEnabled(isNeedEnableCam); - } - if (connectionEstablished && !cameraToggle.isEnabled()) { - cameraToggle.setEnabled(true); - } - } - - //////////////////////////// callbacks from QBRTCClientVideoTracksCallbacks /////////////////// - @Override - public void onLocalVideoTrackReceive(QBRTCSession qbrtcSession, final QBRTCVideoTrack videoTrack) { - Log.d(TAG, "onLocalVideoTrackReceive() run"); - localVideoTrack = videoTrack; - isLocalVideoFullScreen = true; - cameraState = CameraState.NONE; - - - if (remoteFullScreenVideoView != null) { - fillVideoView(remoteFullScreenVideoView, localVideoTrack, false); - } - } - - @Override - public void onRemoteVideoTrackReceive(QBRTCSession session, final QBRTCVideoTrack videoTrack, final Integer userID) { - Log.d(TAG, "onRemoteVideoTrackReceive for opponent= " + userID); - - if (localVideoTrack != null) { - fillVideoView(localVideoView, localVideoTrack, false); - } - isLocalVideoFullScreen = false; - - if (isPeerToPeerCall) { - setDuringCallActionBar(); - fillVideoView(userID, remoteFullScreenVideoView, videoTrack, true); - updateVideoView(remoteFullScreenVideoView, false); - } else { - mainHandler.postDelayed(new Runnable() { - @Override - public void run() { - setRemoteViewMultiCall(userID, videoTrack); - } - }, LOCAL_TRACk_INITIALIZE_DELAY); - } - } - ///////////////////////////////////////// end //////////////////////////////////////////// - - //last opponent view is bind - @Override - public void OnBindLastViewHolder(final OpponentsFromCallAdapter.ViewHolder holder, final int position) { - Log.i(TAG, "OnBindLastViewHolder position=" + position); - - } - - - @Override - public void onItemClick(int position) { - int userId = opponentsAdapter.getItem(position); - Log.d(TAG, "USer onItemClick= " + userId); - if (!getVideoTrackMap().containsKey(userId) || - currentSession.getPeerChannel(userId).getState().ordinal() == QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CLOSED.ordinal()) { - return; - } - - replaceUsersInAdapter(position); - - updateViewHolders(position); - - swapUsersFullscreenToPreview(userId); - } - - private void replaceUsersInAdapter(int position) { - for (QBUser qbUser : allOpponents) { - if (qbUser.getId() == userIDFullScreen) { - opponentsAdapter.replaceUsers(position, qbUser); - break; - } - } - } - - private void updateViewHolders(int position) { - View childView = recyclerView.getChildAt(position); - OpponentsFromCallAdapter.ViewHolder childViewHolder = (OpponentsFromCallAdapter.ViewHolder) recyclerView.getChildViewHolder(childView); - opponentViewHolders.put(position, childViewHolder); - } - - @SuppressWarnings("ConstantConditions") - private void swapUsersFullscreenToPreview(int userId) { -// get opponentVideoTrack - opponent's video track from recyclerView - QBRTCVideoTrack opponentVideoTrack = getVideoTrackMap().get(userId); - -// get mainVideoTrack - opponent's video track from full screen - QBRTCVideoTrack mainVideoTrack = getVideoTrackMap().get(userIDFullScreen); - - QBRTCSurfaceView remoteVideoView = findHolder(userId).getOpponentView(); - - if (mainVideoTrack != null) { - fillVideoView(0, remoteVideoView, mainVideoTrack); - Log.d(TAG, "_remoteVideoView enabled"); - } - if (opponentVideoTrack != null) { - fillVideoView(userId, remoteFullScreenVideoView, opponentVideoTrack); - Log.d(TAG, "fullscreen enabled"); - } - } - - - private void setRemoteViewMultiCall(int userID, QBRTCVideoTrack videoTrack) { - Log.d(TAG, "setRemoteViewMultiCall fillVideoView"); - final OpponentsFromCallAdapter.ViewHolder itemHolder = getViewHolderForOpponent(userID); - if (itemHolder == null) { - Log.d(TAG, "itemHolder == null - true"); - return; - } - final QBRTCSurfaceView remoteVideoView = itemHolder.getOpponentView(); - - if (remoteVideoView != null) { - remoteVideoView.setZOrderMediaOverlay(true); - updateVideoView(remoteVideoView, false); - - Log.d(TAG, "onRemoteVideoTrackReceive fillVideoView"); - if (isRemoteShown) { - Log.d(TAG, "USer onRemoteVideoTrackReceive = " + userID); - fillVideoView(userID, remoteVideoView, videoTrack, true); - } else { - isRemoteShown = true; - opponentsAdapter.removeItem(itemHolder.getAdapterPosition()); - setDuringCallActionBar(); - setRecyclerViewVisibleState(); - //setOpponentsVisibility(View.VISIBLE); - fillVideoView(userID, remoteFullScreenVideoView, videoTrack); - updateVideoView(remoteFullScreenVideoView, false); - } - } - } - - private void setRecyclerViewVisibleState() { - ViewGroup.LayoutParams params = recyclerView.getLayoutParams(); - params.height = (int) getResources().getDimension(R.dimen.item_height); - recyclerView.setLayoutParams(params); - recyclerView.setVisibility(View.VISIBLE); - } - - private OpponentsFromCallAdapter.ViewHolder getViewHolderForOpponent(Integer userID) { - OpponentsFromCallAdapter.ViewHolder holder = opponentViewHolders.get(userID); - if (holder == null) { - Log.d(TAG, "holder not found in cache"); - holder = findHolder(userID); - if (holder != null) { - opponentViewHolders.append(userID, holder); - } - } - return holder; - } - - private OpponentsFromCallAdapter.ViewHolder findHolder(Integer userID) { - Log.d(TAG, "findHolder for " + userID); - int childCount = recyclerView.getChildCount(); - for (int i = 0; i < childCount; i++) { - View childView = recyclerView.getChildAt(i); - OpponentsFromCallAdapter.ViewHolder childViewHolder = (OpponentsFromCallAdapter.ViewHolder) recyclerView.getChildViewHolder(childView); - if (userID.equals(childViewHolder.getUserId())) { - return childViewHolder; - } - } - return null; - } - - ; - - private void releseOpponentsViews() { - RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager(); - int childCount = layoutManager.getChildCount(); - Log.d(TAG, " releseOpponentsViews for " + childCount + " views"); - for (int i = 0; i < childCount; i++) { - View childView = layoutManager.getChildAt(i); - Log.d(TAG, " relese View for " + i + ", " + childView); - OpponentsFromCallAdapter.ViewHolder childViewHolder = (OpponentsFromCallAdapter.ViewHolder) recyclerView.getChildViewHolder(childView); - childViewHolder.getOpponentView().release(); - } - } - - /** - * @param userId set userId if it from fullscreen videoTrack - */ - private void fillVideoView(int userId, QBRTCSurfaceView videoView, QBRTCVideoTrack videoTrack, - boolean remoteRenderer) { - videoTrack.removeRenderer(videoTrack.getRenderer()); - videoTrack.addRenderer(videoView); - if (userId != 0) { - getVideoTrackMap().put(userId, videoTrack); - } - if (!remoteRenderer) { - updateVideoView(videoView, isCurrentCameraFront); - } - Log.d(TAG, (remoteRenderer ? "remote" : "local") + " Track is rendering"); - } - - private void fillVideoView(QBRTCSurfaceView videoView, QBRTCVideoTrack videoTrack, boolean remoteRenderer) { - fillVideoView(0, videoView, videoTrack, remoteRenderer); - } - - /** - * @param userId set userId if it from fullscreen videoTrack - */ - private void fillVideoView(int userId, QBRTCSurfaceView videoView, QBRTCVideoTrack videoTrack) { - if (userId != 0) { - userIDFullScreen = userId; - } - fillVideoView(userId, videoView, videoTrack, true); - } - - protected void updateVideoView(SurfaceViewRenderer surfaceViewRenderer, boolean mirror) { - updateVideoView(surfaceViewRenderer, mirror, RendererCommon.ScalingType.SCALE_ASPECT_FILL); - } - - protected void updateVideoView(SurfaceViewRenderer surfaceViewRenderer, boolean mirror, RendererCommon.ScalingType scalingType) { - Log.i(TAG, "updateVideoView mirror:" + mirror + ", scalingType = " + scalingType); - surfaceViewRenderer.setScalingType(scalingType); - surfaceViewRenderer.setMirror(mirror); - surfaceViewRenderer.requestLayout(); - } - - private void setStatusForOpponent(int userId, final String status) { - if (isPeerToPeerCall) { - connectionStatusLocal.setText(status); - return; - } - - final OpponentsFromCallAdapter.ViewHolder holder = findHolder(userId); - if (holder == null) { - return; - } - - holder.setStatus(status); - } - - private void updateNameForOpponent(int userId, String newUserName) { - if (isPeerToPeerCall) { - actionBar.setSubtitle(getString(R.string.opponent, newUserName)); - } else { - OpponentsFromCallAdapter.ViewHolder holder = findHolder(userId); - if (holder == null) { - Log.d("UPDATE_USERS", "holder == null"); - return; - } - - Log.d("UPDATE_USERS", "holder != null"); - holder.setUserName(newUserName); - } - } - - private void setProgressBarForOpponentGone(int userId) { - if (isPeerToPeerCall) { - return; - } - final OpponentsFromCallAdapter.ViewHolder holder = getViewHolderForOpponent(userId); - if (holder == null) { - return; - } - - holder.getProgressBar().setVisibility(View.GONE); - - } - - private void setBackgroundOpponentView(final Integer userId) { - final OpponentsFromCallAdapter.ViewHolder holder = findHolder(userId); - if (holder == null) { - return; - } - - if (userId != userIDFullScreen) { - holder.getOpponentView().setBackgroundColor(Color.parseColor("#000000")); - } - } - - /////////////////////////////// QBRTCSessionConnectionCallbacks /////////////////////////// - - @Override - public void onStateChanged(QBRTCSession qbrtcSession, BaseSession.QBRTCSessionState qbrtcSessionState) { - - } - - @Override - public void onConnectedToUser(QBRTCSession qbrtcSession, final Integer userId) { - connectionEstablished = true; - setStatusForOpponent(userId, getString(R.string.text_status_connected)); - setProgressBarForOpponentGone(userId); - } - - @Override - public void onConnectionClosedForUser(QBRTCSession qbrtcSession, Integer userId) { - setStatusForOpponent(userId, getString(R.string.text_status_closed)); - if (!isPeerToPeerCall) { - Log.d(TAG, "onConnectionClosedForUser videoTrackMap.remove(userId)= " + userId); - getVideoTrackMap().remove(userId); - setBackgroundOpponentView(userId); - } - } - - @Override - public void onDisconnectedFromUser(QBRTCSession qbrtcSession, Integer integer) { - setStatusForOpponent(integer, getString(R.string.text_status_disconnected)); - } - - ////////////////////////////////// end ////////////////////////////////////////// - - - /////////////////// Callbacks from CallActivity.QBRTCSessionUserCallback ////////////////////// - @Override - public void onUserNotAnswer(QBRTCSession session, Integer userId) { - setProgressBarForOpponentGone(userId); - setStatusForOpponent(userId, getString(R.string.text_status_no_answer)); - } - - @Override - public void onCallRejectByUser(QBRTCSession session, Integer userId, Map userInfo) { - setStatusForOpponent(userId, getString(R.string.text_status_rejected)); - } - - @Override - public void onCallAcceptByUser(QBRTCSession session, Integer userId, Map userInfo) { - setStatusForOpponent(userId, getString(R.string.accepted)); - } - - @Override - public void onReceiveHangUpFromUser(QBRTCSession session, Integer userId, Map userInfo) { - setStatusForOpponent(userId, getString(R.string.text_status_hang_up)); - Log.d(TAG, "onReceiveHangUpFromUser userId= " + userId); - if (!isPeerToPeerCall) { - if (userId == userIDFullScreen) { - Log.d(TAG, "setAnotherUserToFullScreen call userId= " + userId); - setAnotherUserToFullScreen(); - } - } - } - - @Override - public void onSessionClosed(QBRTCSession session) { - - } - - ////////////////////////////////// end ////////////////////////////////////////// - - private void setAnotherUserToFullScreen() { - if (opponentsAdapter.getOpponents().isEmpty()) { - return; - } - int userId = opponentsAdapter.getItem(0); -// get opponentVideoTrack - opponent's video track from recyclerView - QBRTCVideoTrack opponentVideoTrack = getVideoTrackMap().get(userId); - if (opponentVideoTrack == null) { - Log.d(TAG, "setAnotherUserToFullScreen opponentVideoTrack == null"); - return; - } - - fillVideoView(userId, remoteFullScreenVideoView, opponentVideoTrack); - Log.d(TAG, "fullscreen enabled"); - - OpponentsFromCallAdapter.ViewHolder itemHolder = findHolder(userId); - if (itemHolder != null) { - opponentsAdapter.removeItem(itemHolder.getAdapterPosition()); - itemHolder.getOpponentView().release(); - Log.d(TAG, "onConnectionClosedForUser opponentsAdapter.removeItem= " + userId); - } - } - - @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { - inflater.inflate(R.menu.conversation_fragment, menu); - super.onCreateOptionsMenu(menu, inflater); - - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.camera_switch: - Log.d("Conversation", "camera_switch"); - switchCamera(item); - return true; - case R.id.screen_share: - startScreenSharing(); - return true; - default: - return super.onOptionsItemSelected(item); - } - } - - private void startScreenSharing() { - conversationFragmentCallbackListener.onStartScreenSharing(); - } - - @Override - public void onOpponentsListUpdated(ArrayList newUsers) { - super.onOpponentsListUpdated(newUsers); - updateAllOpponentsList(newUsers); - Log.d(TAG, "updateOpponentsList(), newUsers = " + newUsers); - runUpdateUsersNames(newUsers); - } - - private void updateAllOpponentsList(ArrayList newUsers) { - - for (int i = 0; i < allOpponents.size(); i++) { - for (QBUser updatedUser : newUsers) { - if (updatedUser.equals(allOpponents.get(i))) { - allOpponents.set(i, updatedUser); - } - } - } - } - - private void runUpdateUsersNames(final ArrayList newUsers) { - //need delayed for synchronization with recycler view initialization - mainHandler.postDelayed(new Runnable() { - @Override - public void run() { - for (QBUser user : newUsers) { - Log.d(TAG, "runUpdateUsersNames. foreach, user = " + user.getFullName()); - updateNameForOpponent(user.getId(), user.getFullName()); - } - } - }, UPDATING_USERS_DELAY); - } - - private enum CameraState { - NONE, - DISABLED_FROM_USER, - ENABLED_FROM_USER - } - - - class DividerItemDecoration extends RecyclerView.ItemDecoration { - - private int space; - - public DividerItemDecoration(@NonNull Context context, @DimenRes int dimensionDivider) { - this.space = context.getResources().getDimensionPixelSize(dimensionDivider); - } - - @Override - public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { - outRect.set(space, space, space, space); - } - } - - class LocalViewOnClickListener implements View.OnClickListener { - private long lastFullScreenClickTime = 0L; - - @Override - public void onClick(View v) { - if ((SystemClock.uptimeMillis() - lastFullScreenClickTime) < FULL_SCREEN_CLICK_DELAY) { - return; - } - lastFullScreenClickTime = SystemClock.uptimeMillis(); - - if (connectionEstablished) { - setFullScreenOnOff(); - } - } - - private void setFullScreenOnOff() { - if (actionBar.isShowing()) { - hideToolBarAndButtons(); - } else { - showToolBarAndButtons(); - } - } - - private void hideToolBarAndButtons() { - actionBar.hide(); - - localVideoView.setVisibility(View.INVISIBLE); - - actionVideoButtonsLayout.setVisibility(View.GONE); - - if (!isPeerToPeerCall) { - shiftBottomListOpponents(); - } - } - - private void showToolBarAndButtons() { - actionBar.show(); - - localVideoView.setVisibility(View.VISIBLE); - - actionVideoButtonsLayout.setVisibility(View.VISIBLE); - - if (!isPeerToPeerCall) { - shiftMarginListOpponents(); - } - } - - private void shiftBottomListOpponents() { - RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) recyclerView.getLayoutParams(); - params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); - params.setMargins(0, 0, 0, 0); - - recyclerView.setLayoutParams(params); - } - - private void shiftMarginListOpponents() { - RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) recyclerView.getLayoutParams(); - params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0); - params.setMargins(0, 0, 0, (int) getResources().getDimension(R.dimen.margin_common)); - - recyclerView.setLayoutParams(params); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/services/CallService.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/services/CallService.java deleted file mode 100644 index a35e9a4d9..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/services/CallService.java +++ /dev/null @@ -1,235 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.services; - -import android.app.PendingIntent; -import android.app.Service; -import android.content.Context; -import android.content.Intent; -import android.os.Bundle; -import android.os.IBinder; -import android.util.Log; - -import com.quickblox.chat.QBChatService; -import com.quickblox.chat.QBSignaling; -import com.quickblox.chat.QBWebRTCSignaling; -import com.quickblox.chat.connections.tcp.QBTcpChatConnectionFabric; -import com.quickblox.chat.connections.tcp.QBTcpConfigurationBuilder; -import com.quickblox.chat.listeners.QBVideoChatSignalingManagerListener; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.groupchatwebrtc.util.ChatPingAlarmManager; -import com.quickblox.sample.groupchatwebrtc.utils.Consts; -import com.quickblox.sample.groupchatwebrtc.utils.SettingsUtil; -import com.quickblox.sample.groupchatwebrtc.utils.WebRtcSessionManager; -import com.quickblox.users.model.QBUser; -import com.quickblox.videochat.webrtc.QBRTCClient; -import com.quickblox.videochat.webrtc.QBRTCConfig; - -import org.jivesoftware.smackx.ping.PingFailedListener; - -import androidx.annotation.Nullable; - -/** - * QuickBlox team - */ -public class CallService extends Service { - private static final String TAG = CallService.class.getSimpleName(); - private QBChatService chatService; - private QBRTCClient rtcClient; - private PendingIntent pendingIntent; - private int currentCommand; - private QBUser currentUser; - - public static void start(Context context, QBUser qbUser, PendingIntent pendingIntent) { - Intent intent = new Intent(context, CallService.class); - - intent.putExtra(Consts.EXTRA_COMMAND_TO_SERVICE, Consts.COMMAND_LOGIN); - intent.putExtra(Consts.EXTRA_QB_USER, qbUser); - intent.putExtra(Consts.EXTRA_PENDING_INTENT, pendingIntent); - - context.startService(intent); - } - - public static void start(Context context, QBUser qbUser) { - start(context, qbUser, null); - } - - @Override - public void onCreate() { - super.onCreate(); - - createChatService(); - - Log.d(TAG, "Service onCreate()"); - } - - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - Log.d(TAG, "Service started"); - - parseIntentExtras(intent); - - startSuitableActions(); - - return START_REDELIVER_INTENT; - } - - private void parseIntentExtras(Intent intent) { - if (intent != null && intent.getExtras() != null) { - currentCommand = intent.getIntExtra(Consts.EXTRA_COMMAND_TO_SERVICE, Consts.COMMAND_NOT_FOUND); - pendingIntent = intent.getParcelableExtra(Consts.EXTRA_PENDING_INTENT); - currentUser = (QBUser) intent.getSerializableExtra(Consts.EXTRA_QB_USER); - } - } - - private void startSuitableActions() { - if (currentCommand == Consts.COMMAND_LOGIN) { - startLoginToChat(); - } else if (currentCommand == Consts.COMMAND_LOGOUT) { - logout(); - } - } - - private void createChatService() { - if (chatService == null) { - QBTcpConfigurationBuilder configurationBuilder = new QBTcpConfigurationBuilder(); - configurationBuilder.setSocketTimeout(0); - QBChatService.setConnectionFabric(new QBTcpChatConnectionFabric(configurationBuilder)); - - QBChatService.setDebugEnabled(true); - chatService = QBChatService.getInstance(); - } - } - - private void startLoginToChat() { - if (!chatService.isLoggedIn()) { - loginToChat(currentUser); - } else { - sendResultToActivity(true, null); - } - } - - private void loginToChat(QBUser qbUser) { - chatService.login(qbUser, new QBEntityCallback() { - @Override - public void onSuccess(QBUser qbUser, Bundle bundle) { - Log.d(TAG, "login onSuccess"); - startActionsOnSuccessLogin(); - } - - @Override - public void onError(QBResponseException e) { - Log.d(TAG, "login onError " + e.getMessage()); - sendResultToActivity(false, e.getMessage() != null - ? e.getMessage() - : "Login error"); - } - }); - } - - private void startActionsOnSuccessLogin() { - initPingListener(); - initQBRTCClient(); - sendResultToActivity(true, null); - } - - private void initPingListener() { - ChatPingAlarmManager.onCreate(this); - ChatPingAlarmManager.getInstanceFor().addPingListener(new PingFailedListener() { - @Override - public void pingFailed() { - Log.d(TAG, "Ping chat server failed"); - } - }); - } - - private void initQBRTCClient() { - rtcClient = QBRTCClient.getInstance(getApplicationContext()); - // Add signalling manager - chatService.getVideoChatWebRTCSignalingManager().addSignalingManagerListener(new QBVideoChatSignalingManagerListener() { - @Override - public void signalingCreated(QBSignaling qbSignaling, boolean createdLocally) { - if (!createdLocally) { - rtcClient.addSignaling((QBWebRTCSignaling) qbSignaling); - } - } - }); - - // Configure - QBRTCConfig.setDebugEnabled(true); - SettingsUtil.configRTCTimers(CallService.this); - - // Add service as callback to RTCClient - rtcClient.addSessionCallbacksListener(WebRtcSessionManager.getInstance(this)); - rtcClient.prepareToProcessCalls(); - } - - private void sendResultToActivity(boolean isSuccess, String errorMessage) { - if (pendingIntent != null) { - Log.d(TAG, "sendResultToActivity()"); - try { - Intent intent = new Intent(); - intent.putExtra(Consts.EXTRA_LOGIN_RESULT, isSuccess); - intent.putExtra(Consts.EXTRA_LOGIN_ERROR_MESSAGE, errorMessage); - - pendingIntent.send(CallService.this, Consts.EXTRA_LOGIN_RESULT_CODE, intent); - } catch (PendingIntent.CanceledException e) { - String errorMessageSendingResult = e.getMessage(); - Log.d(TAG, errorMessageSendingResult != null - ? errorMessageSendingResult - : "Error sending result to activity"); - } - } - } - - public static void logout(Context context) { - Intent intent = new Intent(context, CallService.class); - intent.putExtra(Consts.EXTRA_COMMAND_TO_SERVICE, Consts.COMMAND_LOGOUT); - context.startService(intent); - } - - private void logout() { - destroyRtcClientAndChat(); - } - - private void destroyRtcClientAndChat() { - if (rtcClient != null) { - rtcClient.destroy(); - } - ChatPingAlarmManager.onDestroy(); - if (chatService != null) { - chatService.logout(new QBEntityCallback() { - @Override - public void onSuccess(Void aVoid, Bundle bundle) { - chatService.destroy(); - } - - @Override - public void onError(QBResponseException e) { - Log.d(TAG, "logout onError " + e.getMessage()); - chatService.destroy(); - } - }); - } - stopSelf(); - } - - @Override - public void onDestroy() { - Log.d(TAG, "Service onDestroy()"); - super.onDestroy(); - } - - @Nullable - @Override - public IBinder onBind(Intent intent) { - Log.d(TAG, "Service onBind)"); - return null; - } - - @Override - public void onTaskRemoved(Intent rootIntent) { - Log.d(TAG, "Service onTaskRemoved()"); - super.onTaskRemoved(rootIntent); - destroyRtcClientAndChat(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/services/gcm/GcmPushListenerService.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/services/gcm/GcmPushListenerService.java deleted file mode 100644 index 306673ba3..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/services/gcm/GcmPushListenerService.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.services.gcm; - -import android.os.Bundle; -import android.util.Log; - -import com.google.android.gms.gcm.GcmListenerService; -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.core.utils.constant.GcmConsts; -import com.quickblox.sample.groupchatwebrtc.services.CallService; -import com.quickblox.users.model.QBUser; - - -public class GcmPushListenerService extends GcmListenerService { - private static final String TAG = GcmPushListenerService.class.getSimpleName(); - - @Override - public void onMessageReceived(String from, Bundle data) { - String message = data.getString(GcmConsts.EXTRA_GCM_MESSAGE); - Log.v(TAG, "From: " + from); - Log.v(TAG, "Message: " + message); - - SharedPrefsHelper sharedPrefsHelper = SharedPrefsHelper.getInstance(); - if (sharedPrefsHelper.hasQbUser()) { - Log.d(TAG, "App have logined user"); - QBUser qbUser = sharedPrefsHelper.getQbUser(); - startLoginService(qbUser); - } - } - - private void startLoginService(QBUser qbUser) { - CallService.start(this, qbUser); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/ChatPingAlarmManager.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/ChatPingAlarmManager.java deleted file mode 100644 index ff2dd4fc0..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/ChatPingAlarmManager.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.util; - - -import android.app.AlarmManager; -import android.app.PendingIntent; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.Bundle; -import android.os.SystemClock; -import android.util.Log; - -import com.quickblox.chat.QBChatService; -import com.quickblox.chat.QBPingManager; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; - -import org.jivesoftware.smackx.ping.PingFailedListener; - -import java.util.concurrent.TimeUnit; - -public class ChatPingAlarmManager { - - //Change interval for your behaviour - private static final long PING_INTERVAL = TimeUnit.SECONDS.toMillis(60); - - private static final String TAG = ChatPingAlarmManager.class.getSimpleName(); - private static final String PING_ALARM_ACTION = "com.quickblox.chat.ping.ACTION"; - - private static final BroadcastReceiver ALARM_BROADCAST_RECEIVER = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - Log.v(TAG, "Ping Alarm broadcast received"); - - if (enabled) { - Log.d(TAG, "Calling pingServer for connection "); - final QBPingManager pingManager = QBChatService.getInstance().getPingManager(); - if (pingManager != null) { - pingManager.pingServer(new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle params) { - } - - @Override - public void onError(QBResponseException responseException) { - if (pingFailedListener != null) { - pingFailedListener.pingFailed(); - } - } - }); - } - - } else { - Log.d(TAG, "NOT calling pingServerIfNecessary (disabled) on connection "); - } - } - }; - - private static Context sContext; - private static PendingIntent sPendingIntent; - private static AlarmManager sAlarmManager; - private static boolean enabled = true; - private static ChatPingAlarmManager instance; - private static PingFailedListener pingFailedListener; - - public static void setEnabled(boolean enabled) { - ChatPingAlarmManager.enabled = enabled; - } - - private ChatPingAlarmManager() { - } - - public void addPingListener(PingFailedListener pingFailedListener) { - this.pingFailedListener = pingFailedListener; - } - - public static synchronized ChatPingAlarmManager getInstanceFor() { - if (instance == null) { - instance = new ChatPingAlarmManager(); - } - return instance; - } - - /** - * Register a pending intent with the AlarmManager to be broadcasted every - * half hour and register the alarm broadcast receiver to receive this - * intent. The receiver will check all known questions if a ping is - * Necessary when invoked by the alarm intent. - * - * @param context - */ - public static void onCreate(Context context) { - sContext = context; - context.registerReceiver(ALARM_BROADCAST_RECEIVER, new IntentFilter(PING_ALARM_ACTION)); - sAlarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); - sPendingIntent = PendingIntent.getBroadcast(context, 0, new Intent(PING_ALARM_ACTION), 0); - sAlarmManager.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, - SystemClock.elapsedRealtime() + PING_INTERVAL, - PING_INTERVAL, sPendingIntent); - } - - /** - * Unregister the alarm broadcast receiver and cancel the alarm. - */ - public static void onDestroy() { - if (sContext != null) { - sContext.unregisterReceiver(ALARM_BROADCAST_RECEIVER); - } - if (sAlarmManager != null) { - sAlarmManager.cancel(sPendingIntent); - } - pingFailedListener = null; - instance = null; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/NetworkConnectionChecker.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/NetworkConnectionChecker.java deleted file mode 100644 index 7c40a9c5d..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/NetworkConnectionChecker.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.util; - -import android.app.Application; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.ConnectivityManager; -import android.net.NetworkInfo; - -import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; - -public class NetworkConnectionChecker { - - private final ConnectivityManager connectivityManager; - - private Set listeners = new CopyOnWriteArraySet<>(); - - public NetworkConnectionChecker(Application context) { - this.connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); - context.registerReceiver(new NetworkStateReceiver(), intentFilter); - } - - public void registerListener(OnConnectivityChangedListener listener) { - listeners.add(listener); - listener.connectivityChanged(isConnectedNow()); - } - - public void unregisterListener(OnConnectivityChangedListener listener) { - listeners.remove(listener); - } - - public boolean isConnectedNow() { - NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); - return activeNetworkInfo != null && activeNetworkInfo.isConnected(); - } - - public interface OnConnectivityChangedListener { - - void connectivityChanged(boolean availableNow); - - } - - private class NetworkStateReceiver extends BroadcastReceiver { - - @Override - public void onReceive(Context context, Intent intent) { - boolean isConnectedNow = isConnectedNow(); - - for (OnConnectivityChangedListener listener : listeners) { - listener.connectivityChanged(isConnectedNow); - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/QBResRequestExecutor.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/QBResRequestExecutor.java deleted file mode 100644 index a0919f029..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/util/QBResRequestExecutor.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.util; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; - - -public class QBResRequestExecutor { - private String TAG = QBResRequestExecutor.class.getSimpleName(); - - public void signUpNewUser(final QBUser newQbUser, final QBEntityCallback callback) { - QBUsers.signUp(newQbUser).performAsync(callback); - } - - public void signInUser(final QBUser currentQbUser, final QBEntityCallback callback) { - QBUsers.signIn(currentQbUser).performAsync(callback); - } - - public void deleteCurrentUser(int currentQbUserID, QBEntityCallback callback) { - QBUsers.deleteUser(currentQbUserID).performAsync(callback); - } - - public void loadUsersByTag(final String tag, final QBEntityCallback> callback) { - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(); - List tags = new LinkedList<>(); - tags.add(tag); - - QBUsers.getUsersByTags(tags, requestBuilder).performAsync(callback); - } - - public void loadUsersByIds(final Collection usersIDs, final QBEntityCallback> callback) { - QBUsers.getUsersByIDs(usersIDs, null).performAsync(callback); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/CameraUtils.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/CameraUtils.java deleted file mode 100755 index f901c3247..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/CameraUtils.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.hardware.Camera; -import android.util.Log; - -/** - * QuickBlox team - */ -public class CameraUtils { - - private static final String TAG = CameraUtils.class.getSimpleName(); - - public static Camera.CameraInfo getCameraInfo(int deviceId) { - - Camera.CameraInfo info; - - try { - info = new Camera.CameraInfo(); - Camera.getCameraInfo(deviceId, info); - } catch (Exception var3) { - info = null; - Log.e(TAG, "getCameraInfo failed on device " + deviceId); - } - return info; - } - - public static boolean isCameraFront(int deviceId) { - Camera.CameraInfo cameraInfo = getCameraInfo(deviceId); - - return (cameraInfo != null && cameraInfo.facing == 1); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/CollectionsUtils.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/CollectionsUtils.java deleted file mode 100644 index d8800a465..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/CollectionsUtils.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.Collection; - - -public class CollectionsUtils { - - public static String makeStringFromUsersFullNames(ArrayList allUsers) { - StringifyArrayList usersNames = new StringifyArrayList<>(); - - for (QBUser usr : allUsers) { - if (usr.getFullName() != null) { - usersNames.add(usr.getFullName()); - } else if (usr.getId() != null) { - usersNames.add(String.valueOf(usr.getId())); - } - } - return usersNames.getItemsAsString().replace(",", ", "); - } - - public static ArrayList getIdsSelectedOpponents(Collection selectedUsers) { - ArrayList opponentsIds = new ArrayList<>(); - if (!selectedUsers.isEmpty()) { - for (QBUser qbUser : selectedUsers) { - opponentsIds.add(qbUser.getId()); - } - } - - return opponentsIds; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/Consts.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/Consts.java deleted file mode 100755 index 6190f505f..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/Consts.java +++ /dev/null @@ -1,63 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.Manifest; - -/** - * QuickBlox team - */ -public interface Consts { - - String QB_CONFIG_FILE_NAME = "qb_config.json"; - - String DEFAULT_USER_PASSWORD = "x6Bt0VDy5"; - - String VERSION_NUMBER = "1.0"; - - int CALL_ACTIVITY_CLOSE = 1000; - - int ERR_LOGIN_ALREADY_TAKEN_HTTP_STATUS = 422; - int ERR_MSG_DELETING_HTTP_STATUS = 401; - - //CALL ACTIVITY CLOSE REASONS - int CALL_ACTIVITY_CLOSE_WIFI_DISABLED = 1001; - String WIFI_DISABLED = "wifi_disabled"; - - String OPPONENTS = "opponents"; - String CONFERENCE_TYPE = "conference_type"; - String EXTRA_TAG = "currentRoomName"; - int MAX_OPPONENTS_COUNT = 6; - - String PREF_CURREN_ROOM_NAME = "current_room_name"; - String PREF_CURRENT_TOKEN = "current_token"; - String PREF_TOKEN_EXPIRATION_DATE = "token_expiration_date"; - - String EXTRA_QB_USER = "qb_user"; - - String EXTRA_USER_ID = "user_id"; - String EXTRA_USER_LOGIN = "user_login"; - String EXTRA_USER_PASSWORD = "user_password"; - String EXTRA_PENDING_INTENT = "pending_Intent"; - - String EXTRA_CONTEXT = "context"; - String EXTRA_OPPONENTS_LIST = "opponents_list"; - String EXTRA_CONFERENCE_TYPE = "conference_type"; - String EXTRA_IS_INCOMING_CALL = "conversation_reason"; - - String EXTRA_LOGIN_RESULT = "login_result"; - String EXTRA_LOGIN_ERROR_MESSAGE = "login_error_message"; - int EXTRA_LOGIN_RESULT_CODE = 1002; - - String[] PERMISSIONS = {Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO}; - - String EXTRA_COMMAND_TO_SERVICE = "command_for_service"; - int COMMAND_NOT_FOUND = 0; - int COMMAND_LOGIN = 1; - int COMMAND_LOGOUT = 2; - String EXTRA_IS_STARTED_FOR_CALL = "isRunForCall"; - String ALREADY_LOGGED_IN = "You have already logged in chat"; - - enum StartConversationReason { - INCOME_CALL_FOR_ACCEPTION, - OUTCOME_CALL_MADE - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/DialogUtil.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/DialogUtil.java deleted file mode 100755 index 7b5bef827..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/DialogUtil.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.content.Context; -import android.widget.Toast; - -/** - * QuickBlox team - */ -public class DialogUtil { - - public static void showToast(Context context, String message) { - Toast.makeText(context, message, Toast.LENGTH_LONG).show(); - } - - public static void showToast(Context context, int messageId) { - Toast.makeText(context, context.getString(messageId), Toast.LENGTH_LONG).show(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/FragmentExecuotr.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/FragmentExecuotr.java deleted file mode 100755 index a694c8aac..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/FragmentExecuotr.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - - -import androidx.fragment.app.Fragment; -import androidx.fragment.app.FragmentManager; - -/** - * QuickBlox team - */ -public class FragmentExecuotr { - - public static void addFragment(FragmentManager fragmentManager, int containerId, Fragment fragment, String tag) { - fragmentManager.beginTransaction().replace(containerId, fragment, tag).commitAllowingStateLoss(); - } - - public static void addFragmentAtTop(FragmentManager fragmentManager, int containerId, Fragment fragment, String tag) { - fragmentManager.beginTransaction().add(containerId, fragment, tag).commitAllowingStateLoss(); - } - - public static void addFragmentWithBackStack(FragmentManager fragmentManager, int containerId, Fragment fragment, String tag) { - fragmentManager.beginTransaction().replace(containerId, fragment, tag).addToBackStack(null).commitAllowingStateLoss(); - } - - public static void removeFragment(FragmentManager fragmentManager, Fragment fragment) { - fragmentManager.beginTransaction().remove(fragment).commitAllowingStateLoss(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/PermissionsChecker.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/PermissionsChecker.java deleted file mode 100644 index a82369782..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/PermissionsChecker.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.content.Context; -import android.content.pm.PackageManager; - -import androidx.core.content.ContextCompat; - -public class PermissionsChecker { - private final Context context; - - public PermissionsChecker(Context context) { - this.context = context; - } - - public boolean lacksPermissions(String... permissions) { - for (String permission : permissions) { - if (lacksPermission(permission)) { - return true; - } - } - return false; - } - - private boolean lacksPermission(String permission) { - return ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_DENIED; - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/PushNotificationSender.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/PushNotificationSender.java deleted file mode 100644 index 39918bf57..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/PushNotificationSender.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.messages.QBPushNotifications; -import com.quickblox.messages.model.QBEnvironment; -import com.quickblox.messages.model.QBEvent; -import com.quickblox.messages.model.QBNotificationType; -import com.quickblox.sample.groupchatwebrtc.R; - -import java.util.ArrayList; - - -public class PushNotificationSender { - - public static void sendPushMessage(ArrayList recipients, String senderName) { - String outMessage = String.format(String.valueOf(R.string.text_push_notification_message), senderName); - - // Send Push: create QuickBlox Push Notification Event - QBEvent qbEvent = new QBEvent(); - qbEvent.setNotificationType(QBNotificationType.PUSH); - qbEvent.setEnvironment(QBEnvironment.DEVELOPMENT); - // Generic push - will be delivered to all platforms (Android, iOS, WP, Blackberry..) - qbEvent.setMessage(outMessage); - - StringifyArrayList userIds = new StringifyArrayList<>(recipients); - qbEvent.setUserIds(userIds); - - QBPushNotifications.createEvent(qbEvent).performAsync(null); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/QBEntityCallbackImpl.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/QBEntityCallbackImpl.java deleted file mode 100644 index 9fdc90267..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/QBEntityCallbackImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.os.Bundle; - -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; - - -public class QBEntityCallbackImpl implements QBEntityCallback { - - @Override - public void onSuccess(T result, Bundle params) { - - } - - @Override - public void onError(QBResponseException responseException) { - - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/QBRTCSessionUtils.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/QBRTCSessionUtils.java deleted file mode 100644 index 28b5de445..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/QBRTCSessionUtils.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.util.SparseArray; - -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.videochat.webrtc.QBRTCTypes; - -public class QBRTCSessionUtils { - - private static final SparseArray peerStateDescriptions = new SparseArray<>(); - - static { - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_PENDING.ordinal(), R.string.opponent_pending); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CONNECTING.ordinal(), R.string.text_status_connect); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CHECKING.ordinal(), R.string.text_status_checking); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CONNECTED.ordinal(), R.string.text_status_connected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_DISCONNECTED.ordinal(), R.string.text_status_disconnected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_CLOSED.ordinal(), R.string.opponent_closed); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_DISCONNECT_TIMEOUT.ordinal(), R.string.text_status_disconnected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_NOT_ANSWER.ordinal(), R.string.text_status_no_answer); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_NOT_OFFER.ordinal(), R.string.text_status_no_answer); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_REJECT.ordinal(), R.string.text_status_rejected); - peerStateDescriptions.put( - QBRTCTypes.QBRTCConnectionState.QB_RTC_CONNECTION_HANG_UP.ordinal(), R.string.text_status_hang_up); - } - - public static Integer getStatusDescriptionResource(QBRTCTypes.QBRTCConnectionState connectionState) { - return peerStateDescriptions.get(connectionState.ordinal()); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/RingtonePlayer.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/RingtonePlayer.java deleted file mode 100755 index 8ac1c2b09..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/RingtonePlayer.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.content.Context; -import android.media.AudioAttributes; -import android.media.AudioManager; -import android.media.MediaPlayer; -import android.media.RingtoneManager; -import android.net.Uri; -import android.util.Log; - -import java.io.IOException; - -/** - * QuickBlox team - */ -public class RingtonePlayer { - - private static final String TAG = RingtonePlayer.class.getSimpleName(); - private MediaPlayer mediaPlayer; - private Context context; - - public RingtonePlayer(Context context, int resource) { - this.context = context; - Uri beepUri = Uri.parse("android.resource://" + context.getPackageName() + "/" + resource); - mediaPlayer = new MediaPlayer(); - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { - AudioAttributes.Builder audioAttributesBuilder = new AudioAttributes.Builder() - .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH) - .setUsage(AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING); - - mediaPlayer.setAudioAttributes(audioAttributesBuilder.build()); - } else { - mediaPlayer.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); - } - - try { - mediaPlayer.setDataSource(context, beepUri); - mediaPlayer.prepare(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - public RingtonePlayer(Context context) { - this.context = context; - Uri notification = getNotification(); - if (notification != null) { - mediaPlayer = new MediaPlayer(); - - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) { - AudioAttributes.Builder audioAttributesBuilder = new AudioAttributes.Builder() - .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC) - .setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE); - - mediaPlayer.setAudioAttributes(audioAttributesBuilder.build()); - } else { - mediaPlayer.setAudioStreamType(AudioManager.STREAM_RING); - } - - try { - mediaPlayer.setDataSource(context, notification); - mediaPlayer.prepare(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - private Uri getNotification() { - Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); - - if (notification == null) { - // notification is null, using backup - notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); - - // I can't see this ever being null (as always have a default notification) - // but just incase - if (notification == null) { - // notification backup is null, using 2nd backup - notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); - } - } - return notification; - } - - public void play(boolean looping) { - Log.i(TAG, "play"); - if (mediaPlayer == null) { - Log.i(TAG, "mediaPlayer isn't created "); - return; - } - mediaPlayer.setLooping(looping); - mediaPlayer.start(); - } - - public synchronized void stop() { - if (mediaPlayer != null) { - try { - mediaPlayer.stop(); - } catch (IllegalStateException e) { - e.printStackTrace(); - } - mediaPlayer.release(); - mediaPlayer = null; - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/SettingsUtil.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/SettingsUtil.java deleted file mode 100755 index 788914d20..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/SettingsUtil.java +++ /dev/null @@ -1,179 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; -import android.util.Log; - -import com.quickblox.sample.groupchatwebrtc.R; -import com.quickblox.videochat.webrtc.QBRTCConfig; -import com.quickblox.videochat.webrtc.QBRTCMediaConfig; - -import java.util.List; - -/** - * QuickBlox team - */ -public class SettingsUtil { - - private static final String TAG = SettingsUtil.class.getSimpleName(); - - private static void setSettingsForMultiCall(List users) { - if (users.size() <= 4) { - setDefaultVideoQuality(); - } else { - //set to minimum settings - QBRTCMediaConfig.setVideoWidth(QBRTCMediaConfig.VideoQuality.QBGA_VIDEO.width); - QBRTCMediaConfig.setVideoHeight(QBRTCMediaConfig.VideoQuality.QBGA_VIDEO.height); - QBRTCMediaConfig.setVideoHWAcceleration(false); - QBRTCMediaConfig.setVideoCodec(null); - } - } - - public static void setSettingsStrategy(List users, SharedPreferences sharedPref, Context context) { - setCommonSettings(sharedPref, context); - if (users.size() == 1) { - setSettingsFromPreferences(sharedPref, context); - } else { - setSettingsForMultiCall(users); - } - } - - private static void setCommonSettings(SharedPreferences sharedPref, Context context) { - String audioCodecDescription = getPreferenceString(sharedPref, context, R.string.pref_audiocodec_key, - R.string.pref_audiocodec_def); - QBRTCMediaConfig.AudioCodec audioCodec = QBRTCMediaConfig.AudioCodec.ISAC.getDescription() - .equals(audioCodecDescription) ? - QBRTCMediaConfig.AudioCodec.ISAC : QBRTCMediaConfig.AudioCodec.OPUS; - Log.e(TAG, "audioCodec =: " + audioCodec.getDescription()); - QBRTCMediaConfig.setAudioCodec(audioCodec); - Log.v(TAG, "audioCodec = " + QBRTCMediaConfig.getAudioCodec()); - // Check Disable built-in AEC flag. - boolean disableBuiltInAEC = getPreferenceBoolean(sharedPref, context, - R.string.pref_disable_built_in_aec_key, - R.string.pref_disable_built_in_aec_default); - - QBRTCMediaConfig.setUseBuildInAEC(!disableBuiltInAEC); - Log.v(TAG, "setUseBuildInAEC = " + QBRTCMediaConfig.isUseBuildInAEC()); - // Check Disable Audio Processing flag. - boolean noAudioProcessing = getPreferenceBoolean(sharedPref, context, - R.string.pref_noaudioprocessing_key, - R.string.pref_noaudioprocessing_default); - QBRTCMediaConfig.setAudioProcessingEnabled(!noAudioProcessing); - Log.v(TAG, "isAudioProcessingEnabled = " + QBRTCMediaConfig.isAudioProcessingEnabled()); - // Check OpenSL ES enabled flag. - boolean useOpenSLES = getPreferenceBoolean(sharedPref, context, - R.string.pref_opensles_key, - R.string.pref_opensles_default); - QBRTCMediaConfig.setUseOpenSLES(useOpenSLES); - Log.v(TAG, "isUseOpenSLES = " + QBRTCMediaConfig.isUseOpenSLES()); - } - - private static void setSettingsFromPreferences(SharedPreferences sharedPref, Context context) { - - // Check HW codec flag. - boolean hwCodec = sharedPref.getBoolean(context.getString(R.string.pref_hwcodec_key), - Boolean.valueOf(context.getString(R.string.pref_hwcodec_default))); - - QBRTCMediaConfig.setVideoHWAcceleration(hwCodec); - - // Get video resolution from settings. - int resolutionItem = Integer.parseInt(sharedPref.getString(context.getString(R.string.pref_resolution_key), - "0")); - Log.e(TAG, "resolutionItem =: " + resolutionItem); - setVideoQuality(resolutionItem); - Log.v(TAG, "resolution = " + QBRTCMediaConfig.getVideoHeight() + "x" + QBRTCMediaConfig.getVideoWidth()); - - // Get start bitrate. - int startBitrate = getPreferenceInt(sharedPref, context, - R.string.pref_startbitratevalue_key, - R.string.pref_startbitratevalue_default); - Log.e(TAG, "videoStartBitrate =: " + startBitrate); - QBRTCMediaConfig.setVideoStartBitrate(startBitrate); - Log.v(TAG, "videoStartBitrate = " + QBRTCMediaConfig.getVideoStartBitrate()); - - int videoCodecItem = Integer.parseInt(getPreferenceString(sharedPref, context, R.string.pref_videocodec_key, "0")); - for (QBRTCMediaConfig.VideoCodec codec : QBRTCMediaConfig.VideoCodec.values()) { - if (codec.ordinal() == videoCodecItem) { - Log.e(TAG, "videoCodecItem =: " + codec.getDescription()); - QBRTCMediaConfig.setVideoCodec(codec); - Log.v(TAG, "videoCodecItem = " + QBRTCMediaConfig.getVideoCodec()); - break; - } - } - // Get camera fps from settings. - int cameraFps = getPreferenceInt(sharedPref, context, R.string.pref_frame_rate_key, R.string.pref_frame_rate_default); - Log.e(TAG, "cameraFps = " + cameraFps); - QBRTCMediaConfig.setVideoFps(cameraFps); - Log.v(TAG, "cameraFps = " + QBRTCMediaConfig.getVideoFps()); - } - - public static void configRTCTimers(Context context) { - SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context); - - long answerTimeInterval = getPreferenceInt(sharedPref, context, - R.string.pref_answer_time_interval_key, - R.string.pref_answer_time_interval_default_value); - QBRTCConfig.setAnswerTimeInterval(answerTimeInterval); - Log.e(TAG, "answerTimeInterval = " + answerTimeInterval); - - int disconnectTimeInterval = getPreferenceInt(sharedPref, context, - R.string.pref_disconnect_time_interval_key, - R.string.pref_disconnect_time_interval_default_value); - QBRTCConfig.setDisconnectTime(disconnectTimeInterval); - Log.e(TAG, "disconnectTimeInterval = " + disconnectTimeInterval); - - long dialingTimeInterval = getPreferenceInt(sharedPref, context, - R.string.pref_dialing_time_interval_key, - R.string.pref_dialing_time_interval_default_value); - QBRTCConfig.setDialingTimeInterval(dialingTimeInterval); - Log.e(TAG, "dialingTimeInterval = " + dialingTimeInterval); - } - - public static boolean isManageSpeakerPhoneByProximity(Context context) { - SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context); - boolean manageSpeakerPhoneByProximity = sharedPref.getBoolean(context.getString(R.string.pref_manage_speakerphone_by_proximity_key), - Boolean.valueOf(context.getString(R.string.pref_manage_speakerphone_by_proximity_default))); - - return manageSpeakerPhoneByProximity; - } - - private static void setVideoQuality(int resolutionItem) { - if (resolutionItem != -1) { - setVideoFromLibraryPreferences(resolutionItem); - } else { - setDefaultVideoQuality(); - } - } - - private static void setDefaultVideoQuality() { - QBRTCMediaConfig.setVideoWidth(QBRTCMediaConfig.VideoQuality.VGA_VIDEO.width); - QBRTCMediaConfig.setVideoHeight(QBRTCMediaConfig.VideoQuality.VGA_VIDEO.height); - } - - private static void setVideoFromLibraryPreferences(int resolutionItem) { - for (QBRTCMediaConfig.VideoQuality quality : QBRTCMediaConfig.VideoQuality.values()) { - if (quality.ordinal() == resolutionItem) { - Log.e(TAG, "resolution =: " + quality.height + ":" + quality.width); - QBRTCMediaConfig.setVideoHeight(quality.height); - QBRTCMediaConfig.setVideoWidth(quality.width); - } - } - } - - private static String getPreferenceString(SharedPreferences sharedPref, Context context, int strResKey, int strResDefValue) { - return sharedPref.getString(context.getString(strResKey), context.getString(strResDefValue)); - } - - private static String getPreferenceString(SharedPreferences sharedPref, Context context, int strResKey, String strResDefValue) { - return sharedPref.getString(context.getString(strResKey), strResDefValue); - } - - public static int getPreferenceInt(SharedPreferences sharedPref, Context context, int strResKey, int strResDefValue) { - return sharedPref.getInt(context.getString(strResKey), Integer.valueOf(context.getString(strResDefValue))); - } - - private static boolean getPreferenceBoolean(SharedPreferences sharedPref, Context context, int StrRes, int strResDefValue) { - return sharedPref.getBoolean(context.getString(StrRes), Boolean.valueOf(context.getString(strResDefValue))); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/UsersUtils.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/UsersUtils.java deleted file mode 100644 index bbf74131e..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/UsersUtils.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.content.Context; -import android.text.TextUtils; - -import com.quickblox.sample.core.utils.SharedPrefsHelper; -import com.quickblox.sample.groupchatwebrtc.db.QbUsersDbManager; -import com.quickblox.users.model.QBUser; - -import java.util.ArrayList; -import java.util.List; - - -public class UsersUtils { - - private static SharedPrefsHelper sharedPrefsHelper; - private static QbUsersDbManager dbManager; - - public static String getUserNameOrId(QBUser qbUser, Integer userId) { - if (qbUser == null) { - return String.valueOf(userId); - } - - String fullName = qbUser.getFullName(); - - return TextUtils.isEmpty(fullName) ? String.valueOf(userId) : fullName; - } - - public static ArrayList getListAllUsersFromIds(ArrayList existedUsers, List allIds) { - ArrayList qbUsers = new ArrayList<>(); - - - for (Integer userId : allIds) { - QBUser stubUser = createStubUserById(userId); - if (!existedUsers.contains(stubUser)) { - qbUsers.add(stubUser); - } - } - - qbUsers.addAll(existedUsers); - - return qbUsers; - } - - private static QBUser createStubUserById(Integer userId) { - QBUser stubUser = new QBUser(userId); - stubUser.setFullName(String.valueOf(userId)); - return stubUser; - } - - public static ArrayList getIdsNotLoadedUsers(ArrayList existedUsers, List allIds) { - ArrayList idsNotLoadedUsers = new ArrayList<>(); - - for (Integer userId : allIds) { - QBUser stubUser = createStubUserById(userId); - if (!existedUsers.contains(stubUser)) { - idsNotLoadedUsers.add(userId); - } - } - - return idsNotLoadedUsers; - } - - public static void removeUserData(Context context) { - if (sharedPrefsHelper == null) { - sharedPrefsHelper = SharedPrefsHelper.getInstance(); - } - sharedPrefsHelper.clearAllData(); - if (dbManager == null) { - dbManager = QbUsersDbManager.getInstance(context); - } - dbManager.clearDB(); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/ValidationUtils.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/ValidationUtils.java deleted file mode 100644 index 223f36b1b..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/ValidationUtils.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.content.Context; -import android.widget.EditText; - -import com.quickblox.sample.groupchatwebrtc.R; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - - -public class ValidationUtils { - - private static boolean isEnteredTextValid(Context context, EditText editText, int resFieldName, int maxLength, boolean checkName) { - - boolean isCorrect; - Pattern p; - if (checkName) { - p = Pattern.compile("^[a-zA-Z][a-zA-Z 0-9]{2," + (maxLength - 1) + "}+$"); - } else { - p = Pattern.compile("^[a-zA-Z][a-zA-Z0-9]{2," + (maxLength - 1) + "}+$"); - } - - Matcher m = p.matcher(editText.getText().toString().trim()); - isCorrect = m.matches(); - - if (!isCorrect) { - editText.setError(String.format(context.getString(R.string.error_name_must_not_contain_special_characters_from_app), - context.getString(resFieldName), - maxLength)); - return false; - } else { - return true; - } - } - - public static boolean isUserNameValid(Context context, EditText editText) { - return isEnteredTextValid(context, editText, R.string.field_name_user_name, 20, true); - } - - public static boolean isRoomNameValid(Context context, EditText editText) { - return isEnteredTextValid(context, editText, R.string.field_name_chat_room_name, 15, false); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/WebRtcSessionManager.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/WebRtcSessionManager.java deleted file mode 100644 index 65bee4ab1..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/utils/WebRtcSessionManager.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.utils; - -import android.content.Context; -import android.util.Log; - -import com.quickblox.sample.groupchatwebrtc.activities.OpponentsActivity; -import com.quickblox.videochat.webrtc.QBRTCSession; -import com.quickblox.videochat.webrtc.callbacks.QBRTCClientSessionCallbacksImpl; - - -public class WebRtcSessionManager extends QBRTCClientSessionCallbacksImpl { - private static final String TAG = WebRtcSessionManager.class.getSimpleName(); - - private static WebRtcSessionManager instance; - private Context context; - - private static QBRTCSession currentSession; - - private WebRtcSessionManager(Context context) { - this.context = context; - } - - public static WebRtcSessionManager getInstance(Context context) { - if (instance == null) { - instance = new WebRtcSessionManager(context); - } - - return instance; - } - - public QBRTCSession getCurrentSession() { - return currentSession; - } - - public void setCurrentSession(QBRTCSession qbCurrentSession) { - currentSession = qbCurrentSession; - } - - @Override - public void onReceiveNewSession(QBRTCSession session) { - Log.d(TAG, "onReceiveNewSession to WebRtcSessionManager"); - - if (currentSession == null) { - setCurrentSession(session); - OpponentsActivity.start(context, true); - } - } - - @Override - public void onSessionClosed(QBRTCSession session) { - Log.d(TAG, "onSessionClosed WebRtcSessionManager"); - - if (session.equals(getCurrentSession())) { - setCurrentSession(null); - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/view/ListPreferenceCompat.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/view/ListPreferenceCompat.java deleted file mode 100644 index 30e62f0d9..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/view/ListPreferenceCompat.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.view; - -import android.annotation.TargetApi; -import android.content.Context; -import android.os.Build; -import android.preference.ListPreference; -import android.text.TextUtils; -import android.util.AttributeSet; - -public class ListPreferenceCompat extends ListPreference { - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public ListPreferenceCompat(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - public ListPreferenceCompat(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public ListPreferenceCompat(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public ListPreferenceCompat(Context context) { - super(context); - } - - @Override - public void setValue(String value) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - super.setValue(value); - } else { - String oldValue = getValue(); - super.setValue(value); - if (!TextUtils.equals(value, oldValue)) { - notifyChanged(); - } - } - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/view/SeekBarPreference.java b/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/view/SeekBarPreference.java deleted file mode 100644 index 2bd78945f..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/java/com/quickblox/sample/groupchatwebrtc/view/SeekBarPreference.java +++ /dev/null @@ -1,110 +0,0 @@ -package com.quickblox.sample.groupchatwebrtc.view; - -import android.content.Context; -import android.content.res.TypedArray; -import android.preference.Preference; -import android.util.AttributeSet; -import android.util.Log; -import android.view.View; -import android.widget.SeekBar; - -import com.quickblox.sample.groupchatwebrtc.R; - -public class SeekBarPreference extends Preference implements SeekBar.OnSeekBarChangeListener { - - private static final String ANDROID_NS = "http://schemas.android.com/apk/res/android"; - private static final String SEEKBAR_NS = "http://schemas.android.com/apk/res-auto"; - - - private Context context; - private SeekBar seekBar; - private int progress, maxSeekBarValue, minSeekBarValue, seekBarStepSize; - - public SeekBarPreference(Context context) { - this(context, null, 0); - } - - public SeekBarPreference(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public SeekBarPreference(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - setLayoutResource(R.layout.seekbar_preference); - - this.context = context; - - initFields(context, attrs); - } - - private void initFields(Context context, AttributeSet attrs) { - int maxValueResourceId = attrs.getAttributeResourceValue(ANDROID_NS, "max", R.integer.pref_default_int_value); - maxSeekBarValue = context.getResources().getInteger(maxValueResourceId); - - int minValueResourceId = attrs.getAttributeResourceValue(SEEKBAR_NS, "min", R.integer.pref_default_int_value); - minSeekBarValue = context.getResources().getInteger(minValueResourceId); - - int stepSizeValueResourceId = attrs.getAttributeResourceValue(SEEKBAR_NS, "stepSize", R.integer.pref_default_int_value); - seekBarStepSize = context.getResources().getInteger(stepSizeValueResourceId); - - Log.v("Attribute", "max = " + maxSeekBarValue); - Log.v("Attribute", "min = " + minSeekBarValue); - Log.v("Attribute", "step = " + seekBarStepSize); - } - - @Override - protected void onBindView(View view) { - super.onBindView(view); - seekBar = (SeekBar) view.findViewById(R.id.seekbar); - seekBar.setMax(maxSeekBarValue); - seekBar.setProgress(progress); - seekBar.setOnSeekBarChangeListener(this); - } - - @Override - public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { - if (!fromUser) - return; - - progress = (progress / seekBarStepSize) * seekBarStepSize; - - if (progress <= minSeekBarValue) { - progress = minSeekBarValue + progress; - } - - setValue(progress); - } - - @Override - public void onStartTrackingTouch(SeekBar seekBar) { - // not used - } - - @Override - public void onStopTrackingTouch(SeekBar seekBar) { - // not used - } - - @Override - protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { - setValue(restoreValue ? getPersistedInt(progress) : (Integer) defaultValue); - } - - public void setValue(int value) { - if (shouldPersist()) { - persistInt(value); - } - - if (value != progress) { - progress = value; - notifyChanged(); - } - - setSummary(String.valueOf(progress)); - } - - @Override - protected Object onGetDefaultValue(TypedArray a, int index) { - return a.getInt(index, 0); - } -} \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_accept_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_accept_call.png deleted file mode 100644 index 29562e518..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_arrow_back.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_arrow_back.png deleted file mode 100644 index 8dc2eb6e5..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_arrow_back_w.png deleted file mode 100644 index 4cd9faa04..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call.png deleted file mode 100755 index 871a1ee75..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call_end_sm.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call_end_sm.png deleted file mode 100755 index 9e50f90c6..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call_grey.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call_grey.png deleted file mode 100644 index 3d0e8ec78..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_camera_front.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_camera_front.png deleted file mode 100644 index a67103382..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_camera_rear.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_camera_rear.png deleted file mode 100644 index 18b501c5b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_checkmark.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_checkmark.png deleted file mode 100644 index 8e6a7c49e..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_group.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_group.png deleted file mode 100644 index c3ca659e4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone.png deleted file mode 100644 index c9e8d04e2..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_off.png deleted file mode 100755 index 576d3bfa3..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png deleted file mode 100755 index 8d9cdd7fd..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png deleted file mode 100755 index 3bda65d32..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_person.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_person.png deleted file mode 100644 index e04e43f94..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_person_big.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_person_big.png deleted file mode 100644 index 5008c0bf1..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_phone_hangup.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_phone_hangup.png deleted file mode 100755 index b7936fc5b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_phonelink_ring.png deleted file mode 100755 index 2a6f5fec9..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_refresh.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_refresh.png deleted file mode 100644 index 16de9a598..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_screen_share.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_screen_share.png deleted file mode 100644 index b49af36e7..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_speaker_phone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_speaker_phone.png deleted file mode 100755 index 7bff8b3f4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_stop_screenshare.png deleted file mode 100644 index 97a78b8cd..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png deleted file mode 100755 index 02888fabe..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_white.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_white.png deleted file mode 100644 index 8224786d1..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_white_24dp.png deleted file mode 100755 index 192343c67..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_videocam.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_videocam.png deleted file mode 100644 index cd93b32e0..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_videocam_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_videocam_w.png deleted file mode 100644 index 4daccdc1b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png deleted file mode 100755 index 05e9dbeed..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png deleted file mode 100755 index f4908010e..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_medium_white_24dp.png deleted file mode 100755 index 743efd664..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_off.png deleted file mode 100755 index 4e4d4dfa2..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_off_white_24dp.png deleted file mode 100755 index 9e0e0284d..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_on.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_on.png deleted file mode 100755 index 53e6b959d..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/pres_img.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/pres_img.png deleted file mode 100644 index 83b44d291..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/qb_logo.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/qb_logo.png deleted file mode 100644 index c7c50a285..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-hdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_accept_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_accept_call.png deleted file mode 100644 index e7a8b21ba..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_arrow_back.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_arrow_back.png deleted file mode 100644 index bb6ad14bd..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_arrow_back_w.png deleted file mode 100644 index 9882fa280..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call.png deleted file mode 100755 index 80ad50b59..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call_end_sm.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call_end_sm.png deleted file mode 100755 index 7783b348b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call_grey.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call_grey.png deleted file mode 100644 index 95e574927..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_camera_front.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_camera_front.png deleted file mode 100644 index 4b0426b24..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_camera_rear.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_camera_rear.png deleted file mode 100644 index 19ff948ac..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_checkmark.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_checkmark.png deleted file mode 100644 index a0380f7bd..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_group.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_group.png deleted file mode 100644 index a2e20f657..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone.png deleted file mode 100644 index 84ab52624..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_off.png deleted file mode 100755 index caf7fca45..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png deleted file mode 100755 index d3d468e2e..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png deleted file mode 100755 index aa495bae4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_person.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_person.png deleted file mode 100644 index 789dddb5f..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_person_big.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_person_big.png deleted file mode 100644 index 76a4c5779..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_phone_hangup.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_phone_hangup.png deleted file mode 100755 index 16bc978b3..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_phonelink_ring.png deleted file mode 100755 index 88cd9f8ec..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_refresh.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_refresh.png deleted file mode 100644 index 37e5894f6..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_screen_share.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_screen_share.png deleted file mode 100644 index 142124e91..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_speaker_phone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_speaker_phone.png deleted file mode 100755 index b38b4de34..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_stop_screenshare.png deleted file mode 100644 index a10098fcf..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png deleted file mode 100755 index 108ffa93b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_white.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_white.png deleted file mode 100644 index af92443ae..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_white_24dp.png deleted file mode 100755 index db99aa34e..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_videocam.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_videocam.png deleted file mode 100644 index 5969f4950..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_videocam_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_videocam_w.png deleted file mode 100644 index ffb5ae0b0..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png deleted file mode 100755 index 20b0a6630..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png deleted file mode 100755 index a448c6d36..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_off.png deleted file mode 100755 index b7a27d5d4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_off_white_24dp.png deleted file mode 100755 index 9ca5c66e0..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_on.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_on.png deleted file mode 100755 index 9e79ad16f..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/pres_img.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/pres_img.png deleted file mode 100644 index b7d005d8b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/qb_logo.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/qb_logo.png deleted file mode 100644 index e2e05ec81..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-mdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_accept_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_accept_call.png deleted file mode 100644 index b2e162259..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_arrow_back.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_arrow_back.png deleted file mode 100644 index fc3b3743c..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_arrow_back_w.png deleted file mode 100644 index cd0875351..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call.png deleted file mode 100755 index e41639177..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call_end_sm.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call_end_sm.png deleted file mode 100755 index 56e1651ab..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call_grey.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call_grey.png deleted file mode 100644 index af3f47b52..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_camera_front.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_camera_front.png deleted file mode 100644 index 2d5ebab27..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_camera_rear.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_camera_rear.png deleted file mode 100644 index e61d4f065..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_checkmark.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_checkmark.png deleted file mode 100644 index 0ea5e7e6e..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_group.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_group.png deleted file mode 100644 index 6372dc1fb..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone.png deleted file mode 100644 index 5f9e6cd32..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_off.png deleted file mode 100755 index 4b5ea40bb..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png deleted file mode 100755 index d4da234ce..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png deleted file mode 100755 index 84ab52624..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_person.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_person.png deleted file mode 100644 index a35be4402..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_person_big.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_person_big.png deleted file mode 100644 index 12a45d97d..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_phone_hangup.png deleted file mode 100755 index d9edd9d10..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_phonelink_ring.png deleted file mode 100755 index 94eb9626e..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_refresh.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_refresh.png deleted file mode 100644 index 015eb0923..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_screen_share.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_screen_share.png deleted file mode 100644 index e30a7450b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_speaker_phone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_speaker_phone.png deleted file mode 100755 index dc3fd75ef..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_stop_screenshare.png deleted file mode 100644 index 5f05b6c85..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png deleted file mode 100755 index a206dac60..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_white.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_white.png deleted file mode 100644 index 103cd61a3..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_white_24dp.png deleted file mode 100755 index af92443ae..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_videocam.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_videocam.png deleted file mode 100644 index 0e50d06be..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_videocam_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_videocam_w.png deleted file mode 100644 index 51804d813..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png deleted file mode 100755 index 9e79ad16f..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png deleted file mode 100755 index f01896163..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_medium_white_24dp.png deleted file mode 100755 index 0947e82ac..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_off.png deleted file mode 100755 index f4a898bf4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_off_white_24dp.png deleted file mode 100755 index b7a27d5d4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_on.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_on.png deleted file mode 100755 index d45d7f667..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/pres_img.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/pres_img.png deleted file mode 100644 index 15f9884cd..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/qb_logo.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/qb_logo.png deleted file mode 100644 index 2290d4d25..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_accept_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_accept_call.png deleted file mode 100644 index 770849665..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_arrow_back.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_arrow_back.png deleted file mode 100644 index 8511be4d0..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png deleted file mode 100644 index 8e4372dc1..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call.png deleted file mode 100755 index 954112462..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call_end_sm.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call_end_sm.png deleted file mode 100755 index a65fe44bb..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call_grey.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call_grey.png deleted file mode 100644 index eae2adbf7..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_camera_front.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_camera_front.png deleted file mode 100644 index 3b25fc0d6..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_camera_rear.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_camera_rear.png deleted file mode 100644 index 82f2d5e46..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_checkmark.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_checkmark.png deleted file mode 100644 index 429c7afaf..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_group.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_group.png deleted file mode 100644 index b087c9c28..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone.png deleted file mode 100755 index cb7beb66a..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_off.png deleted file mode 100755 index 47e9ee603..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png deleted file mode 100755 index 472bc6838..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png deleted file mode 100755 index c9e8d04e2..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_person.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_person.png deleted file mode 100644 index 8d4cd22cf..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_person_big.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_person_big.png deleted file mode 100644 index 0f7d90864..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_phone_hangup.png deleted file mode 100755 index 2cf895af0..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_phonelink_ring.png deleted file mode 100755 index a42a34951..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_refresh.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_refresh.png deleted file mode 100644 index 2348df4d3..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_screen_share.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_screen_share.png deleted file mode 100644 index e4f850d74..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_speaker_phone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_speaker_phone.png deleted file mode 100755 index d776b9838..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png deleted file mode 100644 index 5599e5a35..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png deleted file mode 100755 index 140baaf87..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_white.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_white.png deleted file mode 100644 index a5b5b1c36..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png deleted file mode 100755 index 8224786d1..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_videocam.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_videocam.png deleted file mode 100644 index 9b062eda2..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_videocam_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_videocam_w.png deleted file mode 100644 index 56aaa2375..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png deleted file mode 100755 index 53e6b959d..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png deleted file mode 100755 index 7b0d27f51..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_medium_white_24dp.png deleted file mode 100755 index 6b61b6ae9..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_off.png deleted file mode 100755 index 9f33a81b1..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_off_white_24dp.png deleted file mode 100755 index 4e4d4dfa2..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_on.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_on.png deleted file mode 100755 index 74b8e59a3..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/pres_img.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/pres_img.png deleted file mode 100644 index eb493e057..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/qb_logo.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/qb_logo.png deleted file mode 100644 index 0f7429a61..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_accept_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_accept_call.png deleted file mode 100644 index 734c07205..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_accept_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_arrow_back.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_arrow_back.png deleted file mode 100644 index 56d1819cb..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_arrow_back.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png deleted file mode 100644 index 0bb0ece63..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_arrow_back_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call.png deleted file mode 100755 index a7cc48d1c..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call_end_sm.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call_end_sm.png deleted file mode 100755 index a6ef6552a..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call_end_sm.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call_grey.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call_grey.png deleted file mode 100644 index ba974924d..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_call_grey.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_camera_front.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_camera_front.png deleted file mode 100644 index 46396e717..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_camera_front.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_camera_rear.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_camera_rear.png deleted file mode 100644 index 0d73b2aea..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_camera_rear.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_checkmark.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_checkmark.png deleted file mode 100644 index f774f608f..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_checkmark.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_group.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_group.png deleted file mode 100644 index 6c68fe21f..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_group.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone.png deleted file mode 100755 index 325af96b7..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_off.png deleted file mode 100755 index 2da399d40..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png deleted file mode 100755 index 648ce1595..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png deleted file mode 100755 index 5f9e6cd32..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_microphone_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_person.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_person.png deleted file mode 100644 index b80122227..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_person.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_person_big.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_person_big.png deleted file mode 100644 index 9ff8222a1..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_person_big.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png deleted file mode 100755 index 8570234fe..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_phone_hangup.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_phonelink_ring.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_phonelink_ring.png deleted file mode 100755 index 767fdd50b..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_phonelink_ring.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_refresh.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_refresh.png deleted file mode 100644 index d3ae3130a..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_refresh.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_screen_share.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_screen_share.png deleted file mode 100644 index 86eb5ed48..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_screen_share.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_speaker_phone.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_speaker_phone.png deleted file mode 100755 index 51414aab4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_speaker_phone.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png deleted file mode 100644 index bac4d67b3..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_stop_screenshare.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png deleted file mode 100755 index 10bfed66a..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_white.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_white.png deleted file mode 100644 index 58454db8f..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_white.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png deleted file mode 100755 index 103cd61a3..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_video_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_videocam.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_videocam.png deleted file mode 100644 index 3c909e3da..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_videocam.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_videocam_w.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_videocam_w.png deleted file mode 100644 index 9a61ac4a2..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_videocam_w.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png deleted file mode 100755 index d45d7f667..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_high_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png deleted file mode 100755 index 57a09875e..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_low_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_medium_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_medium_white_24dp.png deleted file mode 100755 index 7a8defd2d..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_medium_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_off.png deleted file mode 100755 index 8ce4ac290..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_off_white_24dp.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_off_white_24dp.png deleted file mode 100755 index f4a898bf4..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_off_white_24dp.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_on.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_on.png deleted file mode 100755 index ed841e6c2..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/ic_volume_on.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/pres_img.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/pres_img.png deleted file mode 100644 index 10e73171d..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/pres_img.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/qb_logo.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/qb_logo.png deleted file mode 100644 index 4260b836a..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable-xxxhdpi/qb_logo.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_cam_toggle_background.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_cam_toggle_background.xml deleted file mode 100644 index ae760c080..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_cam_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_mic_toggle_background.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_mic_toggle_background.xml deleted file mode 100644 index a2fab5553..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_mic_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_speaker_toggle_background.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_speaker_toggle_background.xml deleted file mode 100644 index 25f5b8a4e..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_speaker_toggle_background.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_toggle_button_background.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_toggle_button_background.xml deleted file mode 100644 index 6e5b779e5..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/call_toggle_button_background.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/group_call.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable/group_call.png deleted file mode 100644 index 1cef7d925..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable/group_call.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/ic_mic_off.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/ic_mic_off.xml deleted file mode 100644 index 1a0663209..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/ic_mic_off.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/ic_user_camera_off.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable/ic_user_camera_off.png deleted file mode 100755 index ca2977c57..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable/ic_user_camera_off.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/login_screen.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable/login_screen.png deleted file mode 100644 index 6ebbaab05..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable/login_screen.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/opponents.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable/opponents.png deleted file mode 100644 index ccf01bdc6..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable/opponents.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/p2p.png b/old_samples/sample-videochat-webrtc/src/main/res/drawable/p2p.png deleted file mode 100644 index f04edb804..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/drawable/p2p.png and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_call_end.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_call_end.xml deleted file mode 100755 index d97d9fe65..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_call_end.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_call_take.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_call_take.xml deleted file mode 100755 index e3af6a664..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_call_take.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_cam.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_cam.xml deleted file mode 100644 index 176033493..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_cam.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_mic.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_mic.xml deleted file mode 100644 index ae148b6e8..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_mic.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_speaker.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_speaker.xml deleted file mode 100644 index aeddfc2de..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/selector_toggle_speaker.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_green.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_green.xml deleted file mode 100755 index 954df606f..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_green.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_red.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_red.xml deleted file mode 100755 index aadadbf08..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_red.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_transparent.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_transparent.xml deleted file mode 100644 index 353b8c079..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_transparent.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_white_green.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_white_green.xml deleted file mode 100755 index 921380d57..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_white_green.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_white_red.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_white_red.xml deleted file mode 100755 index ecab943e7..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/shape_oval_white_red.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/drawable/toolbar_shadow.xml b/old_samples/sample-videochat-webrtc/src/main/res/drawable/toolbar_shadow.xml deleted file mode 100644 index 178b097ef..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/drawable/toolbar_shadow.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_login.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_login.xml deleted file mode 100644 index 8c66e3092..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_login.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_main.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_main.xml deleted file mode 100755 index f054d2294..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_opponents.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_opponents.xml deleted file mode 100755 index 77635774f..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_opponents.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_permissions.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_permissions.xml deleted file mode 100644 index 23c099dc8..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_permissions.xml +++ /dev/null @@ -1,8 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_show_image.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_show_image.xml deleted file mode 100644 index 0851db30e..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/activity_show_image.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/connection_popup.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/connection_popup.xml deleted file mode 100644 index e212d5fbc..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/connection_popup.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_audio_conversation.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_audio_conversation.xml deleted file mode 100644 index 95ba09ab5..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_audio_conversation.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_income_call.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_income_call.xml deleted file mode 100755 index 4b59ab8ea..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_income_call.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_item_screen_share.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_item_screen_share.xml deleted file mode 100644 index e674f4880..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_item_screen_share.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_pager.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_pager.xml deleted file mode 100644 index 735664a28..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_pager.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_video_conversation.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_video_conversation.xml deleted file mode 100755 index a26fc947d..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/fragment_video_conversation.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/item_opponents_list.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/item_opponents_list.xml deleted file mode 100755 index 337963549..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/item_opponents_list.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/list_item_opponent_from_call.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/list_item_opponent_from_call.xml deleted file mode 100755 index c48f4f49f..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/list_item_opponent_from_call.xml +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/local_video_view.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/local_video_view.xml deleted file mode 100644 index f56c97301..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/local_video_view.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/preference_version.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/preference_version.xml deleted file mode 100644 index f8f846465..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/preference_version.xml +++ /dev/null @@ -1,11 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/remote_video_view.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/remote_video_view.xml deleted file mode 100755 index 311c017d5..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/remote_video_view.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/seekbar_preference.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/seekbar_preference.xml deleted file mode 100644 index ba3b7d6c9..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/seekbar_preference.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/toolbar_call.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/toolbar_call.xml deleted file mode 100644 index 2733203c8..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/toolbar_call.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_action_buttons_conversation_fragment.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/view_action_buttons_conversation_fragment.xml deleted file mode 100755 index 559ee18da..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_action_buttons_conversation_fragment.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_action_buttons_incoming_fragment.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/view_action_buttons_incoming_fragment.xml deleted file mode 100755 index ce9bcbc27..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_action_buttons_incoming_fragment.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_avatar_and_name.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/view_avatar_and_name.xml deleted file mode 100644 index 192f275f7..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_avatar_and_name.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_for_preference.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/view_for_preference.xml deleted file mode 100644 index 26e0289bd..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_for_preference.xml +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_outgoing_screen.xml b/old_samples/sample-videochat-webrtc/src/main/res/layout/view_outgoing_screen.xml deleted file mode 100644 index 90700b7b0..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/layout/view_outgoing_screen.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_login.xml b/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_login.xml deleted file mode 100644 index 8528f5e32..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_login.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_opponents.xml b/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_opponents.xml deleted file mode 100755 index ac0ec3c98..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_opponents.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_selected_opponents.xml b/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_selected_opponents.xml deleted file mode 100644 index 9e1d5c894..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/menu/activity_selected_opponents.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/menu/conversation_fragment.xml b/old_samples/sample-videochat-webrtc/src/main/res/menu/conversation_fragment.xml deleted file mode 100644 index dd0167cb6..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/menu/conversation_fragment.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/menu/screen_share_fragment.xml b/old_samples/sample-videochat-webrtc/src/main/res/menu/screen_share_fragment.xml deleted file mode 100644 index 78a81cc80..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/menu/screen_share_fragment.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/raw/beep.wav b/old_samples/sample-videochat-webrtc/src/main/res/raw/beep.wav deleted file mode 100755 index 6cbc44afa..000000000 Binary files a/old_samples/sample-videochat-webrtc/src/main/res/raw/beep.wav and /dev/null differ diff --git a/old_samples/sample-videochat-webrtc/src/main/res/values/arrays.xml b/old_samples/sample-videochat-webrtc/src/main/res/values/arrays.xml deleted file mode 100755 index dab582a17..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/values/arrays.xml +++ /dev/null @@ -1,106 +0,0 @@ - - - - - Front - Back - - - - 0 - 1 - - - - Default - HD (1280 x 720) - VGA (640 x 480) - QVGA (320 x 240) - - - - -1 - 0 - 1 - 2 - - - - 0 - 15 - 20 - 30 - - - - Default - 15 fps - 20 fps - 30 fps - - - - Default - Manual - - - - VP8 - VP9 - H264 - - - - 0 - 1 - 2 - - - - ISAC - opus - - - - 0 - 0 - 100 - 100 - - - - 70 - 0 - 30 - 30 - - - - 0 - 0 - 5 - 5 - - - - 70 - 0 - 30 - 30 - - - - 4 - 20 - 22 - 27 - - - - 4 - 20 - 22 - 33 - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/values/attrs.xml b/old_samples/sample-videochat-webrtc/src/main/res/values/attrs.xml deleted file mode 100755 index bca6c1d03..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/values/attrs.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/values/colors.xml b/old_samples/sample-videochat-webrtc/src/main/res/values/colors.xml deleted file mode 100644 index 4389418ba..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/values/colors.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - #FFFFFF - #000000 - #606060 - #1FCECB - #FF0000 - #45D100 - #A9FF80 - #30000000 - #50000000 - #80FFFFFF - #50FFFFFF - #50606060 - #20606060 - #10606060 - #0088e7 - #88333333 - #6e6e6e - #1f1f1f - - #1f1f1f - - #eeeeee - #ffffff - #959595 - #2b2a2a - - #ff2744 - #FC5876 - #cc212121 - #ccffffff - #6e6e6e - @color/text_color_call_type - #1f1f1f - #1f1f1f - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/values/dimens.xml b/old_samples/sample-videochat-webrtc/src/main/res/values/dimens.xml deleted file mode 100755 index 2ee7c5c07..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/values/dimens.xml +++ /dev/null @@ -1,66 +0,0 @@ - - - - 16dp - 16dp - 1dp - - 4dp - 80dp - 136dp - 80dp - - 60dp - 30dp - 8dp - - 16dp - 8dp - 3dp - - 20sp - 18sp - 16sp - - 10 - - 16dp - 16dp - 24dp - 24dp - 16dp - 62dp - 48dp - - @dimen/padding_common_twice - 8dp - 8dp - - 22sp - 16sp - 16sp - 16sp - - 64dp - 16dp - 16dp - 32dp - 64dp - 24dp - 24dp - 176dp - 112dp - 88dp - 64dp - - 78dp - 50dp - 25sp - 200dp - 50dp - - - 400dp - 500dp - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/values/ids.xml b/old_samples/sample-videochat-webrtc/src/main/res/values/ids.xml deleted file mode 100755 index f21084133..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/values/ids.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/values/strings.xml b/old_samples/sample-videochat-webrtc/src/main/res/values/strings.xml deleted file mode 100755 index 9b7dfc585..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/values/strings.xml +++ /dev/null @@ -1,208 +0,0 @@ - - - - 0.9.1 - Video chat sample - Video & Audio \nChat Sample - Create session errors: - - - Disconnected… Please check your Internet connection! - Login… - Sign In… - Updating user… - Creating new user… - Logout… - Loading opponents… - - - You can select up to %d opponents - Error creating new user, please try again - Sign In error. Error - Sign In error - Logout user error. Error - - Login can not be empty - Chat room name can not be empty - - Login Chat error. Please relogin. Error - Update user error. Error - Loading users error. Error - - %s is not available now! - - User name - Chat room name - - %1$s must contain 3 — %2$s alphanumeric Latin characters without space, the first char must be a letter - - - Done - Settings - Screen share - Update opponents list - Logout - Video call - Audio call - - - Settings - Enter to chat - Logged in as %s - %s user selected - %s users selected - - Incoming Call - Also on call: - Edit opponents list - Incoming Audio Call - Incoming Video Call - %s\n\nRinging - User 1, User 2, User 3, User 4, User 5, User 6 - - Pending - Closed - Incoming Audio Call - Incoming Video Call - Connect… - Checking… - Connected - Disconnected - - Rejected - No answer - Hung up - Closed - Time Out - Failed - - Please enter username and chat room name. \nYou can join existed chat room. - User name - Chat room name - - Select users you want to call - - Call was stopped because connection was lost - Connection lost - - "%s is calling you" - - - Video - Call Settings - - Default - 0 - - default_camera_preference - Default Camera - Select default camera - 0 - - frame_rate - Frame Rate (0–30) - 0 - 0 - 30 - 5 - - resolution_preference - Video Format - Enter RTC local video resolution - -1 - - startbitrate_preference - Start bitrate setting - Start bitrate setting - Default - - startbitratevalue_preference - Bandwidth (0–2000) - 0 - 0 - 2000 - 100 - - disable_built_in_aec_preference - Disable built-in AEC - Disable built-in AEC - false - Built-in AEC is not available - - opensles_preference - Use OpenSL ES for audio playback - Use OpenSL ES for audio playback - false - - audioprocessing_preference - Disable audio processing - Disable audio processing pipeline - false - - manage_speakerphone_by_proximity_preference - Manage Speaker Phone by Proximity Sensor - Manage Speaker Phone by Proximity Sensor - Enables managing of Speaker Phone by Proximity Sensor for Audio calls - false - - - answer_time_interval - Answer Time Interval (15–90s) - 60 - 15 - 90 - 5 - - disconnect_time_interval - Disconnect Time Interval (10–90s) - 10 - 10 - 90 - 5 - - Dialing_time_interval - Dialing Time Interval (3–10s) - 5 - 3 - 10 - 1 - - videocodec_preference - Default video codec - Select default video codec - 0 - - hwcodec_preference - Video codec hardware acceleration - true - - Enabled - Disabled - - room_server_url_preference - Room server URL. - Enter a room server URL. - https://apprtc.appspot.com - - displayhud_preference - Display call statistics. - Display call statistics. - false - pref_audio_codec - Default audio codec - ISAC - Select default audio codec - QuickBlox WebRTC\nBuild version 1.12 - screenShot - Accepted - Connection was lost - - and %s other - and %s - Ringing - Stop - \"Failed switch camera\" - - 761750217637 - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/values/styles.xml b/old_samples/sample-videochat-webrtc/src/main/res/values/styles.xml deleted file mode 100644 index 56d00e399..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/values/styles.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/sample-videochat-webrtc/src/main/res/xml/preferences.xml b/old_samples/sample-videochat-webrtc/src/main/res/xml/preferences.xml deleted file mode 100755 index dfeb43033..000000000 --- a/old_samples/sample-videochat-webrtc/src/main/res/xml/preferences.xml +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/screenshots/QB_Credentials_old_samples.png b/old_samples/screenshots/QB_Credentials_old_samples.png deleted file mode 100644 index 39dc42be9..000000000 Binary files a/old_samples/screenshots/QB_Credentials_old_samples.png and /dev/null differ diff --git a/old_samples/sdk-settings.gradle b/old_samples/sdk-settings.gradle deleted file mode 100644 index 5480c640e..000000000 --- a/old_samples/sdk-settings.gradle +++ /dev/null @@ -1,33 +0,0 @@ -//// for development purpose -//// -include ':quickblox-android-sdk-chat' -project(':quickblox-android-sdk-chat').projectDir = new File( '../SDK-android/quickblox-android-sdk-chat') - - -/*include ':quickblox-android-sdk-chat-extensions' -project(':quickblox-android-sdk-chat-extensions').projectDir = new File( '../SDK-android/quickblox-android-sdk-chat-extensions') -*/ - -/*include ':jbosh' -project(':jbosh').projectDir = new File( '../SDK-android/jbosh')*/ - -//include ':quickblox-android-sdk-content' -//project(':quickblox-android-sdk-content').projectDir = new File('../SDK-android/quickblox-android-sdk-content') - -include ':quickblox-android-sdk-core' -project(':quickblox-android-sdk-core').projectDir = new File('../SDK-android/quickblox-android-sdk-core') - -/*include ':quickblox-android-sdk-customobjects' -project(':quickblox-android-sdk-customobjects').projectDir = new File( '../SDK-android/quickblox-android-sdk-customobjects') - -include ':quickblox-android-sdk-location' -project(':quickblox-android-sdk-location').projectDir = new File('../SDK-android/quickblox-android-sdk-location')*/ - -include ':quickblox-android-sdk-messages' -project(':quickblox-android-sdk-messages').projectDir = new File( '../SDK-android/quickblox-android-sdk-messages') - -include ':quickblox-android-sdk-videochat-webrtc' -project(':quickblox-android-sdk-videochat-webrtc').projectDir = new File( '../SDK-android/quickblox-android-sdk-videochat-webrtc') - -include ':quickblox-android-sdk-conference' -project(':quickblox-android-sdk-conference').projectDir = new File( '../SDK-android/quickblox-android-sdk-conference') diff --git a/old_samples/settings.gradle b/old_samples/settings.gradle deleted file mode 100644 index 8a3caa601..000000000 --- a/old_samples/settings.gradle +++ /dev/null @@ -1,10 +0,0 @@ -include 'sample-chat' -include 'sample-content' -include 'sample-core' -include 'sample-custom-objects' -include 'sample-pushnotifications' -include 'sample-users' -include 'sample-videochat-conference' -include 'sample-videochat-kotlin' -include 'sample-videochat-webrtc' -include 'snippets' \ No newline at end of file diff --git a/old_samples/snippets/README.md b/old_samples/snippets/README.md deleted file mode 100644 index b3dd8e2f3..000000000 --- a/old_samples/snippets/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## Snippets - -Dive into code snippets to investigate main principles of QuickBlox. diff --git a/old_samples/snippets/build.gradle b/old_samples/snippets/build.gradle deleted file mode 100644 index 300284139..000000000 --- a/old_samples/snippets/build.gradle +++ /dev/null @@ -1,65 +0,0 @@ -buildscript { - repositories { - maven { url 'https://maven.fabric.io/public' } - } - - dependencies { - classpath "io.fabric.tools:gradle:$rootProject.fabricToolsVersion" - } -} - -apply plugin: 'com.android.application' -apply plugin: 'io.fabric' - -repositories { - maven { url 'https://maven.fabric.io/public' } -} - -android { - compileSdkVersion rootProject.compileSdkVersion - buildToolsVersion rootProject.buildToolsVersion - - defaultConfig { - applicationId "com.sdk.snippets" - minSdkVersion rootProject.minSdkVersion - targetSdkVersion rootProject.targetSdkVersion - versionCode 1 - versionName "1.0" - } - - buildTypes { - debug { - signingConfig signingConfigs.debug - } - } - - signingConfigs { - debug { - storeFile file("../cert/debug.keystore") - storePassword "android" - keyAlias "androiddebugkey" - keyPassword "android" - } - } - - lintOptions { - abortOnError false - } -} - -dependencies { - implementation(project(":sample-core")) - - implementation "com.quickblox:quickblox-android-sdk-chat:$rootProject.qbSdkVersion" - implementation "com.quickblox:quickblox-android-sdk-content:$rootProject.qbSdkVersion" - implementation "com.quickblox:quickblox-android-sdk-customobjects:$rootProject.qbSdkVersion" - implementation "com.quickblox:quickblox-android-sdk-location:$rootProject.qbSdkVersion" - - // twitter digits - implementation('com.digits.sdk.android:digits:1.9.0@aar') { - transitive = true; - } - implementation("com.crashlytics.sdk.android:crashlytics:${rootProject.crashlyticsVersion}@aar") { - transitive = true - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/AndroidManifest.xml b/old_samples/snippets/src/main/AndroidManifest.xml deleted file mode 100644 index f9c28ff9a..000000000 --- a/old_samples/snippets/src/main/AndroidManifest.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/Application.java b/old_samples/snippets/src/main/java/com/sdk/snippets/Application.java deleted file mode 100644 index 0bf99fa9d..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/Application.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.sdk.snippets; - -import com.quickblox.auth.session.QBSettings; -import com.quickblox.core.ServiceZone; -import com.quickblox.sample.core.CoreApp; -import com.sdk.snippets.core.ApplicationConfig; - - -public class Application extends CoreApp { - @Override - public void onCreate() { - super.onCreate(); - - ApplicationConfig.init(getApplicationContext()); - - ApplicationConfig CONFIG = ApplicationConfig.getInstance(); - - // App credentials from QB Admin Panel - QBSettings.getInstance().init(getApplicationContext(), CONFIG.getAppId(), - CONFIG.getAuthKey(), CONFIG.getAuthSecret()); - - if (CONFIG.getApiDomain().equals("https://api.quickblox.com")) { - QBSettings.getInstance().setAccountKey(CONFIG.getAccountKey()); - } else { - // specify custom domains - QBSettings.getInstance().setEndpoints(CONFIG.getApiDomain(), CONFIG.getChatDomain(), ServiceZone.PRODUCTION); - QBSettings.getInstance().setZone(ServiceZone.PRODUCTION); - } - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/Utils.java b/old_samples/snippets/src/main/java/com/sdk/snippets/Utils.java deleted file mode 100644 index d2a81e1a0..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/Utils.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.sdk.snippets; - -import android.content.Context; - -import com.quickblox.core.helper.FileHelper; -import com.quickblox.core.helper.Lo; - -import java.io.BufferedOutputStream; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.OutputStream; - - -public class Utils { - public static String getContentFromFile(InputStream is) { - char[] buffer = new char[1024]; - StringBuilder stringBuilder = new StringBuilder(); - try { - InputStreamReader inputStreamReader = new InputStreamReader(is, "UTF-8"); - BufferedReader bufferedReader = new BufferedReader(inputStreamReader); - while (bufferedReader.read(buffer, 0, 1024) != -1) { - stringBuilder.append(buffer); - } - } catch (IOException e) { - e.printStackTrace(); - } - return stringBuilder.toString(); - } - - public static File getFileFromRawResource(int fileId, Context context) { - InputStream is = context.getResources().openRawResource(fileId); - File file = FileHelper.getFileInputStream(is, "sample" + fileId + ".txt", "qb_snippets12"); - return file; - } - - public static void downloadFile(final InputStream inputStream, final Context ctx) { - Thread thread = new Thread() { - @Override - public void run() { - try { - String filePath = ctx.getFilesDir().getPath().toString() + "/bigFile.pkg"; - File file = new File(filePath); - OutputStream stream = new BufferedOutputStream(new FileOutputStream(file)); - int bufferSize = 1024; - byte[] buffer = new byte[bufferSize]; - int len; - while ((len = inputStream.read(buffer)) != -1) { - stream.write(buffer, 0, len); - } - if (stream != null) { - Lo.g("download done"); - stream.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - }; - thread.start(); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/AuthActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/AuthActivity.java deleted file mode 100644 index ba0d7fdc0..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/AuthActivity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.sdk.snippets.activities; - -import android.content.Context; - -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.modules.SnippetsAuth; - - -public class AuthActivity extends BaseSnippetsActivity { - @Override - public Snippets onCreateSnippets(Context context) { - return new SnippetsAuth(this); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/BaseSnippetsActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/BaseSnippetsActivity.java deleted file mode 100644 index 431d87e4e..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/BaseSnippetsActivity.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.sdk.snippets.activities; - -import android.app.Activity; -import android.content.Context; -import android.os.Bundle; - -import com.sdk.snippets.R; -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.core.SnippetsListView; - - -public abstract class BaseSnippetsActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.snippets_list); - - Snippets snippets = onCreateSnippets(this); - SnippetsListView list = (SnippetsListView) findViewById(R.id.list); - list.initialize(snippets); - } - - public abstract Snippets onCreateSnippets(Context context); -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/ChatActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/ChatActivity.java deleted file mode 100644 index a59fc09fa..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/ChatActivity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.sdk.snippets.activities; - -import android.content.Context; - -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.modules.SnippetsChat; - -public class ChatActivity extends BaseSnippetsActivity { - - @Override - public Snippets onCreateSnippets(Context context) { - return new SnippetsChat(this); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/ContentActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/ContentActivity.java deleted file mode 100644 index f8b63fab4..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/ContentActivity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.sdk.snippets.activities; - -import android.content.Context; - -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.modules.SnippetsContent; - -public class ContentActivity extends BaseSnippetsActivity { - - @Override - public Snippets onCreateSnippets(Context context) { - return new SnippetsContent(this); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/CustomObjectsActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/CustomObjectsActivity.java deleted file mode 100644 index 39e6fcb33..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/CustomObjectsActivity.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.sdk.snippets.activities; - -import android.content.Context; - -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.modules.SnippetsCustomObjects; - -public class CustomObjectsActivity extends BaseSnippetsActivity { - - @Override - public Snippets onCreateSnippets(Context context) { - return new SnippetsCustomObjects(this); - } - -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/LocationsActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/LocationsActivity.java deleted file mode 100644 index 73f682882..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/LocationsActivity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.sdk.snippets.activities; - -import android.content.Context; - -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.modules.SnippetsLocation; - -public class LocationsActivity extends BaseSnippetsActivity { - - @Override - public Snippets onCreateSnippets(Context context) { - return new SnippetsLocation(this); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/PushNotificationsActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/PushNotificationsActivity.java deleted file mode 100644 index ea961a80e..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/PushNotificationsActivity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.sdk.snippets.activities; - -import android.content.Context; - -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.modules.SnippetsPushNotifications; - -public class PushNotificationsActivity extends BaseSnippetsActivity { - - @Override - public Snippets onCreateSnippets(Context context) { - return new SnippetsPushNotifications(context); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/StartSnippetsActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/StartSnippetsActivity.java deleted file mode 100644 index d855726ee..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/StartSnippetsActivity.java +++ /dev/null @@ -1,59 +0,0 @@ -package com.sdk.snippets.activities; - -import android.app.TabActivity; -import android.content.Intent; -import android.os.Bundle; -import android.view.WindowManager; -import android.widget.TabHost; - -import com.sdk.snippets.R; - -public class StartSnippetsActivity extends TabActivity { - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.main); - - TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); - - TabHost.TabSpec auth = tabHost.newTabSpec("tab1"); - TabHost.TabSpec users = tabHost.newTabSpec("tab2"); - TabHost.TabSpec locations = tabHost.newTabSpec("tab3"); - TabHost.TabSpec content = tabHost.newTabSpec("tab4"); - TabHost.TabSpec messages = tabHost.newTabSpec("tab5"); - TabHost.TabSpec customObjects = tabHost.newTabSpec("tab6"); - TabHost.TabSpec chat = tabHost.newTabSpec("tab8"); - - auth.setIndicator("Auth") - .setContent(new Intent(this, AuthActivity.class)); - - users.setIndicator("Users") - .setContent(new Intent(this, UsersActivity.class)); - - locations.setIndicator("Locations") - .setContent(new Intent(this, LocationsActivity.class)); - - content.setIndicator("Content") - .setContent(new Intent(this, ContentActivity.class)); - - messages.setIndicator("Push notifications") - .setContent(new Intent(this, PushNotificationsActivity.class)); - - customObjects.setIndicator("Custom Objects") - .setContent(new Intent(this, CustomObjectsActivity.class)); - - chat.setIndicator("Chat") - .setContent(new Intent(this, ChatActivity.class)); - - tabHost.addTab(auth); - tabHost.addTab(chat); - tabHost.addTab(customObjects); - tabHost.addTab(messages); - tabHost.addTab(content); - tabHost.addTab(users); - tabHost.addTab(locations); - - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/UsersActivity.java b/old_samples/snippets/src/main/java/com/sdk/snippets/activities/UsersActivity.java deleted file mode 100644 index 4db0adedd..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/activities/UsersActivity.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.sdk.snippets.activities; - -import android.content.Context; - -import com.sdk.snippets.core.Snippets; -import com.sdk.snippets.modules.SnippetsUsers; - -public class UsersActivity extends BaseSnippetsActivity { - - @Override - public Snippets onCreateSnippets(Context context) { - return new SnippetsUsers(this); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/core/ApplicationConfig.java b/old_samples/snippets/src/main/java/com/sdk/snippets/core/ApplicationConfig.java deleted file mode 100644 index f474f329f..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/core/ApplicationConfig.java +++ /dev/null @@ -1,187 +0,0 @@ -package com.sdk.snippets.core; - -import android.content.Context; -import android.util.Log; - -import com.sdk.snippets.R; - -import org.json.JSONObject; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - - -public class ApplicationConfig { - - private static ApplicationConfig instance; - private Context ctx; - private Map> servers = new HashMap>(); - private String activeServer; - private boolean useUser1; - - public static synchronized ApplicationConfig init(Context ctx) { - if (instance == null) { - instance = new ApplicationConfig(ctx); - } - - return instance; - } - - public static synchronized ApplicationConfig getInstance() { - if (instance == null) { - throw new NullPointerException("must call 'init' first"); - } - return instance; - } - - - private ApplicationConfig(Context ctx) { - this.ctx = ctx; - - parseJsonServers(); - - Log.d("ApplicationConfig", servers.toString()); - } - - private void parseJsonServers() { - //Get Data From Text Resource File Contains Json Data. - InputStream inputStream = ctx.getResources().openRawResource(R.raw.servers); - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); - - int ctr; - try { - ctr = inputStream.read(); - while (ctr != -1) { - byteArrayOutputStream.write(ctr); - ctr = inputStream.read(); - } - inputStream.close(); - } catch (IOException e) { - e.printStackTrace(); - } - - try { - // Parse the data into jsonobject to get original data in form of json. - JSONObject jObject = new JSONObject(byteArrayOutputStream.toString()); - - - // pasre server - JSONObject jObjectResult = jObject.getJSONObject("servers"); - Iterator keys = jObjectResult.keys(); - while (keys.hasNext()) { - String key = keys.next(); - JSONObject val = jObjectResult.getJSONObject(key); - - Map serverConfig = new HashMap(); - - Iterator keysServer = val.keys(); - while (keysServer.hasNext()) { - String keyServer = keysServer.next(); - Object valueServer = val.get(keyServer); - - serverConfig.put(keyServer, valueServer); - } - - servers.put(key, serverConfig); - } - - //parse other data - activeServer = jObject.getString("active"); - useUser1 = jObject.getBoolean("use_first_user"); - - } catch (Exception e) { - e.printStackTrace(); - } - } - - public String getAppId() { - return servers.get(activeServer).get("app_id").toString(); - } - - public String getAuthKey() { - return (String) servers.get(activeServer).get("auth_key"); - } - - public String getAuthSecret() { - return (String) servers.get(activeServer).get("auth_secret"); - } - - public String getAccountKey() { - return (String) servers.get(activeServer).get("account_key"); - } - - // - public String getApiDomain() { - return (String) servers.get(activeServer).get("api_domain"); - } - - public String getChatDomain() { - return (String) servers.get(activeServer).get("chat_domain"); - } - - public String getBucketName() { - return (String) servers.get(activeServer).get("bucket_name"); - } - - // - public Integer getTestUserId1() { - if (useUser1) { - return (Integer) servers.get(activeServer).get("test_user_id1"); - } else { - return (Integer) servers.get(activeServer).get("test_user_id2"); - } - } - - public String getTestUserLogin1() { - if (useUser1) { - return (String) servers.get(activeServer).get("test_user_login1"); - } else { - return (String) servers.get(activeServer).get("test_user_login2"); - } - } - - public String getTestUserPassword1() { - if (useUser1) { - return (String) servers.get(activeServer).get("test_user_password1"); - } else { - return (String) servers.get(activeServer).get("test_user_password2"); - } - } - - public Integer getTestUserId2() { - if (useUser1) { - return (Integer) servers.get(activeServer).get("test_user_id2"); - } else { - return (Integer) servers.get(activeServer).get("test_user_id1"); - } - } - - public String getTestUserLogin2() { - if (useUser1) { - return (String) servers.get(activeServer).get("test_user_login2"); - } else { - return (String) servers.get(activeServer).get("test_user_login1"); - } - } - - public String getTestUserPassword2() { - if (useUser1) { - return (String) servers.get(activeServer).get("test_user_password2"); - } else { - return (String) servers.get(activeServer).get("test_user_password1"); - } - } - - // - public String getTestDialogId() { - return (String) servers.get(activeServer).get("dialog_id"); - } - - public String getTestRoomJid() { - return String.format("%s_%s@muc.%s", getAppId(), getTestDialogId(), getChatDomain()); - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/core/Snippet.java b/old_samples/snippets/src/main/java/com/sdk/snippets/core/Snippet.java deleted file mode 100644 index dfa0ec44f..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/core/Snippet.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.sdk.snippets.core; - -public abstract class Snippet { - - String title; - String subtitle; - - public Snippet(String title) { - this.title = title; - } - - protected Snippet(String title, String subtitle) { - this.title = title; - this.subtitle = subtitle; - } - - public abstract void execute(); - - public final void performExecution() { - String stitle = subtitle != null ? String.format(" (%s)", subtitle) : ""; - System.out.println(String.format("Start snippet: %s%s", title, stitle)); - - execute(); - } - - public String getTitle() { - return title; - } - - public void setTitle(String title) { - this.title = title; - } - - public String getSubtitle() { - return subtitle; - } - - public void setSubtitle(String subtitle) { - this.subtitle = subtitle; - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/core/SnippetAsync.java b/old_samples/snippets/src/main/java/com/sdk/snippets/core/SnippetAsync.java deleted file mode 100644 index b901db2cc..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/core/SnippetAsync.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.sdk.snippets.core; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.os.AsyncTask; -import android.util.Log; -import android.widget.Toast; - -public abstract class SnippetAsync extends Snippet { - private static final String TAG = SnippetAsync.class.getSimpleName(); - Exception exception; - private Context context; - - public SnippetAsync(String title, Context context) { - super(title); - this.context = context; - } - - public SnippetAsync(String title, String subtitle, Context context) { - super(title, subtitle); - this.context = context; - } - - public void setException(Exception exception) { - this.exception = exception; - } - - public Exception getException() { - return exception; - } - - @SuppressLint("StaticFieldLeak") - @Override - public void execute() { - exception = null; - new AsyncTask() { - - @Override - protected Void doInBackground(Void... objects) { - executeAsync(); - return null; - } - - @Override - protected void onPostExecute(Void result) { - postExecute(); - } - }.execute(); - } - - protected void postExecute() { - if (exception == null) { - Log.i(TAG, ">>> executed successful"); - Toast.makeText(context, " executed successful", Toast.LENGTH_SHORT).show(); - } else { - Log.i(TAG, ">>> errors:" + exception.getLocalizedMessage()); - } - } - - public abstract void executeAsync(); -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/core/Snippets.java b/old_samples/snippets/src/main/java/com/sdk/snippets/core/Snippets.java deleted file mode 100644 index b2472a4df..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/core/Snippets.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.sdk.snippets.core; - -import android.content.Context; -import android.os.Handler; -import android.os.Looper; -import android.util.Log; - -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.sample.core.utils.Toaster; - -import java.util.ArrayList; - -public class Snippets { - - private static final String TAG = Snippet.class.getSimpleName(); - protected Context context; - protected ArrayList snippets = new ArrayList(); - - private Handler handler = new Handler(Looper.getMainLooper()); - - public void log(final String data) { - handler.post(new Runnable() { - @Override - public void run() { - Toaster.shortToast(data); - } - }); - - Log.i(TAG, data); - } - - public void handleErrors(QBResponseException exc) { - String message = String.format("[ERROR] Request has been completed with errors: %s", exc.getErrors() - + ", code: " + exc.getHttpStatusCode()); - Toaster.shortToast(message); - - // print - Log.i(TAG, message); - } - - - public Snippets(Context context) { - this.context = context; - } - - public ArrayList getSnippets() { - return snippets; - } - - public void setSnippets(ArrayList snippets) { - this.snippets = snippets; - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/core/SnippetsListView.java b/old_samples/snippets/src/main/java/com/sdk/snippets/core/SnippetsListView.java deleted file mode 100644 index d94449be7..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/core/SnippetsListView.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.sdk.snippets.core; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.AdapterView; -import android.widget.BaseAdapter; -import android.widget.ListView; -import android.widget.TextView; - -public class SnippetsListView extends ListView { - - public void initialize(Snippets snippets) { - final SnippetsAdapter snippetsAdapter = new SnippetsAdapter(getContext(), snippets); - - setAdapter(snippetsAdapter); - - setOnItemClickListener(new OnItemClickListener() { - @Override - public void onItemClick(AdapterView adapterView, View view, int i, long l) { - Snippet snippet = snippetsAdapter.getSnippet(i); - snippet.performExecution(); - } - }); - } - - public SnippetsListView(Context context) { - super(context); - } - - public SnippetsListView(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public SnippetsListView(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - } - - class SnippetsAdapter extends BaseAdapter { - - Context context; - Snippets snippets; - LayoutInflater inflater; - - public SnippetsAdapter(Context context, Snippets snippets) { - this.context = context; - this.snippets = snippets; - inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); - } - - @Override - public int getCount() { - return snippets.getSnippets().size(); - } - - @Override - public Object getItem(int i) { - return snippets.getSnippets().get(i); - } - - @Override - public long getItemId(int i) { - return i; - } - - public Snippet getSnippet(int index) { - return snippets.getSnippets().get(index); - } - - @Override - public View getView(int i, View convertView, ViewGroup parent) { - final Snippet snippet = (Snippet) getItem(i); - ViewHolder viewHolder; - if (convertView == null) { - convertView = inflater.inflate(android.R.layout.simple_list_item_2, null); - viewHolder = new ViewHolder(); - viewHolder.snippetTitle = (TextView) convertView.findViewById(android.R.id.text1); - viewHolder.snippetSubTitle = (TextView) convertView.findViewById(android.R.id.text2); - convertView.setTag(viewHolder); - } else { - viewHolder = (ViewHolder) convertView.getTag(); - } - - viewHolder.snippetTitle.setText(snippet.getTitle()); - if (snippet.getSubtitle() != null) { - viewHolder.snippetSubTitle.setText(snippet.getSubtitle()); - } else { - viewHolder.snippetSubTitle.setText(""); - } - return convertView; - } - - class ViewHolder { - TextView snippetTitle; - TextView snippetSubTitle; - } - } -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsAuth.java b/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsAuth.java deleted file mode 100644 index 747088e7e..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsAuth.java +++ /dev/null @@ -1,351 +0,0 @@ -package com.sdk.snippets.modules; - -import android.content.Context; -import android.os.Bundle; -import android.util.Log; - -import com.digits.sdk.android.AuthCallback; -import com.digits.sdk.android.Digits; -import com.digits.sdk.android.DigitsException; -import com.digits.sdk.android.DigitsOAuthSigning; -import com.digits.sdk.android.DigitsSession; -import com.quickblox.auth.QBAuth; -import com.quickblox.auth.model.QBProvider; -import com.quickblox.auth.session.BaseService; -import com.quickblox.auth.session.QBSession; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.BaseServiceException; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.Lo; -import com.quickblox.users.model.QBUser; -import com.sdk.snippets.core.ApplicationConfig; -import com.sdk.snippets.core.Snippet; -import com.sdk.snippets.core.SnippetAsync; -import com.sdk.snippets.core.Snippets; -import com.twitter.sdk.android.core.TwitterAuthConfig; -import com.twitter.sdk.android.core.TwitterAuthToken; -import com.twitter.sdk.android.core.TwitterCore; - -import java.util.Map; - -import io.fabric.sdk.android.Fabric; - - -public class SnippetsAuth extends Snippets { - - private static final String TAG = SnippetsAuth.class.getSimpleName(); - - private TwitterAuthConfig authConfig; - - public SnippetsAuth(Context context) { - super(context); - - snippets.add(createSession); - snippets.add(createSessionSynchronous); - // - snippets.add(createSessionWithUser); - snippets.add(createSessionWithUserSynchronous); - // - snippets.add(createSessionWithSocialProvider); - snippets.add(createSessionWithSocialProviderSynchronous); - // - snippets.add(createSessionWithTwitterDigits); - snippets.add(createSessionWithTwitterDigitsSynchronous); - // - snippets.add(destroySession); - snippets.add(destroySessionSynchronous); - // - snippets.add(getSession); - snippets.add(getSessionSynchronous); - } - - - // - /////////////////////////////////// Create session ///////////////////////////////////////////// - // - - - Snippet createSession = new Snippet("create session") { - @Override - public void execute() { - - QBAuth.createSession().performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBSession session, Bundle params) { - Log.i(TAG, "session created, token = " + session.getToken()); - } - - @Override - public void onError(QBResponseException e) { - handleErrors(e); - } - }); - } - }; - - Snippet createSessionSynchronous = new SnippetAsync("create session (synchronous)", context) { - @Override - public void executeAsync() { - QBSession session = null; - try { - session = QBAuth.createSession().perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (session != null) { - Log.i(TAG, "session created, token = " + session.getToken()); - } - } - }; - - - // - /////////////////////////////// Create session with user /////////////////////////////////////// - // - - - Snippet createSessionWithUser = new Snippet("create session", "with user") { - @Override - public void execute() { - - QBAuth.createSession(new QBUser(ApplicationConfig.getInstance().getTestUserLogin1(), - ApplicationConfig.getInstance().getTestUserPassword1())).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBSession session, Bundle args) { - Log.i(TAG, "session created, token = " + session.getToken()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - - try { - BaseService.createFromExistentToken("31ed199120fb998dc472aea785a1825809ad5c04", null); - } catch (BaseServiceException e) { - e.printStackTrace(); - } - } - }; - - Snippet createSessionWithUserSynchronous = new SnippetAsync("create session (synchronous)", "with user", context) { - @Override - public void executeAsync() { - QBSession session = null; - try { - QBUser user = new QBUser(ApplicationConfig.getInstance().getTestUserLogin1(), - ApplicationConfig.getInstance().getTestUserPassword1()); - session = QBAuth.createSession(user).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (session != null) { - Log.i(TAG, "session created, token = " + session.getToken()); - } - } - }; - - - // - ////////////////////////// Create session with social provider ///////////////////////////////// - // - - - Snippet createSessionWithSocialProvider = new Snippet("create session", "with social provider") { - @Override - public void execute() { - - String facebookAccessToken = "AAAEra8jNdnkBABYf3ZBSAz9dgLfyK7tQNttIoaZA1cC40niR6HVS0nYuufZB0ZCn66VJcISM8DO2bcbhEahm2nW01ZAZC1YwpZB7rds37xW0wZDZD"; - - QBAuth.createSessionUsingSocialProvider(QBProvider.FACEBOOK, facebookAccessToken, null).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBSession session, Bundle args) { - Log.i(TAG, "session created, token = " + session.getToken()); - } - - @Override - public void onError(QBResponseException eroors) { - handleErrors(eroors); - } - }); - } - }; - - Snippet createSessionWithSocialProviderSynchronous = new SnippetAsync("create session (synchronous)", "with social provider", context) { - @Override - public void executeAsync() { - QBSession session = null; - try { - String facebookAccessToken = "AAAEra8jNdnkBABYf3ZBSAz9dgLfyK7tQNttIoaZA1cC40niR6HVS0nYuufZB0ZCn66VJcISM8DO2bcbhEahm2nW01ZAZC1YwpZB7rds37xW0wZDZD"; - - session = QBAuth.createSessionUsingSocialProvider(QBProvider.FACEBOOK, facebookAccessToken, null).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (session != null) { - Log.i(TAG, "session created, token = " + session.getToken()); - } - } - }; - - - // - ////////////////////////// Create session with Twitter Digits ///////////////////////////////// - // - - - Snippet createSessionWithTwitterDigits = new Snippet("create session", "with Twitter Digits") { - @Override - public void execute() { - initTwitterDigits(); - authenticateWithTwitterDigits(false); - - } - }; - - Snippet createSessionWithTwitterDigitsSynchronous = new SnippetAsync("create session (synchronous)", "with Twitter Digits", context) { - @Override - public void executeAsync() { - initTwitterDigits(); - authenticateWithTwitterDigits(true); - } - }; - - private void initTwitterDigits() { - if (authConfig == null) { - // Note: Your consumer key and secret should be obfuscated in your source code before shipping. - String consumerKey = "A1NXq7BxZ74NZ3dDzXA1HcSN7"; - String consumerSecret = "Piuy52Kf2m2iHVKpfpffi6xjvOYVI904O6sl1c50TLpntTVsl6"; - - authConfig = new TwitterAuthConfig(consumerKey, consumerSecret); - Fabric.with(context, new TwitterCore(authConfig), new Digits()); - } - } - - private void authenticateWithTwitterDigits(final boolean isSync) { - Digits.authenticate(new AuthCallback() { - @Override - public void success(DigitsSession session, String phoneNumber) { - Map authHeaders = getAuthHeadersBySession(session); - - Lo.g(authHeaders); - - String xAuthServiceProvider = authHeaders.get("X-Auth-Service-Provider"); - String xVerifyCredentialsAuthorization = authHeaders.get("X-Verify-Credentials-Authorization"); - - if (isSync) { - QBSession qbSession = null; - try { - qbSession = QBAuth.createSessionUsingTwitterDigits(xAuthServiceProvider, xVerifyCredentialsAuthorization).perform(); - } catch (QBResponseException e) { - e.printStackTrace(); - } - if (session != null) { - Log.i(TAG, "session created: " + qbSession); - } - } else { - QBAuth.createSessionUsingTwitterDigits(xAuthServiceProvider, xVerifyCredentialsAuthorization).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBSession qbSession, Bundle params) { - Log.i(TAG, "session created: " + qbSession); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - } - - @Override - public void failure(DigitsException exception) { - log(exception.getMessage()); - } - }, "+38"); - } - - private Map getAuthHeadersBySession(DigitsSession digitsSession) { - TwitterAuthToken authToken = (TwitterAuthToken) digitsSession.getAuthToken(); - DigitsOAuthSigning oauthSigning = new DigitsOAuthSigning(authConfig, authToken); - - return oauthSigning.getOAuthEchoHeadersForVerifyCredentials(); - } - - - // - ///////////////////////////////////// Destroy session ////////////////////////////////////////// - // - - - Snippet destroySession = new Snippet("destroy session") { - @Override - public void execute() { - QBAuth.deleteSession().performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Void aVoid, Bundle bundle) { - Log.i(TAG, "success"); - } - - @Override - public void onError(QBResponseException e) { - handleErrors(e); - } - }); - } - }; - - Snippet destroySessionSynchronous = new SnippetAsync("delete session (synchronous)", context) { - @Override - public void executeAsync() { - try { - QBAuth.deleteSession().perform(); - Log.i(TAG, "session destroyed "); - } catch (QBResponseException e) { - Log.i(TAG, "destroy fail"); - setException(e); - } - } - }; - - - // - ///////////////////////////////////// Get session ////////////////////////////////////////// - // - - - Snippet getSession = new Snippet("get session") { - @Override - public void execute() { - - QBAuth.getSession().performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBSession qbSession, Bundle bundle) { - Log.i(TAG, "session: " + qbSession); - } - - @Override - public void onError(QBResponseException strings) { - - } - }); - } - }; - - Snippet getSessionSynchronous = new SnippetAsync("get session (synchronous)", context) { - @Override - public void executeAsync() { - try { - QBSession session = QBAuth.getSession().perform(); - Log.i(TAG, "session: " + session); - } catch (QBResponseException e) { - Log.i(TAG, "get session fail"); - setException(e); - } - } - }; -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsChat.java b/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsChat.java deleted file mode 100644 index 94d219e8f..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsChat.java +++ /dev/null @@ -1,2045 +0,0 @@ -package com.sdk.snippets.modules; - -import android.content.Context; -import android.os.Bundle; -import android.util.Log; - -import com.quickblox.chat.QBChatService; -import com.quickblox.chat.QBMessageStatusesManager; -import com.quickblox.chat.QBPingManager; -import com.quickblox.chat.QBPrivacyListsManager; -import com.quickblox.chat.QBRestChatService; -import com.quickblox.chat.QBRoster; -import com.quickblox.chat.QBSystemMessagesManager; -import com.quickblox.chat.exception.QBChatException; -import com.quickblox.chat.listeners.QBChatDialogMessageListener; -import com.quickblox.chat.listeners.QBChatDialogMessageSentListener; -import com.quickblox.chat.listeners.QBChatDialogParticipantListener; -import com.quickblox.chat.listeners.QBChatDialogTypingListener; -import com.quickblox.chat.listeners.QBMessageStatusListener; -import com.quickblox.chat.listeners.QBPrivacyListListener; -import com.quickblox.chat.listeners.QBRosterListener; -import com.quickblox.chat.listeners.QBSubscriptionListener; -import com.quickblox.chat.listeners.QBSystemMessageListener; -import com.quickblox.chat.model.QBAttachment; -import com.quickblox.chat.model.QBChatDialog; -import com.quickblox.chat.model.QBChatMessage; -import com.quickblox.chat.model.QBDialogCustomData; -import com.quickblox.chat.model.QBDialogType; -import com.quickblox.chat.model.QBPresence; -import com.quickblox.chat.model.QBPrivacyList; -import com.quickblox.chat.model.QBPrivacyListItem; -import com.quickblox.chat.model.QBRosterEntry; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.request.QBRequestGetBuilder; -import com.quickblox.core.request.QBRequestUpdateBuilder; -import com.quickblox.core.request.QueryRule; -import com.quickblox.users.model.QBUser; -import com.sdk.snippets.core.ApplicationConfig; -import com.sdk.snippets.core.Snippet; -import com.sdk.snippets.core.SnippetAsync; -import com.sdk.snippets.core.Snippets; - -import org.jivesoftware.smack.ConnectionListener; -import org.jivesoftware.smack.SmackException; -import org.jivesoftware.smack.XMPPConnection; -import org.jivesoftware.smack.XMPPException; -import org.jivesoftware.smackx.muc.DiscussionHistory; - -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Random; -import java.util.Set; - - -public class SnippetsChat extends Snippets { - - private static final String TAG = SnippetsChat.class.getSimpleName(); - - - // Chat service - // - private QBChatService chatService; - - - //Chat API 3.0 - private QBChatDialog privateChatDialog; - private QBChatDialog groupChatDialog; - - private QBChatDialogMessageListener privateChatDialogMessageListener; - private QBChatDialogMessageListener groupChatDialogMessageListener; - - private QBChatDialogMessageSentListener privateChatDialogMessageSentListener; - private QBChatDialogMessageSentListener groupChatDialogMessageSentListener; - - private QBChatDialogTypingListener privateChatDialogTypingListener; - private QBChatDialogTypingListener groupChatDialogTypingListener; - - private QBChatDialogMessageListener globalChatDialogMessageListener; - - // Message statuses - // - private QBMessageStatusesManager messageStatusesManager; - private QBMessageStatusListener messageStatusListener; - - - // System messages - // - private QBSystemMessagesManager systemMessagesManager; - private QBSystemMessageListener systemMessageListener; - - - private QBChatDialogParticipantListener participantListener; - - - // Roster - // - private QBRoster сhatRoster; - private QBRosterListener rosterListener; - private QBSubscriptionListener subscriptionListener; - - - // Privacy lists - // - private QBPrivacyListsManager privacyListsManager; - private QBPrivacyListListener privacyListListener; - - - public SnippetsChat(final Context context) { - super(context); - - // Init Chat service - initChatService(); - - // Init 1-1 listeners - initPrivateChatMessageListener(); - initIsTypingListener(); - - initMessageSentListener(); - - // Init Group listeners - initGroupChatMessageListener(); - initParticipantListener(); - - // Init Roster and its listeners - initRosterListener(); - initSubscriptionListener(); - - // - snippets.add(loginInChat); - snippets.add(loginInChatSynchronous); - // - snippets.add(isLoggedIn); - // - snippets.add(logoutFromChat); - snippets.add(logoutFromChatSynchronous); - // - // - snippets.add(enableCarbons); - snippets.add(disableCarbons); - snippets.add(getCarbonsEnabled); - // - // - snippets.add(sendPrivateMessageExtended); - // - // - snippets.add(sendIsTypingInPrivateChat); - snippets.add(sendStopTypingInPrivateChat); - snippets.add(sendIsTypingInGroupChat); - snippets.add(sendStopTypingInGroupChat); - // - // - snippets.add(readMessagePrivateChat); - snippets.add(deliverMessagePrivateChat); - snippets.add(readMessageGroupChat); - snippets.add(deliverMessageGroupChat); - // - // - snippets.add(joinRoom); - snippets.add(joinRoomSynchronous); - snippets.add(sendMessageToRoomExtended); - snippets.add(sendMessageToRoomWithoutJoin); - snippets.add(getOnlineRoomUsersSynchronous); - snippets.add(leaveRoom); - // - // - snippets.add(getDialogs); - snippets.add(getDialogsSynchronous); - snippets.add(getDialogsCount); - snippets.add(getDialogsCountSynchronous); - snippets.add(createGroupDialog); - snippets.add(createGroupDialogSynchronous); - - snippets.add(createPrivateDialog); - snippets.add(createPrivateDialogSynchronous); - - snippets.add(updateDialog); - snippets.add(updateDialogSynchronous); - snippets.add(deleteDialog); - snippets.add(deleteDialogSynchronous); - // - snippets.add(getMessages); - snippets.add(getMessagesSynchronous); - snippets.add(markMessagesAsRead); - snippets.add(markMessagesAsReadSynchronous); - snippets.add(deleteMessages); - snippets.add(deleteMessagesSynchronous); - snippets.add(createMessage); - snippets.add(createMessageSynchronous); - // - // - snippets.add(sendPresence); - snippets.add(getRosterUsers); - snippets.add(getUserPresence); - snippets.add(addUserToRoster); - snippets.add(removeUserFromRoster); - snippets.add(confirmAddRequest); - snippets.add(rejectAddRequest); - // - // - snippets.add(getPrivacyLists); - snippets.add(getPrivacyList); - snippets.add(setPrivacyList); - snippets.add(deletePrivacyList); - snippets.add(setDefaultPrivacyList); - // - // - snippets.add(enterInactiveState); - snippets.add(enterActiveState); - // - // - snippets.add(pingServer); - snippets.add(pingServerSynchronous); - // - // - snippets.add(sendSystemMessage); - } - - private void initChatService() { - QBChatService.ConfigurationBuilder configurationBuilder = new QBChatService.ConfigurationBuilder(); - configurationBuilder.setKeepAlive(true) - .setSocketTimeout(0); - QBChatService.setConfigurationBuilder(configurationBuilder); - QBChatService.setDebugEnabled(true); - QBChatService.setDefaultPacketReplyTimeout(10000); - - chatService = QBChatService.getInstance(); - chatService.addConnectionListener(chatConnectionListener); - - // stream management - chatService.setUseStreamManagement(true); - } - - private void initMessageSentListener() { - privateChatDialogMessageSentListener = new QBChatDialogMessageSentListener() { - @Override - public void processMessageSent(String dialogId, QBChatMessage qbChatMessage) { - log("message " + qbChatMessage.getId() + " sent to dialog " + dialogId); - } - - @Override - public void processMessageFailed(String dialogId, QBChatMessage qbChatMessage) { - log("send message " + qbChatMessage.getId() + " has failed to dialog " + dialogId); - } - }; - - groupChatDialogMessageSentListener = new QBChatDialogMessageSentListener() { - @Override - public void processMessageSent(String dialogId, QBChatMessage qbChatMessage) { - log("message " + qbChatMessage.getId() + " sent to dialog " + dialogId); - } - - @Override - public void processMessageFailed(String dialogId, QBChatMessage qbChatMessage) { - log("send message " + qbChatMessage.getId() + " has failed to dialog " + dialogId); - } - }; - } - - private void initMessageStatusManagerAndListener() { - messageStatusesManager = chatService.getMessageStatusesManager(); - - messageStatusListener = new QBMessageStatusListener() { - @Override - public void processMessageDelivered(String messageId, String dialogId, Integer userId) { - log("message delivered: " + messageId + " to user " + userId - + ". DialogId: " + dialogId); - } - - @Override - public void processMessageRead(String messageId, String dialogId, Integer userId) { - log("message read: " + messageId + " to user " + userId - + ". DialogId: " + dialogId); - } - }; - - messageStatusesManager.addMessageStatusListener(messageStatusListener); - } - - private void initGlobalMessageListener() { - globalChatDialogMessageListener = new QBChatDialogMessageListener() { - @Override - public void processMessage(String dialogId, QBChatMessage qbChatMessage, Integer senderId) { - QBRestChatService.getChatDialogById(dialogId).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog chatDialog, Bundle bundle) { - log(chatDialog.getType().toString() + " chat with id " + chatDialog.getDialogId() + " downloaded"); - if (QBDialogType.PRIVATE.equals(chatDialog.getType())) { - privateChatDialog = chatDialog; - privateChatDialog.addMessageListener(privateChatDialogMessageListener); - privateChatDialog.addMessageSentListener(privateChatDialogMessageSentListener); - privateChatDialog.addIsTypingListener(privateChatDialogTypingListener); - } else { - groupChatDialog = chatDialog; - groupChatDialog.addMessageListener(groupChatDialogMessageListener); - groupChatDialog.addMessageSentListener(groupChatDialogMessageSentListener); - groupChatDialog.addIsTypingListener(groupChatDialogTypingListener); - } - } - - @Override - public void onError(QBResponseException e) { - log("Error loading dialog from global message listener: " + e); - } - }); - } - - @Override - public void processError(String dialogId, QBChatException e, QBChatMessage qbChatMessage, Integer senderId) { - log("Received error message to message listener"); - } - }; - - QBChatService.getInstance().getIncomingMessagesManager().addDialogMessageListener(globalChatDialogMessageListener); - } - - - // - ///////////////////////////////////////////// Login/Logout ///////////////////////////////////////////// - // - - - Snippet loginInChat = new Snippet("login to Chat") { - @Override - public void execute() { - - - // init test user - final QBUser qbUser = new QBUser(); - qbUser.setId(ApplicationConfig.getInstance().getTestUserId1()); - qbUser.setPassword(ApplicationConfig.getInstance().getTestUserPassword1()); - - chatService.login(qbUser, new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - - log("success when login"); - - initGlobalMessageListener(); - - // Add Chat message listener - initRoster(); - - initPrivacyListsManager(); - initPrivacyListsListener(); - - initMessageStatusManagerAndListener(); - initSystemMessagesManagerAndListener(); - } - - @Override - public void onError(QBResponseException errors) { - log("error when login: " + errors); - } - }); - } - }; - - Snippet loginInChatSynchronous = new SnippetAsync("login to Chat (synchronous)", context) { - @Override - public void executeAsync() { - - // init test user - QBUser qbUser = new QBUser(); - qbUser.setId(ApplicationConfig.getInstance().getTestUserId1()); - qbUser.setPassword(ApplicationConfig.getInstance().getTestUserPassword1()); - - log("login with user: " + qbUser.getId()); - - if (!chatService.isLoggedIn()) { - - try { - chatService.login(qbUser); - - } catch (SmackException | IOException | XMPPException e) { - setException(e); - } - } - } - - @Override - protected void postExecute() { - super.postExecute(); - final Exception exc = getException(); - - if (exc == null) { - initGlobalMessageListener(); - - log("success when login"); - - initRoster(); - - initPrivacyListsManager(); - initPrivacyListsListener(); - - initMessageStatusManagerAndListener(); - initSystemMessagesManagerAndListener(); - } else { - log("error when login: " + exc.getClass().getSimpleName()); - } - } - }; - - Snippet isLoggedIn = new Snippet("Is logged In") { - @Override - public void execute() { - boolean isLoggedIn = chatService.isLoggedIn(); - - log("isLoggedIn:" + isLoggedIn); - } - }; - - Snippet logoutFromChat = new Snippet("Logout from Chat") { - @Override - public void execute() { - chatService.logout(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - log("Logout success"); - - //chatService.destroy(); - } - - @Override - public void onError(final QBResponseException list) { - log("Logout error:" + list); - } - }); - } - }; - - Snippet logoutFromChatSynchronous = new SnippetAsync("Logout from Chat (synchronous)", context) { - @Override - public void executeAsync() { - try { - chatService.logout(); - - //chatService.destroy(); - } catch (SmackException.NotConnectedException e) { - setException(e); - } - } - - @Override - protected void postExecute() { - super.postExecute(); - final Exception exc = getException(); - - if (exc == null) { - log("Logout success"); - } else { - log("Logout error: " + exc.getClass().getSimpleName()); - } - } - }; - - ConnectionListener chatConnectionListener = new ConnectionListener() { - @Override - public void connected(XMPPConnection connection) { - log("connected"); - } - - @Override - public void authenticated(XMPPConnection connection, boolean authenticated) { - log("authenticated"); - } - - @Override - public void connectionClosed() { - log("connectionClosed"); - } - - @Override - public void connectionClosedOnError(final Exception e) { - log("connectionClosedOnError: " + e.getLocalizedMessage()); - log("isLoggedIn: " + chatService.isLoggedIn()); - - } - - @Override - public void reconnectingIn(final int seconds) { - if (seconds % 5 == 0) { - log("reconnectingIn: " + seconds); - } - } - - @Override - public void reconnectionSuccessful() { - log("reconnectionSuccessful"); - } - - @Override - public void reconnectionFailed(final Exception error) { - log("reconnectionFailed: " + error.getLocalizedMessage()); - } - }; - - - // - ////////////////////////////////////////// Carbons ///////////////////////////////////////////// - // - - - Snippet enableCarbons = new Snippet("enable carbons") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - try { - chatService.enableCarbons(); - } catch (XMPPException e) { - log("enable carbons error: " + e.getLocalizedMessage()); - } catch (SmackException e) { - log("enable carbons error: " + e.getClass().getSimpleName()); - } - } - }; - - Snippet disableCarbons = new Snippet("disable carbons") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - try { - chatService.disableCarbons(); - } catch (XMPPException e) { - log("disable carbons error: " + e.getLocalizedMessage()); - } catch (SmackException e) { - log("disable carbons error: " + e.getClass().getSimpleName()); - } - - } - }; - - Snippet getCarbonsEnabled = new Snippet("get carbons enabled") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - boolean isEnabled = chatService.getCarbonsEnabled(); - log("carbons enabled: " + isEnabled); - } - }; - - - // - ///////////////////////////////////////////// 1-1 Chat ///////////////////////////////////////////// - // - - - private void initPrivateChatMessageListener() { - // Create 1-1 chat is message listener - // - privateChatDialogMessageListener = new QBChatDialogMessageListener() { - @Override - public void processMessage(String s, QBChatMessage qbChatMessage, Integer integer) { - log("received message: " + qbChatMessage.getId()); - - if (qbChatMessage.getSenderId().equals(chatService.getUser().getId())) { - log("Message comes here from carbons"); - } - } - - @Override - public void processError(String s, QBChatException e, QBChatMessage qbChatMessage, Integer integer) { - log("processError: " + e.getLocalizedMessage()); - } - }; - } - - private void initIsTypingListener() { - - // Create 'is typing' listener - groupChatDialogTypingListener = new QBChatDialogTypingListener() { - @Override - public void processUserIsTyping(String dialogId, Integer senderId) { - log("user " + senderId + " is typing. Group dialog id: " + dialogId); - } - - @Override - public void processUserStopTyping(String dialogId, Integer senderId) { - log("user " + senderId + " stop typing. Group dialog id: " + dialogId); - } - }; - - privateChatDialogTypingListener = new QBChatDialogTypingListener() { - @Override - public void processUserIsTyping(String dialogId, Integer senderId) { - log("user " + senderId + " is typing. Private dialog id: " + dialogId); - } - - @Override - public void processUserStopTyping(String dialogId, Integer senderId) { - log("user " + senderId + " stop typing. Private dialog id: " + dialogId); - } - }; - } - - private void initSystemMessagesManagerAndListener() { - systemMessagesManager = chatService.getSystemMessagesManager(); - systemMessageListener = new QBSystemMessageListener() { - @Override - public void processMessage(QBChatMessage qbChatMessage) { - log("process System Message: " + qbChatMessage); - } - - @Override - public void processError(QBChatException e, QBChatMessage qbChatMessage) { - log("process System Message error: " + e); - } - }; - systemMessagesManager.addSystemMessageListener(systemMessageListener); - } - - Snippet sendPrivateMessageExtended = new Snippet("send private message") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } else if (privateChatDialog == null) { - log("Please create private dialog first"); - return; - } - - // create a message - final QBChatMessage chatMessage = new QBChatMessage(); - chatMessage.setBody("Hey " + new Random().nextInt()); - chatMessage.setProperty("name", "bob"); - chatMessage.setProperty("lastname", "boblast"); - chatMessage.setSaveToHistory(true); - chatMessage.setMarkable(true); - - // attach a photo - QBAttachment attachment = new QBAttachment("photo"); - attachment.setId("111"); - attachment.setUrl("www.img.com"); - chatMessage.addAttachment(attachment); - - QBAttachment attachment2 = new QBAttachment("video"); - attachment2.setId("222"); - attachment2.setUrl("www.video.com"); - chatMessage.addAttachment(attachment2); - - privateChatDialog.addIsTypingListener(privateChatDialogTypingListener); - privateChatDialog.addMessageSentListener(privateChatDialogMessageSentListener); - - try { - privateChatDialog.sendMessage(chatMessage); - } catch (SmackException.NotConnectedException e) { - log("send message error: " + e.getClass().getSimpleName()); - } - } - }; - - - // - ////////////////////////////////////// Typing notifications ////////////////////////////////////////// - // - - - Snippet sendIsTypingInPrivateChat = new Snippet("send is typing (private chat)") { - @Override - public void execute() { - if (privateChatDialog == null) { - log("Please create private dialog first"); - return; - } - - privateChatDialog.addIsTypingListener(privateChatDialogTypingListener); - - try { - privateChatDialog.sendIsTypingNotification(); - } catch (XMPPException | SmackException.NotConnectedException e) { - log("send typing error: " + e.getClass().getSimpleName()); - } - } - }; - - Snippet sendStopTypingInPrivateChat = new Snippet("send stop typing (private chat)") { - @Override - public void execute() { - if (privateChatDialog == null) { - log("Please create private dialog first"); - return; - } - - privateChatDialog.addIsTypingListener(privateChatDialogTypingListener); - - try { - privateChatDialog.sendStopTypingNotification(); - } catch (XMPPException | SmackException.NotConnectedException e) { - log("send stop typing error: " + e.getClass().getSimpleName()); - } - } - }; - - Snippet sendIsTypingInGroupChat = new Snippet("send is typing (group chat)") { - @Override - public void execute() { - if (groupChatDialog.isJoined()) { - log("Please join room first"); - return; - } - - try { - groupChatDialog.sendIsTypingNotification(); - } catch (XMPPException e) { - log("send typing error: " + e.getLocalizedMessage()); - } catch (SmackException.NotConnectedException e) { - log("send typing error: " + e.getClass().getSimpleName()); - } - } - }; - - Snippet sendStopTypingInGroupChat = new Snippet("send stop typing (group chat)") { - @Override - public void execute() { - if (groupChatDialog.isJoined()) { - log("Please join room first"); - return; - } - - try { - groupChatDialog.sendStopTypingNotification(); - } catch (XMPPException e) { - log("send typing error: " + e.getLocalizedMessage()); - } catch (SmackException.NotConnectedException e) { - log("send typing error: " + e.getClass().getSimpleName()); - } - } - }; - - - // - /////////////////////////////////////// Read/Delivered ////////////////////////////////////////// - // - - - Snippet readMessagePrivateChat = new Snippet("read message (private chat)") { - @Override - public void execute() { - if (privateChatDialog == null) { - log("Please create private dialog first"); - return; - } - - QBChatMessage status = new QBChatMessage(); - status.setId("267477ab5612312312414124"); - status.setDialogId("267477ab5612312312414124"); - - try { - privateChatDialog.readMessage(status); - } catch (XMPPException | SmackException.NotConnectedException e) { - log("read message error: " + e.getLocalizedMessage()); - } - } - }; - - Snippet deliverMessagePrivateChat = new Snippet("deliver message (private chat)") { - @Override - public void execute() { - if (privateChatDialog == null) { - log("Please create private dialog first"); - return; - } - - QBChatMessage status = new QBChatMessage(); - status.setId("267477ab5612312312414124"); - status.setDialogId("267477ab5612312312414124"); - - try { - privateChatDialog.deliverMessage(status); - } catch (XMPPException | SmackException.NotConnectedException e) { - log("deliver message error: " + e.getLocalizedMessage()); - } - } - }; - - Snippet readMessageGroupChat = new Snippet("deliver message (group chat)") { - @Override - public void execute() { - if (!groupChatDialog.isJoined()) { - log("Please join room first"); - return; - } - - try { - QBChatMessage status = new QBChatMessage(); - status.setId("267477ab5612312312414124"); - status.setSenderId(567); - status.setDialogId("267477ab5612312312414124"); - - groupChatDialog.readMessage(status); - } catch (XMPPException e) { - log("read message error: " + e.getLocalizedMessage()); - } catch (SmackException.NotConnectedException e) { - log("read message error: " + e.getClass().getSimpleName()); - } - } - }; - - Snippet deliverMessageGroupChat = new Snippet("deliver message (group chat)") { - @Override - public void execute() { - if (!groupChatDialog.isJoined()) { - log("Please join room first"); - return; - } - - try { - QBChatMessage status = new QBChatMessage(); - status.setId("267477ab5612312312414124"); - status.setSenderId(567); - status.setDialogId("267477ab5612312312414124"); - - groupChatDialog.deliverMessage(status); - } catch (XMPPException e) { - log("deliver message error: " + e.getLocalizedMessage()); - } catch (SmackException.NotConnectedException e) { - log("deliver message error: " + e.getClass().getSimpleName()); - } - } - }; - - - // - ///////////////////////////////////////////// Group Chat ///////////////////////////////////////////// - // - - - private void initGroupChatMessageListener() { - groupChatDialogMessageListener = new QBChatDialogMessageListener() { - @Override - public void processMessage(String s, QBChatMessage qbChatMessage, Integer integer) { - log("group chat: " + s + ", processMessage: " + qbChatMessage); - } - - @Override - public void processError(String s, QBChatException e, QBChatMessage qbChatMessage, Integer integer) { - log("Group chat: " + s + ", Error: " + e.getCondition().toString()); - } - }; - } - - private void initParticipantListener() { - - participantListener = new QBChatDialogParticipantListener() { - @Override - public void processPresence(String s, QBPresence qbPresence) { - log("groupChat: " + s + ", presence: " + qbPresence); - } - }; - } - - Snippet joinRoom = new Snippet("join Room") { - @Override - public void execute() { - if (groupChatDialog == null) { - log("Please create group dialog first"); - return; - } - - final DiscussionHistory history = new DiscussionHistory(); - history.setMaxStanzas(0); - - final QBEntityCallback clbck = new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - log("join Room success"); - - // add listeners - groupChatDialog.addMessageListener(groupChatDialogMessageListener); - groupChatDialog.addParticipantListener(participantListener); - groupChatDialog.addMessageSentListener(groupChatDialogMessageSentListener); - groupChatDialog.addIsTypingListener(groupChatDialogTypingListener); - } - - @Override - public void onError(final QBResponseException list) { - log("join Room error: " + list); - } - }; - - groupChatDialog.join(history, clbck); - } - }; - - Snippet joinRoomSynchronous = new SnippetAsync("join Room (synchronous)", context) { - @Override - public void executeAsync() { - if (groupChatDialog == null) { - log("Please create group dialog first"); - return; - } - - DiscussionHistory history = new DiscussionHistory(); - history.setMaxStanzas(10); - - try { - groupChatDialog = QBRestChatService.getChatDialogById(ApplicationConfig.getInstance().getTestDialogId()).perform(); - log("dialog ID: " + groupChatDialog.getDialogId()); - - groupChatDialog.join(history); - - // add listeners - groupChatDialog.addMessageListener(groupChatDialogMessageListener); - groupChatDialog.addParticipantListener(participantListener); - groupChatDialog.addIsTypingListener(groupChatDialogTypingListener); - - } catch (XMPPException | SmackException e) { - setException(e); - } catch (QBResponseException e) { - log("Getting dialog error: " + e.getClass().getSimpleName()); - } - } - - @Override - protected void postExecute() { - super.postExecute(); - - if (!chatService.isLoggedIn()) { - return; - } - - final Exception exc = getException(); - - if (exc == null) { - log("Join room success"); - } else { - log("Join error: " + exc.getClass().getSimpleName()); - } - } - }; - - Snippet sendMessageToRoomExtended = new Snippet("send message to room") { - @Override - public void execute() { - if (groupChatDialog == null) { - log("Please create group dialog first"); - return; - } else if (!groupChatDialog.isJoined()) { - log("Please join room first"); - return; - } - - // create a message - QBChatMessage chatMessage = new QBChatMessage(); - chatMessage.setProperty("save_to_history", "1"); // Save to Chat 2.0 history - chatMessage.setBody("Testing qb awesome"); - chatMessage.setMarkable(true); - - try { - groupChatDialog.sendMessage(chatMessage); - } catch (SmackException.NotConnectedException e) { - log("Send message error: " + e.getClass().getSimpleName()); - } catch (IllegalStateException e) { - log("Send message error: " + e.getLocalizedMessage()); - } - } - }; - - Snippet sendMessageToRoomWithoutJoin = new Snippet("send message to room", "w/o join") { - @Override - public void execute() { - if (groupChatDialog == null) { - log("Please create group dialog first"); - return; - } - - groupChatDialog.addMessageListener(groupChatDialogMessageListener); - - log("currentChatRoom: " + groupChatDialog); - - // create a message - QBChatMessage chatMessage = new QBChatMessage(); - chatMessage.setBody("Testing qb awesome"); - chatMessage.setProperty("save_to_history", "1"); // Save to Chat 2.0 history - chatMessage.setMarkable(true); - - try { - groupChatDialog.sendMessageWithoutJoin(chatMessage); - } catch (SmackException.NotConnectedException e) { - log("Send message error: " + e.getClass().getSimpleName()); - } catch (IllegalStateException e) { - log("Send message error: " + e.getLocalizedMessage()); - } - } - }; - - Snippet getOnlineRoomUsersSynchronous = new Snippet("get online room users") { - @Override - public void execute() { - if (groupChatDialog == null) { - log("Please create group dialog first"); - return; - } else if (!groupChatDialog.isJoined()) { - log("Please join room first"); - return; - } - - Collection onlineRoomUsers = null; - try { - onlineRoomUsers = groupChatDialog.requestOnlineUsers(); - } catch (XMPPException | SmackException.NotConnectedException | SmackException.NoResponseException e) { - log("get online users error: " + e.getLocalizedMessage()); - } - - String onlineUser = "online users: "; - if (onlineRoomUsers != null) { - for (Integer userID : onlineRoomUsers) { - onlineUser += userID; - onlineUser += ", "; - } - } - log(onlineUser); - } - }; - - Snippet leaveRoom = new SnippetAsync("leave room", context) { - @Override - public void executeAsync() { - if (groupChatDialog == null) { - log("Please create group dialog first"); - return; - } else if (!groupChatDialog.isJoined()) { - log("Please join room first"); - return; - } - - try { - groupChatDialog.leave(); - groupChatDialog = null; - } catch (XMPPException | SmackException.NotConnectedException e) { - setException(e); - } - } - - @Override - protected void postExecute() { - super.postExecute(); - - if (groupChatDialog == null) { - return; - } - - final Exception exc = getException(); - - if (exc == null) { - log("Leave success"); - } else { - log("Leave error: " + exc.getClass().getSimpleName()); - } - } - }; - - - // - ///////////////////////////////////////////// Chat_2.0 ///////////////////////////////////////////// - // - - - Snippet getDialogs = new Snippet("Get Dialogs") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { //TODO VT need delete after fix QBANDRSDK-526 - log("Please login first"); - return; - } - - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - requestBuilder.setLimit(100); - requestBuilder.addRule("data[class_name]", QueryRule.EQ, "Advert"); - - QBRestChatService.getChatDialogs(null, requestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList dialogs, Bundle args) { - Log.i(TAG, "dialogs: " + dialogs); - - QBChatDialog dialog = dialogs.get(0); - Log.i(TAG, "arr: " + dialog.getCustomData().getArray("arr")); - Log.i(TAG, "bbb: " + dialog.getCustomData().getBoolean("bbb")); - Log.i(TAG, "fff: " + dialog.getCustomData().getFloat("fff")); - Log.i(TAG, "fff2: " + dialog.getCustomData().get("fff")); - Log.i(TAG, "iii: " + dialog.getCustomData().getInteger("iii")); - Log.i(TAG, "name: " + dialog.getCustomData().getString("name")); - try { - SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - Log.i(TAG, "ddd: " + dialog.getCustomData().getDate("ddd", format)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getDialogsSynchronous = new SnippetAsync("Get Dialogs (synchronous)", context) { - @Override - public void executeAsync() { - if (!chatService.isLoggedIn()) { //TODO VT need delete after fix QBANDRSDK-526 - log("Please login first"); - return; - } - - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - requestBuilder.setLimit(100); - requestBuilder.addRule("data[class_name]", QueryRule.EQ, "Advert"); - - List chatDialogsList = null; - - try { - chatDialogsList = QBRestChatService.getChatDialogs(null, requestBuilder).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (chatDialogsList != null) { - Log.i(TAG, "chatDialogsList: " + chatDialogsList); - } - } - }; - - Snippet getDialogsCount = new Snippet("Get Dialogs count") { - @Override - public void execute() { - // - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - - Bundle bundle = new Bundle(); - // - QBRestChatService.getChatDialogsCount(requestBuilder, bundle).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Integer integer, Bundle bundle) { - Log.i(TAG, "dialogsCount: " + integer); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getDialogsCountSynchronous = new SnippetAsync("Get Dialogs count (synchronous)", context) { - @Override - public void executeAsync() { - Bundle bundle = new Bundle(); - - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - - int dialogsCount = -1; - - try { - dialogsCount = QBRestChatService.getChatDialogsCount(requestBuilder, bundle).perform(); - } catch (QBResponseException e) { - setException(e); - } - - Log.i(TAG, "dialogsCount: " + dialogsCount); - } - }; - - Snippet createGroupDialog = new Snippet("Create Group Dialog") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - ArrayList occupantIdsList = new ArrayList<>(); - occupantIdsList.add(ApplicationConfig.getInstance().getTestUserId2()); - occupantIdsList.add(301); - - QBChatDialog dialog = new QBChatDialog(); - dialog.setName("Chat with Garry and John"); - dialog.setPhoto("452444"); - dialog.setType(QBDialogType.GROUP); - dialog.setOccupantsIds(occupantIdsList); - - //init location - final String myLocation = Double.toString(23.45454) + "," + Double.toString(0.4456); - - QBDialogCustomData data = new QBDialogCustomData("Advert"); - data.putString("name", "bingo"); - data.putArray("arr", Arrays.asList(new Double[]{1.32, 2.56})); - data.putBoolean("bbb", true); - data.putFloat("fff", 45.676f); - data.putInteger("iii", 56); - data.putDate("ddd", new Date()); - data.putLocation("loc", Arrays.asList(new Double[]{3.78, 4.87})); - - dialog.setCustomData(data); - - QBRestChatService.createChatDialog(dialog).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - groupChatDialog = dialog; - Log.i(TAG, "dialog: " + dialog); - Log.i(TAG, "arr: " + dialog.getCustomData().getArray("arr")); - Log.i(TAG, "bbb: " + dialog.getCustomData().getBoolean("bbb")); - Log.i(TAG, "fff: " + dialog.getCustomData().getFloat("fff")); - Log.i(TAG, "fff2: " + dialog.getCustomData().get("fff")); - Log.i(TAG, "iii: " + dialog.getCustomData().getInteger("iii")); - Log.i(TAG, "name: " + dialog.getCustomData().getString("name")); - try { - SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - Log.i(TAG, "ddd: " + dialog.getCustomData().getDate("ddd", format)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createGroupDialogSynchronous = new SnippetAsync("Create Group Dialog (synchronous)", context) { - @Override - public void executeAsync() { - if (!QBChatService.getInstance().isLoggedIn()) { - log("Please login first"); - return; - } - - ArrayList occupantIdsList = new ArrayList<>(); - occupantIdsList.add(ApplicationConfig.getInstance().getTestUserId2()); - occupantIdsList.add(301); - // - QBChatDialog dialog = new QBChatDialog(); - dialog.setName("Chat with Garry and John"); - dialog.setPhoto("452444"); - dialog.setType(QBDialogType.GROUP); - dialog.setOccupantsIds(occupantIdsList); - - HashMap data = new HashMap<>(); - data.put("data[class_name]", "Advert"); - data.put("data[name]", "bingo"); - dialog.setCustomData(new QBDialogCustomData(data)); - - try { - groupChatDialog = QBRestChatService.createChatDialog(dialog).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (groupChatDialog != null) { - Log.i(TAG, "dialog: " + groupChatDialog); - } - } - }; - - Snippet createPrivateDialog = new Snippet("Create Private Dialog") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - ArrayList occupantIdsList = new ArrayList<>(); - occupantIdsList.add(ApplicationConfig.getInstance().getTestUserId2()); - - QBChatDialog dialog = new QBChatDialog(); - dialog.setPhoto("452444"); - dialog.setType(QBDialogType.PRIVATE); - dialog.setOccupantsIds(occupantIdsList); - - //init location - final String myLocation = Double.toString(23.45454) + "," + Double.toString(0.4456); - - QBDialogCustomData data = new QBDialogCustomData("Advert"); - data.putString("name", "bingo"); - data.putArray("arr", Arrays.asList(new Double[]{1.32, 2.56})); - data.putBoolean("bbb", true); - data.putFloat("fff", 45.676f); - data.putInteger("iii", 56); - data.putDate("ddd", new Date()); - data.putLocation("loc", Arrays.asList(new Double[]{3.78, 4.87})); - - dialog.setCustomData(data); - - QBRestChatService.createChatDialog(dialog).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - privateChatDialog = dialog; - Log.i(TAG, "dialog: " + dialog); - Log.i(TAG, "arr: " + dialog.getCustomData().getArray("arr")); - Log.i(TAG, "bbb: " + dialog.getCustomData().getBoolean("bbb")); - Log.i(TAG, "fff: " + dialog.getCustomData().getFloat("fff")); - Log.i(TAG, "fff2: " + dialog.getCustomData().get("fff")); - Log.i(TAG, "iii: " + dialog.getCustomData().getInteger("iii")); - Log.i(TAG, "name: " + dialog.getCustomData().getString("name")); - try { - SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - Log.i(TAG, "ddd: " + dialog.getCustomData().getDate("ddd", format)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createPrivateDialogSynchronous = new SnippetAsync("Create Private Dialog (synchronous)", context) { - @Override - public void executeAsync() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - ArrayList occupantIdsList = new ArrayList<>(); - occupantIdsList.add(ApplicationConfig.getInstance().getTestUserId2()); - // - QBChatDialog dialog = new QBChatDialog(); - dialog.setPhoto("452444"); - dialog.setType(QBDialogType.PRIVATE); - dialog.setOccupantsIds(occupantIdsList); - - HashMap data = new HashMap<>(); - data.put("data[class_name]", "Advert"); - data.put("data[name]", "bingo"); - dialog.setCustomData(new QBDialogCustomData(data)); - - try { - privateChatDialog = QBRestChatService.createChatDialog(dialog).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (groupChatDialog != null) { - Log.i(TAG, "dialog: " + groupChatDialog); - } - } - }; - - Snippet updateDialog = new Snippet("Update Dialog") { - @Override - public void execute() { - if (!QBChatService.getInstance().isLoggedIn()) { - log("Please login first"); - return; - } - - QBRequestUpdateBuilder requestBuilder = new QBRequestUpdateBuilder(); - - QBChatDialog dialog = new QBChatDialog("56aa3d7da28f9a5b1f0000cf"); - dialog.setName("Chat with Garry and John"); - dialog.setPhoto("452444"); - - QBDialogCustomData data = new QBDialogCustomData("Advert"); - data.putString("name", "bingo4"); - data.putArray("arr", Arrays.asList(new Double[]{99.0, 100.0, 101.0})); - - dialog.setCustomData(data); - - QBRestChatService.updateGroupChatDialog(dialog, requestBuilder).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBChatDialog dialog, Bundle args) { - Log.i(TAG, "dialog: " + dialog); - - Log.i(TAG, "arr: " + dialog.getCustomData().getArray("arr")); - Log.i(TAG, "bbb: " + dialog.getCustomData().getBoolean("bbb")); - Log.i(TAG, "fff: " + dialog.getCustomData().getFloat("fff")); - Log.i(TAG, "fff2: " + dialog.getCustomData().get("fff")); - Log.i(TAG, "iii: " + dialog.getCustomData().getInteger("iii")); - Log.i(TAG, "name: " + dialog.getCustomData().getString("name")); - try { - SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - Log.i(TAG, "ddd: " + dialog.getCustomData().getDate("ddd", format)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateDialogSynchronous = new SnippetAsync("Update Dialog (synchronous)", context) { - @Override - public void executeAsync() { - - if (!QBChatService.getInstance().isLoggedIn()) { - log("Please login first"); - return; - } - - QBChatDialog dialog = new QBChatDialog("5444bba7535c121d3302245f"); - dialog.setName("Chat with Garry and John"); - dialog.setPhoto("452444"); - - QBRequestUpdateBuilder requestBuilder = new QBRequestUpdateBuilder(); - requestBuilder.pullAll(com.quickblox.chat.Consts.DIALOG_OCCUPANTS, 378); - - QBChatDialog updatedDialog = null; - try { - updatedDialog = QBRestChatService.updateGroupChatDialog(dialog, requestBuilder).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (updatedDialog != null) { - Log.i(TAG, "dialog: " + updatedDialog); - } - } - }; - - Snippet deleteDialog = new Snippet("Delete Dialog") { - @Override - public void execute() { - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - String dialogID = "5444bba7535c121d3302245f"; - - QBRestChatService.deleteDialog(dialogID, true).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, "dialog deleted"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteDialogSynchronous = new SnippetAsync("Delete Dialog (synchronous)", context) { - @Override - public void executeAsync() { - - if (!chatService.isLoggedIn()) { - log("Please login first"); - return; - } - - String dialogID = "5444bbc7535c12e10f0233be"; - - try { - QBRestChatService.deleteDialog(dialogID, true).perform(); - Log.i(TAG, "dialog deleted"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - Snippet getMessages = new Snippet("Get Messages", "with dialog id") { - @Override - public void execute() { - QBChatDialog qbDialog = new QBChatDialog(ApplicationConfig.getInstance().getTestDialogId()); - - QBRequestGetBuilder customObjectRequestBuilder = new QBRequestGetBuilder(); - customObjectRequestBuilder.setLimit(100); - - QBRestChatService.getDialogMessages(qbDialog, customObjectRequestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList messages, Bundle args) { - for (QBChatMessage msg : messages) { - Log.i(TAG, "message\n: " + msg); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getMessagesSynchronous = new SnippetAsync("Get Messages (synchronous)", "with dialog id", context) { - @Override - public void executeAsync() { - QBRequestGetBuilder customObjectRequestBuilder = new QBRequestGetBuilder(); - customObjectRequestBuilder.setLimit(100); - - QBChatDialog dialog = new QBChatDialog(ApplicationConfig.getInstance().getTestDialogId()); - - List dialogMessagesList = null; - try { - dialogMessagesList = QBRestChatService.getDialogMessages(dialog, customObjectRequestBuilder).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (dialogMessagesList != null) { - for (QBChatMessage msg : dialogMessagesList) { - Log.i(TAG, "message\n: " + msg); - } - } - } - }; - - Snippet markMessagesAsRead = new Snippet("Mark Messages as read") { - @Override - public void execute() { - StringifyArrayList messagesIDs = new StringifyArrayList<>(); - messagesIDs.add("53cfc62ee4b05ed6d7cf17d3"); - messagesIDs.add("53cfc62fe4b05ed6d7cf17d5"); - - String dialogId = "53cfc593efa3573ebd000017"; - - QBRestChatService.markMessagesAsRead(dialogId, messagesIDs).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, "read OK"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet markMessagesAsReadSynchronous = new SnippetAsync("Mark Messages as read (synchronous)", context) { - @Override - public void executeAsync() { - StringifyArrayList messagesIDs = new StringifyArrayList<>(); - messagesIDs.add("53cfc62ee4b05ed6d7cf17d3"); - messagesIDs.add("53cfc62fe4b05ed6d7cf17d5"); - - try { - QBRestChatService.markMessagesAsRead("53cfc593efa3573ebd000017", messagesIDs).perform(); - Log.i(TAG, "read OK"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - Snippet deleteMessages = new Snippet("Delete Messages") { - @Override - public void execute() { - Set messagesIds = new HashSet() {{ - add("546cc8040eda8f2dd7ee449c"); - add("546cc80f0eda8f2dd7ee449d"); - }}; - - QBRestChatService.deleteMessages(messagesIds, false).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, "deleted OK"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteMessagesSynchronous = new SnippetAsync("Delete Messages (synchronous)", context) { - @Override - public void executeAsync() { - Set messagesIds = new HashSet() {{ - add("546cc8b1535c12942e00133a"); - add("546cce5e535c1203cb001cc0"); - }}; - - try { - QBRestChatService.deleteMessages(messagesIds, false).perform(); - Log.i(TAG, "deleted OK"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - Snippet createMessage = new Snippet("Create Message ") { - @Override - public void execute() { - QBChatMessage msg = new QBChatMessage(); - msg.setBody("hello2"); - msg.setRecipientId(ApplicationConfig.getInstance().getTestUserId2()); - - QBAttachment attachment = new QBAttachment("photo"); - attachment.setId("123123"); - msg.addAttachment(attachment); - QBAttachment attachment2 = new QBAttachment("video"); - attachment2.setUrl("api.qb.com/image.jpg"); - msg.addAttachment(attachment2); - - msg.setProperty("p1", "v1"); - msg.setProperty("p2", "v2"); - - QBRestChatService.createMessage(msg, false).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBChatMessage result, Bundle params) { - Log.i(TAG, "created message\n: " + result); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createMessageSynchronous = new SnippetAsync("Create Message (synchronous)", context) { - @Override - public void executeAsync() { - QBChatMessage msg = new QBChatMessage(); - msg.setBody("hello2"); - msg.setDialogId(ApplicationConfig.getInstance().getTestDialogId()); - - QBAttachment attachment = new QBAttachment("photo"); - attachment.setId("123123"); - msg.addAttachment(attachment); - QBAttachment attachment2 = new QBAttachment("video"); - attachment2.setUrl("api.qb.com/image.jpg"); - msg.addAttachment(attachment2); - - msg.setProperty("p1", "v1"); - msg.setProperty("p2", "v2"); - - QBChatMessage createdMsg = null; - try { - createdMsg = QBRestChatService.createMessage(msg, false).perform(); - } catch (QBResponseException e) { - e.printStackTrace(); - } - - if (createdMsg != null) { - Log.i(TAG, "created message\n: " + createdMsg); - } - } - }; - - - // - ///////////////////////////////////////////// Roster ///////////////////////////////////////////// - // - - - private void initRoster() { - сhatRoster = chatService.getRoster(QBRoster.SubscriptionMode.mutual, subscriptionListener); - сhatRoster.addRosterListener(rosterListener); - } - - private void initRosterListener() { - rosterListener = new QBRosterListener() { - @Override - public void entriesDeleted(Collection userIds) { - log("entriesDeleted: " + userIds); - } - - @Override - public void entriesAdded(Collection userIds) { - log("entriesAdded: " + userIds); - } - - @Override - public void entriesUpdated(Collection userIds) { - log("entriesUpdated: " + userIds); - } - - @Override - public void presenceChanged(QBPresence presence) { - log("presenceChanged: " + presence); - } - }; - } - - private void initSubscriptionListener() { - subscriptionListener = new QBSubscriptionListener() { - @Override - public void subscriptionRequested(int userId) { - log("subscriptionRequested: " + userId); - } - }; - } - - Snippet sendPresence = new Snippet("send presence") { - @Override - public void execute() { - if (сhatRoster == null) { - log("Please login first"); - return; - } - - QBPresence presence = new QBPresence(QBPresence.Type.online, "I'm at home", 1, QBPresence.Mode.available); - try { - сhatRoster.sendPresence(presence); - } catch (SmackException.NotConnectedException e) { - log("error: " + e.getClass().getSimpleName()); - } - } - }; - - Snippet getRosterUsers = new Snippet("get roster users") { - @Override - public void execute() { - if (сhatRoster == null) { - log("Please login first"); - return; - } - - Collection entries = сhatRoster.getEntries(); - log("Roster users: " + entries); - } - }; - - Snippet getUserPresence = new Snippet("get user's presence") { - @Override - public void execute() { - if (сhatRoster == null) { - log("Please login first"); - return; - } - - int userID = ApplicationConfig.getInstance().getTestUserId2(); - - QBPresence presence = сhatRoster.getPresence(userID); - if (presence == null) { - log("No user in your roster"); - return; - } - if (presence.getType() == QBPresence.Type.online) { - log("User " + userID + " is online"); - } else { - log("User " + userID + " is offline"); - } - } - }; - - Snippet addUserToRoster = new Snippet("add user to roster") { - @Override - public void execute() { - int userID = ApplicationConfig.getInstance().getTestUserId2(); - - if (сhatRoster.contains(userID)) { - try { - сhatRoster.subscribe(userID); - } catch (SmackException.NotConnectedException e) { - log("error: " + e.getClass().getSimpleName()); - } - } else { - try { - сhatRoster.createEntry(userID, null); - } catch (XMPPException e) { - log("error: " + e.getLocalizedMessage()); - } catch (SmackException.NotLoggedInException | SmackException.NotConnectedException | SmackException.NoResponseException e) { - log("error: " + e.getClass().getSimpleName()); - } - } - } - }; - - Snippet removeUserFromRoster = new Snippet("remove user from roster") { - @Override - public void execute() { - int userID = ApplicationConfig.getInstance().getTestUserId2(); - - try { - сhatRoster.unsubscribe(userID); - } catch (SmackException.NotConnectedException e) { - e.printStackTrace(); - } - } - }; - - Snippet confirmAddRequest = new Snippet("confirm add request") { - @Override - public void execute() { - int userID = ApplicationConfig.getInstance().getTestUserId2(); - - try { - сhatRoster.confirmSubscription(userID); - } catch (SmackException.NotConnectedException | SmackException.NotLoggedInException | SmackException.NoResponseException e) { - log("error: " + e.getClass().getSimpleName()); - } catch (XMPPException e) { - log("error: " + e.getLocalizedMessage()); - } - } - }; - - Snippet rejectAddRequest = new Snippet("reject add request") { - @Override - public void execute() { - int userID = ApplicationConfig.getInstance().getTestUserId2(); - - try { - сhatRoster.reject(userID); - } catch (SmackException.NotConnectedException e) { - e.printStackTrace(); - } - } - }; - - - // - ///////////////////////////////////// Privacy List ///////////////////////////////////////////// - // - - - private void initPrivacyListsManager() { - privacyListsManager = chatService.getPrivacyListsManager(); - } - - private void initPrivacyListsListener() { - privacyListListener = new QBPrivacyListListener() { - @Override - public void setPrivacyList(String listName, List listItem) { - log("on setPrivacyList:" + listName + ", items: " + listItem); - } - - @Override - public void updatedPrivacyList(String listName) { - log("on setPrivacyList:" + listName); - } - }; - privacyListsManager.addPrivacyListListener(privacyListListener); - } - - Snippet getPrivacyLists = new SnippetAsync("get privacy lists (synchronous)", context) { - @Override - public void executeAsync() { - List lists = null; - - try { - lists = privacyListsManager.getPrivacyLists(); - } catch (SmackException.NotConnectedException | XMPPException.XMPPErrorException | SmackException.NoResponseException e) { - e.printStackTrace(); - } - - if (lists != null) { - log("privcay lists:" + lists.toString()); - } - } - }; - - Snippet getPrivacyList = new SnippetAsync("get privacy list (synchronous)", context) { - @Override - public void executeAsync() { - QBPrivacyList list = null; - - try { - list = privacyListsManager.getPrivacyList("public"); - } catch (SmackException.NotConnectedException | XMPPException.XMPPErrorException | SmackException.NoResponseException e) { - e.printStackTrace(); - } - - if (list != null) { - log("public privacy list: " + list.toString()); - } - - } - }; - - Snippet setPrivacyList = new SnippetAsync("set privacy list (synchronous)", context) { - @Override - public void executeAsync() { - QBPrivacyList list = new QBPrivacyList(); - list.setName("public4"); - - ArrayList items = new ArrayList<>(); - // - QBPrivacyListItem item1 = new QBPrivacyListItem(); - item1.setAllow(false); - item1.setType(QBPrivacyListItem.Type.USER_ID); - item1.setValueForType(String.valueOf(ApplicationConfig.getInstance().getTestUserId2())); - items.add(item1); - // - QBPrivacyListItem item2 = new QBPrivacyListItem(); - item2.setAllow(false); - item2.setType(QBPrivacyListItem.Type.GROUP_USER_ID); - item2.setValueForType(String.valueOf(ApplicationConfig.getInstance().getTestUserId2())); - items.add(item2); - // - list.setItems(items); - - try { - privacyListsManager.setPrivacyList(list); - } catch (SmackException.NotConnectedException | XMPPException.XMPPErrorException | SmackException.NoResponseException e) { - e.printStackTrace(); - } - } - }; - - Snippet deletePrivacyList = new SnippetAsync("delete privacy list (synchronous)", context) { - @Override - public void executeAsync() { - try { - privacyListsManager.deletePrivacyList("public"); - } catch (SmackException.NotConnectedException | XMPPException.XMPPErrorException | SmackException.NoResponseException e) { - e.printStackTrace(); - } - } - }; - - Snippet setDefaultPrivacyList = new SnippetAsync("set default privacy list (synchronous)", context) { - @Override - public void executeAsync() { - try { - privacyListsManager.setPrivacyListAsDefault("public4"); - log("list set as default"); - } catch (SmackException.NotConnectedException | XMPPException.XMPPErrorException | SmackException.NoResponseException e) { - e.printStackTrace(); - } - } - }; - - - // - ///////////////////////////////////// Mobile optimisation ////////////////////////////////////// - // - - - Snippet enterInactiveState = new Snippet("enter inactive state") { - @Override - public void execute() { - try { - chatService.enterInactiveState(); - } catch (SmackException.NotConnectedException e) { - log("error: " + e.getClass().getSimpleName()); - } - } - }; - - Snippet enterActiveState = new Snippet("enter active state") { - @Override - public void execute() { - try { - chatService.enterActiveState(); - } catch (SmackException.NotConnectedException e) { - log("error: " + e.getClass().getSimpleName()); - } - } - }; - - - // - //////////////////////////////////////// Ping manager ////////////////////////////////////////// - // - - - Snippet pingServer = new Snippet("ping server") { - @Override - public void execute() { - final QBPingManager pingManager = chatService.getPingManager(); - pingManager.pingServer(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle params) { - log("ping success"); - } - - @Override - public void onError(QBResponseException e) { - log("ping error: " + e); - } - }); - } - }; - - Snippet pingServerSynchronous = new SnippetAsync("ping server (synchronous)", context) { - @Override - public void executeAsync() { - final QBPingManager pingManager = chatService.getPingManager(); - try { - boolean ping = pingManager.pingServer(); - log("ping success: " + ping); - } catch (SmackException.NotConnectedException e) { - e.printStackTrace(); - } - } - }; - - - // - //////// System Message ///// - // - - - Snippet sendSystemMessage = new Snippet("send system message") { - @Override - public void execute() { - try { - // create a message - QBChatMessage chatMessage = new QBChatMessage(); - chatMessage.setProperty("param1", "value1"); - chatMessage.setProperty("param2", "value2"); - chatMessage.setBody("system body"); - - int userID = ApplicationConfig.getInstance().getTestUserId1(); - chatMessage.setRecipientId(userID); - - systemMessagesManager.sendSystemMessage(chatMessage); - - } catch (SmackException.NotConnectedException | IllegalStateException e) { - log("send system message error: " + e.getMessage()); - } - } - }; -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsContent.java b/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsContent.java deleted file mode 100644 index 7f1f8ed4f..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsContent.java +++ /dev/null @@ -1,643 +0,0 @@ -package com.sdk.snippets.modules; - -import android.content.Context; -import android.os.Bundle; -import android.util.Log; - -import com.quickblox.content.QBContent; -import com.quickblox.content.model.QBFile; -import com.quickblox.content.model.QBFileObjectAccess; -import com.quickblox.core.Consts; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.QBProgressCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.ContentType; -import com.quickblox.core.helper.FileHelper; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.sdk.snippets.R; -import com.sdk.snippets.Utils; -import com.sdk.snippets.core.Snippet; -import com.sdk.snippets.core.SnippetAsync; -import com.sdk.snippets.core.Snippets; - -import java.io.File; -import java.io.InputStream; -import java.util.ArrayList; - - -public class SnippetsContent extends Snippets { - private static final String TAG = SnippetsContent.class.getSimpleName(); - - private static final String FILE_UID = "6221dd49a1bb46cfb61efe62c4526bd800"; - - File file1; - QBFileObjectAccess fileObjectAccess; - - public SnippetsContent(Context context) { - super(context); - - snippets.add(createFile); - snippets.add(createFileSynchronous); - // - snippets.add(updateFile); - snippets.add(updateFileSynchronous); - // - snippets.add(getFileWithId); - snippets.add(getFileWithIdSynchronous); - // - snippets.add(deleteFile); - snippets.add(deleteFileSynchronous); - // - snippets.add(uploadFile); - snippets.add(uploadFileSynchronous); - // - snippets.add(declareFileUploaded); - snippets.add(declareFileUploadedSynchronous); - // - snippets.add(getFileObjectAccess); - snippets.add(getFileObjectAccessSynchronous); - // - snippets.add(downloadFileWithUID); - snippets.add(downloadFileWithUIDSynchronous); - // - snippets.add(downloadFileWithID); - snippets.add(downloadFileWithIDSynchronous); - // - snippets.add(getFiles); - snippets.add(getFilesSynchronous); - // - // - snippets.add(uploadFileTask); - snippets.add(uploadFileTaskSynchronous); - // - snippets.add(updateFileTask); - snippets.add(updateFileTaskSynchronous); - - // get file1 - int fileId = R.raw.kharkov; - InputStream is = context.getResources().openRawResource(fileId); - file1 = FileHelper.getFileInputStream(is, "kharkov.jpg", "qb_kharkiv"); - } - - - // - /////////////////////////////////////// Create file //////////////////////////////////////////// - // - - - Snippet createFile = new Snippet("create file") { - @Override - public void execute() { - - QBFile qbfile = new QBFile(); - qbfile.setName(file1.getName()); - qbfile.setPublic(false); - qbfile.setContentType(ContentType.getContentType(file1)); - // - QBContent.createFile(qbfile).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBFile file, Bundle params) { - Log.i(TAG, ">>> File" + file.toString()); - fileObjectAccess = file.getFileObjectAccess(); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createFileSynchronous = new SnippetAsync("create file (synchronous)", context) { - @Override - public void executeAsync() { - QBFile qbfile = new QBFile(); - qbfile.setName(file1.getName()); - qbfile.setPublic(false); - qbfile.setContentType(ContentType.getContentType(file1)); - - QBFile createdFile = null; - try { - createdFile = QBContent.createFile(qbfile).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (createdFile != null) { - Log.i(TAG, ">>> File:" + createdFile); - fileObjectAccess = createdFile.getFileObjectAccess(); - } - } - }; - - - // - /////////////////////////////////////// Create file //////////////////////////////////////////// - // - - - Snippet updateFile = new Snippet("update file") { - @Override - public void execute() { - QBFile qbfile = new QBFile(); - qbfile.setId(212949); - qbfile.setName("my Car1"); - QBContent.updateFile(qbfile).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBFile updatedFile, Bundle params) { - Log.i(TAG, ">>> File:" + updatedFile.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateFileSynchronous = new SnippetAsync("update file (synchronous)", context) { - @Override - public void executeAsync() { - QBFile qbfile = new QBFile(); - qbfile.setId(212949); - qbfile.setName("my Car2"); - - QBFile updatedFile = null; - try { - updatedFile = QBContent.updateFile(qbfile).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (updatedFile != null) { - Log.i(TAG, ">>> File:" + updatedFile); - } - } - }; - - - // - /////////////////////////////////////// Get file /////////////////////////////////////////////// - // - - - Snippet getFileWithId = new Snippet("get file", "with id") { - @Override - public void execute() { - QBContent.getFile(212949).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBFile file, Bundle params) { - Log.i(TAG, ">>> File:" + file.toString()); - } - - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getFileWithIdSynchronous = new SnippetAsync("get file (synchronous)", "with id", context) { - @Override - public void executeAsync() { - QBFile getFile = null; - try { - getFile = QBContent.getFile(212949).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (getFile != null) { - Log.i(TAG, ">>> File:" + getFile); - } - } - }; - - - // - ///////////////////////////////////// Delete file /////////////////////////////////////////////// - // - - - Snippet deleteFile = new Snippet("delete file") { - @Override - public void execute() { - QBContent.deleteFile(212949).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> file deleted successfully"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteFileSynchronous = new SnippetAsync("delete file (synchronous)", context) { - @Override - public void executeAsync() { - try { - QBContent.deleteFile(212949).perform(); - Log.i(TAG, ">>> file deleted successfully"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - /////////////////////////////////////// Upload file //////////////////////////////////////////// - // - - - Snippet uploadFile = new Snippet("upload file") { - @Override - public void execute() { - String params = fileObjectAccess.getParams(); // will return from the server when creating file - QBContent.uploadFile(file1, params, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Void amazonS3Response, Bundle params) { - Log.i(TAG, ">>> AmazonS3Response: " + amazonS3Response); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet uploadFileSynchronous = new SnippetAsync("upload file (synchronous)", context) { - @Override - public void executeAsync() { - String params = fileObjectAccess.getParams(); // will return from the server when creating file - - try { - QBContent.uploadFile(file1, params, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - //////////////////////////////////// Declare file uploaded ///////////////////////////////////// - // - - - Snippet declareFileUploaded = new Snippet("declare file uploaded") { - @Override - public void execute() { - QBContent.declareFileUploaded(212950, (int) file1.length()).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> declare file uploaded was successful"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet declareFileUploadedSynchronous = new SnippetAsync("declare file uploaded (synchronous)", context) { - @Override - public void executeAsync() { - try { - QBContent.declareFileUploaded(212951, (int) file1.length()).perform(); - Log.i(TAG, ">>> declare file uploaded was successful"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ////////////////////////////////// Get file object access ////////////////////////////////////// - // - - - Snippet getFileObjectAccess = new Snippet("get file object access") { - @Override - public void execute() { - QBContent.getFileObjectAccess(212951).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBFileObjectAccess fileObjectAccess, Bundle params) { - Log.i(TAG, ">>> FileObjectAccess: " + fileObjectAccess); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getFileObjectAccessSynchronous = new SnippetAsync("get file object access (synchronous)", context) { - @Override - public void executeAsync() { - QBFileObjectAccess fileObjectAccess = null; - try { - fileObjectAccess = QBContent.getFileObjectAccess(212951).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (fileObjectAccess != null) { - Log.i(TAG, ">>> FileObjectAccess: " + fileObjectAccess); - } - } - }; - - - // - ////////////////////////////////////// Download file /////////////////////////////////////////// - // - - - Snippet downloadFileWithUID = new Snippet("download file with UID") { - @Override - public void execute() { - Bundle params = new Bundle(); - QBContent.downloadFile(FILE_UID, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }, params).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(InputStream inputStream, Bundle params) { - long length = params.getLong(Consts.CONTENT_LENGTH_TAG); - Log.i(TAG, "content.length: " + length); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet downloadFileWithUIDSynchronous = new SnippetAsync("download file with UID (synchronous)", context) { - @Override - public void executeAsync() { - InputStream inputStream = null; - Bundle params = new Bundle(); - try { - inputStream = QBContent.downloadFile(FILE_UID, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (inputStream != null) { - long length = params.getLong(Consts.CONTENT_LENGTH_TAG); - Log.i(TAG, "content.length: " + length); - } - } - }; - - Snippet downloadFileWithID = new Snippet("TASK: download file") { - @Override - public void execute() { - final int fileId = 3607775; - - QBContent.downloadFileById(fileId, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(final InputStream inputStream, Bundle params) { - long length = params.getLong(Consts.CONTENT_LENGTH_TAG); - Log.i(TAG, "content.length: " + length); - - Utils.downloadFile(inputStream, context); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet downloadFileWithIDSynchronous = new SnippetAsync("TASK: download file (synchronous)", context) { - @Override - public void executeAsync() { - final int fileId = 3607775; - - InputStream inputStream = null; - Bundle params = new Bundle(); - - try { - inputStream = QBContent.downloadFileById(fileId, params, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (inputStream != null) { - long length = params.getLong(Consts.CONTENT_LENGTH_TAG); - Log.i(TAG, "content.length : " + length); - - Utils.downloadFile(inputStream, context); - } - } - }; - - - // - ///////////////////////////////////////////// Get files ///////////////////////////////////////////// - // - - - Snippet getFiles = new Snippet("get files") { - @Override - public void execute() { - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(5, 2); - - QBContent.getFiles(requestBuilder).performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList files, Bundle params) { - Log.i(TAG, ">>> File list:" + files.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getFilesSynchronous = new SnippetAsync("get files (synchronous)", context) { - @Override - public void executeAsync() { - Bundle params = new Bundle(); - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(10, 1); - ArrayList files = null; - try { - files = QBContent.getFiles(requestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (files != null) { - Log.i(TAG, "files: " + files); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - ///////////////////////////////////////////// Tasks ///////////////////////////////////////////// - // - - - Snippet uploadFileTask = new Snippet("TASK: upload file") { - @Override - public void execute() { - - Boolean fileIsPublic = false; - QBContent.uploadFileTask(file1, fileIsPublic, null, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBFile qbFile, Bundle params) { - Log.i(TAG, ">>> QBFile:" + qbFile.toString()); - - Log.i(TAG, "public url:" + qbFile.getPublicUrl()); - Log.i(TAG, "private url:" + qbFile.getPrivateUrl()); - // - Log.i(TAG, "public url static:" + QBFile.getPublicUrlForUID(qbFile.getUid())); - Log.i(TAG, "private url static:" + QBFile.getPrivateUrlForUID(qbFile.getUid())); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet uploadFileTaskSynchronous = new SnippetAsync("TASK: upload file (synchronous)", context) { - @Override - public void executeAsync() { - Boolean fileIsPublic = false; - QBFile qbFile = null; - try { - qbFile = QBContent.uploadFileTask(file1, fileIsPublic, null, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (qbFile != null) { - Log.i(TAG, "files: " + qbFile); - } - } - }; - - Snippet updateFileTask = new Snippet("TASK: update file") { - final int fileId = 231089; - - @Override - public void execute() { - QBContent.updateFileTask(file1, fileId, null, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBFile qbFile, Bundle params) { - Log.i(TAG, ">>> file updated successful" + qbFile); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateFileTaskSynchronous = new SnippetAsync("TASK: update file (synchronous)", context) { - - @Override - public void executeAsync() { - final int fileId = 231089; - - QBFile qbFile = null; - try { - qbFile = QBContent.updateFileTask(file1, fileId, null, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (qbFile != null) { - Log.i(TAG, "file: " + qbFile); - } - } - }; -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsCustomObjects.java b/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsCustomObjects.java deleted file mode 100644 index c1a944b0e..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsCustomObjects.java +++ /dev/null @@ -1,1086 +0,0 @@ -package com.sdk.snippets.modules; - -import android.content.Context; -import android.os.Bundle; -import android.util.Log; - -import com.quickblox.core.Consts; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.QBProgressCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.FileHelper; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.request.QBRequestGetBuilder; -import com.quickblox.core.request.QBRequestUpdateBuilder; -import com.quickblox.customobjects.QBCustomObjects; -import com.quickblox.customobjects.QBCustomObjectsFiles; -import com.quickblox.customobjects.model.QBAggregationItem; -import com.quickblox.customobjects.model.QBCustomObject; -import com.quickblox.customobjects.model.QBCustomObjectFileField; -import com.quickblox.customobjects.model.QBPermissions; -import com.quickblox.customobjects.model.QBPermissionsLevel; -import com.quickblox.customobjects.request.QBAggregationRequestBuilder; -import com.sdk.snippets.R; -import com.sdk.snippets.core.Snippet; -import com.sdk.snippets.core.SnippetAsync; -import com.sdk.snippets.core.Snippets; - -import java.io.File; -import java.io.InputStream; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; - - -public class SnippetsCustomObjects extends Snippets { - - private static final String TAG = SnippetsCustomObjects.class.getSimpleName(); - // Define custom object model in QB Admin Panel - // http://quickblox.com/developers/Custom_Objects - // - private final String MOVIE_CLASS = "Advert"; - - private File imageFile; - - public SnippetsCustomObjects(Context context) { - super(context); - - // get file1 - int fileId = R.raw.kharkov; - InputStream is = context.getResources().openRawResource(fileId); - imageFile = FileHelper.getFileInputStream(is, "kharkivimage.jpg", "kharkivimage"); - - - snippets.add(getCustomObjectByID); - snippets.add(getCustomObjectByIDSynchronous); - // - snippets.add(getCustomObjectsByIDs); - snippets.add(getCustomObjectsByIDsSynchronous); - // - snippets.add(getCustomObjects); - snippets.add(getCustomObjectsSynchronous); - // - snippets.add(getCountCustomsObjects); - snippets.add(getCountCustomsObjectsSynchronous); - // - snippets.add(createCustomObject); - snippets.add(createCustomObjectSynchronous); - // - snippets.add(createCustomObjects); - snippets.add(createCustomObjectsSynchronous); - // - snippets.add(updateCustomObject); - snippets.add(updateCustomObjectSynchronous); - // - snippets.add(updateCustomObjects); - snippets.add(updateCustomObjectsSynchronous); - // - snippets.add(deleteCustomObject); - snippets.add(deleteCustomObjectSynchronous); - // - snippets.add(deleteCustomObjects); - snippets.add(deleteCustomObjectsSynchronous); - // - // - snippets.add(getCustomObjectPermissions); - snippets.add(getCustomObjectPermissionsSynchronous); - // - snippets.add(updateCustomObjectPermissions); - snippets.add(updateCustomObjectPermissionsSynchronous); - // - snippets.add(createCustomObjectWithPermissions); - snippets.add(createCustomObjectWithPermissionsSynchronous); - // - // - snippets.add(uploadFile); - snippets.add(uploadFileSynchronous); - // - snippets.add(downloadFile); - snippets.add(downloadFileSynchronous); - // - snippets.add(deleteFile); - snippets.add(deleteFileSynchronous); - // - // - snippets.add(aggregateCustomObjects); - snippets.add(aggregateCustomObjectsSynchronous); - } - - - // - //////////////////////////////////// Get Custom Object by ID //////////////////////////////////// - // - - - Snippet getCustomObjectByID = new Snippet("get object by ID") { - @Override - public void execute() { - QBCustomObject object = new QBCustomObject("JSON", "561cbde9a28f9a520c001c35"); - - QBCustomObjects.getObject(object).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBCustomObject customObject, Bundle params) { - Log.i(TAG, ">>> custom object: " + customObject); - - ArrayList arr = (ArrayList) customObject.getFields().get("arrint"); - - for (Object o : arr) { - Log.i(TAG, o.getClass().getCanonicalName()); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getCustomObjectByIDSynchronous = new SnippetAsync("get object by ID (synchronous)", context) { - @Override - public void executeAsync() { - QBCustomObject object = new QBCustomObject(MOVIE_CLASS, "53f323ab535c12567903ba43"); - - QBCustomObject getObject = null; - try { - getObject = QBCustomObjects.getObject(object).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (getObject != null) { - Log.i(TAG, ">>> custom object: " + getObject); - } - } - }; - - - // - ////////////////////////////////// Get Custom Objects by IDs //////////////////////////////////// - // - - - Snippet getCustomObjectsByIDs = new Snippet("get objects by IDs") { - @Override - public void execute() { - StringifyArrayList coIDs = new StringifyArrayList(); - coIDs.add("53f323ab535c12567903ba43"); - coIDs.add("53f32498535c12a57a03f434"); - - QBCustomObjects.getObjectsByIds(MOVIE_CLASS, coIDs).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList customObjects, Bundle params) { - Log.i(TAG, ">>> custom objects: " + customObjects); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getCustomObjectsByIDsSynchronous = new SnippetAsync("get objects by IDs (synchronous)", context) { - @Override - public void executeAsync() { - StringifyArrayList coIDs = new StringifyArrayList(); - coIDs.add("53f323ab535c12567903ba43"); - coIDs.add("53f32498535c12a57a03f434"); - - ArrayList getObjects = null; - try { - getObjects = (ArrayList) QBCustomObjects.getObjectsByIds(MOVIE_CLASS, coIDs).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (getObjects != null) { - Log.i(TAG, ">>> custom objects: " + getObjects); - } - } - }; - - - // - //////////////////////////////////// Get Custom Objects ////////////////////////////////////// - // - - - Snippet getCustomObjects = new Snippet("get objects") { - @Override - public void execute() { - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - requestBuilder.setLimit(10); - requestBuilder.in("_id", "56aa4760a0eb47c299000019"); - - QBCustomObjects.getObjects(MOVIE_CLASS, requestBuilder).performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList customObjects, Bundle params) { - int skip = params.getInt(Consts.SKIP); - int limit = params.getInt(Consts.LIMIT); - Log.i(TAG, "limit=" + limit + " skip=" + skip); - Log.i(TAG, ">>> custom objects: " + customObjects); - - QBCustomObject object = customObjects.get(0); - Log.i(TAG, "arr: " + object.getArray("arr")); - Log.i(TAG, "bbb: " + object.getBoolean("bbb")); - Log.i(TAG, "fff: " + object.getFloat("fff")); - Log.i(TAG, "fff2: " + object.get("fff")); - Log.i(TAG, "iii: " + object.getInteger("iii")); - Log.i(TAG, "name: " + object.getString("name")); - Log.i(TAG, "loc: " + object.getString("loc")); - try { - SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - Log.i(TAG, "ddd: " + object.getDate("ddd", format)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getCustomObjectsSynchronous = new SnippetAsync("get objects (synchronous)", context) { - - @Override - public void executeAsync() { - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - requestBuilder.setPagesLimit(10); - requestBuilder.gt("rating", 1); - - Bundle params = new Bundle(); - ArrayList objects = null; - try { - objects = QBCustomObjects.getObjects(MOVIE_CLASS, requestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (objects != null) { - int skip = params.getInt(Consts.SKIP); - int limit = params.getInt(Consts.LIMIT); - Log.i(TAG, "limit=" + limit + " skip=" + skip); - Log.i(TAG, ">>> custom objects: " + objects); - } - } - }; - - - // - //////////////////////////////// Get Count Custom Objects ////////////////////////////////////// - // - - - Snippet getCountCustomsObjects = new Snippet("get count") { - @Override - public void execute() { - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - requestBuilder.gt("rating", 1); - - QBCustomObjects.countObjects(MOVIE_CLASS, requestBuilder) - .performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Integer count, Bundle params) { - Log.i(TAG, "count=" + count); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - } - ); - } - }; - - Snippet getCountCustomsObjectsSynchronous = new SnippetAsync("get count (synchronous)", context) { - - @Override - public void executeAsync() { - QBRequestGetBuilder requestBuilder = new QBRequestGetBuilder(); - requestBuilder.gt("rating", 1); - - Integer count = null; - try { - count = QBCustomObjects.countObjects(MOVIE_CLASS, requestBuilder).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (count != null) { - Log.i(TAG, ">>> count: " + count); - } - } - }; - - - // - /////////////////////////////////// Create Custom Object ////////////////////////////////////// - // - - - Snippet createCustomObject = new Snippet("create object") { - @Override - public void execute() { - QBCustomObject newRecord = new QBCustomObject(MOVIE_CLASS); - newRecord.putString("name", "bingo"); - newRecord.putArray("arr", Arrays.asList(new Double[]{1.32, 2.56})); - newRecord.putBoolean("bbb", true); - newRecord.putFloat("fff", 45.676f); - newRecord.putInteger("iii", 56); - newRecord.putDate("ddd", new Date()); - newRecord.putLocation("loc", Arrays.asList(new Double[]{3.78, 4.87})); - - QBCustomObjects.createObject(newRecord).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBCustomObject object, Bundle params) { - Log.i(TAG, ">>> created object: " + object); - - Log.i(TAG, "arr: " + object.getArray("arr")); - Log.i(TAG, "bbb: " + object.getBoolean("bbb")); - Log.i(TAG, "fff: " + object.getFloat("fff")); - Log.i(TAG, "fff2: " + object.get("fff")); - Log.i(TAG, "iii: " + object.getInteger("iii")); - Log.i(TAG, "name: " + object.getString("name")); - Log.i(TAG, "loc: " + object.getString("loc")); - try { - SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - Log.i(TAG, "ddd: " + object.getDate("ddd", format)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createCustomObjectSynchronous = new SnippetAsync("create object (synchronous)", context) { - - @Override - public void executeAsync() { - QBCustomObject newRecord = new QBCustomObject(MOVIE_CLASS); - newRecord.put("rating", 10); - newRecord.put("name", "The Dark Knight"); - newRecord.put("description", "About Batman"); - - QBCustomObject createdObject = null; - try { - createdObject = QBCustomObjects.createObject(newRecord).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (createdObject != null) { - Log.i(TAG, ">>> created object: " + createdObject); - } - } - }; - - - // - ////////////////////////////////// Create Custom Objects ////////////////////////////////////// - // - - - Snippet createCustomObjects = new Snippet("create objects") { - - @Override - public void execute() { - List qbCustomObjectList = new ArrayList<>(2); - - QBCustomObject newRecord1 = new QBCustomObject(MOVIE_CLASS); - newRecord1.put("rating", 10); - newRecord1.put("name", "The Dark Knight"); - newRecord1.put("description", "About Batman"); - - QBCustomObject newRecord2 = new QBCustomObject(MOVIE_CLASS); - newRecord2.put("rating", 6); - newRecord2.put("name", "The Godfather"); - newRecord2.put("description", "The aging patriarch of an organized crime dynasty transfers control of his clandestine empire to his reluctant son"); - - qbCustomObjectList.add(newRecord1); - qbCustomObjectList.add(newRecord2); - - QBCustomObjects.createObjects(qbCustomObjectList).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList qbCustomObjects, Bundle args) { - Log.i(TAG, ">>> custom object list: " + qbCustomObjects); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createCustomObjectsSynchronous = new SnippetAsync("create objects (synchronous)", context) { - - @Override - public void executeAsync() { - List qbCustomObjectList = new ArrayList<>(2); - - QBCustomObject newRecord1 = new QBCustomObject(MOVIE_CLASS); - newRecord1.put("rating", 10); - newRecord1.put("name", "The Dark Knight"); - newRecord1.put("description", "About Batman"); - - QBCustomObject newRecord2 = new QBCustomObject(MOVIE_CLASS); - newRecord2.put("rating", 6); - newRecord2.put("name", "The Godfather"); - newRecord2.put("description", "The aging patriarch of an organized crime dynasty transfers control of his clandestine empire to his reluctant son"); - - qbCustomObjectList.add(newRecord1); - qbCustomObjectList.add(newRecord2); - - List createdObjects = null; - try { - createdObjects = QBCustomObjects.createObjects(qbCustomObjectList).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (createdObjects != null) { - Log.i(TAG, ">>> created objects: " + createdObjects); - } - } - }; - - - // - /////////////////////////////////// Update Custom Object ////////////////////////////////////// - // - - - Snippet updateCustomObject = new Snippet("update object") { - @Override - public void execute() { - QBCustomObject record = new QBCustomObject(MOVIE_CLASS, "56aa4045a28f9a2297000455"); - - record.putString("name", "bingo2"); - record.putArray("arr", Arrays.asList(new Double[]{11.32, 12.56})); - - QBRequestUpdateBuilder rb = new QBRequestUpdateBuilder(); - rb.pullAll("tags", "car1", "car2"); - - QBCustomObjects.updateObject(record, rb).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBCustomObject object, Bundle params) { - Log.i(TAG, ">>> updated record: : " + object.toString()); - - Log.i(TAG, "arr: " + object.getArray("arr")); - Log.i(TAG, "bbb: " + object.getBoolean("bbb")); - Log.i(TAG, "fff: " + object.getFloat("fff")); - Log.i(TAG, "fff2: " + object.get("fff")); - Log.i(TAG, "iii: " + object.getInteger("iii")); - Log.i(TAG, "name: " + object.getString("name")); - Log.i(TAG, "loc: " + object.getString("loc")); - try { - SimpleDateFormat format = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); - Log.i(TAG, "ddd: " + object.getDate("ddd", format)); - } catch (ParseException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateCustomObjectSynchronous = new SnippetAsync("update object (synchronous)", context) { - - @Override - public void executeAsync() { - QBCustomObject obj = new QBCustomObject(MOVIE_CLASS, "53f365f06fd1dfa9c43ce5a3"); - // - HashMap fields = new HashMap<>(); - fields.put("rating", 11); - obj.setFields(fields); - - QBCustomObject updatedObject = null; - try { - updatedObject = QBCustomObjects.updateObject(obj).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (updatedObject != null) { - Log.i(TAG, ">>> updated object: " + updatedObject); - } - } - }; - - - // - ////////////////////////////////// Update Custom Objects ////////////////////////////////////// - // - - - Snippet updateCustomObjects = new Snippet("update objects") { - @Override - public void execute() { - List qbCustomObjectList = new ArrayList<>(2); - - QBCustomObject record1 = new QBCustomObject(MOVIE_CLASS); - record1.setCustomObjectId("53f70b55535c12201e0014d4"); - HashMap fields = new HashMap<>(); - fields.put("rating", 1); - record1.setFields(fields); - - QBCustomObject record2 = new QBCustomObject(MOVIE_CLASS); - record2.setCustomObjectId("53f3660b6fd1dfa9c43ce5a5"); - HashMap fields2 = new HashMap<>(); - fields2.put("rating", 1); - record2.setFields(fields2); - - qbCustomObjectList.add(record1); - qbCustomObjectList.add(record2); - - QBCustomObjects.updateObjects(qbCustomObjectList).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList objects, Bundle params) { - Log.i(TAG, ">>> updated records: " + objects.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateCustomObjectsSynchronous = new SnippetAsync("update objects (synchronous)", context) { - - @Override - public void executeAsync() { - List qbCustomObjectList = new ArrayList(2); - - QBCustomObject record1 = new QBCustomObject(MOVIE_CLASS); - record1.setCustomObjectId("53f70b55535c12201e0014d4"); - HashMap fields = new HashMap<>(); - fields.put("rating", 2); - record1.setFields(fields); - - QBCustomObject record2 = new QBCustomObject(MOVIE_CLASS); - record2.setCustomObjectId("53f3660b6fd1dfa9c43ce5a5"); - HashMap fields2 = new HashMap<>(); - fields2.put("rating", 2); - record2.setFields(fields2); - - qbCustomObjectList.add(record1); - qbCustomObjectList.add(record2); - - ArrayList updatedObjects = null; - Bundle params = new Bundle(); - try { - updatedObjects = QBCustomObjects.updateObjects(qbCustomObjectList, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (updatedObjects != null) { - Log.i(TAG, ">>> updated objects: " + updatedObjects); - Log.i(TAG, ">>> not found ids: " + params.getStringArrayList(com.quickblox.customobjects.Consts.NOT_FOUND_IDS)); - } - } - }; - - - // - ////////////////////////////////// Delete Custom Object //////////////////////////////////////// - // - - - Snippet deleteCustomObject = new Snippet("delete object") { - @Override - public void execute() { - QBCustomObjects.deleteObject(MOVIE_CLASS, "53f3660b6fd1dfa9c43ce5a4").performAsync(new QBEntityCallback() { - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> custom object deleted OK"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteCustomObjectSynchronous = new SnippetAsync("delete object synchronous", context) { - @Override - public void executeAsync() { - try { - QBCustomObjects.deleteObject(MOVIE_CLASS, "561b9af7a0eb47fc1e000718").perform(); - Log.i(TAG, ">>> custom object deleted OK"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ////////////////////////////////// Delete Custom Objects //////////////////////////////////////// - // - - - Snippet deleteCustomObjects = new Snippet("delete objects") { - @Override - public void execute() { - StringifyArrayList deleteIds = new StringifyArrayList(); - deleteIds.add("53f36e796fd1dfa9c43ce5a6"); - deleteIds.add("53f36e796fd1dfa9c43ce5a7"); - - QBCustomObjects.deleteObjects(MOVIE_CLASS, deleteIds).performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList deletedObjects, Bundle params) { - Log.i(TAG, ">>> deleted: " + deletedObjects.toString()); - ArrayList notFound = params.getStringArrayList(com.quickblox.customobjects.Consts.NOT_FOUND_IDS); - ArrayList wrongPermissions = params.getStringArrayList(com.quickblox.customobjects.Consts.WRONG_PERMISSIONS_IDS); - Log.i(TAG, ">>> notFound: " + notFound.toString()); - Log.i(TAG, ">>> wrongPermissions: " + wrongPermissions.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteCustomObjectsSynchronous = new SnippetAsync("delete objects synchronous", context) { - @Override - public void executeAsync() { - StringifyArrayList deleteIds = new StringifyArrayList(); - deleteIds.add("53f36e7b6fd1dfa9c43ce5a8"); - deleteIds.add("53f36e7b6fd1dfa9c43ce5a9"); - - Bundle params = new Bundle(); - ArrayList deleted = null; - try { - deleted = (ArrayList) QBCustomObjects.deleteObjects(MOVIE_CLASS, deleteIds, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (deleted != null) { - Log.i(TAG, ">>> deleted: " + deleted.toString()); - ArrayList notFound = params.getStringArrayList(com.quickblox.customobjects.Consts.NOT_FOUND_IDS); - ArrayList wrongPermissions = params.getStringArrayList(com.quickblox.customobjects.Consts.WRONG_PERMISSIONS_IDS); - Log.i(TAG, ">>> notFound: " + notFound.toString()); - Log.i(TAG, ">>> wrongPermissions: " + wrongPermissions.toString()); - } - } - }; - - - // - ////////////////////////////// Get Custom Object permissions /////////////////////////////////// - // - - - Snippet getCustomObjectPermissions = new Snippet("get object permissions") { - @Override - public void execute() { - - QBCustomObjects.getObjectPermissions(MOVIE_CLASS, "53f44e7befa3573473000002").performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBPermissions permissions, Bundle params) { - Log.i(TAG, ">>> custom object's permissions: " + permissions); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getCustomObjectPermissionsSynchronous = new SnippetAsync("delete objects synchronous", context) { - @Override - public void executeAsync() { - QBPermissions permissions = null; - try { - permissions = QBCustomObjects.getObjectPermissions(MOVIE_CLASS, "53f365f06fd1dfa9c43ce5a3").perform(); - } catch (QBResponseException e) { - setException(e); - } - if (permissions != null) { - Log.i(TAG, ">>> permissions: " + permissions); - } - } - }; - - - // - /////////////////////////////////// Update permissions //////////////////////////////////////// - // - - - Snippet updateCustomObjectPermissions = new Snippet("update permissions") { - @Override - public void execute() { - QBCustomObject record = new QBCustomObject(MOVIE_CLASS, "53f365f06fd1dfa9c43ce5a3"); - // - // update permissions: - // READ - QBPermissions permissions = new QBPermissions(); - permissions.setReadPermission(QBPermissionsLevel.OPEN); - // - // DELETE - StringifyArrayList openPermissionsForUserIDS = new StringifyArrayList(); - openPermissionsForUserIDS.add("33"); - openPermissionsForUserIDS.add("92"); - permissions.setDeletePermission(QBPermissionsLevel.OPEN_FOR_USER_IDS, openPermissionsForUserIDS); - // - // UPDATE - StringifyArrayList openPermissionsForGroups = new StringifyArrayList(); - openPermissionsForGroups.add("man"); - openPermissionsForGroups.add("car"); - permissions.setUpdatePermission(QBPermissionsLevel.OPEN_FOR_GROUPS, openPermissionsForGroups); - record.setPermission(permissions); - - QBCustomObjects.updateObject(record, null).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBCustomObject object, Bundle params) { - Log.i(TAG, ">>> updated record: : " + object.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateCustomObjectPermissionsSynchronous = new SnippetAsync("update permissions (synchronous)", context) { - - @Override - public void executeAsync() { - QBCustomObject obj = new QBCustomObject(MOVIE_CLASS, "53f365f06fd1dfa9c43ce5a3"); - // - // update permissions: - // READ - QBPermissions permissions = new QBPermissions(); - permissions.setReadPermission(QBPermissionsLevel.OPEN); - // - // DELETE - StringifyArrayList openPermissionsForUserIDS = new StringifyArrayList(); - openPermissionsForUserIDS.add("33"); - openPermissionsForUserIDS.add("92"); - permissions.setDeletePermission(QBPermissionsLevel.OPEN_FOR_USER_IDS, openPermissionsForUserIDS); - // - // UPDATE - StringifyArrayList openPermissionsForGroups = new StringifyArrayList(); - openPermissionsForGroups.add("man"); - openPermissionsForGroups.add("car"); - permissions.setUpdatePermission(QBPermissionsLevel.OPEN_FOR_GROUPS, openPermissionsForGroups); - obj.setPermission(permissions); - - QBCustomObject updatedObject = null; - try { - updatedObject = QBCustomObjects.updateObject(obj).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (updatedObject != null) { - Log.i(TAG, ">>> updated object: " + updatedObject); - } - } - }; - - - // - /////////////////////////////// Create object with permissions ///////////////////////////////// - // - - - Snippet createCustomObjectWithPermissions = new Snippet("create object with permissions") { - @Override - public void execute() { - QBCustomObject newRecord = new QBCustomObject(MOVIE_CLASS); - newRecord.put("rating", 10); - newRecord.put("name", "The Dark Knight"); - newRecord.put("description", "About Batman"); - // - // set permissions: - // READ - QBPermissions permissions = new QBPermissions(); - permissions.setReadPermission(QBPermissionsLevel.OPEN); - // - // DELETE - StringifyArrayList openPermissionsForUserIDS = new StringifyArrayList(); - openPermissionsForUserIDS.add("33"); - openPermissionsForUserIDS.add("92"); - permissions.setDeletePermission(QBPermissionsLevel.OPEN_FOR_USER_IDS, openPermissionsForUserIDS); - // - // UPDATE - permissions.setUpdatePermission(QBPermissionsLevel.OWNER); - newRecord.setPermission(permissions); - - QBCustomObjects.createObject(newRecord).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBCustomObject object, Bundle params) { - Log.i(TAG, ">>> created object: " + object); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createCustomObjectWithPermissionsSynchronous = new SnippetAsync("create object with permissions(synchronous)", context) { - - @Override - public void executeAsync() { - QBCustomObject newRecord = new QBCustomObject(MOVIE_CLASS); - newRecord.put("rating", 10); - newRecord.put("name", "The Dark Knight"); - newRecord.put("description", "About Batman"); - // - // set permissions: - // READ - QBPermissions permissions = new QBPermissions(); - permissions.setReadPermission(QBPermissionsLevel.OPEN); - // - // DELETE - StringifyArrayList openPermissionsForUserIDS = new StringifyArrayList(); - openPermissionsForUserIDS.add("33"); - openPermissionsForUserIDS.add("92"); - permissions.setDeletePermission(QBPermissionsLevel.OPEN_FOR_USER_IDS, openPermissionsForUserIDS); - // - // UPDATE - permissions.setUpdatePermission(QBPermissionsLevel.OWNER); - newRecord.setPermission(permissions); - - QBCustomObject createdObject = null; - try { - createdObject = QBCustomObjects.createObject(newRecord).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (createdObject != null) { - Log.i(TAG, ">>> created object: " + createdObject); - } - } - }; - - - // - ///////////////////////////////////////// Upload file ////////////////////////////////////////// - // - - - Snippet uploadFile = new Snippet("upload file") { - @Override - public void execute() { - QBCustomObject qbCustomObject = new QBCustomObject(MOVIE_CLASS, "54b51dadefa3574f1600000c"); - - QBCustomObjectsFiles.uploadFile(imageFile, qbCustomObject, "image", new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBCustomObjectFileField uploadFileResult, Bundle params) { - Log.i(TAG, ">>>upload response:" + uploadFileResult.getFileName() + " " + uploadFileResult.getFileId() + " " + - uploadFileResult.getContentType()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet uploadFileSynchronous = new SnippetAsync("upload file synchronous", context) { - @Override - public void executeAsync() { - QBCustomObject qbCustomObject = new QBCustomObject(MOVIE_CLASS, "54b51dadefa3574f1600000c"); - - QBCustomObjectFileField uploadFileResult = null; - try { - uploadFileResult = QBCustomObjectsFiles.uploadFile(imageFile, qbCustomObject, "image", new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (uploadFileResult != null) { - Log.i(TAG, ">>>upload response:" + uploadFileResult.getFileName() + " " + uploadFileResult.getFileId() + " " + - uploadFileResult.getContentType()); - } - } - }; - - - // - /////////////////////////////////////// Download file ////////////////////////////////////////// - // - - - Snippet downloadFile = new Snippet("download file") { - @Override - public void execute() { - QBCustomObject qbCustomObject = new QBCustomObject(MOVIE_CLASS, "54b51dadefa3574f1600000c"); - - QBCustomObjectsFiles.downloadFile(qbCustomObject, "image", new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(InputStream inputStream, Bundle params) { - Log.i(TAG, "file downloaded"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - SnippetAsync downloadFileSynchronous = new SnippetAsync("download file (synchronous)", context) { - @Override - public void executeAsync() { - QBCustomObject qbCustomObject = new QBCustomObject(MOVIE_CLASS, "54b51dadefa3574f1600000c"); - - Bundle bundle = new Bundle(); - InputStream inputStream = null; - try { - inputStream = QBCustomObjectsFiles.downloadFile(qbCustomObject, "image", bundle, new QBProgressCallback() { - @Override - public void onProgressUpdate(int progress) { - Log.i(TAG, "progress: " + progress); - } - }).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (inputStream != null) { - Log.i(TAG, "file downloaded"); - } - } - }; - - - // - //////////////////////////////////////// Delete file /////////////////////////////////////////// - // - - - Snippet deleteFile = new Snippet("delete file") { - @Override - public void execute() { - QBCustomObject qbCustomObject = new QBCustomObject(MOVIE_CLASS, "53f370cc535c1276290447d9"); - - QBCustomObjectsFiles.deleteFile(qbCustomObject, "image").performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, "deleted successfully"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - SnippetAsync deleteFileSynchronous = new SnippetAsync("delete file (synchronous)", context) { - @Override - public void executeAsync() { - QBCustomObject qbCustomObject = new QBCustomObject(MOVIE_CLASS, "53f370cc535c1276290447d9"); - - try { - QBCustomObjectsFiles.deleteFile(qbCustomObject, "image").perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - Snippet aggregateCustomObjects = new Snippet("aggregate objects") { - @Override - public void execute() { - QBAggregationRequestBuilder aggregationRequestBuilder = new QBAggregationRequestBuilder(); - aggregationRequestBuilder.sum("rating").groupBy("rating"); - - QBRequestGetBuilder requestGetBuilder = new QBRequestGetBuilder(); - requestGetBuilder.in("name", "The Dark Knight", "The Godfather"); - - QBCustomObjects.getAggregationObjects("SuperSample", - aggregationRequestBuilder, requestGetBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList qbAggregationItems, Bundle bundle) { - Log.i(TAG, "aggregationObjects: " + qbAggregationItems); - } - - @Override - public void onError(QBResponseException e) { - handleErrors(e); - } - }); - } - }; - - Snippet aggregateCustomObjectsSynchronous = new SnippetAsync("aggregate objects (synchronous)", context) { - - @Override - public void executeAsync() { - - QBAggregationRequestBuilder aggregationRequestBuilder = new QBAggregationRequestBuilder(); - aggregationRequestBuilder.sum("rating").groupBy("rating"); - - QBRequestGetBuilder requestGetBuilder = new QBRequestGetBuilder(); - requestGetBuilder.in("name", "The Dark Knight", "The Godfather"); - try { - ArrayList aggregationObjects = QBCustomObjects.getAggregationObjects("SuperSample", - aggregationRequestBuilder, requestGetBuilder).perform(); - - Log.i(TAG, "aggregationObjects: " + aggregationObjects); - - } catch (QBResponseException e) { - setException(e); - } - } - }; -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsLocation.java b/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsLocation.java deleted file mode 100644 index 3fcd0b55a..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsLocation.java +++ /dev/null @@ -1,386 +0,0 @@ -package com.sdk.snippets.modules; - -import android.content.Context; -import android.os.Bundle; -import android.util.Log; - -import com.quickblox.core.Consts; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.location.QBLocations; -import com.quickblox.location.model.QBEnvironment; -import com.quickblox.location.model.QBLocation; -import com.quickblox.location.request.QBLocationRequestBuilder; -import com.sdk.snippets.core.Snippet; -import com.sdk.snippets.core.SnippetAsync; -import com.sdk.snippets.core.Snippets; - -import java.util.ArrayList; - - -public class SnippetsLocation extends Snippets { - private static final String TAG = SnippetsLocation.class.getSimpleName(); - - public SnippetsLocation(Context context) { - super(context); - - snippets.add(createLocation); - snippets.add(createLocationSynchronous); - // - snippets.add(createLocationWithPush); - snippets.add(createLocationWithPushSynchronous); - // - snippets.add(getLocationWithId); - snippets.add(getLocationWithIdSynchronous); - // - snippets.add(updateLocation); - snippets.add(updateLocationSynchronous); - // - snippets.add(deleteLocationWithId); - snippets.add(deleteLocationWithIdSynchronous); - // - snippets.add(getLocations); - snippets.add(getLocationsSynchronous); - // - snippets.add(deleteLocations); - snippets.add(deleteLocationsSynchronous); - } - - - // - ////////////////////////////////////////// Create Location ///////////////////////////////////// - // - - - Snippet createLocation = new Snippet("create location") { - @Override - public void execute() { - double latitude = 25.3433; - double longitude = -5.3454; - String status = "Checked here!"; - // - final QBLocation location = new QBLocation(latitude, longitude, status); - - QBLocations.createLocation(location).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBLocation qbLocation, Bundle args) { - Log.i(TAG, "Location is: " + qbLocation); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createLocationSynchronous = new SnippetAsync("create location (synchronous)", context) { - @Override - public void executeAsync() { - double latitude = 25.3433; - double longitude = -5.3454; - String status = "Checked here!"; - // - final QBLocation location = new QBLocation(latitude, longitude, status); - - QBLocation locationResult = null; - try { - locationResult = QBLocations.createLocation(location).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (locationResult != null) { - Log.i(TAG, "Location is: " + locationResult); - } - } - }; - - - // - //////////////////////////////////// Create Location with push ///////////////////////////////// - // - - - Snippet createLocationWithPush = new Snippet("create location with push") { - @Override - public void execute() { - double latitude = 25.3433; - double longitude = -5.3454; - String status = "Checked here!"; - // - final QBLocation location = new QBLocation(latitude, longitude, status); - - QBLocations.createLocation(location, "Your friend is near!", QBEnvironment.DEVELOPMENT, 1000).performAsync( - new QBEntityCallback() { - - @Override - public void onSuccess(QBLocation qbLocation, Bundle args) { - Log.i(TAG, "Location is: " + qbLocation); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createLocationWithPushSynchronous = new SnippetAsync("create location with push (synchronous)", context) { - @Override - public void executeAsync() { - double latitude = 25.3433; - double longitude = -5.3454; - String status = "Checked here!"; - // - final QBLocation location = new QBLocation(latitude, longitude, status); - - QBLocation locationResult = null; - try { - locationResult = QBLocations.createLocation(location, "Your friend is near!", QBEnvironment.DEVELOPMENT, 1000).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (locationResult != null) { - Log.i(TAG, "Location is: " + locationResult); - } - } - }; - - - // - /////////////////////////////////////// Get Location with ID /////////////////////////////////// - // - - - Snippet getLocationWithId = new Snippet("get location", "with ID") { - @Override - public void execute() { - QBLocation location = new QBLocation(11308); - QBLocations.getLocation(location).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBLocation qbLocation, Bundle args) { - Log.i(TAG, "Location is: " + qbLocation); - Log.i(TAG, "Location's user is: " + qbLocation.getUser()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getLocationWithIdSynchronous = new SnippetAsync("get location (synchronous)", "with ID", context) { - @Override - public void executeAsync() { - QBLocation location = new QBLocation(11308); - QBLocation locationResult = null; - try { - locationResult = QBLocations.getLocation(location).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (locationResult != null) { - Log.i(TAG, "Location is: " + locationResult); - Log.i(TAG, "Location's user is: " + locationResult.getUser()); - } - } - }; - - - // - /////////////////////////////////////// Update Location //////////////////////////////////////// - // - - - Snippet updateLocation = new Snippet("update location") { - @Override - public void execute() { - QBLocation qbLocation = new QBLocation(); - qbLocation.setId(1141748); - qbLocation.setStatus("I'am at Pizza"); - - QBLocations.updateLocation(qbLocation).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBLocation qbLocation, Bundle args) { - Log.i(TAG, "Location is: " + qbLocation); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateLocationSynchronous = new SnippetAsync("update location (synchronous)", context) { - @Override - public void executeAsync() { - QBLocation qbLocation = new QBLocation(); - qbLocation.setId(1141748); - qbLocation.setStatus("I'am at Pizza"); - - QBLocation locationResult = null; - try { - locationResult = QBLocations.updateLocation(qbLocation).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (locationResult != null) { - Log.i(TAG, "Location is: " + locationResult); - } - } - }; - - - // - /////////////////////////////////// Delete Location with ID///////////////////////////////////// - // - - - Snippet deleteLocationWithId = new Snippet("delete location", "with id") { - @Override - public void execute() { - QBLocation location = new QBLocation(1141748); - - QBLocations.deleteLocation(location).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, "Location was removed"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteLocationWithIdSynchronous = new SnippetAsync("update location (synchronous)", "with ID", context) { - @Override - public void executeAsync() { - QBLocation location = new QBLocation(1141748); - - try { - QBLocations.deleteLocation(location).perform(); - Log.i(TAG, "Location was removed"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - /////////////////////////////////////// Get Locations ////////////////////////////////////////// - // - - - Snippet getLocations = new Snippet("get locations") { - @Override - public void execute() { - double latitude = 25.3433; - double longitude = -5.3454; - int distanceInMeters = 1000; - - QBLocationRequestBuilder locationRequestBuilder = new QBLocationRequestBuilder(); - locationRequestBuilder.setRadius(latitude, longitude, distanceInMeters); - - locationRequestBuilder.setPage(1); - locationRequestBuilder.setPerPage(10); - - Bundle bundle = new Bundle(); - - QBLocations.getLocations(locationRequestBuilder, bundle).performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList locations, Bundle params) { - Log.i(TAG, ">>> Locations:" + locations.toString()); - Log.i(TAG, ">>> currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, ">>> perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, ">>> totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getLocationsSynchronous = new SnippetAsync("get locations (synchronous)", context) { - @Override - public void executeAsync() { - double latitude = 25.3433; - double longitude = -5.3454; - int distanceInMeters = 1000; - - QBLocationRequestBuilder locationRequestBuilder = new QBLocationRequestBuilder(); - locationRequestBuilder.setPage(1); - locationRequestBuilder.setPerPage(10); - - Bundle params = new Bundle(); - ArrayList locations = null; - try { - locations = QBLocations.getLocations(locationRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (locations != null) { - Log.i(TAG, ">>> Locations:" + locations.toString()); - Log.i(TAG, ">>> currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, ">>> perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, ">>> totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - /////////////////////////////////////// Delete Locations /////////////////////////////////////// - // - - - Snippet deleteLocations = new Snippet("delete locations") { - @Override - public void execute() { - int days = 2; - - QBLocations.deleteObsoleteLocations(days).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> Delete locations OK "); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteLocationsSynchronous = new SnippetAsync("delete locations (synchronous)", context) { - @Override - public void executeAsync() { - int days = 2; - - try { - QBLocations.deleteObsoleteLocations(days).perform(); - Log.i(TAG, "Locations was removed"); - } catch (QBResponseException e) { - setException(e); - } - } - }; -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsPushNotifications.java b/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsPushNotifications.java deleted file mode 100644 index 6cccd4de5..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsPushNotifications.java +++ /dev/null @@ -1,516 +0,0 @@ -package com.sdk.snippets.modules; - -import android.content.Context; -import android.os.Bundle; -import android.telephony.TelephonyManager; -import android.util.Log; - -import com.quickblox.core.Consts; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.quickblox.messages.QBPushNotifications; -import com.quickblox.messages.model.QBEnvironment; -import com.quickblox.messages.model.QBEvent; -import com.quickblox.messages.model.QBEventType; -import com.quickblox.messages.model.QBNotificationChannel; -import com.quickblox.messages.model.QBNotificationType; -import com.quickblox.messages.model.QBPushType; -import com.quickblox.messages.model.QBSubscription; -import com.sdk.snippets.core.ApplicationConfig; -import com.sdk.snippets.core.Snippet; -import com.sdk.snippets.core.SnippetAsync; -import com.sdk.snippets.core.Snippets; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - - -public class SnippetsPushNotifications extends Snippets { - private static final String TAG = SnippetsPushNotifications.class.getSimpleName(); - - public SnippetsPushNotifications(Context context) { - super(context); - - snippets.add(createSubscription); - snippets.add(createSubscriptionSynchronous); - // - snippets.add(getSubscriptions); - snippets.add(getSubscriptionsSynchronous); - // - snippets.add(deleteSubscription); - snippets.add(deleteSubscriptionSynchronous); - // - // - snippets.add(createEvent); - snippets.add(createEventSynchronous); - // - snippets.add(getEventWithId); - snippets.add(getEventWithIdSynchronous); - // - snippets.add(getEvents); - snippets.add(getEventsSynchronous); - // - snippets.add(updateEvent); - snippets.add(updateEventSynchronous); - // - snippets.add(deleteEvent); - snippets.add(deleteEventSynchronous); - // - // - snippets.add(subscribeToPushNotificationsTask); - snippets.add(subscribeToPushNotificationsTaskSynchronous); - } - - - // - /////////////////////////////////////// Create Subscription //////////////////////////////////// - // - - - Snippet createSubscription = new Snippet("create subscription") { - @Override - public void execute() { - - QBSubscription subscription = new QBSubscription(QBNotificationChannel.GCM); - subscription.setEnvironment(QBEnvironment.DEVELOPMENT); - // - String deviceId = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); - if (deviceId == null) { - deviceId = "UniversalDeviceId"; - } - subscription.setDeviceUdid(deviceId); - // - String registrationID = "APA91bGr9AcS9Wgv4p4BkBQAg_1YrJZpfa5GMXg7LAQU0lya8gbf9Iw1360602PunkWk_NOsLS2xEK8tPeBCBfSH4fobt7zW4KVlWGjUfR3itFbVa_UreBf6c-rZ8uP_0_vxPCO65ceqgnjvQqD6j8DjLykok7VF7UBBjsMZrTIFjKwmVeJqb1o"; - subscription.setRegistrationID(registrationID); - - QBPushNotifications.createSubscription(subscription).performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList subscriptions, Bundle args) { - Log.i(TAG, ">>> Subscription: " + subscriptions.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createSubscriptionSynchronous = new SnippetAsync("create subscription (synchronous)", context) { - @Override - public void executeAsync() { - QBSubscription subscription = new QBSubscription(QBNotificationChannel.GCM); - // - subscription.setEnvironment(QBEnvironment.DEVELOPMENT); - // - String deviceId = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); - if (deviceId == null) { - deviceId = "UniversalDeviceId"; - } - subscription.setDeviceUdid(deviceId); - // - String registrationID = "APA91bGr9AcS9Wgv4p4BkBQAg_1YrJZpfa5GMXg7LAQU0lya8gbf9Iw1360602PunkWk_NOsLS2xEK8tPeBCBfSH4fobt7zW4KVlWGjUfR3itFbVa_UreBf6c-rZ8uP_0_vxPCO65ceqgnjvQqD6j8DjLykok7VF7UBBjsMZrTIFjKwmVeJqb1o"; - subscription.setRegistrationID(registrationID); - - - ArrayList createdSubscriptions = null; - try { - createdSubscriptions = QBPushNotifications.createSubscription(subscription).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (createdSubscriptions != null) { - Log.i(TAG, ">>> Subscription: " + createdSubscriptions.toString()); - } - } - }; - - - // - /////////////////////////////////////// Get Subscription /////////////////////////////////////// - // - - - Snippet getSubscriptions = new Snippet("get subscriptions") { - @Override - public void execute() { - QBPushNotifications.getSubscriptions().performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList subscriptions, Bundle args) { - Log.i(TAG, ">>> Subscriptions: " + subscriptions.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getSubscriptionsSynchronous = new SnippetAsync("get subscriptions (synchronous)", context) { - @Override - public void executeAsync() { - ArrayList subscriptions = null; - try { - subscriptions = QBPushNotifications.getSubscriptions().perform(); - } catch (QBResponseException e) { - setException(e); - } - if (subscriptions != null) { - Log.i(TAG, ">>> Subscriptions: " + subscriptions.toString()); - } - } - }; - - - // - ////////////////////////////////////// Delete Subscription ///////////////////////////////////// - // - - - Snippet deleteSubscription = new Snippet("delete subscription") { - @Override - public void execute() { - QBPushNotifications.deleteSubscription(1558628).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> subscription successfully deleted"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteSubscriptionSynchronous = new SnippetAsync("delete subscriptions (synchronous)", context) { - @Override - public void executeAsync() { - try { - QBPushNotifications.deleteSubscription(1558628).perform(); - Log.i(TAG, ">>> subscription successfully deleted"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ///////////////////////////////////////// Create Event ///////////////////////////////////////// - // - - protected QBEvent buildEvent() { - // recipient - StringifyArrayList userIds = new StringifyArrayList<>(); - userIds.add(ApplicationConfig.getInstance().getTestUserId1()); - userIds.add(ApplicationConfig.getInstance().getTestUserId2()); - userIds.add(5179218); - userIds.add(301); - - QBEvent event = new QBEvent(); - event.setUserIds(userIds); - event.setType(QBEventType.ONE_SHOT); - event.setEnvironment(QBEnvironment.DEVELOPMENT); - event.setNotificationType(QBNotificationType.PUSH); - - // iOS based push - event.setPushType(QBPushType.APNS); - HashMap data = new HashMap<>(); - Map aps = new HashMap<>(); - aps.put("alert", "You have 3 new messages"); - aps.put("badge", "3"); - data.put("aps", aps); - - event.setMessage(data); - - return event; - } - - Snippet createEvent = new Snippet("create event (send push)") { - @Override - public void execute() { - - QBEvent event = buildEvent(); - - QBPushNotifications.createEvent(event).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBEvent qbEvent, Bundle args) { - Log.i(TAG, ">>> new event: " + qbEvent.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet createEventSynchronous = new SnippetAsync("create event (send push) (synchronous)", context) { - @Override - public void executeAsync() { - QBEvent event = buildEvent(); - - QBEvent createdEvent = null; - try { - createdEvent = QBPushNotifications.createEvent(event).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (createdEvent != null) { - Log.i(TAG, ">>> Event: " + createdEvent.toString()); - } - } - }; - - - // - ////////////////////////////////////////// Get Event /////////////////////////////////////////// - // - - - Snippet getEventWithId = new Snippet("get event", "with id") { - @Override - public void execute() { - QBPushNotifications.getEvent(1454324).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBEvent qbEvent, Bundle args) { - Log.i(TAG, ">>> event: " + qbEvent.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - - }); - } - }; - - Snippet getEventWithIdSynchronous = new SnippetAsync("get event (synchronous)", "with id", context) { - public QBEvent event; - - @Override - public void executeAsync() { - try { - event = QBPushNotifications.getEvent(1454324).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (event != null) { - Log.i(TAG, ">>> event: " + event.toString()); - } - } - }; - - - // - ////////////////////////////////////////// Get Events /////////////////////////////////////////// - // - - - Snippet getEvents = new Snippet("get events") { - @Override - public void execute() { - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(20, 1); - Bundle bundle = new Bundle(); - QBPushNotifications.getEvents(requestBuilder, bundle).performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList events, Bundle args) { - Log.i(TAG, ">>> Events: " + events.toString()); - Log.i(TAG, "currentPage: " + args.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + args.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + args.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - - } - }; - - Snippet getEventsSynchronous = new SnippetAsync("get events (synchronous)", context) { - @Override - public void executeAsync() { - QBPagedRequestBuilder requestBuilder = new QBPagedRequestBuilder(20, 1); - Bundle params = new Bundle(); - ArrayList events = null; - try { - events = QBPushNotifications.getEvents(requestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (events != null) { - Log.i(TAG, ">>> Events: " + events.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Update Event /////////////////////////////////////////// - // - - - Snippet updateEvent = new Snippet("update event") { - @Override - public void execute() { - QBEvent event = new QBEvent(); - event.setId(1470629); - event.setActive(true); // send it again - - QBPushNotifications.updateEvent(event).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBEvent qbEvent, Bundle args) { - Log.i(TAG, ">>> event: " + qbEvent.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - - }); - } - }; - - Snippet updateEventSynchronous = new SnippetAsync("update events (synchronous)", context) { - @Override - public void executeAsync() { - QBEvent event = new QBEvent(); - event.setId(1454326); - event.setActive(true); // send it again - - QBEvent updatedEvent = null; - try { - updatedEvent = QBPushNotifications.updateEvent(event).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (updatedEvent != null) { - Log.i(TAG, ">>> Event: " + updatedEvent.toString()); - } - } - }; - - - // - /////////////////////////////////////// Delete Event /////////////////////////////////////////// - // - - - Snippet deleteEvent = new Snippet("delete event") { - @Override - public void execute() { - QBPushNotifications.deleteEvent(1454324).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> event successfully deleted"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteEventSynchronous = new SnippetAsync("delete events (synchronous)", context) { - @Override - public void executeAsync() { - try { - QBPushNotifications.deleteEvent(1454326).perform(); - - Log.i(TAG, ">>> event successfully deleted"); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ///////////////////////////////////////////// Tasks ///////////////////////////////////////////// - // - - - Snippet subscribeToPushNotificationsTask = new Snippet("TASK: subscribe to push notifications") { - @Override - public void execute() { - String registrationID = "APA91bGr9AcS9Wgv4p4BkBQAg_1YrJZpfa5GMXg7LAQU0lya8gbf9Iw1360602PunkWk_NOsLS2xEK8tPeBCBfSH4fobt7zW4KVlWGjUfR3itFbVa_UreBf6c-rZ8uP_0_vxPCO65ceqgnjvQqD6j8DjLykok7VF7UBBjsMZrTIFjKwmVeJqb1o"; - String deviceId = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); - if (deviceId == null) { - deviceId = "UniversalDeviceId"; - } - - QBSubscription subscription = new QBSubscription(); - subscription.setEnvironment(QBEnvironment.DEVELOPMENT); - subscription.setDeviceUdid(deviceId); - subscription.setRegistrationID(registrationID); - - QBPushNotifications.createSubscription(subscription).performAsync( - new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList subscriptions, Bundle args) { - Log.i(TAG, ">>> subscription created" + subscriptions.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - - } - }; - - Snippet subscribeToPushNotificationsTaskSynchronous = new SnippetAsync("TASK: subscribe to push notifications (synchronous)", context) { - @Override - public void executeAsync() { - String registrationID = "APA91bGr9AcS9Wgv4p4BkBQAg_1YrJZpfa5GMXg7LAQU0lya8gbf9Iw1360602PunkWk_NOsLS2xEK8tPeBCBfSH4fobt7zW4KVlWGjUfR3itFbVa_UreBf6c-rZ8uP_0_vxPCO65ceqgnjvQqD6j8DjLykok7VF7UBBjsMZrTIFjKwmVeJqb1o"; - String deviceId = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); - if (deviceId == null) { - deviceId = "UniversalDeviceId"; - } - - QBSubscription subscription = new QBSubscription(); - subscription.setEnvironment(QBEnvironment.DEVELOPMENT); - subscription.setDeviceUdid(deviceId); - subscription.setRegistrationID(registrationID); - - ArrayList subscriptions = null; - try { - subscriptions = QBPushNotifications.createSubscription(subscription).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (subscriptions != null) { - Log.i(TAG, ">>> subscription created: " + subscriptions); - } - } - }; -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsUsers.java b/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsUsers.java deleted file mode 100644 index 42e6da8ed..000000000 --- a/old_samples/snippets/src/main/java/com/sdk/snippets/modules/SnippetsUsers.java +++ /dev/null @@ -1,1587 +0,0 @@ -package com.sdk.snippets.modules; - -import android.content.Context; -import android.os.Bundle; -import android.util.Log; - -import com.digits.sdk.android.AuthCallback; -import com.digits.sdk.android.Digits; -import com.digits.sdk.android.DigitsException; -import com.digits.sdk.android.DigitsOAuthSigning; -import com.digits.sdk.android.DigitsSession; -import com.quickblox.auth.model.QBProvider; -import com.quickblox.core.Consts; -import com.quickblox.core.QBEntityCallback; -import com.quickblox.core.exception.QBResponseException; -import com.quickblox.core.helper.Lo; -import com.quickblox.core.helper.StringifyArrayList; -import com.quickblox.core.request.QBPagedRequestBuilder; -import com.quickblox.users.QBUsers; -import com.quickblox.users.model.QBUser; -import com.sdk.snippets.core.ApplicationConfig; -import com.sdk.snippets.core.Snippet; -import com.sdk.snippets.core.SnippetAsync; -import com.sdk.snippets.core.Snippets; -import com.twitter.sdk.android.core.TwitterAuthConfig; -import com.twitter.sdk.android.core.TwitterAuthToken; -import com.twitter.sdk.android.core.TwitterCore; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import io.fabric.sdk.android.Fabric; - - -public class SnippetsUsers extends Snippets { - private static final String TAG = SnippetsUsers.class.getSimpleName(); - - private TwitterAuthConfig authConfig; - - public SnippetsUsers(Context context) { - super(context); - - snippets.add(signInUserWithLogin); - snippets.add(signInUserWithLoginSynchronous); - // - snippets.add(signInUserWithEmail); - snippets.add(signInUserWithEmailSynchronous); - // - snippets.add(signInUsingSocialProvider); - snippets.add(signInUsingSocialProviderSynchronous); - // - snippets.add(signInUsingTwitterDigits); - snippets.add(signInUsingTwitterDigitsSynchronous); - // - snippets.add(signOut); - snippets.add(signOutSynchronous); - // - snippets.add(signUpUserNewCallback); - snippets.add(signUpUserSynchronous); - // - snippets.add(signUpSignInUser); - snippets.add(signUpSignInUserSynchronous); - // - // - snippets.add(updateUser); - snippets.add(updateUserSynchronous); - // - // - snippets.add(deleteUserById); - snippets.add(deleteUserByIdSynchronous); - // - snippets.add(deleteUserByExternalId); - snippets.add(deleteUserByExternalIdSynchronous); - // - // - snippets.add(resetPassword); - snippets.add(resetPasswordSynchronous); - // - // - snippets.add(getAllUsers); - snippets.add(getAllUsersSynchronous); - // - snippets.add(getUsersByIds); - snippets.add(getUsersByIdsSynchronous); - // - snippets.add(getUsersByLogins); - snippets.add(getUsersByLoginsSynchronous); - // - snippets.add(getUsersByEmails); - snippets.add(getUsersByEmailsSynchronous); - // - snippets.add(getUsersByPhoneNumbers); - snippets.add(getUsersByPhoneNumbersSynchronous); - // - snippets.add(getUsersWithFacebookIDs); - snippets.add(getUsersWithFacebookIDsSynchronous); - // - snippets.add(getUsersWithTwitterIDs); - snippets.add(getUsersWithTwitterIDsSynchronous); - // - snippets.add(getUsersWithTwitterDigitsIDs); - snippets.add(getUsersWithTwitterDigitsIDsSynchronous); - // - snippets.add(getUsersWithTags); - snippets.add(getUsersWithTagsSynchronous); - // - snippets.add(getUsersWithFullName); - snippets.add(getUsersWithFullNameSynchronous); - // - // - snippets.add(getUserById); - snippets.add(getUserByIdSynchronous); - // - snippets.add(getUserWithLogin); - snippets.add(getUserWithLoginSynchronous); - // - snippets.add(getUserWithTwitterId); - snippets.add(getUserWithTwitterIdSynchronous); - // - snippets.add(getUserWithTwitterDigitsId); - snippets.add(getUserWithTwitterDigitsIdSynchronous); - // - snippets.add(getUserWithFacebookId); - snippets.add(getUserWithFacebookIdSynchronous); - // - snippets.add(getUserWithEmail); - snippets.add(getUserWithEmailSynchronous); - // - snippets.add(getUserWithExternalId); - snippets.add(getUserWithExternalIdSynchronous); - - } - - - // - ///////////////////////////////// Sign In with login /////////////////////////////////////////// - // - - - Snippet signInUserWithLogin = new Snippet("sign in user", "with login") { - @Override - public void execute() { - - final QBUser user = new QBUser(ApplicationConfig.getInstance().getTestUserLogin1(), - ApplicationConfig.getInstance().getTestUserPassword1()); - - QBUsers.signIn(user).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle params) { - Log.i(TAG, ">>> User was successfully signed in: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet signInUserWithLoginSynchronous = new SnippetAsync("sign in user (synchronous)", "with login", context) { - @Override - public void executeAsync() { - QBUser user = new QBUser(); - user.setLogin(ApplicationConfig.getInstance().getTestUserLogin1()); - user.setPassword(ApplicationConfig.getInstance().getTestUserPassword1()); - QBUser userResult = null; - try { - userResult = QBUsers.signIn(user).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (userResult != null) { - Log.i(TAG, "User was successfully signed in: " + userResult); - } - } - }; - - - // - ///////////////////////////////// Sign In with email /////////////////////////////////////////// - // - - - Snippet signInUserWithEmail = new Snippet("sign in user", "with email") { - @Override - public void execute() { - - String email = "test987@test.com"; - String password = "testpassword"; - - QBUsers.signInByEmail(email, password).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User was successfully signed in, " + user); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet signInUserWithEmailSynchronous = new SnippetAsync("sign in user (synchronous)", "with email", context) { - @Override - public void executeAsync() { - String email = "test987@test.com"; - String password = "testpassword"; - - QBUser userResult = null; - try { - userResult = QBUsers.signInByEmail(email, password).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (userResult != null) { - Log.i(TAG, "User was successfully signed in," + userResult); - } - } - }; - - - // - ///////////////////////////////// Sign In with social provider ///////////////////////////////// - // - - - Snippet signInUsingSocialProvider = new Snippet("sign in user", "with social provider") { - @Override - public void execute() { - String facebookAccessToken = "AAAEra8jNdnkBABYf3ZBSAz9dgLfyK7tQNttIoaZA1cC40niR6HVS0nYuufZB0ZCn66VJcISM8DO2bcbhEahm2nW01ZAZC1YwpZB7rds37xW0wZDZD"; - - QBUsers.signInUsingSocialProvider(QBProvider.FACEBOOK, facebookAccessToken, null).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User was successfully signed in, " + user); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - - }); - } - }; - - Snippet signInUsingSocialProviderSynchronous = new SnippetAsync("sign in user (synchronous)", "with social provider", context) { - @Override - public void executeAsync() { - - String facebookAccessToken = "AAAEra8jNdnkBABYf3ZBSAz9dgLfyK7tQNttIoaZA1cC40niR6HVS0nYuufZB0ZCn66VJcISM8DO2bcbhEahm2nW01ZAZC1YwpZB7rds37xW0wZDZD"; - - QBUser userResult = null; - try { - userResult = QBUsers.signInUsingSocialProvider(QBProvider.FACEBOOK, facebookAccessToken, null).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (userResult != null) { - Log.i(TAG, "User was successfully signed in," + userResult); - } - } - }; - - - // - ////////////////////////// Sign in with Twitter Digits ///////////////////////////////// - // - - - Snippet signInUsingTwitterDigits = new Snippet("sign in user", "with Twitter Digits") { - @Override - public void execute() { - initTwitterDigits(); - authenticateWithTwitterDigits(false); - - } - }; - - Snippet signInUsingTwitterDigitsSynchronous = new SnippetAsync("sign in user (synchronous)", "with Twitter Digits", context) { - @Override - public void executeAsync() { - initTwitterDigits(); - authenticateWithTwitterDigits(true); - } - }; - - private void initTwitterDigits() { - if (authConfig == null) { - // Note: Your consumer key and secret should be obfuscated in your source code before shipping. - String consumerKey = "A1NXq7BxZ74NZ3dDzXA1HcSN7"; - String consumerSecret = "Piuy52Kf2m2iHVKpfpffi6xjvOYVI904O6sl1c50TLpntTVsl6"; - - authConfig = new TwitterAuthConfig(consumerKey, consumerSecret); - Fabric.with(context, new TwitterCore(authConfig), new Digits()); - } - } - - private void authenticateWithTwitterDigits(final boolean isSync) { - Digits.authenticate(new AuthCallback() { - @Override - public void success(DigitsSession session, String phoneNumber) { - Map authHeaders = getAuthHeadersBySession(session); - - Lo.g(authHeaders); - - String xAuthServiceProvider = authHeaders.get("X-Auth-Service-Provider"); - String xVerifyCredentialsAuthorization = authHeaders.get("X-Verify-Credentials-Authorization"); - - if (isSync) { - QBUser user = null; - try { - user = QBUsers.signInUsingTwitterDigits(xAuthServiceProvider, xVerifyCredentialsAuthorization).perform(); - } catch (QBResponseException e) { - e.printStackTrace(); - } - if (session != null) { - Log.i(TAG, "user: " + user); - } - } else { - QBUsers.signInUsingTwitterDigits(xAuthServiceProvider, xVerifyCredentialsAuthorization).performAsync( - new QBEntityCallback() { - @Override - public void onSuccess(QBUser user, Bundle params) { - Log.i(TAG, "user: " + user); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - } - - @Override - public void failure(DigitsException exception) { - log(exception.getMessage()); - } - }, "+38"); - } - - private Map getAuthHeadersBySession(DigitsSession digitsSession) { - TwitterAuthToken authToken = (TwitterAuthToken) digitsSession.getAuthToken(); - DigitsOAuthSigning oauthSigning = new DigitsOAuthSigning(authConfig, authToken); - - return oauthSigning.getOAuthEchoHeadersForVerifyCredentials(); - } - - - // - ///////////////////////////////////////// Sign Out ///////////////////////////////////////////// - // - - - Snippet signOut = new Snippet("sign out") { - @Override - public void execute() { - QBUsers.signOut().performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> User was successfully signed out"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet signOutSynchronous = new SnippetAsync("sign out (synchronous)", context) { - @Override - public void executeAsync() { - try { - QBUsers.signOut().perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ///////////////////////////////////////// Sign Up ////////////////////////////////////////////// - // - - - Snippet signUpUserNewCallback = new Snippet("sign up user") { - @Override - public void execute() { - - final QBUser user = new QBUser("testu33ser12344443", "testpassword"); - user.setFullName("fullName5"); - user.setPhone("+18904567812"); - user.setCustomData("my custom data"); - StringifyArrayList tags = new StringifyArrayList(); - tags.add("firstTag"); - tags.add("secondTag"); - tags.add("thirdTag"); - tags.add("fourthTag"); - user.setTags(tags); - user.setWebsite("website.com"); - - QBUsers.signUp(user).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User was successfully signed up, " + user); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet signUpUserSynchronous = new SnippetAsync("sign up user (synchronous)", context) { - @Override - public void executeAsync() { - - final QBUser user = new QBUser("tes33tuser12344443", "testpassword"); - user.setFullName("fullName5"); - user.setPhone("+18904567812"); - user.setCustomData("my custom data"); - StringifyArrayList tags = new StringifyArrayList(); - tags.add("firstTag"); - tags.add("secondTag"); - tags.add("thirdTag"); - tags.add("fourthTag"); - user.setTags(tags); - user.setWebsite("website.com"); - QBUser qbUserResult = null; - try { - qbUserResult = QBUsers.signUp(user).perform(); - } catch (QBResponseException e) { - setException(e); - } - if (qbUserResult != null) { - Log.i(TAG, ">>> User was successfully signed up, " + qbUserResult); - } - } - }; - - - // - ///////////////////////////////// Sign Up and Sign In task ///////////////////////////////////// - // - - - Snippet signUpSignInUser = new Snippet("sign up and sign in user") { - @Override - public void execute() { - - final QBUser user = new QBUser("testu33ser12344443", "testpassword"); - user.setFullName("fullName5"); - user.setPhone("+18904567812"); - StringifyArrayList tags = new StringifyArrayList(); - tags.add("firstTag"); - tags.add("secondTag"); - tags.add("thirdTag"); - tags.add("fourthTag"); - user.setTags(tags); - user.setWebsite("website.com"); - - QBUsers.signUpSignInTask(user).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User was successfully signed up and signed in, " + user); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet signUpSignInUserSynchronous = new SnippetAsync("sign up and sign in user (synchronous)", context) { - @Override - public void executeAsync() { - final QBUser user = new QBUser("te12stuser12344443", "testpassword"); - user.setFullName("fullName5"); - user.setPhone("+18904567812"); - StringifyArrayList tags = new StringifyArrayList(); - tags.add("firstTag"); - tags.add("secondTag"); - tags.add("thirdTag"); - tags.add("fourthTag"); - user.setTags(tags); - user.setWebsite("website.com"); - - QBUser userResult = null; - try { - userResult = QBUsers.signUpSignInTask(user).perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ///////////////////////////////// Update user /////////////////////////////////////////// - // - - Snippet updateUser = new Snippet("update user") { - @Override - public void execute() { - final QBUser user = new QBUser(); - user.setId(1501966); - user.setFullName("Monro"); - StringifyArrayList tags = new StringifyArrayList(); - tags.add("man"); - user.setTags(tags); - - QBUsers.updateUser(user).performAsync(new QBEntityCallback() { - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet updateUserSynchronous = new SnippetAsync("update user (synchronous)", context) { - @Override - public void executeAsync() { - final QBUser user = new QBUser(); - user.setId(53779); - user.setFullName("galog"); - user.setCustomData("my new custom data"); - user.setWebsite("google.com"); - - QBUser userResult = null; - try { - userResult = QBUsers.updateUser(user).perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ///////////////////////////////// Delete user /////////////////////////////////////////// - // - - - Snippet deleteUserById = new Snippet("delete user", "by id") { - @Override - public void execute() { - - int userId = 562; - QBUsers.deleteUser(userId).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> User was successfully deleted"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteUserByIdSynchronous = new SnippetAsync("delete user (synchronous)", "by id", context) { - @Override - public void executeAsync() { - - int userId = 562; - - try { - QBUsers.deleteUser(userId).perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - ///////////////////////////////// Delete user /////////////////////////////////////////// - // - - - Snippet deleteUserByExternalId = new Snippet("delete user", "by external id") { - @Override - public void execute() { - QBUsers.deleteByExternalId("568965444").performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> User was successfully deleted"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet deleteUserByExternalIdSynchronous = new SnippetAsync("delete user (synchronous)", "by external id", context) { - @Override - public void executeAsync() { - - try { - QBUsers.deleteByExternalId("568965444").perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - //////////////////////////////////////// Resey password //////////////////////////////////////// - // - - - Snippet resetPassword = new Snippet("reset password") { - @Override - public void execute() { - QBUsers.resetPassword("test987@test.com").performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(Void result, Bundle bundle) { - Log.i(TAG, ">>> Email was sent"); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet resetPasswordSynchronous = new SnippetAsync("reset password (synchronous)", context) { - @Override - public void executeAsync() { - - try { - QBUsers.resetPassword("test987@test.com").perform(); - } catch (QBResponseException e) { - setException(e); - } - } - }; - - - // - //////////////////////////////////////// Get users ///////////////////////////////////////////// - // - - - Snippet getAllUsers = new Snippet("get users") { - @Override - public void execute() { - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(5); - - Bundle bundle = new Bundle(); - - QBUsers.getUsers(pagedRequestBuilder, bundle).performAsync(new QBEntityCallback>() { - - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalEntries: " + params.getInt(Consts.TOTAL_ENTRIES)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_PAGES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getAllUsersSynchronous = new SnippetAsync("get users (synchronous)", context) { - @Override - public void executeAsync() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - Bundle params = new Bundle(); - ArrayList users = null; - try { - users = QBUsers.getUsers(pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users by IDs ////////////////////////////////////// - // - - - Snippet getUsersByIds = new Snippet("get users", "by ids") { - @Override - public void execute() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - List usersIds = new ArrayList<>(); - usersIds.add(378); - usersIds.add(379); - usersIds.add(380); - - Bundle bundle = new Bundle(); - - QBUsers.getUsersByIDs(usersIds, pagedRequestBuilder, bundle).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - - }); - } - }; - - Snippet getUsersByIdsSynchronous = new SnippetAsync("get users (synchronous)", "by ids", context) { - @Override - public void executeAsync() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - List usersIds = new ArrayList<>(); - usersIds.add(378); - usersIds.add(379); - usersIds.add(380); - - Bundle params = new Bundle(); - ArrayList users = null; - try { - users = QBUsers.getUsersByIDs(usersIds, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users by logins /////////////////////////////////// - // - - - Snippet getUsersByLogins = new Snippet("get users", "by logins") { - @Override - public void execute() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - StringifyArrayList usersLogins = new StringifyArrayList(); - usersLogins.add("igorquickblox2"); - usersLogins.add("john"); - - Bundle params = new Bundle(); - - QBUsers.getUsersByLogins(usersLogins, pagedRequestBuilder, params).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - - }); - } - }; - - Snippet getUsersByLoginsSynchronous = new SnippetAsync("get users (synchronous)", "by logins", context) { - @Override - public void executeAsync() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - StringifyArrayList usersLogins = new StringifyArrayList(); - usersLogins.add("igorquickblox2"); - usersLogins.add("john"); - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = (ArrayList) QBUsers.getUsersByLogins(usersLogins, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users by emails /////////////////////////////////// - // - - - Snippet getUsersByEmails = new Snippet("get users", "by emails") { - @Override - public void execute() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - StringifyArrayList usersEmails = new StringifyArrayList(); - usersEmails.add("asd@ffg.fgg"); - usersEmails.add("ghh@ggh.vbb"); - - QBUsers.getUsersByEmails(usersEmails, pagedRequestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - - }); - } - }; - - Snippet getUsersByEmailsSynchronous = new SnippetAsync("get users (synchronous)", "by emails", context) { - @Override - public void executeAsync() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - StringifyArrayList usersEmails = new StringifyArrayList(); - usersEmails.add("asd@ffg.fgg"); - usersEmails.add("ghh@ggh.vbb"); - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = (ArrayList) QBUsers.getUsersByEmails(usersEmails, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users by phone numbers //////////////////////////// - // - - - Snippet getUsersByPhoneNumbers = new Snippet("get users", "by phone numbers") { - @Override - public void execute() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - StringifyArrayList usersPhones = new StringifyArrayList(); - usersPhones.add("980028312"); - usersPhones.add("765172323"); - - QBUsers.getUsersByPhoneNumbers(usersPhones, pagedRequestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - - }); - } - }; - - Snippet getUsersByPhoneNumbersSynchronous = new SnippetAsync("get users (synchronous)", "by phone numbers", context) { - @Override - public void executeAsync() { - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - StringifyArrayList usersPhones = new StringifyArrayList(); - usersPhones.add("980028312"); - usersPhones.add("765172323"); - ; - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = (ArrayList) QBUsers.getUsersByPhoneNumbers(usersPhones, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users with Facebook IDs /////////////////////////////////// - // - - - Snippet getUsersWithFacebookIDs = new Snippet("get users", "with facebook IDs") { - @Override - public void execute() { - StringifyArrayList facebookIDs = new StringifyArrayList(); - facebookIDs.add("11020002022222"); - facebookIDs.add("10000045345444"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - QBUsers.getUsersByFacebookId(facebookIDs, pagedRequestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getUsersWithFacebookIDsSynchronous = new SnippetAsync("get users (synchronous)", "with facebook IDs", context) { - @Override - public void executeAsync() { - StringifyArrayList facebookIDs = new StringifyArrayList(); - facebookIDs.add("11020002022222"); - facebookIDs.add("10000045345444"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = (ArrayList) QBUsers.getUsersByFacebookId(facebookIDs, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users with Twitter IDs /////////////////////////////////// - // - - - Snippet getUsersWithTwitterIDs = new Snippet("get users", "with twitter IDs") { - @Override - public void execute() { - StringifyArrayList twitterIDs = new StringifyArrayList(); - twitterIDs.add("11020002022222"); - twitterIDs.add("10000045345444"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - QBUsers.getUsersByTwitterId(twitterIDs, pagedRequestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getUsersWithTwitterIDsSynchronous = new SnippetAsync("get users (synchronous)", "with twitter IDs", context) { - @Override - public void executeAsync() { - StringifyArrayList twitterIDs = new StringifyArrayList(); - twitterIDs.add("11020002022222"); - twitterIDs.add("10000045345444"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = (ArrayList) QBUsers.getUsersByTwitterId(twitterIDs, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users with Twitter Digits ID /////////////////////////////////// - // - - - Snippet getUsersWithTwitterDigitsIDs = new Snippet("get users", "with twitter digits IDs") { - @Override - public void execute() { - ArrayList twitterDigitsIDs = new ArrayList(); - twitterDigitsIDs.add("3533173695"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - QBUsers.getUsersByTwitterDigitsId(twitterDigitsIDs, pagedRequestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getUsersWithTwitterDigitsIDsSynchronous = new SnippetAsync("get users (synchronous)", "with twitter digits IDs", context) { - @Override - public void executeAsync() { - ArrayList twitterDigitsIDs = new ArrayList(); - twitterDigitsIDs.add("3533173695"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = QBUsers.getUsersByTwitterDigitsId(twitterDigitsIDs, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - handleErrors(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users with tags /////////////////////////////////// - // - - - Snippet getUsersWithTags = new Snippet("get users", "with tags") { - @Override - public void execute() { - StringifyArrayList userTags = new StringifyArrayList(); - userTags.add("man"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - QBUsers.getUsersByTags(userTags, pagedRequestBuilder).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getUsersWithTagsSynchronous = new SnippetAsync("get users (synchronous)", "with tags", context) { - @Override - public void executeAsync() { - StringifyArrayList userTags = new StringifyArrayList(); - userTags.add("man"); - userTags.add("car"); - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = (ArrayList) QBUsers.getUsersByTags(userTags, pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get users with fullname /////////////////////////////////// - // - - - Snippet getUsersWithFullName = new Snippet("get users", "with full name") { - @Override - public void execute() { - String fullName = "bob"; - QBUsers.getUsersByFullName(fullName, null).performAsync(new QBEntityCallback>() { - @Override - public void onSuccess(ArrayList users, Bundle params) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - - @Override - public void onError(QBResponseException errors) { - handleErrors(errors); - } - }); - } - }; - - Snippet getUsersWithFullNameSynchronous = new SnippetAsync("get users (synchronous)", "with fullname", context) { - @Override - public void executeAsync() { - - QBPagedRequestBuilder pagedRequestBuilder = new QBPagedRequestBuilder(); - pagedRequestBuilder.setPage(1); - pagedRequestBuilder.setPerPage(10); - - Bundle params = new Bundle(); - - ArrayList users = null; - try { - users = QBUsers.getUsersByFullName("bob", pagedRequestBuilder, params).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (users != null) { - Log.i(TAG, ">>> Users: " + users.toString()); - Log.i(TAG, "currentPage: " + params.getInt(Consts.CURR_PAGE)); - Log.i(TAG, "perPage: " + params.getInt(Consts.PER_PAGE)); - Log.i(TAG, "totalPages: " + params.getInt(Consts.TOTAL_ENTRIES)); - } - } - }; - - - // - //////////////////////////////////////// Get user by ID //////////////////////////////////////// - // - - - Snippet getUserById = new Snippet("get user", "by id") { - @Override - public void execute() { - QBUsers.getUser(53779).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet getUserByIdSynchronous = new SnippetAsync("get user (synchronous)", "by id", context) { - @Override - public void executeAsync() { - QBUser user = null; - try { - user = QBUsers.getUser(53779).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (user != null) { - Log.i(TAG, ">>> User: " + user.toString()); - } - } - }; - - - // - //////////////////////////////////////// Get user with login /////////////////////////////////// - // - - - Snippet getUserWithLogin = new Snippet("get user", "with login") { - @Override - public void execute() { - String login = "testuser"; - QBUsers.getUserByLogin(login).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet getUserWithLoginSynchronous = new SnippetAsync("get user (synchronous)", "with login", context) { - @Override - public void executeAsync() { - String login = "testuser"; - - QBUser user = null; - try { - user = QBUsers.getUserByLogin(login).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (user != null) { - Log.i(TAG, ">>> User: " + user.toString()); - } - } - }; - - - // - //////////////////////////////////////// Get user with twitter ID ////////////////////////////// - // - - - Snippet getUserWithTwitterId = new Snippet("get user", "with twitter id") { - @Override - public void execute() { - String twitterId = "56802037340"; - QBUsers.getUserByTwitterId(twitterId).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet getUserWithTwitterIdSynchronous = new SnippetAsync("get user (synchronous)", "with twitter id", context) { - @Override - public void executeAsync() { - String twitterId = "56802037340"; - - QBUser user = null; - try { - user = QBUsers.getUserByTwitterId(twitterId).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (user != null) { - Log.i(TAG, ">>> User: " + user.toString()); - } - } - }; - - - // - //////////////////////////////////////// Get user with twitter digits ID ////////////////////////////// - // - - - Snippet getUserWithTwitterDigitsId = new Snippet("get user", "with twitter digits id") { - @Override - public void execute() { - String twitterDigitsId = "3533173695"; - QBUsers.getUserByTwitterDigitsId(twitterDigitsId).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet getUserWithTwitterDigitsIdSynchronous = new SnippetAsync("get user (synchronous)", "with twitter digits id", context) { - @Override - public void executeAsync() { - String twitterDigitsId = "3533173695"; - - QBUser user = null; - try { - user = QBUsers.getUserByTwitterDigitsId(twitterDigitsId).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (user != null) { - Log.i(TAG, ">>> User: " + user.toString()); - } - } - }; - - - // - //////////////////////////////////////// Get user with facebook ID ///////////////////////////// - // - - - Snippet getUserWithFacebookId = new Snippet("get user", "with facebook id") { - @Override - public void execute() { - String facebookId = "100003123141430"; - QBUsers.getUserByFacebookId(facebookId).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet getUserWithFacebookIdSynchronous = new SnippetAsync("get user (synchronous)", "with facebook id", context) { - @Override - public void executeAsync() { - String facebookId = "100003123141430"; - - QBUser user = null; - try { - user = QBUsers.getUserByFacebookId(facebookId).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (user != null) { - Log.i(TAG, ">>> User: " + user.toString()); - } - } - }; - - - // - //////////////////////////////////////// Get user with email ///////////////////////////// - // - - - Snippet getUserWithEmail = new Snippet("get user", "with email") { - @Override - public void execute() { - String email = "test123@test.com"; - QBUsers.getUserByEmail(email).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet getUserWithEmailSynchronous = new SnippetAsync("get user (synchronous)", "with email", context) { - - QBUser userByEmail; - - @Override - public void executeAsync() { - String email = "test123@test.com"; - try { - userByEmail = QBUsers.getUserByEmail(email).perform(); - } catch (QBResponseException e) { - setException(e); - } - } - - @Override - protected void postExecute() { - super.postExecute(); - if (userByEmail != null) { - Log.i(TAG, ">>> User: " + userByEmail.toString()); - } - } - }; - - - // - //////////////////////////////////////// Get user with external ID ///////////////////////////// - // - - - Snippet getUserWithExternalId = new Snippet("get user", "with external id") { - @Override - public void execute() { - String externalId = "123145235"; - QBUsers.getUserByExternalId(externalId).performAsync(new QBEntityCallback() { - - @Override - public void onSuccess(QBUser user, Bundle args) { - Log.i(TAG, ">>> User: " + user.toString()); - } - - @Override - public void onError(QBResponseException errors) { - } - }); - } - }; - - Snippet getUserWithExternalIdSynchronous = new SnippetAsync("get user (synchronous)", "with external id", context) { - @Override - public void executeAsync() { - String externalId = "123145235"; - - QBUser user = null; - try { - user = QBUsers.getUserByExternalId(externalId).perform(); - } catch (QBResponseException e) { - setException(e); - } - - if (user != null) { - Log.i(TAG, ">>> User: " + user.toString()); - } - } - }; -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/res/drawable/icon.png b/old_samples/snippets/src/main/res/drawable/icon.png deleted file mode 100644 index 5f5560815..000000000 Binary files a/old_samples/snippets/src/main/res/drawable/icon.png and /dev/null differ diff --git a/old_samples/snippets/src/main/res/layout/list_item.xml b/old_samples/snippets/src/main/res/layout/list_item.xml deleted file mode 100644 index 147271aa5..000000000 --- a/old_samples/snippets/src/main/res/layout/list_item.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/old_samples/snippets/src/main/res/layout/main.xml b/old_samples/snippets/src/main/res/layout/main.xml deleted file mode 100644 index fbce97ba3..000000000 --- a/old_samples/snippets/src/main/res/layout/main.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/old_samples/snippets/src/main/res/layout/snippets_list.xml b/old_samples/snippets/src/main/res/layout/snippets_list.xml deleted file mode 100644 index f28966518..000000000 --- a/old_samples/snippets/src/main/res/layout/snippets_list.xml +++ /dev/null @@ -1,5 +0,0 @@ - - \ No newline at end of file diff --git a/old_samples/snippets/src/main/res/raw/kharkov.jpg b/old_samples/snippets/src/main/res/raw/kharkov.jpg deleted file mode 100644 index 6cf712186..000000000 Binary files a/old_samples/snippets/src/main/res/raw/kharkov.jpg and /dev/null differ diff --git a/old_samples/snippets/src/main/res/raw/sample_file.txt b/old_samples/snippets/src/main/res/raw/sample_file.txt deleted file mode 100644 index 8243af8aa..000000000 --- a/old_samples/snippets/src/main/res/raw/sample_file.txt +++ /dev/null @@ -1 +0,0 @@ -QuickBlox file example1 \ No newline at end of file diff --git a/old_samples/snippets/src/main/res/raw/sample_file2.txt b/old_samples/snippets/src/main/res/raw/sample_file2.txt deleted file mode 100644 index 85a7e7793..000000000 --- a/old_samples/snippets/src/main/res/raw/sample_file2.txt +++ /dev/null @@ -1 +0,0 @@ -QuickBlox file example2 \ No newline at end of file diff --git a/old_samples/snippets/src/main/res/raw/servers.json b/old_samples/snippets/src/main/res/raw/servers.json deleted file mode 100644 index 58212f8ba..000000000 --- a/old_samples/snippets/src/main/res/raw/servers.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "servers": { - "production": { - "app_id": "72448", - "auth_key": "f4HYBYdeqTZ7KNb", - "auth_secret": "ZC7dK39bOjVc-Z8", - "api_domain": "api.quickblox.com", - "chat_domain": "chat.quickblox.com", - "bucket_name": "qbprod", - "test_user_id1": 55746068, - "test_user_login1": "test_user_id1", - "test_user_password1": "test_user_id1", - "test_user_id2": 55746159, - "test_user_login2": "test_user_id2", - "test_user_password2": "test_user_id2", - "dialog_id": "56f3fac3a0eb4786ae00003f" - } - }, - "active": "production", - "use_first_user": false -} \ No newline at end of file diff --git a/old_samples/snippets/src/main/res/values/strings.xml b/old_samples/snippets/src/main/res/values/strings.xml deleted file mode 100644 index b881d13db..000000000 --- a/old_samples/snippets/src/main/res/values/strings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - Snippets - - \ No newline at end of file diff --git a/old_samples/true/crashlytics-build.properties b/old_samples/true/crashlytics-build.properties deleted file mode 100644 index bb63519f6..000000000 --- a/old_samples/true/crashlytics-build.properties +++ /dev/null @@ -1,11 +0,0 @@ -#This file is automatically generated by Crashlytics to uniquely -#identify individual builds of your Android application. -# -#Do NOT modify, delete, or commit to source control! -# -#Mon Oct 29 16:08:24 EET 2018 -version_name=3.8.1 -package_name=com.quickblox.sample.user -build_id=c7674092-d3db-4e2b-b6e2-bf6a8fee2394 -version_code=381 -app_name=Users diff --git a/old_samples/true/values/com_crashlytics_build_id.xml b/old_samples/true/values/com_crashlytics_build_id.xml deleted file mode 100644 index cf66bc708..000000000 --- a/old_samples/true/values/com_crashlytics_build_id.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - -772ce265-d301-4bd2-b3c5-c318984329a8 - diff --git a/sample-videochat-java/app/build.gradle b/sample-videochat-java/app/build.gradle index 6ab34c2b1..160f10296 100755 --- a/sample-videochat-java/app/build.gradle +++ b/sample-videochat-java/app/build.gradle @@ -34,8 +34,8 @@ android { applicationId "com.quickblox.sample.videochat.java" minSdkVersion 16 targetSdkVersion 28 - versionCode 403000 - versionName '4.0.3-java' + versionCode 404000 + versionName '4.0.4' multiDexEnabled true } diff --git a/sample-videochat-java/app/src/main/java/com/quickblox/sample/videochat/java/utils/PushNotificationSender.java b/sample-videochat-java/app/src/main/java/com/quickblox/sample/videochat/java/utils/PushNotificationSender.java index 10028d6f3..79c5649bb 100644 --- a/sample-videochat-java/app/src/main/java/com/quickblox/sample/videochat/java/utils/PushNotificationSender.java +++ b/sample-videochat-java/app/src/main/java/com/quickblox/sample/videochat/java/utils/PushNotificationSender.java @@ -10,25 +10,14 @@ import org.json.JSONException; import org.json.JSONObject; -import java.text.SimpleDateFormat; import java.util.ArrayList; -import java.util.Calendar; -import java.util.Date; - public class PushNotificationSender { - - public static void sendPushMessage(ArrayList recipients, - String senderName, - String newSessionID, - String opponentsIDs, - String opponentsNames, - boolean isVideoCall) { + public static void sendPushMessage(ArrayList recipients, String senderName, String newSessionID, + String opponentsIDs, String opponentsNames, boolean isVideoCall) { String outMessage = String.format(String.valueOf(R.string.text_push_notification_message), senderName); - Date currentTime = Calendar.getInstance().getTime(); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - String eventDate = simpleDateFormat.format(currentTime); + long timeStamp = System.currentTimeMillis(); // Send Push: create QuickBlox Push Notification Event QBEvent qbEvent = new QBEvent(); @@ -45,7 +34,7 @@ public static void sendPushMessage(ArrayList recipients, json.put("opponentsIDs", opponentsIDs); json.put("contactIdentifier", opponentsNames); json.put("conferenceType", isVideoCall ? "1" : "2"); - json.put("timestamp", eventDate); + json.put("timestamp", Long.toString(timeStamp)); } catch (JSONException e) { e.printStackTrace(); } diff --git a/sample-videochat-java/artifacts.gradle b/sample-videochat-java/artifacts.gradle index 99476f6da..95d0ba8e5 100644 --- a/sample-videochat-java/artifacts.gradle +++ b/sample-videochat-java/artifacts.gradle @@ -18,7 +18,7 @@ android.applicationVariants.all { } else { apkEndName = "-unaligned.apk" } - newApkName = "${appName}-${variant.buildType.name}-${getDate()}-code-${variant.versionCode}-version-${variant.versionName}" + apkEndName + newApkName = "${appName}-${variant.buildType.name}-${getDate()}-code-${variant.versionCode}-version-${variant.versionName}-java" + apkEndName output.outputFileName = newApkName } } diff --git a/sample-videochat-kotlin/app/build.gradle b/sample-videochat-kotlin/app/build.gradle index 8f5e9fed1..6d6d3bdf8 100644 --- a/sample-videochat-kotlin/app/build.gradle +++ b/sample-videochat-kotlin/app/build.gradle @@ -40,8 +40,8 @@ android { applicationId "com.quickblox.sample.videochat.kotlin" minSdkVersion 16 targetSdkVersion 28 - versionCode 403000 - versionName '4.0.3-kotlin' + versionCode 404000 + versionName '4.0.4' multiDexEnabled true } diff --git a/sample-videochat-kotlin/app/src/main/java/com/quickblox/sample/videochat/kotlin/utils/PushNotificationSender.kt b/sample-videochat-kotlin/app/src/main/java/com/quickblox/sample/videochat/kotlin/utils/PushNotificationSender.kt index 515dc00d7..46ca2caf9 100644 --- a/sample-videochat-kotlin/app/src/main/java/com/quickblox/sample/videochat/kotlin/utils/PushNotificationSender.kt +++ b/sample-videochat-kotlin/app/src/main/java/com/quickblox/sample/videochat/kotlin/utils/PushNotificationSender.kt @@ -8,20 +8,13 @@ import com.quickblox.messages.model.QBNotificationType import com.quickblox.sample.videochat.kotlin.R import org.json.JSONException import org.json.JSONObject -import java.text.SimpleDateFormat import java.util.* -fun sendPushMessage(recipients: ArrayList, - senderName: String, - newSessionID: String, - opponentsIDs: String, - opponentsNames: String, - isVideoCall: Boolean) { +fun sendPushMessage(recipients: ArrayList, senderName: String, newSessionID: String, + opponentsIDs: String, opponentsNames: String, isVideoCall: Boolean) { val outMessage = String.format(R.string.text_push_notification_message.toString(), senderName) - val currentTime = Calendar.getInstance().time - val simpleDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") - val eventDate = simpleDateFormat.format(currentTime) + val timeStamp = System.currentTimeMillis() // Send Push: create QuickBlox Push Notification Event val qbEvent = QBEvent() @@ -38,7 +31,7 @@ fun sendPushMessage(recipients: ArrayList, json.put("opponentsIDs", opponentsIDs) json.put("contactIdentifier", opponentsNames) json.put("conferenceType", if (isVideoCall) "1" else "2") - json.put("timestamp", eventDate) + json.put("timestamp", timeStamp.toString()) } catch (e: JSONException) { e.printStackTrace() } diff --git a/sample-videochat-kotlin/artifacts.gradle b/sample-videochat-kotlin/artifacts.gradle index 99476f6da..9c5586e8f 100644 --- a/sample-videochat-kotlin/artifacts.gradle +++ b/sample-videochat-kotlin/artifacts.gradle @@ -18,7 +18,7 @@ android.applicationVariants.all { } else { apkEndName = "-unaligned.apk" } - newApkName = "${appName}-${variant.buildType.name}-${getDate()}-code-${variant.versionCode}-version-${variant.versionName}" + apkEndName + newApkName = "${appName}-${variant.buildType.name}-${getDate()}-code-${variant.versionCode}-version-${variant.versionName}-kotlin" + apkEndName output.outputFileName = newApkName } }