Skip to content

Commit 775cdd6

Browse files
nbradburyclaude
andcommitted
Add loading scrim to subscription settings bottom sheet
Replace individual switch disabling with a semi-transparent scrim overlay that blocks interaction while loading. This provides clearer visual feedback and prevents toggle jitter during loading states. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent f36dcca commit 775cdd6

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

WordPress/src/main/java/org/wordpress/android/ui/reader/subscription/ReaderSubscriptionSettingsBottomSheetFragment.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,10 @@ class ReaderSubscriptionSettingsBottomSheetFragment : BottomSheetDialogFragment(
115115
switchEmailPosts.setCheckedSilently(state.emailPostsEnabled)
116116
switchEmailComments.setCheckedSilently(state.emailCommentsEnabled)
117117

118-
// Update loading state
119-
progressBar.visibility = if (state.isLoading) View.VISIBLE else View.GONE
120-
switchNotifyPosts.isEnabled = !state.isLoading
121-
switchEmailPosts.isEnabled = !state.isLoading
122-
switchEmailComments.isEnabled = !state.isLoading
118+
// Update loading state - scrim blocks interaction while loading
119+
val loadingVisibility = if (state.isLoading) View.VISIBLE else View.GONE
120+
loadingScrim.visibility = loadingVisibility
121+
progressBar.visibility = loadingVisibility
123122
}
124123
}
125124

WordPress/src/main/res/layout/reader_subscription_settings_bottom_sheet.xml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,16 +109,30 @@
109109
android:textAppearance="?attr/textAppearanceSubtitle1"
110110
app:layout_constraintTop_toBottomOf="@+id/divider_3" />
111111

112-
<!-- Loading indicator -->
112+
<!-- Loading scrim with progress indicator -->
113+
<View
114+
android:id="@+id/loading_scrim"
115+
android:layout_width="0dp"
116+
android:layout_height="0dp"
117+
android:background="@color/reader_subscription_loading_scrim"
118+
android:clickable="true"
119+
android:focusable="true"
120+
android:visibility="gone"
121+
app:layout_constraintBottom_toBottomOf="parent"
122+
app:layout_constraintEnd_toEndOf="parent"
123+
app:layout_constraintStart_toStartOf="parent"
124+
app:layout_constraintTop_toBottomOf="@+id/subscription_settings_blog_name"
125+
tools:visibility="visible" />
126+
113127
<ProgressBar
114128
android:id="@+id/progress_bar"
115129
android:layout_width="wrap_content"
116130
android:layout_height="wrap_content"
117131
android:visibility="gone"
118-
app:layout_constraintBottom_toBottomOf="parent"
119-
app:layout_constraintEnd_toEndOf="parent"
120-
app:layout_constraintStart_toStartOf="parent"
121-
app:layout_constraintTop_toTopOf="parent"
132+
app:layout_constraintBottom_toBottomOf="@+id/loading_scrim"
133+
app:layout_constraintEnd_toEndOf="@+id/loading_scrim"
134+
app:layout_constraintStart_toStartOf="@+id/loading_scrim"
135+
app:layout_constraintTop_toTopOf="@+id/loading_scrim"
122136
tools:visibility="visible" />
123137

124138
</androidx.constraintlayout.widget.ConstraintLayout>

WordPress/src/main/res/values/colors.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@
9494
<color name="reader_footer_progress_background">@color/white</color>
9595
<color name="reader_button_primary_background">@color/black</color>
9696
<color name="reader_button_primary_text">@color/white</color>
97+
<color name="reader_subscription_loading_scrim">@color/white_translucent_50</color>
9798

9899
<!-- Reader Interest Chips -->
99100
<color name="reader_interest_filter_chip_text">@color/material_on_surface_emphasis_high_type</color>

0 commit comments

Comments
 (0)