Leave some space for nav bar in KK and above

This commit is contained in:
seven332 committed 2015-03-01 14:58:10 +08:00
1 parent 4fccbefdd2
commit e1b463314d
14 files changed
+166 -81

No files matched your search

@@ -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;
@@ -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<Parcelable> 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() {
@@ -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);
}
}
@@ -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) {
@@ -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);
}
}