package com.antfortune.freeline.router.schema; import android.text.TextUtils; import android.util.Log; import com.antfortune.freeline.FreelineCore; import com.antfortune.freeline.router.ISchemaAction; import com.antfortune.freeline.server.EmbedHttpServer; import java.io.InputStream; import java.util.HashMap; import java.util.Map; public class CheckSyncSchema implements ISchemaAction { private static final String TAG = "Freeline.CheckSync"; @Override public String getDescription() { return "checkSync"; } @Override public void handle(String method, String path, HashMap<String, String> headers, Map<String, String> queries, InputStream input, EmbedHttpServer.ResponseOutputStream response) throws Exception { long clientSync = Long.parseLong(queries.get("sync")); String uuid = queries.get("uuid"); long apkBuildFlag = FreelineCore.getApkBuildFlag(); long lastSync = FreelineCore.getLastDynamicSyncId() + apkBuildFlag; String devUuid = FreelineCore.getUuid(); Log.i(TAG, "devUuid: " + devUuid); int result = clientSync == lastSync ? 1 : 0; Log.i(TAG, "dev apkflag:" + apkBuildFlag + ", last sync is:" + lastSync + ", current sync is:" + clientSync); if (!TextUtils.isEmpty(uuid) && !uuid.equals(devUuid)) { result = -1; Log.i(TAG, "check uuid failed, skip check sync."); } response.setContentTypeText(); response.write(String.valueOf(result).getBytes("utf-8")); } }