Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.kristine.spaceadventure;
- import android.annotation.SuppressLint;
- import android.content.Context;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.graphics.Bitmap;
- import android.graphics.drawable.BitmapDrawable;
- import android.graphics.drawable.Drawable;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.support.constraint.ConstraintLayout;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- import com.bumptech.glide.Glide;
- import com.bumptech.glide.load.engine.DiskCacheStrategy;
- import com.bumptech.glide.request.RequestOptions;
- import com.bumptech.glide.request.target.SimpleTarget;
- import com.bumptech.glide.request.transition.Transition;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.ValueEventListener;
- import java.util.ArrayList;
- import java.util.List;
- public class StoryActivity extends AppCompatActivity {
- private DatabaseReference rootRef;
- private List<Chapters> list;
- private int startSize = 0;
- private int storyPosition, storyId;
- private TextView story;
- private Button left, right, finish, next;
- private ConstraintLayout layout;
- private FirebaseAuth mAuth;
- //private SharedPreferences pref;
- @SuppressLint("WrongViewCast")
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_story);
- rootRef = FirebaseDatabase.getInstance().getReference();
- mAuth = FirebaseAuth.getInstance();
- story = findViewById(R.id.textView_story);
- left = findViewById(R.id.button_left);
- right = findViewById(R.id.button_right);
- finish = findViewById(R.id.button_finish);
- next = findViewById(R.id.button_next);
- layout = findViewById(R.id.story_layout);
- Bundle extras = getIntent().getExtras();
- storyId = extras.getInt("STORY_ID");
- final int chapterSize = extras.getInt("CHAPTER_SIZE");
- storyPosition = extras.getInt("STORY_POSITION");
- rootRef.child("stories").child(String.valueOf(storyId)).child("chapters").addValueEventListener(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- list = new ArrayList<>();
- for (DataSnapshot ds: dataSnapshot.getChildren()){
- Chapters chapters = ds.getValue(Chapters.class);
- list.add(chapters);
- }
- /*TODO: Set up image in the background here*/
- story.setText(list.get(storyPosition).getPlot());
- //loadBackground(list.get(startSize).getImage_url(), getApplicationContext());
- if (list.get(storyPosition).isOptions()){
- next.setEnabled(false);
- setOptionText(list.get(storyPosition).getOption_text().getOption_first(),
- list.get(storyPosition).getOption_text().getOption_second());
- setOptionAnswer(left, list.get(storyPosition).getOption_text().
- getOption_story().getStory_first(), storyPosition, chapterSize);
- setOptionAnswer(right, list.get(storyPosition).getOption_text().
- getOption_story().getStory_second(), storyPosition, chapterSize);
- }
- next.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- storyPosition++;
- //loadBackground(list.get(startSize).getImage_url(), getApplicationContext());
- if (storyPosition < chapterSize){
- story.setText(list.get(storyPosition).getPlot());
- if (list.get(storyPosition).isOptions()){
- setOptionText(list.get(storyPosition).getOption_text().getOption_first(),
- list.get(storyPosition).getOption_text().getOption_second());
- setOptionAnswer(left, list.get(storyPosition).getOption_text().
- getOption_story().getStory_first(), storyPosition, chapterSize);
- setOptionAnswer(right, list.get(storyPosition).getOption_text().
- getOption_story().getStory_second(), storyPosition, chapterSize);
- } else {
- left.setVisibility(View.GONE);
- right.setVisibility(View.GONE);
- }
- //storyPosition++;
- } else {
- story.setText(list.get(storyPosition).getPlot());
- if (list.get(storyPosition).isOptions()) {
- setOptionText(list.get(storyPosition).getOption_text().getOption_first(),
- list.get(storyPosition).getOption_text().getOption_second());
- setOptionAnswer(left, list.get(storyPosition).getOption_text().
- getOption_story().getStory_first(), storyPosition, chapterSize);
- setOptionAnswer(right, list.get(storyPosition).getOption_text().
- getOption_story().getStory_second(), storyPosition, chapterSize);
- } else {
- left.setVisibility(View.GONE);
- right.setVisibility(View.GONE);
- next.setEnabled(false);
- finish.setVisibility(View.VISIBLE);
- }
- }
- }
- });
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {}
- });
- finish.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(getApplicationContext(), MainActivity.class));
- finish();
- }
- });
- findViewById(R.id.button_exit).setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(new Intent(getApplicationContext(), MainActivity.class));
- finish();
- }
- });
- }
- @Override
- protected void onStop() {
- super.onStop();
- User user = new User(storyPosition);
- rootRef.child("users").child(mAuth.getUid()).child(String.valueOf(storyId)).setValue(user);
- /* SharedPreferences.Editor editor = pref.edit();
- editor.putInt("position", storyPosition);
- editor.apply();*/
- }
- public void setOptionAnswer(Button button, final String text, final int start, final int end){
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- left.setVisibility(View.GONE);
- right.setVisibility(View.GONE);
- next.setEnabled(true);
- story.setText(text);
- if (start == end) {
- next.setEnabled(false);
- finish.setVisibility(View.VISIBLE);
- }
- }
- });
- }
- public void setOptionText(String textFirst, String textSecond){
- left.setVisibility(View.VISIBLE);
- right.setVisibility(View.VISIBLE);
- next.setEnabled(false);
- left.setText(textFirst);
- right.setText(textSecond);
- }
- public void loadBackground(String url, Context context){
- Glide.with(context).asBitmap().load(url).apply(new RequestOptions().
- diskCacheStrategy(DiskCacheStrategy.RESOURCE).fitCenter()).into(new SimpleTarget<Bitmap>() {
- @Override
- public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
- final Drawable dr = new BitmapDrawable(resource);
- runOnUiThread(new Runnable() {
- @Override
- public void run() {
- layout.setBackgroundDrawable(dr);
- }
- });
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment