Guest User

Untitled

a guest
Jun 4th, 2018
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.95 KB | None | 0 0
  1. package com.kristine.spaceadventure;
  2.  
  3. import android.annotation.SuppressLint;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.content.SharedPreferences;
  7. import android.graphics.Bitmap;
  8. import android.graphics.drawable.BitmapDrawable;
  9. import android.graphics.drawable.Drawable;
  10. import android.support.annotation.NonNull;
  11. import android.support.annotation.Nullable;
  12. import android.support.constraint.ConstraintLayout;
  13. import android.support.v7.app.AppCompatActivity;
  14. import android.os.Bundle;
  15. import android.view.View;
  16. import android.widget.Button;
  17. import android.widget.TextView;
  18.  
  19. import com.bumptech.glide.Glide;
  20. import com.bumptech.glide.load.engine.DiskCacheStrategy;
  21. import com.bumptech.glide.request.RequestOptions;
  22. import com.bumptech.glide.request.target.SimpleTarget;
  23. import com.bumptech.glide.request.transition.Transition;
  24. import com.google.firebase.auth.FirebaseAuth;
  25. import com.google.firebase.database.DataSnapshot;
  26. import com.google.firebase.database.DatabaseError;
  27. import com.google.firebase.database.DatabaseReference;
  28. import com.google.firebase.database.FirebaseDatabase;
  29. import com.google.firebase.database.ValueEventListener;
  30.  
  31. import java.util.ArrayList;
  32. import java.util.List;
  33.  
  34. public class StoryActivity extends AppCompatActivity {
  35.     private DatabaseReference rootRef;
  36.     private List<Chapters> list;
  37.     private int startSize = 0;
  38.     private int storyPosition, storyId;
  39.     private TextView story;
  40.     private Button left, right, finish, next;
  41.     private ConstraintLayout layout;
  42.     private FirebaseAuth mAuth;
  43.     //private SharedPreferences pref;
  44.  
  45.     @SuppressLint("WrongViewCast")
  46.     @Override
  47.     protected void onCreate(Bundle savedInstanceState) {
  48.         super.onCreate(savedInstanceState);
  49.         setContentView(R.layout.activity_story);
  50.  
  51.         rootRef = FirebaseDatabase.getInstance().getReference();
  52.         mAuth = FirebaseAuth.getInstance();
  53.  
  54.         story = findViewById(R.id.textView_story);
  55.         left = findViewById(R.id.button_left);
  56.         right = findViewById(R.id.button_right);
  57.         finish = findViewById(R.id.button_finish);
  58.         next = findViewById(R.id.button_next);
  59.         layout = findViewById(R.id.story_layout);
  60.  
  61.         Bundle extras = getIntent().getExtras();
  62.         storyId = extras.getInt("STORY_ID");
  63.         final int chapterSize = extras.getInt("CHAPTER_SIZE");
  64.         storyPosition = extras.getInt("STORY_POSITION");
  65.  
  66.  
  67.         rootRef.child("stories").child(String.valueOf(storyId)).child("chapters").addValueEventListener(new ValueEventListener() {
  68.             @Override
  69.             public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  70.                 list = new ArrayList<>();
  71.                 for (DataSnapshot ds: dataSnapshot.getChildren()){
  72.                     Chapters chapters = ds.getValue(Chapters.class);
  73.                     list.add(chapters);
  74.                 }
  75.  
  76.                 /*TODO: Set up image in the background here*/
  77.                 story.setText(list.get(storyPosition).getPlot());
  78.                 //loadBackground(list.get(startSize).getImage_url(), getApplicationContext());
  79.  
  80.                 if (list.get(storyPosition).isOptions()){
  81.                     next.setEnabled(false);
  82.  
  83.                     setOptionText(list.get(storyPosition).getOption_text().getOption_first(),
  84.                             list.get(storyPosition).getOption_text().getOption_second());
  85.  
  86.                     setOptionAnswer(left, list.get(storyPosition).getOption_text().
  87.                             getOption_story().getStory_first(), storyPosition, chapterSize);
  88.                     setOptionAnswer(right, list.get(storyPosition).getOption_text().
  89.                             getOption_story().getStory_second(), storyPosition, chapterSize);
  90.  
  91.                 }
  92.  
  93.                 next.setOnClickListener(new View.OnClickListener() {
  94.                     @Override
  95.                     public void onClick(View v) {
  96.                         storyPosition++;
  97.                         //loadBackground(list.get(startSize).getImage_url(), getApplicationContext());
  98.                         if (storyPosition < chapterSize){
  99.                             story.setText(list.get(storyPosition).getPlot());
  100.  
  101.                             if (list.get(storyPosition).isOptions()){
  102.                                 setOptionText(list.get(storyPosition).getOption_text().getOption_first(),
  103.                                         list.get(storyPosition).getOption_text().getOption_second());
  104.  
  105.                                 setOptionAnswer(left, list.get(storyPosition).getOption_text().
  106.                                         getOption_story().getStory_first(), storyPosition, chapterSize);
  107.                                 setOptionAnswer(right, list.get(storyPosition).getOption_text().
  108.                                         getOption_story().getStory_second(), storyPosition, chapterSize);
  109.  
  110.                             } else {
  111.                                 left.setVisibility(View.GONE);
  112.                                 right.setVisibility(View.GONE);
  113.                             }
  114.                             //storyPosition++;
  115.                         } else {
  116.                             story.setText(list.get(storyPosition).getPlot());
  117.  
  118.                             if (list.get(storyPosition).isOptions()) {
  119.                                 setOptionText(list.get(storyPosition).getOption_text().getOption_first(),
  120.                                         list.get(storyPosition).getOption_text().getOption_second());
  121.  
  122.                                 setOptionAnswer(left, list.get(storyPosition).getOption_text().
  123.                                         getOption_story().getStory_first(), storyPosition, chapterSize);
  124.                                 setOptionAnswer(right, list.get(storyPosition).getOption_text().
  125.                                         getOption_story().getStory_second(), storyPosition, chapterSize);
  126.  
  127.                             } else {
  128.                                 left.setVisibility(View.GONE);
  129.                                 right.setVisibility(View.GONE);
  130.  
  131.                                 next.setEnabled(false);
  132.                                 finish.setVisibility(View.VISIBLE);
  133.                             }
  134.  
  135.                         }
  136.  
  137.  
  138.                     }
  139.                 });
  140.             }
  141.  
  142.             @Override
  143.             public void onCancelled(@NonNull DatabaseError databaseError) {}
  144.         });
  145.  
  146.  
  147.         finish.setOnClickListener(new View.OnClickListener() {
  148.             @Override
  149.             public void onClick(View v) {
  150.                 startActivity(new Intent(getApplicationContext(), MainActivity.class));
  151.                 finish();
  152.             }
  153.         });
  154.  
  155.         findViewById(R.id.button_exit).setOnClickListener(new View.OnClickListener() {
  156.             @Override
  157.             public void onClick(View v) {
  158.                 startActivity(new Intent(getApplicationContext(), MainActivity.class));
  159.                 finish();
  160.             }
  161.         });
  162.  
  163.     }
  164.  
  165.     @Override
  166.     protected void onStop() {
  167.         super.onStop();
  168.         User user = new User(storyPosition);
  169.         rootRef.child("users").child(mAuth.getUid()).child(String.valueOf(storyId)).setValue(user);
  170.  
  171. /*        SharedPreferences.Editor editor = pref.edit();
  172.         editor.putInt("position", storyPosition);
  173.         editor.apply();*/
  174.  
  175.     }
  176.  
  177.     public void setOptionAnswer(Button button, final String text, final int start, final int end){
  178.         button.setOnClickListener(new View.OnClickListener() {
  179.             @Override
  180.             public void onClick(View v) {
  181.                 left.setVisibility(View.GONE);
  182.                 right.setVisibility(View.GONE);
  183.                 next.setEnabled(true);
  184.                 story.setText(text);
  185.  
  186.                 if (start == end) {
  187.                     next.setEnabled(false);
  188.                     finish.setVisibility(View.VISIBLE);
  189.                 }
  190.             }
  191.         });
  192.  
  193.  
  194.  
  195.     }
  196.    
  197.     public void setOptionText(String textFirst, String textSecond){
  198.         left.setVisibility(View.VISIBLE);
  199.         right.setVisibility(View.VISIBLE);
  200.         next.setEnabled(false);
  201.         left.setText(textFirst);
  202.         right.setText(textSecond);
  203.     }
  204.  
  205.     public void loadBackground(String url, Context context){
  206.         Glide.with(context).asBitmap().load(url).apply(new RequestOptions().
  207.                 diskCacheStrategy(DiskCacheStrategy.RESOURCE).fitCenter()).into(new SimpleTarget<Bitmap>() {
  208.             @Override
  209.             public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
  210.                 final Drawable dr = new BitmapDrawable(resource);
  211.                 runOnUiThread(new Runnable() {
  212.                     @Override
  213.                     public void run() {
  214.                         layout.setBackgroundDrawable(dr);
  215.                     }
  216.                 });
  217.  
  218.             }
  219.         });
  220.  
  221.  
  222.  
  223.     }
  224.  
  225.  
  226.  
  227. }
Advertisement
Add Comment
Please, Sign In to add comment