public abstract class UsageTracker
extends java.lang.Object
implements java.lang.AutoCloseable
Modifier and Type | Field and Description |
---|---|
protected long |
mStartTimeMs |
static com.android.utils.DateProvider |
sDateProvider |
Modifier | Constructor and Description |
---|---|
protected |
UsageTracker(com.android.tools.analytics.AnalyticsSettings analyticsSettings,
java.util.concurrent.ScheduledExecutorService scheduler) |
Modifier and Type | Method and Description |
---|---|
static void |
cleanAfterTesting()
resets the global instance to the null usage tracker, to clean state in tests.
|
com.android.tools.analytics.AnalyticsSettings |
getAnalyticsSettings()
Gets the analytics settings used by this tracker.
|
static UsageTracker |
getInstance()
Gets an instance of the
UsageTracker that has been initialized correctly for this process. |
int |
getMaxJournalSize()
Indicates whether this UsageTracker has a maximum size at which point logs need to be flushed.
|
long |
getMaxJournalTime()
Indicates whether this UsageTracker has a timeout at which point logs need to be flushed.
|
java.util.concurrent.ScheduledExecutorService |
getScheduler()
Gets the scheduler used by this tracker.
|
java.lang.String |
getVersion()
Gets the version specified for this UsageTracker.
|
static UsageTracker |
initialize(com.android.tools.analytics.AnalyticsSettings analyticsSettings,
java.util.concurrent.ScheduledExecutorService scheduler)
Initializes a
UsageTracker for use throughout this process based on user opt-in and
other settings. |
void |
log(com.google.wireless.android.sdk.stats.AndroidStudioEvent.Builder studioEvent)
Logs usage data provided in the @{link AndroidStudioEvent}.
|
abstract void |
logDetails(com.google.wireless.android.play.playlog.proto.ClientAnalytics.LogEvent.Builder logEvent)
Logs usage data provided in the @{link ClientAnalytics.LogEvent}.
|
static UsageTracker |
setInstanceForTest(UsageTracker tracker)
Sets the global instance to the provided tracker so tests can provide their own UsageTracker
implementation.
|
void |
setMaxJournalSize(int maxJournalSize) |
void |
setMaxJournalTime(long duration,
java.util.concurrent.TimeUnit unit)
Sets a timeout at which point logs need to be flushed.
|
void |
setVersion(java.lang.String version)
Set the version specified for this UsageTracker.
|
static com.android.tools.analytics.AnalyticsSettings |
updateSettingsAndTracker(boolean optIn,
com.android.utils.ILogger logger,
java.util.concurrent.ScheduledExecutorService scheduler) |
public static com.android.utils.DateProvider sDateProvider
protected long mStartTimeMs
protected UsageTracker(com.android.tools.analytics.AnalyticsSettings analyticsSettings, java.util.concurrent.ScheduledExecutorService scheduler)
public int getMaxJournalSize()
public void setMaxJournalSize(int maxJournalSize)
public long getMaxJournalTime()
public void setMaxJournalTime(long duration, java.util.concurrent.TimeUnit unit)
@NonNull public java.lang.String getVersion()
public void setVersion(@NonNull java.lang.String version)
public com.android.tools.analytics.AnalyticsSettings getAnalyticsSettings()
public java.util.concurrent.ScheduledExecutorService getScheduler()
public void log(@NonNull com.google.wireless.android.sdk.stats.AndroidStudioEvent.Builder studioEvent)
public abstract void logDetails(@NonNull com.google.wireless.android.play.playlog.proto.ClientAnalytics.LogEvent.Builder logEvent)
logDetails(com.google.wireless.android.play.playlog.proto.ClientAnalytics.LogEvent.Builder)
instead.@NonNull public static UsageTracker getInstance()
UsageTracker
that has been initialized correctly for this process.public static UsageTracker initialize(@NonNull com.android.tools.analytics.AnalyticsSettings analyticsSettings, @NonNull java.util.concurrent.ScheduledExecutorService scheduler)
UsageTracker
for use throughout this process based on user opt-in and
other settings.public static UsageTracker setInstanceForTest(UsageTracker tracker)
public static void cleanAfterTesting()
public static com.android.tools.analytics.AnalyticsSettings updateSettingsAndTracker(boolean optIn, @NonNull com.android.utils.ILogger logger, @NonNull java.util.concurrent.ScheduledExecutorService scheduler)