@@ -17,11 +17,9 @@ import android.view.Menu
1717import android.view.MenuItem
1818import android.view.View
1919import android.widget.ImageView
20-
20+ import info.papdt.express.helper.*
2121import 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+
2523import info.papdt.express.helper.api.PackageApi
2624import info.papdt.express.helper.dao.PackageDatabase
2725import 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}
0 commit comments