/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.wallpaper.module; import android.content.Context; import com.android.wallpaper.compat.WallpaperManagerCompat; import com.android.wallpaper.network.Requester; import com.android.wallpaper.network.WallpaperRequester; import com.android.wallpaper.picker.individual.IndividualPickerFragment; import com.android.wallpaper.util.DisplayUtils; /** * Base implementation of Injector. */ public abstract class BaseWallpaperInjector implements Injector { private BitmapCropper mBitmapCropper; private PartnerProvider mPartnerProvider; private WallpaperPersister mWallpaperPersister; private WallpaperPreferences mPrefs; private WallpaperRefresher mWallpaperRefresher; private Requester mRequester; private WallpaperManagerCompat mWallpaperManagerCompat; private WallpaperStatusChecker mWallpaperStatusChecker; private CurrentWallpaperInfoFactory mCurrentWallpaperFactory; private NetworkStatusNotifier mNetworkStatusNotifier; private AlarmManagerWrapper mAlarmManagerWrapper; private ExploreIntentChecker mExploreIntentChecker; private SystemFeatureChecker mSystemFeatureChecker; private FormFactorChecker mFormFactorChecker; private PackageStatusNotifier mPackageStatusNotifier; private LiveWallpaperInfoFactory mLiveWallpaperInfoFactory; private DrawableLayerResolver mDrawableLayerResolver; private CustomizationSections mCustomizationSections; private DisplayUtils mDisplayUtils; @Override public synchronized BitmapCropper getBitmapCropper() { if (mBitmapCropper == null) { mBitmapCropper = new DefaultBitmapCropper(); } return mBitmapCropper; } @Override public synchronized PartnerProvider getPartnerProvider(Context context) { if (mPartnerProvider == null) { mPartnerProvider = new DefaultPartnerProvider(context.getApplicationContext()); } return mPartnerProvider; } @Override public synchronized WallpaperPreferences getPreferences(Context context) { if (mPrefs == null) { mPrefs = new DefaultWallpaperPreferences(context.getApplicationContext()); } return mPrefs; } @Override public synchronized WallpaperPersister getWallpaperPersister(Context context) { if (mWallpaperPersister == null) { mWallpaperPersister = new DefaultWallpaperPersister(context.getApplicationContext()); } return mWallpaperPersister; } @Override public synchronized WallpaperRefresher getWallpaperRefresher(Context context) { if (mWallpaperRefresher == null) { mWallpaperRefresher = new DefaultWallpaperRefresher(context.getApplicationContext()); } return mWallpaperRefresher; } @Override public synchronized Requester getRequester(Context context) { if (mRequester == null) { mRequester = new WallpaperRequester(context.getApplicationContext()); } return mRequester; } @Override public synchronized WallpaperManagerCompat getWallpaperManagerCompat(Context context) { if (mWallpaperManagerCompat == null) { mWallpaperManagerCompat = WallpaperManagerCompat.getInstance(context); } return mWallpaperManagerCompat; } @Override public WallpaperStatusChecker getWallpaperStatusChecker() { if (mWallpaperStatusChecker == null) { mWallpaperStatusChecker = new DefaultWallpaperStatusChecker(); } return mWallpaperStatusChecker; } @Override public synchronized CurrentWallpaperInfoFactory getCurrentWallpaperFactory(Context context) { if (mCurrentWallpaperFactory == null) { mCurrentWallpaperFactory = new DefaultCurrentWallpaperInfoFactory(context.getApplicationContext()); } return mCurrentWallpaperFactory; } @Override public synchronized NetworkStatusNotifier getNetworkStatusNotifier(Context context) { if (mNetworkStatusNotifier == null) { mNetworkStatusNotifier = new DefaultNetworkStatusNotifier(context.getApplicationContext()); } return mNetworkStatusNotifier; } @Override public synchronized PackageStatusNotifier getPackageStatusNotifier(Context context) { if (mPackageStatusNotifier == null) { mPackageStatusNotifier = new DefaultPackageStatusNotifier( context.getApplicationContext()); } return mPackageStatusNotifier; } @Override public synchronized AlarmManagerWrapper getAlarmManagerWrapper(Context context) { if (mAlarmManagerWrapper == null) { mAlarmManagerWrapper = new DefaultAlarmManagerWrapper(context.getApplicationContext()); } return mAlarmManagerWrapper; } @Override public synchronized ExploreIntentChecker getExploreIntentChecker(Context context) { if (mExploreIntentChecker == null) { mExploreIntentChecker = new DefaultExploreIntentChecker(context.getApplicationContext()); } return mExploreIntentChecker; } @Override public synchronized SystemFeatureChecker getSystemFeatureChecker() { if (mSystemFeatureChecker == null) { mSystemFeatureChecker = new DefaultSystemFeatureChecker(); } return mSystemFeatureChecker; } @Override public synchronized FormFactorChecker getFormFactorChecker(Context context) { if (mFormFactorChecker == null) { mFormFactorChecker = new DefaultFormFactorChecker(context.getApplicationContext()); } return mFormFactorChecker; } @Override public synchronized IndividualPickerFragment getIndividualPickerFragment(String collectionId) { return IndividualPickerFragment.newInstance(collectionId); } @Override public LiveWallpaperInfoFactory getLiveWallpaperInfoFactory(Context context) { if (mLiveWallpaperInfoFactory == null) { mLiveWallpaperInfoFactory = new DefaultLiveWallpaperInfoFactory(); } return mLiveWallpaperInfoFactory; } @Override public DrawableLayerResolver getDrawableLayerResolver() { if (mDrawableLayerResolver == null) { mDrawableLayerResolver = new DefaultDrawableLayerResolver(); } return mDrawableLayerResolver; } @Override public CustomizationSections getCustomizationSections() { if (mCustomizationSections == null) { mCustomizationSections = new WallpaperPickerSections(); } return mCustomizationSections; } @Override public DisplayUtils getDisplayUtils(Context context) { if (mDisplayUtils == null) { mDisplayUtils = new DisplayUtils(context.getApplicationContext()); } return mDisplayUtils; } }