Skip to content

Commit a099a30

Browse files
authored
Merge pull request #29 from ARTEMKOPIK/palette/micro-ux-enhancements-10647075270886577365
🎨 Palette: Micro-UX and accessibility enhancements for Main Dashboard
2 parents 25a1d2e + 3ef3980 commit a099a30

File tree

5 files changed

+28
-6
lines changed

5 files changed

+28
-6
lines changed

.Jules/palette.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 2025-05-15 - [Haptic Feedback for Action Differentiation]
2+
**Learning:** Using different haptic intensities (light vs. heavy) for different types of actions (navigation/edit vs. destructive/critical) provides a much richer tactile experience and helps users understand the weight of their actions without looking.
3+
**Action:** Apply 'light' haptic feedback for regular navigation and 'heavy' for stop/delete actions in future components.

app/src/main/java/com/autoclicker/app/MainActivity.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import androidx.appcompat.app.AlertDialog
2121
import androidx.core.content.ContextCompat
2222
import androidx.core.view.WindowCompat
2323
import com.autoclicker.app.base.BaseActivity
24+
import com.autoclicker.app.util.HapticFeedback
2425
import com.autoclicker.app.service.ColorPickerService
2526
import com.autoclicker.app.service.FloatingWindowService
2627
import com.autoclicker.app.service.ScreenCaptureService
@@ -80,6 +81,7 @@ class MainActivity : BaseActivity() {
8081
private fun setupButtons() {
8182
// Скрипты
8283
findViewById<LinearLayout>(R.id.btnScripts).setOnClickListener {
84+
HapticFeedback.light(it)
8385
try {
8486
startActivity(Intent(this, ScriptListActivity::class.java))
8587
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
@@ -91,6 +93,7 @@ class MainActivity : BaseActivity() {
9193

9294
// Новый скрипт
9395
findViewById<LinearLayout>(R.id.btnNewScript).setOnClickListener {
96+
HapticFeedback.light(it)
9497
try {
9598
startActivity(Intent(this, ScriptEditorActivity::class.java))
9699
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
@@ -102,6 +105,7 @@ class MainActivity : BaseActivity() {
102105

103106
// Визуальный редактор
104107
findViewById<LinearLayout>(R.id.btnVisualEditor).setOnClickListener {
108+
HapticFeedback.light(it)
105109
try {
106110
startActivity(Intent(this, com.autoclicker.app.visual.VisualEditorActivity::class.java))
107111
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
@@ -146,6 +150,7 @@ class MainActivity : BaseActivity() {
146150

147151
// Запуск панели (FAB)
148152
findViewById<FloatingActionButton>(R.id.btnStartPanel).setOnClickListener {
153+
HapticFeedback.light(it)
149154
try {
150155
if (checkPermissions()) {
151156
FloatingWindowService.startService(this)
@@ -166,6 +171,7 @@ class MainActivity : BaseActivity() {
166171

167172
// Настройки
168173
findViewById<ImageView>(R.id.btnSettings).setOnClickListener {
174+
HapticFeedback.light(it)
169175
startActivity(Intent(this, SettingsActivity::class.java))
170176
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
171177
}
@@ -218,6 +224,7 @@ class MainActivity : BaseActivity() {
218224

219225
// Остановить
220226
findViewById<LinearLayout>(R.id.btnStop).setOnClickListener {
227+
HapticFeedback.heavy(it)
221228
FloatingWindowService.stopService(this)
222229
ColorPickerService.stopService(this)
223230
ScreenCaptureService.stopService(this)
@@ -227,6 +234,7 @@ class MainActivity : BaseActivity() {
227234

228235
// Status card click - go to settings
229236
statusCard.setOnClickListener {
237+
HapticFeedback.light(it)
230238
startActivity(Intent(this, SettingsActivity::class.java))
231239
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
232240
}

app/src/main/res/layout/activity_main.xml

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,16 @@
5959
android:padding="12dp"
6060
android:src="@drawable/ic_settings"
6161
android:background="@drawable/bg_icon_button"
62-
android:contentDescription="Settings" />
62+
android:contentDescription="@string/accessibility_settings" />
6363
</LinearLayout>
6464

6565
<!-- Status Card -->
6666
<LinearLayout
6767
android:id="@+id/statusCard"
6868
android:layout_width="match_parent"
6969
android:layout_height="wrap_content"
70+
android:contentDescription="@string/accessibility_status_card"
71+
android:focusable="true"
7072
android:background="@drawable/bg_status_banner"
7173
android:orientation="horizontal"
7274
android:gravity="center_vertical"
@@ -142,7 +144,8 @@
142144
android:gravity="center"
143145
android:padding="16dp"
144146
android:clickable="true"
145-
android:focusable="true">
147+
android:focusable="true"
148+
android:contentDescription="@string/main_scripts">
146149

147150
<ImageView
148151
android:layout_width="36dp"
@@ -172,7 +175,8 @@
172175
android:gravity="center"
173176
android:padding="16dp"
174177
android:clickable="true"
175-
android:focusable="true">
178+
android:focusable="true"
179+
android:contentDescription="@string/main_new_script">
176180

177181
<ImageView
178182
android:layout_width="36dp"
@@ -202,7 +206,8 @@
202206
android:gravity="center_vertical"
203207
android:paddingHorizontal="20dp"
204208
android:clickable="true"
205-
android:focusable="true">
209+
android:focusable="true"
210+
android:contentDescription="@string/main_visual_editor">
206211

207212
<TextView
208213
android:layout_width="48dp"
@@ -546,7 +551,8 @@
546551
android:orientation="horizontal"
547552
android:gravity="center"
548553
android:clickable="true"
549-
android:focusable="true">
554+
android:focusable="true"
555+
android:contentDescription="@string/main_stop">
550556

551557
<ImageView
552558
android:layout_width="20dp"
@@ -578,6 +584,7 @@
578584
app:backgroundTint="@color/primary"
579585
app:tint="@color/text_on_primary"
580586
app:fabSize="normal"
581-
app:elevation="8dp" />
587+
app:elevation="8dp"
588+
android:contentDescription="@string/main_start_panel" />
582589

583590
</androidx.coordinatorlayout.widget.CoordinatorLayout>

app/src/main/res/values-en/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@
132132
<string name="main_stop">Stop All</string>
133133
<string name="main_home">Home</string>
134134
<string name="main_start_panel">Start Panel</string>
135+
<string name="accessibility_settings">Settings</string>
136+
<string name="accessibility_status_card">Permission status. Tap to configure.</string>
135137

136138
<!-- Statistics -->
137139
<string name="statistics_title">Statistics</string>

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@
132132
<string name="main_stop">Остановить всё</string>
133133
<string name="main_home">Домой</string>
134134
<string name="main_start_panel">Запуск панели</string>
135+
<string name="accessibility_settings">Настройки</string>
136+
<string name="accessibility_status_card">Статус разрешений. Нажмите для настройки.</string>
135137

136138
<!-- Statistics -->
137139
<string name="statistics_title">Статистика</string>

0 commit comments

Comments
 (0)