diff --git a/android/app/capacitor.build.gradle b/android/app/capacitor.build.gradle
index 0421499..8905ffd 100644
--- a/android/app/capacitor.build.gradle
+++ b/android/app/capacitor.build.gradle
@@ -16,6 +16,7 @@ dependencies {
implementation project(':capacitor-text-zoom')
implementation project(':capgo-capacitor-social-login')
implementation project(':team-lepisode-capacitor-kakao-login')
+ implementation project(':capacitor-native-settings')
}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 614ae08..4ae718f 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -54,6 +54,10 @@
+
+
+
+
diff --git a/android/app/src/main/java/kr/ai/didit/MainActivity.java b/android/app/src/main/java/kr/ai/didit/MainActivity.java
index 09b3622..17091ce 100644
--- a/android/app/src/main/java/kr/ai/didit/MainActivity.java
+++ b/android/app/src/main/java/kr/ai/didit/MainActivity.java
@@ -1,5 +1,14 @@
package kr.ai.didit;
+import android.os.Bundle;
+
import com.getcapacitor.BridgeActivity;
-public class MainActivity extends BridgeActivity {}
+public class MainActivity extends BridgeActivity {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ // 커스텀 하단 내비게이션 바 플러그인 등록 (super.onCreate 이전에 호출해야 함)
+ registerPlugin(NavigationBarPlugin.class);
+ super.onCreate(savedInstanceState);
+ }
+}
diff --git a/android/app/src/main/java/kr/ai/didit/NavigationBarPlugin.java b/android/app/src/main/java/kr/ai/didit/NavigationBarPlugin.java
new file mode 100644
index 0000000..8817ed0
--- /dev/null
+++ b/android/app/src/main/java/kr/ai/didit/NavigationBarPlugin.java
@@ -0,0 +1,46 @@
+package kr.ai.didit;
+
+import android.graphics.Color;
+import android.os.Build;
+import android.view.View;
+
+import com.getcapacitor.Plugin;
+import com.getcapacitor.PluginCall;
+import com.getcapacitor.PluginMethod;
+import com.getcapacitor.annotation.CapacitorPlugin;
+
+// 하단 내비게이션 바 색을 런타임에 현재 화면 배경색으로 칠하기 위한 커스텀 플러그인.
+// (@capacitor/status-bar는 상단 상태바만 다뤄서, 하단 내비바는 직접 구현한다)
+@CapacitorPlugin(name = "NavigationBar")
+public class NavigationBarPlugin extends Plugin {
+
+ // setColor({ color: '#RRGGBB', darkButtons: boolean })
+ @PluginMethod
+ public void setColor(PluginCall call) {
+ final String color = call.getString("color");
+ final boolean darkButtons = Boolean.TRUE.equals(call.getBoolean("darkButtons", true));
+ if (color == null) {
+ call.reject("color is required");
+ return;
+ }
+ getActivity().runOnUiThread(() -> {
+ try {
+ getActivity().getWindow().setNavigationBarColor(Color.parseColor(color));
+ // 밝은 배경이면 어두운 버튼(LIGHT_NAVIGATION_BAR) — API 26+ 에서만 지원
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
+ View decor = getActivity().getWindow().getDecorView();
+ int flags = decor.getSystemUiVisibility();
+ if (darkButtons) {
+ flags |= View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+ } else {
+ flags &= ~View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR;
+ }
+ decor.setSystemUiVisibility(flags);
+ }
+ call.resolve();
+ } catch (Exception e) {
+ call.reject("failed to set navigation bar color: " + e.getMessage());
+ }
+ });
+ }
+}
diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml
index be874e5..32d902a 100644
--- a/android/app/src/main/res/values/styles.xml
+++ b/android/app/src/main/res/values/styles.xml
@@ -13,10 +13,21 @@
- false
- true
- @null
+
+ - #3DDB99
+ - #3DDB99
+ - true
+ - true
\ No newline at end of file
diff --git a/android/capacitor.settings.gradle b/android/capacitor.settings.gradle
index 092f56e..f696ff6 100644
--- a/android/capacitor.settings.gradle
+++ b/android/capacitor.settings.gradle
@@ -22,3 +22,6 @@ project(':capgo-capacitor-social-login').projectDir = new File('../node_modules/
include ':team-lepisode-capacitor-kakao-login'
project(':team-lepisode-capacitor-kakao-login').projectDir = new File('../node_modules/@team-lepisode/capacitor-kakao-login/android')
+
+include ':capacitor-native-settings'
+project(':capacitor-native-settings').projectDir = new File('../node_modules/capacitor-native-settings/android')
diff --git a/app/assets/css/main.css b/app/assets/css/main.css
index 482f0ec..e7d3d0a 100644
--- a/app/assets/css/main.css
+++ b/app/assets/css/main.css
@@ -23,7 +23,9 @@
html {
font-family: 'Pretendard', system-ui, sans-serif;
/* 비정수 DPR(예: 1.75) 기기에서 antialiased(grayscale AA)는 글자를 더 물러 보이게 해 제거 → WebView 기본 AA 사용 */
- text-rendering: optimizeLegibility;
+ /* optimizeLegibility는 커닝/리가처로 글자를 소수 픽셀 위치에 얹어 작은 글자(pill·태그칩 11~12px)를 무르게 만든다.
+ optimizeSpeed로 그 경로를 꺼 작은 텍스트를 또렷하게 (DPR 1.75 서브픽셀 뭉개짐 완화) */
+ text-rendering: optimizeSpeed;
}
body {
diff --git a/app/components/RetrospectVoiceRecorder.vue b/app/components/RetrospectVoiceRecorder.vue
index f24c0a5..74b1629 100644
--- a/app/components/RetrospectVoiceRecorder.vue
+++ b/app/components/RetrospectVoiceRecorder.vue
@@ -63,7 +63,7 @@