Advertisement
Guest User

Untitled

a guest
Jun 4th, 2018
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.99 KB | None | 0 0
  1. package com.kristine.spaceadventure;
  2.  
  3. import android.content.Intent;
  4. import android.support.annotation.NonNull;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.os.Bundle;
  7. import android.support.v7.widget.LinearLayoutManager;
  8. import android.support.v7.widget.RecyclerView;
  9. import android.view.LayoutInflater;
  10. import android.view.Menu;
  11. import android.view.MenuInflater;
  12. import android.view.MenuItem;
  13. import android.view.View;
  14. import android.view.ViewGroup;
  15. import android.widget.Button;
  16. import android.widget.TextView;
  17.  
  18. import com.firebase.ui.database.FirebaseRecyclerAdapter;
  19. import com.firebase.ui.database.FirebaseRecyclerOptions;
  20. import com.google.firebase.auth.FirebaseAuth;
  21. import com.google.firebase.database.DataSnapshot;
  22. import com.google.firebase.database.DatabaseError;
  23. import com.google.firebase.database.DatabaseReference;
  24. import com.google.firebase.database.FirebaseDatabase;
  25. import com.google.firebase.database.Query;
  26. import com.google.firebase.database.ValueEventListener;
  27.  
  28. import java.util.ArrayList;
  29. import java.util.List;
  30.  
  31.  
  32. public class MainActivity extends AppCompatActivity {
  33.  
  34.     FirebaseAuth mAuth;
  35.     DatabaseReference rootRef;
  36.     FirebaseRecyclerAdapter adapter;
  37.     RecyclerView recyclerView;
  38.     User user;
  39.  
  40.     @Override
  41.     protected void onCreate(Bundle savedInstanceState) {
  42.         super.onCreate(savedInstanceState);
  43.         setContentView(R.layout.activity_main);
  44.  
  45.         mAuth = FirebaseAuth.getInstance();
  46.         rootRef = FirebaseDatabase.getInstance().getReference();
  47.  
  48.         recyclerView = findViewById(R.id.recyclerView_main);
  49.  
  50.         LinearLayoutManager manager = new LinearLayoutManager(this);
  51.         manager.setOrientation(LinearLayoutManager.VERTICAL);
  52.         recyclerView.setLayoutManager(manager);
  53.  
  54.         displayStories();
  55.  
  56.     }
  57.  
  58.     public void displayStories(){
  59.         Query query = FirebaseDatabase.getInstance().getReference()
  60.                 .child("stories");
  61.  
  62.         FirebaseRecyclerOptions<Stories> options = new FirebaseRecyclerOptions.
  63.                 Builder<Stories>().setQuery(query, Stories.class).build();
  64.  
  65.         adapter = new FirebaseRecyclerAdapter<Stories, StoriesHolder>(options) {
  66.             @NonNull
  67.             @Override
  68.             public StoriesHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
  69.                 View view = LayoutInflater.from(parent.getContext())
  70.                         .inflate(R.layout.single_layout_main, parent, false);
  71.                 return new StoriesHolder(view);
  72.             }
  73.  
  74.             @Override
  75.             protected void onBindViewHolder(@NonNull final StoriesHolder holder, final int position, @NonNull final Stories model) {
  76.                 //final List<User> tempList = new ArrayList<>();
  77.                 final List<User> list = new ArrayList<>();
  78.  
  79.  
  80.                 holder.textView.setText(model.getTittle());
  81.                 holder.cont.setOnClickListener(new View.OnClickListener() {
  82.                     @Override
  83.                     public void onClick(View v) {
  84.                         rootRef.child("users").child(mAuth.getUid()).addValueEventListener(new ValueEventListener() {
  85.                             @Override
  86.                             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  87.                                 for (DataSnapshot ds: dataSnapshot.getChildren()){
  88.                                     user = ds.getValue(User.class);
  89.                                     list.add(user);
  90.                                 }
  91.  
  92.  
  93.                             }
  94.  
  95.                             @Override
  96.                             public void onCancelled(@NonNull DatabaseError databaseError) { }
  97.                         });
  98.  
  99.                         Intent intent = new Intent(getApplicationContext(), StoryActivity.class);
  100.                         Bundle extras = new Bundle();
  101.                         extras.putInt("PROJECT_ID", position);
  102.                         extras.putInt("STORY_POSITION", list.get(position).getPosition());
  103.                         extras.putInt("STORY_ID", model.getPosition_on_tree());
  104.                         extras.putInt("CHAPTER_SIZE", model.getChapter_size());
  105.                         intent.putExtras(extras);
  106.                         startActivity(intent);
  107.                         finish();
  108.  
  109.                     }
  110.                 });
  111.  
  112.                 holder.reset.setOnClickListener(new View.OnClickListener() {
  113.                     @Override
  114.                     public void onClick(View v) {
  115.                         User user = new User(0);
  116.                         rootRef.child("users").child(mAuth.getUid()).child(String.valueOf(position)).setValue(user);
  117.                     }
  118.                 });
  119.  
  120.             }
  121.         };
  122.  
  123.         adapter.notifyDataSetChanged();
  124.         recyclerView.setAdapter(adapter);
  125.  
  126.     }
  127.  
  128.     @Override
  129.     protected void onStart() {
  130.         super.onStart();
  131.         adapter.startListening();
  132.     }
  133.  
  134.     class StoriesHolder extends RecyclerView.ViewHolder{
  135.         TextView textView;
  136.         Button reset;
  137.         Button cont;
  138.  
  139.         StoriesHolder(View itemView) {
  140.             super(itemView);
  141.             textView = itemView.findViewById(R.id.textView_main_storyName);
  142.             reset = itemView.findViewById(R.id.button_reset);
  143.             cont = itemView.findViewById(R.id.button_continue);
  144.         }
  145.     }
  146.  
  147.     @Override
  148.     public boolean onCreateOptionsMenu(Menu menu) {
  149.         MenuInflater inflater = getMenuInflater();
  150.         inflater.inflate(R.menu.menu_main_activity, menu);
  151.         return true;
  152.     }
  153.  
  154.     @Override
  155.     public boolean onOptionsItemSelected(MenuItem item) {
  156.         switch (item.getItemId()){
  157.             case R.id.item_logout:
  158.                 mAuth.signOut();
  159.                 startActivity(new Intent(getApplicationContext(), LoginActivity.class));
  160.                 finish();
  161.                 return true;
  162.             default:
  163.                 return super.onOptionsItemSelected(item);
  164.         }
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement