13
13
* See the License for the specific language governing permissions and
14
14
* limitations under the License.
15
15
*/
16
- package com.squareup.sample.container.masterdetail
16
+ package com.squareup.sample.container.overviewdetail
17
17
18
18
import android.view.View
19
19
import android.view.View.INVISIBLE
20
20
import android.view.View.VISIBLE
21
21
import com.squareup.sample.container.R
22
- import com.squareup.sample.container.masterdetail.MasterDetailConfig .Detail
23
- import com.squareup.sample.container.masterdetail.MasterDetailConfig.Master
24
- import com.squareup.sample.container.masterdetail.MasterDetailConfig .Single
22
+ import com.squareup.sample.container.overviewdetail.OverviewDetailConfig .Detail
23
+ import com.squareup.sample.container.overviewdetail.OverviewDetailConfig.Overview
24
+ import com.squareup.sample.container.overviewdetail.OverviewDetailConfig .Single
25
25
import com.squareup.workflow.ui.LayoutRunner
26
26
import com.squareup.workflow.ui.ViewFactory
27
27
import com.squareup.workflow.ui.ViewEnvironment
28
28
import com.squareup.workflow.ui.WorkflowViewStub
29
29
import com.squareup.workflow.ui.backstack.BackStackScreen
30
30
31
31
/* *
32
- * Displays [MasterDetailScreen ] renderings in either split pane or single pane
32
+ * Displays [OverviewDetailScreen ] renderings in either split pane or single pane
33
33
* treatment, depending on the setup of the given [View]. The view must provide
34
- * either a single [WorkflowViewStub] with id [R.id.master_detail_single_stub ],
35
- * or else two with ids [R.id.master_stub ] and [R.id.detail_stub].
34
+ * either a single [WorkflowViewStub] with id [R.id.overview_detail_single_stub ],
35
+ * or else two with ids [R.id.overview_stub ] and [R.id.detail_stub].
36
36
*
37
- * For single pane layouts, [MasterDetailScreen ] is repackaged as a [BackStackScreen]
38
- * with [MasterDetailScreen.masterRendering ] as the base of the stack.
37
+ * For single pane layouts, [OverviewDetailScreen ] is repackaged as a [BackStackScreen]
38
+ * with [OverviewDetailScreen.overviewRendering ] as the base of the stack.
39
39
*/
40
- class MasterDetailContainer (view : View ) : LayoutRunner<MasterDetailScreen > {
40
+ class OverviewDetailContainer (view : View ) : LayoutRunner<OverviewDetailScreen > {
41
41
42
- private val masterStub : WorkflowViewStub ? = view.findViewById(R .id.master_stub )
42
+ private val overviewStub : WorkflowViewStub ? = view.findViewById(R .id.overview_stub )
43
43
private val detailStub: WorkflowViewStub ? = view.findViewById(R .id.detail_stub)
44
- private val singleStub: WorkflowViewStub ? = view.findViewById(R .id.master_detail_single_stub )
44
+ private val singleStub: WorkflowViewStub ? = view.findViewById(R .id.overview_detail_single_stub )
45
45
46
46
init {
47
- check((singleStub == null ) xor (masterStub == null && detailStub == null )) {
48
- " Layout must define only R.id.master_detail_single_stub , " +
49
- " or else both R.id.master_stub and R.id.detail_stub"
47
+ check((singleStub == null ) xor (overviewStub == null && detailStub == null )) {
48
+ " Layout must define only R.id.overview_detail_single_stub , " +
49
+ " or else both R.id.overview_stub and R.id.detail_stub"
50
50
}
51
51
}
52
52
53
53
override fun showRendering (
54
- rendering : MasterDetailScreen ,
54
+ rendering : OverviewDetailScreen ,
55
55
viewEnvironment : ViewEnvironment
56
56
) {
57
57
if (singleStub == null ) renderSplitView(rendering, viewEnvironment)
58
58
else renderSingleView(rendering, viewEnvironment, singleStub)
59
59
}
60
60
61
61
private fun renderSplitView (
62
- rendering : MasterDetailScreen ,
62
+ rendering : OverviewDetailScreen ,
63
63
viewEnvironment : ViewEnvironment
64
64
) {
65
65
if (rendering.detailRendering == null && rendering.selectDefault != null ) {
66
66
rendering.selectDefault!! .invoke()
67
67
} else {
68
- masterStub !! .update(
69
- rendering.masterRendering ,
70
- viewEnvironment + (MasterDetailConfig to Master )
68
+ overviewStub !! .update(
69
+ rendering.overviewRendering ,
70
+ viewEnvironment + (OverviewDetailConfig to Overview )
71
71
)
72
72
rendering.detailRendering
73
73
?.let { detail ->
74
74
detailStub!! .actual.visibility = VISIBLE
75
75
detailStub.update(
76
76
detail,
77
- viewEnvironment + (MasterDetailConfig to Detail )
77
+ viewEnvironment + (OverviewDetailConfig to Detail )
78
78
)
79
79
}
80
80
? : run {
@@ -84,20 +84,20 @@ class MasterDetailContainer(view: View) : LayoutRunner<MasterDetailScreen> {
84
84
}
85
85
86
86
private fun renderSingleView (
87
- rendering : MasterDetailScreen ,
87
+ rendering : OverviewDetailScreen ,
88
88
viewEnvironment : ViewEnvironment ,
89
89
stub : WorkflowViewStub
90
90
) {
91
91
val combined: BackStackScreen <* > = rendering.detailRendering
92
- ?.let { rendering.masterRendering + it }
93
- ? : rendering.masterRendering
92
+ ?.let { rendering.overviewRendering + it }
93
+ ? : rendering.overviewRendering
94
94
95
- stub.update(combined, viewEnvironment + (MasterDetailConfig to Single ))
95
+ stub.update(combined, viewEnvironment + (OverviewDetailConfig to Single ))
96
96
}
97
97
98
- companion object : ViewFactory <MasterDetailScreen > by LayoutRunner .Binding (
99
- type = MasterDetailScreen ::class ,
100
- layoutId = R .layout.master_detail ,
101
- runnerConstructor = ::MasterDetailContainer
98
+ companion object : ViewFactory <OverviewDetailScreen > by LayoutRunner .Binding (
99
+ type = OverviewDetailScreen ::class ,
100
+ layoutId = R .layout.overview_detail ,
101
+ runnerConstructor = ::OverviewDetailContainer
102
102
)
103
103
}
0 commit comments