diff options
Diffstat (limited to 'java/com/android/dialer/callcomposer')
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> |