Merge "[Ongoing Call Chip] Ensure the chip is at least 48x48dp for accessibility." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
b8f98cfd7b
@@ -13,18 +13,26 @@
|
|||||||
~ 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"
|
>
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="@dimen/ongoing_appops_chip_height"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:gravity="center"
|
||||||
android:background="@drawable/ongoing_call_chip_bg"
|
android:background="@drawable/ongoing_call_chip_bg"
|
||||||
android:paddingStart="@dimen/ongoing_call_chip_side_padding"
|
android:paddingStart="@dimen/ongoing_call_chip_side_padding"
|
||||||
android:paddingEnd="@dimen/ongoing_call_chip_side_padding"
|
android:paddingEnd="@dimen/ongoing_call_chip_side_padding"
|
||||||
android:contentDescription="@string/ongoing_phone_call_content_description"
|
android:contentDescription="@string/ongoing_phone_call_content_description"
|
||||||
>
|
android:minWidth="@dimen/min_clickable_item_size"
|
||||||
|
>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:src="@*android:drawable/ic_phone"
|
android:src="@*android:drawable/ic_phone"
|
||||||
@@ -33,7 +41,6 @@
|
|||||||
android:tint="?android:attr/colorPrimary"
|
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
|
<com.android.systemui.statusbar.phone.ongoingcall.OngoingCallChronometer
|
||||||
android:id="@+id/ongoing_call_chip_time"
|
android:id="@+id/ongoing_call_chip_time"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -46,4 +53,5 @@
|
|||||||
android:textColor="?android:attr/colorPrimary"
|
android:textColor="?android:attr/colorPrimary"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
</FrameLayout>
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user