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">
-
-
+
+
diff --git a/app/src/main/res/layout/button_guide.xml b/app/src/main/res/layout/button_guide.xml
index 0a388c6d6..3f6dc62f1 100644
--- a/app/src/main/res/layout/button_guide.xml
+++ b/app/src/main/res/layout/button_guide.xml
@@ -19,8 +19,8 @@
android:layout_height="wrap_content"
android:background="@null"
android:text="@string/get_it"
- android:visibility="gone"
android:textAllCaps="true"
android:textColor="@android:color/white"
android:textSize="@dimen/text_little_small"
- android:textStyle="bold" />
+ android:textStyle="bold"
+ android:visibility="gone" />
diff --git a/app/src/main/res/layout/dialog_add_filter.xml b/app/src/main/res/layout/dialog_add_filter.xml
index c11f98870..496fd0625 100644
--- a/app/src/main/res/layout/dialog_add_filter.xml
+++ b/app/src/main/res/layout/dialog_add_filter.xml
@@ -30,6 +30,7 @@
-
@@ -38,6 +39,7 @@
diff --git a/app/src/main/res/layout/dialog_list_checkbox_builder.xml b/app/src/main/res/layout/dialog_list_checkbox_builder.xml
index 0346dc5f8..1d7a97693 100644
--- a/app/src/main/res/layout/dialog_list_checkbox_builder.xml
+++ b/app/src/main/res/layout/dialog_list_checkbox_builder.xml
@@ -19,7 +19,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
-
diff --git a/app/src/main/res/layout/item_drawer_list.xml b/app/src/main/res/layout/item_drawer_list.xml
index 670b38aa4..9d67e6873 100644
--- a/app/src/main/res/layout/item_drawer_list.xml
+++ b/app/src/main/res/layout/item_drawer_list.xml
@@ -1,30 +1,29 @@
-
+ android:orientation="horizontal">
+ android:layout_weight="1"
+ android:paddingLeft="?attr/listPreferredItemPaddingLeft"
+ android:textAppearance="?attr/textAppearanceListItemSmall"
+ android:textColor="?android:attr/textColorPrimary" />
+ android:paddingRight="?attr/listPreferredItemPaddingRight"
+ app:srcCompat="@drawable/ic_baseline_reorder_24" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_gallery_tag.xml b/app/src/main/res/layout/item_gallery_tag.xml
index 461081532..13eb72742 100644
--- a/app/src/main/res/layout/item_gallery_tag.xml
+++ b/app/src/main/res/layout/item_gallery_tag.xml
@@ -19,8 +19,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
- android:paddingLeft="12dp"
android:background="@drawable/round_side_rect"
+ android:paddingLeft="12dp"
android:paddingTop="4dp"
android:paddingRight="12dp"
android:paddingBottom="4dp"
diff --git a/app/src/main/res/layout/item_preference_header.xml b/app/src/main/res/layout/item_preference_header.xml
deleted file mode 100644
index effb7000b..000000000
--- a/app/src/main/res/layout/item_preference_header.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/preference_dialog_proxy.xml b/app/src/main/res/layout/preference_dialog_proxy.xml
index 834004f0c..0c88d5916 100644
--- a/app/src/main/res/layout/preference_dialog_proxy.xml
+++ b/app/src/main/res/layout/preference_dialog_proxy.xml
@@ -32,6 +32,7 @@
@@ -46,6 +47,7 @@
diff --git a/app/src/main/res/layout/scene_analytics.xml b/app/src/main/res/layout/scene_analytics.xml
index 4fdf63d35..15f17fd21 100644
--- a/app/src/main/res/layout/scene_analytics.xml
+++ b/app/src/main/res/layout/scene_analytics.xml
@@ -28,61 +28,53 @@
android:padding="@dimen/keyline_margin"
app:srcCompat="@drawable/v_chart_accent_x48" />
-
+ android:clipToPadding="false"
+ android:paddingVertical="@dimen/keyline_margin">
-
+ android:paddingHorizontal="32dp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="@dimen/text_little_small" />
-
-
-
-
-
+
+
+
-
-
+ android:text="@string/accept" />
diff --git a/app/src/main/res/layout/scene_cookie_sign_in.xml b/app/src/main/res/layout/scene_cookie_sign_in.xml
index f42f687c5..5aae2c623 100644
--- a/app/src/main/res/layout/scene_cookie_sign_in.xml
+++ b/app/src/main/res/layout/scene_cookie_sign_in.xml
@@ -29,103 +29,100 @@
android:padding="@dimen/keyline_margin"
app:srcCompat="@drawable/v_cookie_brown_x48" />
-
+ android:clipToPadding="false"
+ android:paddingVertical="@dimen/keyline_margin">
-
+ android:orientation="vertical">
-
+ android:paddingHorizontal="32dp"
+ android:text="@string/cookie_explain"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="@dimen/text_little_small" />
-
+
+
+ android:imeOptions="actionNext"
+ android:inputType="text"
+ android:maxLines="1"
+ android:singleLine="true"
+ tools:ignore="HardcodedText" />
-
+
+
+
+
+ android:imeOptions="actionNext"
+ android:inputType="text"
+ android:maxLines="1"
+ android:singleLine="true"
+ tools:ignore="HardcodedText" />
-
+
-
+
-
+ android:imeOptions="actionDone"
+ android:inputType="text"
+ android:maxLines="1"
+ android:singleLine="true"
+ tools:ignore="HardcodedText" />
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ android:text="@android:string/ok" />
diff --git a/app/src/main/res/layout/scene_login.xml b/app/src/main/res/layout/scene_login.xml
index 0090dda21..7abedb7fd 100644
--- a/app/src/main/res/layout/scene_login.xml
+++ b/app/src/main/res/layout/scene_login.xml
@@ -103,8 +103,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="@string/sign_in"
- android:textStyle="bold" />
+ android:text="@string/sign_in" />
+ android:text="@string/register" />
-
+ android:clipToPadding="false"
+ android:gravity="bottom|center_horizontal"
+ android:orientation="horizontal"
+ android:paddingLeft="12dp"
+ android:paddingTop="4dp"
+ android:paddingRight="12dp"
+ android:paddingBottom="4dp">
-
+
-
+
+
+
diff --git a/app/src/main/res/layout/scene_select_site.xml b/app/src/main/res/layout/scene_select_site.xml
index c617fdd8a..6c90ebe51 100644
--- a/app/src/main/res/layout/scene_select_site.xml
+++ b/app/src/main/res/layout/scene_select_site.xml
@@ -15,85 +15,82 @@
-->
-
+ android:clipToPadding="false"
+ android:fillViewport="true"
+ android:paddingVertical="@dimen/keyline_margin">
-
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
-
+ android:text="@string/select_scene"
+ android:textAppearance="@style/TextAppearance.AppCompat.Title" />
-
+
+
+
+
+ android:padding="8dp"
+ android:text="@string/site_e" />
-
-
-
+ android:padding="8dp"
+ android:text="@string/site_ex" />
+
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+ android:text="@android:string/ok" />
diff --git a/app/src/main/res/layout/scene_warning.xml b/app/src/main/res/layout/scene_warning.xml
index b932cc435..ea224bacf 100644
--- a/app/src/main/res/layout/scene_warning.xml
+++ b/app/src/main/res/layout/scene_warning.xml
@@ -28,61 +28,53 @@
android:padding="@dimen/keyline_margin"
app:srcCompat="@drawable/v_alert_red_x48" />
-
+ android:clipToPadding="false"
+ android:paddingVertical="@dimen/keyline_margin">
-
+ android:paddingHorizontal="32dp"
+ android:text="@string/app_waring"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="@dimen/text_little_small" />
-
-
-
-
-
+
+
+
-
-
+ android:text="@string/accept" />