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