/** * Copyright (c) 2015 unfoldingWord * http://creativecommons.org/licenses/MIT/ * See LICENSE file for details. * Contributors: * PJ Fechner <pj@actsmedia.com> */ package activity.reading; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.View; import android.widget.FrameLayout; import android.widget.LinearLayout; import java.util.List; import eventbusmodels.BiblePagingEvent; import fragments.Reading.BibleReadingFragment; import model.DaoDBHelper; import model.daoModels.BibleChapter; import model.daoModels.Book; import model.daoModels.Project; import model.daoModels.Version; import utils.UWPreferenceManager; import view.ReadingToolbarViewBibleModel; import view.ReadingToolbarViewData; public class ReadingActivity extends BaseReadingActivity { // static private final String TAG = "ReadingActivity"; static private final int HIGH_TEXT_SIZE_LIMIT = 20; static private final int LOW_TEXT_SIZE_LIMIT = 10; private BibleReadingFragment readingFragment; private BibleReadingFragment secondaryReadingFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override protected void update() { super.update(); updateReadingView(); } @Override protected Version getSharingVersion() { BibleChapter activeChapter = getActiveChapter(); return(activeChapter != null)? activeChapter.getBook().getVersion() : null; } private BibleChapter getActiveChapter(){ return BiblePagingEvent.getStickyEvent(getApplicationContext()).mainChapter; } @Override protected ReadingToolbarViewData getToolbarViewData() { return new ReadingToolbarViewBibleModel(getApplicationContext()); } @Override protected Book getBook() { BibleChapter activeChapter = getActiveChapter(); return (activeChapter != null)? activeChapter.getBook() : null; } @Override protected Project getProject() { List<Project> projects = Project.getAllModels(DaoDBHelper.getDaoSession(getApplicationContext())); for(Project project : projects){ if(!project.getUniqueSlug().equalsIgnoreCase("obs")){ return project; } } return null; } protected void updateReadingView() { if(getActiveChapter() != null) { if (this.readingFragment == null) { this.readingFragment = createReadingFragment(readingLayout, false); } else { readingFragment.update(); } if (this.secondaryReadingFragment == null) { this.secondaryReadingFragment = createReadingFragment(secondaryReadingLayout, true); } else { secondaryReadingFragment.update(); } } } @Override protected int getCurrentTextSizeIndex() { return UWPreferenceManager.getBibleTextSizeIndex(getApplicationContext()); } @Override protected List<String> getTextSizeOptions() { return UWPreferenceManager.BIBLE_TEXT_SIZES; } @Override protected void setNewTextSize(int index) { updateTextSize(index); } // @Override // protected void makeTextLarger() { // // updateTextSize(UWPreferenceManager.getBibleTextSize(getApplicationContext()) + 1); // } // // @Override // protected void makeTextSmaller() { // // updateTextSize(UWPreferenceManager.getBibleTextSize(getApplicationContext()) - 1); // // } private void updateTextSize(int index){ UWPreferenceManager.setBibleTextSize(getApplicationContext(), index); int textSize = Integer.parseInt(UWPreferenceManager.getBibleTextSize(getApplicationContext())); if(readingFragment != null){ readingFragment.setTextSize(textSize); } if(secondaryReadingFragment != null){ secondaryReadingFragment.setTextSize(textSize); } // setTextLargerDisabled((textSize >= HIGH_TEXT_SIZE_LIMIT)); // setTextSmallerDisabled(textSize <= LOW_TEXT_SIZE_LIMIT); } private BibleReadingFragment createReadingFragment(FrameLayout layout, boolean secondLayout){ Fragment cachedFragment = getSupportFragmentManager().findFragmentByTag("BibleReadingFragment" + layout.getId()); if(cachedFragment != null){ BibleReadingFragment fragment = (BibleReadingFragment) cachedFragment; fragment.update(); return fragment; } else { BibleReadingFragment fragment = BibleReadingFragment.newInstance(secondLayout, Integer.parseInt(UWPreferenceManager.getBibleTextSize(getApplicationContext()))); getSupportFragmentManager().beginTransaction().add(layout.getId(), fragment, "BibleReadingFragment" + layout.getId()).commit(); return fragment; } } @Override protected boolean toggleDiglot(){ boolean shouldBeDiglot = super.toggleDiglot(); LinearLayout.LayoutParams mainReadingParams = (LinearLayout.LayoutParams) readingLayout.getLayoutParams(); LinearLayout.LayoutParams secondaryReadingParams = (LinearLayout.LayoutParams) secondaryReadingLayout.getLayoutParams(); mainReadingParams.weight = (shouldBeDiglot)? 0.4f : 1.0f; secondaryReadingParams.weight = (shouldBeDiglot)? 0.4f : 0.0f; readingLayout.setLayoutParams(mainReadingParams); secondaryReadingLayout.setLayoutParams(secondaryReadingParams); secondaryReadingLayout.setVisibility((shouldBeDiglot)? View.VISIBLE : View.GONE); return shouldBeDiglot; } }