Fix ActivityNotFoundException
Set intent to preference if intent.resolveActivity is non-null Set preference selectable to false if no intent set to preference Fix: 283107867 Test: manual, atest BlockingPrefWithSliceControllerTest Change-Id: Ib5e8705debb5eb5224d8566215cb65f36613d8f9
This commit is contained in:
@@ -59,7 +59,7 @@ import java.util.Optional;
|
||||
* until {@link Slice} is fully loaded.
|
||||
*/
|
||||
public class BlockingPrefWithSliceController extends BasePreferenceController implements
|
||||
LifecycleObserver, OnStart, OnStop, Observer<Slice>, BasePreferenceController.UiBlocker{
|
||||
LifecycleObserver, OnStart, OnStop, Observer<Slice>, BasePreferenceController.UiBlocker {
|
||||
private static final String TAG = "BlockingPrefWithSliceController";
|
||||
|
||||
private static final String PREFIX_KEY = "slice_preference_item_";
|
||||
@@ -213,7 +213,8 @@ public class BlockingPrefWithSliceController extends BasePreferenceController im
|
||||
} else {
|
||||
expectedActivityIntent = intentFromSliceAction;
|
||||
}
|
||||
if (expectedActivityIntent != null) {
|
||||
if (expectedActivityIntent != null && expectedActivityIntent.resolveActivity(
|
||||
mContext.getPackageManager()) != null) {
|
||||
Log.d(TAG, "setIntent: ActivityIntent" + expectedActivityIntent);
|
||||
// Since UI needs to support the Settings' 2 panel feature, the intent can't use the
|
||||
// FLAG_ACTIVITY_NEW_TASK. The above intent may have the FLAG_ACTIVITY_NEW_TASK
|
||||
@@ -222,6 +223,7 @@ public class BlockingPrefWithSliceController extends BasePreferenceController im
|
||||
preference.setIntent(expectedActivityIntent);
|
||||
} else {
|
||||
Log.d(TAG, "setIntent: Intent is null");
|
||||
preference.setSelectable(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user