Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package proiect.com.proiectv2.Fragment.Chat;
- import android.content.Context;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.preference.PreferenceManager;
- import android.support.v4.app.Fragment;
- import android.support.v4.app.FragmentTransaction;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.AdapterView;
- import android.widget.LinearLayout;
- import android.widget.ListView;
- import android.widget.Toast;
- import com.android.volley.Request;
- import com.android.volley.RequestQueue;
- import com.android.volley.Response;
- import com.android.volley.VolleyError;
- import com.android.volley.toolbox.StringRequest;
- import com.android.volley.toolbox.Volley;
- import com.firebase.client.Firebase;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.util.ArrayList;
- import java.util.Iterator;
- import proiect.com.proiectv2.Adapter.ChatUsersListAdapter;
- import proiect.com.proiectv2.R;
- import proiect.com.proiectv2.Util.Constants;
- import proiect.com.proiectv2.Util.SharedPrefManager;
- public class ChatFragment extends Fragment {
- private FragmentTransaction transaction;
- private ListView usersList;
- private LinearLayout noUsersFound;
- private ArrayList<String> usersNameList = new ArrayList<>();
- private int totalUsers = 0;
- public ChatUsersListAdapter usersListAdapter;
- private SharedPreferences sharedPreferences;
- private String user;
- private String pass;
- @Override
- public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.fragment_chat, container, false);
- usersList = (ListView) view.findViewById(R.id.usersList);
- noUsersFound = (LinearLayout) view.findViewById(R.id.noUsersFoundBlock);
- //user = SharedPrefManager.getInstance(getContext()).getUser().getUserLogin().toString();
- // Apelare funcție înregistrare utilizator.
- registerUser();
- // Apelare funcție logare utilizator.
- loginUser();
- // Adrese către baza de date unde se vor păstra datele despre utilizatori.
- String url = "https://sde4-873a7.firebaseio.com/users.json";
- // Creare apel către rețea.
- StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
- @Override
- public void onResponse(String s) {
- // Apelare metoda doOnSuccess()
- doOnSuccess(s);
- }
- },new Response.ErrorListener(){
- @Override
- public void onErrorResponse(VolleyError volleyError) {
- System.out.println("" + volleyError);
- }
- });
- RequestQueue rQueue = Volley.newRequestQueue(getContext());
- // Adaugă apelul de rețea către coada de apel.
- rQueue.add(request);
- // La selectare unui utilizator treci la ChatConversationFragment.
- usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- UserDetails.chatPartener = usersNameList.get(position);
- ChatConversationFragment conversationFragment = new ChatConversationFragment();
- transaction = getFragmentManager().beginTransaction();
- transaction.addToBackStack("next");
- transaction.replace(R.id.chatUsersList, conversationFragment);
- transaction.commit();
- }
- });
- return view;
- }
- public void doOnSuccess(String s){
- try {
- JSONObject obj = new JSONObject(s);
- Iterator i = obj.keys();
- String key = "";
- while(i.hasNext()){
- key = i.next().toString();
- if(!key.equals(UserDetails.userName)) {
- usersNameList.add(key);
- }
- totalUsers++;
- }
- } catch (JSONException e) {
- e.printStackTrace();
- }
- // Dacă nr de utilizator este <=1 atunci afișează mesaj că nu există utilizatori în chat.
- if(totalUsers <=1){
- noUsersFound.setVisibility(View.VISIBLE);
- usersList.setVisibility(View.GONE);
- }
- // în caz cpntarar afișează lista utilizatorilor.
- else{
- noUsersFound.setVisibility(View.GONE);
- usersList.setVisibility(View.VISIBLE);
- usersListAdapter = new ChatUsersListAdapter(getContext(), usersNameList);
- usersList.setAdapter(usersListAdapter);
- }
- }
- void registerUser(){
- // Inițializare firebase.
- Firebase.setAndroidContext(getContext());
- user = UserDetails.userName;
- pass = UserDetails.userPassword;
- // Adresa către baza de date în care se vor păstra datele despre utilizatori.
- String url = "https://sde4-873a7.firebaseio.com/users.json";
- // Creăm apel de rețea.
- StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
- @Override
- public void onResponse(String s) {
- // Indică în ce array se va păstra utiliztorul nou creat.
- Firebase reference = new Firebase("https://sde4-873a7.firebaseio.com/users");
- if(s.equals("null")) {
- // Adaugă utilizator.
- reference.child(user).child("password").setValue(pass);
- //Toast.makeText(getContext(), "Succes-reg", Toast.LENGTH_LONG).show();
- }
- else {
- try {
- JSONObject obj = new JSONObject(s);
- // dacă utiliztorul nu există, atunci adaugă în baza de date.
- if (!obj.has(user)) {
- reference.child(user).child("password").setValue(pass);
- } else {
- }
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- }
- },new Response.ErrorListener(){
- @Override
- public void onErrorResponse(VolleyError volleyError) {
- System.out.println("" + volleyError );
- }
- });
- // inițializare codă de apeluri
- RequestQueue rQueue = Volley.newRequestQueue(getContext());
- // adaugă apleul în coadă pentru a fi executat.
- rQueue.add(request);
- }
- void loginUser() {
- user = UserDetails.userName;
- user = SharedPrefManager.getInstance(getContext()).getUser().getUserLogin().toString();
- pass = UserDetails.userPassword;
- // Adresa de unde vom cere utiliztorul
- String url = "https://sde4-873a7.firebaseio.com/users.json";
- // Creare apel de rețea.
- StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
- @Override
- public void onResponse(String s) {
- if(s.equals("null")){
- //Toast.makeText(getContext(), "utilizat ne", Toast.LENGTH_LONG).show();
- }
- else{
- try {
- JSONObject obj = new JSONObject(s);
- // Verificăm dacă utilizatorul există.
- if(!obj.has(user)){
- //Toast.makeText(getContext(), "utlizator ne", Toast.LENGTH_LONG).show();
- }
- else if(obj.getJSONObject(user).getString("password").equals(pass)){
- //SharedPref set logged.
- }
- else {
- //Toast.makeText(getContext(), "parola este greșită", Toast.LENGTH_LONG).show();
- }
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- }
- },new Response.ErrorListener(){
- @Override
- public void onErrorResponse(VolleyError volleyError) {
- }
- });
- // inițializare codă de apeluri
- RequestQueue rQueue = Volley.newRequestQueue(getContext());
- // adaugă apleul în coadă pentru a fi executat.
- rQueue.add(request);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement