Skip to content

feat: add Analytics event detail and fix filters - #161

Open
MaxMichel2 wants to merge 1 commit into
refactor/featureflip-segmented-controlfrom
feat/analytics-event-detail
Open

MaxMichel2 wants to merge 1 commit into
refactor/featureflip-segmented-controlfrom
feat/analytics-event-detail

Conversation

@MaxMichel2

@MaxMichel2 MaxMichel2 commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Checkpoint 4 only, compared with refactor/featureflip-segmented-control.

  • Add Analytics event details with string parameters, full millisecond/timezone timestamps, selectable text and Copy event.
  • Use compact filtered counts and shared search/collapsible filters; preserve list state and refresh limited time windows every five seconds.
  • Assign internal recording UUIDs outside value equality, expose read-only logger snapshots, remove LocalAnalytics and support explicit standalone sources.
  • Migrate docs/API and seed sample events from an effect to prevent duplicate logging/observation feedback.

Validation

  • Analytics host tests and all 11 device tests passed, including actual clipboard contents, restoration and automatic expiry.
  • Detekt, Konsist, API generation/compatibility and sample debug build passed; commit hooks passed.
  • Settled list/detail captures checked in light and dark. Graph refreshed with unchanged-document recovery.
  • Native iOS execution, TalkBack and enlarged-font checks remain pending. Light system-bar contrast is scheduled for checkpoint 9.

Dependency and migration

Depends on #160. Merge order: #157 → #159 → #160 → this PR. The dependency note is informational, not enforced; no gh-stack metadata or earlier PRs were changed.

Alpha08 migration: replace writes to AnalyticsLogger.logs with AnalyticsLogger.log(). Remove LocalAnalytics providers; standalone custom sources pass AnalyticsScreen(logs = yourList, ...). Events remain in memory only.

RetriggerView in GreptileConfidence Score: 4/5

The code changes appear sound, but the root setup example must be updated to satisfy the repository’s documentation requirement before merging.

Findings

  1. P2 Main setup example fails ▶

Summary

Adds Analytics event details and updates how events are recorded and filtered.

  • Tapping an event opens details with its parameters and full timestamp.
  • Analytics filters narrow the list and its counts together.
  • The logger keeps read-only history and accepts standalone event lists.
  • The sample app records its starter events once instead of during recomposition.
  • The generated graph manifest reflects the Analytics changes.

MaxMichel2 explicitly describes the breaking API changes as intentional and supplies an alpha08 migration. MaxMichel2 also identifies native iOS, TalkBack and enlarged-font checks as pending, and defers light system-bar contrast to checkpoint 9.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  A["AnalyticsLogger.log(event)"] --> B["Copy parameters and assign UUID"]
  B --> C["Read-only history"]
  C --> D["Search and filter events"]
  D --> E["Filtered counts and rows"]
  E --> F["Select UUID"]
  C --> G["Find selected UUID"]
  F --> G
  G --> H["Event details or unavailable state"]
  H --> I["Copy event"]
Loading

Reviews (1) · Last reviewed commit: ":sparkles: Add Analytics event detail an..." · Reviewed by Greptile

Add parameter inspection and copying with stable recording UUIDs, saved list state,
compact filtered counts and recoverable search/category/time filters. Expose read-only
logger snapshots and explicit standalone sources instead of LocalAnalytics. Record
sample seed events from an effect to avoid an observation/recomposition feedback loop.

Validation: Analytics host tests and all 11 device tests passed, including clipboard,
restoration and periodic expiry. Detekt, Konsist, API generation/compatibility and
sample debug build passed. Checked settled list/detail captures in light and dark;
updated graph with unchanged-document recovery. Native iOS execution, TalkBack and
large-font checks remain pending; light system-bar contrast is scheduled for checkpoint 9.

public final class AnalyticsScreenKt {
method @KotlinOnly @androidx.compose.runtime.Composable public static void AnalyticsScreen(kotlinx.collections.immutable.PersistentList<com.worldline.devview.analytics.model.AnalyticsLogType> highlightedAnalyticsLogTypes, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.unit.Dp bottomPadding);
method @KotlinOnly @androidx.compose.runtime.Composable public static void AnalyticsScreen(kotlinx.collections.immutable.PersistentList<com.worldline.devview.analytics.model.AnalyticsLogType> highlightedAnalyticsLogTypes, optional androidx.compose.ui.Modifier modifier, optional androidx.compose.ui.unit.Dp bottomPadding, optional java.util.List<com.worldline.devview.analytics.model.AnalyticsLog> logs);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Main setup example fails

This API change removes LocalAnalytics, but the root README.md still tells users to call CompositionLocalProvider(LocalAnalytics provides AnalyticsLogger.logs). Following that setup now fails to compile.

The repository requires Markdown examples to match the current API. Update the root example before merging to explain that the registered module needs no provider.

Context Used: CLAUDE.md (source)

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant