Skip to content

Commit aaf789f

Browse files
committed
JetPack组件升级
1 parent 4a9eb6f commit aaf789f

File tree

10 files changed

+56
-56
lines changed

10 files changed

+56
-56
lines changed

app/src/main/java/com/fmt/github/WelcomeActivity.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.fmt.github
22

3-
import android.content.Intent
43
import androidx.lifecycle.lifecycleScope
54
import com.afollestad.assent.*
65
import com.fmt.github.base.activity.BaseDataBindActivity
@@ -54,18 +53,11 @@ class WelcomeActivity : BaseDataBindActivity<ActivityWelcomeBinding>() {
5453
delay(500)//挂起,但不会阻塞,后续通过resumeWith恢复执行
5554
val userList = mUserDao.getAll()
5655
(userList.isEmpty()).yes {
57-
go2Activity(LoginActivity::class.java)
56+
startActivity<LoginActivity>()
5857
}.otherwise {
5958
Settings.Account.loginUser = userList[0].login
60-
go2Activity(HomeActivity::class.java)
59+
startActivity<HomeActivity>()
6160
}
6261
}
6362
}
64-
65-
private fun go2Activity(clazz: Class<*>) {
66-
Intent(this@WelcomeActivity, clazz).run {
67-
startActivity(this)
68-
finish()
69-
}
70-
}
7163
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.fmt.github.ext
2+
3+
import android.app.Activity
4+
import android.content.Intent
5+
import android.os.Bundle
6+
7+
//reified修饰类型后,我们就能够在函数内部使用相关类型了
8+
//重要的是,使用内联函数后,在其运行地方需要替换代码来获得类型。事实上由于Java虚拟机的限制,类型不能使用,而是跳过限制的“诡计”。
9+
inline fun <reified T : Activity> Activity.startActivity(isFinish:Boolean = true) {
10+
startActivity(Intent(this, T::class.java))
11+
isFinish.yes {
12+
finish()
13+
}
14+
}
15+
16+
inline fun <reified T : Activity> Activity.startActivity(extras: Bundle) {
17+
startActivity(Intent(this, T::class.java).putExtras(extras))
18+
}

app/src/main/java/com/fmt/github/home/activity/HomeActivity.kt

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.fmt.github.home.activity
22

3-
import android.content.Intent
3+
import android.os.Bundle
44
import android.view.LayoutInflater
55
import android.view.Menu
66
import android.view.MenuItem
@@ -16,6 +16,7 @@ import com.fmt.github.data.storage.Preference
1616
import com.fmt.github.databinding.LayoutNavHeaderBinding
1717
import com.fmt.github.ext.getVersionName
1818
import com.fmt.github.ext.showConfirmPopup
19+
import com.fmt.github.ext.startActivity
1920
import com.fmt.github.ext.yes
2021
import com.fmt.github.home.viewmodel.HomeViewModel
2122
import com.fmt.github.home.work.DownLoadWork
@@ -93,7 +94,7 @@ class HomeActivity : BaseVMActivity(), NavigationView.OnNavigationItemSelectedLi
9394
when (menuItem.itemId) {
9495
R.id.item_user -> go2UserInfoActivity(mUser.login, mUser.avatar_url)
9596

96-
R.id.item_about -> Intent(this, AboutActivity::class.java).run { startActivity(this) }
97+
R.id.item_about -> startActivity<AboutActivity>(false)
9798

9899
R.id.item_logout -> showLogoutPopup()
99100
}
@@ -102,11 +103,10 @@ class HomeActivity : BaseVMActivity(), NavigationView.OnNavigationItemSelectedLi
102103
}
103104

104105
private fun go2UserInfoActivity(login: String, avatar_url: String) {
105-
val userModel = UserModel(login, avatar_url)
106-
with(Intent(this, UserInfoActivity::class.java)) {
107-
putExtra(UserInfoActivity.USER_INFO, userModel)
108-
}.run {
109-
startActivity(this)
106+
Bundle().run {
107+
val userModel = UserModel(login, avatar_url)
108+
putSerializable(UserInfoActivity.USER_INFO, userModel)
109+
startActivity<UserInfoActivity>(this)
110110
}
111111
}
112112

@@ -124,9 +124,9 @@ class HomeActivity : BaseVMActivity(), NavigationView.OnNavigationItemSelectedLi
124124
}
125125

126126
private fun go2SearchActivity(fromSearchRepos: Boolean) {
127-
Intent(this, CommonSearchActivity::class.java).run {
128-
putExtra(CommonSearchActivity.FROM_SEARCH_REPOS, fromSearchRepos)
129-
startActivity(this)
127+
Bundle().run {
128+
putBoolean(CommonSearchActivity.FROM_SEARCH_REPOS, fromSearchRepos)
129+
startActivity<CommonSearchActivity>(this)
130130
}
131131
}
132132

@@ -165,9 +165,6 @@ class HomeActivity : BaseVMActivity(), NavigationView.OnNavigationItemSelectedLi
165165
private fun logout() {
166166
Preference.clear()
167167
mViewModel.deleteUser()
168-
Intent(this, LoginActivity::class.java).run {
169-
startActivity(this)
170-
finish()
171-
}
168+
startActivity<LoginActivity>()
172169
}
173170
}

app/src/main/java/com/fmt/github/repos/activity/ReposDetailActivity.kt

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.fmt.github.repos.activity
22

3-
import android.content.Context
4-
import android.content.Intent
3+
import android.app.Activity
4+
import android.os.Bundle
55
import android.view.KeyEvent
66
import android.view.View
77
import android.widget.LinearLayout
@@ -11,10 +11,8 @@ import com.fmt.github.R
1111
import com.fmt.github.base.activity.BaseVMActivity
1212
import com.fmt.github.base.viewmodel.BaseViewModel
1313
import com.fmt.github.constant.Constant
14-
import com.fmt.github.ext.no
15-
import com.fmt.github.ext.otherwise
16-
import com.fmt.github.ext.successToast
17-
import com.fmt.github.ext.yes
14+
import com.fmt.github.ext.*
15+
import com.fmt.github.ext.startActivity
1816
import com.fmt.github.home.event.ReposStarEvent
1917
import com.fmt.github.repos.viewmodel.ReposViewModel
2018
import com.jeremyliao.liveeventbus.LiveEventBus
@@ -128,12 +126,11 @@ class ReposDetailActivity : BaseVMActivity() {
128126
}
129127
}
130128

131-
fun go2ReposDetailActivity(context: Context, webUrl: String, repo: String, owner: String) {
132-
with(Intent(context, ReposDetailActivity::class.java)) {
133-
putExtra(ReposDetailActivity.WEB_URL, webUrl)
134-
putExtra(ReposDetailActivity.REPO, repo)
135-
putExtra(ReposDetailActivity.OWNER, owner)
136-
}.run {
137-
context.startActivity(this)
129+
fun go2ReposDetailActivity(activity: Activity, webUrl: String, repo: String, owner: String) {
130+
Bundle().run {
131+
putString(ReposDetailActivity.WEB_URL, webUrl)
132+
putString(ReposDetailActivity.REPO, repo)
133+
putString(ReposDetailActivity.OWNER, owner)
134+
activity.startActivity<ReposDetailActivity>(this)
138135
}
139136
}

app/src/main/java/com/fmt/github/repos/fragment/ReposFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ReposFragment : BaseListMVFragment<ReposItemModel>(){
2626
override fun initRecyclerView() {
2727
val type = Type<LayoutReposBinding>(R.layout.layout_repos)
2828
.onClick {
29-
val reposItemModel = mListData[it.adapterPosition]
29+
val reposItemModel = mListData[it.bindingAdapterPosition]
3030
go2ReposDetailActivity(mActivity,reposItemModel.html_url,reposItemModel.name,reposItemModel.owner.login)
3131
}
3232
LastAdapter(mListData, BR.item)

app/src/main/java/com/fmt/github/user/activity/LoginActivity.kt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import com.fmt.github.config.Configs
1010
import com.fmt.github.config.Settings
1111
import com.fmt.github.databinding.ActivityLoginBinding
1212
import com.fmt.github.ext.otherwise
13+
import com.fmt.github.ext.startActivity
1314
import com.fmt.github.ext.yes
1415
import com.fmt.github.home.activity.HomeActivity
1516
import com.fmt.github.user.model.AuthorizationRespModel
@@ -119,14 +120,7 @@ class LoginActivity : BaseDataBindVMActivity<ActivityLoginBinding>() {
119120
User(userModel.id, userModel.login, userModel.avatar_url).apply {
120121
Settings.Account.loginUser = this.login
121122
mViewModel.saveLocalUser(this@apply)
122-
go2MainActivity()
123-
}
124-
}
125-
126-
private fun go2MainActivity() {
127-
Intent(this, HomeActivity::class.java).run {
128-
startActivity(this)
129-
finish()
123+
startActivity<HomeActivity>()
130124
}
131125
}
132126

app/src/main/java/com/fmt/github/user/activity/PhotoPreviewActivity.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,23 @@
11
package com.fmt.github.user.activity
22

3-
import android.content.Context
4-
import android.content.Intent
3+
import android.app.Activity
4+
import android.os.Bundle
55
import com.fmt.github.R
66
import com.fmt.github.base.activity.BaseDataBindActivity
77
import com.fmt.github.databinding.ActivityPhotoPreviewBinding
8+
import com.fmt.github.ext.startActivity
89
import kotlinx.android.synthetic.main.activity_photo_preview.*
910

1011
class PhotoPreviewActivity : BaseDataBindActivity<ActivityPhotoPreviewBinding>() {
1112

1213
companion object {
1314
private const val IMAGE_URL = "image_url"
1415

15-
fun go2PhotoPreviewActivity(context: Context, url: String) {
16-
val intent = Intent(context, PhotoPreviewActivity::class.java)
17-
intent.putExtra(IMAGE_URL, url)
18-
context.startActivity(intent)
16+
fun go2PhotoPreviewActivity(activity: Activity, url: String) {
17+
Bundle().run {
18+
putString(IMAGE_URL, url)
19+
activity.startActivity<PhotoPreviewActivity>(this)
20+
}
1921
}
2022
}
2123

app/src/main/java/com/fmt/github/user/fragment/UserFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class UserFragment : BaseListMVFragment<UserModel>() {
2626
override fun initRecyclerView() {
2727
val type = Type<LayoutUsersBinding>(R.layout.layout_users)
2828
.onClick {
29-
go2UserInfoActivity(mActivity,it.binding.ivHead, mListData[it.adapterPosition])
29+
go2UserInfoActivity(mActivity,it.binding.ivHead, mListData[it.bindingAdapterPosition])
3030
}
3131
LastAdapter(mListData, BR.item)//基于DataBinding封装简化RecyclerView.Adapter
3232
.map<UserModel>(type)

app/src/main/java/com/fmt/github/user/fragment/UserReposFragment.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class UserReposFragment : BaseListMVFragment<ReposItemModel>(){
4646
override fun initRecyclerView() {
4747
val type = Type<LayoutReposBinding>(R.layout.layout_repos)
4848
.onClick {
49-
val reposItemModel = mListData[it.adapterPosition]
49+
val reposItemModel = mListData[it.bindingAdapterPosition]
5050
go2ReposDetailActivity(mActivity,reposItemModel.html_url,reposItemModel.name,reposItemModel.owner.login)
5151
}
5252
LastAdapter(mListData, BR.item)

app/src/main/java/com/fmt/github/utils/AppOpener.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ object AppOpener {
2525

2626
private fun createActivityChooserIntent(
2727
context: Context, intent: Intent,
28-
uri: Uri, ignorPackageList: List<String>?
28+
uri: Uri, ignorePackageList: List<String>?
2929
): Intent? {
3030
val pm = context.packageManager
3131
val activities = pm.queryIntentActivities(
@@ -45,7 +45,7 @@ object AppOpener {
4545
if (info.packageName == ourPackageName) {
4646
continue
4747
}
48-
if (ignorPackageList != null && ignorPackageList.contains(info.packageName)) {
48+
if (ignorePackageList != null && ignorePackageList.contains(info.packageName)) {
4949
continue
5050
}
5151

0 commit comments

Comments
 (0)