Android Open Source - EbookExplorer Ebook Details Activity






From Project

Back to project page EbookExplorer.

License

The source code is released under:

Apache License

If you think the Android project EbookExplorer 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

package com.jiahaoliuliu.ebookexplorer;
/* ww w . j av a 2 s  .c  o m*/
import java.io.IOException;
import java.io.InputStream;

import nl.siegmann.epublib.domain.Book;
import nl.siegmann.epublib.epub.EpubReader;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuItem;
import com.dropbox.sync.android.DbxAccountManager;
import com.dropbox.sync.android.DbxException;
import com.dropbox.sync.android.DbxException.Unauthorized;
import com.dropbox.sync.android.DbxFile;
import com.dropbox.sync.android.DbxFileSystem;
import com.dropbox.sync.android.DbxPath;

import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class EbookDetailsActivity extends SherlockActivity {

  public static final String EBOOK_NAME_INTENT_KEY = "com.jiahaoliuliu.ebookexplorer.ebooksdetails.name";
  public static final String EBOOK_PATH_INTENT_KEY = "com.jiahaoliuliu.ebookexplorer.ebooksdetails.path";

  private static final String LOG_TAG = EbookDetailsActivity.class.getSimpleName();
  private static final String APP_KEY = "znc9n35hujd5e7y";
  private static final String APP_SECRET = "9j5xc567qroisd7";

  // The dropbox account manager
  private DbxAccountManager mDbxAcctMgr;

  // The dropbox file system
  private DbxFileSystem dbxFs;
  private Context context;

  private ImageView bookCoverImageView;
  private TextView noCoverImageTextView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Lock the screen
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    setContentView(R.layout.ebook_details);
    
      mDbxAcctMgr = DbxAccountManager.getInstance(getApplicationContext(), APP_KEY, APP_SECRET);
      context = this;

      // Link the content
      bookCoverImageView = (ImageView)findViewById(R.id.bookCoverImageView);
      noCoverImageTextView = (TextView)findViewById(R.id.noCoverImageTextView);

      // Set home up button
      getSupportActionBar().setHomeButtonEnabled(true);
      getSupportActionBar().setDisplayHomeAsUpEnabled(true);

      Intent startedIntent = getIntent();
      if (startedIntent.hasExtra(EBOOK_NAME_INTENT_KEY)) {
        // Set the name of the activity
        getSupportActionBar().setTitle(startedIntent.getStringExtra(EBOOK_NAME_INTENT_KEY));
        Log.v(LOG_TAG, "The app has the name of the ebook with it, which is " +
          startedIntent.getStringExtra(EBOOK_NAME_INTENT_KEY));
      }
      
      if (startedIntent.hasExtra(EBOOK_PATH_INTENT_KEY)) {
          DbxPath dbxPath = new DbxPath(startedIntent.getStringExtra(EBOOK_PATH_INTENT_KEY));
          openEbook(dbxPath);
      }
  }

  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
      // Back to the previous activity
      onBackPressed();
      return true;
    } else {
      return super.onOptionsItemSelected(item);
    }
  }

  private void openEbook(DbxPath dbxPath) {
    // Check the account manager
    if (!mDbxAcctMgr.hasLinkedAccount()) {
      Log.e(LOG_TAG, "Trying to open a ebook which the user has not linked its account");
      Toast.makeText(
          context,
          getResources().getString(R.string.error_message_account_not_linked),
          Toast.LENGTH_LONG).show();
      return;
    }

    // Open the file
    try {
      DbxFileSystem dbxFs = DbxFileSystem.forAccount(mDbxAcctMgr.getLinkedAccount());
      DbxFile fileOpened = dbxFs.open(dbxPath);
      
      Book book = (new EpubReader()).readEpub(fileOpened.getReadStream());

      // Log the book's authors
        Log.i(LOG_TAG, "author(s): " + book.getMetadata().getAuthors());

        // Log the book's title
        Log.i(LOG_TAG, "title: " + book.getTitle());

        // If the book has cover image
        if (book.getCoverImage() != null) {
          noCoverImageTextView.setVisibility(View.GONE);
          InputStream inputStream = book.getCoverImage().getInputStream();
          Bitmap coverImage =
              BitmapFactory.decodeStream(inputStream);
          bookCoverImageView.setVisibility(View.VISIBLE);
          bookCoverImageView.setImageBitmap(coverImage);
        }

      fileOpened.close();
    } catch (Unauthorized e) {
      Log.e(LOG_TAG, "Error. The user is not autorithed to get the file manager", e);
    } catch (DbxException dbxEception) {
      Log.e(LOG_TAG, "Error opening the file", dbxEception);
    } catch (IOException ioException) {
      Log.e(LOG_TAG, "Error opening the file", ioException);
    }
  }
}




Java Source Code List

android.support.v4.app.Watson.java
com.actionbarsherlock.ActionBarSherlock.java
com.actionbarsherlock.app.ActionBar.java
com.actionbarsherlock.app.SherlockActivity.java
com.actionbarsherlock.app.SherlockDialogFragment.java
com.actionbarsherlock.app.SherlockExpandableListActivity.java
com.actionbarsherlock.app.SherlockFragmentActivity.java
com.actionbarsherlock.app.SherlockFragment.java
com.actionbarsherlock.app.SherlockListActivity.java
com.actionbarsherlock.app.SherlockListFragment.java
com.actionbarsherlock.app.SherlockPreferenceActivity.java
com.actionbarsherlock.internal.ActionBarSherlockCompat.java
com.actionbarsherlock.internal.ActionBarSherlockNative.java
com.actionbarsherlock.internal.ResourcesCompat.java
com.actionbarsherlock.internal.app.ActionBarImpl.java
com.actionbarsherlock.internal.app.ActionBarWrapper.java
com.actionbarsherlock.internal.nineoldandroids.animation.AnimatorListenerAdapter.java
com.actionbarsherlock.internal.nineoldandroids.animation.AnimatorSet.java
com.actionbarsherlock.internal.nineoldandroids.animation.Animator.java
com.actionbarsherlock.internal.nineoldandroids.animation.FloatEvaluator.java
com.actionbarsherlock.internal.nineoldandroids.animation.FloatKeyframeSet.java
com.actionbarsherlock.internal.nineoldandroids.animation.IntEvaluator.java
com.actionbarsherlock.internal.nineoldandroids.animation.IntKeyframeSet.java
com.actionbarsherlock.internal.nineoldandroids.animation.KeyframeSet.java
com.actionbarsherlock.internal.nineoldandroids.animation.Keyframe.java
com.actionbarsherlock.internal.nineoldandroids.animation.ObjectAnimator.java
com.actionbarsherlock.internal.nineoldandroids.animation.PropertyValuesHolder.java
com.actionbarsherlock.internal.nineoldandroids.animation.TypeEvaluator.java
com.actionbarsherlock.internal.nineoldandroids.animation.ValueAnimator.java
com.actionbarsherlock.internal.nineoldandroids.view.NineViewGroup.java
com.actionbarsherlock.internal.nineoldandroids.view.animation.AnimatorProxy.java
com.actionbarsherlock.internal.nineoldandroids.widget.NineFrameLayout.java
com.actionbarsherlock.internal.nineoldandroids.widget.NineHorizontalScrollView.java
com.actionbarsherlock.internal.nineoldandroids.widget.NineLinearLayout.java
com.actionbarsherlock.internal.view.ActionProviderWrapper.java
com.actionbarsherlock.internal.view.StandaloneActionMode.java
com.actionbarsherlock.internal.view.View_HasStateListenerSupport.java
com.actionbarsherlock.internal.view.View_OnAttachStateChangeListener.java
com.actionbarsherlock.internal.view.menu.ActionMenuItemView.java
com.actionbarsherlock.internal.view.menu.ActionMenuItem.java
com.actionbarsherlock.internal.view.menu.ActionMenuPresenter.java
com.actionbarsherlock.internal.view.menu.ActionMenuView.java
com.actionbarsherlock.internal.view.menu.ActionMenu.java
com.actionbarsherlock.internal.view.menu.BaseMenuPresenter.java
com.actionbarsherlock.internal.view.menu.ListMenuItemView.java
com.actionbarsherlock.internal.view.menu.MenuBuilder.java
com.actionbarsherlock.internal.view.menu.MenuItemImpl.java
com.actionbarsherlock.internal.view.menu.MenuItemWrapper.java
com.actionbarsherlock.internal.view.menu.MenuPopupHelper.java
com.actionbarsherlock.internal.view.menu.MenuPresenter.java
com.actionbarsherlock.internal.view.menu.MenuView.java
com.actionbarsherlock.internal.view.menu.MenuWrapper.java
com.actionbarsherlock.internal.view.menu.SubMenuBuilder.java
com.actionbarsherlock.internal.view.menu.SubMenuWrapper.java
com.actionbarsherlock.internal.widget.AbsActionBarView.java
com.actionbarsherlock.internal.widget.ActionBarContainer.java
com.actionbarsherlock.internal.widget.ActionBarContextView.java
com.actionbarsherlock.internal.widget.ActionBarView.java
com.actionbarsherlock.internal.widget.CapitalizingButton.java
com.actionbarsherlock.internal.widget.CapitalizingTextView.java
com.actionbarsherlock.internal.widget.CollapsibleActionViewWrapper.java
com.actionbarsherlock.internal.widget.IcsAbsSpinner.java
com.actionbarsherlock.internal.widget.IcsAdapterView.java
com.actionbarsherlock.internal.widget.IcsColorDrawable.java
com.actionbarsherlock.internal.widget.IcsLinearLayout.java
com.actionbarsherlock.internal.widget.IcsListPopupWindow.java
com.actionbarsherlock.internal.widget.IcsProgressBar.java
com.actionbarsherlock.internal.widget.IcsSpinner.java
com.actionbarsherlock.internal.widget.IcsToast.java
com.actionbarsherlock.internal.widget.IcsView.java
com.actionbarsherlock.internal.widget.PopupWindowCompat.java
com.actionbarsherlock.internal.widget.ScrollingTabContainerView.java
com.actionbarsherlock.internal.widget.TabsLinearLayout.java
com.actionbarsherlock.view.ActionMode.java
com.actionbarsherlock.view.ActionProvider.java
com.actionbarsherlock.view.CollapsibleActionView.java
com.actionbarsherlock.view.MenuInflater.java
com.actionbarsherlock.view.MenuItem.java
com.actionbarsherlock.view.Menu.java
com.actionbarsherlock.view.SubMenu.java
com.actionbarsherlock.view.Window.java
com.actionbarsherlock.widget.ActivityChooserModel.java
com.actionbarsherlock.widget.ActivityChooserView.java
com.actionbarsherlock.widget.SearchView.java
com.actionbarsherlock.widget.ShareActionProvider.java
com.actionbarsherlock.widget.SuggestionsAdapter.java
com.jiahaoliuliu.ebookexplorer.EbookDetailsActivity.java
com.jiahaoliuliu.ebookexplorer.FolderAdapter.java
com.jiahaoliuliu.ebookexplorer.MainActivity.java
com.jiahaoliuliu.ebookexplorer.util.FolderListComparator.java
com.jiahaoliuliu.ebookexplorer.util.FolderLoader.java