package com.mopub.mobileads; import android.content.Context; import android.content.SharedPreferences; import com.mopub.common.BaseUrlGenerator; import com.mopub.common.ClientMetadata; import com.mopub.common.Constants; import com.mopub.common.SharedPreferencesHelper; import com.mopub.common.logging.MoPubLog; import com.mopub.network.TrackingRequest; import com.mopub.volley.VolleyError; public class MoPubConversionTracker { private Context mContext; private String mIsTrackedKey; private SharedPreferences mSharedPreferences; private String mPackageName; public void reportAppOpen(Context context) { if (context == null) { return; } mContext = context; mPackageName = mContext.getPackageName(); mIsTrackedKey = mPackageName + " tracked"; mSharedPreferences = SharedPreferencesHelper.getSharedPreferences(mContext); if (!isAlreadyTracked()) { TrackingRequest.makeTrackingHttpRequest(new ConversionUrlGenerator().generateUrlString(Constants.HOST), mContext, new TrackingRequest.Listener() { @Override public void onResponse() { mSharedPreferences .edit() .putBoolean(mIsTrackedKey, true) .commit(); } @Override public void onErrorResponse(final VolleyError volleyError) { } }); } else { MoPubLog.d("Conversion already tracked"); } } private boolean isAlreadyTracked() { return mSharedPreferences.getBoolean(mIsTrackedKey, false); } private class ConversionUrlGenerator extends BaseUrlGenerator { @Override public String generateUrlString(String serverHostname) { initUrlString(serverHostname, Constants.CONVERSION_TRACKING_HANDLER); setApiVersion("6"); setPackageId(mPackageName); ClientMetadata clientMetadata = ClientMetadata.getInstance(mContext); setAppVersion(clientMetadata.getAppVersion()); appendAdvertisingInfoTemplates(); return getFinalUrlString(); } private void setPackageId(String packageName) { addParam("id", packageName); } } }