Revert "Adding padding to display the full clock for Burmese language"
This reverts commit a7ef0aca52.
Reason for revert: Causes a crash in SystemUI when starting a dream on tangor.
Change-Id: Ifec36f5e3be035f2c61517ff2256fefbd3c233e7
This commit is contained in:
committed by
Android (Google) Code Review
parent
a7ef0aca52
commit
a6c6e18756
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2023 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<!-- Formatting note: terminate all comments with a period, to avoid breaking
|
||||
the documentation output. To suppress comment lines from the documentation
|
||||
output, insert an eat-comment element after the comment lines.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Whether to add padding at the bottom of the complication clock -->
|
||||
<bool name="dream_overlay_complication_clock_bottom_padding">true</bool>
|
||||
</resources>
|
||||
@@ -1,25 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2023 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<!-- Formatting note: terminate all comments with a period, to avoid breaking
|
||||
the documentation output. To suppress comment lines from the documentation
|
||||
output, insert an eat-comment element after the comment lines.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<!-- Whether to add padding at the bottom of the complication clock -->
|
||||
<bool name="dream_overlay_complication_clock_bottom_padding">false</bool>
|
||||
</resources>
|
||||
@@ -16,51 +16,34 @@
|
||||
package com.android.systemui.shared.shadow
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Resources
|
||||
import android.content.res.TypedArray
|
||||
import android.graphics.Canvas
|
||||
import android.util.AttributeSet
|
||||
import android.widget.TextClock
|
||||
import com.android.systemui.shared.R
|
||||
import com.android.systemui.shared.shadow.DoubleShadowTextHelper.ShadowInfo
|
||||
import com.android.systemui.shared.shadow.DoubleShadowTextHelper.applyShadows
|
||||
import javax.inject.Inject
|
||||
import kotlin.math.floor
|
||||
|
||||
/** Extension of [TextClock] which draws two shadows on the text (ambient and key shadows) */
|
||||
class ResourcesProvider @Inject constructor(private val context: Context) {
|
||||
fun getResources(): Resources {
|
||||
return context.resources
|
||||
}
|
||||
|
||||
fun getBoolean(resourceId: Int): Boolean {
|
||||
return getResources().getBoolean(resourceId)
|
||||
}
|
||||
}
|
||||
|
||||
class DoubleShadowTextClock
|
||||
@JvmOverloads
|
||||
constructor(
|
||||
private val resourcesProvider: ResourcesProvider,
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0,
|
||||
defStyleRes: Int = 0,
|
||||
attributesInput: TypedArray? = null
|
||||
defStyleRes: Int = 0
|
||||
) : TextClock(context, attrs, defStyleAttr, defStyleRes) {
|
||||
private val mAmbientShadowInfo: ShadowInfo
|
||||
private val mKeyShadowInfo: ShadowInfo
|
||||
|
||||
init {
|
||||
var attributes: TypedArray =
|
||||
attributesInput
|
||||
?: context.obtainStyledAttributes(
|
||||
attrs,
|
||||
R.styleable.DoubleShadowTextClock,
|
||||
defStyleAttr,
|
||||
defStyleRes
|
||||
)
|
||||
|
||||
val attributes =
|
||||
context.obtainStyledAttributes(
|
||||
attrs,
|
||||
R.styleable.DoubleShadowTextClock,
|
||||
defStyleAttr,
|
||||
defStyleRes
|
||||
)
|
||||
try {
|
||||
val keyShadowBlur =
|
||||
attributes.getDimensionPixelSize(R.styleable.DoubleShadowTextClock_keyShadowBlur, 0)
|
||||
@@ -115,29 +98,18 @@ constructor(
|
||||
0
|
||||
)
|
||||
if (removeTextDescent) {
|
||||
val addBottomPaddingToClock =
|
||||
resourcesProvider.getBoolean(
|
||||
R.bool.dream_overlay_complication_clock_bottom_padding
|
||||
)
|
||||
val metrics = paint.fontMetrics
|
||||
val padding =
|
||||
if (addBottomPaddingToClock) {
|
||||
textDescentExtraPadding +
|
||||
floor(metrics.descent.toDouble()).toInt() / paddingDividedOffset
|
||||
} else {
|
||||
textDescentExtraPadding - floor(metrics.descent.toDouble()).toInt()
|
||||
}
|
||||
setPaddingRelative(0, 0, 0, padding)
|
||||
setPaddingRelative(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
textDescentExtraPadding - floor(paint.fontMetrics.descent.toDouble()).toInt()
|
||||
)
|
||||
}
|
||||
} finally {
|
||||
attributes.recycle()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val paddingDividedOffset = 2
|
||||
}
|
||||
|
||||
public override fun onDraw(canvas: Canvas) {
|
||||
applyShadows(mKeyShadowInfo, mAmbientShadowInfo, this, canvas) { super.onDraw(canvas) }
|
||||
}
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License
|
||||
*/
|
||||
|
||||
package com.android.systemui.shadow
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.TypedArray
|
||||
import android.testing.AndroidTestingRunner
|
||||
import android.util.AttributeSet
|
||||
import androidx.test.filters.SmallTest
|
||||
import com.android.systemui.R
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.shared.shadow.DoubleShadowTextClock
|
||||
import com.android.systemui.shared.shadow.ResourcesProvider
|
||||
import com.android.systemui.util.mockito.whenever
|
||||
import junit.framework.Assert.assertTrue
|
||||
import org.junit.Before
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.mockito.Mock
|
||||
import org.mockito.MockitoAnnotations
|
||||
import org.mockito.junit.MockitoJUnit
|
||||
import org.mockito.junit.MockitoRule
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner::class)
|
||||
class DoubleShadowTextClockTest : SysuiTestCase() {
|
||||
@get:Rule val mockito: MockitoRule = MockitoJUnit.rule()
|
||||
|
||||
@Mock lateinit var resourcesProvider: ResourcesProvider
|
||||
|
||||
@Mock lateinit var attributes: TypedArray
|
||||
|
||||
private lateinit var context: Context
|
||||
private var attrs: AttributeSet? = null
|
||||
|
||||
@Before
|
||||
fun setup() {
|
||||
MockitoAnnotations.initMocks(this)
|
||||
context = getContext()
|
||||
whenever(attributes.getBoolean(R.styleable.DoubleShadowTextClock_removeTextDescent, false))
|
||||
.thenReturn(true)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAddingPaddingToBottomOfClockWhenConfigIsTrue() {
|
||||
whenever(
|
||||
resourcesProvider.getBoolean(R.bool.dream_overlay_complication_clock_bottom_padding)
|
||||
)
|
||||
.thenReturn(true)
|
||||
|
||||
val doubleShadowTextClock =
|
||||
DoubleShadowTextClock(
|
||||
resourcesProvider = resourcesProvider,
|
||||
context = context,
|
||||
attrs = attrs,
|
||||
attributesInput = attributes
|
||||
)
|
||||
assertTrue(doubleShadowTextClock.paddingBottom > 0)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testRemovingPaddingToBottomOfClockWhenConfigIsFalse() {
|
||||
whenever(
|
||||
resourcesProvider.getBoolean(R.bool.dream_overlay_complication_clock_bottom_padding)
|
||||
)
|
||||
.thenReturn(false)
|
||||
|
||||
val doubleShadowTextClock =
|
||||
DoubleShadowTextClock(
|
||||
resourcesProvider = resourcesProvider,
|
||||
context = context,
|
||||
attrs = attrs,
|
||||
attributesInput = attributes
|
||||
)
|
||||
assertTrue(doubleShadowTextClock.paddingBottom < 0)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user