Skip to content

fix: Feedback report sources#575

Merged
jatezzz merged 6 commits intostagefrom
fix/ADFA-1960-feedback-email
Nov 20, 2025
Merged

fix: Feedback report sources#575
jatezzz merged 6 commits intostagefrom
fix/ADFA-1960-feedback-email

Conversation

@jatezzz
Copy link
Copy Markdown
Collaborator

@jatezzz jatezzz commented Nov 4, 2025

  • Separate device info from the main feedback message body.
  • When generating a feedback report, search multiple output tabs (Build, App Logs, IDE Logs) for a stack trace to include, instead of only checking the currently active tab.
  • Add a "Stack trace unavailable" message to the feedback body if no logs are found.

New email template:
telegram-cloud-photo-size-1-4924866263788489481-y

Ticket

ADFA-1960

- Separate device info from the main feedback message body.
- When generating a feedback report, search multiple output tabs (Build, App Logs, IDE Logs) for a stack trace to include, instead of only checking the currently active tab.
- Add a "Stack trace unavailable" message to the feedback body if no logs are found.
@jatezzz jatezzz requested review from a team and hal-eisen-adfa November 4, 2025 17:38
Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Greptile Overview

Greptile Summary

Improved feedback report generation by searching across multiple output tabs (Build, App Logs, IDE Logs) for stack traces, rather than only checking the currently active tab.

Key Changes:

  • Refactored getLogContent() to iterate through candidate tabs and return the first non-empty log content
  • Separated device information (app version, Android version, device model) from the main feedback message body for better email formatting
  • Added fallback "Stack trace unavailable" message when no logs are found in any tab

Implementation Details:
The new approach builds a list of candidate tabs starting with the current tab, then checking Build Output, Application Logs, and IDE Logs in that order. This ensures users can capture relevant error information even when they're not viewing the correct output tab when triggering feedback.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk
  • The changes are straightforward and well-implemented. The logic correctly iterates through candidate tabs with proper null safety checks and early returns. String resource changes are consistent with the code modifications. No custom rules are violated, and the improvements enhance UX by making stack trace collection more reliable.
  • No files require special attention

Important Files Changed

File Analysis

Filename Score Overview
app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt 5/5 Refactored getLogContent() to search multiple output tabs (Build, App Logs, IDE Logs) for stack traces instead of only checking the current tab
common/src/main/java/com/itsaky/androidide/utils/FeedbackManager.kt 5/5 Separated device info from feedback message body; added fallback message when stack trace is unavailable
resources/src/main/res/values/strings.xml 5/5 Restructured feedback strings to separate device info and added new "stack trace unavailable" message

Sequence Diagram

sequenceDiagram
    participant User
    participant FAB as Feedback FAB
    participant FBM as FeedbackButtonManager
    participant BEA as BaseEditorActivity
    participant BSP as BottomSheetPager
    participant SOF as ShareableOutputFragment
    participant FM as FeedbackManager

    User->>FAB: Click feedback button
    FAB->>FBM: onClick()
    FBM->>FBM: performFeedbackAction()
    FBM->>BEA: getLogContent()
    
    BEA->>BEA: Build candidate tabs list<br/>(current, Build, App Logs, IDE Logs)
    
    loop For each tab in candidateTabs
        BEA->>BSP: getFragmentAtIndex(tabIndex)
        BSP-->>BEA: Fragment or null
        
        alt Fragment is ShareableOutputFragment
            BEA->>SOF: getShareableContent()
            SOF-->>BEA: Log content string
            
            alt Log content is not empty
                BEA-->>FBM: Return log content
            end
        end
    end
    
    alt No logs found
        BEA-->>FBM: Return null
    end
    
    FBM->>FM: showFeedbackDialog(activity, logContent)
    
    FM->>FM: Build feedback body
    alt logContent is null or empty
        FM->>FM: Use "Stack trace unavailable" message
    else logContent exists
        FM->>FM: Include log content as stack trace
    end
    
    FM->>FM: Append device info<br/>(version, Android version, device model)
    FM->>User: Show email intent with feedback
Loading

3 files reviewed, no comments

Edit Code Review Agent Settings | Greptile

@jatezzz jatezzz merged commit aec95c2 into stage Nov 20, 2025
2 checks passed
@jatezzz jatezzz deleted the fix/ADFA-1960-feedback-email branch November 20, 2025 13:18
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.

2 participants