Skip to main content

Summary

The General Settings & Profile module serves as the control center for the ScrollLess application. It allows users to customize the app’s appearance (like themes and dark mode), manage essential privacy permissions, and configure how the digital coach interacts with them. Additionally, it provides access to support resources, the developer’s story, and a unique interactive feedback mechanism.

How It Works

The settings screen acts as a bridge between the user’s preferences and the app’s internal storage. When a user changes a setting, the app immediately saves this preference and updates the interface to reflect the change.
1

Loading Preferences

When the user opens the Settings screen, the ViewModel retrieves the current configuration from the Repository. This includes visual settings (like Dark Mode), functional settings (like Haptics), and the status of system permissions (like Accessibility access).
2

Managing Permissions

The app relies on specific Android permissions to function. The settings screen displays a “traffic light” system for these permissions. If a permission is missing (Red), clicking it triggers a system intent to open the specific Android settings page. When the user returns, the app automatically re-checks and updates the status to Granted (Green).
3

Customizing Appearance

Users can select from various color themes (e.g., Calm Lavender) or use their device’s dynamic colors. When a theme is selected, the ViewModel updates the stored preference, and the entire app redraws itself with the new color palette instantly.
4

Interactive Feedback

The Feedback screen uses a unique physics-based animation. As the user slides between “Bad,” “Not Bad,” and “Good,” the on-screen face morphs and changes color (from red to green). This data, along with any written notes, is sent to the developer to improve the app.

Data Stored

This feature manages a wide variety of user preferences stored locally on the device.
FieldTypeDescription
selectedThemeEnumThe color palette chosen by the user (e.g., CalmLavender).
isDarkModeBooleanWhether the app should force dark mode, light mode, or follow the system.
hapticsEnabledBooleanControls if the phone vibrates during interactions.
coachSuggestionsEnabledBooleanDetermines if the AI coach should offer proactive advice.
notificationsRetentionDaysIntegerHow long notification history is kept before deletion.
onboardingCompletedBooleanFlags if the user has finished the initial setup tutorial.

Key Components

Settings Screen

The main list displaying all configuration categories, including Appearance, Tracking, and Permissions.

Settings ViewModel

The logic center that holds the current state of switches and handles the logic for exporting/importing data.

Permission Manager

A utility that checks if the app has the necessary Android rights (Accessibility, Usage Stats) to function correctly.

About Screen

A storytelling screen that explains the “Pledge” and the philosophy behind the app, featuring a rotating star animation.
Last modified on January 25, 2026