summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Dialer <noreply@google.com>2017-11-21 14:34:47 -0800
committerCopybara-Service <copybara-piper@google.com>2017-11-21 14:35:57 -0800
commit3855a6b60d226062ae2b311590b16534f3c4dd85 (patch)
tree42b001c9c3f28c6ae4f9cdbd86a7beed1c2d2574
parented6893eb40815b09823421cc1301b4b8d9a5c57c (diff)
Adding call feedback mechanism
Test: No impact on existing functionalities PiperOrigin-RevId: 176562444 Change-Id: I209379dde3e920a27d6e735c8494647154e40e5a
-rw-r--r--java/com/android/dialer/binary/aosp/AospDialerRootComponent.java4
-rw-r--r--java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java2
-rw-r--r--java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java4
-rw-r--r--java/com/android/dialer/feedback/FeedbackComponent.java40
-rw-r--r--java/com/android/dialer/feedback/stub/CallFeedbackListenerStub.java62
-rw-r--r--java/com/android/dialer/feedback/stub/StubFeedbackModule.java35
-rw-r--r--java/com/android/incallui/CallCardPresenter.java8
7 files changed, 152 insertions, 3 deletions
diff --git a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
index a0fb604cf..2bba432ca 100644
--- a/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
+++ b/java/com/android/dialer/binary/aosp/AospDialerRootComponent.java
@@ -22,6 +22,7 @@ import com.android.dialer.common.concurrent.DialerExecutorModule;
import com.android.dialer.configprovider.SharedPrefConfigProviderModule;
import com.android.dialer.duo.stub.StubDuoModule;
import com.android.dialer.enrichedcall.stub.StubEnrichedCallModule;
+import com.android.dialer.feedback.stub.StubFeedbackModule;
import com.android.dialer.inject.ContextModule;
import com.android.dialer.phonelookup.PhoneLookupModule;
import com.android.dialer.phonenumbergeoutil.impl.PhoneNumberGeoUtilModule;
@@ -55,7 +56,8 @@ import javax.inject.Singleton;
StubEnrichedCallModule.class,
StubMapsModule.class,
VoicemailModule.class,
- StubSimSuggestionModule.class
+ StubSimSuggestionModule.class,
+ StubFeedbackModule.class,
}
)
public interface AospDialerRootComponent extends BaseDialerRootComponent {}
diff --git a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
index d5c91c90a..2e13cfbde 100644
--- a/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
+++ b/java/com/android/dialer/binary/basecomponent/BaseDialerRootComponent.java
@@ -22,6 +22,7 @@ import com.android.dialer.common.concurrent.DialerExecutorComponent;
import com.android.dialer.configprovider.ConfigProviderComponent;
import com.android.dialer.duo.DuoComponent;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
+import com.android.dialer.feedback.FeedbackComponent;
import com.android.dialer.main.MainComponent;
import com.android.dialer.phonelookup.PhoneLookupComponent;
import com.android.dialer.phonenumbergeoutil.PhoneNumberGeoUtilComponent;
@@ -46,6 +47,7 @@ public interface BaseDialerRootComponent
DialerExecutorComponent.HasComponent,
DuoComponent.HasComponent,
EnrichedCallComponent.HasComponent,
+ FeedbackComponent.HasComponent,
MainComponent.HasComponent,
MapsComponent.HasComponent,
PhoneLookupComponent.HasComponent,
diff --git a/java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java b/java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java
index 1ae80f4aa..2801bdeae 100644
--- a/java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java
+++ b/java/com/android/dialer/binary/google/GoogleStubDialerRootComponent.java
@@ -22,6 +22,7 @@ import com.android.dialer.common.concurrent.DialerExecutorModule;
import com.android.dialer.configprovider.SharedPrefConfigProviderModule;
import com.android.dialer.duo.stub.StubDuoModule;
import com.android.dialer.enrichedcall.stub.StubEnrichedCallModule;
+import com.android.dialer.feedback.stub.StubFeedbackModule;
import com.android.dialer.inject.ContextModule;
import com.android.dialer.phonelookup.PhoneLookupModule;
import com.android.dialer.phonenumbergeoutil.impl.PhoneNumberGeoUtilModule;
@@ -58,7 +59,8 @@ import javax.inject.Singleton;
StubEnrichedCallModule.class,
MapsModule.class,
VoicemailModule.class,
- StubDuoModule.class
+ StubDuoModule.class,
+ StubFeedbackModule.class,
}
)
public interface GoogleStubDialerRootComponent extends BaseDialerRootComponent {}
diff --git a/java/com/android/dialer/feedback/FeedbackComponent.java b/java/com/android/dialer/feedback/FeedbackComponent.java
new file mode 100644
index 000000000..e3863d7fb
--- /dev/null
+++ b/java/com/android/dialer/feedback/FeedbackComponent.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2017 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.feedback;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import com.android.dialer.inject.HasRootComponent;
+import com.android.incallui.call.CallList;
+import dagger.Subcomponent;
+
+/** Subcomponent that can be used to access the feedback implementation. */
+@Subcomponent
+public abstract class FeedbackComponent {
+ @NonNull
+ public abstract CallList.Listener getCallFeedbackListener();
+
+ public static FeedbackComponent get(Context context) {
+ return ((HasComponent) ((HasRootComponent) context.getApplicationContext()).component())
+ .feedbackComponent();
+ }
+
+ /** Used to refer to the root application component. */
+ public interface HasComponent {
+ FeedbackComponent feedbackComponent();
+ }
+}
diff --git a/java/com/android/dialer/feedback/stub/CallFeedbackListenerStub.java b/java/com/android/dialer/feedback/stub/CallFeedbackListenerStub.java
new file mode 100644
index 000000000..3eb8590ad
--- /dev/null
+++ b/java/com/android/dialer/feedback/stub/CallFeedbackListenerStub.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2017 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.feedback.stub;
+
+import android.content.Context;
+import android.support.annotation.NonNull;
+import com.android.dialer.common.Assert;
+import com.android.dialer.inject.ApplicationContext;
+import com.android.incallui.call.CallList;
+import com.android.incallui.call.DialerCall;
+import javax.inject.Inject;
+
+/**
+ * Stub implementation of {@link com.google.android.apps.dialer.feedback.CallFeedbackListenerImpl}
+ */
+public class CallFeedbackListenerStub implements CallList.Listener {
+
+ @NonNull private final Context context;
+
+ @Inject
+ public CallFeedbackListenerStub(@ApplicationContext @NonNull Context context) {
+ this.context = Assert.isNotNull(context);
+ }
+
+ @Override
+ public void onIncomingCall(DialerCall call) {}
+
+ @Override
+ public void onUpgradeToVideo(DialerCall call) {}
+
+ @Override
+ public void onSessionModificationStateChange(DialerCall call) {}
+
+ @Override
+ public void onCallListChange(CallList callList) {}
+
+ @Override
+ public void onDisconnect(DialerCall call) {}
+
+ @Override
+ public void onWiFiToLteHandover(DialerCall call) {}
+
+ @Override
+ public void onHandoverToWifiFailed(DialerCall call) {}
+
+ @Override
+ public void onInternationalCallOnWifi(@NonNull DialerCall call) {}
+}
diff --git a/java/com/android/dialer/feedback/stub/StubFeedbackModule.java b/java/com/android/dialer/feedback/stub/StubFeedbackModule.java
new file mode 100644
index 000000000..61ee413ce
--- /dev/null
+++ b/java/com/android/dialer/feedback/stub/StubFeedbackModule.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 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.feedback.stub;
+
+import android.content.Context;
+import com.android.dialer.common.LogUtil;
+import com.android.dialer.inject.ApplicationContext;
+import com.android.incallui.call.CallList;
+import dagger.Module;
+import dagger.Provides;
+
+/** Module which bind {@link com.android.dialer.feedback.stub.CallFeedbackListenerStub}. */
+@Module
+public class StubFeedbackModule {
+
+ @Provides
+ static CallList.Listener provideCallFeedbackListener(@ApplicationContext Context context) {
+ LogUtil.i("StubFeedbackModule.provideCallFeedbackListener", "returning stub");
+ return new CallFeedbackListenerStub(context);
+ }
+}
diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java
index 0ef0c9827..f3c2af6c7 100644
--- a/java/com/android/incallui/CallCardPresenter.java
+++ b/java/com/android/incallui/CallCardPresenter.java
@@ -48,6 +48,7 @@ import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
import com.android.dialer.compat.ActivityCompat;
import com.android.dialer.configprovider.ConfigProviderBindings;
+import com.android.dialer.feedback.FeedbackComponent;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.multimedia.MultimediaData;
@@ -151,6 +152,11 @@ public class CallCardPresenter
return !TextUtils.isEmpty(call.getCallSubject());
}
+ private void addCallFeedbackListener(Context context) {
+ LogUtil.d("CallCardPresenter.addCallFeedbackListener", "Adding call feedback listener");
+ CallList.getInstance().addListener(FeedbackComponent.get(context).getCallFeedbackListener());
+ }
+
@Override
public void onInCallScreenDelegateInit(InCallScreen inCallScreen) {
Assert.isNotNull(inCallScreen);
@@ -165,7 +171,7 @@ public class CallCardPresenter
mInCallScreen.showNoteSentToast();
}
call.addListener(this);
-
+ addCallFeedbackListener(mContext);
// start processing lookups right away.
if (!call.isConferenceCall()) {
startContactInfoSearch(call, true, call.getState() == DialerCall.State.INCOMING);