From abb1740f751bdeb2aa0c11f72eafc703d8bf1004 Mon Sep 17 00:00:00 2001 From: unam98 Date: Fri, 3 Apr 2026 15:11:06 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20Remote=20Config=20force=5Fupdate=20?= =?UTF-8?q?=ED=94=8C=EB=9E=98=EA=B7=B8=20=EA=B8=B0=EB=B0=98=20=EC=97=85?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=8A=B8=20=ED=8C=9D=EC=97=85=20=EC=A0=9C?= =?UTF-8?q?=EC=96=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - force_update가 true이고 버전이 다를 때만 강제 업데이트 팝업 표시 - 기본값 false — 불필요한 팝업으로 사용성 저해 방지 - 팝업은 외부 터치 차단(setCancelable false) 유지 --- .../java/com/runnect/runnect/presentation/MainActivity.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt index 54c3c8b3..6680935f 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt @@ -136,8 +136,9 @@ class MainActivity : BindingActivity(R.layout.activity_main fetchAndActivate().addOnCompleteListener { task -> if (task.isSuccessful) { + val forceUpdate = getBoolean(REMOTE_KEY_FORCE_UPDATE) val updateAppVersion = getString(REMOTE_KEY_APP_VERSION) - if (localAppVersion != updateAppVersion) { + if (forceUpdate && localAppVersion != updateAppVersion) { initUpdateDialog() } } @@ -163,6 +164,7 @@ class MainActivity : BindingActivity(R.layout.activity_main companion object { const val REMOTE_CONFIG_FETCH_INTERVAL_SECONDS = 3600L + const val REMOTE_KEY_FORCE_UPDATE = "force_update" const val EXTRA_FRAGMENT_REPLACEMENT_DIRECTION = "fragmentReplacementDirection" } } From e9b154afea3fb9878fee204b477aa8dd08cb17c5 Mon Sep 17 00:00:00 2001 From: unam98 Date: Fri, 3 Apr 2026 15:19:39 +0900 Subject: [PATCH 2/3] =?UTF-8?q?refactor:=20REMOTE=5FKEY=5FFORCE=5FUPDATE?= =?UTF-8?q?=EB=A5=BC=20local.properties=20+=20BuildConfig=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - local.properties에 REMOTE_KEY_FORCE_UPDATE 추가 - build.gradle에 buildConfigField 등록 - MainActivity에서 상수 제거, BuildConfig 참조로 변경 --- app/build.gradle | 1 + .../main/java/com/runnect/runnect/presentation/MainActivity.kt | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index f1f75682..70a8fede 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -35,6 +35,7 @@ android { buildConfigField "String", "NAVER_CLIENT_ID", properties["NAVER_CLIENT_ID"] buildConfigField "String", "GOOGLE_CLIENT_ID", properties["GOOGLE_CLIENT_ID"] buildConfigField "String", "REMOTE_KEY_APP_VERSION", properties["REMOTE_KEY_APP_VERSION"] + buildConfigField "String", "REMOTE_KEY_FORCE_UPDATE", properties["REMOTE_KEY_FORCE_UPDATE"] buildConfigField "String", "KAKAO_CHANNEL_ID", properties["KAKAO_CHANNEL_ID"] } diff --git a/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt b/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt index 6680935f..c5fadbee 100644 --- a/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt +++ b/app/src/main/java/com/runnect/runnect/presentation/MainActivity.kt @@ -9,6 +9,7 @@ import com.google.firebase.Firebase import com.google.firebase.remoteconfig.remoteConfig import com.google.firebase.remoteconfig.remoteConfigSettings import com.runnect.runnect.BuildConfig.REMOTE_KEY_APP_VERSION +import com.runnect.runnect.BuildConfig.REMOTE_KEY_FORCE_UPDATE import com.runnect.runnect.R import com.runnect.runnect.binding.BindingActivity import com.runnect.runnect.databinding.ActivityMainBinding @@ -164,7 +165,6 @@ class MainActivity : BindingActivity(R.layout.activity_main companion object { const val REMOTE_CONFIG_FETCH_INTERVAL_SECONDS = 3600L - const val REMOTE_KEY_FORCE_UPDATE = "force_update" const val EXTRA_FRAGMENT_REPLACEMENT_DIRECTION = "fragmentReplacementDirection" } } From 720cd30cd55678595143c4a86502d2bf2cb2b36c Mon Sep 17 00:00:00 2001 From: unam98 Date: Fri, 3 Apr 2026 16:05:26 +0900 Subject: [PATCH 3/3] =?UTF-8?q?ci:=20CI/CD=20workflow=EC=97=90=20REMOTE=5F?= =?UTF-8?q?KEY=5FFORCE=5FUPDATE=20=EC=8B=9C=ED=81=AC=EB=A6=BF=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/CD.yml | 5 +++++ .github/workflows/CI.yml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml index 51dd464a..1ac331ac 100644 --- a/.github/workflows/CD.yml +++ b/.github/workflows/CD.yml @@ -84,6 +84,11 @@ jobs: KAKAO_CHANNEL_ID: ${{ secrets.KAKAO_CHANNEL_ID }} run: echo "KAKAO_CHANNEL_ID=\"$KAKAO_CHANNEL_ID\"" >> local.properties + - name: Access REMOTE_KEY_FORCE_UPDATE + env: + REMOTE_KEY_FORCE_UPDATE: ${{ secrets.REMOTE_KEY_FORCE_UPDATE }} + run: echo "REMOTE_KEY_FORCE_UPDATE=\"$REMOTE_KEY_FORCE_UPDATE\"" >> local.properties + - name: Access KEY_ALIAS env: KEY_ALIAS: ${{ secrets.KEY_ALIAS }} diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index c1c15847..1f0b65c9 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -79,6 +79,11 @@ jobs: env: KAKAO_CHANNEL_ID: ${{ secrets.KAKAO_CHANNEL_ID }} run: echo "KAKAO_CHANNEL_ID=\"$KAKAO_CHANNEL_ID\"" >> local.properties + + - name: Access REMOTE_KEY_FORCE_UPDATE + env: + REMOTE_KEY_FORCE_UPDATE: ${{ secrets.REMOTE_KEY_FORCE_UPDATE }} + run: echo "REMOTE_KEY_FORCE_UPDATE=\"$REMOTE_KEY_FORCE_UPDATE\"" >> local.properties - name: Add kakao_strings.xml env: