From 24a57d97a6481fb269e51c2ae70ed514af31d407 Mon Sep 17 00:00:00 2001 From: Anna Zappone Date: Tue, 11 May 2021 18:28:10 +0100 Subject: [PATCH] Fix injection in ContentProvider Bug: 187460049 Test: locally Change-Id: Icadd29fa34da548af1d914138919bc9184de543a --- .../systemui/people/PeopleProvider.java | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java b/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java index 0f6645641ddaf..b55d86e8fb1c2 100644 --- a/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java +++ b/packages/SystemUI/src/com/android/systemui/people/PeopleProvider.java @@ -18,7 +18,9 @@ package com.android.systemui.people; import android.content.ContentProvider; import android.content.ContentValues; +import android.content.Context; import android.content.pm.PackageManager; +import android.content.pm.ProviderInfo; import android.database.Cursor; import android.net.Uri; import android.os.Binder; @@ -27,16 +29,19 @@ import android.os.UserHandle; import android.util.Log; import android.widget.RemoteViews; +import com.android.systemui.SystemUIAppComponentFactory; import com.android.systemui.people.widget.PeopleSpaceWidgetManager; import com.android.systemui.shared.system.PeopleProviderUtils; import javax.inject.Inject; /** API that returns a People Tile preview. */ -public class PeopleProvider extends ContentProvider { +public class PeopleProvider extends ContentProvider implements + SystemUIAppComponentFactory.ContextInitializer { private static final String TAG = "PeopleProvider"; private static final boolean DEBUG = PeopleSpaceUtils.DEBUG; private static final String EMPTY_STRING = ""; + private SystemUIAppComponentFactory.ContextAvailableCallback mCallback; @Inject PeopleSpaceWidgetManager mPeopleSpaceWidgetManager; @@ -82,8 +87,8 @@ public class PeopleProvider extends ContentProvider { Log.e(TAG, "Could not initialize people widget manager"); return null; } - RemoteViews view = - mPeopleSpaceWidgetManager.getPreview(shortcutId, userHandle, packageName, extras); + RemoteViews view = mPeopleSpaceWidgetManager.getPreview(shortcutId, userHandle, packageName, + extras); if (view == null) { if (DEBUG) Log.d(TAG, "No preview available for shortcutId: " + shortcutId); return null; @@ -130,5 +135,17 @@ public class PeopleProvider extends ContentProvider { public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { throw new IllegalArgumentException("Invalid method"); } + + @Override + public void attachInfo(Context context, ProviderInfo info) { + mCallback.onContextAvailable(context); + super.attachInfo(context, info); + } + + @Override + public void setContextAvailableCallback( + SystemUIAppComponentFactory.ContextAvailableCallback callback) { + mCallback = callback; + } }