Skip to content

Repository files navigation

Video Meeting

  • Simple application. First the user creates a new account in the application using Firebase Auth (Sign Up), Second, user will log in to the application and We will store logged user information into shared preferences to handle auto-sign in so users don't need to enter email and password every time, and Final we display list of registered users in the application except for the currently logged user because he cannot establish a call with himself.

✨ Features Project Android:

  • 100% Kotlin
  • MVVM architecture
  • Single activity
  • dataBinding

Used libraries

  • Firebase Auth

    Before you begin

    1. If you haven't already, add Firebase to your Android project.

    2. Using the Firebase Android BoM, declare the dependency for the Firebase Authentication Android library in your module (app-level) Gradle file (usually app/build.gradle).

      dependencies {
      // Import the BoM for the Firebase platform
      implementation platform('com.google.firebase:firebase-bom:26.2.0')
      // Declare the dependency for the Firebase Authentication library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation 'com.google.firebase:firebase-auth'
      }
      



  • Cloud Firestore

     dependencies {
    implementation 'com.google.firebase:firebase-admin:7.1.0'
    }
    
  • Firebase Cloud Messaging

     dependencies {
    implementation 'com.google.firebase:firebase-messaging'
    }
    
    • A service that extends FirebaseMessagingService. This is required if you want to do any message handling beyond receiving notifications on apps in the background. To receive notifications in foregrounded apps, to receive data payload, to send upstream messages, and so on, you must extend this service.
    <service
    android:name=".java.MyFirebaseMessagingService"android:exported="false"><intent-filter><action android:name="com.google.firebase.MESSAGING_EVENT"/></intent-filter></service><!--Set custom default icon. This is used when no icon is set for incoming notification messages.
    SeeREADME(https://goo.gl/l4GJaQ) for more. --><meta-data
    android:name="com.google.firebase.messaging.default_notification_icon"android:resource="@drawable/ic_stat_ic_notification"/><!--Set color used with incoming notification messages. This is used when no color is set for the incoming
    notification message. SeeREADME(https://goo.gl/6BKBk7) for more. --><meta-data
    android:name="com.google.firebase.messaging.default_notification_color"android:resource="@color/colorAccent"/>
  • Android architecture components

     dependencies {
    // navigation
    implementation "androidx.navigation:navigation-fragment-ktx:2.3.2"
    implementation "androidx.navigation:navigation-ui-ktx:2.3.2"
    // ViewModel & LiveData
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
    implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0"
    }
    
  • Retrofit

     dependencies {
    // Retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.squareup.okhttp3:okhttp:4.9.0'
    }
    
  • MultiDex

     dependencies {
    //MultiDex
    implementation 'androidx.multidex:multidex:2.0.1'
    }
    

For the Video Call I used SDK JITSI

Use pre-build SDK artifacts/binaries

  • In your project, add the Maven repository https://github.com/jitsi/jitsi-maven-repository/raw/master/releases and the dependency org.jitsi.react:jitsi-meet-sdk into your build.gradle files.

    The repository typically goes into the build.gradle file in the root of your project:

     allprojects {
    repositories {
    google()
    jcenter()
    maven {
    url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases"
    }
    }
    }
    

    Dependency definitions belong in the individual module build.gradle files:

     dependencies {
    // (other dependencies)
    implementation ('org.jitsi.react:jitsi-meet-sdk:2.+') { transitive = true }
    }
    
    • JitsiMeetConferenceOptions This object encapsulates all the options that can be tweaked when joining a conference.
      Example:

       JitsiMeetConferenceOptions options = new JitsiMeetConferenceOptions.Builder()
      .setServerURL(new URL("https://meet.jit.si"))
      .setRoom("test123")
      .setAudioMuted(false)
      .setVideoMuted(false)
      .setAudioOnly(false)
      .setWelcomePageEnabled(false)
      .build();
      

About

Simple application. First the user creates a new account in the application using Firebase Auth (Sign Up), Second, user will log in to the application and We will store logged user information into shared preferences to handle auto-sign in so users don't need to enter email and password every time, and Final we display list of registered users in…

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages