mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +00:00
Improve: Cleanup ScreenShots ViewHolder
Fix: Typo in MainApplication.kt
This commit is contained in:
parent
ab49fae13e
commit
96b4ef2bcb
@ -2,7 +2,7 @@ package com.looker.droidify
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import com.looker.droidify.ContextWraperX.Companion.wrap
|
import com.looker.droidify.ContextWrapperX.Companion.wrap
|
||||||
import com.looker.droidify.screen.ScreenActivity
|
import com.looker.droidify.screen.ScreenActivity
|
||||||
|
|
||||||
class MainActivity : ScreenActivity() {
|
class MainActivity : ScreenActivity() {
|
||||||
|
@ -205,11 +205,11 @@ class MainApplication : Application(), ImageLoaderFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ContextWraperX(base: Context) : ContextWrapper(base) {
|
class ContextWrapperX(base: Context) : ContextWrapper(base) {
|
||||||
companion object {
|
companion object {
|
||||||
fun wrap(context: Context): ContextWrapper {
|
fun wrap(context: Context): ContextWrapper {
|
||||||
val config = context.setLanguage()
|
val config = context.setLanguage()
|
||||||
return ContextWraperX(context.createConfigurationContext(config))
|
return ContextWrapperX(context.createConfigurationContext(config))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -29,7 +29,6 @@ import androidx.core.net.toUri
|
|||||||
import androidx.core.text.HtmlCompat
|
import androidx.core.text.HtmlCompat
|
||||||
import androidx.core.text.util.LinkifyCompat
|
import androidx.core.text.util.LinkifyCompat
|
||||||
import androidx.core.view.doOnPreDraw
|
import androidx.core.view.doOnPreDraw
|
||||||
import androidx.core.widget.NestedScrollView
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import coil.load
|
import coil.load
|
||||||
@ -100,11 +99,12 @@ class AppDetailAdapter(private val callbacks: Callbacks) :
|
|||||||
LINKS(R.string.links, R.attr.colorPrimary),
|
LINKS(R.string.links, R.attr.colorPrimary),
|
||||||
DONATE(R.string.donate, R.attr.colorPrimary),
|
DONATE(R.string.donate, R.attr.colorPrimary),
|
||||||
PERMISSIONS(R.string.permissions, R.attr.colorPrimary),
|
PERMISSIONS(R.string.permissions, R.attr.colorPrimary),
|
||||||
|
SCREENSHOTS(R.string.screenshots, R.attr.colorPrimary),
|
||||||
VERSIONS(R.string.versions, R.attr.colorPrimary)
|
VERSIONS(R.string.versions, R.attr.colorPrimary)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum class ExpandType {
|
internal enum class ExpandType {
|
||||||
NOTHING, DESCRIPTION, CHANGES,
|
NOTHING, SCREENSHOTS, DESCRIPTION, CHANGES,
|
||||||
LINKS, DONATES, PERMISSIONS, VERSIONS
|
LINKS, DONATES, PERMISSIONS, VERSIONS
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,14 +350,11 @@ class AppDetailAdapter(private val callbacks: Callbacks) :
|
|||||||
val dev = itemView.findViewById<MaterialCardView>(R.id.dev_block)!!
|
val dev = itemView.findViewById<MaterialCardView>(R.id.dev_block)!!
|
||||||
}
|
}
|
||||||
|
|
||||||
private class ScreenShotViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
private class ScreenShotViewHolder(context: Context) :
|
||||||
|
RecyclerView.ViewHolder(RecyclerView(context)) {
|
||||||
|
|
||||||
val screenshotsSection =
|
val screenshotsRecycler: RecyclerView
|
||||||
itemView.findViewById<LinearLayoutCompat>(R.id.screenshots_section)!!
|
get() = itemView as RecyclerView
|
||||||
val screenshotsSectionIcon =
|
|
||||||
itemView.findViewById<ShapeableImageView>(R.id.screenshots_section_icon)!!
|
|
||||||
val screenshotsView = itemView.findViewById<NestedScrollView>(R.id.screenshots_view)!!
|
|
||||||
val screenshotsRecycler = itemView.findViewById<RecyclerView>(R.id.screenshots_recycler)!!
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SwitchViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
private class SwitchViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
|
||||||
@ -554,12 +551,34 @@ class AppDetailAdapter(private val callbacks: Callbacks) :
|
|||||||
productRepository.second,
|
productRepository.second,
|
||||||
productRepository.first
|
productRepository.first
|
||||||
)
|
)
|
||||||
items += Item.ScreenshotItem(
|
|
||||||
|
val screenShotItem = mutableListOf<Item>()
|
||||||
|
screenShotItem += Item.ScreenshotItem(
|
||||||
productRepository.first.screenshots,
|
productRepository.first.screenshots,
|
||||||
packageName,
|
packageName,
|
||||||
productRepository.second
|
productRepository.second
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if (productRepository.first.screenshots.isNotEmpty()) {
|
||||||
|
expanded += ExpandType.SCREENSHOTS
|
||||||
|
if (ExpandType.SCREENSHOTS in expanded) {
|
||||||
|
items += Item.SectionItem(
|
||||||
|
SectionType.SCREENSHOTS,
|
||||||
|
ExpandType.SCREENSHOTS,
|
||||||
|
emptyList(),
|
||||||
|
screenShotItem.size
|
||||||
|
)
|
||||||
|
items += screenShotItem
|
||||||
|
} else {
|
||||||
|
items += Item.SectionItem(
|
||||||
|
SectionType.SCREENSHOTS,
|
||||||
|
ExpandType.SCREENSHOTS,
|
||||||
|
screenShotItem,
|
||||||
|
0
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (installedItem != null) {
|
if (installedItem != null) {
|
||||||
items.add(
|
items.add(
|
||||||
Item.SwitchItem(
|
Item.SwitchItem(
|
||||||
@ -893,7 +912,7 @@ class AppDetailAdapter(private val callbacks: Callbacks) :
|
|||||||
ViewType.APP_INFO -> AppInfoViewHolder(parent.inflate(R.layout.item_app_info_x)).apply {
|
ViewType.APP_INFO -> AppInfoViewHolder(parent.inflate(R.layout.item_app_info_x)).apply {
|
||||||
action.setOnClickListener { this@AppDetailAdapter.action?.let(callbacks::onActionClick) }
|
action.setOnClickListener { this@AppDetailAdapter.action?.let(callbacks::onActionClick) }
|
||||||
}
|
}
|
||||||
ViewType.SCREENSHOT -> ScreenShotViewHolder(parent.inflate(R.layout.screenshot_scrollview))
|
ViewType.SCREENSHOT -> ScreenShotViewHolder(parent.context)
|
||||||
ViewType.SWITCH -> SwitchViewHolder(parent.inflate(R.layout.switch_item)).apply {
|
ViewType.SWITCH -> SwitchViewHolder(parent.inflate(R.layout.switch_item)).apply {
|
||||||
itemView.setOnClickListener {
|
itemView.setOnClickListener {
|
||||||
val switchItem = items[adapterPosition] as Item.SwitchItem
|
val switchItem = items[adapterPosition] as Item.SwitchItem
|
||||||
@ -1145,21 +1164,10 @@ class AppDetailAdapter(private val callbacks: Callbacks) :
|
|||||||
ViewType.SCREENSHOT -> {
|
ViewType.SCREENSHOT -> {
|
||||||
holder as ScreenShotViewHolder
|
holder as ScreenShotViewHolder
|
||||||
item as Item.ScreenshotItem
|
item as Item.ScreenshotItem
|
||||||
if (item.screenshots.isEmpty()) {
|
holder.screenshotsRecycler.run {
|
||||||
holder.screenshotsSection.visibility = View.GONE
|
layoutManager =
|
||||||
holder.screenshotsView.visibility = View.GONE
|
|
||||||
} else {
|
|
||||||
holder.screenshotsSection.visibility = View.VISIBLE
|
|
||||||
holder.screenshotsView.visibility = View.VISIBLE
|
|
||||||
holder.screenshotsSection.setOnClickListener {
|
|
||||||
val isExpanded = holder.screenshotsView.visibility == View.VISIBLE
|
|
||||||
holder.screenshotsSectionIcon.scaleY = if (isExpanded) -1f else 1f
|
|
||||||
holder.screenshotsView.visibility =
|
|
||||||
if (isExpanded) View.GONE else View.VISIBLE
|
|
||||||
}
|
|
||||||
holder.screenshotsRecycler.layoutManager =
|
|
||||||
LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
|
LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
|
||||||
holder.screenshotsRecycler.adapter =
|
adapter =
|
||||||
ScreenshotsAdapter { callbacks.onScreenshotClick(it) }.apply {
|
ScreenshotsAdapter { callbacks.onScreenshotClick(it) }.apply {
|
||||||
setScreenshots(item.repository, item.packageName, item.screenshots)
|
setScreenshots(item.repository, item.packageName, item.screenshots)
|
||||||
}
|
}
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
|
||||||
android:id="@+id/screenshots_section"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:background="?android:attr/selectableItemBackground"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:padding="16dp">
|
|
||||||
|
|
||||||
<com.google.android.material.textview.MaterialTextView
|
|
||||||
android:id="@+id/title"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:text="@string/screenshots"
|
|
||||||
android:textColor="?attr/colorPrimary" />
|
|
||||||
|
|
||||||
<com.google.android.material.imageview.ShapeableImageView
|
|
||||||
android:id="@+id/screenshots_section_icon"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:scaleType="center"
|
|
||||||
android:src="@drawable/ic_arrow_down"
|
|
||||||
android:tint="?attr/colorPrimary"
|
|
||||||
tools:ignore="ContentDescription" />
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
|
||||||
android:id="@+id/screenshots_view"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/screenshots_recycler"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="horizontal" />
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
|
Loading…
x
Reference in New Issue
Block a user