Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
shunchaki
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shohboz Qoraboev
shunchaki
Commits
7654afcf
Commit
7654afcf
authored
Dec 09, 2021
by
shohboz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[ADD]
MUS-107
Feature, added firebase to project
parent
47267ca3
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
375 additions
and
1 deletion
+375
-1
build.gradle
app/build.gradle
+9
-1
google-services.json
app/google-services.json
+84
-0
AuthActivity.kt
app/src/main/java/com/mobiuz/app/AuthActivity.kt
+62
-0
MainActivity.kt
app/src/main/java/com/mobiuz/app/MainActivity.kt
+104
-0
ServerModule.kt
app/src/main/java/com/mobiuz/app/di/ServerModule.kt
+63
-0
SharedPref.kt
app/src/main/java/com/mobiuz/app/model/SharedPref.kt
+52
-0
build.gradle
build.gradle
+1
-0
No files found.
app/build.gradle
View file @
7654afcf
...
@@ -4,13 +4,14 @@ plugins {
...
@@ -4,13 +4,14 @@ plugins {
id
'kotlin-kapt'
id
'kotlin-kapt'
id
'dagger.hilt.android.plugin'
id
'dagger.hilt.android.plugin'
id
'androidx.navigation.safeargs.kotlin'
id
'androidx.navigation.safeargs.kotlin'
id
'com.google.firebase.crashlytics'
}
}
android
{
android
{
compileSdk
31
compileSdk
31
defaultConfig
{
defaultConfig
{
applicationId
"
uz.ssd.mobiuz
"
applicationId
"
com.mobiuz.app
"
minSdk
21
minSdk
21
targetSdk
31
targetSdk
31
versionCode
1
versionCode
1
...
@@ -49,6 +50,13 @@ dependencies {
...
@@ -49,6 +50,13 @@ dependencies {
androidTestImplementation
'androidx.test.espresso:espresso-core:3.4.0'
androidTestImplementation
'androidx.test.espresso:espresso-core:3.4.0'
// Firebase
implementation
platform
(
'com.google.firebase:firebase-bom:28.2.1'
)
implementation
'com.google.firebase:firebase-crashlytics-ktx:18.2.5'
implementation
'com.google.firebase:firebase-analytics-ktx:20.0.0'
implementation
'com.google.firebase:firebase-messaging-ktx:23.0.0'
// Navigation
// Navigation
implementation
"androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation
"androidx.navigation:navigation-fragment-ktx:$nav_version"
implementation
"androidx.navigation:navigation-ui-ktx:$nav_version"
implementation
"androidx.navigation:navigation-ui-ktx:$nav_version"
...
...
app/google-services.json
0 → 100644
View file @
7654afcf
{
"project_info"
:
{
"project_number"
:
"453497477762"
,
"project_id"
:
"mobiuz-7563b"
,
"storage_bucket"
:
"mobiuz-7563b.appspot.com"
},
"client"
:
[
{
"client_info"
:
{
"mobilesdk_app_id"
:
"1:453497477762:android:57da19692a77341ae9b29b"
,
"android_client_info"
:
{
"package_name"
:
"com.mobiuz.app"
}
},
"oauth_client"
:
[
{
"client_id"
:
"453497477762-t0b1iqi4k3t8s49mm7eco951kpdr4eta.apps.googleusercontent.com"
,
"client_type"
:
1
,
"android_info"
:
{
"package_name"
:
"com.mobiuz.app"
,
"certificate_hash"
:
"0259d09452724d02cca3c034973f523c2485a232"
}
},
{
"client_id"
:
"453497477762-1080ucujet6ca5dop6qc2f0k6vornqj6.apps.googleusercontent.com"
,
"client_type"
:
3
}
],
"api_key"
:
[
{
"current_key"
:
"AIzaSyCpGAiOAd5TBCiDI_ZyVMZSkK-OH00LP5w"
}
],
"services"
:
{
"appinvite_service"
:
{
"other_platform_oauth_client"
:
[
{
"client_id"
:
"453497477762-1080ucujet6ca5dop6qc2f0k6vornqj6.apps.googleusercontent.com"
,
"client_type"
:
3
}
]
}
}
},
{
"client_info"
:
{
"mobilesdk_app_id"
:
"1:453497477762:android:4e22d841473f89a3e9b29b"
,
"android_client_info"
:
{
"package_name"
:
"com.mobiuz.app.dev"
}
},
"oauth_client"
:
[
{
"client_id"
:
"453497477762-okn4u5uhp9mq1j85ckqds7bhieo4sbu6.apps.googleusercontent.com"
,
"client_type"
:
1
,
"android_info"
:
{
"package_name"
:
"com.mobiuz.app.dev"
,
"certificate_hash"
:
"0259d09452724d02cca3c034973f523c2485a232"
}
},
{
"client_id"
:
"453497477762-1080ucujet6ca5dop6qc2f0k6vornqj6.apps.googleusercontent.com"
,
"client_type"
:
3
}
],
"api_key"
:
[
{
"current_key"
:
"AIzaSyCpGAiOAd5TBCiDI_ZyVMZSkK-OH00LP5w"
}
],
"services"
:
{
"appinvite_service"
:
{
"other_platform_oauth_client"
:
[
{
"client_id"
:
"453497477762-1080ucujet6ca5dop6qc2f0k6vornqj6.apps.googleusercontent.com"
,
"client_type"
:
3
}
]
}
}
}
],
"configuration_version"
:
"1"
}
\ No newline at end of file
app/src/main/java/
uz/ssd/mobiuz
/AuthActivity.kt
→
app/src/main/java/
com/mobiuz/app
/AuthActivity.kt
View file @
7654afcf
package
uz.ssd.mobiuz
package
com.mobiuz.app
import
android.os.Bundle
import
android.os.Bundle
import
android.util.Log
import
android.view.View
import
android.view.View
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.navigation.NavController
import
androidx.navigation.NavController
import
androidx.navigation.fragment.NavHostFragment
import
androidx.navigation.fragment.NavHostFragment
import
com.google.firebase.analytics.FirebaseAnalytics
import
com.google.firebase.ktx.Firebase
import
com.google.firebase.messaging.FirebaseMessaging
import
com.google.firebase.messaging.ktx.messaging
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
uz.ssd.mobiuz.databinding.ActivityAuthBinding
import
com.mobiuz.app.databinding.ActivityAuthBinding
import
uz.ssd.mobiuz.ui.global.CONSTANTS
import
com.mobiuz.app.model.SharedPref
import
uz.ssd.mobiuz.utils.Utils
import
com.mobiuz.app.ui.global.CONSTANTS
import
com.mobiuz.app.utils.Utils
import
javax.inject.Inject
@AndroidEntryPoint
@AndroidEntryPoint
class
AuthActivity
:
AppCompatActivity
()
{
class
AuthActivity
:
AppCompatActivity
()
{
@Inject
lateinit
var
pref
:
SharedPref
private
var
_bn
:
ActivityAuthBinding
?
=
null
private
var
_bn
:
ActivityAuthBinding
?
=
null
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
val
bn
get
()
=
_bn
?:
throw
NullPointerException
(
"cannot inflate"
)
private
lateinit
var
navController
:
NavController
private
lateinit
var
navController
:
NavController
private
lateinit
var
mFirebaseAnalytics
:
FirebaseAnalytics
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
_bn
=
ActivityAuthBinding
.
inflate
(
layoutInflater
)
_bn
=
ActivityAuthBinding
.
inflate
(
layoutInflater
)
setContentView
(
bn
.
root
)
setContentView
(
bn
.
root
)
val
fragment
=
supportFragmentManager
.
findFragmentById
(
R
.
id
.
auth_container
)
as
NavHostFragment
val
fragment
=
supportFragmentManager
.
findFragmentById
(
R
.
id
.
auth_container
)
as
NavHostFragment
navController
=
NavHostFragment
.
findNavController
(
fragment
)
navController
=
NavHostFragment
.
findNavController
(
fragment
)
mFirebaseAnalytics
=
FirebaseAnalytics
.
getInstance
(
this
)
// Firebase.messaging.subscribeToTopic("just").addOnCompleteListener { task ->
// Log.e("AAA", "subscribe: ${task.isSuccessful}")
// }
FirebaseMessaging
.
getInstance
().
token
.
addOnCompleteListener
{
if
(
it
.
isSuccessful
)
pref
.
setDeviceToken
(
it
.
result
.
toString
())
}
window
.
decorView
.
systemUiVisibility
=
window
.
decorView
.
systemUiVisibility
or
View
.
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
window
.
decorView
.
systemUiVisibility
=
window
.
decorView
.
systemUiVisibility
or
View
.
SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
intent
?.
let
{
intent
?.
let
{
val
type
=
it
.
getStringExtra
(
CONSTANTS
.
TYPE_AUTH
)
val
type
=
it
.
getStringExtra
(
CONSTANTS
.
TYPE_AUTH
)
if
(
type
==
CONSTANTS
.
PIN_CODE
)
{
if
(
type
==
CONSTANTS
.
PIN_CODE
)
{
navController
.
popBackStack
()
navController
.
popBackStack
()
navController
.
navigate
(
R
.
id
.
pinFragment
,
null
,
Utils
.
navOptions
())
navController
.
navigate
(
R
.
id
.
pinFragment
,
null
,
Utils
.
navOptions
())
}
}
}
}
}
}
...
...
app/src/main/java/
uz/ssd/mobiuz
/MainActivity.kt
→
app/src/main/java/
com/mobiuz/app
/MainActivity.kt
View file @
7654afcf
package
uz.ssd.mobiuz
package
com.mobiuz.app
import
android.content.Intent
import
android.content.Intent
import
android.graphics.Color
import
android.graphics.Color
import
android.os.Bundle
import
android.os.Bundle
import
android.util.Log
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.core.content.ContentProviderCompat.requireContext
import
androidx.lifecycle.LiveData
import
androidx.lifecycle.LiveData
import
androidx.navigation.NavController
import
androidx.navigation.NavController
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.google.firebase.analytics.FirebaseAnalytics
import
com.google.firebase.ktx.Firebase
import
com.google.firebase.messaging.FirebaseMessaging
import
com.google.firebase.messaging.ktx.messaging
import
dagger.hilt.android.AndroidEntryPoint
import
dagger.hilt.android.AndroidEntryPoint
import
uz.ssd.mobiuz
.databinding.ActivityMainBinding
import
com.mobiuz.app
.databinding.ActivityMainBinding
import
uz.ssd.mobiuz
.model.SharedPref
import
com.mobiuz.app
.model.SharedPref
import
uz.ssd.mobiuz.ui.global.FullScreenDialog
import
com.mobiuz.app.ui.global.CONSTANTS
import
uz.ssd.mobiuz.ui.global.CONSTANTS
import
com.mobiuz.app.ui.global.FullScreenDialog
import
uz.ssd.mobiuz
.utils.extensions.customLog
import
com.mobiuz.app
.utils.extensions.customLog
import
uz.ssd.mobiuz
.utils.extensions.setupWithNavController
import
com.mobiuz.app
.utils.extensions.setupWithNavController
import
javax.inject.Inject
import
javax.inject.Inject
...
@@ -30,13 +34,22 @@ class MainActivity : AppCompatActivity() {
...
@@ -30,13 +34,22 @@ class MainActivity : AppCompatActivity() {
private
lateinit
var
bottomNavigationView
:
BottomNavigationView
private
lateinit
var
bottomNavigationView
:
BottomNavigationView
private
var
currentNavController
:
LiveData
<
NavController
>?
=
null
private
var
currentNavController
:
LiveData
<
NavController
>?
=
null
private
lateinit
var
mFirebaseAnalytics
:
FirebaseAnalytics
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
_bn
=
ActivityMainBinding
.
inflate
(
layoutInflater
)
_bn
=
ActivityMainBinding
.
inflate
(
layoutInflater
)
setContentView
(
bn
.
root
)
setContentView
(
bn
.
root
)
window
.
statusBarColor
=
Color
.
TRANSPARENT
window
.
statusBarColor
=
Color
.
TRANSPARENT
mFirebaseAnalytics
=
FirebaseAnalytics
.
getInstance
(
this
)
// Firebase.messaging.subscribeToTopic("just").addOnCompleteListener { task ->
// Log.e("AAA", "subscribe: ${task.isSuccessful}")
// }
FirebaseMessaging
.
getInstance
().
token
.
addOnCompleteListener
{
if
(
it
.
isSuccessful
)
pref
.
setDeviceToken
(
it
.
result
.
toString
())
}
if
(
savedInstanceState
==
null
)
{
if
(
savedInstanceState
==
null
)
{
setupBottomNavigationBar
()
setupBottomNavigationBar
()
}
}
...
...
app/src/main/java/
uz/ssd/mobiuz
/di/ServerModule.kt
→
app/src/main/java/
com/mobiuz/app
/di/ServerModule.kt
View file @
7654afcf
package
uz.ssd.mobiuz
.di
package
com.mobiuz.app
.di
import
android.content.Context
import
android.content.Context
import
com.readystatesoftware.chuck.ChuckInterceptor
import
com.readystatesoftware.chuck.ChuckInterceptor
...
@@ -13,10 +13,10 @@ import okhttp3.logging.HttpLoggingInterceptor
...
@@ -13,10 +13,10 @@ import okhttp3.logging.HttpLoggingInterceptor
import
retrofit2.Retrofit
import
retrofit2.Retrofit
import
retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory
import
retrofit2.adapter.rxjava3.RxJava3CallAdapterFactory
import
retrofit2.converter.gson.GsonConverterFactory
import
retrofit2.converter.gson.GsonConverterFactory
import
uz.ssd.mobiuz
.model.SharedPref
import
com.mobiuz.app
.model.SharedPref
import
uz.ssd.mobiuz
.network.api.ApiService
import
com.mobiuz.app
.network.api.ApiService
import
uz.ssd.mobiuz
.ui.global.CONSTANTS
import
com.mobiuz.app
.ui.global.CONSTANTS
import
uz.ssd.mobiuz
.utils.Utils
import
com.mobiuz.app
.utils.Utils
import
javax.inject.Singleton
import
javax.inject.Singleton
@Module
@Module
...
@@ -52,7 +52,7 @@ class ServerModule {
...
@@ -52,7 +52,7 @@ class ServerModule {
val
builder
=
chain
.
request
().
newBuilder
()
val
builder
=
chain
.
request
().
newBuilder
()
builder
.
header
(
"Content-Type"
,
"application/x-www-form-urlencoded"
)
builder
.
header
(
"Content-Type"
,
"application/x-www-form-urlencoded"
)
builder
.
header
(
"Lang"
,
sharedPref
.
language
)
builder
.
header
(
"Lang"
,
sharedPref
.
language
)
builder
.
header
(
"device-id"
,
Utils
.
getDeviceName
())
builder
.
header
(
"device-id"
,
sharedPref
.
getDeviceToken
()
?:
Utils
.
getDeviceName
())
builder
.
header
(
"Accept"
,
"application/json"
)
builder
.
header
(
"Accept"
,
"application/json"
)
builder
.
header
(
"Authorization"
,
"Bearer ${sharedPref.getUserToken()}"
)
builder
.
header
(
"Authorization"
,
"Bearer ${sharedPref.getUserToken()}"
)
chain
.
proceed
(
builder
.
build
())
chain
.
proceed
(
builder
.
build
())
...
...
app/src/main/java/
uz/ssd/mobiuz
/model/SharedPref.kt
→
app/src/main/java/
com/mobiuz/app
/model/SharedPref.kt
View file @
7654afcf
package
uz.ssd.mobiuz
.model
package
com.mobiuz.app
.model
import
android.content.Context
import
android.content.Context
import
android.content.SharedPreferences
import
android.content.SharedPreferences
...
@@ -7,7 +7,7 @@ import javax.inject.Inject
...
@@ -7,7 +7,7 @@ import javax.inject.Inject
class
SharedPref
@Inject
constructor
(
@ApplicationContext
context
:
Context
)
{
class
SharedPref
@Inject
constructor
(
@ApplicationContext
context
:
Context
)
{
private
var
mySharedPref
:
SharedPreferences
=
context
.
getSharedPreferences
(
"m
vd
"
,
Context
.
MODE_PRIVATE
)
private
var
mySharedPref
:
SharedPreferences
=
context
.
getSharedPreferences
(
"m
obiuz
"
,
Context
.
MODE_PRIVATE
)
fun
setDeviceToken
(
token
:
String
)
{
fun
setDeviceToken
(
token
:
String
)
{
mySharedPref
.
edit
().
putString
(
"device_token"
,
token
).
apply
()
mySharedPref
.
edit
().
putString
(
"device_token"
,
token
).
apply
()
...
@@ -26,25 +26,25 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) {
...
@@ -26,25 +26,25 @@ class SharedPref @Inject constructor(@ApplicationContext context: Context) {
}
}
var
language
:
String
var
language
:
String
get
()
=
mySharedPref
.
getString
(
::
language
.
name
,
""
)
?:
""
get
()
=
mySharedPref
.
getString
(
::
language
.
name
,
""
)
?:
""
set
(
value
)
{
set
(
value
)
{
mySharedPref
.
edit
().
putString
(
::
language
.
name
,
value
).
apply
()
mySharedPref
.
edit
().
putString
(
::
language
.
name
,
value
).
apply
()
}
}
var
pin_code
:
String
var
pin_code
:
String
get
()
=
mySharedPref
.
getString
(
::
pin_code
.
name
,
""
)
?:
""
get
()
=
mySharedPref
.
getString
(
::
pin_code
.
name
,
""
)
?:
""
set
(
value
)
{
set
(
value
)
{
mySharedPref
.
edit
().
putString
(
::
pin_code
.
name
,
value
).
apply
()
mySharedPref
.
edit
().
putString
(
::
pin_code
.
name
,
value
).
apply
()
}
}
var
isRegistered
:
Boolean
var
isRegistered
:
Boolean
get
()
=
mySharedPref
.
getBoolean
(
"isRegistered"
,
false
)
get
()
=
mySharedPref
.
getBoolean
(
::
isRegistered
.
name
,
false
)
set
(
value
)
{
set
(
value
)
{
mySharedPref
.
edit
().
putBoolean
(
"isRegistered"
,
value
).
apply
()
mySharedPref
.
edit
().
putBoolean
(
::
isRegistered
.
name
,
value
).
apply
()
}
}
var
userPhone
:
String
var
userPhone
:
String
get
()
=
mySharedPref
.
getString
(
::
userPhone
.
name
,
""
)
?:
""
get
()
=
mySharedPref
.
getString
(
::
userPhone
.
name
,
""
)
?:
""
set
(
value
)
{
set
(
value
)
{
mySharedPref
.
edit
().
putString
(
::
userPhone
.
name
,
value
).
apply
()
mySharedPref
.
edit
().
putString
(
::
userPhone
.
name
,
value
).
apply
()
}
}
...
...
build.gradle
View file @
7654afcf
...
@@ -20,6 +20,7 @@ buildscript {
...
@@ -20,6 +20,7 @@ buildscript {
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
classpath
"org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
classpath
"com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
classpath
"com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
classpath
"androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-beta02"
classpath
"androidx.navigation:navigation-safe-args-gradle-plugin:2.4.0-beta02"
classpath
'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
// NOTE: Do not place your application dependencies here; they belong
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
// in the individual module build.gradle files
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment