Skip to content

Rewrite testing app with Jetpack Compose#1483

Open
Andrii-Horishnii-Glia wants to merge 20 commits into
developmentfrom
MOB-5044-android-testing-app-compose
Open

Rewrite testing app with Jetpack Compose#1483
Andrii-Horishnii-Glia wants to merge 20 commits into
developmentfrom
MOB-5044-android-testing-app-compose

Conversation

@Andrii-Horishnii-Glia

Copy link
Copy Markdown
Contributor

Jira issue:
https://glia.atlassian.net/browse/MOB-5044

What was solved?
Modernize the Android testing app (:app module) using Jetpack Compose
and modern Android architecture patterns:

  • Jetpack Compose for all UI with Material 3 design
  • MVVM architecture with ViewModel + StateFlow
  • DataStore for configuration persistence
  • Centralized AppState pattern (similar to iOS)
  • Unified accessibility identifiers for cross-platform Appium tests

Features include:

  • Main screen with engagement buttons (Chat, Audio, Video, Secure Messaging)
  • Entry Widget support (sheet and embedded modes)
  • Call Visualizer/Visitor Code (dialog and embedded modes)
  • Authentication flows (authenticate, deauthenticate, refresh)
  • Settings screen with all configuration options
  • Visitor Info screen with custom attributes
  • Theme customization with predefined color palette
  • Push notification handling
  • Live Observation pause/resume
  • Queue picker
  • Deep link configuration support

Additional info:

  • Is the feature sufficiently tested? All tests fixed? Necessary unit, acceptance, snapshots added? Check that at least new public classes & methods are covered with unit tests
  • Did you add logging beneficial for troubleshooting of customer issues?
  • Did you add new logging? We would like the logging between platforms to be similar. Refer to Logging from Android SDKsThings to consider for newly added logs in Confluence for more information.

Screenshots:

BitriseBot and others added 20 commits January 14, 2026 14:51
Configuration simplification:
- Remove Atlassian MCP (delegated to global config)
- Replace GitHub MCP with direct gh CLI usage
- Remove iOS Simulator MCP (not needed for Android SDK)
- Add gh search permission for code searching
- Add all mobile-mcp tool permissions for Android emulator control

Documentation improvements:
- Remove hardcoded dependency versions from CLAUDE.md
- Add references to gradle/libs.versions.toml as single source of truth
- Update GitHub integration docs to reflect direct CLI usage
- Clarify Atlassian MCP uses global configuration

Files changed: 3 files, 26 insertions(+), 105 deletions(-)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Removed unused MCP servers from configuration.

chore/claude-code-setup
Modernize the Android testing app (:app module) using Jetpack Compose
and modern Android architecture patterns:

- Jetpack Compose for all UI with Material 3 design
- MVVM architecture with ViewModel + StateFlow
- DataStore for configuration persistence
- Centralized AppState pattern (similar to iOS)
- Unified accessibility identifiers for cross-platform Appium tests

Features include:
- Main screen with engagement buttons (Chat, Audio, Video, Secure Messaging)
- Entry Widget support (sheet and embedded modes)
- Call Visualizer/Visitor Code (dialog and embedded modes)
- Authentication flows (authenticate, deauthenticate, refresh)
- Settings screen with all configuration options
- Visitor Info screen with custom attributes
- Theme customization with predefined color palette
- Push notification handling
- Live Observation pause/resume
- Queue picker
- Deep link configuration support

MOB-5044
Phase 4: Add Main Screen with ViewModel
Phase 4.1: UI polish to match iOS design
Fix preview rendering with simpler fallback preview
Migrate from SharedPreferences to DataStore:
- Add savedAuthToken field to GliaConfiguration
- Add updateSavedAuthToken() to ConfigurationRepository
- Implement one-time migration from SharedPreferences to DataStore
- Migration runs on app startup for backwards compatibility
- MainViewModel now uses DataStore for all config (auth tokens, queue ID, visitor context asset ID)
- Remove SharedPreferences usage from MainViewModel
- Delete Utils.java (no longer needed)
- Remove unused SharedPreferences methods from ExampleAppConfigManager
- Remove obsolete obtainConfigFromDeepLink() and createDefaultConfig()

All configuration now stored in DataStore, SharedPreferences only read during migration.

Build and lint verified successful.
Remove queue picker from main screen:
- Remove "Select Queue" button from MainScreen
- Remove QueuePickerDialog component from MainScreen
- Remove queue-related methods from MainViewModel (loadQueues, selectQueue, dismissQueuePicker)
- Remove QueuesState sealed class from MainViewModel
- Remove queuesState from MainUiState
- Keep "Use Default Queues" toggle on main screen

Queue selection is now only available in Settings screen.

Build and lint verified successful.
@Andrii-Horishnii-Glia Andrii-Horishnii-Glia requested a review from a team as a code owner February 6, 2026 21:25
@snyk-io

snyk-io Bot commented Feb 6, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@Andrii-Horishnii-Glia

Copy link
Copy Markdown
Contributor Author
Screenshot_20260206_232312

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants