@@ -9,9 +9,6 @@ import android.support.v4.app.FragmentTransaction
9
9
import android.support.v7.app.AppCompatActivity
10
10
import android.support.v7.widget.PopupMenu
11
11
import android.support.v7.widget.Toolbar
12
- import android.view.Gravity
13
- import android.view.Menu
14
- import android.view.MenuItem
15
12
import com.shuyu.github.kotlin.R
16
13
import dagger.android.DispatchingAndroidInjector
17
14
import dagger.android.support.HasSupportFragmentInjector
@@ -22,75 +19,39 @@ import javax.inject.Inject
22
19
* Created by guoshuyu
23
20
* Date: 2018-10-24
24
21
*/
25
- abstract class BaseFragmentActivity : AppCompatActivity (), HasSupportFragmentInjector, Toolbar.OnMenuItemClickListener, PopupMenu.OnMenuItemClickListener {
22
+ abstract class BaseFragmentActivity : BaseActivity (), HasSupportFragmentInjector, Toolbar.OnMenuItemClickListener, PopupMenu.OnMenuItemClickListener {
26
23
27
24
@Inject
28
25
lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector <Fragment >
29
26
27
+ private var fragment: BaseFragment <* >? = null
28
+
30
29
override fun onCreate (savedInstanceState : Bundle ? ) {
31
30
super .onCreate(savedInstanceState)
32
- setContentView(R .layout.activity_fragment_container)
33
-
34
- setSupportActionBar(activity_fragment_container_toolbar)
35
- val actionBar = supportActionBar
36
- if (actionBar != null ) {
37
- actionBar.setDisplayHomeAsUpEnabled(true )
38
- actionBar.setDisplayShowTitleEnabled(false )
39
- }
40
-
41
- activity_fragment_container_toolbar.setOnMenuItemClickListener(this )
42
31
43
- activity_fragment_container_toolbar.title = getToolBarTitle()
44
-
45
- addFragment(getInitFragment(), R .id.activity_fragment_container_id)
32
+ fragment = getInitFragment()
33
+ addFragment(fragment!! , R .id.activity_fragment_container_id)
46
34
}
47
35
48
- override fun onOptionsItemSelected (item : MenuItem ? ): Boolean {
49
- when (item?.itemId) {
50
- android.R .id.home -> {
51
- finish()
52
- }
53
- }
54
- return true
55
- }
36
+ override fun getLayoutId (): Int = R .layout.activity_fragment_container
56
37
57
- override fun onCreateOptionsMenu (menu : Menu ): Boolean {
58
- menuInflater.inflate(R .menu.toolbar_default_menu, menu)
59
- return true
38
+ override fun actionOpenByBrowser () {
39
+ fragment?.actionOpenByBrowser()
60
40
}
61
41
62
- override fun onMenuItemClick (item : MenuItem ? ): Boolean {
63
- when (item?.itemId) {
64
- R .id.action_more -> {
65
- val pop = PopupMenu (this , activity_fragment_container_toolbar)
66
- pop.menuInflater.inflate(R .menu.toolbar_default_pop_menu, pop.menu)
67
- pop.gravity = Gravity .END
68
- pop.show()
69
- pop.setOnMenuItemClickListener(this )
70
- }
71
- R .id.action_browser -> {
72
- actionOpenByBrowser()
73
- }
74
- R .id.action_copy -> {
75
- actionCopy()
76
- }
77
- }
78
- return true
42
+ override fun actionCopy () {
43
+ fragment?.actionCopy()
79
44
}
80
45
81
- open fun actionOpenByBrowser () {
82
-
46
+ override fun actionShare () {
47
+ fragment?.actionShare()
83
48
}
84
49
85
- open fun actionCopy () {
86
-
87
- }
50
+ override fun getToolBar (): Toolbar = activity_fragment_container_toolbar
88
51
89
52
override fun supportFragmentInjector () = dispatchingAndroidInjector
90
53
91
- abstract fun getToolBarTitle (): String
92
-
93
- abstract fun getInitFragment (): Fragment
54
+ abstract fun getInitFragment (): BaseFragment <* >
94
55
}
95
56
96
57
fun Context.startActivity (cls : Class <* >) {
0 commit comments