summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/callcomposer
diff options
context:
space:
mode:
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, 159 insertions, 64 deletions
diff --git a/java/com/android/dialer/callcomposer/AndroidManifest.xml b/java/com/android/dialer/callcomposer/AndroidManifest.xml
index cce71105f..369db6f4a 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 android:theme="@style/Theme.AppCompat">
+ <application>
<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 bc20c7314..074fc6de1 100644
--- a/java/com/android/dialer/callcomposer/CallComposerActivity.java
+++ b/java/com/android/dialer/callcomposer/CallComposerActivity.java
@@ -37,8 +37,10 @@ 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;
@@ -54,7 +56,6 @@ 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;
@@ -85,6 +86,7 @@ public class CallComposerActivity extends AppCompatActivity
implements OnClickListener,
OnPageChangeListener,
CallComposerListener,
+ OnLayoutChangeListener,
EnrichedCallManager.StateChangedListener {
public static final String KEY_CONTACT_NAME = "contact_name";
@@ -100,7 +102,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 DialerContact contact;
+ private CallComposerContact contact;
private Long sessionId = Session.NO_SESSION_ID;
private TextView nameView;
@@ -124,9 +126,10 @@ 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, DialerContact contact) {
+ public static Intent newIntent(Context context, CallComposerContact contact) {
Intent intent = new Intent(context, CallComposerActivity.class);
ProtoParsers.put(intent, ARG_CALL_COMPOSER_CONTACT, contact);
return intent;
@@ -137,19 +140,19 @@ public class CallComposerActivity extends AppCompatActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.call_composer_activity);
- 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);
+ 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);
sendAndCall = findViewById(R.id.send_and_call_button);
- sendAndCallText = findViewById(R.id.send_and_call_text);
+ sendAndCallText = (TextView) findViewById(R.id.send_and_call_text);
interpolator = new FastOutSlowInInterpolator();
adapter =
@@ -159,6 +162,7 @@ public class CallComposerActivity extends AppCompatActivity
pager.setAdapter(adapter);
pager.addOnPageChangeListener(this);
+ background.addOnLayoutChangeListener(this);
cameraIcon.setOnClickListener(this);
galleryIcon.setOnClickListener(this);
messageIcon.setOnClickListener(this);
@@ -174,6 +178,11 @@ 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(
@@ -255,7 +264,7 @@ public class CallComposerActivity extends AppCompatActivity
} else if (view == sendAndCall) {
sendAndCall();
} else {
- throw Assert.createIllegalStateFailException("View on click not implemented: " + view);
+ Assert.fail();
}
}
@@ -331,7 +340,11 @@ public class CallComposerActivity extends AppCompatActivity
private boolean sessionReady() {
Session session = getEnrichedCallManager().getSession(sessionId);
- return session != null && session.getState() == EnrichedCallManager.STATE_STARTED;
+ if (session == null) {
+ return false;
+ }
+
+ return session.getState() == EnrichedCallManager.STATE_STARTED;
}
private void placeRCSCall(MultimediaData.Builder builder) {
@@ -411,6 +424,28 @@ 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}.
@@ -421,14 +456,14 @@ public class CallComposerActivity extends AppCompatActivity
byte[] bytes =
Base64.decode(intent.getStringExtra(ARG_CALL_COMPOSER_CONTACT_BASE64), Base64.DEFAULT);
try {
- contact = DialerContact.parseFrom(bytes);
+ contact = CallComposerContact.parseFrom(bytes);
} catch (InvalidProtocolBufferException e) {
throw Assert.createAssertionFailException(e.toString());
}
} else {
contact =
ProtoParsers.getTrusted(
- intent, ARG_CALL_COMPOSER_CONTACT, DialerContact.getDefaultInstance());
+ intent, ARG_CALL_COMPOSER_CONTACT, CallComposerContact.getDefaultInstance());
}
updateContactInfo();
}
diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
index ecdc25822..f65207fa3 100644
--- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
@@ -17,14 +17,13 @@
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;
@@ -57,7 +56,6 @@ 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";
@@ -109,8 +107,7 @@ public class CameraComposerFragment extends CallComposerFragment
capture.setOnClickListener(this);
cancel.setOnClickListener(this);
-
- if (!PermissionsUtil.hasCameraPermissions(getContext())) {
+ if (!PermissionsUtil.hasPermission(getContext(), permission.CAMERA)) {
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);
@@ -134,12 +131,6 @@ 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 39d6a4a6d..f9990e167 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/webp"};
+ new String[] {"image/jpeg", "image/jpg", "image/png", "image/gif", "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/webp')"
+ "mime_type IN ('image/jpeg', 'image/jpg', 'image/png', 'image/gif', '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 392f6e716..2a342bb08 100644
--- a/java/com/android/dialer/callcomposer/MessageComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/MessageComposerFragment.java
@@ -24,8 +24,11 @@ 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;
@@ -33,12 +36,17 @@ import android.widget.TextView.OnEditorActionListener;
/** Fragment used to compose call with message fragment. */
public class MessageComposerFragment extends CallComposerFragment
- implements OnClickListener, TextWatcher, OnEditorActionListener {
+ implements OnClickListener,
+ TextWatcher,
+ OnTouchListener,
+ OnLongClickListener,
+ 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) {
@@ -65,6 +73,8 @@ 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) {
@@ -108,6 +118,30 @@ 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 977f063df..4cc08ba32 100644
--- a/java/com/android/dialer/callcomposer/camera/CameraManager.java
+++ b/java/com/android/dialer/callcomposer/camera/CameraManager.java
@@ -522,7 +522,6 @@ 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;
@@ -532,22 +531,31 @@ 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) {
- mRotation = (mCameraInfo.orientation + degrees) % 360;
+ orientation = (mCameraInfo.orientation + degrees) % 360;
+ rotation = orientation;
+ // compensate the mirror but only for orientation
+ orientation = (360 - orientation) % 360;
} else { // back-facing
- mRotation = (mCameraInfo.orientation - degrees + 360) % 360;
+ orientation = (mCameraInfo.orientation - degrees + 360) % 360;
+ rotation = orientation;
}
+ mRotation = rotation;
try {
+ mCamera.setDisplayOrientation(orientation);
final Camera.Parameters params = mCamera.getParameters();
- params.setRotation(mRotation);
+ params.setRotation(rotation);
mCamera.setParameters(params);
} catch (final RuntimeException e) {
LogUtil.e(
@@ -581,6 +589,7 @@ 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 b5542ab6c..31751e536 100644
--- a/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
+++ b/java/com/android/dialer/callcomposer/camera/ImagePersistTask.java
@@ -20,11 +20,13 @@ 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;
@@ -69,7 +71,13 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
File outputFile = DialerUtils.createShareableFile(mContext);
try (OutputStream outputStream = new FileOutputStream(outputFile)) {
- writeClippedBitmap(outputStream);
+ 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);
+ }
}
return FileProvider.getUriForFile(
@@ -97,12 +105,10 @@ 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;
- boolean invert = ExifInterface.getOrientationParams(orientation).invertDimensions;
- if (invert) {
+ if (ExifInterface.getOrientationParams(orientation).invertDimensions) {
Assert.checkState(mWidth == bitmap.getHeight());
Assert.checkState(mHeight == bitmap.getWidth());
clippedWidth = (int) (mHeight * mHeightPercent);
@@ -113,22 +119,24 @@ public class ImagePersistTask extends FallibleAsyncTask<Void, Void, Uri> {
clippedWidth = mWidth;
clippedHeight = (int) (mHeight * mHeightPercent);
}
-
- int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
- int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
+ final int offsetTop = (bitmap.getHeight() - clippedHeight) / 2;
+ final int offsetLeft = (bitmap.getWidth() - clippedWidth) / 2;
mWidth = clippedWidth;
mHeight = clippedHeight;
-
- Matrix matrix = new Matrix();
- matrix.postRotate(invert ? 90 : 0);
-
Bitmap clippedBitmap =
- Bitmap.createBitmap(
- bitmap, offsetLeft, offsetTop, clippedWidth, clippedHeight, matrix, true);
+ 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();
clippedBitmap = BitmapResizer.resizeForEnrichedCalling(clippedBitmap);
- // 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.
+ // 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);
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
new file mode 100644
index 000000000..99766aac5
--- /dev/null
+++ b/java/com/android/dialer/callcomposer/proto/call_composer_contact.proto
@@ -0,0 +1,18 @@
+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 14703a44c..c3f1102d1 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_theme_color_dark"
+ android:background="@color/dialer_secondary_color"
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 15562476a..77c7a58d1 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|textCapSentences"
+ android:inputType="textShortMessage"
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 1a57f87ce..4fa52ad63 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, 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>
+ <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>
</resources>
diff --git a/java/com/android/dialer/callcomposer/res/values/styles.xml b/java/com/android/dialer/callcomposer/res/values/styles.xml
index 16e7fb622..29ac4ddaa 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="DialerThemeBase.NoActionBar">
+ <style name="Theme.AppCompat.CallComposer" parent="Theme.AppCompat.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>