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")
|
val SEOUL_ZONE: ZoneId = ZoneId.of("Asia/Seoul")
|
||||||
const val TAG = "ShiftAlarm"
|
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 생성
|
// 알람 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