Settings: Fix slice data illegal state in credentials

Log:

08-07 06:50:38.941 W/SliceDataConverter(9136): Get slice data from XML failed
08-07 06:50:38.941 W/SliceDataConverter(9136): java.lang.IllegalStateException: Invalid preference controller: com.android.settings.applications.credentials.CredentialManagerPreferenceController
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.core.BasePreferenceController.createInstance(BasePreferenceController.java:149)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SliceBuilderUtils.getPreferenceController(SliceBuilderUtils.java:369)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SliceDataConverter.getSliceDataFromXML(SliceDataConverter.java:192)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SliceDataConverter.getSliceDataFromProvider(SliceDataConverter.java:147)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SliceDataConverter.getSliceData(SliceDataConverter.java:117)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SlicesIndexer.getSliceData(SlicesIndexer.java:94)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SlicesIndexer.indexSliceData(SlicesIndexer.java:75)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SlicesFeatureProviderImpl.indexSliceData(SlicesFeatureProviderImpl.java:63)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SlicesDatabaseAccessor.verifyIndexing(SlicesDatabaseAccessor.java:197)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SlicesDatabaseAccessor.getSliceUris(SlicesDatabaseAccessor.java:97)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.slices.SettingsSliceProvider.onGetSliceDescendants(SettingsSliceProvider.java:359)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at androidx.slice.compat.SliceProviderWrapperContainer$SliceProviderWrapper.onGetSliceDescendants(SliceProviderWrapperContainer.java:166)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.app.slice.SliceProvider.handleGetDescendants(SliceProvider.java:421)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.app.slice.SliceProvider.call(SliceProvider.java:402)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at androidx.slice.compat.SliceProviderWrapperContainer$SliceProviderWrapper.call(SliceProviderWrapperContainer.java:123)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.content.ContentProvider.call(ContentProvider.java:2709)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.content.ContentProvider$Transport.call(ContentProvider.java:638)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:307)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.os.Binder.execTransactInternal(Binder.java:1421)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.os.Binder.execTransact(Binder.java:1365)
08-07 06:50:38.941 W/SliceDataConverter(9136): Caused by: java.lang.reflect.InvocationTargetException
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at java.lang.reflect.Constructor.newInstance0(Native Method)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.core.BasePreferenceController.createInstance(BasePreferenceController.java:146)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	... 19 more
08-07 06:50:38.941 W/SliceDataConverter(9136): Caused by: java.lang.RuntimeException: Can't create handler inside thread Thread[binder:9136_1,5,main] that has not called Looper.prepare()
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.os.Handler.<init>(Handler.java:231)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at android.os.Handler.<init>(Handler.java:133)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	at com.android.settings.applications.credentials.CredentialManagerPreferenceController.<init>(CredentialManagerPreferenceController.java:110)
08-07 06:50:38.941 W/SliceDataConverter(9136): 	... 22 more

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
This commit is contained in:
Pranav Vashi
2025-08-07 06:57:24 +05:30
committed by Joey
parent 6459858d1d
commit 4c7287290b

View File

@@ -38,6 +38,7 @@ import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.OutcomeReceiver;
import android.os.UserHandle;
import android.os.UserManager;
@@ -107,7 +108,7 @@ public class CredentialManagerPreferenceController extends BasePreferenceControl
private final Executor mExecutor;
private final Map<String, CombiPreference> mPrefs = new HashMap<>(); // key is package name
private final List<ServiceInfo> mPendingServiceInfos = new ArrayList<>();
private final Handler mHandler = new Handler();
private final Handler mHandler = new Handler(Looper.getMainLooper());
private final SettingContentObserver mSettingsContentObserver;
private final ImageUtils.IconResizer mIconResizer;