package com.codingbingo.fastreader.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import com.codingbingo.fastreader.Constants;
import com.codingbingo.fastreader.R;
import com.codingbingo.fastreader.base.BaseActivity;
import com.codingbingo.fastreader.dao.Book;
import com.codingbingo.fastreader.dao.BookDao;
import com.codingbingo.fastreader.ui.fragment.ChapterListFragment;
import com.codingbingo.fastreader.ui.fragment.ReadingFragment;
import java.util.List;
/**
* Author: bingo
* Email: codingbingo@gmail.com
* By 2017/1/11.
*/
public class ReadingActivity extends BaseActivity implements View.OnClickListener {
private ChapterListFragment mChapterListFragment;
private ReadingFragment mReadingFragment;
private long bookId = NO_BOOK_ID;
private String bookPath;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//进入activity,先进入全屏状态
WindowManager.LayoutParams params = getWindow().getAttributes();
params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setAttributes(params);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
setContentView(R.layout.activity_reading);
init();
initView();
}
private void init() {
Intent intent = getIntent();
if (intent.hasExtra("type") == false) {
finish();
return;
}
switch (intent.getIntExtra("type", Constants.TYPE_FROM_MAIN_ACTIVITY)) {
case Constants.TYPE_FROM_MAIN_ACTIVITY:
//从主页面进来的,说明本地数据已经插入数据库了
bookId = intent.getLongExtra("bookId", 0);
break;
case Constants.TYPE_FROM_LOCAL_FILE_ACTIVITY:
bookPath = intent.getStringExtra("bookPath");
//防止用户再从文件列表页点击进入
List<Book> bookList = getDaoSession().getBookDao().queryBuilder().where(BookDao.Properties.BookPath.eq(bookPath)).list();
if (bookList.size() != 0) {
bookId = bookList.get(0).getId();
break;
}
}
}
private void initView() {
mReadingFragment = new ReadingFragment();
mReadingFragment.setBookId(bookId);
mReadingFragment.setBookPath(bookPath);
mReadingFragment.setOnClickListener(this);
mChapterListFragment = new ChapterListFragment();
mChapterListFragment.setBookId(bookId);
mChapterListFragment.setBookPath(bookPath);
if (mReadingFragment.isAdded()){
getFragmentManager()
.beginTransaction()
.show(mReadingFragment)
.commitAllowingStateLoss();
} else{
getFragmentManager()
.beginTransaction()
.add(R.id.reading_container, mReadingFragment)
.commitAllowingStateLoss();
}
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.backBtn:
finish();
break;
case R.id.book_contents:
getFragmentManager()
.beginTransaction()
.replace(R.id.reading_container, mChapterListFragment)
.addToBackStack(null)
.commitAllowingStateLoss();
break;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (mReadingFragment.isHidden() == false) {
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
mReadingFragment.nextPage();
return true;
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
mReadingFragment.prePage();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
}