Advertisement
Guest User

Untitled

a guest
Mar 24th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.43 KB | None | 0 0
  1. package com.example.multikultiapplication;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.support.annotation.NonNull;
  7. import android.support.design.widget.FloatingActionButton;
  8. import android.support.design.widget.Snackbar;
  9. import android.support.v7.widget.LinearLayoutManager;
  10. import android.support.v7.widget.RecyclerView;
  11. import android.view.View;
  12. import android.support.design.widget.NavigationView;
  13. import android.support.v4.view.GravityCompat;
  14. import android.support.v4.widget.DrawerLayout;
  15. import android.support.v7.app.ActionBarDrawerToggle;
  16. import android.support.v7.app.AppCompatActivity;
  17. import android.support.v7.widget.Toolbar;
  18. import android.view.Menu;
  19. import android.view.MenuItem;
  20. import android.widget.TextView;
  21. import android.widget.Toast;
  22.  
  23. import com.example.multikultiapplication.Holder.EventViewHolder;
  24. import com.example.multikultiapplication.Holder.ItemClickListener;
  25. import com.example.multikultiapplication.Model.Event;
  26. import com.firebase.ui.database.FirebaseRecyclerAdapter;
  27. import com.google.firebase.auth.FirebaseAuth;
  28. import com.google.firebase.database.DataSnapshot;
  29. import com.google.firebase.database.DatabaseError;
  30. import com.google.firebase.database.DatabaseReference;
  31. import com.google.firebase.database.FirebaseDatabase;
  32. import com.google.firebase.database.ValueEventListener;
  33. import com.squareup.picasso.Picasso;
  34.  
  35. import java.util.Map;
  36. import java.util.Random;
  37.  
  38. public class MainActivity extends AppCompatActivity
  39. implements NavigationView.OnNavigationItemSelectedListener {
  40. RecyclerView recyclerView;
  41. RecyclerView.LayoutManager layoutManager ;
  42. DatabaseReference databaseReference;
  43. private FirebaseAuth mAuth;
  44. private ProgressDialog mProgress;
  45. private FirebaseAuth.AuthStateListener mAuthListener;
  46.  
  47. @Override
  48. protected void onCreate(Bundle savedInstanceState) {
  49. super.onCreate(savedInstanceState);
  50. setContentView(R.layout.activity_activity_main);
  51. setTitle("MultiKulti - wydarzenia");
  52. Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
  53. setSupportActionBar(toolbar);
  54.  
  55. FirebaseAuth.AuthStateListener mAuthListener = new FirebaseAuth.AuthStateListener() {
  56. @Override
  57. public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
  58. if (firebaseAuth.getCurrentUser() != null) {
  59. Intent intent = new Intent(MainActivity.this, SignIn.class);
  60. startActivity(intent);
  61.  
  62. }
  63. }
  64. };
  65.  
  66. FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
  67. fab.setOnClickListener(new View.OnClickListener() {
  68. @Override
  69. public void onClick(View view) {
  70. Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
  71. .setAction("Action", null).show();
  72. }
  73. });
  74.  
  75. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  76. ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
  77. this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
  78. drawer.addDrawerListener(toggle);
  79. toggle.syncState();
  80.  
  81. NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
  82. navigationView.setNavigationItemSelectedListener(this);
  83.  
  84. FirebaseDatabase database= FirebaseDatabase.getInstance();
  85. databaseReference=database.getReference("event") ;
  86.  
  87. recyclerView=findViewById(R.id.eventlist);
  88. recyclerView.setHasFixedSize(true);
  89. layoutManager= new LinearLayoutManager(this);
  90. recyclerView.setLayoutManager(layoutManager);
  91.  
  92. loadEvent();
  93. }
  94.  
  95. private void loadEvent() {
  96.  
  97. FirebaseRecyclerAdapter<Event, EventViewHolder> adapter =new FirebaseRecyclerAdapter<Event, EventViewHolder>(Event.class,R.layout.event_item,EventViewHolder.class,databaseReference) {
  98. @Override
  99. protected void populateViewHolder(EventViewHolder viewHolder, Event model, int position) {
  100. viewHolder.textDescription.setText(model.getDescription());
  101. viewHolder.textPlace.setText(model.getPlace());
  102. viewHolder.textName.setText(model.getName());
  103. viewHolder.textPrice.setText(model.getPrice());
  104. Picasso.get().load(model.getImage()).into(viewHolder.imageViewevent);
  105.  
  106. viewHolder.setItemClickListener(new ItemClickListener() {
  107. @Override
  108. public void onClick(View view, int position, boolean isLongClick) {
  109. position++;
  110. Toast.makeText(MainActivity.this,R.string.dodanoDoZamówienia,Toast.LENGTH_SHORT).show(); //wyswietla komunikat o dodanieiu do ulubionycha
  111. DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference().child("event");//pobiera referencje do eventu w bazie
  112. DatabaseReference currentEvent = mDatabase.child(Integer.toString(position)); //pobieranie odpowiedniego eventu
  113. currentEvent.addValueEventListener(new ValueEventListener() { //odbywa sie praca z danymi
  114. @Override
  115. public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  116. Map<String,Object> map = (Map)dataSnapshot.getValue();
  117. String des=((String)map.get("description"));
  118. String image=((String)map.get("image"));
  119. String name=((String)map.get("name"));
  120. String place= ((String)map.get("place"));
  121. String price=((String)map.get("price"));
  122.  
  123.  
  124.  
  125. addtoCard(des,image,name,place,price);
  126.  
  127.  
  128.  
  129. }
  130.  
  131. @Override
  132. public void onCancelled(@NonNull DatabaseError databaseError) {
  133.  
  134. }
  135. });
  136.  
  137. }
  138. });
  139. }
  140. };
  141. recyclerView.setAdapter(adapter);
  142. }
  143.  
  144. private void addtoCard(String des, String image, String name, String place, String price) {
  145. mAuth = FirebaseAuth.getInstance();
  146. DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
  147. DatabaseReference currentUserDB = mDatabase.child(mAuth.getCurrentUser().getUid());
  148.  
  149. Random ran = new Random();
  150. int x = ran.nextInt(100) + 500;
  151. final String str = Integer.toString(x);
  152. String uid= currentUserDB.getKey();
  153. DatabaseReference mDatabase1 = FirebaseDatabase.getInstance().getReference().child("fav");
  154. DatabaseReference currentEvent = mDatabase1.child(uid);
  155. DatabaseReference databaseReference=currentEvent.child(str);
  156.  
  157. databaseReference.child("description").setValue(des);
  158. databaseReference.child("image").setValue(image);
  159. databaseReference.child("name").setValue(place);
  160. databaseReference.child("place").setValue(name);
  161. databaseReference.child("price").setValue(price);
  162. }
  163.  
  164. @Override
  165. public void onBackPressed() {
  166. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  167. if (drawer.isDrawerOpen(GravityCompat.START)) {
  168. drawer.closeDrawer(GravityCompat.START);
  169. } else {
  170. super.onBackPressed();
  171. }
  172. }
  173.  
  174. @Override
  175. public boolean onCreateOptionsMenu(Menu menu) {
  176. // Inflate the menu; this adds items to the action bar if it is present.
  177. getMenuInflater().inflate(R.menu.activity_main, menu);
  178. return true;
  179. }
  180.  
  181. @Override
  182. public boolean onOptionsItemSelected(MenuItem item) {
  183. // Handle action bar item clicks here. The action bar will
  184. // automatically handle clicks on the Home/Up button, so long
  185. // as you specify a parent activity in AndroidManifest.xml.
  186. int id = item.getItemId();
  187.  
  188. //noinspection SimplifiableIfStatement
  189. if (id == R.id.action_settings) {
  190. return true;
  191. }
  192.  
  193. return super.onOptionsItemSelected(item);
  194. }
  195.  
  196. @SuppressWarnings("StatementWithEmptyBody")
  197. @Override
  198. public boolean onNavigationItemSelected(MenuItem item) {
  199. // Handle navigation view item clicks here.
  200. int id = item.getItemId();
  201.  
  202. if (id == R.id.my_profile) {
  203.  
  204. Intent intent = new Intent(MainActivity.this,UserProfile.class);
  205. startActivity(intent);
  206.  
  207. } else if (id == R.id.add_event) {
  208.  
  209. Intent intent = new Intent(MainActivity.this,AddKulti.class);
  210. startActivity(intent);
  211.  
  212. } else if (id == R.id.favourite_events) {
  213.  
  214. Intent intent = new Intent(MainActivity.this,FavouriteEvents.class);
  215. startActivity(intent);
  216.  
  217. } else if (id == R.id.log_out) {
  218.  
  219. FirebaseAuth.getInstance().signOut();
  220. Intent intent = new Intent(MainActivity.this,SignIn.class);
  221. startActivity(intent);
  222. }
  223. DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
  224. drawer.closeDrawer(GravityCompat.START);
  225. return true;
  226.  
  227. }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement