Skip to content

Commit

Permalink
#195 [FEAT] : fcm token update api 연결
Browse files Browse the repository at this point in the history
+ 로그인 후 firebase init
  • Loading branch information
HJinhee committed Feb 14, 2022
1 parent 0c3153a commit e5566fc
Show file tree
Hide file tree
Showing 7 changed files with 86 additions and 25 deletions.
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
android:usesCleartextTraffic="true"
tools:replace="android:appComponentFactory">
<service
android:name=".MyFirebaseMessagingService"
android:name=".presentation.ui.alarm.MyFirebaseMessagingService"
android:enabled="true"
android:exported="true">
<intent-filter>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
package com.example.charo_android.data.api.alarm

import com.example.charo_android.data.model.request.alarm.RequestFcmData
import com.example.charo_android.data.model.response.alarm.ResponseAlarmDeleteData
import com.example.charo_android.data.model.response.alarm.ResponseAlarmListData
import com.example.charo_android.data.model.response.alarm.ResponseFcmData
import retrofit2.Call
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
Expand All @@ -17,4 +20,9 @@ interface AlarmViewService {
fun postDeleteAlarm(
@Path("pushId") pushId : Int
) : Call<ResponseAlarmDeleteData>

@POST("/push/fcm")
fun postFcm(
@Body body: RequestFcmData
): Call<ResponseFcmData>
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.example.charo_android.data.model.request.alarm

data class RequestFcmData(
val token: String,
val userEmail: String
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.example.charo_android.data.model.response.alarm

data class ResponseFcmData (
val msg: String,
val success: Boolean
) {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.example.charo_android
package com.example.charo_android.presentation.ui.alarm

import android.app.NotificationChannel
import android.app.NotificationManager
Expand All @@ -9,9 +9,16 @@ import android.media.RingtoneManager
import android.os.Build
import android.util.Log
import androidx.core.app.NotificationCompat
import com.example.charo_android.presentation.ui.alarm.AlarmActivity
import com.example.charo_android.R
import com.example.charo_android.data.api.ApiService
import com.example.charo_android.data.model.request.alarm.RequestFcmData
import com.example.charo_android.data.model.response.alarm.ResponseFcmData
import com.example.charo_android.hidden.Hidden
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response

class MyFirebaseMessagingService : FirebaseMessagingService() {
private val TAG = "MyFirebaseMessagingService"
Expand All @@ -21,8 +28,37 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
sendRegistrationToServer(token)
}

//fcm token update api
private fun sendRegistrationToServer(token : String) {

//TODO: otherUserEmail -> userEmail 수정
val requestFcmData: RequestFcmData = RequestFcmData(token, Hidden.otherUserEmail)

val call: Call<ResponseFcmData> =
ApiService.alarmViewService.postFcm(requestFcmData)
call.enqueue(object : Callback<ResponseFcmData> {
override fun onResponse(
call: Call<ResponseFcmData>,
response: Response<ResponseFcmData>
) {
Log.e("postFcm param","$requestFcmData")

if (response.isSuccessful) {
Log.d("server connect : Alarm Fcm Update", "success")
Log.d("server connect : Alarm Fcm Update", "${response.body()}")

} else {
Log.d("server connect : Alarm Fcm Update", "error")
Log.d("server connect : Alarm Fcm Update", "$response.errorBody()")
Log.d("server connect : Alarm Fcm Update", response.message())
Log.d("server connect : Alarm Fcm Update", "${response.code()}")
Log.d("server connect : Alarm Fcm Update", "${response.raw().request.url}")
}
}

override fun onFailure(call: Call<ResponseFcmData>, t: Throwable) {
Log.d("server connect : Alarm Fcm Update", "error: ${t.message}")
}
})
}

override fun onMessageReceived(remoteMessage: RemoteMessage) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@ class MainActivity : AppCompatActivity() {
initNavView()
lookFor()

initFirebase()

}

override fun onBackPressed() {
Expand Down Expand Up @@ -214,21 +212,4 @@ class MainActivity : AppCompatActivity() {
}
}
}

private fun initFirebase(){
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
if (!task.isSuccessful) {
Log.w(
"FirebaseTAG",
"Fetching FCM registration token failed",
task.exception
)
return@OnCompleteListener
} else {
val token = task.result
val msg = getString(R.string.msg_token_fmt, token)
Log.d("Firebase Success", msg)
}
})
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.lifecycle.Observer
import com.example.charo_android.R
import com.example.charo_android.data.api.ApiService
import com.example.charo_android.data.model.request.signin.RequestSignInData
import com.example.charo_android.data.model.response.signin.ResponseSignInData
Expand All @@ -14,6 +15,8 @@ import com.example.charo_android.presentation.ui.main.MainActivity
import com.example.charo_android.presentation.ui.signin.viewmodel.EmailSignInViewModel
import com.example.charo_android.presentation.ui.signup.SignUpActivity
import com.example.charo_android.presentation.util.SharedInformation
import com.google.android.gms.tasks.OnCompleteListener
import com.google.firebase.messaging.FirebaseMessaging
import org.koin.androidx.viewmodel.ext.android.viewModel
import retrofit2.Call
import retrofit2.Callback
Expand Down Expand Up @@ -49,11 +52,13 @@ class SignInActivity : AppCompatActivity() {

emailSignInViewModel.getEmailSignInData(requestSignInData)
emailSignInViewModel.emailSignInData.observe(this, Observer {
if(it.success){
if(it.success) {
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
}

//로그인 후 firebase init
initFirebase()
}
})
}
}
Expand All @@ -73,4 +78,22 @@ class SignInActivity : AppCompatActivity() {
startActivity(intent)
}
}

private fun initFirebase(){
FirebaseMessaging.getInstance().token.addOnCompleteListener(
OnCompleteListener { task ->
if (!task.isSuccessful) {
Log.w(
"FirebaseTAG",
"Fetching FCM registration token failed",
task.exception
)
return@OnCompleteListener
} else {
val token = task.result
val msg = getString(R.string.msg_token_fmt, token)
Log.d("Firebase Success", msg)
}
})
}
}

0 comments on commit e5566fc

Please sign in to comment.