Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f2c1a52
delete: SCHEDULE_EXACT_ALARM 권한 관련 코드 삭제
hwoo7449 Feb 28, 2026
3b52992
chore: AGP 버전 업데이트 8.13.0 -> 8.13.2
hwoo7449 Feb 28, 2026
f4f5ce6
delete: 설정에서의 권한관련 코드 삭제
hwoo7449 Feb 28, 2026
b29ad63
refactor: 위젯 Kotlin 코드 구조 정리
hwoo7449 Feb 28, 2026
43f7e92
feat: 위젯 관련 Kotlin 코드에서 SCHEDULE_EXACT_ALARM 권한 관련 코드 삭제
hwoo7449 Feb 28, 2026
d0853f5
feat: 위젯 관련 Receiver 및 MethodChannel 상수화
hwoo7449 Feb 28, 2026
88bbbcc
fix: 위젯에 CHANNEL 추가 및 잘못된 import 수정
hwoo7449 Feb 28, 2026
ecbbcb4
fix: 위젯 업데이트 관련 성능 최적화
hwoo7449 Feb 28, 2026
860747f
feat: 위젯·앱 타이포그래피 토큰 공통화 및 자동 생성 도입
hwoo7449 Feb 28, 2026
28f12f8
fix: 라우트 관련 디버그 로그 추가
hwoo7449 Feb 28, 2026
b9c9c7b
add: 위젯용 밥묵자 아이콘 추가
hwoo7449 Feb 28, 2026
9fdcb10
add: 색상 토큰 추가
hwoo7449 Feb 28, 2026
1898c48
refactor: 빈 상태 위젯 개선 및 최적화
hwoo7449 Feb 28, 2026
c8558af
style: 빈화면 UI 스타일 조정
hwoo7449 Feb 28, 2026
867cc2a
feat: 날짜 형식 변경 (MM월 dd일 EEEE)
hwoo7449 Feb 28, 2026
22dc44a
refactor: 위젯 텍스트 컴포넌트 분리
hwoo7449 Feb 28, 2026
cb28475
fix: 위젯 클릭시 라우팅 정확히 처리
hwoo7449 Feb 28, 2026
5771ec0
fix: 검색 안되는 버그 수정
hwoo7449 Mar 1, 2026
ede35d0
style: 기본 (식당 하나) 위젯 크기 2x2 -> 3x2 변경
hwoo7449 Mar 1, 2026
f357561
style: Figma와 폰트가 다른 관계로 폰트 크기 조정
hwoo7449 Mar 1, 2026
c964962
feat: 위젯 텍스트 스타일 키 추가
hwoo7449 Mar 1, 2026
34a6d3b
style: 위젯 디자인 조정
hwoo7449 Mar 1, 2026
1cf6292
chore: 위젯 xml 파일명 변경 및 관련 라벨 수정
hwoo7449 Mar 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions android/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# ---- Keep Android entry points used by OS / widgets ----
-keep class com.hwoo.bobmoo.BootReceiver { *; }
-keep class com.hwoo.bobmoo.MealGlanceWidgetReceiver { *; }
-keep class com.hwoo.bobmoo.AllCafeteriasGlanceWidgetReceiver { *; }
-keep class com.hwoo.bobmoo.WidgetUpdateManager { *; }
-keep class com.hwoo.bobmoo.widget.receiver.BootReceiver { *; }
-keep class com.hwoo.bobmoo.widget.receiver.MealGlanceWidgetReceiver { *; }
-keep class com.hwoo.bobmoo.widget.receiver.AllCafeteriasGlanceWidgetReceiver { *; }
-keep class com.hwoo.bobmoo.widget.WidgetUpdateManager { *; }
-keep class com.hwoo.bobmoo.widget.RefreshWidgetAction { *; }

# ---- Strip verbose debug logs in release ----
-assumenosideeffects class android.util.Log {
Expand Down
17 changes: 8 additions & 9 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
Expand Down Expand Up @@ -36,40 +35,40 @@
android:value="2" />

<receiver
android:name=".MealGlanceWidgetReceiver"
android:name=".widget.receiver.MealGlanceWidgetReceiver"
android:exported="true"
android:label="하나의 식당 위젯">
android:label="@string/single_cafeteria_widget_label_3x2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/meal_widget_info_2x2" />
android:resource="@xml/single_cafeteria_widget_info_3x2" />
</receiver>

<receiver
android:name=".AllCafeteriasGlanceWidgetReceiver"
android:name=".widget.receiver.AllCafeteriasGlanceWidgetReceiver"
android:exported="true"
android:label="모든 식당 위젯">
android:label="@string/all_cafeterias_widget_label_5x2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>

<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/all_cafeterias_widget_info" />
android:resource="@xml/all_cafeterias_widget_info_5x2" />
</receiver>

<receiver
android:name=".WidgetUpdateManager"
android:name=".widget.WidgetUpdateManager"
android:exported="false">
<intent-filter>
<action android:name="com.hwoo.bobmoo.action.WIDGET_UPDATE" />
</intent-filter>
</receiver>

<receiver
android:name=".BootReceiver"
android:name=".widget.receiver.BootReceiver"
android:exported="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
Expand Down

This file was deleted.

40 changes: 7 additions & 33 deletions android/app/src/main/kotlin/com/hwoo/bobmoo/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,53 +1,27 @@
package com.hwoo.bobmoo

import android.app.AlarmManager
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.provider.Settings
import androidx.annotation.NonNull
import com.hwoo.bobmoo.widget.WidgetUpdateManager
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel

class MainActivity : FlutterActivity() {
// 1. Flutter와 통신할 채널 이름 정의
private val CHANNEL = "com.hwoo.bobmoo/alarm_permission"
private val CHANNEL = "com.hwoo.bobmoo/widget_control"

override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)

// 2. MethodChannel 설정
// MethodChannel 설정
MethodChannel(
flutterEngine.dartExecutor.binaryMessenger,
CHANNEL
).setMethodCallHandler { call, result ->
when (call.method) {
// 3. Flutter에서 'canScheduleExactAlarms'를 호출했을 때 실행될 코드
"canScheduleExactAlarms" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
val alarmManager =
context.getSystemService(Context.ALARM_SERVICE) as AlarmManager
result.success(alarmManager.canScheduleExactAlarms())
} else {
// 안드로이드 12 미만 버전에서는 이 권한이 없으므로 항상 true를 반환
result.success(true)
}
}
// 4. Flutter에서 'openAlarmPermissionSettings'를 호출했을 때 실행될 코드
"openAlarmPermissionSettings" -> {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
// '알람 및 리마인더' 설정 화면으로 바로 이동하는 Intent
val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM).apply {
data = Uri.fromParts("package", packageName, null)
}
startActivity(intent)
result.success(true)
} else {
// 안드로이드 12 미만에서는 해당 설정 화면이 없으므로 아무것도 안 함
result.success(false)
}
"refreshWidgetsNow" -> {
WidgetUpdateManager.triggerImmediateUpdate(this)
WidgetUpdateManager.scheduleUpdate(this)
result.success(true)
}

else -> {
Expand Down
39 changes: 0 additions & 39 deletions android/app/src/main/kotlin/com/hwoo/bobmoo/MealWidgetUI.kt

This file was deleted.

147 changes: 0 additions & 147 deletions android/app/src/main/kotlin/com/hwoo/bobmoo/WidgetCommonComponents.kt

This file was deleted.

Loading