正在查看: xDrip+ v04633772025.07.16 应用的 OneCollectorIngestion.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: xDrip+ v04633772025.07.16 应用的 OneCollectorIngestion.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.microsoft.appcenter.ingestion;
import com.microsoft.appcenter.Constants;
import com.microsoft.appcenter.http.HttpClient;
import com.microsoft.appcenter.http.HttpUtils;
import com.microsoft.appcenter.http.ServiceCall;
import com.microsoft.appcenter.http.ServiceCallback;
import com.microsoft.appcenter.ingestion.models.Log;
import com.microsoft.appcenter.ingestion.models.LogContainer;
import com.microsoft.appcenter.ingestion.models.json.LogSerializer;
import com.microsoft.appcenter.ingestion.models.one.CommonSchemaLog;
import com.microsoft.appcenter.utils.AppCenterLog;
import com.microsoft.appcenter.utils.TicketCache;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.json.JSONException;
import org.json.JSONObject;
public class OneCollectorIngestion extends AbstractAppCenterIngestion {
private final LogSerializer mLogSerializer;
public OneCollectorIngestion(HttpClient httpClient, LogSerializer logSerializer) {
super(httpClient, "https://mobile.events.data.microsoft.com/OneCollector/1.0");
this.mLogSerializer = logSerializer;
}
@Override
public ServiceCall sendAsync(String appSecret, UUID installId, LogContainer logContainer, ServiceCallback serviceCallback) throws IllegalArgumentException {
super.sendAsync(appSecret, installId, logContainer, serviceCallback);
HashMap hashMap = new HashMap();
LinkedHashSet linkedHashSet = new LinkedHashSet();
Iterator<Log> it = logContainer.getLogs().iterator();
while (it.hasNext()) {
linkedHashSet.addAll(it.next().getTransmissionTargetTokens());
}
StringBuilder sb = new StringBuilder();
Iterator it2 = linkedHashSet.iterator();
while (it2.hasNext()) {
sb.append((String) it2.next());
sb.append(",");
}
if (!linkedHashSet.isEmpty()) {
sb.deleteCharAt(sb.length() - 1);
}
hashMap.put("apikey", sb.toString());
JSONObject jSONObject = new JSONObject();
Iterator<Log> it3 = logContainer.getLogs().iterator();
while (it3.hasNext()) {
List<String> ticketKeys = ((CommonSchemaLog) it3.next()).getExt().getProtocol().getTicketKeys();
if (ticketKeys != null) {
for (String str : ticketKeys) {
String ticket = TicketCache.getTicket(str);
if (ticket != null) {
try {
jSONObject.put(str, ticket);
} catch (JSONException e) {
AppCenterLog.error("AppCenter", "Cannot serialize tickets, sending log anonymously", e);
}
}
}
}
}
if (jSONObject.length() > 0) {
hashMap.put("Tickets", jSONObject.toString());
if (Constants.APPLICATION_DEBUGGABLE) {
hashMap.put("Strict", Boolean.TRUE.toString());
}
}
hashMap.put("Content-Type", "application/x-json-stream; charset=utf-8");
hashMap.put("Client-Version", String.format("ACS-Android-Java-no-%s-no", "4.4.5"));
hashMap.put("Upload-Time", String.valueOf(System.currentTimeMillis()));
return getServiceCall(getLogUrl(), "POST", hashMap, new IngestionCallTemplate(this.mLogSerializer, logContainer), serviceCallback);
}
private static class IngestionCallTemplate implements HttpClient.CallTemplate {
private final LogContainer mLogContainer;
private final LogSerializer mLogSerializer;
IngestionCallTemplate(LogSerializer logSerializer, LogContainer logContainer) {
this.mLogSerializer = logSerializer;
this.mLogContainer = logContainer;
}
@Override
public String buildRequestBody() throws JSONException {
StringBuilder sb = new StringBuilder();
Iterator<Log> it = this.mLogContainer.getLogs().iterator();
while (it.hasNext()) {
sb.append(this.mLogSerializer.serializeLog(it.next()));
sb.append('\n');
}
return sb.toString();
}
@Override
public void onBeforeCalling(URL url, Map<String, String> headers) {
if (AppCenterLog.getLogLevel() <= 2) {
AppCenterLog.verbose("AppCenter", "Calling " + url + "...");
HashMap hashMap = new HashMap(headers);
String str = (String) hashMap.get("apikey");
if (str != null) {
hashMap.put("apikey", HttpUtils.hideApiKeys(str));
}
String str2 = (String) hashMap.get("Tickets");
if (str2 != null) {
hashMap.put("Tickets", HttpUtils.hideTickets(str2));
}
AppCenterLog.verbose("AppCenter", "Headers: " + hashMap);
}
}
}
}