Skip to content

Commit ff5afff

Browse files
authored
Merge pull request #25 from QuickBlox/development
Development
2 parents 5b04021 + b364678 commit ff5afff

File tree

159 files changed

+7220
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

159 files changed

+7220
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@
1313
* New Quickblox Samples:
1414
* [Sample Chat Flutter](https://github.com/QuickBlox/quickblox-flutter-samples/tree/master/chat_sample)
1515
* [Simple-sample](https://github.com/QuickBlox/quickblox-flutter-samples/tree/master/simple_sample)
16+
* [Sample Video Call WebRTC](https://github.com/QuickBlox/quickblox-flutter-samples/tree/master/videocall_webrtc_sample)

videocall_webrtc_sample/.gitignore

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Miscellaneous
2+
*.class
3+
*.log
4+
*.pyc
5+
*.swp
6+
.DS_Store
7+
.atom/
8+
.buildlog/
9+
.history
10+
.svn/
11+
migrate_working_dir/
12+
13+
# IntelliJ related
14+
*.iml
15+
*.ipr
16+
*.iws
17+
.idea/
18+
19+
# The .vscode folder contains launch configuration and tasks you configure in
20+
# VS Code which you may wish to be included in version control, so this line
21+
# is commented out by default.
22+
#.vscode/
23+
24+
# Flutter/Dart/Pub related
25+
**/doc/api/
26+
**/ios/Flutter/.last_build_id
27+
.dart_tool/
28+
.flutter-plugins
29+
.flutter-plugins-dependencies
30+
.packages
31+
.pub-cache/
32+
.pub/
33+
/build/
34+
35+
# Symbolication related
36+
app.*.symbols
37+
38+
# Obfuscation related
39+
app.*.map.json
40+
41+
# Android Studio will place build artifacts here
42+
/android/app/debug
43+
/android/app/profile
44+
/android/app/release

videocall_webrtc_sample/.metadata

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled.
5+
6+
version:
7+
revision: 9944297138845a94256f1cf37beb88ff9a8e811a
8+
channel: stable
9+
10+
project_type: app
11+
12+
# Tracks metadata for the flutter migrate command
13+
migration:
14+
platforms:
15+
- platform: root
16+
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
17+
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
18+
- platform: android
19+
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
20+
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
21+
- platform: ios
22+
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
23+
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
24+
- platform: linux
25+
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
26+
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
27+
- platform: macos
28+
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
29+
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
30+
- platform: web
31+
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
32+
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
33+
- platform: windows
34+
create_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
35+
base_revision: 9944297138845a94256f1cf37beb88ff9a8e811a
36+
37+
# User provided section
38+
39+
# List of Local paths (relative to this file) that should be
40+
# ignored by the migrate tool.
41+
#
42+
# Files that are not part of the templates will be ignored by default.
43+
unmanaged_files:
44+
- 'lib/main.dart'
45+
- 'ios/Runner.xcodeproj/project.pbxproj'

videocall_webrtc_sample/LICENSE.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
Copyright © 2023 QuickBlox
2+
3+
Permission is hereby granted, free of charge, to any person obtaining a copy
4+
of this software and associated documentation files (the "Software"), to deal
5+
in the Software without restriction, including without limitation the rights
6+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7+
copies of the Software, and to permit persons to whom the Software is
8+
furnished to do so, subject to the following conditions:
9+
10+
The above copyright notice and this permission notice shall be included in all
11+
copies or substantial portions of the Software.
12+
13+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19+
SOFTWARE.

videocall_webrtc_sample/README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<h2> QuickBlox Flutter VideoChat Sample </h2>
2+
3+
# Overview
4+
5+
This is a code sample for [QuickBlox](http://quickblox.com/) platform.
6+
It is a great way for developers using QuickBlox platform to learn how to integrate audio and video calling features into your application.
7+
8+
# Features
9+
10+
QuickBlox Flutter VideoChat Sample provides next functionality:
11+
12+
- Authenticate with Quickblox
13+
- Receive and display users list
14+
- Make audio calls
15+
- Make video calls
16+
17+
# Get application credentials
18+
19+
QuickBlox application includes everything that brings messaging right into your application - chat, video calling, users, push notifications, etc. To create a QuickBlox application, follow the steps below:
20+
21+
1.Register a new account following [this link](https://admin.quickblox.com/signup). Type in your email and password to sign in. You can also sign in with your Google or Github accounts.
22+
2.Create the app clicking **New app** button.
23+
3.Configure the app. Type in the information about your organization into corresponding fields and click **Add** button.
24+
4.Go to **Dashboard => _YOUR_APP_ => Overview** section and copy your **Application ID**, **Authorization Key**, **Authorization Secret**, and **Account Key**.
25+
26+
# To run the Video Sample
27+
28+
1. Clone the repository using the link below:
29+
30+
git clone https://github.com/QuickBlox/quickblox-flutter-samples.git
31+
32+
2. Go to menu **File => Open Project**. (Or "Open an existing Project" if (Android Studio/Visual Studio Code) is just opened)
33+
3. Select a path to the sample.
34+
4. [Get application credentials](#get-application-credentials) and get **Application ID**, **Authorization Key**, **Authorization Secret**, and **Account Key**.
35+
5. Open **main.dart** and paste the credentials into the values of constants.
36+
37+
const val APPLICATION_ID = ""
38+
const val AUTH_KEY = ""
39+
const val AUTH_SECRET = ""
40+
const val ACCOUNT_KEY = "";
41+
42+
6. Run the code sample.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# This file configures the analyzer, which statically analyzes Dart code to
2+
# check for errors, warnings, and lints.
3+
#
4+
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5+
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6+
# invoked from the command line by running `flutter analyze`.
7+
8+
# The following line activates a set of recommended lints for Flutter apps,
9+
# packages, and plugins designed to encourage good coding practices.
10+
include: package:flutter_lints/flutter.yaml
11+
12+
linter:
13+
# The lint rules applied to this project can be customized in the
14+
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
15+
# included above or to enable additional rules. A list of all available lints
16+
# and their documentation is published at
17+
# https://dart-lang.github.io/linter/lints/index.html.
18+
#
19+
# Instead of disabling a lint rule for the entire project in the
20+
# section below, it can also be suppressed for a single line of code
21+
# or a specific dart file by using the `// ignore: name_of_lint` and
22+
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
23+
# producing the lint.
24+
rules:
25+
constant_identifier_names: false
26+
# avoid_print: false # Uncomment to disable the `avoid_print` rule
27+
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
28+
29+
# Additional information about this file can be found at
30+
# https://dart.dev/guides/language/analysis-options
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
gradle-wrapper.jar
2+
/.gradle
3+
/captures/
4+
/gradlew
5+
/gradlew.bat
6+
/local.properties
7+
GeneratedPluginRegistrant.java
8+
9+
# Remember to never publicly share your keystore.
10+
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11+
key.properties
12+
**/*.keystore
13+
**/*.jks
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
plugins {
2+
id "com.android.application"
3+
id "kotlin-android"
4+
id "dev.flutter.flutter-gradle-plugin"
5+
}
6+
7+
def localProperties = new Properties()
8+
def localPropertiesFile = rootProject.file('local.properties')
9+
if (localPropertiesFile.exists()) {
10+
localPropertiesFile.withReader('UTF-8') { reader ->
11+
localProperties.load(reader)
12+
}
13+
}
14+
15+
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
16+
if (flutterVersionCode == null) {
17+
flutterVersionCode = '1'
18+
}
19+
20+
def flutterVersionName = localProperties.getProperty('flutter.versionName')
21+
if (flutterVersionName == null) {
22+
flutterVersionName = '1.0'
23+
}
24+
25+
android {
26+
compileSdkVersion 34
27+
ndkVersion flutter.ndkVersion
28+
29+
compileOptions {
30+
sourceCompatibility JavaVersion.VERSION_1_8
31+
targetCompatibility JavaVersion.VERSION_1_8
32+
}
33+
34+
kotlinOptions {
35+
jvmTarget = '1.8'
36+
}
37+
38+
sourceSets {
39+
main.java.srcDirs += 'src/main/kotlin'
40+
}
41+
42+
defaultConfig {
43+
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
44+
applicationId "com.quickblox.videocall_webrtc_sample"
45+
// You can update the following values to match your application needs.
46+
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
47+
minSdkVersion 26
48+
targetSdkVersion 34
49+
versionCode flutterVersionCode.toInteger()
50+
versionName flutterVersionName
51+
}
52+
53+
buildTypes {
54+
debug {
55+
signingConfig signingConfigs.debug
56+
minifyEnabled false
57+
shrinkResources false
58+
}
59+
60+
release {
61+
// TODO: Add your own signing config for the release build.
62+
// Signing with the debug keys for now, so `flutter run --release` works.
63+
signingConfig signingConfigs.debug
64+
minifyEnabled true
65+
shrinkResources true
66+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
67+
}
68+
}
69+
}
70+
71+
flutter {
72+
source '../..'
73+
}
74+
75+
dependencies {}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Add project specific ProGuard rules here.
2+
# You can control the set of applied configuration files using the
3+
# proguardFiles setting in build.gradle.
4+
#
5+
# For more details, see
6+
# http://developer.android.com/guide/developing/tools/proguard.html
7+
8+
# If your project uses WebView with JS, uncomment the following
9+
# and specify the fully qualified class name to the JavaScript interface
10+
# class:
11+
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12+
# public *;
13+
#}
14+
15+
# Uncomment this to preserve the line number information for
16+
# debugging stack traces.
17+
#-keepattributes SourceFile,LineNumberTable
18+
19+
# If you keep the line number information, uncomment this to
20+
# hide the original source file name.
21+
#-renamesourcefileattribute SourceFile
22+
-keepattributes Signature
23+
24+
# For using GSON @Expose annotation
25+
-keepattributes *Annotation*
26+
27+
# Gson specific classes
28+
-keep class sun.misc.Unsafe { *; }
29+
#-keep class com.google.gson.stream.** { *; }
30+
31+
# Application classes that will be serialized/deserialized over Gson
32+
-keep class com.quickblox.core.account.model.** { *; }
33+
34+
-keep class com.quickblox.auth.parsers.** { *; }
35+
-keep class com.quickblox.auth.model.** { *; }
36+
-keep class com.quickblox.core.parser.** { *; }
37+
-keep class com.quickblox.core.model.** { *; }
38+
-keep class com.quickblox.core.server.** { *; }
39+
-keep class com.quickblox.core.rest.** { *; }
40+
-keep class com.quickblox.core.error.** { *; }
41+
-keep class com.quickblox.core.Query { *; }
42+
43+
-keep class com.quickblox.content.model.** { *; }
44+
45+
-keep class com.quickblox.users.parsers.** { *; }
46+
-keep class com.quickblox.users.model.** { *; }
47+
48+
-keep class com.quickblox.messages.parsers.** { *; }
49+
-keep class com.quickblox.messages.QBPushNotifications { *; }
50+
-keep class com.quickblox.messages.model.** { *; }
51+
-keep class com.quickblox.messages.services.** { *; }
52+
53+
-keep class com.quickblox.chat.parser.** { *; }
54+
-keep class com.quickblox.chat.model.** { *; }
55+
56+
-keep class org.jivesoftware.** { *; }
57+
-keep class org.jxmpp.** { *; }
58+
-keep class org.webrtc.** { *; }
59+
-keep class com.quickblox.conference.** { *; }
60+
61+
-keep class com.bumptech.** { *; }
62+
63+
-dontwarn org.jivesoftware.smackx.**
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
package="com.quickblox.videocall_webrtc_sample">
3+
<!-- The INTERNET permission is required for development. Specifically,
4+
the Flutter tool needs it to communicate with the running application
5+
to allow setting breakpoints, to provide hot reload, etc.
6+
-->
7+
<uses-permission android:name="android.permission.INTERNET"/>
8+
</manifest>

0 commit comments

Comments
 (0)