Revert "Revert "Workaround of Slice not pinned bug when using Sl..."

Revert "Import AndroidX from build 6620107"

Revert submission 11970208-update_slice_view

Reason for revert: b/159943588
Reverted Changes:
Id09f4f6aa:Import AndroidX from build 6620107
Icb150b4f6:Revert "Workaround of Slice not pinned bug when us...

Bug: 157387583
Bug: 159943588
Change-Id: Iedd9883ea144395b9d4afb011a218fe5dcb6b560
This commit is contained in:
Andrii Kulian
2020-06-25 22:57:42 +00:00
parent 1b514c3f37
commit f11088a886

View File

@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums;
import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import android.os.AsyncTask;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -32,6 +33,7 @@ import androidx.slice.core.SliceAction;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
import java.util.List;
import java.util.concurrent.Callable;
@@ -115,7 +117,12 @@ public class EligibleCardChecker implements Callable<ContextualCard> {
// Register a trivial callback to pin the slice
manager.registerSliceCallback(uri, callback);
final Slice slice = manager.bindSlice(uri);
manager.unregisterSliceCallback(uri, callback);
// Workaround of unpinning slice in the same SerialExecutor of AsyncTask as SliceCallback's
// observer.
ThreadUtils.postOnMainThread(() ->
AsyncTask.execute(() -> manager.unregisterSliceCallback(uri, callback))
);
return slice;
}