private void _showUri() { version = bible.getVersion(); Log.d(TAG, "showuri: " + uri); if (uri == null) { Log.d(TAG, "show null uri, use default"); uri = Provider.CONTENT_URI_CHAPTER .buildUpon() .appendEncodedPath(null) .fragment(version) .build(); } Cursor cursor = null; try { cursor = getContentResolver().query(uri, null, null, null, null); } catch (SQLiteException e) { showContent("", getString(R.string.queryerror)); return; } catch (Exception e) { } if (cursor != null) { cursor.moveToFirst(); osis = cursor.getString(cursor.getColumnIndexOrThrow(Provider.COLUMN_OSIS)); osis_next = cursor.getString(cursor.getColumnIndexOrThrow(Provider.COLUMN_NEXT)); osis_prev = cursor.getString(cursor.getColumnIndexOrThrow(Provider.COLUMN_PREVIOUS)); final String human = cursor.getString(cursor.getColumnIndexOrThrow(Provider.COLUMN_HUMAN)); final String content = cursor.getString(cursor.getColumnIndexOrThrow(Provider.COLUMN_CONTENT)); cursor.close(); showContent(human + " | " + version, content); } else { Log.d(TAG, "no such chapter, try first chapter"); Uri nulluri = Provider.CONTENT_URI_CHAPTER .buildUpon() .appendEncodedPath(null) .fragment(version) .build(); if (!nulluri.equals(uri)) { uri = nulluri; showUri(); } else { showContent("", getString(R.string.queryerror)); } } }
private void _showData() { version = bible.getVersion(); SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); fontsize = sp.getInt("fontsize-" + version, 0); if (fontsize == 0) { fontsize = sp.getInt("fontsize", 16); } if (fontsize > 32) { fontsize = 32; } if (!osis.equals("")) { uri = Provider.CONTENT_URI_CHAPTER.buildUpon().appendEncodedPath(osis).build(); } showView(R.id.search, true); if (items == null || items.size() == 0) { showView(R.id.items, false); showView(R.id.book, true); showView(R.id.chapter, true); showUri(); } else { showView(R.id.items, true); showView(R.id.book, false); showView(R.id.chapter, false); if (this.index > -1 && this.index < items.size()) { showItem(this.index); } else { showItem(0); } } }
private boolean openOsis(String newOsis, String verse, String end) { if (newOsis == null || newOsis.equals("")) { return false; } if (!osis.equals(newOsis)) { uri = Provider.CONTENT_URI_CHAPTER.buildUpon().appendEncodedPath(newOsis).build(); if ("".equals(this.verse)) { this.verse = verse; } this.end = end; showUri(); } return true; }
public void onZoom(boolean zoomIn) { if (fontsize == 1 && !zoomIn) { return; } if (fontsize == 32 && zoomIn) { return; } fontsize += (zoomIn ? 1 : -1); Log.d(TAG, "update fontsize to " + fontsize); uri = Provider.CONTENT_URI_CHAPTER.buildUpon().appendEncodedPath(osis).build(); showUri(); setZoomButtonsController(webview); if (mZoomButtonsController != null) { mZoomButtonsController.setZoomOutEnabled(fontsize > 1); mZoomButtonsController.setZoomInEnabled(fontsize < 32); } }
@Override public void onItemClick(AdapterView<?> parent, View view, int pos, long id) { gridview.setVisibility(View.GONE); switch (gridviewid) { case R.id.book: int matt = getMatt(); String newbook; if (matt > 0) { if (pos % 2 == 0) { newbook = bible.get(Bible.TYPE.OSIS, pos / 2); } else { newbook = bible.get(Bible.TYPE.OSIS, matt + pos / 2); } } else { newbook = bible.get(Bible.TYPE.OSIS, pos); } if (!newbook.equals("") && !newbook.equals(book)) { storeOsisVersion(); chapter = PreferenceManager.getDefaultSharedPreferences(this).getString(newbook, "1"); openOsis(newbook + "." + chapter); } break; case R.id.chapter: openOsis(String.format("%s.%d", book, pos + 1)); break; case R.id.version: storeOsisVersion(); if (pos >= bible.getCount(Bible.TYPE.VERSION)) { String link_market = "<a href=\"market://search?q=" + getString(R.string.bibledatalink) + "&c=apps\">market://search?q=" + getString(R.string.bibledatahuman) + "&c=apps</a>"; String body = "<div id=\"pb-demo\">" + getString( R.string.moreversion, new Object[] { link_market, link_github, "<a href=\"mailto:[email protected]\">Liu DongMiao</a>" }) + "</div>\n"; showContent("", body); return; } version = bible.get(Bible.TYPE.VERSION, pos); Log.d(TAG, "version: " + version); bible.setVersion(version); fontsize = PreferenceManager.getDefaultSharedPreferences(this) .getInt("fontsize-" + version, fontsize); uri = Provider.CONTENT_URI_CHAPTER .buildUpon() .appendEncodedPath(osis) .fragment(version) .build(); showUri(); break; case R.id.items: if (items != null && pos < items.size()) { showItem(pos); } else { showView(R.id.book, true); showView(R.id.chapter, true); showView(R.id.items, false); items.clear(); findViewById(R.id.book).performClick(); } break; } }
@Override @SuppressLint("SetJavaScriptEnabled") protected void onCreate(Bundle savedInstanceState) { // on MB612, the search and share icon is so dark ... if (Build.MODEL.equals("MB612")) { setTheme(android.R.style.Theme_Light_NoTitleBar); } super.onCreate(savedInstanceState); setContentView(R.layout.chapter); findViewById(R.id.book).setOnClickListener(this); findViewById(R.id.chapter).setOnClickListener(this); findViewById(R.id.search).setOnClickListener(this); findViewById(R.id.version).setOnClickListener(this); findViewById(R.id.share).setOnClickListener(this); findViewById(R.id.items).setOnClickListener(this); adapter = new ArrayAdapter<String>(this, R.layout.grid) { private LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; ToggleButton grid = null; if (view == null) { view = inflater.inflate(R.layout.grid, null); } grid = (ToggleButton) view.findViewById(R.id.text1); grid.setTextOn(getItem(position)); grid.setTextOff(getItem(position)); grid.setChecked(getItem(position).equals(selected)); grid.setVisibility(getItem(position).equals("") ? View.INVISIBLE : View.VISIBLE); return view; } }; gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(adapter); gridview.setVisibility(View.GONE); gridview.setOnItemClickListener(this); setGestureDetector(); webview = (WebView) findViewById(R.id.webview); webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setSupportZoom(true); webview.getSettings().setBuiltInZoomControls(true); webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); webview.addJavascriptInterface( new Object() { @SuppressWarnings("unused") public void setVerse(String string) { synchronized (verseLock) { verse = string; Log.d(TAG, "verse from javascript: " + verse); verseLock.notifyAll(); } } @SuppressWarnings({"unused", "deprecation"}) public void setCopyText(String text) { if (!text.equals("")) { copytext = bible .getVersionFullname(version) .replace("(" + getString(R.string.demo) + ")", "") + " "; copytext += bible.get(Bible.TYPE.HUMAN, bible.getPosition(Bible.TYPE.OSIS, book)) + " " + chapter + ":" + text; ((android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE)) .setText(copytext); Log.d(TAG, "copy from javascript: " + copytext); } else { copytext = ""; } handler.sendEmptyMessage(COPYTEXT); } }, "android"); setZoomButtonsController(webview); osis = PreferenceManager.getDefaultSharedPreferences(this).getString("osis", "null"); uri = Provider.CONTENT_URI_CHAPTER.buildUpon().appendEncodedPath(osis).fragment(version).build(); setIntentData(); int color = 0x6633B5E5; Integer mHighlightColor = (Integer) Bible.getField(findViewById(R.id.version), TextView.class, "mHighlightColor"); if (mHighlightColor != null) { color = mHighlightColor.intValue(); } background = String.format( "background: rgba(%d, %d, %d, %.2f);", (color >> 16) & 0xFF, (color >> 8) & 0xFF, color & 0xFF, (color >>> 24) / 255.0); Log.d(TAG, "onCreate"); hasIntentData = true; font = new File( new File( new File( new File( new File(Environment.getExternalStorageDirectory(), "Android"), "data"), getPackageName()), "files"), "custom.ttf"); }