Advertisement
Guest User

Untitled

a guest
Jun 7th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.56 KB | None | 0 0
  1. package proiect.com.proiectv2.Fragment.Chat;
  2.  
  3. import android.content.Context;
  4. import android.content.SharedPreferences;
  5. import android.os.Bundle;
  6. import android.preference.PreferenceManager;
  7. import android.support.v4.app.Fragment;
  8. import android.support.v4.app.FragmentTransaction;
  9. import android.view.LayoutInflater;
  10. import android.view.View;
  11. import android.view.ViewGroup;
  12. import android.widget.AdapterView;
  13. import android.widget.LinearLayout;
  14. import android.widget.ListView;
  15. import android.widget.Toast;
  16.  
  17. import com.android.volley.Request;
  18. import com.android.volley.RequestQueue;
  19. import com.android.volley.Response;
  20. import com.android.volley.VolleyError;
  21. import com.android.volley.toolbox.StringRequest;
  22. import com.android.volley.toolbox.Volley;
  23. import com.firebase.client.Firebase;
  24.  
  25. import org.json.JSONException;
  26. import org.json.JSONObject;
  27.  
  28. import java.util.ArrayList;
  29. import java.util.Iterator;
  30.  
  31. import proiect.com.proiectv2.Adapter.ChatUsersListAdapter;
  32. import proiect.com.proiectv2.R;
  33. import proiect.com.proiectv2.Util.Constants;
  34. import proiect.com.proiectv2.Util.SharedPrefManager;
  35.  
  36. public class ChatFragment extends Fragment {
  37.  
  38.     private FragmentTransaction transaction;
  39.     private ListView usersList;
  40.     private LinearLayout noUsersFound;
  41.     private ArrayList<String> usersNameList = new ArrayList<>();
  42.     private int totalUsers = 0;
  43.     public ChatUsersListAdapter usersListAdapter;
  44.     private SharedPreferences sharedPreferences;
  45.  
  46.     private String user;
  47.     private String pass;
  48.     @Override
  49.     public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
  50.         View view = inflater.inflate(R.layout.fragment_chat, container, false);
  51.  
  52.         usersList = (ListView) view.findViewById(R.id.usersList);
  53.         noUsersFound = (LinearLayout) view.findViewById(R.id.noUsersFoundBlock);
  54.  
  55.         //user =  SharedPrefManager.getInstance(getContext()).getUser().getUserLogin().toString();
  56.  
  57.         // Apelare funcție înregistrare utilizator.
  58.         registerUser();
  59.         // Apelare funcție logare utilizator.
  60.         loginUser();
  61.         // Adrese către baza de date unde se vor păstra datele despre utilizatori.
  62.         String url = "https://sde4-873a7.firebaseio.com/users.json";
  63.  
  64.         // Creare apel către rețea.
  65.         StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
  66.             @Override
  67.             public void onResponse(String s) {
  68.                 // Apelare metoda doOnSuccess()
  69.                 doOnSuccess(s);
  70.             }
  71.         },new Response.ErrorListener(){
  72.             @Override
  73.             public void onErrorResponse(VolleyError volleyError) {
  74.                 System.out.println("" + volleyError);
  75.             }
  76.         });
  77.  
  78.         RequestQueue rQueue = Volley.newRequestQueue(getContext());
  79.         // Adaugă apelul de rețea către coada de apel.
  80.         rQueue.add(request);
  81.  
  82.         // La selectare unui utilizator treci la ChatConversationFragment.
  83.         usersList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  84.             @Override
  85.             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  86.                 UserDetails.chatPartener = usersNameList.get(position);
  87.                 ChatConversationFragment conversationFragment = new ChatConversationFragment();
  88.                 transaction = getFragmentManager().beginTransaction();
  89.                 transaction.addToBackStack("next");
  90.                 transaction.replace(R.id.chatUsersList, conversationFragment);
  91.                 transaction.commit();
  92.             }
  93.         });
  94.  
  95.         return view;
  96.     }
  97.  
  98.     public void doOnSuccess(String s){
  99.         try {
  100.             JSONObject obj = new JSONObject(s);
  101.             Iterator i = obj.keys();
  102.             String key = "";
  103.             while(i.hasNext()){
  104.                 key = i.next().toString();
  105.                 if(!key.equals(UserDetails.userName)) {
  106.                     usersNameList.add(key);
  107.                 }
  108.                 totalUsers++;
  109.             }
  110.  
  111.         } catch (JSONException e) {
  112.             e.printStackTrace();
  113.         }
  114.  
  115.         // Dacă nr de utilizator este <=1 atunci afișează mesaj că nu există utilizatori în chat.
  116.         if(totalUsers <=1){
  117.             noUsersFound.setVisibility(View.VISIBLE);
  118.             usersList.setVisibility(View.GONE);
  119.         }
  120.         // în caz cpntarar afișează lista utilizatorilor.
  121.         else{
  122.             noUsersFound.setVisibility(View.GONE);
  123.             usersList.setVisibility(View.VISIBLE);
  124.             usersListAdapter = new ChatUsersListAdapter(getContext(), usersNameList);
  125.             usersList.setAdapter(usersListAdapter);
  126.         }
  127.     }
  128.  
  129.     void registerUser(){
  130.         // Inițializare firebase.
  131.         Firebase.setAndroidContext(getContext());
  132.         user = UserDetails.userName;
  133.         pass = UserDetails.userPassword;
  134.         // Adresa către baza de date în care se vor păstra datele despre utilizatori.
  135.         String url = "https://sde4-873a7.firebaseio.com/users.json";
  136.         // Creăm apel de rețea.
  137.         StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
  138.             @Override
  139.             public void onResponse(String s) {
  140.                 // Indică în ce array se va păstra utiliztorul nou creat.
  141.                 Firebase reference = new Firebase("https://sde4-873a7.firebaseio.com/users");
  142.                 if(s.equals("null")) {
  143.                     // Adaugă utilizator.
  144.                     reference.child(user).child("password").setValue(pass);
  145.                     //Toast.makeText(getContext(), "Succes-reg", Toast.LENGTH_LONG).show();
  146.                 }
  147.                 else {
  148.                     try {
  149.                         JSONObject obj = new JSONObject(s);
  150.                         // dacă utiliztorul nu există, atunci adaugă în baza de date.
  151.                         if (!obj.has(user)) {
  152.                             reference.child(user).child("password").setValue(pass);
  153.                         } else {
  154.  
  155.                         }
  156.  
  157.                     } catch (JSONException e) {
  158.                         e.printStackTrace();
  159.                     }
  160.                 }
  161.  
  162.             }
  163.  
  164.         },new Response.ErrorListener(){
  165.             @Override
  166.             public void onErrorResponse(VolleyError volleyError) {
  167.                 System.out.println("" + volleyError );
  168.             }
  169.         });
  170.         // inițializare codă de apeluri
  171.         RequestQueue rQueue = Volley.newRequestQueue(getContext());
  172.         // adaugă apleul în coadă pentru a fi executat.
  173.         rQueue.add(request);
  174.     }
  175.  
  176.     void loginUser() {
  177.         user = UserDetails.userName;
  178.         user = SharedPrefManager.getInstance(getContext()).getUser().getUserLogin().toString();
  179.         pass = UserDetails.userPassword;
  180.         // Adresa de unde vom cere utiliztorul
  181.         String url = "https://sde4-873a7.firebaseio.com/users.json";
  182.         // Creare apel de rețea.
  183.         StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>(){
  184.             @Override
  185.             public void onResponse(String s) {
  186.                 if(s.equals("null")){
  187.                     //Toast.makeText(getContext(), "utilizat ne", Toast.LENGTH_LONG).show();
  188.                 }
  189.                 else{
  190.                     try {
  191.                         JSONObject obj = new JSONObject(s);
  192.                         // Verificăm dacă utilizatorul există.
  193.                         if(!obj.has(user)){
  194.                             //Toast.makeText(getContext(), "utlizator ne", Toast.LENGTH_LONG).show();
  195.                         }
  196.                         else if(obj.getJSONObject(user).getString("password").equals(pass)){
  197.                             //SharedPref set logged.
  198.                         }
  199.                         else {
  200.                             //Toast.makeText(getContext(), "parola este greșită", Toast.LENGTH_LONG).show();
  201.                         }
  202.                     } catch (JSONException e) {
  203.                         e.printStackTrace();
  204.                     }
  205.                 }
  206.  
  207.             }
  208.         },new Response.ErrorListener(){
  209.             @Override
  210.             public void onErrorResponse(VolleyError volleyError) {
  211.  
  212.             }
  213.         });
  214.         // inițializare codă de apeluri
  215.         RequestQueue rQueue = Volley.newRequestQueue(getContext());
  216.         // adaugă apleul în coadă pentru a fi executat.
  217.         rQueue.add(request);
  218.     }
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement