Fix: ResolverActivity sometimes cannot update the last chosen activity

Symptom:
Calling startActivity() with an implicit intent,
ResolverActivity displays preferred activity candidates.
At first user selects one of them as "JUST ONCE".
And next, the last one is shown again on the top with "JUST ONCE" and
"ALWAYS".

But even if user selects another ones except top with "JUST ONCE".
Next time, the last one is not shown on the top.
Instead of that, first one still remain on the top.

It means that user can't select activities as "ALWAYS"
except first one.

Root cause:
The implicit intent has a URI but not MIME type.
In this case, Intent#resolveTypeIfNeeded returns "null".
So MIME type is not passed to PackageManagerService.
That's why this issue happens.

Change-Id: I87b6da9c5d8b47e071bbedf9f7d5f3ecea730875
1 file changed