From 5d8acd95778e40f90431ab7d387d5c4319450844 Mon Sep 17 00:00:00 2001 From: FooIbar <118464521+FooIbar@users.noreply.github.com> Date: Thu, 22 Jun 2023 00:11:27 +0800 Subject: [PATCH] Drop ViewUtils --- .../ehviewer/ui/legacy/RadioGridGroup.kt | 3 +- .../hippo/ehviewer/ui/legacy/SearchLayout.kt | 10 +-- .../ehviewer/ui/legacy/SimpleGridLayout.kt | 3 +- .../hippo/ehviewer/yorozuya/ViewUtils.java | 61 ------------------- .../com/hippo/ehviewer/yorozuya/ViewUtils.kt | 21 +++++++ 5 files changed, 28 insertions(+), 70 deletions(-) delete mode 100644 app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java create mode 100644 app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.kt diff --git a/app/src/main/java/com/hippo/ehviewer/ui/legacy/RadioGridGroup.kt b/app/src/main/java/com/hippo/ehviewer/ui/legacy/RadioGridGroup.kt index 912f130cc..7fe960023 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/legacy/RadioGridGroup.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/legacy/RadioGridGroup.kt @@ -21,7 +21,6 @@ import android.view.View import android.widget.CompoundButton import android.widget.RadioButton import androidx.annotation.IdRes -import com.hippo.ehviewer.yorozuya.ViewUtils class RadioGridGroup : SimpleGridLayout { /** @@ -219,7 +218,7 @@ class RadioGridGroup : SimpleGridLayout { var id = child.getId() // generates an id if it's missing if (id == NO_ID) { - id = ViewUtils.generateViewId() + id = generateViewId() child.setId(id) } child.setOnCheckedChangeListener( diff --git a/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt b/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt index 8a277204a..338c77083 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/legacy/SearchLayout.kt @@ -42,7 +42,7 @@ import com.hippo.ehviewer.client.exception.EhException import com.hippo.ehviewer.databinding.SearchAdvanceBinding import com.hippo.ehviewer.databinding.SearchCategoryBinding import com.hippo.ehviewer.databinding.SearchNormalBinding -import com.hippo.ehviewer.yorozuya.ViewUtils +import com.hippo.ehviewer.yorozuya.removeFromParent @SuppressLint("InflateParams") class SearchLayout @JvmOverloads constructor( @@ -285,7 +285,7 @@ class SearchLayout @JvmOverloads constructor( override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SimpleHolder { val view: View? if (viewType == ITEM_TYPE_ACTION) { - ViewUtils.removeFromParent(mActionView) + mActionView.removeFromParent() view = mActionView } else { view = mInflater.inflate(R.layout.search_category, parent, false) @@ -293,19 +293,19 @@ class SearchLayout @JvmOverloads constructor( when (viewType) { ITEM_TYPE_NORMAL -> { categoryTitle.setText(R.string.search_normal) - ViewUtils.removeFromParent(binding.root) + binding.root.removeFromParent() categoryContent.addView(binding.root) } ITEM_TYPE_NORMAL_ADVANCE -> { categoryTitle.setText(R.string.search_advance) - ViewUtils.removeFromParent(advanceBinding.root) + advanceBinding.root.removeFromParent() categoryContent.addView(advanceBinding.root) } ITEM_TYPE_IMAGE -> { categoryTitle.setText(R.string.search_image) - ViewUtils.removeFromParent(mImageView) + mImageView.removeFromParent() categoryContent.addView(mImageView) } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/legacy/SimpleGridLayout.kt b/app/src/main/java/com/hippo/ehviewer/ui/legacy/SimpleGridLayout.kt index 67e10affe..9df91914a 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/legacy/SimpleGridLayout.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/legacy/SimpleGridLayout.kt @@ -19,7 +19,6 @@ import android.content.Context import android.util.AttributeSet import android.view.ViewGroup import com.hippo.ehviewer.R -import com.hippo.ehviewer.yorozuya.ViewUtils /** * not scrollable @@ -83,7 +82,7 @@ open class SimpleGridLayout : ViewGroup { maxWidth = 300 } if (heightMode == MeasureSpec.UNSPECIFIED) { - maxHeight = ViewUtils.MAX_SIZE + maxHeight = Int.MAX_VALUE and (0x3 shl 30).inv() } // Get item width MeasureSpec diff --git a/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java b/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java deleted file mode 100644 index 00195fe6b..000000000 --- a/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2015 Hippo Seven - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hippo.ehviewer.yorozuya; - -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewParent; - -import java.util.concurrent.atomic.AtomicInteger; - -public final class ViewUtils { - public static final int MAX_SIZE = Integer.MAX_VALUE & ~(0x3 << 30); - private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1); - - private ViewUtils() { - } - - /** - * Remove view from its parent - * - * @param view the view to remove - */ - public static void removeFromParent(View view) { - ViewParent vp = view.getParent(); - if (vp instanceof ViewGroup) - ((ViewGroup) vp).removeView(view); - } - - /** - * Generate a value suitable for use in {@link View#setId(int)}. - * This value will not collide with ID values generated at build time by aapt for R.id. - * - * @return a generated ID value - */ - public static int generateViewId() { - for (; ; ) { - final int result = sNextGeneratedId.get(); - // aapt-generated IDs have the high byte nonzero; clamp to the range under that. - int newValue = result + 1; - if (newValue > 0x00FFFFFF) newValue = 1; // Roll over to 1, not 0. - if (sNextGeneratedId.compareAndSet(result, newValue)) { - return result; - } - } - } - -} diff --git a/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.kt b/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.kt new file mode 100644 index 000000000..45f4b5f59 --- /dev/null +++ b/app/src/main/java/com/hippo/ehviewer/yorozuya/ViewUtils.kt @@ -0,0 +1,21 @@ +/* + * Copyright 2015 Hippo Seven + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.hippo.ehviewer.yorozuya + +import android.view.View +import android.view.ViewGroup + +fun View.removeFromParent() = (parent as? ViewGroup)?.removeView(this)