Skip to content
This repository was archived by the owner on Jun 8, 2024. It is now read-only.

Commit 0bf8482

Browse files
committed
Fix & Closes #59
Signed-off-by: Fung Gwo <fython@163.com>
1 parent 73e9540 commit 0bf8482

4 files changed

Lines changed: 44 additions & 47 deletions

File tree

mobile/src/main/kotlin/info/papdt/express/helper/Constants.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package info.papdt.express.helper
22

3-
const val BUGLY_APP_ID = "a499a51858"
4-
const val BUGLY_ENABLE_DEBUG = false
5-
63
const val RESULT_EXTRA_PACKAGE_JSON = "package_json"
74
const val RESULT_EXTRA_COMPANY_CODE = "company_code"
85

@@ -16,9 +13,11 @@ const val RESULT_RENAMED = 2002
1613
const val ACTION_PREFIX = BuildConfig.APPLICATION_ID + ".action"
1714
const val ACTION_SEARCH = "$ACTION_PREFIX.SEARCH"
1815
const val ACTION_REQUEST_DELETE_PACK = "$ACTION_PREFIX.REQUEST_DELETE_PACK"
16+
const val ACTION_REQUEST_OPEN_DETAILS = "$ACTION_PREFIX.REQUEST_OPEN_DETAILS"
1917

2018
const val EXTRA_PREFIX = BuildConfig.APPLICATION_ID + ".extra"
2119
const val EXTRA_DATA = "$EXTRA_PREFIX.DATA"
2220
const val EXTRA_OLD_DATA = "$EXTRA_PREFIX.OLD_DATA"
21+
const val EXTRA_STATE = "$EXTRA_PREFIX.STATE"
2322

2423
const val CHANNEL_ID_PACKAGE_STATUS = "package_status"

mobile/src/main/kotlin/info/papdt/express/helper/services/ReminderService.kt

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,21 @@ import android.app.NotificationManager
66
import android.app.PendingIntent
77
import android.content.Context
88
import android.content.Intent
9-
import android.os.Build
109
import android.os.IBinder
1110
import androidx.core.app.NotificationCompat
1211
import android.util.Log
13-
import info.papdt.express.helper.CHANNEL_ID_PACKAGE_STATUS
12+
import info.papdt.express.helper.*
13+
import info.papdt.express.helper.R
1414

1515
import java.text.ParseException
1616
import java.text.SimpleDateFormat
1717

18-
import info.papdt.express.helper.R
1918
import info.papdt.express.helper.dao.PackageDatabase
2019
import info.papdt.express.helper.model.Kuaidi100Package
2120
import info.papdt.express.helper.support.PushUtils
2221
import info.papdt.express.helper.support.Settings
2322
import info.papdt.express.helper.support.SettingsInstance
24-
import info.papdt.express.helper.ui.DetailsActivity
23+
import info.papdt.express.helper.ui.HomeActivity
2524
import info.papdt.express.helper.ui.launcher.AppWidgetProvider
2625
import moe.feng.kotlinyan.common.*
2726
import java.util.*
@@ -90,10 +89,7 @@ class ReminderService : IntentService(TAG) {
9089
builder.setContentIntent(contentIntent)
9190
if (time > 0) builder.setWhen(time)
9291
builder.setAutoCancel(true)
93-
94-
if (Build.VERSION.SDK_INT >= 21) {
95-
builder.color = color
96-
}
92+
builder.color = color
9793
n = builder.build()
9894

9995
return n
@@ -106,10 +102,10 @@ class ReminderService : IntentService(TAG) {
106102
val pi = PendingIntent.getActivity(
107103
context.applicationContext,
108104
position,
109-
Intent(context.applicationContext, DetailsActivity::class.java).apply {
105+
Intent(context, HomeActivity::class.java).apply {
110106
flags = Intent.FLAG_ACTIVITY_SINGLE_TOP
111-
this["extra_package_json"] = exp.toJsonString()
112-
this["extra_state"] = exp.getState()
107+
action = ACTION_REQUEST_OPEN_DETAILS
108+
this[EXTRA_DATA] = exp
113109
},
114110
PendingIntent.FLAG_UPDATE_CURRENT)
115111

mobile/src/main/kotlin/info/papdt/express/helper/ui/DetailsActivity.kt

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,9 @@ import android.view.Menu
1717
import android.view.MenuItem
1818
import android.view.View
1919
import android.widget.ImageView
20-
20+
import info.papdt.express.helper.*
2121
import info.papdt.express.helper.R
22-
import info.papdt.express.helper.REQUEST_DETAILS
23-
import info.papdt.express.helper.RESULT_DELETED
24-
import info.papdt.express.helper.RESULT_RENAMED
22+
2523
import info.papdt.express.helper.api.PackageApi
2624
import info.papdt.express.helper.dao.PackageDatabase
2725
import info.papdt.express.helper.model.BaseMessage
@@ -67,7 +65,7 @@ class DetailsActivity : AbsActivity() {
6765
}
6866
}
6967

70-
private var data: Kuaidi100Package? = null
68+
private lateinit var data: Kuaidi100Package
7169
private var state: Int = 0
7270

7371
private val progressDialog: ProgressDialog by lazy {
@@ -126,10 +124,10 @@ class DetailsActivity : AbsActivity() {
126124

127125
private fun buildItems(): Items {
128126
val newItems = Items()
129-
newItems.add(DetailsTwoLineItem(DetailsTwoLineItem.TYPE_NAME, data!!.name!!))
130-
newItems.add(DetailsTwoLineItem(DetailsTwoLineItem.TYPE_NUMBER, data!!.number!!, data!!.companyChineseName))
127+
newItems.add(DetailsTwoLineItem(DetailsTwoLineItem.TYPE_NAME, data.name!!))
128+
newItems.add(DetailsTwoLineItem(DetailsTwoLineItem.TYPE_NUMBER, data.number!!, data.companyChineseName))
131129
newItems.add(getString(R.string.list_status_subheader))
132-
newItems.addAll(data!!.data ?: listOf())
130+
newItems.addAll(data.data ?: listOf())
133131
return newItems
134132
}
135133

@@ -145,9 +143,12 @@ class DetailsActivity : AbsActivity() {
145143
return true
146144
}
147145
R.id.action_copy_code -> {
148-
ClipboardUtils.putString(applicationContext, data!!.number)
149-
Snackbar.make(findViewById(R.id.coordinator_layout)!!, R.string.toast_copied_code, Snackbar.LENGTH_LONG)
150-
.show()
146+
ClipboardUtils.putString(applicationContext, data.number)
147+
Snackbar.make(
148+
findViewById(R.id.coordinator_layout)!!,
149+
R.string.toast_copied_code,
150+
Snackbar.LENGTH_LONG
151+
).show()
151152
return true
152153
}
153154
R.id.action_share -> {
@@ -159,14 +160,14 @@ class DetailsActivity : AbsActivity() {
159160
return true
160161
}
161162
R.id.action_set_unread -> {
162-
data!!.unreadNew = true
163+
data.unreadNew = true
163164

164165
val intent = Intent()
165-
intent.putExtra("id", data!!.number)
166+
intent.putExtra("id", data.number)
166167
setResult(RESULT_RENAMED, intent)
167168

168169
val db = PackageDatabase.getInstance(applicationContext)
169-
db[db.indexOf(data!!.number!!)] = data!!
170+
db[db.indexOf(data.number!!)] = data
170171

171172
finish()
172173
return true
@@ -175,21 +176,21 @@ class DetailsActivity : AbsActivity() {
175176
ui {
176177
progressDialog.show()
177178
val result = asyncIO {
178-
val newPack = PackageApi.getPackage(data!!.number!!, data!!.companyType)
179+
val newPack = PackageApi.getPackage(data.number!!, data.companyType)
179180
if (newPack.code != BaseMessage.CODE_OKAY || newPack.data?.data == null) {
180181
false
181182
} else {
182-
data!!.applyNewData(newPack.data)
183+
data.applyNewData(newPack.data)
183184
val db = PackageDatabase.getInstance(applicationContext)
184-
db[db.indexOf(data!!.number!!)] = data!!
185+
db[db.indexOf(data.number!!)] = data
185186
db.save()
186187
true
187188
}
188189
}.await()
189190
progressDialog.dismiss()
190191
if (result) {
191192
val intent = Intent()
192-
intent["id"] = data!!.number
193+
intent["id"] = data.number
193194
setResult(RESULT_RENAMED, intent)
194195
setUpData()
195196
}
@@ -201,7 +202,7 @@ class DetailsActivity : AbsActivity() {
201202
}
202203

203204
fun showNameEditDialog() {
204-
EditPackageDialog.newInstance(data!!).show(supportFragmentManager, "edit")
205+
EditPackageDialog.newInstance(data).show(supportFragmentManager, "edit")
205206
}
206207

207208
private fun showDeleteDialog() {
@@ -210,11 +211,11 @@ class DetailsActivity : AbsActivity() {
210211

211212
private fun showShareChooser() {
212213
val text = getString(R.string.share_info_format,
213-
data!!.name,
214-
data!!.number,
215-
data!!.companyChineseName,
216-
if (data!!.data!!.size > 0) data!!.data!![0].context else "Unknown",
217-
if (data!!.data!!.size > 0) data!!.data!![0].time else ""
214+
data.name,
215+
data.number,
216+
data.companyChineseName,
217+
if (data.data!!.size > 0) data.data!![0].context else "Unknown",
218+
if (data.data!!.size > 0) data.data!![0].time else ""
218219
)
219220

220221
val intent = Intent(Intent.ACTION_SEND)
@@ -226,8 +227,8 @@ class DetailsActivity : AbsActivity() {
226227
private inner class ListBuildTask : AsyncTask<Void, Void, Items>() {
227228

228229
override fun doInBackground(vararg voids: Void): Items {
229-
if (data == null) {
230-
data = Kuaidi100Package.buildFromJson(intent.getStringExtra(EXTRA_PACKAGE_JSON))
230+
if (!this@DetailsActivity::data.isInitialized) {
231+
data = intent.getParcelableExtra(EXTRA_DATA)
231232
}
232233

233234
return buildItems()
@@ -237,33 +238,31 @@ class DetailsActivity : AbsActivity() {
237238
mStatusBinder.setData(data)
238239
mAdapter.items = items
239240
mStatusBinder.showChiba =
240-
(data?.data?.find { it.context!!.contains("佛山") || it.context!!.contains("广州") } != null)
241-
&& (data?.companyChineseName?.contains("圆通") == true)
241+
(data.data?.find { it.context!!.contains("佛山") || it.context!!.contains("广州") } != null)
242+
&& (data.companyChineseName?.contains("圆通") == true)
242243
mAdapter.notifyDataSetChanged()
243244

244245
val color: Int = when (state) {
245246
Kuaidi100Package.STATUS_DELIVERED -> resources.color[R.color.teal_500]
246247
Kuaidi100Package.STATUS_FAILED -> resources.color[R.color.blue_grey_500]
247248
else -> resources.color[R.color.blue_500]
248249
}
249-
val taskDesc = ActivityManager.TaskDescription(data!!.name, null, color)
250+
val taskDesc = ActivityManager.TaskDescription(data.name, null, color)
250251
setTaskDescription(taskDesc)
251252
}
252253

253254
}
254255

255256
companion object {
256257

257-
private const val EXTRA_PACKAGE_JSON = "extra_package_json"
258-
private const val EXTRA_STATE = "extra_state"
259-
260258
fun launch(activity: Activity, p: Kuaidi100Package) {
261259
val intent = Intent(activity, DetailsActivity::class.java)
262260
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
263-
intent[EXTRA_PACKAGE_JSON] = p.toJsonString()
261+
intent[EXTRA_DATA] = p
264262
intent[EXTRA_STATE] = p.getState()
265263
activity.startActivityForResult(intent, REQUEST_DETAILS)
266264
}
265+
267266
}
268267

269268
}

mobile/src/main/kotlin/info/papdt/express/helper/ui/HomeActivity.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@ class HomeActivity : AbsActivity(), OnRefreshListener {
168168
addButton.performClick()
169169
}
170170
}
171+
ACTION_REQUEST_OPEN_DETAILS -> {
172+
DetailsActivity.launch(this, intent.getParcelableExtra(EXTRA_DATA))
173+
}
171174
ScannerActivity.ACTION_SCAN_TO_ADD -> {
172175
scanButton.performClick()
173176
}

0 commit comments

Comments
 (0)