1 /*
2  * Copyright (C) 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.android.wallpaper.picker.preview.ui.binder
17 
18 import android.content.Context
19 import android.view.View
20 import androidx.lifecycle.LifecycleOwner
21 import androidx.transition.Transition
22 import com.android.wallpaper.picker.preview.ui.view.DualPreviewViewPager
23 import com.android.wallpaper.picker.preview.ui.view.PreviewTabs
24 import com.android.wallpaper.picker.preview.ui.viewmodel.FullPreviewConfigViewModel
25 import com.android.wallpaper.picker.preview.ui.viewmodel.WallpaperPreviewViewModel
26 
27 /**
28  * This binder binds the data and view models for the dual preview collection on the small preview
29  * screen.
30  */
31 object DualPreviewSelectorBinder {
32 
bindnull33     fun bind(
34         tabs: PreviewTabs,
35         dualPreviewView: DualPreviewViewPager,
36         wallpaperPreviewViewModel: WallpaperPreviewViewModel,
37         applicationContext: Context,
38         viewLifecycleOwner: LifecycleOwner,
39         currentNavDestId: Int,
40         transition: Transition?,
41         transitionConfig: FullPreviewConfigViewModel?,
42         isFirstBinding: Boolean,
43         navigate: (View) -> Unit,
44     ) {
45         DualPreviewPagerBinder.bind(
46             dualPreviewView,
47             wallpaperPreviewViewModel,
48             applicationContext,
49             viewLifecycleOwner,
50             currentNavDestId,
51             transition,
52             transitionConfig,
53             isFirstBinding,
54             navigate,
55         )
56 
57         TabsBinder.bind(tabs, wallpaperPreviewViewModel, viewLifecycleOwner)
58     }
59 }
60