diff --git a/Clover/app/src/main/java/org/floens/chan/chan/ImageSearch.java b/Clover/app/src/main/java/org/floens/chan/chan/ImageSearch.java index f6d91b16..4c1df343 100644 --- a/Clover/app/src/main/java/org/floens/chan/chan/ImageSearch.java +++ b/Clover/app/src/main/java/org/floens/chan/chan/ImageSearch.java @@ -26,7 +26,9 @@ public abstract class ImageSearch { public static final List engines = new ArrayList<>(); public abstract int getId(); + public abstract String getName(); + public abstract String getUrl(String imageUrl); static { 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/core/model/PostLinkable.java b/Clover/app/src/main/java/org/floens/chan/core/model/PostLinkable.java index a59803b8..c2de1ca3 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/model/PostLinkable.java +++ b/Clover/app/src/main/java/org/floens/chan/core/model/PostLinkable.java @@ -57,7 +57,7 @@ public class PostLinkable extends ClickableSpan { public void updateDrawState(TextPaint ds) { if (type == Type.QUOTE || type == Type.LINK || type == Type.THREAD) { if (type == Type.QUOTE) { - if (value instanceof Integer && post.getLinkableListener() != null && (Integer)value == post.getLinkableListener().getHighlightQuotesWithNo()) { + if (value instanceof Integer && post.getLinkableListener() != null && (Integer) value == post.getLinkableListener().getHighlightQuotesWithNo()) { ds.setColor(ThemeHelper.getInstance().getHighlightQuoteColor()); } else { ds.setColor(ThemeHelper.getInstance().getQuoteColor()); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java index 9d089554..8425f0b2 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/AdvancedSettingsActivity.java @@ -114,7 +114,7 @@ public class AdvancedSettingsActivity extends ThemeActivity { findPreference("preference_network_https").setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - ChanUrls.loadScheme((Boolean)newValue); + ChanUrls.loadScheme((Boolean) newValue); return true; } 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..4abe6451 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/BoardEditor.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/BoardEditor.java index e3516d67..74543edf 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/BoardEditor.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/BoardEditor.java @@ -152,7 +152,7 @@ public class BoardEditor extends ThemeActivity { } }); - ((ViewGroup)findViewById(R.id.content)).addView(listView); + ((ViewGroup) findViewById(R.id.content)).addView(listView); } @Override 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..252f6f5e 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/activity/ReplyActivity.java b/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java index 4b032a53..04d43ecf 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/activity/ReplyActivity.java @@ -62,7 +62,7 @@ public class ReplyActivity extends ThemeActivity { @Override public void onBackPressed() { Fragment f = getFragmentManager().findFragmentByTag("reply"); - if (f != null && ((ReplyFragment)f).onBackPressed()) { + if (f != null && ((ReplyFragment) f).onBackPressed()) { super.onBackPressed(); } } 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..c509fcf1 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, - ChanPreferences.getImageSaveOriginalFilename() ? Long.toString(post.tim) : post.filename, post.ext, - item.getItemId() == R.id.action_share); + 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/anim/fade_in.xml b/Clover/app/src/main/res/anim/fade_in.xml index 0cf24af2..11e35412 100644 --- a/Clover/app/src/main/res/anim/fade_in.xml +++ b/Clover/app/src/main/res/anim/fade_in.xml @@ -1,5 +1,4 @@ - - - - - + + diff --git a/Clover/app/src/main/res/drawable/pin_icon_gray.xml b/Clover/app/src/main/res/drawable/pin_icon_gray.xml index a48eb43a..11e275a6 100644 --- a/Clover/app/src/main/res/drawable/pin_icon_gray.xml +++ b/Clover/app/src/main/res/drawable/pin_icon_gray.xml @@ -1,5 +1,4 @@ - - - - - + + diff --git a/Clover/app/src/main/res/drawable/pin_icon_red.xml b/Clover/app/src/main/res/drawable/pin_icon_red.xml index eb1f09c4..0dcb2264 100644 --- a/Clover/app/src/main/res/drawable/pin_icon_red.xml +++ b/Clover/app/src/main/res/drawable/pin_icon_red.xml @@ -1,5 +1,4 @@ - - - - - + + diff --git a/Clover/app/src/main/res/layout/board_edit_item.xml b/Clover/app/src/main/res/layout/board_edit_item.xml index ea8e2c3d..476ab90d 100644 --- a/Clover/app/src/main/res/layout/board_edit_item.xml +++ b/Clover/app/src/main/res/layout/board_edit_item.xml @@ -1,5 +1,4 @@ - - - @@ -30,7 +28,7 @@ along with this program. If not, see . android:paddingBottom="12dp" android:paddingLeft="16dp" android:paddingTop="12dp" - style="?attr/board_edit_item_style"/> + style="?attr/board_edit_item_style" /> . android:layout_marginLeft="36dp" android:gravity="center_vertical" android:minHeight="50sp" - android:textSize="24sp"/> + android:textSize="24sp" /> diff --git a/Clover/app/src/main/res/layout/board_select_add.xml b/Clover/app/src/main/res/layout/board_select_add.xml index c4abbb36..1a98c6f9 100644 --- a/Clover/app/src/main/res/layout/board_select_add.xml +++ b/Clover/app/src/main/res/layout/board_select_add.xml @@ -1,5 +1,4 @@ - - -. android:minHeight="?android:attr/listPreferredItemHeightSmall" android:textStyle="italic" android:singleLine="true" - android:ellipsize="end"/> + android:ellipsize="end" /> diff --git a/Clover/app/src/main/res/layout/board_select_spinner.xml b/Clover/app/src/main/res/layout/board_select_spinner.xml index df8e04cd..7c5d7805 100644 --- a/Clover/app/src/main/res/layout/board_select_spinner.xml +++ b/Clover/app/src/main/res/layout/board_select_spinner.xml @@ -1,5 +1,4 @@ - - -. android:paddingRight="?android:attr/listPreferredItemPaddingRight" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:singleLine="true" - android:ellipsize="end"/> + android:ellipsize="end" /> diff --git a/Clover/app/src/main/res/layout/board_select_spinner_dropdown.xml b/Clover/app/src/main/res/layout/board_select_spinner_dropdown.xml index 1ab963d9..320a59b8 100644 --- a/Clover/app/src/main/res/layout/board_select_spinner_dropdown.xml +++ b/Clover/app/src/main/res/layout/board_select_spinner_dropdown.xml @@ -1,5 +1,4 @@ - - -. android:paddingRight="?android:attr/listPreferredItemPaddingRight" android:minHeight="?android:attr/listPreferredItemHeightSmall" android:singleLine="true" - android:ellipsize="end"/> + android:ellipsize="end" /> diff --git a/Clover/app/src/main/res/layout/folder_pick.xml b/Clover/app/src/main/res/layout/folder_pick.xml index 6e91a38d..c201752b 100644 --- a/Clover/app/src/main/res/layout/folder_pick.xml +++ b/Clover/app/src/main/res/layout/folder_pick.xml @@ -85,7 +85,7 @@ along with this program. If not, see . + android:background="@android:color/darker_gray" /> . 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="-7dp" /> diff --git a/Clover/app/src/main/res/menu/settings.xml b/Clover/app/src/main/res/menu/settings.xml index 4b869035..74e44622 100644 --- a/Clover/app/src/main/res/menu/settings.xml +++ b/Clover/app/src/main/res/menu/settings.xml @@ -1,5 +1,4 @@ - -