Fix insets bugs

This commit is contained in:
NekoInverter committed 2021-01-24 17:30:32 +08:00
1 parent 32725215dd
commit da5e899afb
23 files changed
+172 -101

No files matched your search

@@ -77,7 +77,7 @@ public class AnalyticsScene extends SolidScene implements View.OnClickListener {
public void onClick(View v) {
Context context = getContext();
MainActivity activity = getMainActivity();
if (null == context) {
if (context == null || activity == null) {
return;
}
@@ -91,9 +91,7 @@ public class AnalyticsScene extends SolidScene implements View.OnClickListener {
Settings.putAskAnalytics(false);
// Start new scene and finish it self
if (activity != null) {
startSceneForCheckStep(CHECK_STEP_ANALYTICS, getArguments());
}
startSceneForCheckStep(CHECK_STEP_ANALYTICS, getArguments());
finish();
}
}
@@ -33,6 +33,7 @@ import android.view.ViewGroup;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.annotation.StringRes;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.fragment.app.FragmentActivity;
@@ -199,20 +200,18 @@ public abstract class BaseScene extends SceneFragment {
drawerView = null;
}
public void setWhiteStatusBar(boolean set) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
View decorView = requireActivity().getWindow().getDecorView();
int flags = decorView.getSystemUiVisibility();
if (set && (requireActivity().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) <= 0) {
flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
} else {
flags &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
}
decorView.setSystemUiVisibility(flags);
((EhDrawerLayout) requireActivity().findViewById(R.id.draw_view)).setStatusBarBackgroundColor(set ? Color.TRANSPARENT : AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
@RequiresApi(api = Build.VERSION_CODES.M)
public void setLightStatusBar(boolean set) {
View decorView = requireActivity().getWindow().getDecorView();
int flags = decorView.getSystemUiVisibility();
if (set && (requireActivity().getResources().getConfiguration().uiMode & Configuration.UI_MODE_NIGHT_YES) <= 0) {
flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
} else {
((EhDrawerLayout) requireActivity().findViewById(R.id.draw_view)).setStatusBarBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
flags &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
}
decorView.setSystemUiVisibility(flags);
int color = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q || set ? Color.TRANSPARENT : AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark);
((EhDrawerLayout) requireActivity().findViewById(R.id.draw_view)).setStatusBarBackgroundColor(color);
}
public void onDestroyDrawerView() {
@@ -220,7 +219,7 @@ public abstract class BaseScene extends SceneFragment {
@SuppressLint("RtlHardcoded")
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Update left drawer locked state
@@ -235,7 +234,9 @@ public abstract class BaseScene extends SceneFragment {
// Hide soft ime
AppHelper.hideSoftInput(getActivity());
setWhiteStatusBar(needWhiteStatusBar());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
setLightStatusBar(needWhiteStatusBar());
}
}
@Nullable
@@ -155,7 +155,7 @@ public class CookieSignInScene extends SolidScene implements EditText.OnEditorAc
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
showSoftInput(mIpbMemberId);
}
@@ -141,6 +141,10 @@ public class DownloadsScene extends ToolbarScene
View life cycle
---------------*/
@Nullable
private TextView mTip;
@Nullable
private FastScroller mFastScroller;
@Nullable
private EasyRecyclerView mRecyclerView;
@Nullable
private ViewTransition mViewTransition;
@@ -333,10 +337,10 @@ public class DownloadsScene extends ToolbarScene
View content = ViewUtils.$$(view, R.id.content);
mRecyclerView = (EasyRecyclerView) ViewUtils.$$(content, R.id.recycler_view);
FastScroller fastScroller = (FastScroller) ViewUtils.$$(content, R.id.fast_scroller);
mFastScroller = (FastScroller) ViewUtils.$$(content, R.id.fast_scroller);
mFabLayout = (FabLayout) ViewUtils.$$(view, R.id.fab_layout);
TextView tip = (TextView) ViewUtils.$$(view, R.id.tip);
mViewTransition = new ViewTransition(content, tip);
mTip = (TextView) ViewUtils.$$(view, R.id.tip);
mViewTransition = new ViewTransition(content, mTip);
Context context = getContext();
AssertUtils.assertNotNull(content);
@@ -344,7 +348,7 @@ public class DownloadsScene extends ToolbarScene
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.big_download);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
tip.setCompoundDrawables(null, drawable, null, null);
mTip.setCompoundDrawables(null, drawable, null, null);
mAdapter = new DownloadAdapter();
mAdapter.setHasStableIds(true);
@@ -377,11 +381,11 @@ public class DownloadsScene extends ToolbarScene
mInitPosition = -1;
}
fastScroller.attachToRecyclerView(mRecyclerView);
mFastScroller.attachToRecyclerView(mRecyclerView);
HandlerDrawable handlerDrawable = new HandlerDrawable();
handlerDrawable.setColor(AttrResources.getAttrColor(context, R.attr.widgetColorThemeAccent));
fastScroller.setHandlerDrawable(handlerDrawable);
fastScroller.setOnDragHandlerListener(this);
mFastScroller.setHandlerDrawable(handlerDrawable);
mFastScroller.setOnDragHandlerListener(this);
mFabLayout.setExpanded(false, false);
mFabLayout.setHidePrimaryFab(true);
@@ -476,7 +480,7 @@ public class DownloadsScene extends ToolbarScene
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
updateTitle();
setNavigationIcon(new DrawerArrowDrawable(getContext(), Color.WHITE));
@@ -1540,15 +1544,24 @@ public class DownloadsScene extends ToolbarScene
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
View statusBarBackground = v.findViewById(R.id.status_bar_background);
statusBarBackground.getLayoutParams().height = insets1.top;
statusBarBackground.setBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
if (mRecyclerView != null) {
mRecyclerView.setPadding(mRecyclerView.getPaddingLeft(), mRecyclerView.getPaddingTop(), mRecyclerView.getPaddingRight(), insets1.bottom);
int paddingH = getResources().getDimensionPixelOffset(R.dimen.gallery_list_margin_h);
int paddingV = getResources().getDimensionPixelOffset(R.dimen.gallery_list_margin_v);
mRecyclerView.setPadding(paddingH, paddingV, paddingH, paddingV + insets1.bottom);
}
if (mFastScroller != null) {
mFastScroller.setPadding(mFastScroller.getPaddingLeft(), mFastScroller.getPaddingTop(), mFastScroller.getPaddingRight(), insets1.bottom);
}
if (mTip != null) {
mTip.setPadding(mTip.getPaddingLeft(), mTip.getPaddingTop(), mTip.getPaddingRight(), insets1.bottom);
}
if (mFabLayout != null) {
int corner_fab_margin = getResources().getDimensionPixelOffset(R.dimen.corner_fab_margin);
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), corner_fab_margin + insets1.right, corner_fab_margin + insets1.bottom);
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), mFabLayout.getPaddingRight(), corner_fab_margin + insets1.bottom);
}
return WindowInsetsCompat.CONSUMED;
}
@@ -1387,6 +1387,7 @@ public class FavoritesScene extends BaseScene implements
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
if (mSearchBar != null) {
int gallery_search_bar_margin_v = getResources().getDimensionPixelOffset(R.dimen.gallery_search_bar_margin_v);
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) mSearchBar.getLayoutParams();
@@ -1398,7 +1399,7 @@ public class FavoritesScene extends BaseScene implements
}
if (mFabLayout != null) {
int corner_fab_margin = getResources().getDimensionPixelOffset(R.dimen.corner_fab_margin);
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), corner_fab_margin + insets1.right, corner_fab_margin + insets1.bottom);
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), mFabLayout.getPaddingRight(), corner_fab_margin + insets1.bottom);
}
return WindowInsetsCompat.CONSUMED;
}
@@ -251,7 +251,17 @@ public final class GalleryCommentsScene extends ToolbarScene
@Override
public void onEnd(@NonNull WindowInsetsAnimation animation) {
super.onEnd(animation);
startBottomEditPanel = 0;
startBottomFabLayout = 0;
endBottomEditPanel = 0;
endBottomFabLayout = 0;
this.animation = null;
if (mEditPanel != null) {
mEditPanel.setTranslationY(0);
}
if (mFabLayout != null) {
mFabLayout.setTranslationY(0);
}
}
});
}
@@ -332,7 +342,7 @@ public final class GalleryCommentsScene extends ToolbarScene
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.gallery_comments);
setNavigationIcon(R.drawable.v_arrow_left_dark_x24);
@@ -1043,12 +1053,13 @@ public final class GalleryCommentsScene extends ToolbarScene
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
View statusBarBackground = v.findViewById(R.id.status_bar_background);
statusBarBackground.getLayoutParams().height = insets1.top;
statusBarBackground.setBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
if (mFabLayout != null) {
int corner_fab_margin = getResources().getDimensionPixelOffset(R.dimen.corner_fab_margin);
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), corner_fab_margin + insets1.right, corner_fab_margin + insets1.bottom);
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), mFabLayout.getPaddingRight(), corner_fab_margin + insets1.bottom);
}
if (mEditPanel != null) {
mEditPanel.setPadding(mEditPanel.getPaddingLeft(), mEditPanel.getPaddingTop(), mEditPanel.getPaddingRight(), insets1.bottom);
@@ -49,6 +49,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RatingBar;
import android.widget.ScrollView;
import android.widget.TextView;
import androidx.activity.result.ActivityResultLauncher;
@@ -496,7 +497,15 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
View view = inflater.inflate(R.layout.scene_gallery_detail, container, false);
ViewGroup main = (ViewGroup) ViewUtils.$$(view, R.id.main);
View mainView = ViewUtils.$$(main, R.id.scroll_view);
ScrollView mainView = (ScrollView) ViewUtils.$$(main, R.id.scroll_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
mainView.setOnScrollChangeListener((v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
if (mActionGroup != null && mHeader != null) {
//noinspection IntegerDivisionInFloatingPointContext
setLightStatusBar(mActionGroup.getY() - mHeader.findViewById(R.id.header_content).getPaddingTop() / 2 < scrollY);
}
});
}
View progressView = ViewUtils.$$(main, R.id.progress_view);
mTip = (TextView) ViewUtils.$$(main, R.id.tip);
mViewTransition = new ViewTransition(mainView, progressView, mTip);
@@ -808,16 +817,25 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
switch (state) {
case STATE_NORMAL:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
setLightStatusBar(false);
}
// Show mMainView
mViewTransition.showView(0, animation);
// Show mBelowHeader
mViewTransition2.showView(0, animation);
break;
case STATE_REFRESH:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
setLightStatusBar(true);
}
// Show mProgressView
mViewTransition.showView(1, animation);
break;
case STATE_REFRESH_HEADER:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
setLightStatusBar(false);
}
// Show mMainView
mViewTransition.showView(0, animation);
// Show mProgress
@@ -826,6 +844,9 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
default:
case STATE_INIT:
case STATE_FAILED:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
setLightStatusBar(true);
}
// Show mFailedView
mViewTransition.showView(2, animation);
break;
@@ -2195,6 +2216,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
if (mHeader != null) {
mHeader.findViewById(R.id.header_content).setPadding(0, insets1.top, 0, 0);
}
@@ -2202,6 +2224,12 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene
int keylineMargin = getResources().getDimensionPixelOffset(R.dimen.keyline_margin);
mPreviews.setPadding(keylineMargin, keylineMargin, keylineMargin, keylineMargin + insets1.bottom);
}
if (mTip != null) {
mTip.setPadding(mTip.getPaddingLeft(), mTip.getPaddingTop(), mTip.getPaddingRight(), insets1.bottom);
}
if (mProgress != null) {
mProgress.setPadding(mProgress.getPaddingLeft(), mProgress.getPaddingTop(), mProgress.getPaddingRight(), insets1.bottom);
}
return WindowInsetsCompat.CONSUMED;
}
}
@@ -177,7 +177,7 @@ public final class GalleryInfoScene extends ToolbarScene {
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.gallery_info);
setNavigationIcon(R.drawable.v_arrow_left_dark_x24);
@@ -627,6 +627,13 @@ public final class GalleryListScene extends BaseScene
endBottomSearchFab = 0;
endBottomFabLayout = 0;
this.animation = null;
if (mSearchFab != null) {
FabLayout fabLayout = (FabLayout) mSearchFab.getParent();
fabLayout.setTranslationY(0);
}
if (mFabLayout != null) {
mFabLayout.setTranslationY(0);
}
}
});
}
@@ -1970,6 +1977,7 @@ public final class GalleryListScene extends BaseScene
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
int corner_fab_margin = getResources().getDimensionPixelOffset(R.dimen.corner_fab_margin);
if (mSearchBar != null) {
int gallery_search_bar_margin_v = getResources().getDimensionPixelOffset(R.dimen.gallery_search_bar_margin_v);
@@ -1982,10 +1990,10 @@ public final class GalleryListScene extends BaseScene
}
if (mSearchFab != null) {
FabLayout fabLayout = (FabLayout) mSearchFab.getParent();
fabLayout.setPadding(mSearchFab.getPaddingLeft(), mSearchFab.getPaddingTop(), corner_fab_margin + insets1.right, corner_fab_margin + insets1.bottom);
fabLayout.setPadding(mSearchFab.getPaddingLeft(), mSearchFab.getPaddingTop(), fabLayout.getPaddingRight(), corner_fab_margin + insets1.bottom);
}
if (mFabLayout != null) {
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), corner_fab_margin + insets1.right, corner_fab_margin + insets1.bottom);
mFabLayout.setPadding(mFabLayout.getPaddingLeft(), mFabLayout.getPaddingTop(), mFabLayout.getPaddingRight(), corner_fab_margin + insets1.bottom);
}
if (mSearchLayout != null) {
int paddingTopSB = getResources().getDimensionPixelOffset(R.dimen.gallery_padding_top_search_bar);
@@ -189,7 +189,7 @@ public class GalleryPreviewsScene extends ToolbarScene {
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.gallery_previews);
setNavigationIcon(R.drawable.v_arrow_left_dark_x24);
@@ -457,6 +457,7 @@ public class GalleryPreviewsScene extends ToolbarScene {
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
View statusBarBackground = v.findViewById(R.id.status_bar_background);
statusBarBackground.getLayoutParams().height = insets1.top;
statusBarBackground.setBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
@@ -94,6 +94,10 @@ public class HistoryScene extends ToolbarScene {
View life cycle
---------------*/
@Nullable
private TextView mTip;
@Nullable
private FastScroller mFastScroller;
@Nullable
private EasyRecyclerView mRecyclerView;
@Nullable
private ViewTransition mViewTransition;
@@ -191,9 +195,9 @@ public class HistoryScene extends ToolbarScene {
View view = inflater.inflate(R.layout.scene_history, container, false);
View content = ViewUtils.$$(view, R.id.content);
mRecyclerView = (EasyRecyclerView) ViewUtils.$$(content, R.id.recycler_view);
FastScroller fastScroller = (FastScroller) ViewUtils.$$(content, R.id.fast_scroller);
TextView tip = (TextView) ViewUtils.$$(view, R.id.tip);
mViewTransition = new ViewTransition(content, tip);
mFastScroller = (FastScroller) ViewUtils.$$(content, R.id.fast_scroller);
mTip = (TextView) ViewUtils.$$(view, R.id.tip);
mViewTransition = new ViewTransition(content, mTip);
Context context = getContext();
AssertUtils.assertNotNull(context);
@@ -201,7 +205,7 @@ public class HistoryScene extends ToolbarScene {
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.big_history);
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
tip.setCompoundDrawables(null, drawable, null, null);
mTip.setCompoundDrawables(null, drawable, null, null);
RecyclerViewTouchActionGuardManager guardManager = new RecyclerViewTouchActionGuardManager();
guardManager.setInterceptVerticalScrollingWhileAnimationRunning(true);
@@ -234,10 +238,10 @@ public class HistoryScene extends ToolbarScene {
guardManager.attachRecyclerView(mRecyclerView);
swipeManager.attachRecyclerView(mRecyclerView);
fastScroller.attachToRecyclerView(mRecyclerView);
mFastScroller.attachToRecyclerView(mRecyclerView);
HandlerDrawable handlerDrawable = new HandlerDrawable();
handlerDrawable.setColor(AttrResources.getAttrColor(context, R.attr.widgetColorThemeAccent));
fastScroller.setHandlerDrawable(handlerDrawable);
mFastScroller.setHandlerDrawable(handlerDrawable);
updateLazyList();
updateView(false);
@@ -246,7 +250,7 @@ public class HistoryScene extends ToolbarScene {
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setTitle(R.string.history);
setNavigationIcon(new DrawerArrowDrawable(getContext(), Color.WHITE));
@@ -698,14 +702,21 @@ public class HistoryScene extends ToolbarScene {
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, 0, insets1.right, 0);
View statusBarBackground = v.findViewById(R.id.status_bar_background);
statusBarBackground.getLayoutParams().height = insets1.top;
statusBarBackground.setBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
if (mRecyclerView != null) {
int paddingH = getResources().getDimensionPixelOffset(R.dimen.gallery_list_margin_h);
int paddingV = getResources().getDimensionPixelOffset(R.dimen.gallery_list_margin_v);
mRecyclerView.setPadding(paddingH, paddingV, paddingH, paddingV + insets1.bottom);
}
View statusBarBackground = v.findViewById(R.id.status_bar_background);
statusBarBackground.getLayoutParams().height = insets1.top;
statusBarBackground.setBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
if (mFastScroller != null) {
mFastScroller.setPadding(mFastScroller.getPaddingLeft(), mFastScroller.getPaddingTop(), mFastScroller.getPaddingRight(), insets1.bottom);
}
if (mTip != null) {
mTip.setPadding(mTip.getPaddingLeft(), mTip.getPaddingTop(), mTip.getPaddingRight(), insets1.bottom);
}
return WindowInsetsCompat.CONSUMED;
}
}
@@ -159,7 +159,7 @@ public final class SignInScene extends SolidScene implements EditText.OnEditorAc
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Show IME
@@ -17,7 +17,6 @@
package com.hippo.ehviewer.ui.scene;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.MenuItem;
@@ -31,7 +30,6 @@ import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.Toolbar;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.hippo.android.resource.AttrResources;
@@ -57,16 +55,6 @@ public abstract class ToolbarScene extends BaseScene {
View view = inflater.inflate(R.layout.scene_toolbar, container, false);
Toolbar toolbar = view.findViewById(R.id.toolbar);
FrameLayout contentPanel = view.findViewById(R.id.content_panel);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q && !(this instanceof GalleryCommentsScene)) {
ViewCompat.setOnApplyWindowInsetsListener(view, (v, insets) -> {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
view.setPadding(insets1.left, 0, insets1.right, insets1.bottom);
View statusBarBackground = view.findViewById(R.id.status_bar_background);
statusBarBackground.getLayoutParams().height = insets1.top;
statusBarBackground.setBackgroundColor(AttrResources.getAttrColor(requireContext(), R.attr.colorPrimaryDark));
return WindowInsetsCompat.CONSUMED;
});
}
View contentView = onCreateViewWithToolbar(inflater, contentPanel, savedInstanceState);
if (contentView == null) {
@@ -85,7 +73,7 @@ public abstract class ToolbarScene extends BaseScene {
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (mToolbar != null) {
if (mTempTitle != null) {
@@ -43,7 +43,7 @@ public final class WarningScene extends SolidScene implements View.OnClickListen
return false;
}
@Nullable
@NonNull
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
@@ -54,6 +54,10 @@ public class SceneFragment extends Fragment implements OnApplyWindowInsetsListen
Bundle result = null;
List<String> mRequestSceneTagList = new ArrayList<>(0);
IntList mRequestCodeList = new IntList(0);
private int paddingTop = 0;
private int paddingBottom = 0;
private int paddingLeft = 0;
private int paddingRight = 0;
public void onNewArguments(@NonNull Bundle args) {
}
@@ -107,12 +111,15 @@ public class SceneFragment extends Fragment implements OnApplyWindowInsetsListen
}
@Override
@SuppressWarnings("deprecation")
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
paddingTop = view.getPaddingTop();
paddingBottom = view.getPaddingBottom();
paddingLeft = view.getPaddingLeft();
paddingRight = view.getPaddingRight();
view.setTag(R.id.fragment_tag, getTag());
view.setBackgroundDrawable(AttrResources.getAttrDrawable(getContext(), android.R.attr.windowBackground));
view.setBackground(AttrResources.getAttrDrawable(getContext(), android.R.attr.windowBackground));
// Notify
FragmentActivity activity = getActivity();
@@ -171,7 +178,7 @@ public class SceneFragment extends Fragment implements OnApplyWindowInsetsListen
@Override
public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) {
Insets insets1 = insets.getInsets(WindowInsetsCompat.Type.systemBars() | WindowInsetsCompat.Type.ime());
v.setPadding(insets1.left, insets1.top, insets1.right, insets1.bottom);
v.setPadding(paddingLeft + insets1.left, insets1.top + paddingTop, paddingRight + insets1.right, insets1.bottom + paddingBottom);
return WindowInsetsCompat.CONSUMED;
}
@@ -89,6 +89,8 @@ public class ContentLayout extends FrameLayout {
private void init(Context context) {
LayoutInflater.from(context).inflate(R.layout.widget_content_layout, this);
setClipChildren(false);
setClipToPadding(false);
mProgressView = findViewById(R.id.progress);
mTipView = findViewById(R.id.tip);
@@ -171,7 +173,7 @@ public class ContentLayout extends FrameLayout {
mRecyclerView.getPaddingTop(), mRecyclerView.getPaddingRight(),
mRecyclerViewOriginBottom + fitPaddingBottom);
mTipView.setPadding(mTipView.getPaddingLeft(), mTipView.getPaddingTop(), mTipView.getPaddingRight(), fitPaddingBottom);
mProgressView.setPadding(mTipView.getPaddingLeft(), mTipView.getPaddingTop(), mTipView.getPaddingRight(), fitPaddingBottom);
mProgressView.setPadding(mProgressView.getPaddingLeft(), mProgressView.getPaddingTop(), mProgressView.getPaddingRight(), fitPaddingBottom);
mFastScroller.setPadding(mFastScroller.getPaddingLeft(), mFastScroller.getPaddingTop(), mFastScroller.getPaddingRight(), fitPaddingBottom);
if (fitPaddingBottom > LayoutUtils.dp2pix(getContext(), 16)) {
mBottomProgress.setPadding(0, 0, 0, fitPaddingBottom);