summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Matt Casey <mrcasey@google.com> 2023-03-01 22:56:11 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2023-03-01 22:56:11 +0000
commit6961d6a91f40015aa0870d14f00d18711654e916 (patch)
tree70634bd154559bc8efdec5d71d2010270debe675 /java/src
parent9ea0968bb337fe428a190d5b7bedeb39d8ef648b (diff)
parented17138409135a88af34120a807cc26ac7084600 (diff)
Merge "Check for nearby component in config" into tm-qpr-dev am: 75637203ce am: 011619110b am: ed17138409
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/modules/IntentResolver/+/21608540 Change-Id: I2b5e8698faf37f18fec51b3f1dc3dc9fbd5b461f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java2
-rw-r--r--java/src/com/android/intentresolver/ChooserIntegratedDeviceComponents.java14
-rw-r--r--java/src/com/android/intentresolver/SecureSettings.kt29
3 files changed, 40 insertions, 5 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java
index 32b10f23..4cfda0a9 100644
--- a/java/src/com/android/intentresolver/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/ChooserActivity.java
@@ -403,7 +403,7 @@ public class ChooserActivity extends ResolverActivity implements
@VisibleForTesting
protected ChooserIntegratedDeviceComponents getIntegratedDeviceComponents() {
- return ChooserIntegratedDeviceComponents.get(this);
+ return ChooserIntegratedDeviceComponents.get(this, new SecureSettings());
}
@Override
diff --git a/java/src/com/android/intentresolver/ChooserIntegratedDeviceComponents.java b/java/src/com/android/intentresolver/ChooserIntegratedDeviceComponents.java
index 14255ca0..5fbf03a0 100644
--- a/java/src/com/android/intentresolver/ChooserIntegratedDeviceComponents.java
+++ b/java/src/com/android/intentresolver/ChooserIntegratedDeviceComponents.java
@@ -40,10 +40,12 @@ public class ChooserIntegratedDeviceComponents {
private final ComponentName mNearbySharingComponent;
/** Look up the integrated components available on this device. */
- public static ChooserIntegratedDeviceComponents get(Context context) {
+ public static ChooserIntegratedDeviceComponents get(
+ Context context,
+ SecureSettings secureSettings) {
return new ChooserIntegratedDeviceComponents(
getEditSharingComponent(context),
- getNearbySharingComponent(context));
+ getNearbySharingComponent(context, secureSettings));
}
@VisibleForTesting
@@ -68,9 +70,13 @@ public class ChooserIntegratedDeviceComponents {
? null : ComponentName.unflattenFromString(editorComponent);
}
- private static ComponentName getNearbySharingComponent(Context context) {
- String nearbyComponent = Settings.Secure.getString(
+ private static ComponentName getNearbySharingComponent(Context context,
+ SecureSettings secureSettings) {
+ String nearbyComponent = secureSettings.getString(
context.getContentResolver(), Settings.Secure.NEARBY_SHARING_COMPONENT);
+ if (TextUtils.isEmpty(nearbyComponent)) {
+ nearbyComponent = context.getString(R.string.config_defaultNearbySharingComponent);
+ }
return TextUtils.isEmpty(nearbyComponent)
? null : ComponentName.unflattenFromString(nearbyComponent);
}
diff --git a/java/src/com/android/intentresolver/SecureSettings.kt b/java/src/com/android/intentresolver/SecureSettings.kt
new file mode 100644
index 00000000..a4853fd8
--- /dev/null
+++ b/java/src/com/android/intentresolver/SecureSettings.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.intentresolver
+
+import android.content.ContentResolver
+import android.provider.Settings
+
+/**
+ * A proxy class for secure settings, for easier testing.
+ */
+open class SecureSettings {
+ open fun getString(resolver: ContentResolver, name: String): String? {
+ return Settings.Secure.getString(resolver, name)
+ }
+}