Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a62336d authored by Xiaowen Lei's avatar Xiaowen Lei
Browse files

Enable configuring multiple loggable dream prefixes.

Android Metrics Design Review: eldar/189451700.

Bug: 255597001
Fix: 255597001
Test: Manually on device via `statsd_testdrive 449`
Change-Id: I796ed6d50b24108590b38fc954f36d93cdebef1f
parent d2cb2303
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -2491,8 +2491,10 @@
         assistant activities (ACTIVITY_TYPE_ASSISTANT) -->
    <bool name="config_dismissDreamOnActivityStart">false</bool>

    <!-- The prefix of dream component names that are loggable. If empty, logs "other" for all. -->
    <string name="config_loggable_dream_prefix" translatable="false"></string>
    <!-- The prefixes of dream component names that are loggable.
         Matched against ComponentName#flattenToString() for dream components.
         If empty, logs "other" for all. -->
    <string-array name="config_loggable_dream_prefixes"></string-array>

    <!-- ComponentName of a dream to show whenever the system would otherwise have
         gone to sleep.  When the PowerManager is asked to go to sleep, it will instead
+1 −1
Original line number Diff line number Diff line
@@ -2245,7 +2245,7 @@
  <java-symbol type="integer" name="config_dreamOverlayReconnectTimeoutMs" />
  <java-symbol type="integer" name="config_dreamOverlayMaxReconnectAttempts" />
  <java-symbol type="integer" name="config_minDreamOverlayDurationMs" />
  <java-symbol type="string" name="config_loggable_dream_prefix" />
  <java-symbol type="array" name="config_loggable_dream_prefixes" />
  <java-symbol type="string" name="config_dozeComponent" />
  <java-symbol type="string" name="enable_explore_by_touch_warning_title" />
  <java-symbol type="string" name="enable_explore_by_touch_warning_message" />
+1 −1
Original line number Diff line number Diff line
@@ -157,7 +157,7 @@ public final class DreamManagerService extends SystemService {
        mDozeConfig = new AmbientDisplayConfiguration(mContext);
        mUiEventLogger = new UiEventLoggerImpl();
        mDreamUiEventLogger = new DreamUiEventLoggerImpl(
                mContext.getResources().getString(R.string.config_loggable_dream_prefix));
                mContext.getResources().getStringArray(R.array.config_loggable_dream_prefixes));
        AmbientDisplayConfiguration adc = new AmbientDisplayConfiguration(mContext);
        mAmbientDisplayComponent = ComponentName.unflattenFromString(adc.ambientDisplayComponent());
        mDreamsOnlyEnabledForSystemUser =
+14 −7
Original line number Diff line number Diff line
@@ -26,10 +26,10 @@ import com.android.internal.util.FrameworkStatsLog;
 * @hide
 */
public class DreamUiEventLoggerImpl implements DreamUiEventLogger {
    final String mLoggableDreamPrefix;
    private final String[] mLoggableDreamPrefixes;

    DreamUiEventLoggerImpl(String loggableDreamPrefix) {
        mLoggableDreamPrefix = loggableDreamPrefix;
    DreamUiEventLoggerImpl(String[] loggableDreamPrefixes) {
        mLoggableDreamPrefixes = loggableDreamPrefixes;
    }

    @Override
@@ -38,13 +38,20 @@ public class DreamUiEventLoggerImpl implements DreamUiEventLogger {
        if (eventID <= 0) {
            return;
        }
        final boolean isFirstPartyDream =
                mLoggableDreamPrefix.isEmpty() ? false : dreamComponentName.startsWith(
                        mLoggableDreamPrefix);
        FrameworkStatsLog.write(FrameworkStatsLog.DREAM_UI_EVENT_REPORTED,
                /* uid = 1 */ 0,
                /* event_id = 2 */ eventID,
                /* instance_id = 3 */ 0,
                /* dream_component_name = 4 */ isFirstPartyDream ? dreamComponentName : "other");
                /* dream_component_name = 4 */
                isFirstPartyDream(dreamComponentName) ? dreamComponentName : "other");
    }

    private boolean isFirstPartyDream(String dreamComponentName) {
        for (int i = 0; i < mLoggableDreamPrefixes.length; ++i) {
            if (dreamComponentName.startsWith(mLoggableDreamPrefixes[i])) {
                return true;
            }
        }
        return false;
    }
}