package org.altbeacon.beacon.distance; import android.content.Context; import android.content.pm.PackageInfo; import android.os.AsyncTask; import android.os.Build; import android.provider.Settings; import android.util.Log; import org.altbeacon.beacon.BuildConfig; import org.json.JSONObject; /** * Created by dyoung on 9/12/14. */ public class ModelSpecificDistanceUpdater extends AsyncTask<Void, Void, Void> { private static final String TAG = "ModelSpecificDistanceUpdater"; private Exception exception = null; private String urlString = null; private String response = null; private Context mContext; private DistanceConfigFetcher mDistanceConfigFetcher; private CompletionHandler mCompletionHandler; @Override protected Void doInBackground(Void... params) { mDistanceConfigFetcher.request(); if (mCompletionHandler != null) { mCompletionHandler.onComplete(mDistanceConfigFetcher.getResponseString(), mDistanceConfigFetcher.getException(), mDistanceConfigFetcher.getResponseCode()); } return null; } protected void onPostExecute() { } public ModelSpecificDistanceUpdater(Context context, String urlString, CompletionHandler completionHandler) { mContext = context; mDistanceConfigFetcher = new DistanceConfigFetcher(urlString, getUserAgentString()); mCompletionHandler = completionHandler; } private String getUserAgentString() { return "Android Beacon Library;"+getVersion()+";"+getPackage()+";"+getInstallId()+";"+getModel(); } private String getPackage() { return mContext.getPackageName(); } private String getModel() { return AndroidModel.forThisDevice().toString(); } private String getInstallId() { return Settings.Secure.getString(mContext.getContentResolver(), Settings.Secure.ANDROID_ID); } private String getVersion() { return BuildConfig.VERSION_NAME; } interface CompletionHandler { public void onComplete(String body, Exception exception, int code); } }