summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/callcomposer
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-06-05 13:35:02 -0700
committerEric Erfanian <erfanian@google.com>2017-06-07 20:44:54 +0000
commit91ce7d2a476bd04fe525049a37a2f8b2824e9724 (patch)
treeb9bbc285430ffb5363a70eb27e382c38f5a85b7a /java/com/android/dialer/callcomposer
parent75233ff03785f24789b32039ac2c208805b7e506 (diff)
Update AOSP Dialer source from internal google3 repository at
cl/158012278. Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/152373142 (4/06/2017) to cl/158012278 (6/05/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: I4d3f14b5140e2e51bead9497bc118a205b3ebe76
Diffstat (limited to 'java/com/android/dialer/callcomposer')
-rw-r--r--java/com/android/dialer/callcomposer/AndroidManifest.xml2
-rw-r--r--java/com/android/dialer/callcomposer/CallComposerActivity.java73
-rw-r--r--java/com/android/dialer/callcomposer/CameraComposerFragment.java13
-rw-r--r--java/com/android/dialer/callcomposer/GalleryCursorLoader.java4
-rw-r--r--java/com/android/dialer/callcomposer/MessageComposerFragment.java36
-rw-r--r--java/com/android/dialer/callcomposer/camera/CameraManager.java19
-rw-r--r--java/com/android/dialer/callcomposer/camera/ImagePersistTask.java38
-rw-r--r--java/com/android/dialer/callcomposer/proto/call_composer_contact.proto18
-rw-r--r--java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml12
-rw-r--r--java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml2
-rw-r--r--java/com/android/dialer/callcomposer/res/values-ca/strings.xml4
-rw-r--r--java/com/android/dialer/callcomposer/res/values/styles.xml2
12 files changed, 64 insertions, 159 deletions
diff --git a/java/com/android/dialer/callcomposer/AndroidManifest.xml b/java/com/android/dialer/callcomposer/AndroidManifest.xml
index 369db6f4a..cce71105f 100644
--- a/java/com/android/dialer/callcomposer/AndroidManifest.xml
+++ b/java/com/android/dialer/callcomposer/AndroidManifest.xml
@@ -17,7 +17,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.dialer.callcomposer">
- <application>
+ <application android:theme="@style/Theme.AppCompat">
<activity
android:name="com.android.dialer.callcomposer.CallComposerActivity"
android:exported="true"
diff --git a/java/com/android/dialer/callcomposer/CallComposerActivity.java b/java/com/android/dialer/callcomposer/CallComposerActivity.java
index 074fc6de1..bc20c7314 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -37,10 +37,8 @@ import android.text.TextUtils;
import android.util.Base64;
import android.view.View;
import android.view.View.OnClickListener;
-import android.view.View.OnLayoutChangeListener;
import android.view.ViewAnimationUtils;
import android.view.ViewGroup;
-import android.view.WindowManager.LayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -56,6 +54,7 @@ import com.android.dialer.common.LogUtil;
import com.android.dialer.common.UiUtil;
import com.android.dialer.common.concurrent.DialerExecutors;
import com.android.dialer.constants.Constants;
+import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.enrichedcall.EnrichedCallComponent;
import com.android.dialer.enrichedcall.EnrichedCallManager;
import com.android.dialer.enrichedcall.EnrichedCallManager.State;
@@ -86,7 +85,6 @@ public class CallComposerActivity extends AppCompatActivity
implements OnClickListener,
OnPageChangeListener,
CallComposerListener,
- OnLayoutChangeListener,
EnrichedCallManager.StateChangedListener {
public static final String KEY_CONTACT_NAME = "contact_name";
@@ -102,7 +100,7 @@ public class CallComposerActivity extends AppCompatActivity
private static final String VIEW_PAGER_STATE_KEY = "view_pager_state_key";
private static final String SESSION_ID_KEY = "session_id_key";
- private CallComposerContact contact;
+ private DialerContact contact;
private Long sessionId = Session.NO_SESSION_ID;
private TextView nameView;
@@ -126,10 +124,9 @@ public class CallComposerActivity extends AppCompatActivity
private boolean shouldAnimateEntrance = true;
private boolean inFullscreenMode;
private boolean isSendAndCallHidingOrHidden = true;
- private boolean layoutChanged;
private int currentIndex;
- public static Intent newIntent(Context context, CallComposerContact contact) {
+ public static Intent newIntent(Context context, DialerContact contact) {
Intent intent = new Intent(context, CallComposerActivity.class);
ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact);
return intent;
@@ -140,19 +137,19 @@ public class CallComposerActivity extends AppCompatActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.call_composer_activity);
- nameView = (TextView) findViewById(R.id.contact_name);
- numberView = (TextView) findViewById(R.id.phone_number);
- contactPhoto = (QuickContactBadge) findViewById(R.id.contact_photo);
- cameraIcon = (ImageView) findViewById(R.id.call_composer_camera);
- galleryIcon = (ImageView) findViewById(R.id.call_composer_photo);
- messageIcon = (ImageView) findViewById(R.id.call_composer_message);
- contactContainer = (RelativeLayout) findViewById(R.id.contact_bar);
- pager = (ViewPager) findViewById(R.id.call_composer_view_pager);
- background = (FrameLayout) findViewById(R.id.background);
- windowContainer = (LinearLayout) findViewById(R.id.call_composer_container);
- toolbar = (DialerToolbar) findViewById(R.id.toolbar);
+ nameView = findViewById(R.id.contact_name);
+ numberView = findViewById(R.id.phone_number);
+ contactPhoto = findViewById(R.id.contact_photo);
+ cameraIcon = findViewById(R.id.call_composer_camera);
+ galleryIcon = findViewById(R.id.call_composer_photo);
+ messageIcon = findViewById(R.id.call_composer_message);
+ contactContainer = findViewById(R.id.contact_bar);
+ pager = findViewById(R.id.call_composer_view_pager);
+ background = findViewById(R.id.background);
+ windowContainer = findViewById(R.id.call_composer_container);
+ toolbar = findViewById(R.id.toolbar);
sendAndCall = findViewById(R.id.send_and_call_button);
- sendAndCallText = (TextView) findViewById(R.id.send_and_call_text);
+ sendAndCallText = findViewById(R.id.send_and_call_text);
interpolator = new FastOutSlowInInterpolator();
adapter =
@@ -162,7 +159,6 @@ public class CallComposerActivity extends AppCompatActivity
pager.setAdapter(adapter);
pager.addOnPageChangeListener(this);
- background.addOnLayoutChangeListener(this);
cameraIcon.setOnClickListener(this);
galleryIcon.setOnClickListener(this);
messageIcon.setOnClickListener(this);
@@ -178,11 +174,6 @@ public class CallComposerActivity extends AppCompatActivity
onPageSelected(currentIndex);
}
- int adjustMode =
- isLandscapeLayout()
- ? LayoutParams.SOFT_INPUT_ADJUST_PAN
- : LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
- getWindow().setSoftInputMode(adjustMode);
// Since we can't animate the views until they are ready to be drawn, we use this listener to
// track that and animate the call compose UI as soon as it's ready.
ViewUtil.doOnPreDraw(
@@ -264,7 +255,7 @@ public class CallComposerActivity extends AppCompatActivity
} else if (view == sendAndCall) {
sendAndCall();
} else {
- Assert.fail();
+ throw Assert.createIllegalStateFailException("View on click not implemented: " + view);
}
}
@@ -340,11 +331,7 @@ public class CallComposerActivity extends AppCompatActivity
private boolean sessionReady() {
Session session = getEnrichedCallManager().getSession(sessionId);
- if (session == null) {
- return false;
- }
-
- return session.getState() == EnrichedCallManager.STATE_STARTED;
+ return session != null && session.getState() == EnrichedCallManager.STATE_STARTED;
}
private void placeRCSCall(MultimediaData.Builder builder) {
@@ -424,28 +411,6 @@ public class CallComposerActivity extends AppCompatActivity
animateSendAndCall(fragment.shouldHide());
}
- // To detect when the keyboard changes.
- @Override
- public void onLayoutChange(
- View view,
- int left,
- int top,
- int right,
- int bottom,
- int oldLeft,
- int oldTop,
- int oldRight,
- int oldBottom) {
- // To prevent infinite layout change loops
- if (layoutChanged) {
- layoutChanged = false;
- return;
- }
-
- layoutChanged = true;
- showFullscreen(contactContainer.getTop() < 0 || inFullscreenMode);
- }
-
/**
* Reads arguments from the fragment arguments and populates the necessary instance variables.
* Copied from {@link com.android.contacts.common.dialog.CallSubjectDialog}.
@@ -456,14 +421,14 @@ public class CallComposerActivity extends AppCompatActivity
byte[] bytes =
Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT);
try {
- contact = CallComposerContact.parseFrom(bytes);
+ contact = DialerContact.parseFrom(bytes);
} catch (InvalidProtocolBufferException e) {
throw Assert.createAssertionFailException(e.toString());
}
} else {
contact =
ProtoParsers.getTrusted(
- intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance());
+ intent, ARG_CALL_COMPOSER_CONTACT, DialerContact.getDefaultInstance());
}
updateContactInfo();
}
diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
index f65207fa3..ecdc25822 100644
--- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
@@ -17,13 +17,14 @@
package com.android.dialer.callcomposer;
import android.Manifest;
-import android.Manifest.permission;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.drawable.Animatable;
import android.hardware.Camera.CameraInfo;
import android.net.Uri;
import android.os.Bundle;
+import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -56,6 +57,7 @@ import com.android.dialer.util.PermissionsUtil;
public class CameraComposerFragment extends CallComposerFragment
implements CameraManagerListener, OnClickListener, CameraManager.MediaCallback {
+ private static final String CAMERA_PRIVACY_PREF = "camera_privacy_permission";
private static final String CAMERA_DIRECTION_KEY = "camera_direction";
private static final String CAMERA_URI_KEY = "camera_key";
@@ -107,7 +109,8 @@ public class CameraComposerFragment extends CallComposerFragment
capture.setOnClickListener(this);
cancel.setOnClickListener(this);
- if (!PermissionsUtil.hasPermission(getContext(), permission.CAMERA)) {
+
+ if (!PermissionsUtil.hasCameraPermissions(getContext())) {
LogUtil.i("CameraComposerFragment.onCreateView", "Permission view shown.");
Logger.get(getContext()).logImpression(DialerImpression.Type.CAMERA_PERMISSION_DISPLAYED);
ImageView permissionImage = (ImageView) permissionView.findViewById(R.id.permission_icon);
@@ -131,6 +134,12 @@ public class CameraComposerFragment extends CallComposerFragment
}
private void setupCamera() {
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+ if (!preferences.getBoolean(CAMERA_PRIVACY_PREF, false)) {
+ Toast.makeText(getContext(), getString(R.string.camera_privacy_text), Toast.LENGTH_LONG)
+ .show();
+ preferences.edit().putBoolean(CAMERA_PRIVACY_PREF, true).apply();
+ }
CameraManager.get().setListener(this);
preview.setShown();
CameraManager.get().setRenderOverlay(focus);
diff --git a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
index f9990e167..39d6a4a6d 100644
--- a/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
+++ b/java/com/android/dialer/callcomposer/GalleryCursorLoader.java
@@ -28,7 +28,7 @@ import android.support.v4.content.CursorLoader;
public class GalleryCursorLoader extends CursorLoader {
public static final String MEDIA_SCANNER_VOLUME_EXTERNAL = "external";
public static final String[] ACCEPTABLE_IMAGE_TYPES =
- new String[] {"image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp"};
+ new String[] {"image/jpeg", "image/jpg", "image/png", "image/webp"};
private static final Uri STORAGE_URI = Files.getContentUri(MEDIA_SCANNER_VOLUME_EXTERNAL);
private static final String SORT_ORDER = Media.DATE_MODIFIED + " DESC";
@@ -47,7 +47,7 @@ public class GalleryCursorLoader extends CursorLoader {
@SuppressLint("DefaultLocale")
private static String createSelection() {
return String.format(
- "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/webp')"
+ "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/webp')"
+ " AND media_type in (%d)",
FileColumns.MEDIA_TYPE_IMAGE);
}
diff --git a/java/com/android/dialer/callcomposer/MessageComposerFragment.java b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
index 2a342bb08..392f6e716 100644
--- a/java/com/android/dialer/callcomposer/MessageComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
@@ -24,11 +24,8 @@ import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.LayoutInflater;
-import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
-import android.view.View.OnLongClickListener;
-import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.TextView;
@@ -36,17 +33,12 @@ import android.widget.TextView.OnEditorActionListener;
/** Fragment used to compose call with message fragment. */
public class MessageComposerFragment extends CallComposerFragment
- implements OnClickListener,
- TextWatcher,
- OnTouchListener,
- OnLongClickListener,
- OnEditorActionListener {
+ implements OnClickListener, TextWatcher, OnEditorActionListener {
private static final String CHAR_LIMIT_KEY = "char_limit";
public static final int NO_CHAR_LIMIT = -1;
private EditText customMessage;
- private boolean isLongClick = false;
private int charLimit;
public static MessageComposerFragment newInstance(int charLimit) {
@@ -73,8 +65,6 @@ public class MessageComposerFragment extends CallComposerFragment
customMessage = (EditText) view.findViewById(R.id.custom_message);
urgent.setOnClickListener(this);
- customMessage.setOnTouchListener(this);
- customMessage.setOnLongClickListener(this);
customMessage.addTextChangedListener(this);
customMessage.setOnEditorActionListener(this);
if (charLimit != NO_CHAR_LIMIT) {
@@ -118,30 +108,6 @@ public class MessageComposerFragment extends CallComposerFragment
getListener().composeCall(this);
}
- /**
- * EditTexts take two clicks to dispatch an onClick() event, so instead we add an onTouchListener
- * to listen for them. The caveat to this is that it also requires listening for onLongClicks to
- * distinguish whether a MotionEvent came from a click or a long click.
- */
- @Override
- public boolean onTouch(View view, MotionEvent event) {
- if (event.getAction() == MotionEvent.ACTION_UP) {
- if (isLongClick) {
- isLongClick = false;
- } else {
- getListener().showFullscreen(true);
- }
- }
- view.performClick();
- return false;
- }
-
- @Override
- public boolean onLongClick(View v) {
- isLongClick = true;
- return false;
- }
-
@Override
public boolean shouldHide() {
return TextUtils.isEmpty(getMessage());
diff --git a/java/com/android/dialer/callcomposer/camera/CameraManager.java b/java/com/android/dialer/callcomposer/camera/CameraManager.java
index 4cc08ba32..977f063df 100644
--- a/java/com/android/dialer/callcomposer/camera/CameraManager.java
+++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java
@@ -522,6 +522,7 @@ public class CameraManager implements FocusOverlayManager.Listener {
switch (windowManager.getDefaultDisplay().getRotation()) {
case Surface.ROTATION_0:
degrees = 0;
+ mCamera.setDisplayOrientation(90);
break;
case Surface.ROTATION_90:
degrees = 90;
@@ -531,31 +532,22 @@ public class CameraManager implements FocusOverlayManager.Listener {
break;
case Surface.ROTATION_270:
degrees = 270;
+ mCamera.setDisplayOrientation(180);
break;
default:
throw Assert.createAssertionFailException("");
}
- // The display orientation of the camera (this controls the preview image).
- int orientation;
-
// The clockwise rotation angle relative to the orientation of the camera. This affects
// pictures returned by the camera in Camera.PictureCallback.
- int rotation;
if (mCameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
- orientation = (mCameraInfo.orientation + degrees) % 360;
- rotation = orientation;
- // compensate the mirror but only for orientation
- orientation = (360 - orientation) % 360;
+ mRotation = (mCameraInfo.orientation + degrees) % 360;
} else { // back-facing
- orientation = (mCameraInfo.orientation - degrees + 360) % 360;
- rotation = orientation;
+ mRotation = (mCameraInfo.orientation - degrees + 360) % 360;
}
- mRotation = rotation;
try {
- mCamera.setDisplayOrientation(orientation);
final Camera.Parameters params = mCamera.getParameters();
- params.setRotation(rotation);
+ params.setRotation(mRotation);
mCamera.setParameters(params);
} catch (final RuntimeException e) {
LogUtil.e(
@@ -589,7 +581,6 @@ public class CameraManager implements FocusOverlayManager.Listener {
mOrientationHandler.disable();
mOrientationHandler = null;
}
- // releaseMediaRecorder(true /* cleanupFile */);
mFocusOverlayManager.onPreviewStopped();
return;
}
diff --git a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
index 31751e536..b5542ab6c 100644
--- a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
+++ b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
@@ -20,13 +20,11 @@ import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
import android.graphics.Matrix;
import android.net.Uri;
import android.os.Build.VERSION_CODES;
import android.support.v4.content.FileProvider;
import com.android.dialer.callcomposer.camera.exif.ExifInterface;
-import com.android.dialer.callcomposer.camera.exif.ExifTag;
import com.android.dialer.callcomposer.util.BitmapResizer;
import com.android.dialer.common.Assert;
import com.android.dialer.common.concurrent.FallibleAsyncTask;
@@ -71,13 +69,7 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
File outputFile = DialerUtils.createShareableFile(mContext);
try (OutputStream outputStream = new FileOutputStream(outputFile)) {
- if (mHeightPercent != 1.0f) {
- writeClippedBitmap(outputStream);
- } else {
- Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
- bitmap = BitmapResizer.resizeForEnrichedCalling(bitmap);
- bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outputStream);
- }
+ writeClippedBitmap(outputStream);
}
return FileProvider.getUriForFile(
@@ -105,10 +97,12 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
} catch (final IOException e) {
// Couldn't get exif tags, not the end of the world
}
+
Bitmap bitmap = BitmapFactory.decodeByteArray(mBytes, 0, mBytes.length);
final int clippedWidth;
final int clippedHeight;
- if (ExifInterface.getOrientationParams(orientation).invertDimensions) {
+ boolean invert = ExifInterface.getOrientationParams(orientation).invertDimensions;
+ if (invert) {
Assert.checkState(mWidth == bitmap.getHeight());
Assert.checkState(mHeight == bitmap.getWidth());
clippedWidth = (int) (mHeight * mHeightPercent);
@@ -119,24 +113,22 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
clippedWidth = mWidth;
clippedHeight = (int) (mHeight * mHeightPercent);
}
- final int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
- final int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
+
+ int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
+ int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
mWidth = clippedWidth;
mHeight = clippedHeight;
+
+ Matrix matrix = new Matrix();
+ matrix.postRotate(invert ? 90 : 0);
+
Bitmap clippedBitmap =
- Bitmap.createBitmap(clippedWidth, clippedHeight, Bitmap.Config.ARGB_8888);
- clippedBitmap.setDensity(bitmap.getDensity());
- final Canvas clippedBitmapCanvas = new Canvas(clippedBitmap);
- final Matrix matrix = new Matrix();
- matrix.postTranslate(-offsetLeft, -offsetTop);
- clippedBitmapCanvas.drawBitmap(bitmap, matrix, null /* paint */);
- clippedBitmapCanvas.save();
+ Bitmap.createBitmap(
+ bitmap, offsetLeft, offsetTop, clippedWidth, clippedHeight, matrix, true);
clippedBitmap = BitmapResizer.resizeForEnrichedCalling(clippedBitmap);
- // EXIF data can take a big chunk of the file size and is often cleared by the
- // carrier, only store orientation since that's critical
- final ExifTag orientationTag = exifInterface.getTag(ExifInterface.TAG_ORIENTATION);
+ // EXIF data can take a big chunk of the file size and we've already manually rotated our image,
+ // so remove all of the exif data.
exifInterface.clearExif();
- exifInterface.setTag(orientationTag);
exifInterface.writeExif(clippedBitmap, outputStream);
clippedBitmap.recycle();
diff --git a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto b/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
deleted file mode 100644
index 99766aac5..000000000
--- a/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
+++ /dev/null
@@ -1,18 +0,0 @@
-syntax = "proto2";
-
-option java_package = "com.android.dialer.callcomposer";
-option java_multiple_files = true;
-option optimize_for = LITE_RUNTIME;
-
-package com.android.dialer.callcomposer;
-
-message CallComposerContact {
- optional fixed64 photo_id = 1;
- optional string photo_uri = 2;
- optional string contact_uri = 3;
- optional string name_or_number = 4;
- optional string number = 6;
- optional string display_number = 7;
- optional string number_label = 8;
- optional int32 contact_type = 9;
-}
diff --git a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
index c3f1102d1..14703a44c 100644
--- a/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/call_composer_activity.xml
@@ -15,11 +15,11 @@
~ limitations under the License
-->
<FrameLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@+id/background"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/call_composer_background_color">
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/background"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/call_composer_background_color">
<LinearLayout
android:id="@+id/call_composer_container"
@@ -87,7 +87,7 @@
android:layout_height="@dimen/call_composer_media_bar_height"
android:orientation="horizontal"
android:gravity="center_horizontal"
- android:background="@color/dialer_secondary_color"
+ android:background="@color/dialer_theme_color_dark"
android:clickable="true">
<ImageView
diff --git a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
index 77c7a58d1..15562476a 100644
--- a/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
+++ b/java/com/android/dialer/callcomposer/res/layout/fragment_message_composer.xml
@@ -70,7 +70,7 @@
android:background="@color/background_dialer_white"
android:textCursorDrawable="@drawable/searchedittext_custom_cursor"
android:layout_toStartOf="@+id/remaining_characters"
- android:inputType="textShortMessage"
+ android:inputType="textShortMessage|textCapSentences"
android:imeOptions="flagNoExtractUi|actionSend"/>
<TextView
diff --git a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
index 4fa52ad63..1a57f87ce 100644
--- a/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
+++ b/java/com/android/dialer/callcomposer/res/values-ca/strings.xml
@@ -28,6 +28,6 @@
<string name="camera_switch_to_still_mode" msgid="1881982437979592567">"Fes una foto"</string>
<string name="camera_media_failure" msgid="8979549551450965882">"No s\'ha pogut carregar la imatge de la càmera"</string>
<string name="allow" msgid="8637148297403066623">"Permet"</string>
- <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dóna accés a la càmera"</string>
- <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dóna accés al contingut multimèdia"</string>
+ <string name="camera_permission_text" msgid="7863231776480341614">"Per fer una foto, dona accés a la càmera"</string>
+ <string name="gallery_permission_text" msgid="4102566850658919346">"Per compartir una imatge, dona accés al contingut multimèdia"</string>
</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values/styles.xml b/java/com/android/dialer/callcomposer/res/values/styles.xml
index 29ac4ddaa..16e7fb622 100644
--- a/java/com/android/dialer/callcomposer/res/values/styles.xml
+++ b/java/com/android/dialer/callcomposer/res/values/styles.xml
@@ -15,7 +15,7 @@
~ limitations under the License
-->
<resources>
- <style name="Theme.AppCompat.CallComposer" parent="Theme.AppCompat.NoActionBar">
+ <style name="Theme.AppCompat.CallComposer" parent="DialerThemeBase.NoActionBar">
<item name="android:colorPrimaryDark">@color/dialer_theme_color_dark</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>