-
Notifications
You must be signed in to change notification settings - Fork 0
Home
La nostra app de Crazy Display, està organitzada en diferents Activities, en concret 3.
Aquí es gestiona tot l'inici de sessió, la connexió i l'enviament de missatges.
La sessió es controla mitjançant un AlertDialog.
public void loginAlert(LoginCallback callback) {
AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.CustomAlertDialogStyle);
LayoutInflater inflater = getLayoutInflater();
View dialogView = inflater.inflate(R.layout.dialog_signin, null);
builder.setView(dialogView);
EditText usernameEditText = dialogView.findViewById(R.id.name);
EditText passwordEditText = dialogView.findViewById(R.id.pass);
builder.setTitle("Sign In")
.setPositiveButton("Sign in", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
String username = usernameEditText.getText().toString();
String password = passwordEditText.getText().toString();
String jsonString = "{\"type\": \"login\", \"user\":\"" + username + "\", \"pass\": \"" + password + "\"}";
clientApp.send(jsonString);
}
});
AlertDialog dialog = builder.create();
dialog.show();
}La resta de dades s'agafen en la mateixa vista, després aquestes dades es tracten en un altre arxiu.
A l'hora d'emmagatzemar els missatges optem per crear una nova classe anomenada Message, on guarden dades del missatge, després la podem serialitzar i guardar en el dispositiu.
class Message implements Serializable{
String text;
Date date;
Message(String text){
this.text = text;
this.date = new Date();
}
public String toString() {
return text;
}
}Aquí tenim un codi simple en el qual es gestiona els missatges enviats amb anterioritat, els quals arriben mitjançant un Array que en l'arxiu anterior s'ha omplert amb les dades emmagatzemades i el nou missatge, si és que n'hi ha. Aquests es mostren en un listView i dona la possiblitat de poder-los tornar a enviar.
És una view similar a l'anterior, però es mostren imatges que es poden enviar a la pantalla. Ho fem mitjançant el següent procés
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.crazy_dyamond);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
String encodedImage = Base64.encodeToString(byteArray, Base64.NO_WRAP);
MainActivity.clientApp.send("{\"type\": \"img\", \"image\": \""+encodedImage+"\", \"ext\": \"jpg\"}");Per últim, tenim aquest arxiu el qual gestiona la comunicació amb el server. El qual estructura els JSON amb els missatges o imatges, també gestiona si el servidor li ha verificat l'usuari i li dona accés a l'aplicació.