summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/speakeasy
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2018-05-07 14:58:35 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-05-07 14:58:35 +0000
commit84b862acd2c53f665386f1dfd23b57c2bdcf5baf (patch)
tree78bf30ec2633948a69facf84ebfa84a979d814f3 /java/com/android/incallui/speakeasy
parent95c2775dd2b77f9fce454d655d2b23ed700d7f22 (diff)
parent763ce4404ae8e4199da719359a1b01389884cec4 (diff)
Merge changes Ibab0bc7e,I1cb26187,I64225b78,I4806ab65,I7d431e74, ...
* changes: Remove TODOs for showing SIM info in the bottom sheet & call details. Use Telecom Bluetooth API instead of system Bluetooth API. Update audio route after user select different audio route. Clear NewCallLogViewHolder.onClickListener if row is not callable. Filter out unnecessary bottom sheet options for a call to a voicemail box. Aosp fix for v28-support-prelease bottom sheet. Mark photo info as voicemails in bottom sheet Simplify how we build bottom sheet options (a.k.a. modules). Add test to verify no crash on multiple DialerCall#onRemovedFromCallList. Add spam status tests for CallList#onCallAdded More refactoring
Diffstat (limited to 'java/com/android/incallui/speakeasy')
-rw-r--r--java/com/android/incallui/speakeasy/SpeakEasyCallManager.java12
-rw-r--r--java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java15
-rw-r--r--java/com/android/incallui/speakeasy/runtime/Constraints.java74
3 files changed, 27 insertions, 74 deletions
diff --git a/java/com/android/incallui/speakeasy/SpeakEasyCallManager.java b/java/com/android/incallui/speakeasy/SpeakEasyCallManager.java
index f2721da7d..8a815d385 100644
--- a/java/com/android/incallui/speakeasy/SpeakEasyCallManager.java
+++ b/java/com/android/incallui/speakeasy/SpeakEasyCallManager.java
@@ -16,6 +16,7 @@
package com.android.incallui.speakeasy;
+import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import com.android.incallui.call.DialerCall;
@@ -37,4 +38,15 @@ public interface SpeakEasyCallManager {
* @param call The call which has been removed.
*/
void onCallRemoved(@NonNull DialerCall call);
+
+ /**
+ * Indicates the feature is available.
+ *
+ * @param context The application context.
+ */
+ boolean isAvailable(@NonNull Context context);
+
+ /** Returns the config provider flag associated with the feature. */
+ @NonNull
+ String getConfigProviderFlag();
}
diff --git a/java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java b/java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java
index 9e58ce18f..a0409737b 100644
--- a/java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java
+++ b/java/com/android/incallui/speakeasy/SpeakEasyCallManagerStub.java
@@ -16,6 +16,8 @@
package com.android.incallui.speakeasy;
+import android.content.Context;
+import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import com.android.incallui.call.DialerCall;
@@ -38,4 +40,17 @@ public class SpeakEasyCallManagerStub implements SpeakEasyCallManager {
/** Always inert in the stub. */
@Override
public void onCallRemoved(DialerCall call) {}
+
+ /** Always returns false. */
+ @Override
+ public boolean isAvailable(@NonNull Context unused) {
+ return false;
+ }
+
+ /** Always returns a stub string. */
+ @NonNull
+ @Override
+ public String getConfigProviderFlag() {
+ return "not_yet_implmented";
+ }
}
diff --git a/java/com/android/incallui/speakeasy/runtime/Constraints.java b/java/com/android/incallui/speakeasy/runtime/Constraints.java
deleted file mode 100644
index 1206d599c..000000000
--- a/java/com/android/incallui/speakeasy/runtime/Constraints.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2018 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.incallui.speakeasy.runtime;
-
-import android.annotation.TargetApi;
-import android.content.Context;
-import android.os.Build.VERSION_CODES;
-import android.support.annotation.NonNull;
-import android.support.annotation.VisibleForTesting;
-import android.support.v4.os.BuildCompat;
-import android.support.v4.os.UserManagerCompat;
-import com.android.dialer.common.Assert;
-import com.android.dialer.common.LogUtil;
-import com.android.dialer.configprovider.ConfigProviderBindings;
-import com.android.dialer.util.PermissionsUtil;
-
-/** Preconditions for the use of SpeakEasyModule */
-public final class Constraints {
-
- @VisibleForTesting public static final String SPEAK_EASY_ENABLED = "speak_easy_enabled";
- private static final String[] REQUIRED_PERMISSIONS = {
-
- };
-
- // Non-instantiatable.
- private Constraints() {}
-
- public static boolean isAvailable(@NonNull Context context) {
- Assert.isNotNull(context);
-
- return isServerConfigEnabled(context)
- && isUserUnlocked(context)
- && meetsPlatformSdkFloor()
- && hasNecessaryPermissions(context);
- }
-
- private static boolean isServerConfigEnabled(@NonNull Context context) {
- return ConfigProviderBindings.get(context).getBoolean(SPEAK_EASY_ENABLED, false);
- }
-
- private static boolean isUserUnlocked(@NonNull Context context) {
- return UserManagerCompat.isUserUnlocked(context);
- }
-
- private static boolean meetsPlatformSdkFloor() {
- return BuildCompat.isAtLeastP();
- }
-
- @SuppressWarnings("AndroidApiChecker") // Use of Java 8 APIs.
- @TargetApi(VERSION_CODES.N)
- private static boolean hasNecessaryPermissions(@NonNull Context context) {
- for (String permission : REQUIRED_PERMISSIONS) {
- if (!PermissionsUtil.hasPermission(context, permission)) {
- LogUtil.i("Constraints.hasNecessaryPermissions", "missing permission: %s ", permission);
- return false;
- }
- }
- return true;
- }
-}