diff options
author | Roman Birg <roman@cyngn.com> | 2016-08-29 16:26:56 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-08-29 16:26:56 -0700 |
commit | 33b5c82b68ecf8c18f284214b65db0c2e80589ce (patch) | |
tree | 41741e034f2057289f485f49761ebe6bc2135532 /src/org/cyanogenmod/audiofx/stats/UserSession.java | |
parent | 10fc11011278db3da38e3d28f729887426c1c3a1 (diff) | |
parent | 71e5da3c38e5a7e79d5c1f94a13f239cc7ca7458 (diff) | |
download | android_packages_apps_AudioFX-33b5c82b68ecf8c18f284214b65db0c2e80589ce.tar.gz android_packages_apps_AudioFX-33b5c82b68ecf8c18f284214b65db0c2e80589ce.tar.bz2 android_packages_apps_AudioFX-33b5c82b68ecf8c18f284214b65db0c2e80589ce.zip |
Merge "AudioFX: finish rename; persist process" into cm-13.0
Diffstat (limited to 'src/org/cyanogenmod/audiofx/stats/UserSession.java')
-rw-r--r-- | src/org/cyanogenmod/audiofx/stats/UserSession.java | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/src/org/cyanogenmod/audiofx/stats/UserSession.java b/src/org/cyanogenmod/audiofx/stats/UserSession.java new file mode 100644 index 0000000..285edb3 --- /dev/null +++ b/src/org/cyanogenmod/audiofx/stats/UserSession.java @@ -0,0 +1,215 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.cyanogenmod.audiofx.stats; + +import android.os.Parcel; +import android.os.Parcelable; +import com.cyanogen.ambient.analytics.Event; +import org.cyanogenmod.audiofx.Preset; +import org.cyanogenmod.audiofx.knobs.KnobCommander; + +public class UserSession implements Parcelable { + + private static final String SOURCE_NONE = "none"; + + private static UserSession sSession; + public static final UserSession getInstance() { + return sSession; + } + + private String mSource; + private int mDevicesChanged; + private int mEnabledDisabledToggles; + private int mPresetsSelected; + private int mPresetsCreated; + private int mPresetsRemoved; + private int mPresetsRenamed; + private int mMaxxVolumeToggled; + private int mTrebleKnobAdjusted; + private int mBassKnobAdjusted; + private int mVirtualizerKnobAdjusted; + + public UserSession(String incomingPackageSource) { + if (incomingPackageSource == null) { + mSource = SOURCE_NONE; + } else { + mSource = incomingPackageSource; + } + sSession = this; + } + + public void deviceChanged() { + mDevicesChanged++; + } + + public void deviceEnabledDisabled() { + mEnabledDisabledToggles++; + } + + public void presetSelected() { + mPresetsSelected++; + } + + public void presetRemoved() { + mPresetsRemoved++; + } + + public void presetRenamed() { + mPresetsRenamed++; + } + + public void presetCreated() { + mPresetsCreated++; + } + + public void maxxVolumeToggled() { + mMaxxVolumeToggled++; + } + + public void knobOptionsAdjusted(int knob) { + switch (knob) { + case KnobCommander.KNOB_BASS: + mBassKnobAdjusted++; + break; + case KnobCommander.KNOB_TREBLE: + mTrebleKnobAdjusted++; + break; + case KnobCommander.KNOB_VIRTUALIZER: + mVirtualizerKnobAdjusted++; + break; + } + } + + public void append(Event.Builder builder) { + builder.addField("session_source", mSource); + if (mDevicesChanged > 0) + builder.addField("session_devices_changed_count", mDevicesChanged); + if (mEnabledDisabledToggles > 0) + builder.addField("session_devices_enabled_disabled_count", mEnabledDisabledToggles); + if (mPresetsSelected > 0) + builder.addField("session_presets_changed_count", mPresetsSelected); + if (mPresetsCreated > 0) + builder.addField("session_presets_created_count", mPresetsCreated); + if (mPresetsRemoved > 0) + builder.addField("session_presets_removed_count", mPresetsRemoved); + if (mPresetsRenamed > 0) + builder.addField("session_presets_renamed_count", mPresetsRenamed); + if (mMaxxVolumeToggled > 0) + builder.addField("session_maxx_volume_toggled", mMaxxVolumeToggled); + if (mBassKnobAdjusted > 0) + builder.addField("session_knobs_bass_adjusted_count", mBassKnobAdjusted); + if (mVirtualizerKnobAdjusted > 0) + builder.addField("session_knobs_virtualizer_adjusted_count", mVirtualizerKnobAdjusted); + if (mTrebleKnobAdjusted > 0) + builder.addField("session_knobs_treble_adjusted_count", mTrebleKnobAdjusted); + } + + @Override + public String toString() { + StringBuilder s = new StringBuilder(getClass().getName() + "["); + if (mSource != null) { + s.append("mSource=").append(mSource).append(", "); + } + if (mDevicesChanged > 0) { + s.append("mDevicesChanged=").append(mDevicesChanged).append(", "); + } + if (mEnabledDisabledToggles > 0) { + s.append("mEnabledDisabledToggles=").append(mEnabledDisabledToggles).append(", "); + } + if (mPresetsSelected > 0) { + s.append("mPresetsSelected=").append(mPresetsSelected).append(", "); + } + if (mPresetsCreated > 0) { + s.append("mPresetsCreated=").append(mPresetsCreated).append(", "); + } + if (mPresetsRemoved > 0) { + s.append("mPresetsRemoved=").append(mPresetsRemoved).append(", "); + } + if (mPresetsRenamed > 0) { + s.append("mPresetsRenamed=").append(mPresetsRenamed).append(", "); + } + if (mMaxxVolumeToggled > 0) { + s.append("mMaxxVolumeToggled=").append(mMaxxVolumeToggled).append(", "); + } + if (mBassKnobAdjusted > 0) { + s.append("mBassKnobAdjusted=").append(mBassKnobAdjusted).append(", "); + } + if (mVirtualizerKnobAdjusted > 0) { + s.append("mVirtualizerKnobAdjusted=").append(mVirtualizerKnobAdjusted).append(", "); + } + if (mTrebleKnobAdjusted > 0) { + s.append("mTrebleKnobAdjusted=").append(mTrebleKnobAdjusted).append(", "); + } + if (s.charAt(s.length() - 2) == ',') { + s.delete(s.length() - 2, s.length()); + } + s.append("]"); + + return s.toString(); + } + + public static final Creator<UserSession> CREATOR = new Creator<UserSession>() { + @Override + public UserSession createFromParcel(Parcel in) { + return new UserSession(in); + } + + @Override + public UserSession[] newArray(int size) { + return new UserSession[size]; + } + }; + + @Override + public int describeContents() { + return 0; + } + + protected UserSession(Parcel in) { + mSource = in.readString(); + mDevicesChanged = in.readInt(); + mEnabledDisabledToggles = in.readInt(); + mPresetsSelected = in.readInt(); + mPresetsCreated = in.readInt(); + mPresetsRemoved = in.readInt(); + mPresetsRenamed = in.readInt(); + mBassKnobAdjusted = in.readInt(); + mVirtualizerKnobAdjusted = in.readInt(); + mTrebleKnobAdjusted = in.readInt(); + mMaxxVolumeToggled = in.readInt(); + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeString(mSource); + dest.writeInt(mDevicesChanged); + dest.writeInt(mEnabledDisabledToggles); + dest.writeInt(mPresetsSelected); + dest.writeInt(mPresetsCreated); + dest.writeInt(mPresetsRemoved); + dest.writeInt(mPresetsRenamed); + dest.writeInt(mBassKnobAdjusted); + dest.writeInt(mVirtualizerKnobAdjusted); + dest.writeInt(mTrebleKnobAdjusted); + dest.writeInt(mMaxxVolumeToggled); + } + + private static class State { + private String mOutputDevice; + private Preset mPreset; + private String mKnobsOpts; + } +} |