@@ -2,6 +2,7 @@ package com.example.open_nsfw_android
22
33import android.Manifest
44import android.annotation.SuppressLint
5+ import android.app.ProgressDialog
56import android.content.Intent
67import android.content.pm.PackageManager
78import android.graphics.BitmapFactory
@@ -15,18 +16,21 @@ import com.luck.picture.lib.PictureSelector
1516import com.luck.picture.lib.config.PictureConfig
1617import com.luck.picture.lib.config.PictureMimeType
1718import com.luck.picture.lib.entity.LocalMedia
18- import com.zwy.nsfw.api.NsfwHelper
19+ import com.zwy.nsfw.api.NSFWHelper
20+ import com.zwy.nsfw.core.NSFWConfig
1921import kotlinx.android.synthetic.main.activity_main.*
22+ import kotlin.concurrent.thread
2023
2124
2225class MainActivity : AppCompatActivity (), View.OnClickListener {
2326
24- var nsfwHelper: NsfwHelper ? = null
27+ var nsfwHelper: NSFWHelper ? = null
2528 var mainAdapter: MainAdapter ? = null
2629 var index = 0
27- var listData: ArrayList <MyNsfwBean > = ArrayList < MyNsfwBean > ()
30+ var listData: ArrayList <MyNsfwBean > = ArrayList ()
2831 var selectList: List <LocalMedia >? = null
2932
33+ var progressDialog: ProgressDialog ? = null
3034 @SuppressLint(" SetTextI18n" )
3135 override fun onCreate (savedInstanceState : Bundle ? ) {
3236 super .onCreate(savedInstanceState)
@@ -35,10 +39,13 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
3539 initAdapter()
3640 initClickListener()
3741 tv_version.text = " 当前版本:${this .packageManager.getPackageInfo(packageName, 0 ).versionName} "
38- if (ContextCompat .checkSelfPermission(this ,
39- Manifest .permission.WRITE_EXTERNAL_STORAGE ) != PackageManager .PERMISSION_GRANTED ){ // 表示未授权时
42+ if (ContextCompat .checkSelfPermission(
43+ this ,
44+ Manifest .permission.WRITE_EXTERNAL_STORAGE
45+ ) != PackageManager .PERMISSION_GRANTED
46+ ) { // 表示未授权时
4047 // 进行授权
41- ActivityCompat .requestPermissions(this , arrayOf(Manifest .permission.WRITE_EXTERNAL_STORAGE ),1 );
48+ ActivityCompat .requestPermissions(this , arrayOf(Manifest .permission.WRITE_EXTERNAL_STORAGE ), 1 );
4249 }
4350 }
4451
@@ -88,46 +95,56 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
8895 }
8996
9097 private fun initNsfwHelper () {
91- nsfwHelper = NsfwHelper .getInstance( this , true , 4 )
98+ nsfwHelper = NSFWHelper . init ( NSFWConfig (assets) )
9299 }
93100
94101 private fun reScFromImgs (list : List <LocalMedia >) {
102+ progressDialog = ProgressDialog .show(this , " 提示" , " 请稍后" )
95103 index = 0
96104 mainAdapter?.setNewData(null )
97105 listData = ArrayList <MyNsfwBean >()
98106 Thread (Runnable {
99107 for (lm in list) {
100108 val bitmap = BitmapFactory .decodeFile(lm.path)
101109 listData.add(MyNsfwBean (0.0f , 0.0f , lm.path, bitmap))
102- nsfwHelper?.scanBitmap(bitmap) { sfw, nsfw ->
103- listData[index].sfw = sfw
104- listData[index].nsfw = nsfw
105- mainAdapter?.addData(listData[index])
106- mainAdapter?.notifyItemInserted(index)
107- rv.scrollToPosition(index)
108- index++
109- }
110+ val nsfwBean = nsfwHelper?.scanBitmap(bitmap)!!
111+ listData[index].sfw = nsfwBean.sfw
112+ listData[index].nsfw = nsfwBean.nsfw
113+ // rv.scrollToPosition(index)
114+ index++
115+ }
116+ runOnUiThread {
117+ mainAdapter?.setNewData(listData)
118+ mainAdapter?.notifyDataSetChanged()
119+ progressDialog?.dismiss()
110120 }
111121 }).start()
112122 }
113123
114124 private fun reScAssetsImgs () {
125+ progressDialog = ProgressDialog .show(this , " 提示" , " 请稍后" )
115126 index = 0
116127 mainAdapter?.setNewData(null )
117128 listData = ArrayList <MyNsfwBean >()
118- for (a in resources.assets.list(" img" )) {
119- val path = " img/${a} "
120- val b = BitmapFactory .decodeStream(resources.assets.open(path))
121- listData.add(MyNsfwBean (0f , 0f , path, b))
122- nsfwHelper?.scanBitmap(b) { sfw, nsfw ->
123- listData[index].sfw = sfw
124- listData[index].nsfw = nsfw
125- mainAdapter?.addData(listData[index])
126- mainAdapter?.notifyItemInserted(index)
127- rv.scrollToPosition(index)
129+ thread(true ) {
130+ for (a in resources.assets.list(" img" )) {
131+ val path = " img/${a} "
132+ val b = BitmapFactory .decodeStream(resources.assets.open(path))
133+ listData.add(MyNsfwBean (0f , 0f , path, b))
134+ val nsfwBean = nsfwHelper?.scanBitmap(b)!!
135+ listData[index].sfw = nsfwBean.sfw
136+ listData[index].nsfw = nsfwBean.nsfw
137+
128138 index++
129139 }
140+ runOnUiThread {
141+ mainAdapter?.setNewData(listData)
142+ mainAdapter?.notifyDataSetChanged()
143+ progressDialog?.dismiss()
144+ // rv.scrollToPosition(index)
145+ }
130146 }
147+
131148 }
132149
133150 override fun onBackPressed () {
@@ -136,6 +153,6 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
136153
137154 override fun onDestroy () {
138155 super .onDestroy()
139- nsfwHelper?.destroy ()
156+ nsfwHelper?.destroyFactory ()
140157 }
141158}
0 commit comments