Make "Ask every time" actually work that way

..in link-opening behavior.  If a candidate is marked as "ask
every time," then the user is guaranteed to get a disambiguation
prompt including that candidate even when some other candidate
app is in the "always prefer this over a browser" state.

Bug 23147746

Change-Id: I73d8893ab74ea0356b757ab836349243cda2e307
This commit is contained in:
Christopher Tate
2015-08-13 16:34:10 -07:00
parent 9f879ef009
commit 970291e20c

View File

@@ -39,6 +39,7 @@ import com.android.settings.Utils;
import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED;
import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK;
import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS;
import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK;
import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER; import static android.content.pm.PackageManager.INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER;
import java.util.List; import java.util.List;
@@ -93,7 +94,7 @@ public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListe
mAppLinkState.addItem(R.string.app_link_open_always, mAppLinkState.addItem(R.string.app_link_open_always,
INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS); INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS);
mAppLinkState.addItem(R.string.app_link_open_ask, mAppLinkState.addItem(R.string.app_link_open_ask,
INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK); INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK);
mAppLinkState.addItem(R.string.app_link_open_never, mAppLinkState.addItem(R.string.app_link_open_never,
INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER); INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_NEVER);
@@ -105,7 +106,7 @@ public class AppLaunchSettings extends AppInfoWithHeader implements OnClickListe
final int state = mPm.getIntentVerificationStatus(mPackageName, UserHandle.myUserId()); final int state = mPm.getIntentVerificationStatus(mPackageName, UserHandle.myUserId());
mAppLinkState.setSelectedValue( mAppLinkState.setSelectedValue(
(state == INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED) (state == INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED)
? INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ASK ? INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_ALWAYS_ASK
: state); : state);
// Set the callback only after setting the initial selected item // Set the callback only after setting the initial selected item