• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2019 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.testing;
17 
18 import android.content.Context;
19 import android.content.Intent;
20 import android.net.Uri;
21 
22 import androidx.fragment.app.Fragment;
23 
24 import com.android.wallpaper.compat.WallpaperManagerCompat;
25 import com.android.wallpaper.model.CategoryProvider;
26 import com.android.wallpaper.model.WallpaperInfo;
27 import com.android.wallpaper.module.AlarmManagerWrapper;
28 import com.android.wallpaper.module.BitmapCropper;
29 import com.android.wallpaper.module.CurrentWallpaperInfoFactory;
30 import com.android.wallpaper.module.DefaultLiveWallpaperInfoFactory;
31 import com.android.wallpaper.module.DrawableLayerResolver;
32 import com.android.wallpaper.module.ExploreIntentChecker;
33 import com.android.wallpaper.module.FormFactorChecker;
34 import com.android.wallpaper.module.Injector;
35 import com.android.wallpaper.module.LiveWallpaperInfoFactory;
36 import com.android.wallpaper.module.LoggingOptInStatusProvider;
37 import com.android.wallpaper.module.NetworkStatusNotifier;
38 import com.android.wallpaper.module.PackageStatusNotifier;
39 import com.android.wallpaper.module.PartnerProvider;
40 import com.android.wallpaper.module.SystemFeatureChecker;
41 import com.android.wallpaper.module.UserEventLogger;
42 import com.android.wallpaper.module.WallpaperPersister;
43 import com.android.wallpaper.module.WallpaperPreferences;
44 import com.android.wallpaper.module.WallpaperRefresher;
45 import com.android.wallpaper.module.WallpaperRotationRefresher;
46 import com.android.wallpaper.monitor.PerformanceMonitor;
47 import com.android.wallpaper.network.Requester;
48 import com.android.wallpaper.picker.ImagePreviewFragment;
49 import com.android.wallpaper.picker.individual.IndividualPickerFragment;
50 
51 /**
52  * Test implementation of the dependency injector.
53  */
54 public class TestInjector implements Injector {
55 
56     private BitmapCropper mBitmapCropper;
57     private CategoryProvider mCategoryProvider;
58     private PartnerProvider mPartnerProvider;
59     private WallpaperPreferences mPrefs;
60     private WallpaperPersister mWallpaperPersister;
61     private WallpaperRefresher mWallpaperRefresher;
62     private Requester mRequester;
63     private WallpaperManagerCompat mWallpaperManagerCompat;
64     private CurrentWallpaperInfoFactory mCurrentWallpaperInfoFactory;
65     private NetworkStatusNotifier mNetworkStatusNotifier;
66     private AlarmManagerWrapper mAlarmManagerWrapper;
67     private UserEventLogger mUserEventLogger;
68     private ExploreIntentChecker mExploreIntentChecker;
69     private SystemFeatureChecker mSystemFeatureChecker;
70     private FormFactorChecker mFormFactorChecker;
71     private WallpaperRotationRefresher mWallpaperRotationRefresher;
72     private PerformanceMonitor mPerformanceMonitor;
73     private LoggingOptInStatusProvider mLoggingOptInStatusProvider;
74 
75     @Override
getBitmapCropper()76     public BitmapCropper getBitmapCropper() {
77         if (mBitmapCropper == null) {
78             mBitmapCropper = new com.android.wallpaper.testing.TestBitmapCropper();
79         }
80         return mBitmapCropper;
81     }
82 
83     @Override
getCategoryProvider(Context context)84     public CategoryProvider getCategoryProvider(Context context) {
85         if (mCategoryProvider == null) {
86             mCategoryProvider = new TestCategoryProvider();
87         }
88         return mCategoryProvider;
89     }
90 
91     @Override
getPartnerProvider(Context context)92     public PartnerProvider getPartnerProvider(Context context) {
93         if (mPartnerProvider == null) {
94             mPartnerProvider = new TestPartnerProvider();
95         }
96         return mPartnerProvider;
97     }
98 
99     @Override
getPreferences(Context context)100     public WallpaperPreferences getPreferences(Context context) {
101         if (mPrefs == null) {
102             mPrefs = new TestWallpaperPreferences();
103         }
104         return mPrefs;
105     }
106 
107     @Override
getWallpaperPersister(Context context)108     public WallpaperPersister getWallpaperPersister(Context context) {
109         if (mWallpaperPersister == null) {
110             mWallpaperPersister = new TestWallpaperPersister(context.getApplicationContext());
111         }
112         return mWallpaperPersister;
113     }
114 
115     @Override
getWallpaperRefresher(Context context)116     public WallpaperRefresher getWallpaperRefresher(Context context) {
117         if (mWallpaperRefresher == null) {
118             mWallpaperRefresher = new TestWallpaperRefresher(context.getApplicationContext());
119         }
120         return mWallpaperRefresher;
121     }
122 
123     @Override
getRequester(Context unused)124     public Requester getRequester(Context unused) {
125         return null;
126     }
127 
128     @Override
getWallpaperManagerCompat(Context context)129     public WallpaperManagerCompat getWallpaperManagerCompat(Context context) {
130         if (mWallpaperManagerCompat == null) {
131             mWallpaperManagerCompat = new com.android.wallpaper.testing.TestWallpaperManagerCompat(
132                     context.getApplicationContext());
133         }
134         return mWallpaperManagerCompat;
135     }
136 
137     @Override
getCurrentWallpaperFactory(Context context)138     public CurrentWallpaperInfoFactory getCurrentWallpaperFactory(Context context) {
139         if (mCurrentWallpaperInfoFactory == null) {
140             mCurrentWallpaperInfoFactory =
141                     new TestCurrentWallpaperInfoFactory(context.getApplicationContext());
142         }
143         return mCurrentWallpaperInfoFactory;
144     }
145 
146     @Override
getLoggingOptInStatusProvider(Context context)147     public LoggingOptInStatusProvider getLoggingOptInStatusProvider(Context context) {
148         if (mLoggingOptInStatusProvider == null) {
149             mLoggingOptInStatusProvider = new TestLoggingOptInStatusProvider();
150         }
151         return mLoggingOptInStatusProvider;
152     }
153 
154     @Override
getNetworkStatusNotifier(Context context)155     public NetworkStatusNotifier getNetworkStatusNotifier(Context context) {
156         if (mNetworkStatusNotifier == null) {
157             mNetworkStatusNotifier = new TestNetworkStatusNotifier();
158         }
159         return mNetworkStatusNotifier;
160     }
161 
162     @Override
getAlarmManagerWrapper(Context unused)163     public AlarmManagerWrapper getAlarmManagerWrapper(Context unused) {
164         if (mAlarmManagerWrapper == null) {
165             mAlarmManagerWrapper = new TestAlarmManagerWrapper();
166         }
167         return mAlarmManagerWrapper;
168     }
169 
170     @Override
getUserEventLogger(Context unused)171     public UserEventLogger getUserEventLogger(Context unused) {
172         if (mUserEventLogger == null) {
173             mUserEventLogger = new com.android.wallpaper.testing.TestUserEventLogger();
174         }
175         return mUserEventLogger;
176     }
177 
178     @Override
getExploreIntentChecker(Context unused)179     public ExploreIntentChecker getExploreIntentChecker(Context unused) {
180         if (mExploreIntentChecker == null) {
181             mExploreIntentChecker = new TestExploreIntentChecker();
182         }
183         return mExploreIntentChecker;
184     }
185 
186     @Override
getSystemFeatureChecker()187     public SystemFeatureChecker getSystemFeatureChecker() {
188         if (mSystemFeatureChecker == null) {
189             mSystemFeatureChecker = new com.android.wallpaper.testing.TestSystemFeatureChecker();
190         }
191         return mSystemFeatureChecker;
192     }
193 
194     @Override
getFormFactorChecker(Context unused)195     public FormFactorChecker getFormFactorChecker(Context unused) {
196         if (mFormFactorChecker == null) {
197             mFormFactorChecker = new TestFormFactorChecker();
198         }
199         return mFormFactorChecker;
200     }
201 
202     @Override
getWallpaperRotationRefresher()203     public WallpaperRotationRefresher getWallpaperRotationRefresher() {
204         if (mWallpaperRotationRefresher == null) {
205             mWallpaperRotationRefresher = (context, listener) -> {
206                 // Not implemented
207                 listener.onError();
208             };
209         }
210         return mWallpaperRotationRefresher;
211     }
212 
213     @Override
getPreviewFragment(Context context, WallpaperInfo wallpaperInfo, int mode, boolean viewAsHome, boolean testingModeEnabled)214     public Fragment getPreviewFragment(Context context, WallpaperInfo wallpaperInfo, int mode,
215             boolean viewAsHome, boolean testingModeEnabled) {
216         return ImagePreviewFragment.newInstance(wallpaperInfo, mode, viewAsHome,
217                 testingModeEnabled);
218     }
219 
220     @Override
getPackageStatusNotifier(Context context)221     public PackageStatusNotifier getPackageStatusNotifier(Context context) {
222         return null;
223     }
224 
225     @Override
getIndividualPickerFragment(String collectionId)226     public IndividualPickerFragment getIndividualPickerFragment(String collectionId) {
227         return IndividualPickerFragment.newInstance(collectionId);
228     }
229 
230     @Override
getLiveWallpaperInfoFactory(Context context)231     public LiveWallpaperInfoFactory getLiveWallpaperInfoFactory(Context context) {
232         return new DefaultLiveWallpaperInfoFactory();
233     }
234 
235     @Override
getDrawableLayerResolver()236     public DrawableLayerResolver getDrawableLayerResolver() {
237         return null;
238     }
239 
240     @Override
getDeepLinkRedirectIntent(Context context, Uri uri)241     public Intent getDeepLinkRedirectIntent(Context context, Uri uri) {
242         return null;
243     }
244 
245     @Override
getPerformanceMonitor()246     public PerformanceMonitor getPerformanceMonitor() {
247         if (mPerformanceMonitor == null) {
248             mPerformanceMonitor = new TestPerformanceMonitor();
249         }
250         return mPerformanceMonitor;
251     }
252 }
253