Android Open Source - adventure.datetime Story Description






From Project

Back to project page adventure.datetime.

License

The source code is released under:

MIT License

If you think the Android project adventure.datetime listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 *  Copyright (c) 2013 Andrew Fontaine, James Finlay, Jesse Tucker, Jacob Viau, and
 *   Evan DeGraff// w ww  .  ja v a2 s.c  om
 *
 *   Permission is hereby granted, free of charge, to any person obtaining a copy of
 *   this software and associated documentation files (the "Software"), to deal in
 *   the Software without restriction, including without limitation the rights to
 *   use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
 *   the Software, and to permit persons to whom the Software is furnished to do so,
 *   subject to the following conditions:
 *
 *   The above copyright notice and this permission notice shall be included in all
 *   copies or substantial portions of the Software.
 *
 *   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *   IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
 *   FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
 *   COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
 *   IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 *   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package ca.cmput301f13t03.adventure_datetime.view;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ImageView;
import ca.cmput301f13t03.adventure_datetime.R;
import ca.cmput301f13t03.adventure_datetime.model.AccountService;
import ca.cmput301f13t03.adventure_datetime.model.Bookmark;
import ca.cmput301f13t03.adventure_datetime.model.Interfaces.IBookmarkListListener;
import ca.cmput301f13t03.adventure_datetime.model.Interfaces.ICurrentStoryListener;
import ca.cmput301f13t03.adventure_datetime.model.Story;
import ca.cmput301f13t03.adventure_datetime.serviceLocator.Locator;

import java.util.Map;
import java.util.UUID;

/**
 * Show synopsis & more details about selected story. User can then play the selected story.
 * Utilizes fragments to allow swiping through available stories.
 * 
 * @author James Finlay
 */
public class StoryDescription extends Activity implements ICurrentStoryListener, IBookmarkListListener {
  private static final String TAG = "StoryDescription";
  public static final String SERVER = "doge.such.server";

  private ViewPager _viewPager;
  private Map<UUID, Bookmark> _bookmarks;
  private Map<UUID, Story> _stories;
  private Story _story;
  private int source;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.story_descript);

    source = getIntent().getIntExtra(SERVER, -1);
  }
  @Override
  public void OnBookmarkListChange(Map<UUID, Bookmark> newBookmarks) {
    _bookmarks = newBookmarks;
    setUpView();
  }
  @Override
  public void OnCurrentStoryChange(Story story) {
    _story = story;
    setUpView();
  }
  @Override
  public void onSaveInstanceState(Bundle outState) {}

  private void setUpView() {
    if (_story == null) return;
    if (_bookmarks == null) return;

    /** Layout items **/
    getActionBar().setTitle(_story.getTitle());

    /** Layout items **/
    Button play = (Button) findViewById(R.id.play); 
    Button restart = (Button) findViewById(R.id.restart);
        ImageView thumbnail = (ImageView) findViewById(R.id.thumbnail);
    TextView title  = (TextView) findViewById(R.id.title);
    TextView author  = (TextView) findViewById(R.id.author);
    TextView datetime = (TextView) findViewById(R.id.datetime);
    TextView fragments = (TextView) findViewById(R.id.fragments);
    TextView content = (TextView) findViewById(R.id.content);

    title.setText(_story.getTitle());
    author.setText("Author: " + _story.getAuthor());
    datetime.setText("Last Modified: " + _story.getFormattedTimestamp());
    fragments.setText("Fragments: " + _story.getFragmentIds().size());
    content.setText(_story.getSynopsis());

        thumbnail.setImageBitmap(_story.getThumbnail().decodeBitmap());

    if (_bookmarks.containsKey(_story.getId())) {
      play.setText("Continue Story");
      restart.setText("Start from the Beginning");
    } else {
      play.setVisibility(View.GONE);
      restart.setText("Play Story");
    }

    play.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Launch Story
        Locator.getUserController().ResumeStory(_story.getId());
        Intent intent = new Intent(StoryDescription.this, FragmentViewActivity.class);
        intent.putExtra(FragmentViewActivity.FOR_SERVER, source==BrowseFragment.SOURCE_ONLINE);
        startActivity(intent);
      }
    });

    restart.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        // Restart & Launch Story
        Locator.getUserController().StartStory(_story.getId());
        Intent intent = new Intent(StoryDescription.this, FragmentViewActivity.class);
        intent.putExtra(FragmentViewActivity.FOR_SERVER, source==BrowseFragment.SOURCE_ONLINE);
        startActivity(intent);
      }
    });
  }

  @Override
  public void onResume() {
    Locator.getPresenter().Subscribe((ICurrentStoryListener)this);
    Locator.getPresenter().Subscribe((IBookmarkListListener)this);
    super.onResume();
  }

  @Override
  public void onPause() {
    Locator.getPresenter().Unsubscribe((ICurrentStoryListener)this);
    Locator.getPresenter().Unsubscribe((IBookmarkListListener)this);
    super.onPause();
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    switch (source) {
    case BrowseFragment.SOURCE_ONLINE:
      getMenuInflater().inflate(R.menu.story_online, menu);
      break;
    case BrowseFragment.SOURCE_CACHE:
      getMenuInflater().inflate(R.menu.story_cache, menu);
      break;
    case BrowseFragment.SOURCE_AUTHOR:
      getMenuInflater().inflate(R.menu.story_author, menu);
      break;
    default:
      Log.e(TAG, "Something fked up");
      return false;
    }
    return true;
  }
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.action_comment:
      /**  Launch **/
      Locator.getUserController().StartStory(_story.getId());
      Intent intent = new Intent(this, CommentsView.class);
      intent.putExtra(CommentsView.COMMENT_TYPE, true);
      startActivity(intent);
      break;
    case R.id.action_download:
      /* Download to cache */
      Locator.getUserController().download();
      Toast.makeText(getApplicationContext(), "Downloaded!", Toast.LENGTH_LONG).show();
      break;
    case R.id.action_edit:
      /* Move from cache to authorship */
      Locator.getAuthorController().setStoryToAuthor(_story.getId(), AccountService.getUserName(getContentResolver()));
      intent = new Intent(StoryDescription.this, AuthorStoryDescription.class);
      startActivity(intent);  
      break;
    }
    return super.onOptionsItemSelected(item);
  }
}




Java Source Code List

ca.cmput301f13t03.adventure_datetime.controller.AuthorControllerTest.java
ca.cmput301f13t03.adventure_datetime.controller.AuthorController.java
ca.cmput301f13t03.adventure_datetime.controller.UserControllerTest.java
ca.cmput301f13t03.adventure_datetime.controller.UserController.java
ca.cmput301f13t03.adventure_datetime.model.AccountServiceTests.java
ca.cmput301f13t03.adventure_datetime.model.AccountService.java
ca.cmput301f13t03.adventure_datetime.model.BookmarkTest.java
ca.cmput301f13t03.adventure_datetime.model.Bookmark.java
ca.cmput301f13t03.adventure_datetime.model.ChoiceTest.java
ca.cmput301f13t03.adventure_datetime.model.Choice.java
ca.cmput301f13t03.adventure_datetime.model.CommentTest.java
ca.cmput301f13t03.adventure_datetime.model.Comment.java
ca.cmput301f13t03.adventure_datetime.model.ES.java
ca.cmput301f13t03.adventure_datetime.model.ImageTest.java
ca.cmput301f13t03.adventure_datetime.model.Image.java
ca.cmput301f13t03.adventure_datetime.model.StoryDBTest.java
ca.cmput301f13t03.adventure_datetime.model.StoryDB.java
ca.cmput301f13t03.adventure_datetime.model.StoryFragmentTest.java
ca.cmput301f13t03.adventure_datetime.model.StoryFragment.java
ca.cmput301f13t03.adventure_datetime.model.StoryManager.java
ca.cmput301f13t03.adventure_datetime.model.StoryTest.java
ca.cmput301f13t03.adventure_datetime.model.Story.java
ca.cmput301f13t03.adventure_datetime.model.ThreadPool.java
ca.cmput301f13t03.adventure_datetime.model.WebStorageCleaner.java
ca.cmput301f13t03.adventure_datetime.model.WebStorageTest.java
ca.cmput301f13t03.adventure_datetime.model.WebStorage.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.IAllFragmentsListener.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.IBookmarkListListener.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.ICommentsListener.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.ICurrentFragmentListener.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.ICurrentStoryListener.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.ILocalStorage.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.ILocalStoriesListener.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.IOnlineStoriesListener.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.IStoryModelDirector.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.IStoryModelPresenter.java
ca.cmput301f13t03.adventure_datetime.model.Interfaces.IWebStorage.java
ca.cmput301f13t03.adventure_datetime.serviceLocator.Locator.java
ca.cmput301f13t03.adventure_datetime.view.AuthorEdit_Edit.java
ca.cmput301f13t03.adventure_datetime.view.AuthorEdit_Overview.java
ca.cmput301f13t03.adventure_datetime.view.AuthorEdit.java
ca.cmput301f13t03.adventure_datetime.view.AuthorStories.java
ca.cmput301f13t03.adventure_datetime.view.AuthorStoryDescription.java
ca.cmput301f13t03.adventure_datetime.view.AuthorViewPager.java
ca.cmput301f13t03.adventure_datetime.view.BrowseFragment.java
ca.cmput301f13t03.adventure_datetime.view.BrowseView.java
ca.cmput301f13t03.adventure_datetime.view.CommentsView.java
ca.cmput301f13t03.adventure_datetime.view.ContinueView.java
ca.cmput301f13t03.adventure_datetime.view.FragmentViewActivity.java
ca.cmput301f13t03.adventure_datetime.view.FragmentView.java
ca.cmput301f13t03.adventure_datetime.view.FullScreen_Image.java
ca.cmput301f13t03.adventure_datetime.view.IFragmentSelected.java
ca.cmput301f13t03.adventure_datetime.view.MainViewTest.java
ca.cmput301f13t03.adventure_datetime.view.MainView.java
ca.cmput301f13t03.adventure_datetime.view.StoryDescription.java
ca.cmput301f13t03.adventure_datetime.view.treeView.Camera.java
ca.cmput301f13t03.adventure_datetime.view.treeView.ConnectionPlacer.java
ca.cmput301f13t03.adventure_datetime.view.treeView.FragmentConnection.java
ca.cmput301f13t03.adventure_datetime.view.treeView.FragmentNode.java
ca.cmput301f13t03.adventure_datetime.view.treeView.GridSegment.java
ca.cmput301f13t03.adventure_datetime.view.treeView.InputHandler.java
ca.cmput301f13t03.adventure_datetime.view.treeView.NodeGrid.java
ca.cmput301f13t03.adventure_datetime.view.treeView.NodePlacer.java
ca.cmput301f13t03.adventure_datetime.view.treeView.Region.java
ca.cmput301f13t03.adventure_datetime.view.treeView.TreeView.java