diff --git a/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java index 4024d6716..780a7cc10 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/ContentActivity.java @@ -53,6 +53,10 @@ public class ContentActivity extends StageActivity { return mContentLayout.getFitPaddingBottom(); } + public void setOnGetFitPaddingListener(ContentLayout.OnGetFitPaddingListener listener) { + mContentLayout.setOnGetFitPaddingListener(listener); + } + @Override public StageLayout getStageLayout() { return mContentLayout; 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 12bc2b3a3..f79f44bc5 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 @@ -15,6 +15,7 @@ package com.hippo.ehviewer.ui.scene; +import android.annotation.SuppressLint; import android.app.Activity; import android.content.Intent; import android.content.res.Resources; @@ -31,25 +32,23 @@ import android.view.View; import android.view.ViewGroup; import com.hippo.ehviewer.R; -import com.hippo.ehviewer.client.EhClient; import com.hippo.ehviewer.data.ListUrlBuilder; -import com.hippo.ehviewer.data.UnsupportedSearch; +import com.hippo.ehviewer.ui.ContentActivity; +import com.hippo.ehviewer.widget.ContentLayout; import com.hippo.ehviewer.widget.SearchLayout; import com.hippo.scene.Scene; -import com.hippo.scene.StageActivity; -import com.hippo.util.Log; import com.hippo.widget.Appbar; import org.jetbrains.annotations.NotNull; public class GalleryListScene extends Scene implements SearchLayout.SearhLayoutHelper, - Scene.ActivityResultListener { + Scene.ActivityResultListener, ContentLayout.OnGetFitPaddingListener { private final static int PAGE_INDEX_SEARCH = 0; private final static int PAGE_INDEX_LIST = 1; private final static int PAGE_NUMBER = 2; - private StageActivity mActivity; + private ContentActivity mActivity; private Resources mResources; private View mSearchView; @@ -64,10 +63,11 @@ public class GalleryListScene extends Scene implements SearchLayout.SearhLayoutH @Override public void onCreate(Bundle savedInstanceState) { - mActivity = getStageActivity(); + mActivity = (ContentActivity) getStageActivity(); mResources = mActivity.getResources(); } + @SuppressLint("InflateParams") @Override public View onCreateSceneView(Bundle savedInstanceState) { LayoutInflater inflater = mActivity.getLayoutInflater(); @@ -93,9 +93,20 @@ public class GalleryListScene extends Scene implements SearchLayout.SearhLayoutH mViewPager.setAdapter(mPagerAdapter); mViewPager.setCurrentItem(PAGE_INDEX_LIST); + // Fit Padding Bottom + mActivity.setOnGetFitPaddingListener(this); + int fitPaddingBottom = mActivity.getFitPaddingBottom(); + if (fitPaddingBottom != -1) { + setFitPaddingBottom(fitPaddingBottom); + } + return sceneView; } + private void setFitPaddingBottom(int fitPaddingBottom) { + mSearchLayout.setFitPaddingBottom(fitPaddingBottom); + } + @Override protected void onRestoreInstanceState(@NotNull SparseArray savedStates) { super.onRestoreInstanceState(savedStates); @@ -107,11 +118,7 @@ public class GalleryListScene extends Scene implements SearchLayout.SearhLayoutH @Override public void onRequestSearch(ListUrlBuilder lub) { - try { - Log.d(lub.build(EhClient.SOURCE_EX)); - } catch (UnsupportedSearch unsupportedSearch) { - unsupportedSearch.printStackTrace(); - } + // TODO } @Override @@ -140,6 +147,11 @@ public class GalleryListScene extends Scene implements SearchLayout.SearhLayoutH } } + @Override + public void onGetFitPadding(int l, int t, int r, int b) { + setFitPaddingBottom(b); + } + private class SimplePagerAdapter extends PagerAdapter { @Override public int getCount() { diff --git a/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java b/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java index dc3759403..b30764ec7 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/ContentLayout.java @@ -25,7 +25,7 @@ import org.jetbrains.annotations.NotNull; public class ContentLayout extends StageLayout { - private OnGetPaddingListener mOnGetPaddingListener; + private OnGetFitPaddingListener mOnGetFitPaddingListener; private int mFitPaddingLeft = -1; private int mFitPaddingTop = -1; @@ -55,8 +55,8 @@ public class ContentLayout extends StageLayout { mFitPaddingTop = 0; mFitPaddingRight = 0; mFitPaddingBottom = insets.bottom; - if (mOnGetPaddingListener != null) { - mOnGetPaddingListener.onGetPadding(mFitPaddingLeft, mFitPaddingTop, + if (mOnGetFitPaddingListener != null) { + mOnGetFitPaddingListener.onGetFitPadding(mFitPaddingLeft, mFitPaddingTop, mFitPaddingRight, mFitPaddingBottom); } @@ -65,8 +65,8 @@ public class ContentLayout extends StageLayout { return super.fitSystemWindows(insets); } - public void setOnGetPaddingListener(OnGetPaddingListener listener) { - mOnGetPaddingListener = listener; + public void setOnGetFitPaddingListener(OnGetFitPaddingListener listener) { + mOnGetFitPaddingListener = listener; } public int getFitPaddingLeft() { @@ -85,7 +85,7 @@ public class ContentLayout extends StageLayout { return mFitPaddingBottom; } - public interface OnGetPaddingListener { - public void onGetPadding(int l, int t, int r, int b); + public interface OnGetFitPaddingListener { + public void onGetFitPadding(int l, int t, int r, int b); } } diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java index 8df6a76ee..6037ca04d 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java @@ -37,6 +37,7 @@ import android.widget.TextView; import com.hippo.effect.ripple.RippleSalon; import com.hippo.ehviewer.R; import com.hippo.ehviewer.data.ListUrlBuilder; +import com.hippo.util.UiUtils; import com.hippo.util.ViewUtils; import com.hippo.widget.FloatLabelEditText; import com.hippo.widget.FloatingActionButton; @@ -111,6 +112,9 @@ public class SearchLayout extends FrameLayout implements CompoundButton.OnChecke private Bitmap mSearchImage; + private int mFabMarginBottomOrigin; + private int mSearchPaddingBottomOrigin; + public SearchLayout(Context context) { super(context); init(context); @@ -144,15 +148,22 @@ public class SearchLayout extends FrameLayout implements CompoundButton.OnChecke mSearchContainer.setItemAnimator(mAnimator); mFab.setOnClickListener(this); + mFabMarginBottomOrigin = mResources.getDimensionPixelSize(R.dimen.content_fab_margin_bottom); + mSearchPaddingBottomOrigin = mResources.getDimensionPixelSize(R.dimen.content_padding_bottom); } public void setFitPaddingBottom(int paddingBottom) { - mSearchContainer.setClipToPadding(false); mSearchContainer.setPadding( mSearchContainer.getPaddingLeft(), mSearchContainer.getPaddingTop(), mSearchContainer.getPaddingRight(), - paddingBottom); + mSearchPaddingBottomOrigin + paddingBottom); + + if (!UiUtils.isTable(mContext)) { + LayoutParams lp = (LayoutParams) mFab.getLayoutParams(); + lp.bottomMargin = mFabMarginBottomOrigin + paddingBottom; + mFab.setLayoutParams(lp); + } } public void setHelper(SearhLayoutHelper helper) { diff --git a/app/src/main/java/com/hippo/util/UiUtils.java b/app/src/main/java/com/hippo/util/UiUtils.java index 7375483ea..8c6a36e08 100644 --- a/app/src/main/java/com/hippo/util/UiUtils.java +++ b/app/src/main/java/com/hippo/util/UiUtils.java @@ -19,6 +19,8 @@ import android.content.Context; import android.content.res.Resources; import android.graphics.Color; +import com.hippo.ehviewer.R; + public class UiUtils { private static float sDensity; @@ -87,4 +89,15 @@ public class UiUtils { hsv[2] *= 0.9f; return Color.HSVToColor(hsv); } + + /** + * Is this device is table. + * For sw600dp is true + * + * @param context the context + * @return true for table + */ + public static boolean isTable(Context context) { + return context.getResources().getBoolean(R.bool.is_table); + } } diff --git a/app/src/main/res/layout-sw600dp/widget_search_layout.xml b/app/src/main/res/layout-sw600dp/widget_search_layout.xml deleted file mode 100644 index 5c1df87c5..000000000 --- a/app/src/main/res/layout-sw600dp/widget_search_layout.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/layout/widget_search_layout.xml b/app/src/main/res/layout/widget_search_layout.xml index 165bf286f..85f6d5b40 100644 --- a/app/src/main/res/layout/widget_search_layout.xml +++ b/app/src/main/res/layout/widget_search_layout.xml @@ -20,16 +20,16 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/content_padding_start" - android:paddingRight="@dimen/content_padding_end"/> + android:paddingRight="@dimen/content_padding_end" + android:paddingTop="@dimen/content_padding_top" + android:paddingBottom="@dimen/content_padding_bottom" + android:clipToPadding="false"/> diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-sw600dp/bools.xml similarity index 63% rename from app/src/main/res/values-v21/styles.xml rename to app/src/main/res/values-sw600dp/bools.xml index c27ef9fab..1f95967dd 100644 --- a/app/src/main/res/values-v21/styles.xml +++ b/app/src/main/res/values-sw600dp/bools.xml @@ -1,4 +1,5 @@ + - - - - + true diff --git a/app/src/main/res/values-sw600dp/dimens.xml b/app/src/main/res/values-sw600dp/dimens.xml index 1d6493a8c..0fbf5c47d 100644 --- a/app/src/main/res/values-sw600dp/dimens.xml +++ b/app/src/main/res/values-sw600dp/dimens.xml @@ -18,7 +18,12 @@ 52dp 52dp - 24dp + @dimen/appbar_size + 0dp + 0dp + @dimen/keyline_margin + 196dp + 0dp 52dp @@ -40,7 +45,6 @@ 224dp - 196dp 48dp diff --git a/app/src/main/res/values-sw600dp/styles.xml b/app/src/main/res/values-sw600dp/styles.xml new file mode 100644 index 000000000..ad887e044 --- /dev/null +++ b/app/src/main/res/values-sw600dp/styles.xml @@ -0,0 +1,27 @@ + + + + + + + + diff --git a/app/src/main/res/values-v21/dimens.xml b/app/src/main/res/values-v21/dimens.xml new file mode 100644 index 000000000..64acaa01d --- /dev/null +++ b/app/src/main/res/values-v21/dimens.xml @@ -0,0 +1,23 @@ + + + + + + + 56dp + 40dp + + diff --git a/app/src/main/res/values/bools.xml b/app/src/main/res/values/bools.xml new file mode 100644 index 000000000..1841ac55c --- /dev/null +++ b/app/src/main/res/values/bools.xml @@ -0,0 +1,20 @@ + + + + + false + + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 645b94670..a8839691c 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -18,7 +18,12 @@ 0dp 0dp - 0dp + 0dp + 72dp + 0dp + @dimen/keyline_margin + 0dp + @dimen/keyline_margin 16dp @@ -60,4 +65,8 @@ 4dp + + 60dp + 44dp + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 3981ba81a..1169dc041 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -25,13 +25,21 @@ + +