VancedMicroG/play-services-core/src/main/protos-java/org/microg/gms/checkin/CheckinRequest.java

1681 lines
51 KiB
Java

// Code generated by Wire protocol buffer compiler, do not edit.
// Source file: protos-repo/checkin.proto
package org.microg.gms.checkin;
import com.squareup.wire.Message;
import com.squareup.wire.ProtoField;
import java.util.Collections;
import java.util.List;
import static com.squareup.wire.Message.Datatype.BOOL;
import static com.squareup.wire.Message.Datatype.FIXED64;
import static com.squareup.wire.Message.Datatype.FLOAT;
import static com.squareup.wire.Message.Datatype.INT32;
import static com.squareup.wire.Message.Datatype.INT64;
import static com.squareup.wire.Message.Datatype.STRING;
import static com.squareup.wire.Message.Label.REPEATED;
import static com.squareup.wire.Message.Label.REQUIRED;
/**
* Sample data, if provided, is fished from a Nexus 7 (2013) / flo running Android 5.0
*/
public final class CheckinRequest extends Message {
public static final String DEFAULT_IMEI = "";
public static final Long DEFAULT_ANDROIDID = 0L;
public static final String DEFAULT_DIGEST = "";
public static final String DEFAULT_DESIREDBUILD = "";
public static final String DEFAULT_LOCALE = "";
public static final Long DEFAULT_LOGGINGID = 0L;
public static final String DEFAULT_MARKETCHECKIN = "";
public static final List<String> DEFAULT_MACADDRESS = Collections.emptyList();
public static final String DEFAULT_MEID = "";
public static final List<String> DEFAULT_ACCOUNTCOOKIE = Collections.emptyList();
public static final String DEFAULT_TIMEZONE = "";
public static final Long DEFAULT_SECURITYTOKEN = 0L;
public static final Integer DEFAULT_VERSION = 0;
public static final List<String> DEFAULT_OTACERT = Collections.emptyList();
public static final String DEFAULT_SERIAL = "";
public static final String DEFAULT_ESN = "";
public static final List<String> DEFAULT_MACADDRESSTYPE = Collections.emptyList();
public static final Integer DEFAULT_FRAGMENT = 0;
public static final String DEFAULT_USERNAME = "";
public static final Integer DEFAULT_USERSERIALNUMBER = 0;
/**
* unused
*/
@ProtoField(tag = 1, type = STRING)
public final String imei;
/**
* Gservices["android_id"] or 0 on first-checkin
*/
@ProtoField(tag = 2, type = INT64)
public final Long androidId;
/**
* Gservices["digest"] or ""
*/
@ProtoField(tag = 3, type = STRING)
public final String digest;
@ProtoField(tag = 4, label = REQUIRED)
public final Checkin checkin;
/**
* unused
*/
@ProtoField(tag = 5, type = STRING)
public final String desiredBuild;
/**
* Locale.toString
*/
@ProtoField(tag = 6, type = STRING)
public final String locale;
/**
* GoogleSettingsContract.Partner["logging_id2"] (choosen randomly on first checkin)
* eg. 12561488293572742346
*/
@ProtoField(tag = 7, type = INT64)
public final Long loggingId;
/**
* unused
*/
@ProtoField(tag = 8, type = STRING)
public final String marketCheckin;
/**
* NetworkInfo.getExtraInfo, WifiInfo.getMacAddress (12 hex-digits)
* eg. d850e6abcdef
*/
@ProtoField(tag = 9, type = STRING, label = REPEATED)
public final List<String> macAddress;
/**
* TelephonyManager.getDeviceId (14 hex-digits), not set on tablets
*/
@ProtoField(tag = 10, type = STRING)
public final String meid;
/**
* "[<email>]" followed by "<authToken>", empty string on first checkin
*/
@ProtoField(tag = 11, type = STRING, label = REPEATED)
public final List<String> accountCookie;
/**
* TimeZone.getId
* eg. GMT
*/
@ProtoField(tag = 12, type = STRING)
public final String timeZone;
/**
* security token as given on first checkin, not set on first checkin
*/
@ProtoField(tag = 13, type = FIXED64)
public final Long securityToken;
/**
* use 3
*/
@ProtoField(tag = 14, type = INT32)
public final Integer version;
/**
* SHA-1 of each in /system/etc/security/otacerts.zip or "--IOException--" or "--no-output--"
* eg. dKXTm1QH9QShGQwBM/4rg6/lCNQ=
*/
@ProtoField(tag = 15, type = STRING, label = REPEATED)
public final List<String> otaCert;
/**
* Build.SERIAL != "unknown"
* eg. 07d90b18
*/
@ProtoField(tag = 16, type = STRING)
public final String serial;
/**
* TelephonyManager.getDeviceId (8 hex-digits), not set on tablets
*/
@ProtoField(tag = 17, type = STRING)
public final String esn;
@ProtoField(tag = 18)
public final DeviceConfig deviceConfiguration;
/**
* "ethernet" or "wifi"
*/
@ProtoField(tag = 19, type = STRING, label = REPEATED)
public final List<String> macAddressType;
/**
* unknown, use 0 on pre- and first-checkin, and 1 for later checkins
* also present on pre-checkin
*/
@ProtoField(tag = 20, type = INT32, label = REQUIRED)
public final Integer fragment;
/**
* unknown
*/
@ProtoField(tag = 21, type = STRING)
public final String userName;
/**
* UserManager.getUserSerialNumber
* eg. 0
*/
@ProtoField(tag = 22, type = INT32)
public final Integer userSerialNumber;
public CheckinRequest(String imei, Long androidId, String digest, Checkin checkin, String desiredBuild, String locale, Long loggingId, String marketCheckin, List<String> macAddress, String meid, List<String> accountCookie, String timeZone, Long securityToken, Integer version, List<String> otaCert, String serial, String esn, DeviceConfig deviceConfiguration, List<String> macAddressType, Integer fragment, String userName, Integer userSerialNumber) {
this.imei = imei;
this.androidId = androidId;
this.digest = digest;
this.checkin = checkin;
this.desiredBuild = desiredBuild;
this.locale = locale;
this.loggingId = loggingId;
this.marketCheckin = marketCheckin;
this.macAddress = immutableCopyOf(macAddress);
this.meid = meid;
this.accountCookie = immutableCopyOf(accountCookie);
this.timeZone = timeZone;
this.securityToken = securityToken;
this.version = version;
this.otaCert = immutableCopyOf(otaCert);
this.serial = serial;
this.esn = esn;
this.deviceConfiguration = deviceConfiguration;
this.macAddressType = immutableCopyOf(macAddressType);
this.fragment = fragment;
this.userName = userName;
this.userSerialNumber = userSerialNumber;
}
private CheckinRequest(Builder builder) {
this(builder.imei, builder.androidId, builder.digest, builder.checkin, builder.desiredBuild, builder.locale, builder.loggingId, builder.marketCheckin, builder.macAddress, builder.meid, builder.accountCookie, builder.timeZone, builder.securityToken, builder.version, builder.otaCert, builder.serial, builder.esn, builder.deviceConfiguration, builder.macAddressType, builder.fragment, builder.userName, builder.userSerialNumber);
setBuilder(builder);
}
@Override
public boolean equals(Object other) {
if (other == this) return true;
if (!(other instanceof CheckinRequest)) return false;
CheckinRequest o = (CheckinRequest) other;
return equals(imei, o.imei)
&& equals(androidId, o.androidId)
&& equals(digest, o.digest)
&& equals(checkin, o.checkin)
&& equals(desiredBuild, o.desiredBuild)
&& equals(locale, o.locale)
&& equals(loggingId, o.loggingId)
&& equals(marketCheckin, o.marketCheckin)
&& equals(macAddress, o.macAddress)
&& equals(meid, o.meid)
&& equals(accountCookie, o.accountCookie)
&& equals(timeZone, o.timeZone)
&& equals(securityToken, o.securityToken)
&& equals(version, o.version)
&& equals(otaCert, o.otaCert)
&& equals(serial, o.serial)
&& equals(esn, o.esn)
&& equals(deviceConfiguration, o.deviceConfiguration)
&& equals(macAddressType, o.macAddressType)
&& equals(fragment, o.fragment)
&& equals(userName, o.userName)
&& equals(userSerialNumber, o.userSerialNumber);
}
@Override
public int hashCode() {
int result = hashCode;
if (result == 0) {
result = imei != null ? imei.hashCode() : 0;
result = result * 37 + (androidId != null ? androidId.hashCode() : 0);
result = result * 37 + (digest != null ? digest.hashCode() : 0);
result = result * 37 + (checkin != null ? checkin.hashCode() : 0);
result = result * 37 + (desiredBuild != null ? desiredBuild.hashCode() : 0);
result = result * 37 + (locale != null ? locale.hashCode() : 0);
result = result * 37 + (loggingId != null ? loggingId.hashCode() : 0);
result = result * 37 + (marketCheckin != null ? marketCheckin.hashCode() : 0);
result = result * 37 + (macAddress != null ? macAddress.hashCode() : 1);
result = result * 37 + (meid != null ? meid.hashCode() : 0);
result = result * 37 + (accountCookie != null ? accountCookie.hashCode() : 1);
result = result * 37 + (timeZone != null ? timeZone.hashCode() : 0);
result = result * 37 + (securityToken != null ? securityToken.hashCode() : 0);
result = result * 37 + (version != null ? version.hashCode() : 0);
result = result * 37 + (otaCert != null ? otaCert.hashCode() : 1);
result = result * 37 + (serial != null ? serial.hashCode() : 0);
result = result * 37 + (esn != null ? esn.hashCode() : 0);
result = result * 37 + (deviceConfiguration != null ? deviceConfiguration.hashCode() : 0);
result = result * 37 + (macAddressType != null ? macAddressType.hashCode() : 1);
result = result * 37 + (fragment != null ? fragment.hashCode() : 0);
result = result * 37 + (userName != null ? userName.hashCode() : 0);
result = result * 37 + (userSerialNumber != null ? userSerialNumber.hashCode() : 0);
hashCode = result;
}
return result;
}
public static final class Builder extends Message.Builder<CheckinRequest> {
public String imei;
public Long androidId;
public String digest;
public Checkin checkin;
public String desiredBuild;
public String locale;
public Long loggingId;
public String marketCheckin;
public List<String> macAddress;
public String meid;
public List<String> accountCookie;
public String timeZone;
public Long securityToken;
public Integer version;
public List<String> otaCert;
public String serial;
public String esn;
public DeviceConfig deviceConfiguration;
public List<String> macAddressType;
public Integer fragment;
public String userName;
public Integer userSerialNumber;
public Builder() {
}
public Builder(CheckinRequest message) {
super(message);
if (message == null) return;
this.imei = message.imei;
this.androidId = message.androidId;
this.digest = message.digest;
this.checkin = message.checkin;
this.desiredBuild = message.desiredBuild;
this.locale = message.locale;
this.loggingId = message.loggingId;
this.marketCheckin = message.marketCheckin;
this.macAddress = copyOf(message.macAddress);
this.meid = message.meid;
this.accountCookie = copyOf(message.accountCookie);
this.timeZone = message.timeZone;
this.securityToken = message.securityToken;
this.version = message.version;
this.otaCert = copyOf(message.otaCert);
this.serial = message.serial;
this.esn = message.esn;
this.deviceConfiguration = message.deviceConfiguration;
this.macAddressType = copyOf(message.macAddressType);
this.fragment = message.fragment;
this.userName = message.userName;
this.userSerialNumber = message.userSerialNumber;
}
/**
* unused
*/
public Builder imei(String imei) {
this.imei = imei;
return this;
}
/**
* Gservices["android_id"] or 0 on first-checkin
*/
public Builder androidId(Long androidId) {
this.androidId = androidId;
return this;
}
/**
* Gservices["digest"] or ""
*/
public Builder digest(String digest) {
this.digest = digest;
return this;
}
public Builder checkin(Checkin checkin) {
this.checkin = checkin;
return this;
}
/**
* unused
*/
public Builder desiredBuild(String desiredBuild) {
this.desiredBuild = desiredBuild;
return this;
}
/**
* Locale.toString
*/
public Builder locale(String locale) {
this.locale = locale;
return this;
}
/**
* GoogleSettingsContract.Partner["logging_id2"] (choosen randomly on first checkin)
* eg. 12561488293572742346
*/
public Builder loggingId(Long loggingId) {
this.loggingId = loggingId;
return this;
}
/**
* unused
*/
public Builder marketCheckin(String marketCheckin) {
this.marketCheckin = marketCheckin;
return this;
}
/**
* NetworkInfo.getExtraInfo, WifiInfo.getMacAddress (12 hex-digits)
* eg. d850e6abcdef
*/
public Builder macAddress(List<String> macAddress) {
this.macAddress = checkForNulls(macAddress);
return this;
}
/**
* TelephonyManager.getDeviceId (14 hex-digits), not set on tablets
*/
public Builder meid(String meid) {
this.meid = meid;
return this;
}
/**
* "[<email>]" followed by "<authToken>", empty string on first checkin
*/
public Builder accountCookie(List<String> accountCookie) {
this.accountCookie = checkForNulls(accountCookie);
return this;
}
/**
* TimeZone.getId
* eg. GMT
*/
public Builder timeZone(String timeZone) {
this.timeZone = timeZone;
return this;
}
/**
* security token as given on first checkin, not set on first checkin
*/
public Builder securityToken(Long securityToken) {
this.securityToken = securityToken;
return this;
}
/**
* use 3
*/
public Builder version(Integer version) {
this.version = version;
return this;
}
/**
* SHA-1 of each in /system/etc/security/otacerts.zip or "--IOException--" or "--no-output--"
* eg. dKXTm1QH9QShGQwBM/4rg6/lCNQ=
*/
public Builder otaCert(List<String> otaCert) {
this.otaCert = checkForNulls(otaCert);
return this;
}
/**
* Build.SERIAL != "unknown"
* eg. 07d90b18
*/
public Builder serial(String serial) {
this.serial = serial;
return this;
}
/**
* TelephonyManager.getDeviceId (8 hex-digits), not set on tablets
*/
public Builder esn(String esn) {
this.esn = esn;
return this;
}
public Builder deviceConfiguration(DeviceConfig deviceConfiguration) {
this.deviceConfiguration = deviceConfiguration;
return this;
}
/**
* "ethernet" or "wifi"
*/
public Builder macAddressType(List<String> macAddressType) {
this.macAddressType = checkForNulls(macAddressType);
return this;
}
/**
* unknown, use 0 on pre- and first-checkin, and 1 for later checkins
* also present on pre-checkin
*/
public Builder fragment(Integer fragment) {
this.fragment = fragment;
return this;
}
/**
* unknown
*/
public Builder userName(String userName) {
this.userName = userName;
return this;
}
/**
* UserManager.getUserSerialNumber
* eg. 0
*/
public Builder userSerialNumber(Integer userSerialNumber) {
this.userSerialNumber = userSerialNumber;
return this;
}
@Override
public CheckinRequest build() {
checkRequiredFields();
return new CheckinRequest(this);
}
}
public static final class Checkin extends Message {
public static final Long DEFAULT_LASTCHECKINMS = 0L;
public static final List<Checkin.Event> DEFAULT_EVENT = Collections.emptyList();
public static final List<Checkin.Statistic> DEFAULT_STAT = Collections.emptyList();
public static final List<String> DEFAULT_REQUESTEDGROUP = Collections.emptyList();
public static final String DEFAULT_CELLOPERATOR = "";
public static final String DEFAULT_SIMOPERATOR = "";
public static final String DEFAULT_ROAMING = "";
public static final Integer DEFAULT_USERNUMBER = 0;
/**
* empty Build on pre-checkin
*/
@ProtoField(tag = 1, label = REQUIRED)
public final Checkin.Build build;
/**
* last checkin ms or 0 if first checkin
* eg. 0
*/
@ProtoField(tag = 2, type = INT64)
public final Long lastCheckinMs;
/**
* eg. ("event_log_start",~,1424612602652) on first checkin
*/
@ProtoField(tag = 3, label = REPEATED, messageType = Checkin.Event.class)
public final List<Checkin.Event> event;
/**
* unknown, n/a on first checkin
*/
@ProtoField(tag = 4, label = REPEATED, messageType = Checkin.Statistic.class)
public final List<Checkin.Statistic> stat;
/**
* unused
*/
@ProtoField(tag = 5, type = STRING, label = REPEATED)
public final List<String> requestedGroup;
/**
* TelephonyManager.getNetworkOperator != null|empty
*/
@ProtoField(tag = 6, type = STRING)
public final String cellOperator;
/**
* TelephonyManager.getSimOperator != null|empty
*/
@ProtoField(tag = 7, type = STRING)
public final String simOperator;
/**
* "WIFI::" | ("mobile" | "notmobile" | "unknown") + "-" + ("roaming" | "notroaming" | "unknown")
*/
@ProtoField(tag = 8, type = STRING)
public final String roaming;
/**
* UserHandle.myUserId
* eg. 0
*/
@ProtoField(tag = 9, type = INT32)
public final Integer userNumber;
public Checkin(Checkin.Build build, Long lastCheckinMs, List<Checkin.Event> event, List<Checkin.Statistic> stat, List<String> requestedGroup, String cellOperator, String simOperator, String roaming, Integer userNumber) {
this.build = build;
this.lastCheckinMs = lastCheckinMs;
this.event = immutableCopyOf(event);
this.stat = immutableCopyOf(stat);
this.requestedGroup = immutableCopyOf(requestedGroup);
this.cellOperator = cellOperator;
this.simOperator = simOperator;
this.roaming = roaming;
this.userNumber = userNumber;
}
private Checkin(Builder builder) {
this(builder.build, builder.lastCheckinMs, builder.event, builder.stat, builder.requestedGroup, builder.cellOperator, builder.simOperator, builder.roaming, builder.userNumber);
setBuilder(builder);
}
@Override
public boolean equals(Object other) {
if (other == this) return true;
if (!(other instanceof Checkin)) return false;
Checkin o = (Checkin) other;
return equals(build, o.build)
&& equals(lastCheckinMs, o.lastCheckinMs)
&& equals(event, o.event)
&& equals(stat, o.stat)
&& equals(requestedGroup, o.requestedGroup)
&& equals(cellOperator, o.cellOperator)
&& equals(simOperator, o.simOperator)
&& equals(roaming, o.roaming)
&& equals(userNumber, o.userNumber);
}
@Override
public int hashCode() {
int result = hashCode;
if (result == 0) {
result = build != null ? build.hashCode() : 0;
result = result * 37 + (lastCheckinMs != null ? lastCheckinMs.hashCode() : 0);
result = result * 37 + (event != null ? event.hashCode() : 1);
result = result * 37 + (stat != null ? stat.hashCode() : 1);
result = result * 37 + (requestedGroup != null ? requestedGroup.hashCode() : 1);
result = result * 37 + (cellOperator != null ? cellOperator.hashCode() : 0);
result = result * 37 + (simOperator != null ? simOperator.hashCode() : 0);
result = result * 37 + (roaming != null ? roaming.hashCode() : 0);
result = result * 37 + (userNumber != null ? userNumber.hashCode() : 0);
hashCode = result;
}
return result;
}
public static final class Builder extends Message.Builder<Checkin> {
public Checkin.Build build;
public Long lastCheckinMs;
public List<Checkin.Event> event;
public List<Checkin.Statistic> stat;
public List<String> requestedGroup;
public String cellOperator;
public String simOperator;
public String roaming;
public Integer userNumber;
public Builder() {
}
public Builder(Checkin message) {
super(message);
if (message == null) return;
this.build = message.build;
this.lastCheckinMs = message.lastCheckinMs;
this.event = copyOf(message.event);
this.stat = copyOf(message.stat);
this.requestedGroup = copyOf(message.requestedGroup);
this.cellOperator = message.cellOperator;
this.simOperator = message.simOperator;
this.roaming = message.roaming;
this.userNumber = message.userNumber;
}
/**
* empty Build on pre-checkin
*/
public Builder build(Checkin.Build build) {
this.build = build;
return this;
}
/**
* last checkin ms or 0 if first checkin
* eg. 0
*/
public Builder lastCheckinMs(Long lastCheckinMs) {
this.lastCheckinMs = lastCheckinMs;
return this;
}
/**
* eg. ("event_log_start",~,1424612602652) on first checkin
*/
public Builder event(List<Checkin.Event> event) {
this.event = checkForNulls(event);
return this;
}
/**
* unknown, n/a on first checkin
*/
public Builder stat(List<Checkin.Statistic> stat) {
this.stat = checkForNulls(stat);
return this;
}
/**
* unused
*/
public Builder requestedGroup(List<String> requestedGroup) {
this.requestedGroup = checkForNulls(requestedGroup);
return this;
}
/**
* TelephonyManager.getNetworkOperator != null|empty
*/
public Builder cellOperator(String cellOperator) {
this.cellOperator = cellOperator;
return this;
}
/**
* TelephonyManager.getSimOperator != null|empty
*/
public Builder simOperator(String simOperator) {
this.simOperator = simOperator;
return this;
}
/**
* "WIFI::" | ("mobile" | "notmobile" | "unknown") + "-" + ("roaming" | "notroaming" | "unknown")
*/
public Builder roaming(String roaming) {
this.roaming = roaming;
return this;
}
/**
* UserHandle.myUserId
* eg. 0
*/
public Builder userNumber(Integer userNumber) {
this.userNumber = userNumber;
return this;
}
@Override
public Checkin build() {
checkRequiredFields();
return new Checkin(this);
}
}
public static final class Build extends Message {
public static final String DEFAULT_FINGERPRINT = "";
public static final String DEFAULT_HARDWARE = "";
public static final String DEFAULT_BRAND = "";
public static final String DEFAULT_RADIO = "";
public static final String DEFAULT_BOOTLOADER = "";
public static final String DEFAULT_CLIENTID = "";
public static final Long DEFAULT_TIME = 0L;
public static final Integer DEFAULT_PACKAGEVERSIONCODE = 0;
public static final String DEFAULT_DEVICE = "";
public static final Integer DEFAULT_SDKVERSION = 0;
public static final String DEFAULT_MODEL = "";
public static final String DEFAULT_MANUFACTURER = "";
public static final String DEFAULT_PRODUCT = "";
public static final Boolean DEFAULT_OTAINSTALLED = false;
/**
* Build.FINGERPRINT
* eg. google/razor/flo:5.0.1/LRX22C/1602158:user/release-keys
*/
@ProtoField(tag = 1, type = STRING)
public final String fingerprint;
/**
* Build.HARDWARE
* eg. flo
*/
@ProtoField(tag = 2, type = STRING)
public final String hardware;
/**
* Build.BRAND
* eg. google
*/
@ProtoField(tag = 3, type = STRING)
public final String brand;
/**
* Build.getRadioVersion()
*/
@ProtoField(tag = 4, type = STRING)
public final String radio;
/**
* Build.BOOTLOADER
* eg. FLO-04.04
*/
@ProtoField(tag = 5, type = STRING)
public final String bootloader;
/**
* GoogleSettingsContract.Partner["client_id"]
* eg. android-google
*/
@ProtoField(tag = 6, type = STRING)
public final String clientId;
/**
* Build.TIME / 1000L
* eg. 1416533192
*/
@ProtoField(tag = 7, type = INT64)
public final Long time;
/**
* PackageInfo.versionCode
* eg. 6188736
*/
@ProtoField(tag = 8, type = INT32)
public final Integer packageVersionCode;
/**
* Build.DEVICE
* eg. flo
*/
@ProtoField(tag = 9, type = STRING)
public final String device;
/**
* Build.VERSION.SDK_INT
* eg. 21
*/
@ProtoField(tag = 10, type = INT32)
public final Integer sdkVersion;
/**
* Build.MODEL
* eg. Nexus 7
*/
@ProtoField(tag = 11, type = STRING)
public final String model;
/**
* Build.MANUFACTURER
* eg. asus
*/
@ProtoField(tag = 12, type = STRING)
public final String manufacturer;
/**
* Build.PRODUCT
* eg. razor
*/
@ProtoField(tag = 13, type = STRING)
public final String product;
/**
* fileExists("/system/recovery-from-boot.p")
* eg. false
*/
@ProtoField(tag = 14, type = BOOL)
public final Boolean otaInstalled;
public Build(String fingerprint, String hardware, String brand, String radio, String bootloader, String clientId, Long time, Integer packageVersionCode, String device, Integer sdkVersion, String model, String manufacturer, String product, Boolean otaInstalled) {
this.fingerprint = fingerprint;
this.hardware = hardware;
this.brand = brand;
this.radio = radio;
this.bootloader = bootloader;
this.clientId = clientId;
this.time = time;
this.packageVersionCode = packageVersionCode;
this.device = device;
this.sdkVersion = sdkVersion;
this.model = model;
this.manufacturer = manufacturer;
this.product = product;
this.otaInstalled = otaInstalled;
}
private Build(Builder builder) {
this(builder.fingerprint, builder.hardware, builder.brand, builder.radio, builder.bootloader, builder.clientId, builder.time, builder.packageVersionCode, builder.device, builder.sdkVersion, builder.model, builder.manufacturer, builder.product, builder.otaInstalled);
setBuilder(builder);
}
@Override
public boolean equals(Object other) {
if (other == this) return true;
if (!(other instanceof Build)) return false;
Build o = (Build) other;
return equals(fingerprint, o.fingerprint)
&& equals(hardware, o.hardware)
&& equals(brand, o.brand)
&& equals(radio, o.radio)
&& equals(bootloader, o.bootloader)
&& equals(clientId, o.clientId)
&& equals(time, o.time)
&& equals(packageVersionCode, o.packageVersionCode)
&& equals(device, o.device)
&& equals(sdkVersion, o.sdkVersion)
&& equals(model, o.model)
&& equals(manufacturer, o.manufacturer)
&& equals(product, o.product)
&& equals(otaInstalled, o.otaInstalled);
}
@Override
public int hashCode() {
int result = hashCode;
if (result == 0) {
result = fingerprint != null ? fingerprint.hashCode() : 0;
result = result * 37 + (hardware != null ? hardware.hashCode() : 0);
result = result * 37 + (brand != null ? brand.hashCode() : 0);
result = result * 37 + (radio != null ? radio.hashCode() : 0);
result = result * 37 + (bootloader != null ? bootloader.hashCode() : 0);
result = result * 37 + (clientId != null ? clientId.hashCode() : 0);
result = result * 37 + (time != null ? time.hashCode() : 0);
result = result * 37 + (packageVersionCode != null ? packageVersionCode.hashCode() : 0);
result = result * 37 + (device != null ? device.hashCode() : 0);
result = result * 37 + (sdkVersion != null ? sdkVersion.hashCode() : 0);
result = result * 37 + (model != null ? model.hashCode() : 0);
result = result * 37 + (manufacturer != null ? manufacturer.hashCode() : 0);
result = result * 37 + (product != null ? product.hashCode() : 0);
result = result * 37 + (otaInstalled != null ? otaInstalled.hashCode() : 0);
hashCode = result;
}
return result;
}
public static final class Builder extends Message.Builder<Build> {
public String fingerprint;
public String hardware;
public String brand;
public String radio;
public String bootloader;
public String clientId;
public Long time;
public Integer packageVersionCode;
public String device;
public Integer sdkVersion;
public String model;
public String manufacturer;
public String product;
public Boolean otaInstalled;
public Builder() {
}
public Builder(Build message) {
super(message);
if (message == null) return;
this.fingerprint = message.fingerprint;
this.hardware = message.hardware;
this.brand = message.brand;
this.radio = message.radio;
this.bootloader = message.bootloader;
this.clientId = message.clientId;
this.time = message.time;
this.packageVersionCode = message.packageVersionCode;
this.device = message.device;
this.sdkVersion = message.sdkVersion;
this.model = message.model;
this.manufacturer = message.manufacturer;
this.product = message.product;
this.otaInstalled = message.otaInstalled;
}
/**
* Build.FINGERPRINT
* eg. google/razor/flo:5.0.1/LRX22C/1602158:user/release-keys
*/
public Builder fingerprint(String fingerprint) {
this.fingerprint = fingerprint;
return this;
}
/**
* Build.HARDWARE
* eg. flo
*/
public Builder hardware(String hardware) {
this.hardware = hardware;
return this;
}
/**
* Build.BRAND
* eg. google
*/
public Builder brand(String brand) {
this.brand = brand;
return this;
}
/**
* Build.getRadioVersion()
*/
public Builder radio(String radio) {
this.radio = radio;
return this;
}
/**
* Build.BOOTLOADER
* eg. FLO-04.04
*/
public Builder bootloader(String bootloader) {
this.bootloader = bootloader;
return this;
}
/**
* GoogleSettingsContract.Partner["client_id"]
* eg. android-google
*/
public Builder clientId(String clientId) {
this.clientId = clientId;
return this;
}
/**
* Build.TIME / 1000L
* eg. 1416533192
*/
public Builder time(Long time) {
this.time = time;
return this;
}
/**
* PackageInfo.versionCode
* eg. 6188736
*/
public Builder packageVersionCode(Integer packageVersionCode) {
this.packageVersionCode = packageVersionCode;
return this;
}
/**
* Build.DEVICE
* eg. flo
*/
public Builder device(String device) {
this.device = device;
return this;
}
/**
* Build.VERSION.SDK_INT
* eg. 21
*/
public Builder sdkVersion(Integer sdkVersion) {
this.sdkVersion = sdkVersion;
return this;
}
/**
* Build.MODEL
* eg. Nexus 7
*/
public Builder model(String model) {
this.model = model;
return this;
}
/**
* Build.MANUFACTURER
* eg. asus
*/
public Builder manufacturer(String manufacturer) {
this.manufacturer = manufacturer;
return this;
}
/**
* Build.PRODUCT
* eg. razor
*/
public Builder product(String product) {
this.product = product;
return this;
}
/**
* fileExists("/system/recovery-from-boot.p")
* eg. false
*/
public Builder otaInstalled(Boolean otaInstalled) {
this.otaInstalled = otaInstalled;
return this;
}
@Override
public Build build() {
return new Build(this);
}
}
}
public static final class Event extends Message {
public static final String DEFAULT_TAG = "";
public static final String DEFAULT_VALUE = "";
public static final Long DEFAULT_TIMEMS = 0L;
@ProtoField(tag = 1, type = STRING)
public final String tag;
@ProtoField(tag = 2, type = STRING)
public final String value;
@ProtoField(tag = 3, type = INT64)
public final Long timeMs;
public Event(String tag, String value, Long timeMs) {
this.tag = tag;
this.value = value;
this.timeMs = timeMs;
}
private Event(Builder builder) {
this(builder.tag, builder.value, builder.timeMs);
setBuilder(builder);
}
@Override
public boolean equals(Object other) {
if (other == this) return true;
if (!(other instanceof Event)) return false;
Event o = (Event) other;
return equals(tag, o.tag)
&& equals(value, o.value)
&& equals(timeMs, o.timeMs);
}
@Override
public int hashCode() {
int result = hashCode;
if (result == 0) {
result = tag != null ? tag.hashCode() : 0;
result = result * 37 + (value != null ? value.hashCode() : 0);
result = result * 37 + (timeMs != null ? timeMs.hashCode() : 0);
hashCode = result;
}
return result;
}
public static final class Builder extends Message.Builder<Event> {
public String tag;
public String value;
public Long timeMs;
public Builder() {
}
public Builder(Event message) {
super(message);
if (message == null) return;
this.tag = message.tag;
this.value = message.value;
this.timeMs = message.timeMs;
}
public Builder tag(String tag) {
this.tag = tag;
return this;
}
public Builder value(String value) {
this.value = value;
return this;
}
public Builder timeMs(Long timeMs) {
this.timeMs = timeMs;
return this;
}
@Override
public Event build() {
return new Event(this);
}
}
}
public static final class Statistic extends Message {
public static final String DEFAULT_TAG = "";
public static final Integer DEFAULT_COUNT = 0;
public static final Float DEFAULT_SUM = 0F;
@ProtoField(tag = 1, type = STRING, label = REQUIRED)
public final String tag;
@ProtoField(tag = 2, type = INT32)
public final Integer count;
@ProtoField(tag = 3, type = FLOAT)
public final Float sum;
public Statistic(String tag, Integer count, Float sum) {
this.tag = tag;
this.count = count;
this.sum = sum;
}
private Statistic(Builder builder) {
this(builder.tag, builder.count, builder.sum);
setBuilder(builder);
}
@Override
public boolean equals(Object other) {
if (other == this) return true;
if (!(other instanceof Statistic)) return false;
Statistic o = (Statistic) other;
return equals(tag, o.tag)
&& equals(count, o.count)
&& equals(sum, o.sum);
}
@Override
public int hashCode() {
int result = hashCode;
if (result == 0) {
result = tag != null ? tag.hashCode() : 0;
result = result * 37 + (count != null ? count.hashCode() : 0);
result = result * 37 + (sum != null ? sum.hashCode() : 0);
hashCode = result;
}
return result;
}
public static final class Builder extends Message.Builder<Statistic> {
public String tag;
public Integer count;
public Float sum;
public Builder() {
}
public Builder(Statistic message) {
super(message);
if (message == null) return;
this.tag = message.tag;
this.count = message.count;
this.sum = message.sum;
}
public Builder tag(String tag) {
this.tag = tag;
return this;
}
public Builder count(Integer count) {
this.count = count;
return this;
}
public Builder sum(Float sum) {
this.sum = sum;
return this;
}
@Override
public Statistic build() {
checkRequiredFields();
return new Statistic(this);
}
}
}
}
public static final class DeviceConfig extends Message {
public static final Integer DEFAULT_TOUCHSCREEN = 0;
public static final Integer DEFAULT_KEYBOARDTYPE = 0;
public static final Integer DEFAULT_NAVIGATION = 0;
public static final Integer DEFAULT_SCREENLAYOUT = 0;
public static final Boolean DEFAULT_HASHARDKEYBOARD = false;
public static final Boolean DEFAULT_HASFIVEWAYNAVIGATION = false;
public static final Integer DEFAULT_DENSITYDPI = 0;
public static final Integer DEFAULT_GLESVERSION = 0;
public static final List<String> DEFAULT_SHAREDLIBRARY = Collections.emptyList();
public static final List<String> DEFAULT_AVAILABLEFEATURE = Collections.emptyList();
public static final List<String> DEFAULT_NATIVEPLATFORM = Collections.emptyList();
public static final Integer DEFAULT_WIDTHPIXELS = 0;
public static final Integer DEFAULT_HEIGHTPIXELS = 0;
public static final List<String> DEFAULT_LOCALE = Collections.emptyList();
public static final List<String> DEFAULT_GLEXTENSION = Collections.emptyList();
public static final Integer DEFAULT_DEVICECLASS = 0;
public static final Integer DEFAULT_MAXAPKDOWNLOADSIZEMB = 0;
/**
* ConfigurationInfo.reqTouchScreen
* eg. 3
*/
@ProtoField(tag = 1, type = INT32)
public final Integer touchScreen;
/**
* ConfigurationInfo.reqKeyboardType
* eg. 1
*/
@ProtoField(tag = 2, type = INT32)
public final Integer keyboardType;
/**
* ConfigurationInfo.reqNavigation
* eg. 1
*/
@ProtoField(tag = 3, type = INT32)
public final Integer navigation;
/**
* ConfigurationInfo.screenLayout
* eg. 3
*/
@ProtoField(tag = 4, type = INT32)
public final Integer screenLayout;
/**
* ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD
* eg. 0
*/
@ProtoField(tag = 5, type = BOOL)
public final Boolean hasHardKeyboard;
/**
* ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV
* eg. 0
*/
@ProtoField(tag = 6, type = BOOL)
public final Boolean hasFiveWayNavigation;
/**
* DisplayMetrics.densityDpi
* eg. 320
*/
@ProtoField(tag = 7, type = INT32)
public final Integer densityDpi;
/**
* ConfigurationInfo.reqGlEsVersion
* eg. 196608
*/
@ProtoField(tag = 8, type = INT32)
public final Integer glEsVersion;
/**
* PackageManager.getSystemSharedLibraryNames
* eg. "android.test.runner", "com.android.future.usb.accessory", "com.android.location.provider",
* "com.android.media.remotedisplay", "com.android.mediadrm.signer", "com.google.android.maps",
* "com.google.android.media.effects", "com.google.widevine.software.drm", "javax.obex"
*/
@ProtoField(tag = 9, type = STRING, label = REPEATED)
public final List<String> sharedLibrary;
/**
* PackageManager.getSystemAvailableFeatures
* eg. android.hardware.[...]
*/
@ProtoField(tag = 10, type = STRING, label = REPEATED)
public final List<String> availableFeature;
/**
* Build.CPU_ABI and Build.CPU_ABI2 != "unknown"
* eg. "armeabi-v7a", "armeabi"
*/
@ProtoField(tag = 11, type = STRING, label = REPEATED)
public final List<String> nativePlatform;
/**
* DisplayMetrics.widthPixels
* eg. 1200
*/
@ProtoField(tag = 12, type = INT32)
public final Integer widthPixels;
/**
* DisplayMetrics.heightPixels
* eg. 1824
*/
@ProtoField(tag = 13, type = INT32)
public final Integer heightPixels;
/**
* Context.getAssets.getLocales
* eg. [...], "en-US", [...]
*/
@ProtoField(tag = 14, type = STRING, label = REPEATED)
public final List<String> locale;
/**
* GLES10.glGetString(GLES10.GL_EXTENSIONS)
* eg. "GL_AMD_compressed_ATC_texture", [...]
*/
@ProtoField(tag = 15, type = STRING, label = REPEATED)
public final List<String> glExtension;
/**
* unused
*/
@ProtoField(tag = 16, type = INT32)
public final Integer deviceClass;
/**
* unused
*/
@ProtoField(tag = 17, type = INT32)
public final Integer maxApkDownloadSizeMb;
public DeviceConfig(Integer touchScreen, Integer keyboardType, Integer navigation, Integer screenLayout, Boolean hasHardKeyboard, Boolean hasFiveWayNavigation, Integer densityDpi, Integer glEsVersion, List<String> sharedLibrary, List<String> availableFeature, List<String> nativePlatform, Integer widthPixels, Integer heightPixels, List<String> locale, List<String> glExtension, Integer deviceClass, Integer maxApkDownloadSizeMb) {
this.touchScreen = touchScreen;
this.keyboardType = keyboardType;
this.navigation = navigation;
this.screenLayout = screenLayout;
this.hasHardKeyboard = hasHardKeyboard;
this.hasFiveWayNavigation = hasFiveWayNavigation;
this.densityDpi = densityDpi;
this.glEsVersion = glEsVersion;
this.sharedLibrary = immutableCopyOf(sharedLibrary);
this.availableFeature = immutableCopyOf(availableFeature);
this.nativePlatform = immutableCopyOf(nativePlatform);
this.widthPixels = widthPixels;
this.heightPixels = heightPixels;
this.locale = immutableCopyOf(locale);
this.glExtension = immutableCopyOf(glExtension);
this.deviceClass = deviceClass;
this.maxApkDownloadSizeMb = maxApkDownloadSizeMb;
}
private DeviceConfig(Builder builder) {
this(builder.touchScreen, builder.keyboardType, builder.navigation, builder.screenLayout, builder.hasHardKeyboard, builder.hasFiveWayNavigation, builder.densityDpi, builder.glEsVersion, builder.sharedLibrary, builder.availableFeature, builder.nativePlatform, builder.widthPixels, builder.heightPixels, builder.locale, builder.glExtension, builder.deviceClass, builder.maxApkDownloadSizeMb);
setBuilder(builder);
}
@Override
public boolean equals(Object other) {
if (other == this) return true;
if (!(other instanceof DeviceConfig)) return false;
DeviceConfig o = (DeviceConfig) other;
return equals(touchScreen, o.touchScreen)
&& equals(keyboardType, o.keyboardType)
&& equals(navigation, o.navigation)
&& equals(screenLayout, o.screenLayout)
&& equals(hasHardKeyboard, o.hasHardKeyboard)
&& equals(hasFiveWayNavigation, o.hasFiveWayNavigation)
&& equals(densityDpi, o.densityDpi)
&& equals(glEsVersion, o.glEsVersion)
&& equals(sharedLibrary, o.sharedLibrary)
&& equals(availableFeature, o.availableFeature)
&& equals(nativePlatform, o.nativePlatform)
&& equals(widthPixels, o.widthPixels)
&& equals(heightPixels, o.heightPixels)
&& equals(locale, o.locale)
&& equals(glExtension, o.glExtension)
&& equals(deviceClass, o.deviceClass)
&& equals(maxApkDownloadSizeMb, o.maxApkDownloadSizeMb);
}
@Override
public int hashCode() {
int result = hashCode;
if (result == 0) {
result = touchScreen != null ? touchScreen.hashCode() : 0;
result = result * 37 + (keyboardType != null ? keyboardType.hashCode() : 0);
result = result * 37 + (navigation != null ? navigation.hashCode() : 0);
result = result * 37 + (screenLayout != null ? screenLayout.hashCode() : 0);
result = result * 37 + (hasHardKeyboard != null ? hasHardKeyboard.hashCode() : 0);
result = result * 37 + (hasFiveWayNavigation != null ? hasFiveWayNavigation.hashCode() : 0);
result = result * 37 + (densityDpi != null ? densityDpi.hashCode() : 0);
result = result * 37 + (glEsVersion != null ? glEsVersion.hashCode() : 0);
result = result * 37 + (sharedLibrary != null ? sharedLibrary.hashCode() : 1);
result = result * 37 + (availableFeature != null ? availableFeature.hashCode() : 1);
result = result * 37 + (nativePlatform != null ? nativePlatform.hashCode() : 1);
result = result * 37 + (widthPixels != null ? widthPixels.hashCode() : 0);
result = result * 37 + (heightPixels != null ? heightPixels.hashCode() : 0);
result = result * 37 + (locale != null ? locale.hashCode() : 1);
result = result * 37 + (glExtension != null ? glExtension.hashCode() : 1);
result = result * 37 + (deviceClass != null ? deviceClass.hashCode() : 0);
result = result * 37 + (maxApkDownloadSizeMb != null ? maxApkDownloadSizeMb.hashCode() : 0);
hashCode = result;
}
return result;
}
public static final class Builder extends Message.Builder<DeviceConfig> {
public Integer touchScreen;
public Integer keyboardType;
public Integer navigation;
public Integer screenLayout;
public Boolean hasHardKeyboard;
public Boolean hasFiveWayNavigation;
public Integer densityDpi;
public Integer glEsVersion;
public List<String> sharedLibrary;
public List<String> availableFeature;
public List<String> nativePlatform;
public Integer widthPixels;
public Integer heightPixels;
public List<String> locale;
public List<String> glExtension;
public Integer deviceClass;
public Integer maxApkDownloadSizeMb;
public Builder() {
}
public Builder(DeviceConfig message) {
super(message);
if (message == null) return;
this.touchScreen = message.touchScreen;
this.keyboardType = message.keyboardType;
this.navigation = message.navigation;
this.screenLayout = message.screenLayout;
this.hasHardKeyboard = message.hasHardKeyboard;
this.hasFiveWayNavigation = message.hasFiveWayNavigation;
this.densityDpi = message.densityDpi;
this.glEsVersion = message.glEsVersion;
this.sharedLibrary = copyOf(message.sharedLibrary);
this.availableFeature = copyOf(message.availableFeature);
this.nativePlatform = copyOf(message.nativePlatform);
this.widthPixels = message.widthPixels;
this.heightPixels = message.heightPixels;
this.locale = copyOf(message.locale);
this.glExtension = copyOf(message.glExtension);
this.deviceClass = message.deviceClass;
this.maxApkDownloadSizeMb = message.maxApkDownloadSizeMb;
}
/**
* ConfigurationInfo.reqTouchScreen
* eg. 3
*/
public Builder touchScreen(Integer touchScreen) {
this.touchScreen = touchScreen;
return this;
}
/**
* ConfigurationInfo.reqKeyboardType
* eg. 1
*/
public Builder keyboardType(Integer keyboardType) {
this.keyboardType = keyboardType;
return this;
}
/**
* ConfigurationInfo.reqNavigation
* eg. 1
*/
public Builder navigation(Integer navigation) {
this.navigation = navigation;
return this;
}
/**
* ConfigurationInfo.screenLayout
* eg. 3
*/
public Builder screenLayout(Integer screenLayout) {
this.screenLayout = screenLayout;
return this;
}
/**
* ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_HARD_KEYBOARD
* eg. 0
*/
public Builder hasHardKeyboard(Boolean hasHardKeyboard) {
this.hasHardKeyboard = hasHardKeyboard;
return this;
}
/**
* ConfigurationInfo.reqInputFeatures & ConfigurationInfo.INPUT_FEATURE_FIVE_WAY_NAV
* eg. 0
*/
public Builder hasFiveWayNavigation(Boolean hasFiveWayNavigation) {
this.hasFiveWayNavigation = hasFiveWayNavigation;
return this;
}
/**
* DisplayMetrics.densityDpi
* eg. 320
*/
public Builder densityDpi(Integer densityDpi) {
this.densityDpi = densityDpi;
return this;
}
/**
* ConfigurationInfo.reqGlEsVersion
* eg. 196608
*/
public Builder glEsVersion(Integer glEsVersion) {
this.glEsVersion = glEsVersion;
return this;
}
/**
* PackageManager.getSystemSharedLibraryNames
* eg. "android.test.runner", "com.android.future.usb.accessory", "com.android.location.provider",
* "com.android.media.remotedisplay", "com.android.mediadrm.signer", "com.google.android.maps",
* "com.google.android.media.effects", "com.google.widevine.software.drm", "javax.obex"
*/
public Builder sharedLibrary(List<String> sharedLibrary) {
this.sharedLibrary = checkForNulls(sharedLibrary);
return this;
}
/**
* PackageManager.getSystemAvailableFeatures
* eg. android.hardware.[...]
*/
public Builder availableFeature(List<String> availableFeature) {
this.availableFeature = checkForNulls(availableFeature);
return this;
}
/**
* Build.CPU_ABI and Build.CPU_ABI2 != "unknown"
* eg. "armeabi-v7a", "armeabi"
*/
public Builder nativePlatform(List<String> nativePlatform) {
this.nativePlatform = checkForNulls(nativePlatform);
return this;
}
/**
* DisplayMetrics.widthPixels
* eg. 1200
*/
public Builder widthPixels(Integer widthPixels) {
this.widthPixels = widthPixels;
return this;
}
/**
* DisplayMetrics.heightPixels
* eg. 1824
*/
public Builder heightPixels(Integer heightPixels) {
this.heightPixels = heightPixels;
return this;
}
/**
* Context.getAssets.getLocales
* eg. [...], "en-US", [...]
*/
public Builder locale(List<String> locale) {
this.locale = checkForNulls(locale);
return this;
}
/**
* GLES10.glGetString(GLES10.GL_EXTENSIONS)
* eg. "GL_AMD_compressed_ATC_texture", [...]
*/
public Builder glExtension(List<String> glExtension) {
this.glExtension = checkForNulls(glExtension);
return this;
}
/**
* unused
*/
public Builder deviceClass(Integer deviceClass) {
this.deviceClass = deviceClass;
return this;
}
/**
* unused
*/
public Builder maxApkDownloadSizeMb(Integer maxApkDownloadSizeMb) {
this.maxApkDownloadSizeMb = maxApkDownloadSizeMb;
return this;
}
@Override
public DeviceConfig build() {
return new DeviceConfig(this);
}
}
}
}