From 7d238eef26c4c877a6e0069f44a4c4ffec6059d8 Mon Sep 17 00:00:00 2001 From: NekoInverter <42698724+NekoInverter@users.noreply.github.com> Date: Fri, 23 Oct 2020 11:07:12 +0800 Subject: [PATCH] Minor improvements --- .../ehviewer/ui/scene/FavoritesScene.java | 6 +- .../ehviewer/ui/scene/GalleryListScene.java | 8 +- .../ehviewer/ui/scene/SelectSiteScene.java | 22 ++- .../hippo/ehviewer/ui/scene/SignInScene.java | 6 +- .../hippo/ehviewer/ui/scene/SolidScene.java | 8 +- .../com/hippo/ehviewer/widget/SearchBar.java | 4 + .../java/com/hippo/scene/SceneFragment.java | 7 + .../java/com/hippo/scene/StageActivity.java | 16 +- .../res/anim/scene_open_enter_horizontal.xml | 38 +++++ .../res/anim/scene_open_exit_horizontal.xml | 28 ++++ .../main/res/layout/activity_set_security.xml | 21 +-- app/src/main/res/layout/button_guide.xml | 4 +- app/src/main/res/layout/dialog_add_filter.xml | 1 + .../res/layout/dialog_checkbox_builder.xml | 2 +- .../res/layout/dialog_edittext_builder.xml | 1 + app/src/main/res/layout/dialog_hosts.xml | 2 + .../layout/dialog_list_checkbox_builder.xml | 2 +- .../main/res/layout/gallery_detail_header.xml | 2 +- app/src/main/res/layout/item_drawer_list.xml | 19 ++- app/src/main/res/layout/item_gallery_tag.xml | 2 +- .../res/layout/item_preference_header.xml | 69 -------- .../res/layout/preference_dialog_proxy.xml | 2 + app/src/main/res/layout/scene_analytics.xml | 52 +++--- .../main/res/layout/scene_cookie_sign_in.xml | 148 +++++++++--------- app/src/main/res/layout/scene_login.xml | 59 ++++--- app/src/main/res/layout/scene_select_site.xml | 102 ++++++------ app/src/main/res/layout/scene_warning.xml | 52 +++--- 27 files changed, 353 insertions(+), 330 deletions(-) create mode 100644 app/src/main/res/anim/scene_open_enter_horizontal.xml create mode 100644 app/src/main/res/anim/scene_open_exit_horizontal.xml delete mode 100644 app/src/main/res/layout/item_preference_header.xml diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index baaf8bc1a..9b1f2ffae 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -643,8 +643,10 @@ public class FavoritesScene extends BaseScene implements if (!mSearchMode) { enterSearchMode(true); - } else { - if (mSearchBar != null) { + } else if (mSearchBar != null) { + if (mSearchBar.getEditText().length() == 0) { + exitSearchMode(true); + }else { mSearchBar.applySearch(); } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index 56b1555dc..2126d0a3a 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -1237,8 +1237,12 @@ public final class GalleryListScene extends BaseScene if (mSearchBar.getState() == SearchBar.STATE_NORMAL) { setState(STATE_SEARCH); } else { - // Clear - mSearchBar.setText(""); + if (mSearchBar.getEditText().length() == 0) { + setState(STATE_NORMAL); + } else { + // Clear + mSearchBar.setText(""); + } } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SelectSiteScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/SelectSiteScene.java index 05bdd7669..dfd6f958b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SelectSiteScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SelectSiteScene.java @@ -20,11 +20,12 @@ import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import android.widget.RadioGroup; -import android.widget.Toast; import androidx.annotation.Nullable; +import com.google.android.material.button.MaterialButton; +import com.google.android.material.button.MaterialButtonToggleGroup; +import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; import com.hippo.ehviewer.Settings; import com.hippo.ehviewer.client.EhUrl; @@ -33,7 +34,7 @@ import com.hippo.yorozuya.ViewUtils; public class SelectSiteScene extends SolidScene implements View.OnClickListener { - private RadioGroup mRadioGroup; + private MaterialButtonToggleGroup mButtonGroup; private View mOk; @Override @@ -47,7 +48,12 @@ public class SelectSiteScene extends SolidScene implements View.OnClickListener @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.scene_select_site, container, false); - mRadioGroup = (RadioGroup) ViewUtils.$$(view, R.id.radio_group); + mButtonGroup = (MaterialButtonToggleGroup) ViewUtils.$$(view, R.id.button_group); + if (EhApplication.getEhCookieStore(requireContext()).hasSignedIn()) { + ((MaterialButton) view.findViewById(R.id.site_ex)).setChecked(true); + } else { + ((MaterialButton) view.findViewById(R.id.site_e)).setChecked(true); + } mOk = ViewUtils.$$(view, R.id.ok); mOk.setOnClickListener(this); @@ -59,19 +65,19 @@ public class SelectSiteScene extends SolidScene implements View.OnClickListener public void onDestroyView() { super.onDestroyView(); - mRadioGroup = null; + mButtonGroup = null; mOk = null; } @Override public void onClick(View v) { MainActivity activity = getActivity2(); - if (null == activity || null == mRadioGroup) { + if (null == activity || null == mButtonGroup) { return; } if (v == mOk) { - int id = mRadioGroup.getCheckedRadioButtonId(); + int id = mButtonGroup.getCheckedButtonId(); switch (id) { case R.id.site_e: Settings.putSelectSite(false); @@ -86,7 +92,7 @@ public class SelectSiteScene extends SolidScene implements View.OnClickListener finish(); break; default: - Toast.makeText(activity, R.string.no_select, Toast.LENGTH_SHORT).show(); + showTip(R.string.no_select, LENGTH_SHORT); break; } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java index ee3a21712..3b341bcdc 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SignInScene.java @@ -132,9 +132,9 @@ public final class SignInScene extends SolidScene implements EditText.OnEditorAc mSignInViaCookies = (TextView) ViewUtils.$$(loginForm, R.id.sign_in_via_cookies); mSkipSigningIn = (TextView) ViewUtils.$$(loginForm, R.id.skip_signing_in); - mSignInViaWebView.setPaintFlags(mSignInViaWebView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); - mSignInViaCookies.setPaintFlags(mSignInViaCookies.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); - mSkipSigningIn.setPaintFlags(mSignInViaCookies.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); + mSignInViaWebView.setPaintFlags(mSignInViaWebView.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); + mSignInViaCookies.setPaintFlags(mSignInViaCookies.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); + mSkipSigningIn.setPaintFlags(mSignInViaCookies.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG); mPassword.setOnEditorActionListener(this); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/SolidScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/SolidScene.java index fe480e48e..65e5ff119 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/SolidScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/SolidScene.java @@ -41,22 +41,22 @@ public class SolidScene extends BaseScene { switch (checkStep) { case CHECK_STEP_SECURITY: if (Settings.getShowWarning()) { - startScene(new Announcer(WarningScene.class).setArgs(args)); + startScene(new Announcer(WarningScene.class).setArgs(args), true); break; } case CHECK_STEP_WARNING: if (Settings.getAskAnalytics()) { - startScene(new Announcer(AnalyticsScene.class).setArgs(args)); + startScene(new Announcer(AnalyticsScene.class).setArgs(args), true); break; } case CHECK_STEP_ANALYTICS: if (EhUtils.needSignedIn(getContext2())) { - startScene(new Announcer(SignInScene.class).setArgs(args)); + startScene(new Announcer(SignInScene.class).setArgs(args), true); break; } case CHECK_STEP_SIGN_IN: if (Settings.getSelectSite()) { - startScene(new Announcer(SelectSiteScene.class).setArgs(args)); + startScene(new Announcer(SelectSiteScene.class).setArgs(args), true); break; } case CHECK_STEP_SELECT_SITE: diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java b/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java index 680a8f3bd..4131b4ede 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java @@ -437,6 +437,10 @@ public class SearchBar extends MaterialCardView implements View.OnClickListener, invalidate(); } + public SearchEditText getEditText(){ + return mEditText; + } + @Override public void draw(@NonNull Canvas canvas) { if (mInAnimation) { diff --git a/app/src/main/java/com/hippo/scene/SceneFragment.java b/app/src/main/java/com/hippo/scene/SceneFragment.java index d5a796c40..96ec19659 100644 --- a/app/src/main/java/com/hippo/scene/SceneFragment.java +++ b/app/src/main/java/com/hippo/scene/SceneFragment.java @@ -55,6 +55,13 @@ public class SceneFragment extends Fragment { public void onNewArguments(@NonNull Bundle args) { } + public void startScene(Announcer announcer, boolean horizontal) { + FragmentActivity activity = getActivity(); + if (activity instanceof StageActivity) { + ((StageActivity) activity).startScene(announcer, horizontal); + } + } + public void startScene(Announcer announcer) { FragmentActivity activity = getActivity(); if (activity instanceof StageActivity) { diff --git a/app/src/main/java/com/hippo/scene/StageActivity.java b/app/src/main/java/com/hippo/scene/StageActivity.java index ded724096..10cc9e5dc 100644 --- a/app/src/main/java/com/hippo/scene/StageActivity.java +++ b/app/src/main/java/com/hippo/scene/StageActivity.java @@ -244,6 +244,10 @@ public abstract class StageActivity extends EhActivity { } public void startScene(Announcer announcer) { + startScene(announcer, false); + } + + public void startScene(Announcer announcer, boolean horizontal) { Class clazz = announcer.clazz; Bundle args = announcer.args; TransitionHelper tranHelper = announcer.tranHelper; @@ -264,7 +268,11 @@ public abstract class StageActivity extends EhActivity { FragmentTransaction transaction = fragmentManager.beginTransaction(); // Use default animation - transaction.setCustomAnimations(R.anim.scene_open_enter, R.anim.scene_open_exit); + if (horizontal) { + transaction.setCustomAnimations(R.anim.scene_open_enter_horizontal, R.anim.scene_open_exit_horizontal); + } else { + transaction.setCustomAnimations(R.anim.scene_open_enter, R.anim.scene_open_exit); + } // Remove top fragments for (int j = i + 1; j < n; j++) { @@ -352,7 +360,11 @@ public abstract class StageActivity extends EhActivity { newScene.setEnterTransition(null); newScene.setExitTransition(null); // Set default animation - transaction.setCustomAnimations(R.anim.scene_open_enter, R.anim.scene_open_exit); + if (horizontal) { + transaction.setCustomAnimations(R.anim.scene_open_enter_horizontal, R.anim.scene_open_exit_horizontal); + } else { + transaction.setCustomAnimations(R.anim.scene_open_enter, R.anim.scene_open_exit); + } } // Detach current scene if (!currentScene.isDetached()) { diff --git a/app/src/main/res/anim/scene_open_enter_horizontal.xml b/app/src/main/res/anim/scene_open_enter_horizontal.xml new file mode 100644 index 000000000..09ce053c7 --- /dev/null +++ b/app/src/main/res/anim/scene_open_enter_horizontal.xml @@ -0,0 +1,38 @@ + + + + + + + + + diff --git a/app/src/main/res/anim/scene_open_exit_horizontal.xml b/app/src/main/res/anim/scene_open_exit_horizontal.xml new file mode 100644 index 000000000..c637be392 --- /dev/null +++ b/app/src/main/res/anim/scene_open_exit_horizontal.xml @@ -0,0 +1,28 @@ + + + + + + + diff --git a/app/src/main/res/layout/activity_set_security.xml b/app/src/main/res/layout/activity_set_security.xml index aba393d75..6dbff1908 100755 --- a/app/src/main/res/layout/activity_set_security.xml +++ b/app/src/main/res/layout/activity_set_security.xml @@ -62,28 +62,31 @@ style="?attr/buttonBarStyle" android:layout_width="match_parent" android:layout_height="wrap_content" + android:clipToPadding="false" android:gravity="bottom" - android:orientation="vertical" + android:orientation="horizontal" android:paddingLeft="12dp" android:paddingTop="4dp" android:paddingRight="12dp" android:paddingBottom="4dp"> -