feat: 다크모드 지원 커스텀 토스트 구현
- showCustomToast() 함수 추가 (AlarmUtils) - 커스텀 토스트 레이아웃 및 배경 drawable 추가 - values/colors.xml 및 values-night/colors.xml 리소스 사용 Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -16,6 +16,26 @@ import java.util.concurrent.TimeUnit
|
||||
val SEOUL_ZONE: ZoneId = ZoneId.of("Asia/Seoul")
|
||||
const val TAG = "ShiftAlarm"
|
||||
|
||||
/**
|
||||
* 다크모드 지원 커스텀 토스트 표시
|
||||
*/
|
||||
fun showCustomToast(context: Context, message: String, duration: Int = android.widget.Toast.LENGTH_SHORT) {
|
||||
try {
|
||||
val inflater = android.view.LayoutInflater.from(context)
|
||||
val layout = inflater.inflate(R.layout.custom_toast, null)
|
||||
val textView = layout.findViewById<android.widget.TextView>(R.id.toastText)
|
||||
textView.text = message
|
||||
|
||||
val toast = android.widget.Toast(context)
|
||||
toast.duration = duration
|
||||
toast.view = layout
|
||||
toast.setGravity(android.view.Gravity.BOTTOM or android.view.Gravity.CENTER_HORIZONTAL, 0, 100)
|
||||
toast.show()
|
||||
} catch (e: Exception) {
|
||||
// Fallback to default toast if custom toast fails
|
||||
android.widget.Toast.makeText(context, message, duration).show()
|
||||
}
|
||||
}
|
||||
// ============================================
|
||||
// 알람 ID 생성
|
||||
// ============================================
|
||||
|
||||
9
app/src/main/res/drawable/bg_custom_toast.xml
Normal file
9
app/src/main/res/drawable/bg_custom_toast.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/surface" />
|
||||
<corners android:radius="12dp" />
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="@color/outline" />
|
||||
</shape>
|
||||
20
app/src/main/res/layout/custom_toast.xml
Normal file
20
app/src/main/res/layout/custom_toast.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:background="@drawable/bg_custom_toast"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingVertical="10dp"
|
||||
android:gravity="center">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/toastText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="14sp"
|
||||
android:textColor="@color/text_primary"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end" />
|
||||
|
||||
</LinearLayout>
|
||||
Reference in New Issue
Block a user