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
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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 =
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user