diff --git a/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java b/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java index 4de9c150..f4e4bdb2 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java +++ b/Clover/app/src/main/java/org/floens/chan/core/ChanPreferences.java @@ -69,6 +69,10 @@ public class ChanPreferences { return p().getBoolean("preference_image_save_original", false); } + public static boolean getImageShareUrl() { + return p().getBoolean("preference_image_share_url", false); + } + public static boolean getWatchEnabled() { return p().getBoolean("preference_watch_enabled", false); } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java index 73745acf..b29ec766 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/BaseActivity.java @@ -113,6 +113,15 @@ public abstract class BaseActivity extends ThemeActivity implements PanelSlideLi updateIcon(); } + @Override + public void onBackPressed() { + if(pinDrawer.isDrawerOpen(pinDrawerView)) { + pinDrawer.closeDrawer(pinDrawerView); + } else { + super.onBackPressed(); + } + } + @Override protected void onDestroy() { super.onDestroy(); @@ -364,12 +373,9 @@ public abstract class BaseActivity extends ThemeActivity implements PanelSlideLi * @param url */ public void showUrlOpenPicker(String url) { - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - - Intent pickIntent = new Intent(Intent.ACTION_PICK_ACTIVITY); - pickIntent.putExtra(Intent.EXTRA_INTENT, intent); - - startActivityForResult(pickIntent, ACTION_OPEN_URL); + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.setData(Uri.parse(url)); + startActivity(intent); } /** diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java index a054ac31..66a43cca 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/ChanActivity.java @@ -201,10 +201,14 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele @Override public void onBackPressed() { - if (threadPane.isOpen()) { - super.onBackPressed(); + if(pinDrawer.isDrawerOpen(pinDrawerView)) { + pinDrawer.closeDrawer(pinDrawerView); } else { - threadPane.openPane(); + if (threadPane.isOpen()) { + super.onBackPressed(); + } else { + threadPane.openPane(); + } } } @@ -482,8 +486,12 @@ public class ChanActivity extends BaseActivity implements AdapterView.OnItemSele if (threadFragment.hasLoader()) { Loader loader = threadFragment.getLoader(); if (loader != null && loader.getLoadable().isThreadMode() && loader.getThread() != null) { - ChanApplication.getWatchManager().addPin(loader.getLoadable(), loader.getThread().op); - pinDrawer.openDrawer(pinDrawerView); + Pin pin = ChanApplication.getWatchManager().findPinByLoadable(threadLoadable); + if(pin != null) { + ChanApplication.getWatchManager().removePin(pin); + } else { + ChanApplication.getWatchManager().addPin(loader.getLoadable(), loader.getThread().op); + } updateActionBarState(); } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java index d92472c2..3c28d61f 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/fragment/ImageViewFragment.java @@ -21,6 +21,7 @@ import android.app.AlertDialog; import android.app.Fragment; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; @@ -241,9 +242,13 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal break; case R.id.action_image_save: case R.id.action_share: - ImageSaver.getInstance().saveImage(context, post.imageUrl, + if(ChanPreferences.getImageShareUrl()) { + shareImageUrl(post.imageUrl); + } else { + ImageSaver.getInstance().saveImage(context, post.imageUrl, ChanPreferences.getImageSaveOriginalFilename() ? Long.toString(post.tim) : post.filename, post.ext, item.getItemId() == R.id.action_share); + } break; default: // Search if it was an ImageSearch item @@ -258,6 +263,13 @@ public class ImageViewFragment extends Fragment implements ThumbnailImageViewCal } } + private void shareImageUrl(String url) { + Intent intent = new Intent(Intent.ACTION_SEND); + intent.setType("text/plain"); + intent.putExtra(Intent.EXTRA_TEXT, url); + context.startActivity(Intent.createChooser(intent, context.getString(R.string.action_share))); + } + public void onVideoError(File video) { if (ChanPreferences.getVideoErrorIgnore()) { Toast.makeText(context, R.string.image_open_failed, Toast.LENGTH_SHORT).show(); diff --git a/Clover/app/src/main/res/layout/image_view.xml b/Clover/app/src/main/res/layout/image_view.xml index 3a552a92..cb30dd32 100644 --- a/Clover/app/src/main/res/layout/image_view.xml +++ b/Clover/app/src/main/res/layout/image_view.xml @@ -41,7 +41,8 @@ along with this program. If not, see . style="@style/Widget.AppCompat.ProgressBar.Horizontal" android:id="@+id/progress_bar" android:layout_width="match_parent" - android:layout_height="wrap_content" /> + android:layout_height="wrap_content" + android:layout_marginTop="-19px"/> diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index b480a6bc..4bb663f4 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -195,6 +195,7 @@ along with this program. If not, see . Image save folder Use HTTPS Save original filename + Share url to image Ask before opening links Start playing videos immediately Auto refresh threads diff --git a/Clover/app/src/main/res/xml/preference_advanced.xml b/Clover/app/src/main/res/xml/preference_advanced.xml index c7ad96a2..dcea1185 100644 --- a/Clover/app/src/main/res/xml/preference_advanced.xml +++ b/Clover/app/src/main/res/xml/preference_advanced.xml @@ -25,6 +25,11 @@ along with this program. If not, see . android:key="preference_image_save_original" android:title="@string/preference_image_save_original" /> + +