/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.dhaval.android.appstat.service;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import com.dhaval.android.appstat.model.*;
/**
 *
 * @author dhaval
 */
public class StatsUpdateManager {

    private static final String UPDATE_URL = "http://twitgtalk.appspot.com/update";
//    private static final String UPDATE_URL = "http://localhost:8090/update";
    
    private Context context;
    private ConnectivityManager connectivityManager;

    public StatsUpdateManager(Context context) {
        this.context = context;

        connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    }

    public String update(Stats stats){
        try{
            NetworkInfo networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
            if(networkInfo == null){
                networkInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            }

            if(networkInfo != null) {
                DefaultHttpClient client = new DefaultHttpClient();
                HttpPost post = new HttpPost(UPDATE_URL);

                Log.v("info", "updating..." + stats.toString());
                post.setEntity(new StringEntity(stats.toString()));

                ResponseHandler<String> responseHandler = new BasicResponseHandler();

                String responseBody = client.execute(post, responseHandler);
//
                return responseBody;
            } else {
                return "Network not available/connected";
            }
        }catch(Throwable e){
//            return e.getMessage();
            Log.v("error", e.getMessage(), e);
            
            return "Error: " + e.getMessage();
        }
    }
}
