[code]package br.com.junior.clientes;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import br.com.junior.clientes.R;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.ConnectivityManager;
import android.net.NetworkInfo.State;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
//@ Junior - Cadastro de Clientes 10/07/2012
@SuppressLint(“HandlerLeak”)
public class ReplicarClientes extends Activity {
private Cursor c = null;
private int totalDB = 0;
private int total = 0;
private ProgressDialog pg;
private SQLiteDatabase db;
JSONParser jsonParser = new JSONParser();
// url to create new product
private static String url_create_product = "http://teste/inserir_cliente.php";
//http://gdias.ind.br/gdroid/home_local.php
// JSON Node names
private static final String TAG_SUCCESS = "success";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.replicar);
Button btnIniciar = (Button) findViewById(R.id.btnIniciar);
TextView txvTotal = (TextView) findViewById(R.id.txvTotal);
db = openOrCreateDatabase("gdroid.db", Context.MODE_PRIVATE, null);
c = db.rawQuery("SELECT * FROM clientes", null);
totalDB = c.getCount();
txvTotal.setText("Total Registros: " + String.valueOf(totalDB));
if (totalDB == 0)
btnIniciar.setEnabled(false);
// Verifica Conex�o
ConnectivityManager conn = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (conn.getNetworkInfo(0).getState() == State.CONNECTED
|| (conn.getNetworkInfo(1).getState() == State.CONNECTED))
btnIniciar.setEnabled(true);
else {
btnIniciar.setEnabled(false);
txvTotal.setText("Você precisa de conexão!");
}
btnIniciar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Builder msg = new Builder(ReplicarClientes.this);
msg.setMessage("Deseja iniciar a replicação?");
msg.setPositiveButton("SIM",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
new CreateNewProduct().execute();
}
});
msg.setNegativeButton("Não", null);
msg.show();
}
});
}
class CreateNewProduct extends AsyncTask<String, String, String> {
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute() {
super.onPreExecute();
pg = ProgressDialog.show(ReplicarClientes.this, "Cadastrando...",
"Aguarde! Este processo pode levar alguns minutos", true,
false, null);
}
protected String doInBackground(String... args) {
while (c.moveToNext()) {
String empresanome = c.getString(c
.getColumnIndex("empresanome"));
String cpf = c.getString(c.getColumnIndex("cpf"));
String cnpj = c.getString(c.getColumnIndex("cnpj"));
String pessoatipo = c.getString(c.getColumnIndex("pessoatipo"));
String tipodevenda = c.getString(c
.getColumnIndex("tipodevenda"));
String suframa = c.getString(c.getColumnIndex("suframa"));
String cidade = c.getString(c.getColumnIndex("cidade"));
String bairro = c.getString(c.getColumnIndex("bairro"));
String insest = c.getString(c.getColumnIndex("insest"));
String fone = c.getString(c.getColumnIndex("fone"));
String fax = c.getString(c.getColumnIndex("fax"));
String contato = c.getString(c.getColumnIndex("contato"));
String email = c.getString(c.getColumnIndex("email"));
String cob_cep = c.getString(c.getColumnIndex("cob_cep"));
String cob_cidade = c.getString(c.getColumnIndex("cob_cidade"));
String cob_bairro = c.getString(c.getColumnIndex("cob_bairro"));
String observacao = c.getString(c.getColumnIndex("observacao"));
String alerta = c.getString(c.getColumnIndex("alerta"));
String estado = c.getString(c.getColumnIndex("estado"));
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("empresanome", empresanome));
params.add(new BasicNameValuePair("cpf", cpf));
params.add(new BasicNameValuePair("cnpj", cnpj));
params.add(new BasicNameValuePair("pessoatipo", pessoatipo));
params.add(new BasicNameValuePair("tipodevenda", tipodevenda));
params.add(new BasicNameValuePair("suframa", suframa));
params.add(new BasicNameValuePair("cidade", cidade));
params.add(new BasicNameValuePair("bairro", bairro));
params.add(new BasicNameValuePair("insest", insest));
params.add(new BasicNameValuePair("fone", fone));
params.add(new BasicNameValuePair("fax", fax));
params.add(new BasicNameValuePair("contato", contato));
params.add(new BasicNameValuePair("email", email));
params.add(new BasicNameValuePair("cob_cep", cob_cep));
params.add(new BasicNameValuePair("cob_cidade", cob_cidade));
params.add(new BasicNameValuePair("cob_bairro", cob_bairro));
params.add(new BasicNameValuePair("observacao", observacao));
params.add(new BasicNameValuePair("alerta", alerta));
params.add(new BasicNameValuePair("estado", estado));
// getting JSON Object
// Note that create product url accepts POST method
JSONObject json = jsonParser.makeHttpRequest(
url_create_product, "POST", params);
// check log cat fro response
Log.d("Create Response", json.toString());
// Transforma String em URL
try {
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
total += 1;
db.execSQL("DELETE FROM clientes WHERE id = "
+ c.getInt(c.getColumnIndex("id")));
Intent i = new Intent(getApplicationContext(),
Principal.class);
startActivity(i);
// closing this screen
finish();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
handler.sendEmptyMessage(0);
return null;
}
protected void onPostExecute(String file_url) {
// dismiss the dialog once done
pg.dismiss();
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (total == totalDB) {
Toast.makeText(getBaseContext(),
"Sucesso: total de " + total + "/" + totalDB,
Toast.LENGTH_LONG).show();
}
finish();
}
};
}
}[/code]