1 /*
2  * Copyright (C) 2021 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 
17 package com.android.providers.media.photopicker.espresso;
18 
19 import static com.android.providers.media.photopicker.espresso.PhotoPickerBaseTest.MANAGED_SELECTION_ENABLED_EXTRA;
20 
21 import static org.mockito.Mockito.RETURNS_SMART_NULLS;
22 import static org.mockito.Mockito.mock;
23 
24 import androidx.annotation.NonNull;
25 
26 import com.android.internal.logging.InstanceId;
27 import com.android.internal.logging.UiEventLogger;
28 import com.android.providers.media.TestConfigStore;
29 import com.android.providers.media.photopicker.PhotoPickerActivity;
30 import com.android.providers.media.photopicker.data.ItemsProvider;
31 import com.android.providers.media.photopicker.metrics.PhotoPickerUiEventLogger;
32 import com.android.providers.media.photopicker.viewmodel.PickerViewModel;
33 
34 public class PhotoPickerTestActivity extends PhotoPickerActivity {
35     private final TestConfigStore mConfigStore = new TestConfigStore();
36     private final UiEventLogger mLogger = mock(UiEventLogger.class, RETURNS_SMART_NULLS);
37     private InstanceId mInstanceId;
38 
39     @Override
40     @NonNull
getOrCreateViewModel()41     protected PickerViewModel getOrCreateViewModel() {
42         final PickerViewModel pickerViewModel = super.getOrCreateViewModel();
43         if (getIntent().getExtras() != null && getIntent().getExtras().getBoolean(
44                 MANAGED_SELECTION_ENABLED_EXTRA)) {
45             mConfigStore.enablePickerChoiceManagedSelectionEnabled();
46         }
47         pickerViewModel.setConfigStore(mConfigStore);
48         pickerViewModel.setItemsProvider(new ItemsProvider(
49                 PhotoPickerBaseTest.getIsolatedContext()));
50         pickerViewModel.setUserIdManager(PhotoPickerBaseTest.getMockUserIdManager());
51         pickerViewModel.setLogger(new PhotoPickerUiEventLogger(mLogger));
52         mInstanceId = pickerViewModel.getInstanceId();
53         return pickerViewModel;
54     }
55 
getConfigStore()56     TestConfigStore getConfigStore() {
57         return mConfigStore;
58     }
59 
getLogger()60     UiEventLogger getLogger() {
61         return mLogger;
62     }
63 
getInstanceId()64     InstanceId getInstanceId() {
65         return mInstanceId;
66     }
67 }
68