private void shareComicUrl() { Intent share = new Intent(android.content.Intent.ACTION_SEND); share.setType("text/plain"); // share.putExtra(Intent.EXTRA_SUBJECT, mSharedPreferences.getString(("title" + // String.valueOf(sFavorites[sFavoriteIndex])), "")); share.putExtra(Intent.EXTRA_SUBJECT, PrefHelper.getTitle(sFavorites[sFavoriteIndex])); if (PrefHelper.shareMobile()) { share.putExtra( Intent.EXTRA_TEXT, "http://m.xkcd.com/" + String.valueOf(sFavorites[sFavoriteIndex])); } else { share.putExtra( Intent.EXTRA_TEXT, "http://xkcd.com/" + String.valueOf(sFavorites[sFavoriteIndex])); } startActivity(Intent.createChooser(share, this.getResources().getString(R.string.share_url))); }
private boolean modifyFavorites() { final int mRemoved = sFavorites[sFavoriteIndex]; final Bitmap mRemovedBitmap = mComicMap.get(sFavoriteIndex).getBitmap(); // final String mAlt = mSharedPreferences.getString(("alt" + // String.valueOf(sFavorites[sFavoriteIndex])), ""); // final String mTitle = mSharedPreferences.getString(("title" + // String.valueOf(sFavorites[sFavoriteIndex])), ""); final String mAlt = PrefHelper.getAlt(sFavorites[sFavoriteIndex]); final String mTitle = PrefHelper.getTitle(sFavorites[sFavoriteIndex]); new DeleteImageTask().execute(mRemoved); View.OnClickListener oc = new View.OnClickListener() { @Override public void onClick(View v) { Favorites.addFavoriteItem(getActivity(), String.valueOf(mRemoved)); try { FileOutputStream fos = getActivity().openFileOutput(String.valueOf(mRemoved), Context.MODE_PRIVATE); mRemovedBitmap.compress(Bitmap.CompressFormat.PNG, 100, fos); fos.close(); } catch (Exception e) { e.printStackTrace(); } /*SharedPreferences sharedPreferences = getActivity().getPreferences(Activity.MODE_PRIVATE); SharedPreferences.Editor mEditor = sharedPreferences.edit(); mEditor.putString(("title" + String.valueOf(mRemoved)), mTitle); mEditor.putString(("alt" + String.valueOf(mRemoved)), mAlt); mEditor.apply();*/ PrefHelper.addTitle(mTitle, mRemoved); PrefHelper.addAlt(mAlt, mRemoved); refresh(); } }; FloatingActionButton fab = (FloatingActionButton) getActivity().findViewById(R.id.fab); Snackbar.make(fab, R.string.snackbar_remove, Snackbar.LENGTH_LONG) .setAction(R.string.snackbar_undo, oc) .show(); return true; }
@Override public Object instantiateItem(ViewGroup container, final int position) { View itemView = mLayoutInflater.inflate(R.layout.pager_item, container, false); final PhotoView pvComic = (PhotoView) itemView.findViewById(R.id.ivComic); itemView.setTag(position); final TextView tvAlt = (TextView) itemView.findViewById(R.id.tvAlt); if (PrefHelper.altByDefault()) { tvAlt.setVisibility(View.VISIBLE); } tvAlt.setText(PrefHelper.getAlt(sFavorites[position])); // fix for issue #2 pvComic.setOnDoubleTapListener( new GestureDetector.OnDoubleTapListener() { @Override public boolean onDoubleTap(MotionEvent e) { if (pvComic.getScale() < 0.5f * pvComic.getMaximumScale()) { pvComic.setScale(0.5f * pvComic.getMaximumScale(), true); } else if (pvComic.getScale() < pvComic.getMaximumScale()) { pvComic.setScale(pvComic.getMaximumScale(), true); } else { pvComic.setScale(1.0f, true); } return true; } @Override public boolean onSingleTapConfirmed(MotionEvent e) { if (!PrefHelper.altLongTap()) { if (PrefHelper.classicAltStyle()) { toggleVisibility(tvAlt); } else { android.support.v7.app.AlertDialog.Builder mDialog = new android.support.v7.app.AlertDialog.Builder(getActivity()); mDialog.setMessage(tvAlt.getText()); mDialog.show(); } } return false; } @Override public boolean onDoubleTapEvent(MotionEvent e) { if (e.getAction() == MotionEvent.ACTION_UP) { fingerLifted = true; } if (e.getAction() == MotionEvent.ACTION_DOWN) { fingerLifted = false; } return false; } }); // Setup alt text and LongClickListener pvComic.setOnLongClickListener( new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { if (fingerLifted && PrefHelper.altLongTap()) { if (PrefHelper.altVibration()) { Vibrator vi = (Vibrator) getActivity().getSystemService(MainActivity.VIBRATOR_SERVICE); vi.vibrate(10); } // tvAlt.setText(PrefHelper.getAlt(sFavorites[sFavoriteIndex])); if (PrefHelper.classicAltStyle()) { toggleVisibility(tvAlt); } else { android.support.v7.app.AlertDialog.Builder mDialog = new android.support.v7.app.AlertDialog.Builder(getActivity()); mDialog.setMessage(tvAlt.getText()); mDialog.show(); } } return true; } }); // setup the title text view TextView tvTitle = (TextView) itemView.findViewById(R.id.tvTitle); tvTitle.setText(PrefHelper.getTitle(sFavorites[position])); if (PrefHelper.invertColors()) { float[] colorMatrix_Negative = { -1.0f, 0, 0, 0, 255, // red 0, -1.0f, 0, 0, 255, // green 0, 0, -1.0f, 0, 255, // blue 0, 0, 0, 1.0f, 0 // alpha }; ColorFilter cf = new ColorMatrixColorFilter(colorMatrix_Negative); pvComic.setColorFilter(cf); } // load the image pvComic.setImageBitmap(mComicMap.get(position).getBitmap()); if (Arrays.binarySearch( mContext.getResources().getIntArray(R.array.large_comics), sFavorites[sFavoriteIndex]) >= 0) { pvComic.setMaximumScale(7.0f); } // Disable ViewPager scrolling when the user zooms into an image pvComic.setOnMatrixChangeListener( new PhotoViewAttacher.OnMatrixChangedListener() { @Override public void onMatrixChanged(RectF rectF) { if (pvComic.getScale() > 1.4) { mPager.setLocked(true); } else { mPager.setLocked(false); } } }); container.addView(itemView); return itemView; }