diff options
Diffstat (limited to 'src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java')
-rw-r--r-- | src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java index e76aeef53..c1cfba56c 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java @@ -112,6 +112,10 @@ public class CellBroadcastSearchIndexableProvider extends SearchIndexablesProvid return null; } + if (isDisableAllCbMessages()) { + return null; + } + MatrixCursor cursor = new MatrixCursor(INDEXABLES_XML_RES_COLUMNS); final int count = INDEXABLE_RES.length; for (int n = 0; n < count; n++) { @@ -134,6 +138,10 @@ public class CellBroadcastSearchIndexableProvider extends SearchIndexablesProvid return null; } + if (isDisableAllCbMessages()) { + return null; + } + MatrixCursor cursor = new MatrixCursor(INDEXABLES_RAW_COLUMNS); final Resources res = getResourcesMethod(); @@ -282,4 +290,21 @@ public class CellBroadcastSearchIndexableProvider extends SearchIndexablesProvid return getContextMethod().getPackageManager().hasSystemFeature( PackageManager.FEATURE_AUTOMOTIVE); } + + /** + * Check disable Cell Broadcast resource. + * @return true if Cell Broadcast disable configured by OEM. + */ + @VisibleForTesting + public boolean isDisableAllCbMessages() { + boolean disable = false; + try { + Resources res = Resources.getSystem(); + int id = res.getIdentifier("config_disable_all_cb_messages", "bool", "android"); + disable = res.getBoolean(id); + } catch (Exception e) { + disable = false; + } + return disable; + } } |