diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 6faa8eb..9c99d4c 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -9,13 +9,24 @@
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d097404..b1bbf6b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,6 +26,7 @@
+
\ No newline at end of file
diff --git a/app/src/main/java/com/timber/soft/mylivewallpaper/tools/AppFinalString.kt b/app/src/main/java/com/timber/soft/mylivewallpaper/tools/AppFinalString.kt
index 9cc3545..16d610e 100644
--- a/app/src/main/java/com/timber/soft/mylivewallpaper/tools/AppFinalString.kt
+++ b/app/src/main/java/com/timber/soft/mylivewallpaper/tools/AppFinalString.kt
@@ -2,4 +2,5 @@ package com.timber.soft.mylivewallpaper.tools
object AppFinalString {
const val TABLE_NAME_WALLPAPER = "wallpaper"
+ const val KEY_EXTRA = "KEY_EXTRA"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/timber/soft/mylivewallpaper/ui/activity/DetailActivity.kt b/app/src/main/java/com/timber/soft/mylivewallpaper/ui/activity/DetailActivity.kt
index d591c0f..578648b 100644
--- a/app/src/main/java/com/timber/soft/mylivewallpaper/ui/activity/DetailActivity.kt
+++ b/app/src/main/java/com/timber/soft/mylivewallpaper/ui/activity/DetailActivity.kt
@@ -1,11 +1,24 @@
package com.timber.soft.mylivewallpaper.ui.activity
+import android.graphics.drawable.Drawable
+import android.util.Log
import android.view.View
+import android.widget.Toast
+import com.bumptech.glide.Glide
+import com.bumptech.glide.load.DataSource
+import com.bumptech.glide.load.engine.DiskCacheStrategy
+import com.bumptech.glide.load.engine.GlideException
+import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
+import com.bumptech.glide.request.RequestListener
+import com.bumptech.glide.request.target.Target
+import com.timber.soft.mylivewallpaper.data.WallpaperData
import com.timber.soft.mylivewallpaper.databinding.ActivityDetailsBinding
+import com.timber.soft.mylivewallpaper.tools.AppFinalString
-class DetailActivity : BaseActivity() {
+class DetailActivity : BaseActivity(), View.OnClickListener {
private lateinit var binding: ActivityDetailsBinding
+ private lateinit var wallpaperData: WallpaperData
override fun getActivityContentView(): View {
binding = ActivityDetailsBinding.inflate(layoutInflater)
return binding.root
@@ -13,6 +26,72 @@ class DetailActivity : BaseActivity() {
override fun initViews() {
super.initViews()
+ wallpaperData = intent.getSerializableExtra(AppFinalString.KEY_EXTRA) as WallpaperData
+ initButton()
+ initPreImg()
}
+
+ private fun initPreImg() {
+ Glide.with(this).load(wallpaperData.thumbnail)
+ .transition(DrawableTransitionOptions.withCrossFade())
+ .diskCacheStrategy(DiskCacheStrategy.ALL)
+ .listener(object : RequestListener {
+ override fun onLoadFailed(
+ e: GlideException?,
+ model: Any?,
+ target: Target?,
+ isFirstResource: Boolean
+ ): Boolean {
+ // 加载失败时的处理
+ binding.detailsProgressbar.visibility = View.INVISIBLE
+ binding.detailsLoadingErr.visibility = View.VISIBLE
+ Toast.makeText(
+ applicationContext, "Check network connection!", Toast.LENGTH_SHORT
+ ).show()
+ return false
+ }
+
+ override fun onResourceReady(
+ resource: Drawable?,
+ model: Any?,
+ target: Target?,
+ dataSource: DataSource?,
+ isFirstResource: Boolean
+ ): Boolean {
+ // 图片加载完成时的处理
+ binding.detailsProgressbar.visibility = View.INVISIBLE
+ binding.detailsPlayButton.visibility = View.VISIBLE
+ return false
+ }
+ }).into(binding.detailsImage)
+ }
+
+ private fun initButton() {
+ binding.detailsBack.setOnClickListener(this)
+ binding.detailsCollect.setOnClickListener(this)
+ binding.detailsSet.setOnClickListener(this)
+ binding.detailsPlayButton.setOnClickListener(this)
+ }
+
+ override fun onClick(v: View?) {
+ when (v) {
+ binding.detailsBack -> {
+ finish()
+ }
+
+ binding.detailsSet -> {
+ Log.e("onclick", "detailsSet has been click!")
+ }
+
+ binding.detailsCollect -> {
+ Log.e("onclick", "detailsCollect has been click!")
+ }
+
+ binding.detailsPlayButton -> {
+ Log.e("onclick", "detailsPlayButton has been click!")
+ }
+ }
+ }
+
}
\ No newline at end of file
diff --git a/app/src/main/java/com/timber/soft/mylivewallpaper/ui/fragment/HomeFragment.kt b/app/src/main/java/com/timber/soft/mylivewallpaper/ui/fragment/HomeFragment.kt
index 0e1798a..1a6e2f8 100644
--- a/app/src/main/java/com/timber/soft/mylivewallpaper/ui/fragment/HomeFragment.kt
+++ b/app/src/main/java/com/timber/soft/mylivewallpaper/ui/fragment/HomeFragment.kt
@@ -1,5 +1,6 @@
package com.timber.soft.mylivewallpaper.ui.fragment
+import android.content.Intent
import android.util.Log
import android.view.View
import androidx.lifecycle.lifecycleScope
@@ -12,7 +13,9 @@ import com.timber.soft.mylivewallpaper.ui.adapter.HomeItemAdapter
import com.timber.soft.mylivewallpaper.ui.listener.OnHomeItemClickListener
import kotlinx.coroutines.Dispatchers
import androidx.fragment.app.viewModels
+import com.timber.soft.mylivewallpaper.tools.AppFinalString
import com.timber.soft.mylivewallpaper.tools.AppTools.onMain
+import com.timber.soft.mylivewallpaper.ui.activity.DetailActivity
import kotlinx.coroutines.launch
class HomeFragment : BaseFragment() {
@@ -66,8 +69,9 @@ class HomeFragment : BaseFragment() {
homeItemAdapter =
HomeItemAdapter(requireContext(), wallpaperDataList, object : OnHomeItemClickListener {
override fun onItemClick(position: Int, wallpaperData: WallpaperData) {
-// val intent = Intent(requireContext())
- Log.d("home_item_root", "item has been click!")
+ val intent = Intent(requireContext(), DetailActivity::class.java)
+ intent.putExtra(AppFinalString.KEY_EXTRA, wallpaperData)
+ startActivity(intent)
}
})
binding.homeRecyclerview.run {
diff --git a/app/src/main/res/drawable/selector_details_collect.xml b/app/src/main/res/drawable/selector_details_collect.xml
new file mode 100644
index 0000000..a3bcfbb
--- /dev/null
+++ b/app/src/main/res/drawable/selector_details_collect.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_circular.xml b/app/src/main/res/drawable/shape_circular.xml
new file mode 100644
index 0000000..62b8854
--- /dev/null
+++ b/app/src/main/res/drawable/shape_circular.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/svg_back.xml b/app/src/main/res/drawable/svg_back.xml
new file mode 100644
index 0000000..e84cc18
--- /dev/null
+++ b/app/src/main/res/drawable/svg_back.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/svg_collect.xml b/app/src/main/res/drawable/svg_collect.xml
new file mode 100644
index 0000000..a292b7b
--- /dev/null
+++ b/app/src/main/res/drawable/svg_collect.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/svg_collect_enable.xml b/app/src/main/res/drawable/svg_collect_enable.xml
new file mode 100644
index 0000000..3f1769a
--- /dev/null
+++ b/app/src/main/res/drawable/svg_collect_enable.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/svg_play.xml b/app/src/main/res/drawable/svg_play.xml
new file mode 100644
index 0000000..e299f15
--- /dev/null
+++ b/app/src/main/res/drawable/svg_play.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/activity_details.xml b/app/src/main/res/layout/activity_details.xml
index 77d9ef6..f4b1890 100644
--- a/app/src/main/res/layout/activity_details.xml
+++ b/app/src/main/res/layout/activity_details.xml
@@ -1,6 +1,108 @@
-
+ android:layout_height="match_parent"
+ tools:context=".ui.activity.DetailActivity">
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 07b69ae..8fba58e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -4,4 +4,6 @@
Home
Collect
Set
+
+ Set Wallpaper
\ No newline at end of file