Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -576,7 +576,11 @@ abstract class BaseEditorActivity :
}

feedbackButtonManager =
FeedbackButtonManager(activity = this, feedbackFab = binding.fabFeedback)
FeedbackButtonManager(
activity = this,
feedbackFab = binding.fabFeedback,
getLogContent = ::getLogContent,
)
feedbackButtonManager?.setupDraggableFab()

setupMemUsageChart()
Expand Down Expand Up @@ -1280,17 +1284,25 @@ abstract class BaseEditorActivity :
}

private fun getLogContent(): String? {
if (bottomSheetViewModel.sheetBehaviorState == BottomSheetBehavior.STATE_COLLAPSED) {
return null
val pagerAdapter = binding.content.bottomSheet.pagerAdapter

val candidateTabs = buildList {
add(bottomSheetViewModel.currentTab)
add(BottomSheetViewModel.TAB_BUILD_OUTPUT)
add(BottomSheetViewModel.TAB_APPLICATION_LOGS)
add(BottomSheetViewModel.TAB_IDE_LOGS)
}.distinct()

candidateTabs.forEach { tabIndex ->
val fragment = pagerAdapter.getFragmentAtIndex<Fragment>(tabIndex)
if (fragment is ShareableOutputFragment) {
val shareable = fragment.getShareableContent().trim()
if (shareable.isNotEmpty()) {
return shareable
}
}
}

val fragment = this.binding.content.bottomSheet.pagerAdapter.getFragmentAtIndex<Fragment>(
bottomSheetViewModel.currentTab
)

return when (fragment) {
is ShareableOutputFragment -> fragment.getShareableContent()
else -> null
}
return null
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -290,13 +290,26 @@ object FeedbackManager {
val feedbackRecipient = activity.getString(R.string.feedback_email)
val feedbackSubject =
activity.getString(R.string.feedback_subject, getCurrentScreenName(activity))
val stackTraceSection =
logContent?.trim().takeIf { it?.isNotEmpty() == true }
?: activity.getString(R.string.feedback_stack_trace_unavailable)
val feedbackBody =
activity.getString(
R.string.feedback_message,
BuildInfo.VERSION_NAME_SIMPLE,
Build.VERSION.RELEASE,
"${Build.MANUFACTURER} ${Build.MODEL}",
)
buildString {
append(
activity.getString(
R.string.feedback_device_info,
BuildInfo.VERSION_NAME_SIMPLE,
Build.VERSION.RELEASE,
"${Build.MANUFACTURER} ${Build.MODEL}",
),
)
append(
activity.getString(
R.string.feedback_message,
stackTraceSection,
),
)
}

val emailIntent =
handler.prepareEmailIntent(
Expand Down
7 changes: 3 additions & 4 deletions resources/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -806,10 +806,9 @@
<string name="email_feedback_warning_prompt"> To send a private message to feedback@appdevforall.org, tap <b>OK</b>. If you aren’t connected to the Internet, the message will not be sent immediately. Do you want to continue?
</string>
<string name="feedback_subject">Feedback for %1$s Screen</string>
<string name="feedback_message">Please enter your feedback in the space below. If you are reporting a problem, please include as
much information as possible about the issue.\n\nThanks!\n\nVersion: %1$s\n\n-------------stack
trace----------\n%2$s</string>
<string name="feedback_device_info">\n\nApp Version: %1$s\n\nAndroid Version: %2$s\n\nDevice: %3$s</string>
<string name="feedback_message">\n\nPlease enter your feedback in the space below. If you are reporting a problem, please include as much information as possible about the issue.\n\nThanks!\n\n-------------stack trace----------\n%1$s</string>
<string name="feedback_device_info">App Version: %1$s\n\nAndroid Version: %2$s\n\nDevice: %3$s</string>
<string name="feedback_stack_trace_unavailable">Stack trace unavailable. Please describe the issue you encountered.</string>
<string name="send_feedback">Send feedback</string>
<string name="alert_message">Send feedback</string>
<string name="fab_more">More</string>
Expand Down