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" />
+
+