• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 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.module;
17 
18 import android.content.Context;
19 
20 import com.android.wallpaper.compat.WallpaperManagerCompat;
21 import com.android.wallpaper.network.Requester;
22 import com.android.wallpaper.network.WallpaperRequester;
23 import com.android.wallpaper.picker.individual.IndividualPickerFragment;
24 
25 /**
26  * Base implementation of Injector.
27  */
28 public abstract class BaseWallpaperInjector implements Injector {
29     private BitmapCropper mBitmapCropper;
30     private PartnerProvider mPartnerProvider;
31     private WallpaperPersister mWallpaperPersister;
32     private WallpaperPreferences mPrefs;
33     private WallpaperRefresher mWallpaperRefresher;
34     private Requester mRequester;
35     private WallpaperManagerCompat mWallpaperManagerCompat;
36     private CurrentWallpaperInfoFactory mCurrentWallpaperFactory;
37     private NetworkStatusNotifier mNetworkStatusNotifier;
38     private AlarmManagerWrapper mAlarmManagerWrapper;
39     private ExploreIntentChecker mExploreIntentChecker;
40     private SystemFeatureChecker mSystemFeatureChecker;
41     private FormFactorChecker mFormFactorChecker;
42     private PackageStatusNotifier mPackageStatusNotifier;
43     private LiveWallpaperInfoFactory mLiveWallpaperInfoFactory;
44     private DrawableLayerResolver mDrawableLayerResolver;
45     private CustomizationSections mCustomizationSections;
46 
47     @Override
getBitmapCropper()48     public synchronized BitmapCropper getBitmapCropper() {
49         if (mBitmapCropper == null) {
50             mBitmapCropper = new DefaultBitmapCropper();
51         }
52         return mBitmapCropper;
53     }
54 
55     @Override
getPartnerProvider(Context context)56     public synchronized PartnerProvider getPartnerProvider(Context context) {
57         if (mPartnerProvider == null) {
58             mPartnerProvider = new DefaultPartnerProvider(context.getApplicationContext());
59         }
60         return mPartnerProvider;
61     }
62 
63     @Override
getPreferences(Context context)64     public synchronized WallpaperPreferences getPreferences(Context context) {
65         if (mPrefs == null) {
66             mPrefs = new DefaultWallpaperPreferences(context.getApplicationContext());
67         }
68         return mPrefs;
69     }
70 
71     @Override
getWallpaperPersister(Context context)72     public synchronized WallpaperPersister getWallpaperPersister(Context context) {
73         if (mWallpaperPersister == null) {
74             mWallpaperPersister = new DefaultWallpaperPersister(context.getApplicationContext());
75         }
76         return mWallpaperPersister;
77     }
78 
79     @Override
getWallpaperRefresher(Context context)80     public synchronized WallpaperRefresher getWallpaperRefresher(Context context) {
81         if (mWallpaperRefresher == null) {
82             mWallpaperRefresher = new DefaultWallpaperRefresher(context.getApplicationContext());
83         }
84         return mWallpaperRefresher;
85     }
86 
87     @Override
getRequester(Context context)88     public synchronized Requester getRequester(Context context) {
89         if (mRequester == null) {
90             mRequester = new WallpaperRequester(context.getApplicationContext());
91         }
92         return mRequester;
93     }
94 
95     @Override
getWallpaperManagerCompat(Context context)96     public synchronized WallpaperManagerCompat getWallpaperManagerCompat(Context context) {
97         if (mWallpaperManagerCompat == null) {
98             mWallpaperManagerCompat = WallpaperManagerCompat.getInstance(context);
99         }
100         return mWallpaperManagerCompat;
101     }
102 
103     @Override
getCurrentWallpaperFactory(Context context)104     public synchronized CurrentWallpaperInfoFactory getCurrentWallpaperFactory(Context context) {
105         if (mCurrentWallpaperFactory == null) {
106             mCurrentWallpaperFactory =
107                     new DefaultCurrentWallpaperInfoFactory(context.getApplicationContext());
108         }
109         return mCurrentWallpaperFactory;
110     }
111 
112     @Override
getNetworkStatusNotifier(Context context)113     public synchronized NetworkStatusNotifier getNetworkStatusNotifier(Context context) {
114         if (mNetworkStatusNotifier == null) {
115             mNetworkStatusNotifier = new DefaultNetworkStatusNotifier(context.getApplicationContext());
116         }
117         return mNetworkStatusNotifier;
118     }
119 
120     @Override
getPackageStatusNotifier(Context context)121     public synchronized PackageStatusNotifier getPackageStatusNotifier(Context context) {
122         if (mPackageStatusNotifier == null) {
123             mPackageStatusNotifier = new DefaultPackageStatusNotifier(
124                     context.getApplicationContext());
125         }
126         return mPackageStatusNotifier;
127     }
128 
129     @Override
getAlarmManagerWrapper(Context context)130     public synchronized AlarmManagerWrapper getAlarmManagerWrapper(Context context) {
131         if (mAlarmManagerWrapper == null) {
132             mAlarmManagerWrapper = new DefaultAlarmManagerWrapper(context.getApplicationContext());
133         }
134         return mAlarmManagerWrapper;
135     }
136 
137     @Override
getExploreIntentChecker(Context context)138     public synchronized ExploreIntentChecker getExploreIntentChecker(Context context) {
139         if (mExploreIntentChecker == null) {
140             mExploreIntentChecker = new DefaultExploreIntentChecker(context.getApplicationContext());
141         }
142         return mExploreIntentChecker;
143     }
144 
145     @Override
getSystemFeatureChecker()146     public synchronized SystemFeatureChecker getSystemFeatureChecker() {
147         if (mSystemFeatureChecker == null) {
148             mSystemFeatureChecker = new DefaultSystemFeatureChecker();
149         }
150         return mSystemFeatureChecker;
151     }
152 
153     @Override
getFormFactorChecker(Context context)154     public synchronized FormFactorChecker getFormFactorChecker(Context context) {
155         if (mFormFactorChecker == null) {
156             mFormFactorChecker = new DefaultFormFactorChecker(context.getApplicationContext());
157         }
158         return mFormFactorChecker;
159     }
160 
161     @Override
getIndividualPickerFragment(String collectionId)162     public synchronized IndividualPickerFragment getIndividualPickerFragment(String collectionId) {
163         return IndividualPickerFragment.newInstance(collectionId);
164     }
165 
166     @Override
getLiveWallpaperInfoFactory(Context context)167     public LiveWallpaperInfoFactory getLiveWallpaperInfoFactory(Context context) {
168         if (mLiveWallpaperInfoFactory == null) {
169             mLiveWallpaperInfoFactory = new DefaultLiveWallpaperInfoFactory();
170         }
171         return mLiveWallpaperInfoFactory;
172     }
173 
174     @Override
getDrawableLayerResolver()175     public DrawableLayerResolver getDrawableLayerResolver() {
176         if (mDrawableLayerResolver == null) {
177             mDrawableLayerResolver = new DefaultDrawableLayerResolver();
178         }
179         return mDrawableLayerResolver;
180     }
181 
182     @Override
getCustomizationSections()183     public CustomizationSections getCustomizationSections() {
184         if (mCustomizationSections == null) {
185             mCustomizationSections = new WallpaperPickerSections();
186         }
187         return mCustomizationSections;
188     }
189 }
190