Skip to content

Commit

Permalink
Fix #5250 : Add support for logging device DPI events (#5270)
Browse files Browse the repository at this point in the history
<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
Fix #5250 In the EventBundleCreator class, introduced a new item in the
bundle to log the screen density of the device. Stored using the key
"screen_density" and value retrieved from
resources.displayMetrics.screenDensity .

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [x] The PR title and explanation each start with "Fix #bugnum: " (If
this PR fixes part of an issue, prefix the title with "Fix part of
#bugnum: ...".)
- [x] Any changes to
[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [x] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android
Studio
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and
is up-to-date with "develop".
- [x] The PR is **assigned** to the appropriate reviewers
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## For UI-specific PRs only
<!-- Delete these section if this PR does not include UI-related
changes. -->
If your PR includes UI-related changes, then:
- Add screenshots for portrait/landscape for both a tablet & phone of
the before & after UI changes
- For the screenshots above, include both English and pseudo-localized
(RTL) screenshots (see [RTL
guide](https://github.com/oppia/oppia-android/wiki/RTL-Guidelines))
- Add a video showing the full UX flow with a screen reader enabled (see
[accessibility
guide](https://github.com/oppia/oppia-android/wiki/Accessibility-A11y-Guide))
- For PRs introducing new UI elements or color changes, both light and
dark mode screenshots must be included
- Add a screenshot demonstrating that you ran affected Espresso tests
locally & that they're passing

---------

Co-authored-by: Tejas-67 <[email protected]>
Co-authored-by: Adhiambo Peres <[email protected]>
  • Loading branch information
3 people authored Jan 30, 2024
1 parent 60de5db commit 3ced7e1
Show file tree
Hide file tree
Showing 3 changed files with 111 additions and 104 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.oppia.android.util.logging

import android.content.Context
import android.content.res.Configuration
import android.os.Build
import android.os.Bundle
import org.oppia.android.app.model.AppLanguageSelection
Expand Down Expand Up @@ -129,6 +130,9 @@ class EventBundleCreator @Inject constructor(
private val appVersionCode by lazy { context.getVersionCode() }
private val appVersionName by lazy { context.getVersionName() }
private val eventCount by lazy { AtomicInteger() }
private val screenDensity by lazy {
Configuration().densityDpi
}

/**
* Fills the specified [bundle] with a logging-ready representation of [eventLog] and returns a
Expand All @@ -150,6 +154,9 @@ class EventBundleCreator @Inject constructor(
bundle.putString(
"oppia_audio_lang", eventLog.audioTranslationLanguageSelection.toAnalyticsText()
)
bundle.putInt(
"screen_density", screenDensity
)
return eventLog.context.convertToActivityContext().also { eventContext ->
// Only allow user IDs to be logged when the learner study feature is enabled.
eventContext.storeValue(
Expand Down
Loading

0 comments on commit 3ced7e1

Please sign in to comment.