summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
author Matt Casey <mrcasey@google.com> 2023-03-01 21:03:04 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-03-01 21:03:04 +0000
commit75637203cef7ed2d0b6c6f4c19e9f8541fd3a4cc (patch)
tree30ca5494b4211813d488f2ee8f3549f6e902809c /java/src
parent37364423c143a737c37a10de6ede2f25fd476ad1 (diff)
parent475e8f782ceafd82760d70f958c6916ede1e9a6a (diff)
Merge "Check for nearby component in config" into tm-qpr-dev
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)
+ }
+}