[code]package br.com.infokey;
import java.util.ArrayList;
import java.util.List;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.SoapFault;
import org.ksoap2.serialization.KvmSerializable;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import android.content.Context;
import android.widget.Toast;
public enum Icicle {
INSTANCE;
private String SOAP_ACTION = "";
private String METHOD_NAME = "login";
private String NAMESPACE = "http://server.webservice.com.br/";
private String URL = "";
private String serviceResponse;
private String sellerID;
private List<String> historico = new ArrayList<String>();
private Context currentContext;
public Context getCurrentContext() {
return currentContext;
}
public void setCurrentContext(Context currentContext) {
this.currentContext = currentContext;
}
public List<String> getHistorico() {
return historico;
}
public void setHistorico(List<SoapPrimitive> historico) {
this.historico.clear();
for(int i=0;i<historico.size();i++)
this.historico.add(historico.get(i).toString());
}
public String getSOAP_ACTION() {
return SOAP_ACTION;
}
public void setSOAP_ACTION(String sOAP_ACTION) {
SOAP_ACTION = sOAP_ACTION;
}
public String getMETHOD_NAME() {
return METHOD_NAME;
}
public void setMETHOD_NAME(String mETHOD_NAME) {
METHOD_NAME = mETHOD_NAME;
}
public String getNAMESPACE() {
return NAMESPACE;
}
public void setNAMESPACE(String nAMESPACE) {
NAMESPACE = nAMESPACE;
}
public String getURL() {
return URL;
}
public void setURL(String uRL) {
URL = uRL;
}
public String getServiceResponse() {
return serviceResponse;
}
public void setServiceResponse(String response) {
this.serviceResponse = response;
}
public String getSellerID() {
return sellerID;
}
public void setSellerID(String sellerID) {
this.sellerID = sellerID;
}
public SoapSerializationEnvelope callService(SoapObject request){
// this.setSOAP_ACTION(this.getNAMESPACE() + “/” + this.getMETHOD_NAME());
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
HttpTransportSE ht = new HttpTransportSE(Icicle.INSTANCE.getURL());
try {
ht.debug = true;
ht.call(Icicle.INSTANCE.getSOAP_ACTION(), envelope);
} catch (Exception e) {
e.printStackTrace();
}
return envelope;
}
public void getPrimitiveResponse(SoapSerializationEnvelope envelope){
SoapPrimitive response = null;
String retorno = "Erro na resposta do servidor!";
try {
response = (SoapPrimitive)envelope.getResponse();
} catch (SoapFault e) {
e.printStackTrace();
}
catch(NullPointerException e){
Toast.makeText(getCurrentContext(), "Erro na troca de mensagens com o servidor!", Toast.LENGTH_LONG).show();
}
if(response!=null){
retorno = response.toString();
}
this.setServiceResponse(retorno);
}
public void getCollectionResponse(SoapSerializationEnvelope envelope){
KvmSerializable response = null;
try{
response = (KvmSerializable)envelope.bodyIn;
}catch(NullPointerException e){
Toast.makeText(getCurrentContext(), "Erro na troca de mensagens com o servidor!", Toast.LENGTH_LONG).show();
}
if(response!=null){
List><SoapPrimitive> objects = new ArrayList<SoapPrimitive>();
for (int i = 0; i < response.getPropertyCount(); i++) {
objects.add((SoapPrimitive) response.getProperty(i));
}
this.setHistorico(objects);
}
}
}
[/code]
package br.com.infokey;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class HistoryAdapter extends BaseAdapter {
private Context context;
private List<String> texts = new ArrayList<String>();
public HistoryAdapter(Context context) {
this.context = context;
}
public int getCount() {
return texts.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv;
if (convertView == null) {
tv = new TextView(context);
tv.setTextColor(0xFF3333FF);
// tv.setLayoutParams(new GridView.LayoutParams(85, 25));
}
else {
tv = (TextView) convertView;
tv.setTextColor(0xFF3333FF);
}
tv.setText(texts.get(position));
return tv;
}
public List<String> getTexts() {
return texts;
}
public void setTexts(List<String> texts) {
this.texts = texts;
}
}
package br.com.infokey;
import android.app.Activity;
import android.os.Bundle;
import android.widget.GridView;
public class HistoryGridActivity extends Activity {
GridView historyGrid;
HistoryAdapter adapter;
HistoryGridActivity self = this;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.historygrid);
adapter = new HistoryAdapter(this);
adapter.setTexts(Icicle.INSTANCE.getHistorico());
historyGrid = (GridView) findViewById(R.id.historyGridView);
historyGrid.setAdapter(adapter);
setTitle("Historico");
Icicle.INSTANCE.setCurrentContext(self);
}
@Override
public void onUserLeaveHint(){
finish();
}
}
package br.com.infokey;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetManager;
import android.content.res.Resources;
import android.os.Bundle;
import android.text.method.PasswordTransformationMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity{
EditText loginET,passwordET;
Button loginBt;
MainActivity self = this;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loginET = (EditText) findViewById(R.id.loginEditText);
passwordET = (EditText) findViewById(R.id.passwordEditText);
passwordET.setTransformationMethod(PasswordTransformationMethod.getInstance());
loginBt = (Button) findViewById(R.id.loginButton);
loadAssets();
setTitle("Login");
Icicle.INSTANCE.setCurrentContext(self);
System.setProperty("http.keepAlive", "false");
loginBt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(self.login(loginET.getText().toString(),passwordET.getText().toString())){
startActivity(new Intent(self,RegistryActivity.class));
finish();
}
}
});
}
public void loadAssets() {
Resources res = this.getResources();
AssetManager assetmanager = res.getAssets();
try {
InputStream is = assetmanager.open("server.properties");
Properties properties = new Properties();
properties.load(is);
Icicle.INSTANCE.setURL(properties.getProperty("serverURL"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public boolean login(String login, String password) {
if(login.length() < 2 || password.length() < 2){
Toast.makeText(self, "Login ou senha n�o permitido com menos de 2 caracteres", Toast.LENGTH_LONG).show();
return false;
}
Icicle.INSTANCE.setSellerID(login);//armazenando o cpf/cnpj do vendedor no Icicle
// metodo no server-side login(String login, String senha)
Icicle.INSTANCE.setMETHOD_NAME("login");
SoapObject request = new SoapObject(Icicle.INSTANCE.getNAMESPACE(), Icicle.INSTANCE.getMETHOD_NAME());
request.addProperty("login",login);
request.addProperty("senha",password);
SoapSerializationEnvelope envelope = Icicle.INSTANCE.callService(request);
Icicle.INSTANCE.getPrimitiveResponse(envelope);
if(Icicle.INSTANCE.getServiceResponse().equals("true")){
return true;
}
else {
if(Icicle.INSTANCE.getServiceResponse().equals("false")){
Toast.makeText(self, "Login ou senha inv�lido! Tente novamente", Toast.LENGTH_LONG).show();
return false;
}
return false;
}
}
}
package br.com.infokey;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class RegistryActivity extends Activity {
EditText numeroVendedorET,numeroPropostaET;
Button sendBt,historyBt;
RegistryActivity self = this;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.registry);
numeroVendedorET = (EditText) findViewById(R.id.numeroVendedorEditText);
numeroPropostaET = (EditText) findViewById(R.id.numeroPropostaEditText);
sendBt = (Button) findViewById(R.id.sendButton);
historyBt = (Button) findViewById(R.id.historyButton);
setTitle("Cadastro");
Icicle.INSTANCE.setCurrentContext(self);
sendBt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(!cadastraFichaVenda(numeroVendedorET.getText().toString(),numeroPropostaET.getText().toString()).equals("Erro ao tentar enviar os dados ao servidor!")){
startActivity(new Intent(self,ResponseActivity.class));
}
}
});
historyBt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
historicoSenha();
startActivity(new Intent(self,HistoryGridActivity.class));
}
});
}
public String cadastraFichaVenda(String numeroVendedor,String numeroProposta){
if(numeroVendedor.length() < 2 || numeroProposta.length() < 2){
Toast.makeText(self, "Campos de No. de vendedor ou No. de proposta inv�lido!", Toast.LENGTH_LONG).show();
return "Erro ao tentar enviar os dados ao servidor!";
}
Icicle.INSTANCE.setMETHOD_NAME("cadastraFichaVenda");
SoapObject request = new SoapObject(Icicle.INSTANCE.getNAMESPACE(), Icicle.INSTANCE.getMETHOD_NAME());
request.addProperty("numeroVendedor",numeroVendedor);
request.addProperty("numeroProposta",numeroProposta);
request.addProperty("cpfVendedor",Icicle.INSTANCE.getSellerID());
SoapSerializationEnvelope envelope = Icicle.INSTANCE.callService(request);
Icicle.INSTANCE.getPrimitiveResponse(envelope);
return Icicle.INSTANCE.getServiceResponse();
}
public String historicoSenha(){
Icicle.INSTANCE.setMETHOD_NAME("historicoSenha");
SoapObject request = new SoapObject(Icicle.INSTANCE.getNAMESPACE(), Icicle.INSTANCE.getMETHOD_NAME());
request.addProperty("cpfVendedor",Icicle.INSTANCE.getSellerID());
SoapSerializationEnvelope envelope = Icicle.INSTANCE.callService(request);
Icicle.INSTANCE.getCollectionResponse(envelope);
return Icicle.INSTANCE.getServiceResponse();
}
}
package br.com.infokey;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class ResponseActivity extends Activity {
TextView responseTV;
ResponseActivity self = this;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.response);
this.responseTV = (TextView) findViewById(R.id.senhaTextView);
this.responseTV.setText(Icicle.INSTANCE.getServiceResponse());
setTitle("Senha");
Icicle.INSTANCE.setCurrentContext(self);
}
@Override
public void onUserLeaveHint(){
finish();
}
}