Merge "[Ongoing Call Chip] Ensure the chip is at least 48x48dp for accessibility." into sc-dev

This commit is contained in:
Caitlin Cassidy
2021-05-14 11:59:02 +00:00
committed by Android (Google) Code Review
5 changed files with 45 additions and 40 deletions

View File

@@ -13,37 +13,45 @@
~ See the License for the specific language governing permissions and ~ See the License for the specific language governing permissions and
~ limitations under the License. ~ limitations under the License.
--> -->
<LinearLayout <!-- Have the wrapper frame layout match the parent height so that we get a larger touch area for
the chip. -->
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ongoing_call_chip" android:id="@+id/ongoing_call_chip"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/ongoing_appops_chip_height" android:layout_height="match_parent"
android:layout_gravity="center_vertical|start" android:layout_gravity="center_vertical|start"
android:gravity="center_vertical"
android:background="@drawable/ongoing_call_chip_bg"
android:paddingStart="@dimen/ongoing_call_chip_side_padding"
android:paddingEnd="@dimen/ongoing_call_chip_side_padding"
android:contentDescription="@string/ongoing_phone_call_content_description"
> >
<LinearLayout
<ImageView
android:src="@*android:drawable/ic_phone"
android:layout_width="@dimen/ongoing_call_chip_icon_size"
android:layout_height="@dimen/ongoing_call_chip_icon_size"
android:tint="?android:attr/colorPrimary"
/>
<!-- TODO(b/183229367): The text in this view isn't quite centered within the chip. -->
<com.android.systemui.statusbar.phone.ongoingcall.OngoingCallChronometer
android:id="@+id/ongoing_call_chip_time"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="@dimen/ongoing_appops_chip_height"
android:singleLine="true" android:layout_gravity="center_vertical"
android:gravity="center|start" android:gravity="center"
android:paddingStart="@dimen/ongoing_call_chip_icon_text_padding" android:background="@drawable/ongoing_call_chip_bg"
android:textAppearance="@android:style/TextAppearance.Material.Small" android:paddingStart="@dimen/ongoing_call_chip_side_padding"
android:fontFamily="@*android:string/config_headlineFontFamily" android:paddingEnd="@dimen/ongoing_call_chip_side_padding"
android:textColor="?android:attr/colorPrimary" android:contentDescription="@string/ongoing_phone_call_content_description"
/> android:minWidth="@dimen/min_clickable_item_size"
>
</LinearLayout> <ImageView
android:src="@*android:drawable/ic_phone"
android:layout_width="@dimen/ongoing_call_chip_icon_size"
android:layout_height="@dimen/ongoing_call_chip_icon_size"
android:tint="?android:attr/colorPrimary"
/>
<com.android.systemui.statusbar.phone.ongoingcall.OngoingCallChronometer
android:id="@+id/ongoing_call_chip_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:gravity="center|start"
android:paddingStart="@dimen/ongoing_call_chip_icon_text_padding"
android:textAppearance="@android:style/TextAppearance.Material.Small"
android:fontFamily="@*android:string/config_headlineFontFamily"
android:textColor="?android:attr/colorPrimary"
/>
</LinearLayout>
</FrameLayout>

View File

@@ -81,7 +81,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
private NetworkController mNetworkController; private NetworkController mNetworkController;
private LinearLayout mSystemIconArea; private LinearLayout mSystemIconArea;
private View mClockView; private View mClockView;
private ViewGroup mOngoingCallChip; private View mOngoingCallChip;
private View mNotificationIconAreaInner; private View mNotificationIconAreaInner;
private View mCenteredIconArea; private View mCenteredIconArea;
private int mDisabled1; private int mDisabled1;

View File

@@ -23,7 +23,7 @@ import android.app.Notification
import android.app.Notification.CallStyle.CALL_TYPE_ONGOING import android.app.Notification.CallStyle.CALL_TYPE_ONGOING
import android.content.Intent import android.content.Intent
import android.util.Log import android.util.Log
import android.view.ViewGroup import android.view.View
import android.widget.Chronometer import android.widget.Chronometer
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.animation.ActivityLaunchAnimator import com.android.systemui.animation.ActivityLaunchAnimator
@@ -57,7 +57,7 @@ class OngoingCallController @Inject constructor(
private var ongoingCallInfo: OngoingCallInfo? = null private var ongoingCallInfo: OngoingCallInfo? = null
/** True if the application managing the call is visible to the user. */ /** True if the application managing the call is visible to the user. */
private var isCallAppVisible: Boolean = true private var isCallAppVisible: Boolean = true
private var chipView: ViewGroup? = null private var chipView: View? = null
private var uidObserver: IUidObserver.Stub? = null private var uidObserver: IUidObserver.Stub? = null
private val mListeners: MutableList<OngoingCallListener> = mutableListOf() private val mListeners: MutableList<OngoingCallListener> = mutableListOf()
@@ -105,7 +105,7 @@ class OngoingCallController @Inject constructor(
* *
* Should only be called from [CollapsedStatusBarFragment]. * Should only be called from [CollapsedStatusBarFragment].
*/ */
fun setChipView(chipView: ViewGroup) { fun setChipView(chipView: View) {
this.chipView = chipView this.chipView = chipView
if (hasOngoingCall()) { if (hasOngoingCall()) {
updateChip() updateChip()

View File

@@ -20,7 +20,6 @@ import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.LinearLayout
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
@@ -48,8 +47,7 @@ class OngoingCallChronometerTest : SysuiTestCase() {
fun setUp() { fun setUp() {
allowTestableLooperAsMainThread() allowTestableLooperAsMainThread()
TestableLooper.get(this).runWithLooper { TestableLooper.get(this).runWithLooper {
val chipView = LayoutInflater.from(mContext) val chipView = LayoutInflater.from(mContext).inflate(R.layout.ongoing_call_chip, null)
.inflate(R.layout.ongoing_call_chip, null) as LinearLayout
textView = chipView.findViewById(R.id.ongoing_call_chip_time)!! textView = chipView.findViewById(R.id.ongoing_call_chip_time)!!
measureTextView() measureTextView()
calculateDoesNotFixText() calculateDoesNotFixText()

View File

@@ -27,6 +27,7 @@ import android.service.notification.NotificationListenerService.REASON_USER_STOP
import android.testing.AndroidTestingRunner import android.testing.AndroidTestingRunner
import android.testing.TestableLooper import android.testing.TestableLooper
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.internal.logging.testing.UiEventLoggerFake import com.android.internal.logging.testing.UiEventLoggerFake
@@ -80,14 +81,13 @@ class OngoingCallControllerTest : SysuiTestCase() {
@Mock private lateinit var mockActivityStarter: ActivityStarter @Mock private lateinit var mockActivityStarter: ActivityStarter
@Mock private lateinit var mockIActivityManager: IActivityManager @Mock private lateinit var mockIActivityManager: IActivityManager
private lateinit var chipView: LinearLayout private lateinit var chipView: View
@Before @Before
fun setUp() { fun setUp() {
allowTestableLooperAsMainThread() allowTestableLooperAsMainThread()
TestableLooper.get(this).runWithLooper { TestableLooper.get(this).runWithLooper {
chipView = LayoutInflater.from(mContext) chipView = LayoutInflater.from(mContext).inflate(R.layout.ongoing_call_chip, null)
.inflate(R.layout.ongoing_call_chip, null) as LinearLayout
} }
MockitoAnnotations.initMocks(this) MockitoAnnotations.initMocks(this)
@@ -225,10 +225,9 @@ class OngoingCallControllerTest : SysuiTestCase() {
// Start an ongoing call. // Start an ongoing call.
notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry()) notifCollectionListener.onEntryUpdated(createOngoingCallNotifEntry())
lateinit var newChipView: LinearLayout lateinit var newChipView: View
TestableLooper.get(this).runWithLooper { TestableLooper.get(this).runWithLooper {
newChipView = LayoutInflater.from(mContext) newChipView = LayoutInflater.from(mContext).inflate(R.layout.ongoing_call_chip, null)
.inflate(R.layout.ongoing_call_chip, null) as LinearLayout
} }
// Change the chip view associated with the controller. // Change the chip view associated with the controller.