lmw
2024-07-09 b13afc751dbbce24753d008f1f87d2c5e133a4ad
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package cn.sinata.xldutils.activity
 
import android.app.Activity
import android.os.Bundle
import android.view.View
import android.view.Window
import android.view.WindowManager
import android.widget.TextView
import androidx.viewpager.widget.ViewPager
import cn.sinata.xldutils.R
import cn.sinata.xldutils.adapter.ImagePagerAdapter
import cn.sinata.xldutils.gone
import cn.sinata.xldutils.visible
import org.jetbrains.anko.find
 
class ImagePagerActivity : BaseActivity(), ViewPager.OnPageChangeListener {
 
    var urls : ArrayList<String> = ArrayList()
 
    private val deletable by lazy {
        intent.getBooleanExtra(DELETABLE,false)
    }
 
    companion object {
        val POSITION = "position"
        val URLS = "url"
        val DELETABLE = "deletable"
    }
 
    val imagePager by lazy {
        find<ViewPager>(R.id.mViewPager)
    }
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        requestWindowFeature(Window.FEATURE_NO_TITLE)
        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)
        setContentView(R.layout.activity_image_pager)
 
        imagePager.addOnPageChangeListener(this)
 
        val position = intent.getIntExtra(POSITION,0)
        val urls = intent.getStringArrayListExtra(URLS)
        if (urls != null) {
            this.urls.addAll(urls)
        }
        find<TextView>(R.id.tv_pages).text = getString(R.string.pageAndSizes,position+1,urls!!.size)
        find<View>(R.id.cl_back).setOnClickListener {
            finish()
        }
 
        imagePager.adapter = ImagePagerAdapter(supportFragmentManager,urls)
        imagePager.currentItem = position
 
        if (deletable)
            find<TextView>(R.id.tv_del).visible()
    }
 
    override fun onPageScrollStateChanged(state: Int) {
 
    }
 
    override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {
 
    }
 
    override fun onPageSelected(position: Int) {
        find<TextView>(R.id.tv_pages).text = getString(R.string.pageAndSizes,position+1,urls.size)
    }
 
    fun back(v: View){
        finish()
    }
 
    fun del(v: View){
        setResult(Activity.RESULT_OK,intent.putExtra("position",imagePager.currentItem))
        finish()
    }
 
    override fun onDestroy() {
        super.onDestroy()
        if (imagePager != null) {
            imagePager.removeOnPageChangeListener(this)
        }
    }
}