package com.V4Creations.vtulife.controller.server; import java.io.IOException; import org.json.JSONObject; import android.content.Context; import android.os.AsyncTask; import com.V4Creations.vtulife.R; import com.V4Creations.vtulife.util.Settings; import com.V4Creations.vtulife.util.VTULifeConstance; import com.V4Creations.vtulife.util.VTULifeRestClient; import com.V4Creations.vtulife.util.system.SystemFeatureChecker; import com.V4Creations.vtulife.view.activity.VTULifeMainActivity; import com.google.android.gms.gcm.GoogleCloudMessaging; import com.loopj.android.http.JsonHttpResponseHandler; import de.keyboardsurfer.android.widget.crouton.Style; public class GCMRegisterManager extends AsyncTask<Void, Void, String> { private Context mContext; public static final String GCM_REGISTER = "/nm/register.php"; public static final String PARAM_REGISTER_ID = "gcm_regid", PARAM_DEVICE_ID = "android_id"; public GCMRegisterManager(Context context) { mContext = context; } @Override protected String doInBackground(Void... params) { try { return GoogleCloudMessaging.getInstance(mContext).register( VTULifeConstance.GCM_SENDER_ID); } catch (IOException e) { return null; } } @Override protected void onPostExecute(final String gcmRegisterIdString) { super.onPostExecute(gcmRegisterIdString); if (gcmRegisterIdString != null) { VTULifeRestClient.registerGcm(gcmRegisterIdString, SystemFeatureChecker.getDeviceUuid(mContext), new JsonHttpResponseHandler() { @Override public void onSuccess(int statusCode, JSONObject response) { super.onSuccess(statusCode, response); Settings.storeRegistrationIdWithAppVersion( mContext, gcmRegisterIdString); ((VTULifeMainActivity) mContext).showCrouton( R.string.registered_for_notification, Style.INFO, true); } }); } } }