diff --git a/InCallUI/src/com/android/incallui/AnswerFragment.java b/InCallUI/src/com/android/incallui/AnswerFragment.java
index d163637..07cbfd5 100644
--- a/InCallUI/src/com/android/incallui/AnswerFragment.java
+++ b/InCallUI/src/com/android/incallui/AnswerFragment.java
@@ -83,7 +83,7 @@
     }
 
     @Override
-    AnswerPresenter.AnswerUi getUi() {
+    public AnswerPresenter.AnswerUi getUi() {
         return this;
     }
 
diff --git a/InCallUI/src/com/android/incallui/BaseFragment.java b/InCallUI/src/com/android/incallui/BaseFragment.java
index 037c245..58d991a 100644
--- a/InCallUI/src/com/android/incallui/BaseFragment.java
+++ b/InCallUI/src/com/android/incallui/BaseFragment.java
@@ -29,9 +29,9 @@
 
     private T mPresenter;
 
-    abstract T createPresenter();
+    public abstract T createPresenter();
 
-    abstract U getUi();
+    public abstract U getUi();
 
     protected BaseFragment() {
         mPresenter = createPresenter();
diff --git a/InCallUI/src/com/android/incallui/CallButtonFragment.java b/InCallUI/src/com/android/incallui/CallButtonFragment.java
index b2c812b..ebba1b1 100644
--- a/InCallUI/src/com/android/incallui/CallButtonFragment.java
+++ b/InCallUI/src/com/android/incallui/CallButtonFragment.java
@@ -112,13 +112,13 @@
     private MaterialPalette mCurrentThemeColors;
 
     @Override
-    CallButtonPresenter createPresenter() {
+    public CallButtonPresenter createPresenter() {
         // TODO: find a cleaner way to include audio mode provider than having a singleton instance.
         return new CallButtonPresenter();
     }
 
     @Override
-    CallButtonPresenter.CallButtonUi getUi() {
+    public CallButtonPresenter.CallButtonUi getUi() {
         return this;
     }
 
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 5e1c26a..9359fd5 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -120,12 +120,12 @@
     private MaterialPalette mCurrentThemeColors;
 
     @Override
-    CallCardPresenter.CallCardUi getUi() {
+    public CallCardPresenter.CallCardUi getUi() {
         return this;
     }
 
     @Override
-    CallCardPresenter createPresenter() {
+    public CallCardPresenter createPresenter() {
         return new CallCardPresenter();
     }
 
diff --git a/InCallUI/src/com/android/incallui/ConferenceManagerFragment.java b/InCallUI/src/com/android/incallui/ConferenceManagerFragment.java
index 6b232c9..f5f52fc 100644
--- a/InCallUI/src/com/android/incallui/ConferenceManagerFragment.java
+++ b/InCallUI/src/com/android/incallui/ConferenceManagerFragment.java
@@ -47,12 +47,12 @@
     private boolean mIsRecreating;
 
     @Override
-    ConferenceManagerPresenter createPresenter() {
+    public ConferenceManagerPresenter createPresenter() {
         return new ConferenceManagerPresenter();
     }
 
     @Override
-    ConferenceManagerPresenter.ConferenceManagerUi getUi() {
+    public ConferenceManagerPresenter.ConferenceManagerUi getUi() {
         return this;
     }
 
diff --git a/InCallUI/src/com/android/incallui/DialpadFragment.java b/InCallUI/src/com/android/incallui/DialpadFragment.java
index f185c54..737c862 100644
--- a/InCallUI/src/com/android/incallui/DialpadFragment.java
+++ b/InCallUI/src/com/android/incallui/DialpadFragment.java
@@ -409,12 +409,12 @@
     // TODO(klp) Adds hardware keyboard listener
 
     @Override
-    DialpadPresenter createPresenter() {
+    public DialpadPresenter createPresenter() {
         return new DialpadPresenter();
     }
 
     @Override
-    DialpadPresenter.DialpadUi getUi() {
+    public DialpadPresenter.DialpadUi getUi() {
         return this;
     }
 
diff --git a/InCallUI/src/com/android/incallui/VideoCallFragment.java b/InCallUI/src/com/android/incallui/VideoCallFragment.java
index 6077017..c285ff3 100644
--- a/InCallUI/src/com/android/incallui/VideoCallFragment.java
+++ b/InCallUI/src/com/android/incallui/VideoCallFragment.java
@@ -511,7 +511,7 @@
      * @return The user interface for the presenter, which is this fragment.
      */
     @Override
-    VideoCallPresenter.VideoCallUi getUi() {
+    public VideoCallPresenter.VideoCallUi getUi() {
         return this;
     }
 
