Merge changes Ida17f8e2,I7604d745

* changes:
  internal change
  Bump version codes of v18
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e84ca0c..0653fe4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -16,7 +16,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   coreApp="true"
   package="com.android.dialer"
-  android:versionCode="230000"
+  android:versionCode="240000"
   android:versionName="18.0">
 
   <uses-sdk
diff --git a/java/com/android/dialer/binary/google/AndroidManifest.xml b/java/com/android/dialer/binary/google/AndroidManifest.xml
index e068fa2..f7c5643 100644
--- a/java/com/android/dialer/binary/google/AndroidManifest.xml
+++ b/java/com/android/dialer/binary/google/AndroidManifest.xml
@@ -16,7 +16,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
   coreApp="true"
   package="com.google.android.google_stub_dialer"
-  android:versionCode="230000"
+  android:versionCode="240000"
   android:versionName="18.0">
 
   <uses-sdk
diff --git a/java/com/android/dialer/feedback/FeedbackComponent.java b/java/com/android/dialer/feedback/FeedbackComponent.java
index e3863d7..3c78197 100644
--- a/java/com/android/dialer/feedback/FeedbackComponent.java
+++ b/java/com/android/dialer/feedback/FeedbackComponent.java
@@ -28,6 +28,9 @@
   @NonNull
   public abstract CallList.Listener getCallFeedbackListener();
 
+  @NonNull
+  public abstract FeedbackSender getCallFeedbackSender();
+
   public static FeedbackComponent get(Context context) {
     return ((HasComponent) ((HasRootComponent) context.getApplicationContext()).component())
         .feedbackComponent();
diff --git a/java/com/android/dialer/feedback/FeedbackSender.java b/java/com/android/dialer/feedback/FeedbackSender.java
new file mode 100644
index 0000000..8f40209
--- /dev/null
+++ b/java/com/android/dialer/feedback/FeedbackSender.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2016 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;
+
+/** Defines the apis provided by the class handling uploading of feedback. */
+public interface FeedbackSender {
+  void sendFeedback(Object feedbackOptions);
+
+  Object getFeedbackOptionsBuilder();
+}
diff --git a/java/com/android/dialer/feedback/stub/FeedbackSenderStub.java b/java/com/android/dialer/feedback/stub/FeedbackSenderStub.java
new file mode 100644
index 0000000..cde7a99
--- /dev/null
+++ b/java/com/android/dialer/feedback/stub/FeedbackSenderStub.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2016 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 com.android.dialer.feedback.FeedbackSender;
+import javax.inject.Inject;
+
+/** Stub module that is returned if the Feedback module is not enabled. */
+public class FeedbackSenderStub implements FeedbackSender {
+
+  @Inject
+  public FeedbackSenderStub() {}
+
+  @Override
+  public void sendFeedback(Object feedbackOptions) {}
+
+  @Override
+  public Object getFeedbackOptionsBuilder() {
+    return null;
+  }
+}
diff --git a/java/com/android/dialer/feedback/stub/StubFeedbackModule.java b/java/com/android/dialer/feedback/stub/StubFeedbackModule.java
index 61ee413..49df09a 100644
--- a/java/com/android/dialer/feedback/stub/StubFeedbackModule.java
+++ b/java/com/android/dialer/feedback/stub/StubFeedbackModule.java
@@ -18,7 +18,11 @@
 
 import android.content.Context;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.feedback.FeedbackSender;
 import com.android.dialer.inject.ApplicationContext;
+import com.android.dialer.logging.LoggingBindings;
+import com.android.dialer.logging.LoggingBindingsFactory;
+import com.android.dialer.logging.LoggingBindingsStub;
 import com.android.incallui.call.CallList;
 import dagger.Module;
 import dagger.Provides;
@@ -28,6 +32,17 @@
 public class StubFeedbackModule {
 
   @Provides
+  static LoggingBindings provideLoggingBindings(LoggingBindingsFactory factory) {
+    return new LoggingBindingsStub();
+  }
+
+  @Provides
+  static FeedbackSender provideCallFeedbackSender() {
+    LogUtil.i("StubFeedbackModule.provideCallFeedbackSender", "return stub");
+    return new FeedbackSenderStub();
+  }
+
+  @Provides
   static CallList.Listener provideCallFeedbackListener(@ApplicationContext Context context) {
     LogUtil.i("StubFeedbackModule.provideCallFeedbackListener", "returning stub");
     return new CallFeedbackListenerStub(context);