v1.0.5 - 메모 아이콘 정리, 삼성 One UI 최신 알람 화면 개편, 달력 깜빡임 해소 및 카드 스택 전환 애니메이션 적용
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<gradient
|
||||
android:type="radial"
|
||||
android:gradientRadius="70dp"
|
||||
android:startColor="#FF3B30"
|
||||
android:endColor="#D70015" />
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
android:color="#80FFFFFF" />
|
||||
</shape>
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="oval">
|
||||
<gradient
|
||||
android:type="radial"
|
||||
android:gradientRadius="120dp"
|
||||
android:startColor="#40FF3B30"
|
||||
android:endColor="#00FF3B30" />
|
||||
</shape>
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<corners android:radius="28dp" />
|
||||
<solid android:color="#26FFFFFF" />
|
||||
<stroke
|
||||
android:width="1dp"
|
||||
android:color="#4DFFFFFF" />
|
||||
</shape>
|
||||
@@ -1,110 +1,164 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/alarmRoot"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_mesh_gradient"
|
||||
android:background="@drawable/bg_alarm_gradient"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<!-- Header / Info Section -->
|
||||
<!-- Top Shift / Alarm Label Pill Badge -->
|
||||
<LinearLayout
|
||||
android:id="@+id/headerContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:id="@+id/shiftBadgeContainer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:layout_marginTop="40dp"
|
||||
android:paddingHorizontal="32dp"
|
||||
android:paddingVertical="16dp">
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/bg_snooze_hub_samsung"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingVertical="6dp"
|
||||
android:layout_marginTop="64dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvCurrentTime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="오후 2:59"
|
||||
android:textSize="88sp"
|
||||
android:fontFamily="sans-serif-thin"
|
||||
android:textColor="@color/white"
|
||||
android:letterSpacing="0.02"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvDate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="2월 14일 토요일"
|
||||
android:textSize="26sp"
|
||||
android:textColor="@color/white"
|
||||
android:alpha="0.5"
|
||||
android:layout_marginTop="16dp"/>
|
||||
<ImageView
|
||||
android:layout_width="16dp"
|
||||
android:layout_height="16dp"
|
||||
android:src="@drawable/ic_alarm"
|
||||
app:tint="#FFFFFF"
|
||||
android:layout_marginEnd="6dp"/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tvShiftType"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="[주간] 근무 알람"
|
||||
android:textSize="16sp"
|
||||
android:textColor="@color/white"
|
||||
android:alpha="0.4"
|
||||
android:layout_marginTop="8dp"/>
|
||||
android:text="[주간] 07:00 근무 알람"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#FFFFFF" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Center Control Area -->
|
||||
<!-- Large Time Display (Samsung One UI Clock Typography) -->
|
||||
<TextView
|
||||
android:id="@+id/tvCurrentTime"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="07:00"
|
||||
android:textSize="80sp"
|
||||
android:fontFamily="sans-serif-light"
|
||||
android:textColor="#FFFFFF"
|
||||
android:letterSpacing="0.01"
|
||||
android:layout_marginTop="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/shiftBadgeContainer"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<!-- Date & Day Display -->
|
||||
<TextView
|
||||
android:id="@+id/tvDate"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="2월 14일 토요일"
|
||||
android:textSize="20sp"
|
||||
android:textColor="#CCFFFFFF"
|
||||
android:layout_marginTop="6dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/tvCurrentTime"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<!-- Middle: Snooze Hub / Capsule Button (Samsung One UI 8.5/9.0 Style) -->
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:id="@+id/btnSnooze"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center"
|
||||
android:layout_below="@id/headerContainer"
|
||||
android:paddingBottom="80dp"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false">
|
||||
android:background="@drawable/bg_snooze_hub_samsung"
|
||||
android:paddingHorizontal="36dp"
|
||||
android:paddingVertical="16dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true"
|
||||
android:layout_marginBottom="40dp"
|
||||
app:layout_constraintBottom_toTopOf="@id/dismissContainer"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:src="@drawable/ic_bell"
|
||||
app:tint="#FFFFFF"
|
||||
android:layout_marginEnd="10dp"/>
|
||||
|
||||
<!-- Snooze Button (Glass style) -->
|
||||
<TextView
|
||||
android:id="@+id/btnSnooze"
|
||||
android:id="@+id/tvSnoozeText"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="48dp"
|
||||
android:paddingVertical="18dp"
|
||||
android:text="다시 울림"
|
||||
android:textSize="22sp"
|
||||
android:textColor="@color/white"
|
||||
android:alpha="0.9"
|
||||
android:background="@drawable/bg_glass_pill_v4"
|
||||
android:clickable="true"
|
||||
android:focusable="true"/>
|
||||
|
||||
<!-- Stop Button Container with Pulse -->
|
||||
<FrameLayout
|
||||
android:layout_width="320dp"
|
||||
android:layout_height="320dp"
|
||||
android:layout_marginTop="20dp"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false">
|
||||
|
||||
<!-- Glowing Pulse View -->
|
||||
<View
|
||||
android:id="@+id/pulseCircle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/bg_pulse_gradient"/>
|
||||
|
||||
<!-- Dismiss Button -->
|
||||
<TextView
|
||||
android:id="@+id/btnDismiss"
|
||||
android:layout_width="200dp"
|
||||
android:layout_height="200dp"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:text="해제"
|
||||
android:textSize="34sp"
|
||||
android:textColor="@color/white"
|
||||
android:background="@drawable/bg_dismiss_circle_v4"
|
||||
android:clickable="true"
|
||||
android:focusable="true"/>
|
||||
</FrameLayout>
|
||||
android:text="다시 울림 (5분)"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#FFFFFF" />
|
||||
</LinearLayout>
|
||||
|
||||
<!-- Bottom: Dismiss (해제) Control with Expanding Breathing Wave -->
|
||||
<FrameLayout
|
||||
android:id="@+id/dismissContainer"
|
||||
android:layout_width="260dp"
|
||||
android:layout_height="260dp"
|
||||
android:layout_marginBottom="54dp"
|
||||
android:clipChildren="false"
|
||||
android:clipToPadding="false"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
</RelativeLayout>
|
||||
<!-- Outer Glowing Pulse Wave -->
|
||||
<View
|
||||
android:id="@+id/pulseCircle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/bg_pulse_wave_samsung" />
|
||||
|
||||
<!-- Inner Ambient Ring -->
|
||||
<View
|
||||
android:id="@+id/ambientRing"
|
||||
android:layout_width="160dp"
|
||||
android:layout_height="160dp"
|
||||
android:layout_gravity="center"
|
||||
android:background="@drawable/bg_pulse_wave_samsung" />
|
||||
|
||||
<!-- Samsung Style Dismiss Button (Tap or Swipe to dismiss) -->
|
||||
<LinearLayout
|
||||
android:id="@+id/btnDismiss"
|
||||
android:layout_width="100dp"
|
||||
android:layout_height="100dp"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center"
|
||||
android:background="@drawable/bg_dismiss_samsung"
|
||||
android:elevation="8dp"
|
||||
android:clickable="true"
|
||||
android:focusable="true">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="28dp"
|
||||
android:layout_height="28dp"
|
||||
android:src="@drawable/ic_delete"
|
||||
app:tint="#FFFFFF" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="해제"
|
||||
android:textSize="14sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="#FFFFFF"
|
||||
android:layout_marginTop="2dp" />
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
@@ -58,26 +58,39 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<!-- Maximized Calendar Card -->
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/calendarCard"
|
||||
<!-- Maximized Calendar Card with Layered Stack Wrapper -->
|
||||
<FrameLayout
|
||||
android:id="@+id/calendarWrapper"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginHorizontal="3dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp"
|
||||
app:cardBackgroundColor="@android:color/transparent"
|
||||
app:layout_constraintTop_toBottomOf="@id/headerRoot"
|
||||
app:layout_constraintBottom_toTopOf="@id/otherTeamsCard"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/calendarContainer"
|
||||
<!-- Bottom Snapshot View (Underneath Card Stack) -->
|
||||
<ImageView
|
||||
android:id="@+id/calendarOverlaySnapshot"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_glass_panel_v3">
|
||||
android:scaleType="fitXY"
|
||||
android:visibility="gone" />
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/calendarCard"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:cardCornerRadius="28dp"
|
||||
app:cardElevation="0dp"
|
||||
app:cardBackgroundColor="@android:color/transparent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/calendarContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/bg_glass_panel_v3">
|
||||
|
||||
<!-- Compact Month Controls -->
|
||||
<LinearLayout
|
||||
@@ -301,6 +314,7 @@
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
</FrameLayout>
|
||||
|
||||
<!-- Other Teams Compact Section -->
|
||||
<androidx.cardview.widget.CardView
|
||||
|
||||
@@ -108,17 +108,4 @@
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<!-- Memo Indicator (bottom-right) -->
|
||||
<ImageView
|
||||
android:id="@+id/memoIndicator"
|
||||
android:layout_width="10dp"
|
||||
android:layout_height="10dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
android:layout_marginBottom="2dp"
|
||||
android:src="@drawable/ic_memo"
|
||||
app:tint="@color/secondary"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
Reference in New Issue
Block a user