Sunteți pe pagina 1din 13

FACULTATEA DE CALCULATOARE, INFORMATICĂ ȘI MICROELECTRONICĂ

UNIVERSITATEA TEHNICĂ A MOLDOVEI


DEPARTAMENTUL INGINERIA SOFWARE ȘI AUTOMATICA

PROGRAMAREA APLICAȚIILOR MOBILE

LUCRARE DE LABORATOR #6
Tema: Telemedicine – SPRINT2

Elaborat de: Verificat de:

Crudu Ion, st.gr.SI-151 Cristian Rusu, asistent univ.

Chișinău 2017
Scopul lucrării:
Pentru designul ofert in laboratorul nr. 5 să se implementeze partea funcțională a proiectului conform
serviciului API descris mai jos.
Metodele oferite de Servicu:

 Auth (autentificare)
 Reg (inregistrare)
 UserProfie (extragerea avansată despre utilizatorul curent autentificat)
 GetDocList (vizualizarea listei de medici activi in sistem)
 GetDoc (vizualizarea unui anumit medici activ in sistem)
 UserRequestConsultation (Adaugarea unei programari la medic)

Efectuarea lucrării:
La acest laborator am efectuat partea funcțională a proiectului.

Splash screen
Welcome screen

Dacă facem click pe butonul Sign up va apărea activitatea pentru înregistrarea noului user. În cazul în
care alegem login va apărea activitatea pentru introducerea login-lui și a parolei.

Signup screen

În această activitate introducem datele pentru înregistrarea userului. Alegem poza userului și tastăm
next. După care se adaugă userului.
Login screen

După înregistrare introducem login și parola și intrăm în aplicația noastră.

Home screen
Request screen

Doctor list
Doctor contacts

Concluzie:
Datorită efectuării acestei lucrări de laborator am acumulat cunoștințe despre cum pot fi creat
mai multe interfețe grafice după view-rile acordate și cum poate fi implementat partea funcțională a
lor. Datorită informațiilor accumulate am creat aplicația care corespunde tuturor cerințelor.
Bibliografie:
1. Intent
https://developer.android.com/reference/android/content/Intent.html
2. HttpConection
https://www.studytutorial.in/android-httpurlconnection-post-and-get-request-tutorial
Anexa A (sursa codului):
Activity_register
package com.example.nick.lp01;

import android.app.Instrumentation;
import android.app.ProgressDialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Base64;
import android.util.Log;
import android.view.View;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.ByteArrayOutputStream;
import java.util.HashMap;
import java.util.Map;

public class register extends AppCompatActivity {


ImageView imageView17;
ImageView imageView15;
ImageView imageView13;
private static final int PICK_IMAGE=100;
Uri imageUri;
private static final String TAG = "register";
private static final String username = "nicu";
private static final String passwd = "nicu1995";
private static final String URL_FOR_REGISTRATION =
"http://81.180.72.17/api/Register/UserReg";
private EditText editText6,editText7,editText8,editText9,editText10;
ProgressDialog progressDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
imageView17 =(ImageView)findViewById(R.id.imageView17);
imageView13 =(ImageView)findViewById(R.id.imageView13);
imageView15 =(ImageView)findViewById(R.id.imageView15);

imageView15.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent gallery =new Intent(Intent.ACTION_PICK,
MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery,PICK_IMAGE);
}
});
imageView17.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

submitForm();
}
});
imageView13.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i =new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
}
});

progressDialog = new ProgressDialog(this);


progressDialog.setCancelable(false);

editText6 = (EditText) findViewById(R.id.editText6);


editText7 = (EditText) findViewById(R.id.editText7);
editText8 = (EditText) findViewById(R.id.editText8);
editText9 = (EditText) findViewById(R.id.editText9);
editText10 = (EditText) findViewById(R.id.editText10);
}

private void submitForm(){

ByteArrayOutputStream baos = new ByteArrayOutputStream();


Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.confirm);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] imageBytes = baos.toByteArray();
String imageString = Base64.encodeToString(imageBytes, Base64.DEFAULT);
registerUser(editText6.getText().toString(),
editText7.getText().toString(),
editText8.getText().toString(),editText9.getText().toString(),editText10.getText().
toString(),username,passwd,imageString);
}
private void registerUser(final String fullname , final String birthday,final
String email,final String phone,final String adress,final String username ,final
String passwd,final String imagestring){
progressDialog.setMessage("Se adauga ...");
showDialog();
StringRequest strReq = new StringRequest(Request.Method.POST,
URL_FOR_REGISTRATION, new Response.Listener<String>() {
@Override
public void onResponse(String response) {

Log.d(TAG, "Register Response: " + response.toString());


hideDialog();

try {
JSONObject jObj = new JSONObject(response);
boolean error = jObj.getBoolean("error");

if (!error) {
String user = jObj.getJSONObject("user").getString("name");
Toast.makeText(getApplicationContext(), "Hi " + user +",
You are successfully Added!", Toast.LENGTH_SHORT).show();

// Launch login activity


Intent intent = new Intent(
register.this,
MainActivity.class);
startActivity(intent);
finish();
} else {

String errorMsg = jObj.getString("error_msg");


Toast.makeText(getApplicationContext(),
errorMsg, Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}

}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "Registration Error: " + error.getMessage());
Toast.makeText(getApplicationContext(),
error.getMessage(), Toast.LENGTH_LONG).show();
hideDialog();
}
}) {
@Override
protected Map<String, String> getParams() {

Map<String, String> params = new HashMap<String, String>();


params.put("FullName", fullname);
params.put("Birthday", birthday);
params.put("Email", email);
params.put("Phone", phone);
params.put("Address", adress);
params.put("Username", username);
params.put("Password", passwd);
params.put("Base64Photo", imagestring);
return params;
}
};
}

private void showDialog() {


if (!progressDialog.isShowing())
progressDialog.show();
}

private void hideDialog() {


if (progressDialog.isShowing())
progressDialog.dismiss();
}

@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
super.onActivityResult(requestCode,resultCode,data);
if (resultCode== RESULT_OK && requestCode ==PICK_IMAGE){
imageUri =data.getData();
imageView15.setImageURI(imageUri);
}
}
}
Activity_login
package com.example.nick.lp01;

import android.app.ProgressDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;
import android.content.Intent;
import android.view.View;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
 
 
public class LoginActivity extends AppCompatActivity {
 
    private static final String TAG = "LoginActivity";

    private static final String URL_FOR_LOGIN = " http://81.180.72.17/api


/Login/UserAuth";
    ProgressDialog progressDialog;
    private EditText loginInputEmail, loginInputPassword;
    private Button btnlogin;
    private Button btnLinkSignup;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        loginInputEmail = (EditText) findViewById(R.id.login_input_email);
        loginInputPassword = (EditText) findViewById(R.id.login_input_password);
        btnlogin = (Button) findViewById(R.id.btn_login);
        btnLinkSignup = (Button) findViewById(R.id.btn_link_signup);
        // Progress dialog
        progressDialog = new ProgressDialog(this);
        progressDialog.setCancelable(false);
 
        btnlogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                loginUser(loginInputEmail.getText().toString(),
                        loginInputPassword.getText().toString());
            }
        });
 
        btnLinkSignup.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(getApplicationContext(),
RegisterActivity.class);
                startActivity(i);
 
            }
        });
    }
 
    private void loginUser( final String email, final String password) {
        // Tag used to cancel the request
        String cancel_req_tag = "login";
        progressDialog.setMessage("Logging you in...");
        showDialog();
        StringRequest strReq = new StringRequest(Request.Method.POST,
                URL_FOR_LOGIN, new Response.Listener<String>() {
 
            @Override
            public void onResponse(String response) {
                Log.d(TAG, "Register Response: " + response.toString());
                hideDialog();
                try {
                    JSONObject jObj = new JSONObject(response);
                    boolean error = jObj.getBoolean("error");
 
                    if (!error) {
                        String user = jObj.getJSONObject("user").getString("name");
                        // Launch User activity
                        Intent intent = new Intent(
                                LoginActivity.this,
                                UserActivity.class);
                        intent.putExtra("username", user);
                        startActivity(intent);
                        finish();
                    } else {
 
                        String errorMsg = jObj.getString("error_msg");
                        Toast.makeText(getApplicationContext(),
                                errorMsg, Toast.LENGTH_LONG).show();
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
 
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG, "Login Error: " + error.getMessage());
                Toast.makeText(getApplicationContext(),
                        error.getMessage(), Toast.LENGTH_LONG).show();
                hideDialog();
            }
        }) {
           @Override
            protected Map<String, String> getParams() {
                // Posting params to login url
                Map<String, String> params = new HashMap<String, String>();
                params.put("email", email);
                params.put("password", password);
                return params;
            }
        };
        // Adding request to request queue
        AppSingleton.getInstance(getApplicationContext()).addToRequestQueue(strReq,
cancel_req_tag);
    }
 
    private void showDialog() {
        if (!progressDialog.isShowing())
            progressDialog.show();
    }
    private void hideDialog() {
        if (progressDialog.isShowing())
            progressDialog.dismiss();
    }
}

S-ar putea să vă placă și