From e98df9a54f4707921737cf3ab28e7d298109d06b Mon Sep 17 00:00:00 2001
From: Grandelwald <91423342+Grandelwald@users.noreply.github.com>
Date: Sat, 2 Jul 2022 17:18:27 +0900
Subject: [PATCH 1/5] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index a3258fe1..7c2b88cb 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@
| 이창환 | 조재훈 | 이호재 | 손연주 |
|:-------:|:-------:|:-------:|:-------:|
| | | | |
-| 홈, 방생성 역할 담당 | 습관방 역할 담당 | 보관함 역할 담당 | 온보딩 , 로그인 , 피드 역할 담당|
+| 홈, 방생성 역할 담당 | 습관방 역할 담당 | 온보딩 , 보관함 역할 담당 | 로그인 , 피드 역할 담당|
## ⚡️팀 협업 방식
### 🔥Branch 전략
From 34b97638b9fac00230401d363bf69a9d0a070801 Mon Sep 17 00:00:00 2001
From: Yunjoo Son
Date: Fri, 23 Sep 2022 16:47:06 +0900
Subject: [PATCH 2/5] =?UTF-8?q?#540=20[feat]=20=ED=91=B8=EC=89=AC=EC=95=8C?=
=?UTF-8?q?=EB=A6=BC=20=ED=81=B4=EB=A6=AD=EC=9C=BC=EB=A1=9C=20=EC=95=B1=20?=
=?UTF-8?q?=EC=8B=A4=ED=96=89=20=EC=8B=9C=20=EC=B9=B4=ED=85=8C=EA=B3=A0?=
=?UTF-8?q?=EB=A6=AC=20=EB=B3=84=20=ED=99=94=EB=A9=B4=20=EC=9D=B4=EB=8F=99?=
=?UTF-8?q?=20=EA=B5=AC=ED=98=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 1 +
.../android/SparkMessagingService.kt | 46 ++++++++++++++-----
.../android/ui/intro/IntroActivity.kt | 3 ++
.../android/ui/main/MainActivity.kt | 33 ++++++++++++-
4 files changed, 70 insertions(+), 13 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b416174d..09d28f8b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,6 +21,7 @@
android:fullBackupOnly="false"
android:icon="@mipmap/ic_app_logo"
android:label="@string/app_name"
+ android:launchMode="singleInstance"
android:roundIcon="@mipmap/ic_app_logo_round"
android:supportsRtl="true"
android:theme="@style/Theme.SparkAndroid">
diff --git a/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt b/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
index 4ff65016..e99e985b 100644
--- a/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
+++ b/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
@@ -10,6 +10,7 @@ import androidx.core.app.NotificationCompat
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import com.teamsparker.android.ui.intro.IntroActivity
+import com.teamsparker.android.ui.main.MainActivity
import com.teamsparker.android.util.ImageCropUtil
import com.teamsparker.android.util.useBitmapImg
import timber.log.Timber
@@ -29,10 +30,9 @@ class SparkMessagingService : FirebaseMessagingService() {
override fun onMessageReceived(remoteMessage: RemoteMessage) {
super.onMessageReceived(remoteMessage)
if (remoteMessage.data.isNotEmpty()) {
- if (remoteMessage.data["imageUrl"].toString().isNotBlank()) {
- transformImageUrlToBitmap(remoteMessage)
- } else {
- createNotificationWithoutImage(remoteMessage)
+ when (remoteMessage.data["category"].toString()) {
+ CERTIFICATION -> transformImageUrlToBitmap(remoteMessage)
+ else -> createNotificationWithoutImage(remoteMessage)
}
}
}
@@ -52,11 +52,20 @@ class SparkMessagingService : FirebaseMessagingService() {
private fun createNotificationWithoutImage(remoteMessage: RemoteMessage) {
val alarmId = remoteMessage.sentTime.toInt()
val category = remoteMessage.data["category"].toString()
+ val roomId = requireNotNull(remoteMessage.data["roomId"]).toInt()
val intent = Intent(this, IntroActivity::class.java).apply {
putExtra(OPEN_FROM_PUSH_ALARM, category)
+ putExtra(ROOM_ID, roomId)
+ flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
}
+
val pendingIntent =
- PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE)
+ PendingIntent.getActivity(
+ this,
+ 0,
+ intent,
+ PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
+ )
val builder =
NotificationCompat.Builder(this, getChannelId(category))
.setContentTitle(remoteMessage.data["title"].toString())
@@ -72,11 +81,18 @@ class SparkMessagingService : FirebaseMessagingService() {
private fun createNotificationWithImage(remoteMessage: RemoteMessage, bitmap: Bitmap) {
val alarmId = remoteMessage.sentTime.toInt()
val category = remoteMessage.data["category"].toString()
- val intent = Intent(this, IntroActivity::class.java).apply {
+ val intent = Intent(this, MainActivity::class.java).apply {
putExtra(OPEN_FROM_PUSH_ALARM, category)
+ flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
}
+
val pendingIntent =
- PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_IMMUTABLE)
+ PendingIntent.getActivity(
+ this,
+ 0,
+ intent,
+ PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
+ )
val builder = NotificationCompat.Builder(this, getChannelId(category))
.setContentTitle(remoteMessage.data["title"].toString())
.setContentText(remoteMessage.data["body"].toString())
@@ -129,10 +145,16 @@ class SparkMessagingService : FirebaseMessagingService() {
companion object {
const val OPEN_FROM_PUSH_ALARM = "openPushAlarm"
- private val CATEGORY_CERTIFICATION = NotificationCategory(0, "certification")
- private val CATEGORY_SPARK = NotificationCategory(1, "spark")
- private val CATEGORY_REMIND = NotificationCategory(2, "remind")
- private val CATEGORY_ROOM_START = NotificationCategory(3, "roomStart")
- private val CATEGORY_CONSIDER = NotificationCategory(4, "consider")
+ const val ROOM_ID = "roomId"
+ const val CERTIFICATION = "certification"
+ const val SPARK = "spark"
+ const val REMIND = "remind"
+ const val ROOM_START = "roomStart"
+ const val CONSIDER = "consider"
+ private val CATEGORY_CERTIFICATION = NotificationCategory(0, CERTIFICATION)
+ private val CATEGORY_SPARK = NotificationCategory(1, SPARK)
+ private val CATEGORY_REMIND = NotificationCategory(2, REMIND)
+ private val CATEGORY_ROOM_START = NotificationCategory(3, ROOM_START)
+ private val CATEGORY_CONSIDER = NotificationCategory(4, CONSIDER)
}
}
diff --git a/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt b/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
index 16cd0c1e..59498b1d 100644
--- a/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
+++ b/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
@@ -6,6 +6,7 @@ import android.net.Uri
import android.os.Bundle
import androidx.activity.viewModels
import com.teamsparker.android.R
+import com.teamsparker.android.SparkMessagingService
import com.teamsparker.android.SparkMessagingService.Companion.OPEN_FROM_PUSH_ALARM
import com.teamsparker.android.databinding.ActivityIntroBinding
import com.teamsparker.android.ui.base.BaseActivity
@@ -93,6 +94,8 @@ class IntroActivity : BaseActivity(R.layout.activity_intro
private fun moveToMainActivity() {
startActivity(Intent(this, MainActivity::class.java).apply {
+ putExtra(OPEN_FROM_PUSH_ALARM, intent.getStringExtra(OPEN_FROM_PUSH_ALARM))
+ putExtra(SparkMessagingService.ROOM_ID, intent.getIntExtra(SparkMessagingService.ROOM_ID, -1))
addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
})
finish()
diff --git a/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt b/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
index 8c71735a..a38a345b 100644
--- a/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
+++ b/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
@@ -8,12 +8,20 @@ import androidx.core.app.ActivityCompat
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import com.teamsparker.android.R
+import com.teamsparker.android.SparkMessagingService.Companion.CERTIFICATION
+import com.teamsparker.android.SparkMessagingService.Companion.CONSIDER
+import com.teamsparker.android.SparkMessagingService.Companion.OPEN_FROM_PUSH_ALARM
+import com.teamsparker.android.SparkMessagingService.Companion.REMIND
+import com.teamsparker.android.SparkMessagingService.Companion.ROOM_ID
+import com.teamsparker.android.SparkMessagingService.Companion.ROOM_START
+import com.teamsparker.android.SparkMessagingService.Companion.SPARK
import com.teamsparker.android.databinding.ActivityMainBinding
import com.teamsparker.android.ui.base.BaseActivity
import com.teamsparker.android.ui.certify.CertifyActivity.Companion.FROM_CERTIFY_ACTIVITY
import com.teamsparker.android.ui.feed.FeedFragmentDirections
import com.teamsparker.android.ui.feedreport.FeedReportActivity.Companion.FEED_REPORT_SUCCESS
import com.teamsparker.android.ui.feedreport.FeedReportActivity.Companion.FROM_FEED_REPORT_ACTIVITY
+import com.teamsparker.android.ui.habit.HabitActivity
import com.teamsparker.android.ui.home.HomeMainFragmentDirections
import com.teamsparker.android.ui.joincode.inputcode.InputCodeFragmentDialog
import com.teamsparker.android.ui.main.viewmodel.MainViewModel
@@ -28,6 +36,7 @@ import com.teamsparker.android.util.getToast
import com.teamsparker.android.util.initStatusBarColor
import com.teamsparker.android.util.initStatusBarTextColorToWhite
import dagger.hilt.android.AndroidEntryPoint
+import timber.log.Timber
import java.lang.IllegalStateException
import kotlin.system.exitProcess
@@ -53,11 +62,17 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
}
initTabPositionObserver()
initBlackBgClickListener()
+ //moveAfterOpenPushAlarm()
}
override fun onResume() {
super.onResume()
- mainViewModel.initTabPositionHome()
+ if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != CERTIFICATION) {
+ mainViewModel.initTabPositionHome()
+ moveAfterOpenPushAlarm()
+ } else {
+ mainViewModel.initTabPositionFeed()
+ }
initTabPositionFromOthers()
}
@@ -215,6 +230,22 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
}
}
+ private fun moveAfterOpenPushAlarm() {
+ Timber.tag("fcm").d(intent.getStringExtra(OPEN_FROM_PUSH_ALARM))
+ when (intent.getStringExtra(OPEN_FROM_PUSH_ALARM)) {
+ CERTIFICATION -> {
+ //mainViewModel.initTabPositionFeed()
+ }
+ ROOM_START, REMIND, SPARK, CONSIDER -> {
+ startActivity(Intent(this, HabitActivity::class.java).apply {
+ putExtra(ROOM_ID, intent.getIntExtra(ROOM_ID, -1))
+ addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
+ })
+ }
+ }
+ intent.removeExtra(OPEN_FROM_PUSH_ALARM)
+ }
+
companion object {
private const val BACK_BTN_WAIT_TIME = 2000L
const val FROM_WHERE = "fromWhere"
From ada8ed85affe84cc8fd9f2ade4d08c9518f6eb88 Mon Sep 17 00:00:00 2001
From: Yunjoo Son
Date: Mon, 26 Sep 2022 19:06:55 +0900
Subject: [PATCH 3/5] =?UTF-8?q?#540=20[feat]=20Foreground,=20Background=20?=
=?UTF-8?q?=EA=B0=90=EC=A7=80=20=EC=8B=B1=EA=B8=80=ED=86=A4=20=EC=83=9D?=
=?UTF-8?q?=EC=84=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../android/util/CheckForeground.kt | 43 +++++++++++++++++++
1 file changed, 43 insertions(+)
create mode 100644 app/src/main/java/com/teamsparker/android/util/CheckForeground.kt
diff --git a/app/src/main/java/com/teamsparker/android/util/CheckForeground.kt b/app/src/main/java/com/teamsparker/android/util/CheckForeground.kt
new file mode 100644
index 00000000..8b914ae2
--- /dev/null
+++ b/app/src/main/java/com/teamsparker/android/util/CheckForeground.kt
@@ -0,0 +1,43 @@
+package com.teamsparker.android.util
+
+import android.app.Activity
+import android.app.Application
+import android.os.Bundle
+import timber.log.Timber
+
+
+object CheckForeground : Application.ActivityLifecycleCallbacks {
+ private var instance: CheckForeground? = null
+
+ var activityCount = 0
+
+ fun init(app: Application) {
+ if (instance == null) {
+ instance = CheckForeground
+ app.registerActivityLifecycleCallbacks(instance)
+ }
+ }
+
+ fun isForeground(): Boolean = activityCount >= 1
+
+ override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {}
+
+ override fun onActivityStarted(activity: Activity) {
+ activityCount++
+ Timber.tag("push_alarm").d("${activityCount} activity_started")
+ }
+
+ override fun onActivityResumed(activity: Activity) {}
+
+ override fun onActivityPaused(activity: Activity) {}
+
+ override fun onActivityStopped(activity: Activity) {
+ activityCount--
+ Timber.tag("push_alarm").d("${activityCount} activity_stopped-------------")
+ }
+
+ override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}
+
+ override fun onActivityDestroyed(activity: Activity) {}
+
+}
From bc477937c390cc8c49edee52bfe165172baf13ed Mon Sep 17 00:00:00 2001
From: Yunjoo Son
Date: Mon, 26 Sep 2022 19:09:01 +0900
Subject: [PATCH 4/5] =?UTF-8?q?=20#540=20[feat]=20Foreground,=20Background?=
=?UTF-8?q?=20=EC=83=81=ED=99=A9=EC=97=90=20=EB=94=B0=EB=A5=B8=20=ED=91=B8?=
=?UTF-8?q?=EC=8B=9C=EC=95=8C=EB=A6=BC=20=ED=81=B4=EB=A6=AD=20=EC=8B=9C=20?=
=?UTF-8?q?=ED=99=94=EB=A9=B4=20=EC=9D=B4=EB=8F=99=20=EA=B5=AC=ED=98=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../teamsparker/android/SparkApplication.kt | 3 +++
.../android/SparkMessagingService.kt | 2 +-
.../android/ui/intro/IntroActivity.kt | 13 +++++++++++-
.../android/ui/main/MainActivity.kt | 21 ++++++++++---------
.../android/util/CheckForeground.kt | 4 +---
5 files changed, 28 insertions(+), 15 deletions(-)
diff --git a/app/src/main/java/com/teamsparker/android/SparkApplication.kt b/app/src/main/java/com/teamsparker/android/SparkApplication.kt
index 5fa13e83..859509da 100644
--- a/app/src/main/java/com/teamsparker/android/SparkApplication.kt
+++ b/app/src/main/java/com/teamsparker/android/SparkApplication.kt
@@ -4,6 +4,7 @@ import android.app.Application
import com.kakao.sdk.common.KakaoSdk
import com.kakao.sdk.common.util.Utility
import com.teamsparker.android.data.remote.LocalPreferences
+import com.teamsparker.android.util.CheckForeground
import dagger.hilt.android.HiltAndroidApp
import timber.log.Timber
@@ -18,6 +19,8 @@ class SparkApplication : Application() {
KakaoSdk.init(this, getString(R.string.kakao_native_app_key))
// Kakao 키 해시 호출하기
Timber.tag("kakao_keyHash").d(Utility.getKeyHash(this))
+ // Foreground, Background 감지 클래스 초기화
+ CheckForeground.init(this@SparkApplication)
}
private fun initTimber() {
diff --git a/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt b/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
index e99e985b..ee4ceb1a 100644
--- a/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
+++ b/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
@@ -81,7 +81,7 @@ class SparkMessagingService : FirebaseMessagingService() {
private fun createNotificationWithImage(remoteMessage: RemoteMessage, bitmap: Bitmap) {
val alarmId = remoteMessage.sentTime.toInt()
val category = remoteMessage.data["category"].toString()
- val intent = Intent(this, MainActivity::class.java).apply {
+ val intent = Intent(this, IntroActivity::class.java ).apply {
putExtra(OPEN_FROM_PUSH_ALARM, category)
flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
}
diff --git a/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt b/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
index 59498b1d..2e41f88f 100644
--- a/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
+++ b/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
@@ -7,16 +7,19 @@ import android.os.Bundle
import androidx.activity.viewModels
import com.teamsparker.android.R
import com.teamsparker.android.SparkMessagingService
+import com.teamsparker.android.SparkMessagingService.Companion.CERTIFICATION
import com.teamsparker.android.SparkMessagingService.Companion.OPEN_FROM_PUSH_ALARM
import com.teamsparker.android.databinding.ActivityIntroBinding
import com.teamsparker.android.ui.base.BaseActivity
import com.teamsparker.android.ui.main.MainActivity
import com.teamsparker.android.ui.onboarding.OnBoardingActivity
+import com.teamsparker.android.util.CheckForeground
import com.teamsparker.android.util.DialogUtil
import com.teamsparker.android.util.DialogUtil.Companion.UPDATE_CHECK
import com.teamsparker.android.util.FirebaseLogUtil
import com.teamsparker.android.util.initStatusBarColor
import dagger.hilt.android.AndroidEntryPoint
+import timber.log.Timber
@AndroidEntryPoint
class IntroActivity : BaseActivity(R.layout.activity_intro) {
@@ -24,6 +27,9 @@ class IntroActivity : BaseActivity(R.layout.activity_intro
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
+ if (CheckForeground.isForeground()) {
+ moveToMainActivity()
+ }
initStatusBarColor(R.color.spark_more_deep_gray)
checkOpenFromPushAlarm()
introViewModel.versionCheck()
@@ -95,7 +101,12 @@ class IntroActivity : BaseActivity(R.layout.activity_intro
private fun moveToMainActivity() {
startActivity(Intent(this, MainActivity::class.java).apply {
putExtra(OPEN_FROM_PUSH_ALARM, intent.getStringExtra(OPEN_FROM_PUSH_ALARM))
- putExtra(SparkMessagingService.ROOM_ID, intent.getIntExtra(SparkMessagingService.ROOM_ID, -1))
+ if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != CERTIFICATION) {
+ putExtra(
+ SparkMessagingService.ROOM_ID,
+ intent.getIntExtra(SparkMessagingService.ROOM_ID, -1)
+ )
+ }
addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
})
finish()
diff --git a/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt b/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
index a38a345b..947cc131 100644
--- a/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
+++ b/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
@@ -62,16 +62,21 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
}
initTabPositionObserver()
initBlackBgClickListener()
- //moveAfterOpenPushAlarm()
}
override fun onResume() {
super.onResume()
- if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != CERTIFICATION) {
- mainViewModel.initTabPositionHome()
- moveAfterOpenPushAlarm()
- } else {
- mainViewModel.initTabPositionFeed()
+ when (intent.getStringExtra(OPEN_FROM_PUSH_ALARM)) {
+ CERTIFICATION -> {
+ mainViewModel.initTabPositionFeed()
+ intent.removeExtra(OPEN_FROM_PUSH_ALARM)
+ }
+ else -> {
+ mainViewModel.initTabPositionHome()
+ if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != null) {
+ moveAfterOpenPushAlarm()
+ }
+ }
}
initTabPositionFromOthers()
}
@@ -231,11 +236,7 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
}
private fun moveAfterOpenPushAlarm() {
- Timber.tag("fcm").d(intent.getStringExtra(OPEN_FROM_PUSH_ALARM))
when (intent.getStringExtra(OPEN_FROM_PUSH_ALARM)) {
- CERTIFICATION -> {
- //mainViewModel.initTabPositionFeed()
- }
ROOM_START, REMIND, SPARK, CONSIDER -> {
startActivity(Intent(this, HabitActivity::class.java).apply {
putExtra(ROOM_ID, intent.getIntExtra(ROOM_ID, -1))
diff --git a/app/src/main/java/com/teamsparker/android/util/CheckForeground.kt b/app/src/main/java/com/teamsparker/android/util/CheckForeground.kt
index 8b914ae2..36544546 100644
--- a/app/src/main/java/com/teamsparker/android/util/CheckForeground.kt
+++ b/app/src/main/java/com/teamsparker/android/util/CheckForeground.kt
@@ -9,7 +9,7 @@ import timber.log.Timber
object CheckForeground : Application.ActivityLifecycleCallbacks {
private var instance: CheckForeground? = null
- var activityCount = 0
+ private var activityCount = 0
fun init(app: Application) {
if (instance == null) {
@@ -24,7 +24,6 @@ object CheckForeground : Application.ActivityLifecycleCallbacks {
override fun onActivityStarted(activity: Activity) {
activityCount++
- Timber.tag("push_alarm").d("${activityCount} activity_started")
}
override fun onActivityResumed(activity: Activity) {}
@@ -33,7 +32,6 @@ object CheckForeground : Application.ActivityLifecycleCallbacks {
override fun onActivityStopped(activity: Activity) {
activityCount--
- Timber.tag("push_alarm").d("${activityCount} activity_stopped-------------")
}
override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}
From 1d05de4f75f07da051bc31e9c65b5ed74ebc4820 Mon Sep 17 00:00:00 2001
From: Yunjoo Son
Date: Sun, 2 Oct 2022 16:35:21 +0900
Subject: [PATCH 5/5] =?UTF-8?q?#540=20[feat]=20=ED=91=B8=EC=89=AC=EC=95=8C?=
=?UTF-8?q?=EB=A6=BC=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20Enum=20class?=
=?UTF-8?q?=EB=A1=9C=20=EC=A0=95=EC=9D=98=20=ED=9B=84=20=EC=BD=94=EB=93=9C?=
=?UTF-8?q?=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../android/SparkMessagingService.kt | 36 ++++++++-----------
.../android/ui/intro/IntroActivity.kt | 5 ++-
.../android/ui/main/MainActivity.kt | 35 +++++++++---------
.../android/util/NotificationCategory.kt | 9 +++++
4 files changed, 44 insertions(+), 41 deletions(-)
create mode 100644 app/src/main/java/com/teamsparker/android/util/NotificationCategory.kt
diff --git a/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt b/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
index ee4ceb1a..d1e4b02e 100644
--- a/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
+++ b/app/src/main/java/com/teamsparker/android/SparkMessagingService.kt
@@ -12,15 +12,12 @@ import com.google.firebase.messaging.RemoteMessage
import com.teamsparker.android.ui.intro.IntroActivity
import com.teamsparker.android.ui.main.MainActivity
import com.teamsparker.android.util.ImageCropUtil
+import com.teamsparker.android.util.NotificationCategory
import com.teamsparker.android.util.useBitmapImg
import timber.log.Timber
import java.lang.IllegalArgumentException
class SparkMessagingService : FirebaseMessagingService() {
- data class NotificationCategory(
- val summaryId: Int,
- val groupName: String
- )
override fun onNewToken(token: String) {
super.onNewToken(token)
@@ -31,8 +28,13 @@ class SparkMessagingService : FirebaseMessagingService() {
super.onMessageReceived(remoteMessage)
if (remoteMessage.data.isNotEmpty()) {
when (remoteMessage.data["category"].toString()) {
- CERTIFICATION -> transformImageUrlToBitmap(remoteMessage)
- else -> createNotificationWithoutImage(remoteMessage)
+ NotificationCategory.CERTIFICATION.category ->
+ transformImageUrlToBitmap(remoteMessage)
+ NotificationCategory.SPARK.category,
+ NotificationCategory.REMIND.category,
+ NotificationCategory.ROOM_START.category,
+ NotificationCategory.CONSIDER.category ->
+ createNotificationWithoutImage(remoteMessage)
}
}
}
@@ -81,7 +83,7 @@ class SparkMessagingService : FirebaseMessagingService() {
private fun createNotificationWithImage(remoteMessage: RemoteMessage, bitmap: Bitmap) {
val alarmId = remoteMessage.sentTime.toInt()
val category = remoteMessage.data["category"].toString()
- val intent = Intent(this, IntroActivity::class.java ).apply {
+ val intent = Intent(this, IntroActivity::class.java).apply {
putExtra(OPEN_FROM_PUSH_ALARM, category)
flags = Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP
}
@@ -135,26 +137,16 @@ class SparkMessagingService : FirebaseMessagingService() {
}
private fun getSummaryId(category: String) = when (category) {
- CATEGORY_CERTIFICATION.groupName -> CATEGORY_CERTIFICATION.summaryId
- CATEGORY_SPARK.groupName -> CATEGORY_SPARK.summaryId
- CATEGORY_REMIND.groupName -> CATEGORY_REMIND.summaryId
- CATEGORY_ROOM_START.groupName -> CATEGORY_ROOM_START.summaryId
- CATEGORY_CONSIDER.groupName -> CATEGORY_CONSIDER.summaryId
+ NotificationCategory.CERTIFICATION.category -> NotificationCategory.CERTIFICATION.summaryId
+ NotificationCategory.SPARK.category -> NotificationCategory.SPARK.summaryId
+ NotificationCategory.REMIND.category -> NotificationCategory.REMIND.summaryId
+ NotificationCategory.ROOM_START.category -> NotificationCategory.ROOM_START.summaryId
+ NotificationCategory.CONSIDER.category -> NotificationCategory.CONSIDER.summaryId
else -> throw IllegalArgumentException("FCM category 필드 오류")
}
companion object {
const val OPEN_FROM_PUSH_ALARM = "openPushAlarm"
const val ROOM_ID = "roomId"
- const val CERTIFICATION = "certification"
- const val SPARK = "spark"
- const val REMIND = "remind"
- const val ROOM_START = "roomStart"
- const val CONSIDER = "consider"
- private val CATEGORY_CERTIFICATION = NotificationCategory(0, CERTIFICATION)
- private val CATEGORY_SPARK = NotificationCategory(1, SPARK)
- private val CATEGORY_REMIND = NotificationCategory(2, REMIND)
- private val CATEGORY_ROOM_START = NotificationCategory(3, ROOM_START)
- private val CATEGORY_CONSIDER = NotificationCategory(4, CONSIDER)
}
}
diff --git a/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt b/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
index 2e41f88f..c058d3f6 100644
--- a/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
+++ b/app/src/main/java/com/teamsparker/android/ui/intro/IntroActivity.kt
@@ -7,7 +7,6 @@ import android.os.Bundle
import androidx.activity.viewModels
import com.teamsparker.android.R
import com.teamsparker.android.SparkMessagingService
-import com.teamsparker.android.SparkMessagingService.Companion.CERTIFICATION
import com.teamsparker.android.SparkMessagingService.Companion.OPEN_FROM_PUSH_ALARM
import com.teamsparker.android.databinding.ActivityIntroBinding
import com.teamsparker.android.ui.base.BaseActivity
@@ -17,9 +16,9 @@ import com.teamsparker.android.util.CheckForeground
import com.teamsparker.android.util.DialogUtil
import com.teamsparker.android.util.DialogUtil.Companion.UPDATE_CHECK
import com.teamsparker.android.util.FirebaseLogUtil
+import com.teamsparker.android.util.NotificationCategory
import com.teamsparker.android.util.initStatusBarColor
import dagger.hilt.android.AndroidEntryPoint
-import timber.log.Timber
@AndroidEntryPoint
class IntroActivity : BaseActivity(R.layout.activity_intro) {
@@ -101,7 +100,7 @@ class IntroActivity : BaseActivity(R.layout.activity_intro
private fun moveToMainActivity() {
startActivity(Intent(this, MainActivity::class.java).apply {
putExtra(OPEN_FROM_PUSH_ALARM, intent.getStringExtra(OPEN_FROM_PUSH_ALARM))
- if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != CERTIFICATION) {
+ if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != NotificationCategory.CERTIFICATION.category) {
putExtra(
SparkMessagingService.ROOM_ID,
intent.getIntExtra(SparkMessagingService.ROOM_ID, -1)
diff --git a/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt b/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
index 947cc131..7be316f2 100644
--- a/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
+++ b/app/src/main/java/com/teamsparker/android/ui/main/MainActivity.kt
@@ -8,13 +8,8 @@ import androidx.core.app.ActivityCompat
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import com.teamsparker.android.R
-import com.teamsparker.android.SparkMessagingService.Companion.CERTIFICATION
-import com.teamsparker.android.SparkMessagingService.Companion.CONSIDER
import com.teamsparker.android.SparkMessagingService.Companion.OPEN_FROM_PUSH_ALARM
-import com.teamsparker.android.SparkMessagingService.Companion.REMIND
import com.teamsparker.android.SparkMessagingService.Companion.ROOM_ID
-import com.teamsparker.android.SparkMessagingService.Companion.ROOM_START
-import com.teamsparker.android.SparkMessagingService.Companion.SPARK
import com.teamsparker.android.databinding.ActivityMainBinding
import com.teamsparker.android.ui.base.BaseActivity
import com.teamsparker.android.ui.certify.CertifyActivity.Companion.FROM_CERTIFY_ACTIVITY
@@ -32,11 +27,11 @@ import com.teamsparker.android.ui.makeroom.MakeRoomActivity
import com.teamsparker.android.ui.storage.StorageFragmentDirections
import com.teamsparker.android.util.AnimationUtil
import com.teamsparker.android.ui.storage.photo.StoragePhotoCollectionActivity.Companion.FROM_STORAGE_PHOTO_COLLECTION_ACTIVITY
+import com.teamsparker.android.util.NotificationCategory
import com.teamsparker.android.util.getToast
import com.teamsparker.android.util.initStatusBarColor
import com.teamsparker.android.util.initStatusBarTextColorToWhite
import dagger.hilt.android.AndroidEntryPoint
-import timber.log.Timber
import java.lang.IllegalStateException
import kotlin.system.exitProcess
@@ -66,19 +61,24 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
override fun onResume() {
super.onResume()
- when (intent.getStringExtra(OPEN_FROM_PUSH_ALARM)) {
- CERTIFICATION -> {
- mainViewModel.initTabPositionFeed()
- intent.removeExtra(OPEN_FROM_PUSH_ALARM)
- }
- else -> {
- mainViewModel.initTabPositionHome()
- if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != null) {
+ if (intent.getStringExtra(OPEN_FROM_PUSH_ALARM) != null) {
+ when (intent.getStringExtra(OPEN_FROM_PUSH_ALARM)) {
+ NotificationCategory.CERTIFICATION.category -> {
+ mainViewModel.initTabPositionFeed()
+ intent.removeExtra(OPEN_FROM_PUSH_ALARM)
+ }
+ NotificationCategory.SPARK.category,
+ NotificationCategory.REMIND.category,
+ NotificationCategory.ROOM_START.category,
+ NotificationCategory.CONSIDER.category -> {
+ mainViewModel.initTabPositionHome()
moveAfterOpenPushAlarm()
}
}
+ } else {
+ mainViewModel.initTabPositionHome()
+ initTabPositionFromOthers()
}
- initTabPositionFromOthers()
}
override fun onBackPressed() {
@@ -237,7 +237,10 @@ class MainActivity : BaseActivity(R.layout.activity_main) {
private fun moveAfterOpenPushAlarm() {
when (intent.getStringExtra(OPEN_FROM_PUSH_ALARM)) {
- ROOM_START, REMIND, SPARK, CONSIDER -> {
+ NotificationCategory.SPARK.category,
+ NotificationCategory.REMIND.category,
+ NotificationCategory.ROOM_START.category,
+ NotificationCategory.CONSIDER.category -> {
startActivity(Intent(this, HabitActivity::class.java).apply {
putExtra(ROOM_ID, intent.getIntExtra(ROOM_ID, -1))
addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
diff --git a/app/src/main/java/com/teamsparker/android/util/NotificationCategory.kt b/app/src/main/java/com/teamsparker/android/util/NotificationCategory.kt
new file mode 100644
index 00000000..ae739cbc
--- /dev/null
+++ b/app/src/main/java/com/teamsparker/android/util/NotificationCategory.kt
@@ -0,0 +1,9 @@
+package com.teamsparker.android.util
+
+enum class NotificationCategory(val summaryId: Int, val category: String) {
+ CERTIFICATION(0, "certification"),
+ SPARK(1, "spark"),
+ REMIND(2, "remind"),
+ ROOM_START(3, "roomStart"),
+ CONSIDER(4, "consider")
+}