summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/activecalls
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2018-04-25 19:00:11 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-04-25 19:00:11 +0000
commit43ed0dc0666e9d2e2837a2019e2765f10f43dff8 (patch)
treeac6491831c0d331f8582a65eda60143cb0798fd0 /java/com/android/dialer/activecalls
parent34ed7da073bbac5b8a4283c495c588ef3b0ea32b (diff)
parent79a407ee27e6c8f6447f3a8c71ae2c7f6b33f591 (diff)
Merge changes I5b8ad5ca,I0011019c,I8ee43ce8,I35e0748a,I9e9947ad, ...
* changes: Show clear frequents option in the toolbar if there are suggested contacts. Use UI listener for preferred account worker in in call UI Make SIM Selection hint multi-line Convert CequintCallerIdContact into an @AutoValue Newly starred SpeedDialUiItems now have SpeedDialEntry ids set. Disable entries in CallingAccountSelector that are not selectable Add "enabled" to SelectPhoneAccountDialogFragment. Add skeleton for CequintPhoneLookup Log send button impressions for RTT call. Show international call on wifi dialog without InCallActivity. Expose active calls from in call UI
Diffstat (limited to 'java/com/android/dialer/activecalls')
-rw-r--r--java/com/android/dialer/activecalls/ActiveCallInfo.java48
-rw-r--r--java/com/android/dialer/activecalls/ActiveCalls.java34
-rw-r--r--java/com/android/dialer/activecalls/ActiveCallsComponent.java40
-rw-r--r--java/com/android/dialer/activecalls/ActiveCallsModule.java34
-rw-r--r--java/com/android/dialer/activecalls/impl/ActiveCallsImpl.java45
5 files changed, 201 insertions, 0 deletions
diff --git a/java/com/android/dialer/activecalls/ActiveCallInfo.java b/java/com/android/dialer/activecalls/ActiveCallInfo.java
new file mode 100644
index 000000000..d4f76b393
--- /dev/null
+++ b/java/com/android/dialer/activecalls/ActiveCallInfo.java
@@ -0,0 +1,48 @@
+/*
+ * 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.dialer.activecalls;
+
+import android.support.annotation.Nullable;
+import android.telecom.PhoneAccountHandle;
+import com.google.auto.value.AutoValue;
+import com.google.common.base.Optional;
+
+/** Info of an active call */
+@AutoValue
+@SuppressWarnings("Guava")
+public abstract class ActiveCallInfo {
+
+ /** The {@link PhoneAccountHandle} the call is made with */
+ public abstract Optional<PhoneAccountHandle> phoneAccountHandle();
+
+ public static Builder builder() {
+ return new AutoValue_ActiveCallInfo.Builder();
+ }
+
+ /** Builder for {@link ActiveCallInfo}. Only In Call UI should create ActiveCallInfo */
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public Builder setPhoneAccountHandle(@Nullable PhoneAccountHandle phoneAccountHandle) {
+ return setPhoneAccountHandle(Optional.fromNullable(phoneAccountHandle));
+ }
+
+ public abstract Builder setPhoneAccountHandle(Optional<PhoneAccountHandle> phoneAccountHandle);
+
+ public abstract ActiveCallInfo build();
+ }
+}
diff --git a/java/com/android/dialer/activecalls/ActiveCalls.java b/java/com/android/dialer/activecalls/ActiveCalls.java
new file mode 100644
index 000000000..600839c73
--- /dev/null
+++ b/java/com/android/dialer/activecalls/ActiveCalls.java
@@ -0,0 +1,34 @@
+/*
+ * 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.dialer.activecalls;
+
+import android.support.annotation.MainThread;
+import com.google.common.collect.ImmutableList;
+
+/** Exposes information about current active calls to the whole dialer. */
+public interface ActiveCalls {
+
+ /**
+ * Return a list of current active calls. Any call that is not disconnected is regarded as active.
+ * Ordering of elements are not guaranteed.
+ */
+ ImmutableList<ActiveCallInfo> getActiveCalls();
+
+ /** Should only be called by in call UI. */
+ @MainThread
+ void setActiveCalls(ImmutableList<ActiveCallInfo> activeCalls);
+}
diff --git a/java/com/android/dialer/activecalls/ActiveCallsComponent.java b/java/com/android/dialer/activecalls/ActiveCallsComponent.java
new file mode 100644
index 000000000..99e0e9493
--- /dev/null
+++ b/java/com/android/dialer/activecalls/ActiveCallsComponent.java
@@ -0,0 +1,40 @@
+/*
+ * 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.dialer.activecalls;
+
+import android.content.Context;
+import com.android.dialer.inject.HasRootComponent;
+import com.android.dialer.inject.IncludeInDialerRoot;
+import dagger.Subcomponent;
+
+/** Component for {@link ActiveCalls} */
+@Subcomponent
+public abstract class ActiveCallsComponent {
+
+ public abstract ActiveCalls activeCalls();
+
+ public static ActiveCallsComponent get(Context context) {
+ return ((HasComponent) ((HasRootComponent) context.getApplicationContext()).component())
+ .activeCallsComponent();
+ }
+
+ /** Used to refer to the root application component. */
+ @IncludeInDialerRoot
+ public interface HasComponent {
+ ActiveCallsComponent activeCallsComponent();
+ }
+}
diff --git a/java/com/android/dialer/activecalls/ActiveCallsModule.java b/java/com/android/dialer/activecalls/ActiveCallsModule.java
new file mode 100644
index 000000000..4d7f44858
--- /dev/null
+++ b/java/com/android/dialer/activecalls/ActiveCallsModule.java
@@ -0,0 +1,34 @@
+/*
+ * 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.dialer.activecalls;
+
+import com.android.dialer.activecalls.impl.ActiveCallsImpl;
+import com.android.dialer.inject.DialerVariant;
+import com.android.dialer.inject.InstallIn;
+import dagger.Binds;
+import dagger.Module;
+import javax.inject.Singleton;
+
+/** Module for {@link ActiveCallsComponent} */
+@Module
+@InstallIn(variants = DialerVariant.DIALER_TEST) // TODO(weijiaxu): put all variants.
+public abstract class ActiveCallsModule {
+
+ @Singleton
+ @Binds
+ public abstract ActiveCalls to(ActiveCallsImpl impl);
+}
diff --git a/java/com/android/dialer/activecalls/impl/ActiveCallsImpl.java b/java/com/android/dialer/activecalls/impl/ActiveCallsImpl.java
new file mode 100644
index 000000000..3449cc8b0
--- /dev/null
+++ b/java/com/android/dialer/activecalls/impl/ActiveCallsImpl.java
@@ -0,0 +1,45 @@
+/*
+ * 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.dialer.activecalls.impl;
+
+import android.support.annotation.MainThread;
+import com.android.dialer.activecalls.ActiveCallInfo;
+import com.android.dialer.activecalls.ActiveCalls;
+import com.android.dialer.common.Assert;
+import com.google.common.collect.ImmutableList;
+import javax.inject.Inject;
+
+/** Implementation of {@link ActiveCalls} */
+public class ActiveCallsImpl implements ActiveCalls {
+
+ ImmutableList<ActiveCallInfo> activeCalls = ImmutableList.of();
+
+ @Inject
+ ActiveCallsImpl() {}
+
+ @Override
+ public ImmutableList<ActiveCallInfo> getActiveCalls() {
+ return activeCalls;
+ }
+
+ @Override
+ @MainThread
+ public void setActiveCalls(ImmutableList<ActiveCallInfo> activeCalls) {
+ Assert.isMainThread();
+ this.activeCalls = Assert.isNotNull(activeCalls);
+ }
+}