summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
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)
+ }
+}