Skip to content

Commit 6073573

Browse files
committed
重构后bug 修复
1 parent 1ae7762 commit 6073573

File tree

4 files changed

+149
-139
lines changed

4 files changed

+149
-139
lines changed

BaseCard/src/main/java/com/bihe0832/android/base/card/apk/APPItemHolder.kt

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.bihe0832.android.base.card.apk
22

33
import android.content.Context
4+
import android.content.pm.PackageManager
45
import android.text.Html
56
import android.view.View
67
import android.widget.ImageView
@@ -9,7 +10,9 @@ import com.bihe0832.android.base.card.R
910
import com.bihe0832.android.lib.adapter.CardBaseHolder
1011
import com.bihe0832.android.lib.adapter.CardBaseModule
1112
import com.bihe0832.android.lib.install.InstallUtils
13+
import com.bihe0832.android.lib.thread.ThreadManager
1214
import com.bihe0832.android.lib.utils.DateUtil
15+
import com.bihe0832.android.lib.utils.encypt.MD5
1316

1417
/**
1518
* @author hardyshi code@bihe0832.com
@@ -18,15 +21,14 @@ import com.bihe0832.android.lib.utils.DateUtil
1821
*/
1922
class APPItemHolder(itemView: View?, context: Context?) : CardBaseHolder(itemView, context) {
2023

21-
var app_icon: ImageView? = null
22-
var app_name: TextView? = null
23-
var app_version: TextView? = null
24-
var app_package: TextView? = null
25-
var app_install: TextView? = null
26-
var app_update: TextView? = null
27-
var app_md5: TextView? = null
28-
var signature_md5: TextView? = null
29-
var uninstall: TextView? = null
24+
private var app_icon: ImageView? = null
25+
private var app_name: TextView? = null
26+
private var app_version: TextView? = null
27+
private var app_package: TextView? = null
28+
private var app_install: TextView? = null
29+
private var app_update: TextView? = null
30+
private var app_md5: TextView? = null
31+
private var signature_md5: TextView? = null
3032

3133
override fun initView() {
3234
app_icon = getView(R.id.app_icon)
@@ -37,15 +39,13 @@ class APPItemHolder(itemView: View?, context: Context?) : CardBaseHolder(itemVie
3739
app_update = getView(R.id.app_update)
3840
app_md5 = getView(R.id.app_md5)
3941
signature_md5 = getView(R.id.signature_md5)
40-
uninstall = getView(R.id.uninstall)
41-
4242
}
4343

4444
override fun initData(item: CardBaseModule) {
4545
val data = item as APPItemData
46-
uninstall?.setOnClickListener {
47-
InstallUtils.uninstallAPP(context, data.app_package)
48-
}
46+
addOnClickListener(R.id.app_layout)
47+
addOnClickListener(R.id.uninstall)
48+
4949
app_icon?.setImageDrawable(data.app_icon)
5050
app_name?.text = data.app_name
5151
app_version?.text = "当前版本:${data.app_version}"
Lines changed: 113 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -1,136 +1,136 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:app="http://schemas.android.com/apk/res-auto"
4-
xmlns:tools="http://schemas.android.com/tools"
5-
android:layout_width="match_parent"
6-
android:layout_height="wrap_content"
7-
android:layout_marginTop="4dp"
8-
android:background="@color/bihe0832_common_toast_background_color"
9-
android:gravity="center"
10-
android:orientation="vertical"
11-
android:paddingLeft="16dp"
12-
android:paddingTop="8dp"
13-
android:paddingRight="16dp"
14-
android:paddingBottom="8dp">
3+
xmlns:app="http://schemas.android.com/apk/res-auto"
4+
xmlns:tools="http://schemas.android.com/tools"
5+
android:layout_width="match_parent"
6+
android:layout_height="wrap_content"
7+
android:layout_marginTop="4dp"
8+
android:background="@color/bihe0832_common_toast_background_color"
9+
android:gravity="center"
10+
android:orientation="vertical"
11+
android:paddingLeft="16dp"
12+
android:paddingTop="8dp"
13+
android:id="@+id/app_layout"
14+
android:paddingRight="16dp"
15+
android:paddingBottom="8dp">
1516

1617
<ImageView
17-
android:id="@+id/app_icon"
18-
android:layout_width="64dp"
19-
android:layout_height="64dp"
20-
app:layout_constraintBottom_toTopOf="@+id/uninstall"
21-
app:layout_constraintStart_toStartOf="parent"
22-
app:layout_constraintTop_toTopOf="parent"
23-
tools:src="@mipmap/icon" />
18+
android:id="@+id/app_icon"
19+
android:layout_width="64dp"
20+
android:layout_height="64dp"
21+
app:layout_constraintBottom_toTopOf="@+id/uninstall"
22+
app:layout_constraintStart_toStartOf="parent"
23+
app:layout_constraintTop_toTopOf="parent"
24+
tools:src="@mipmap/icon" />
2425

2526
<TextView
26-
android:id="@+id/uninstall"
27-
android:layout_width="wrap_content"
28-
android:layout_height="wrap_content"
29-
android:ellipsize="end"
30-
android:text="卸载"
31-
android:background="@drawable/card_apk_corner"
32-
android:textSize="12dp"
33-
android:textStyle="bold"
34-
android:layout_marginTop="8dp"
35-
app:layout_constraintBottom_toBottomOf="parent"
36-
app:layout_constraintStart_toStartOf="@+id/app_icon"
37-
app:layout_constraintEnd_toEndOf="@+id/app_icon"
38-
app:layout_constraintTop_toBottomOf="@+id/app_icon" />
27+
android:id="@+id/uninstall"
28+
android:layout_width="wrap_content"
29+
android:layout_height="wrap_content"
30+
android:ellipsize="end"
31+
android:text="卸载"
32+
android:background="@drawable/card_apk_corner"
33+
android:textSize="12dp"
34+
android:textStyle="bold"
35+
android:layout_marginTop="8dp"
36+
app:layout_constraintBottom_toBottomOf="parent"
37+
app:layout_constraintStart_toStartOf="@+id/app_icon"
38+
app:layout_constraintEnd_toEndOf="@+id/app_icon"
39+
app:layout_constraintTop_toBottomOf="@+id/app_icon" />
3940

4041
<TextView
41-
android:id="@+id/app_name"
42-
android:layout_width="wrap_content"
43-
android:layout_height="wrap_content"
44-
android:layout_marginLeft="16dp"
45-
android:ellipsize="end"
46-
android:singleLine="true"
47-
android:textSize="16dp"
48-
android:textStyle="bold"
49-
app:layout_constraintStart_toEndOf="@+id/app_icon"
50-
app:layout_constraintTop_toTopOf="parent"
51-
tools:text="王者荣耀" />
42+
android:id="@+id/app_name"
43+
android:layout_width="wrap_content"
44+
android:layout_height="wrap_content"
45+
android:layout_marginLeft="16dp"
46+
android:ellipsize="end"
47+
android:singleLine="true"
48+
android:textSize="16dp"
49+
android:textStyle="bold"
50+
app:layout_constraintStart_toEndOf="@+id/app_icon"
51+
app:layout_constraintTop_toTopOf="parent"
52+
tools:text="王者荣耀" />
5253

5354
<TextView
54-
android:id="@+id/app_version"
55-
android:layout_width="0dp"
56-
android:layout_height="wrap_content"
57-
android:layout_marginStart="5dp"
58-
android:layout_marginLeft="8dp"
59-
android:layout_marginEnd="5dp"
60-
android:layout_marginRight="8dp"
61-
android:ellipsize="end"
62-
android:singleLine="true"
63-
android:textSize="12dp"
64-
app:layout_constraintBaseline_toBaselineOf="@+id/app_name"
65-
app:layout_constraintEnd_toEndOf="parent"
66-
app:layout_constraintStart_toEndOf="@+id/app_name"
67-
tools:text="版本号:1.1.1.1" />
55+
android:id="@+id/app_version"
56+
android:layout_width="0dp"
57+
android:layout_height="wrap_content"
58+
android:layout_marginStart="5dp"
59+
android:layout_marginLeft="8dp"
60+
android:layout_marginEnd="5dp"
61+
android:layout_marginRight="8dp"
62+
android:ellipsize="end"
63+
android:singleLine="true"
64+
android:textSize="12dp"
65+
app:layout_constraintBaseline_toBaselineOf="@+id/app_name"
66+
app:layout_constraintEnd_toEndOf="parent"
67+
app:layout_constraintStart_toEndOf="@+id/app_name"
68+
tools:text="版本号:1.1.1.1" />
6869

6970
<TextView
70-
android:id="@+id/app_package"
71-
android:layout_width="0dp"
72-
android:layout_height="wrap_content"
73-
android:layout_marginTop="4dp"
74-
android:ellipsize="end"
75-
android:singleLine="true"
76-
android:textSize="12dp"
77-
app:layout_constraintEnd_toEndOf="@+id/app_version"
78-
app:layout_constraintStart_toStartOf="@+id/app_name"
79-
app:layout_constraintTop_toBottomOf="@+id/app_name"
80-
tools:text="包名:com.bihe0832.aaa" />
71+
android:id="@+id/app_package"
72+
android:layout_width="0dp"
73+
android:layout_height="wrap_content"
74+
android:layout_marginTop="4dp"
75+
android:ellipsize="end"
76+
android:singleLine="true"
77+
android:textSize="12dp"
78+
app:layout_constraintEnd_toEndOf="@+id/app_version"
79+
app:layout_constraintStart_toStartOf="@+id/app_name"
80+
app:layout_constraintTop_toBottomOf="@+id/app_name"
81+
tools:text="包名:com.bihe0832.aaa" />
8182

8283
<TextView
83-
android:id="@+id/app_install"
84-
android:layout_width="0dp"
85-
android:layout_height="wrap_content"
86-
android:layout_marginTop="4dp"
87-
android:ellipsize="end"
88-
android:singleLine="true"
89-
android:textSize="12dp"
90-
app:layout_constraintEnd_toEndOf="@+id/app_version"
91-
app:layout_constraintStart_toStartOf="@+id/app_name"
92-
app:layout_constraintTop_toBottomOf="@+id/app_package"
93-
tools:text="安装:2020年9月15日" />
84+
android:id="@+id/app_install"
85+
android:layout_width="0dp"
86+
android:layout_height="wrap_content"
87+
android:layout_marginTop="4dp"
88+
android:ellipsize="end"
89+
android:singleLine="true"
90+
android:textSize="12dp"
91+
app:layout_constraintEnd_toEndOf="@+id/app_version"
92+
app:layout_constraintStart_toStartOf="@+id/app_name"
93+
app:layout_constraintTop_toBottomOf="@+id/app_package"
94+
tools:text="安装:2020年9月15日" />
9495

9596
<TextView
96-
android:id="@+id/app_update"
97-
android:layout_width="0dp"
98-
android:layout_height="wrap_content"
99-
android:layout_marginTop="4dp"
100-
android:ellipsize="end"
101-
android:singleLine="true"
102-
android:textSize="12dp"
103-
app:layout_constraintEnd_toEndOf="@+id/app_version"
104-
app:layout_constraintStart_toStartOf="@+id/app_name"
105-
app:layout_constraintTop_toBottomOf="@+id/app_install"
106-
tools:text="最后更新:2020年9月15日" />
97+
android:id="@+id/app_update"
98+
android:layout_width="0dp"
99+
android:layout_height="wrap_content"
100+
android:layout_marginTop="4dp"
101+
android:ellipsize="end"
102+
android:singleLine="true"
103+
android:textSize="12dp"
104+
app:layout_constraintEnd_toEndOf="@+id/app_version"
105+
app:layout_constraintStart_toStartOf="@+id/app_name"
106+
app:layout_constraintTop_toBottomOf="@+id/app_install"
107+
tools:text="最后更新:2020年9月15日" />
107108

108109
<TextView
109-
android:id="@+id/app_md5"
110-
android:layout_width="0dp"
111-
android:layout_height="wrap_content"
112-
android:layout_marginTop="4dp"
113-
android:ellipsize="end"
114-
android:singleLine="true"
115-
android:textSize="12dp"
116-
app:layout_constraintEnd_toEndOf="@+id/app_version"
117-
app:layout_constraintStart_toStartOf="@+id/app_name"
118-
app:layout_constraintTop_toBottomOf="@+id/app_update"
119-
tools:text="安装包MD5:f7312bf1113af189cba98bbddcd4affe" />
110+
android:id="@+id/app_md5"
111+
android:layout_width="0dp"
112+
android:layout_height="wrap_content"
113+
android:layout_marginTop="4dp"
114+
android:ellipsize="end"
115+
android:singleLine="true"
116+
android:textSize="12dp"
117+
app:layout_constraintEnd_toEndOf="@+id/app_version"
118+
app:layout_constraintStart_toStartOf="@+id/app_name"
119+
app:layout_constraintTop_toBottomOf="@+id/app_update"
120+
tools:text="安装包MD5:f7312bf1113af189cba98bbddcd4affe" />
120121

121122
<TextView
122-
android:id="@+id/signature_md5"
123-
android:layout_width="0dp"
124-
android:layout_height="wrap_content"
125-
android:layout_marginTop="4dp"
126-
android:ellipsize="end"
127-
android:singleLine="true"
128-
android:textSize="12dp"
129-
app:layout_constraintEnd_toEndOf="@+id/app_version"
130-
app:layout_constraintStart_toStartOf="@+id/app_name"
131-
app:layout_constraintTop_toBottomOf="@+id/app_md5"
132-
tools:text="签名MD5:f7312bf1113af189cba98bbddcd4affe" />
133-
123+
android:id="@+id/signature_md5"
124+
android:layout_width="0dp"
125+
android:layout_height="wrap_content"
126+
android:layout_marginTop="4dp"
127+
android:ellipsize="end"
128+
android:singleLine="true"
129+
android:textSize="12dp"
130+
app:layout_constraintEnd_toEndOf="@+id/app_version"
131+
app:layout_constraintStart_toStartOf="@+id/app_name"
132+
app:layout_constraintTop_toBottomOf="@+id/app_md5"
133+
tools:text="签名MD5:f7312bf1113af189cba98bbddcd4affe" />
134134

135135

136136
</android.support.constraint.ConstraintLayout>

PubGetAPKInfo/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
xmlns:android="http://schemas.android.com/apk/res/android">
44
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
55
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
6+
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
67

78
<application
89
android:name="com.bihe0832.android.app.Application"

PubGetAPKInfo/src/main/java/com/bihe0832/android/app/apk/MainActivity.kt

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import com.bihe0832.android.framework.ui.list.CommonListLiveData
1919
import com.bihe0832.android.framework.ui.list.swiperefresh.CommonListActivity
2020
import com.bihe0832.android.lib.adapter.CardBaseModule
2121
import com.bihe0832.android.lib.debug.DebugTools
22-
import com.bihe0832.android.lib.immersion.hideBottomUIMenu
22+
import com.bihe0832.android.lib.install.InstallUtils
2323
import com.bihe0832.android.lib.lifecycle.INSTALL_TYPE_NOT_FIRST
2424
import com.bihe0832.android.lib.router.annotation.APPMain
2525
import com.bihe0832.android.lib.router.annotation.Module
@@ -98,20 +98,29 @@ class MainActivity : CommonListActivity() {
9898

9999
private fun initAdapter() {
100100
mAdapter.apply {
101-
setOnItemClickListener { adapter, view, position ->
101+
setOnItemChildClickListener { adapter, view, position ->
102102
var temp = adapter.data[position] as APPItemData
103-
if (temp.app_md5.isNullOrEmpty()) {
104-
ThreadManager.getInstance().start {
105-
try {
106-
107-
packageManager.getApplicationInfo(temp.app_package, PackageManager.GET_SIGNATURES)?.let {
108-
temp.app_md5 = MD5.getFileMD5(it.sourceDir)
109-
view.post {
110-
mAdapter.notifyDataSetChanged()
103+
when (view.id) {
104+
R.id.app_layout -> {
105+
if (temp.app_md5.isNullOrEmpty()) {
106+
ThreadManager.getInstance().start {
107+
try {
108+
packageManager.getApplicationInfo(temp.app_package, PackageManager.GET_SIGNATURES)?.let {
109+
temp.app_md5 = MD5.getFileMD5(it.sourceDir)
110+
view.post {
111+
mAdapter.notifyDataSetChanged()
112+
}
113+
}
114+
} catch (e: Exception) {
115+
e.printStackTrace()
111116
}
112117
}
113-
} catch (e: Exception) {
114-
e.printStackTrace()
118+
}
119+
}
120+
R.id.uninstall -> {
121+
InstallUtils.uninstallAPP(applicationContext, temp.app_package)
122+
view.post {
123+
mAdapter.notifyDataSetChanged()
115124
}
116125
}
117126
}

0 commit comments

Comments
 (0)