Loading src/com/android/settings/search/SearchFeatureProvider.java +0 −5 Original line number Diff line number Diff line Loading @@ -37,11 +37,6 @@ import java.util.concurrent.FutureTask; */ public interface SearchFeatureProvider { /** * @return true to use the new version of search */ boolean isEnabled(Context context); /** * Ensures the caller has necessary privilege to launch search result page. * Loading src/com/android/settings/search/SearchFeatureProviderImpl.java +16 −8 Original line number Diff line number Diff line Loading @@ -40,16 +40,10 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { private static final String TAG = "SearchFeatureProvider"; private static final String METRICS_ACTION_SETTINGS_INDEX = "search_synchronous_indexing"; private DatabaseIndexingManager mDatabaseIndexingManager; private SiteMapManager mSiteMapManager; private ExecutorService mExecutorService; @Override public boolean isEnabled(Context context) { return true; } @Override public void verifyLaunchSearchResultPageCaller(Context context, ComponentName caller) { if (caller == null) { Loading @@ -57,9 +51,15 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { + "must be called with startActivityForResult"); } final String packageName = caller.getPackageName(); if (!TextUtils.equals(packageName, context.getPackageName())) { throw new SecurityException("Only Settings app can launch search result page"); final boolean isSettingsPackage = TextUtils.equals(packageName, context.getPackageName()) || TextUtils.equals(getSettingsIntelligencePkgName(), packageName); final boolean isWhitelistedPackage = isSignatureWhitelisted(context, caller.getPackageName()); if (isSettingsPackage || isWhitelistedPackage) { return; } throw new SecurityException("Search result intents must be called with from a " + "whitelisted package."); } @Override Loading Loading @@ -141,6 +141,14 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { return mExecutorService; } protected boolean isSignatureWhitelisted(Context context, String callerPackage) { return false; } protected String getSettingsIntelligencePkgName() { return "com.android.settings.intelligence"; } /** * A generic method to make the query suitable for searching the database. * Loading tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java +8 −1 Original line number Diff line number Diff line Loading @@ -140,11 +140,18 @@ public class SearchFeatureProviderImplTest { } @Test public void verifyLaunchSearchResultPageCaller_goodCaller_shouldNotCrash() { public void verifyLaunchSearchResultPageCaller_settingsCaller_shouldNotCrash() { final ComponentName cn = new ComponentName(mActivity.getPackageName(), "class"); mProvider.verifyLaunchSearchResultPageCaller(mActivity, cn); } @Test public void verifyLaunchSearchResultPageCaller_settingsIntelligenceCaller_shouldNotCrash() { final ComponentName cn = new ComponentName(mProvider.getSettingsIntelligencePkgName(), "class"); mProvider.verifyLaunchSearchResultPageCaller(mActivity, cn); } @Test public void cleanQuery_trimsWhitespace() { final String query = " space "; Loading Loading
src/com/android/settings/search/SearchFeatureProvider.java +0 −5 Original line number Diff line number Diff line Loading @@ -37,11 +37,6 @@ import java.util.concurrent.FutureTask; */ public interface SearchFeatureProvider { /** * @return true to use the new version of search */ boolean isEnabled(Context context); /** * Ensures the caller has necessary privilege to launch search result page. * Loading
src/com/android/settings/search/SearchFeatureProviderImpl.java +16 −8 Original line number Diff line number Diff line Loading @@ -40,16 +40,10 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { private static final String TAG = "SearchFeatureProvider"; private static final String METRICS_ACTION_SETTINGS_INDEX = "search_synchronous_indexing"; private DatabaseIndexingManager mDatabaseIndexingManager; private SiteMapManager mSiteMapManager; private ExecutorService mExecutorService; @Override public boolean isEnabled(Context context) { return true; } @Override public void verifyLaunchSearchResultPageCaller(Context context, ComponentName caller) { if (caller == null) { Loading @@ -57,9 +51,15 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { + "must be called with startActivityForResult"); } final String packageName = caller.getPackageName(); if (!TextUtils.equals(packageName, context.getPackageName())) { throw new SecurityException("Only Settings app can launch search result page"); final boolean isSettingsPackage = TextUtils.equals(packageName, context.getPackageName()) || TextUtils.equals(getSettingsIntelligencePkgName(), packageName); final boolean isWhitelistedPackage = isSignatureWhitelisted(context, caller.getPackageName()); if (isSettingsPackage || isWhitelistedPackage) { return; } throw new SecurityException("Search result intents must be called with from a " + "whitelisted package."); } @Override Loading Loading @@ -141,6 +141,14 @@ public class SearchFeatureProviderImpl implements SearchFeatureProvider { return mExecutorService; } protected boolean isSignatureWhitelisted(Context context, String callerPackage) { return false; } protected String getSettingsIntelligencePkgName() { return "com.android.settings.intelligence"; } /** * A generic method to make the query suitable for searching the database. * Loading
tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java +8 −1 Original line number Diff line number Diff line Loading @@ -140,11 +140,18 @@ public class SearchFeatureProviderImplTest { } @Test public void verifyLaunchSearchResultPageCaller_goodCaller_shouldNotCrash() { public void verifyLaunchSearchResultPageCaller_settingsCaller_shouldNotCrash() { final ComponentName cn = new ComponentName(mActivity.getPackageName(), "class"); mProvider.verifyLaunchSearchResultPageCaller(mActivity, cn); } @Test public void verifyLaunchSearchResultPageCaller_settingsIntelligenceCaller_shouldNotCrash() { final ComponentName cn = new ComponentName(mProvider.getSettingsIntelligencePkgName(), "class"); mProvider.verifyLaunchSearchResultPageCaller(mActivity, cn); } @Test public void cleanQuery_trimsWhitespace() { final String query = " space "; Loading