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