Merge "Move bouncer to bottom of screen when in one handed mode." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
8d3ce701b1
@@ -20,4 +20,11 @@
|
||||
|
||||
0x50 = bottom, 0x01 = center_horizontal -->
|
||||
<integer name="keyguard_host_view_gravity">0x51</integer>
|
||||
|
||||
<!-- Gravity for the keyguard when it is in one-handed mode. This is ignored unless
|
||||
can_use_one_handed_bouncer is true, _and_ the one handed bouncer is enabled in the device
|
||||
config (com.android.internal.R.bool.config_enableOneHandedKeyguard)
|
||||
|
||||
0x50 = bottom, 0x01 = center_horizontal -->
|
||||
<integer name="keyguard_host_view_one_handed_gravity">0x51</integer>
|
||||
</resources>
|
||||
|
||||
@@ -475,7 +475,18 @@ public class KeyguardHostViewController extends ViewController<KeyguardHostView>
|
||||
* configuration.
|
||||
*/
|
||||
public void updateResources() {
|
||||
int gravity = mView.getResources().getInteger(R.integer.keyguard_host_view_gravity);
|
||||
int gravity;
|
||||
|
||||
Resources resources = mView.getResources();
|
||||
|
||||
if (resources.getBoolean(R.bool.can_use_one_handed_bouncer)
|
||||
&& resources.getBoolean(
|
||||
com.android.internal.R.bool.config_enableOneHandedKeyguard)) {
|
||||
gravity = resources.getInteger(
|
||||
R.integer.keyguard_host_view_one_handed_gravity);
|
||||
} else {
|
||||
gravity = resources.getInteger(R.integer.keyguard_host_view_gravity);
|
||||
}
|
||||
|
||||
// Android SysUI uses a FrameLayout as the top-level, but Auto uses RelativeLayout.
|
||||
// We're just changing the gravity here though (which can't be applied to RelativeLayout),
|
||||
|
||||
@@ -29,6 +29,7 @@ import android.telephony.TelephonyManager;
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
import android.testing.AndroidTestingRunner;
|
||||
import android.testing.TestableLooper;
|
||||
import android.testing.TestableResources;
|
||||
import android.view.Gravity;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
@@ -49,7 +50,6 @@ import org.mockito.junit.MockitoRule;
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
@TestableLooper.RunWithLooper
|
||||
public class KeyguardHostViewControllerTest extends SysuiTestCase {
|
||||
|
||||
@Mock
|
||||
private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||
|
||||
@@ -68,14 +68,21 @@ public class KeyguardHostViewControllerTest extends SysuiTestCase {
|
||||
@Rule
|
||||
public MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||
|
||||
private TestableResources mTestableResources;
|
||||
private KeyguardHostViewController mKeyguardHostViewController;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
mContext.ensureTestableResources();
|
||||
mTestableResources = mContext.getOrCreateTestableResources();
|
||||
|
||||
mKeyguardHostView = new KeyguardHostView(mContext);
|
||||
|
||||
// Explicitly disable one handed keyguard.
|
||||
mTestableResources.addOverride(
|
||||
R.bool.can_use_one_handed_bouncer, false);
|
||||
mTestableResources.addOverride(
|
||||
com.android.internal.R.bool.config_enableOneHandedKeyguard, false);
|
||||
|
||||
when(mKeyguardSecurityContainerControllerFactory.create(any(
|
||||
KeyguardSecurityContainer.SecurityCallback.class)))
|
||||
.thenReturn(mKeyguardSecurityContainerController);
|
||||
@@ -106,7 +113,7 @@ public class KeyguardHostViewControllerTest extends SysuiTestCase {
|
||||
mKeyguardHostView.setLayoutParams(lp);
|
||||
|
||||
// Set initial gravity
|
||||
mContext.getOrCreateTestableResources().addOverride(R.integer.keyguard_host_view_gravity,
|
||||
mTestableResources.addOverride(R.integer.keyguard_host_view_gravity,
|
||||
Gravity.CENTER);
|
||||
|
||||
// Kick off the initial pass...
|
||||
@@ -116,7 +123,7 @@ public class KeyguardHostViewControllerTest extends SysuiTestCase {
|
||||
Gravity.CENTER);
|
||||
|
||||
// Now simulate a config change
|
||||
mContext.getOrCreateTestableResources().addOverride(R.integer.keyguard_host_view_gravity,
|
||||
mTestableResources.addOverride(R.integer.keyguard_host_view_gravity,
|
||||
Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
|
||||
|
||||
mKeyguardHostViewController.updateResources();
|
||||
@@ -125,6 +132,43 @@ public class KeyguardHostViewControllerTest extends SysuiTestCase {
|
||||
Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGravityUsesOneHandGravityWhenApplicable() {
|
||||
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
mKeyguardHostView.setLayoutParams(lp);
|
||||
|
||||
mTestableResources.addOverride(
|
||||
R.integer.keyguard_host_view_gravity,
|
||||
Gravity.CENTER);
|
||||
mTestableResources.addOverride(
|
||||
R.integer.keyguard_host_view_one_handed_gravity,
|
||||
Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
|
||||
|
||||
// Start disabled.
|
||||
mTestableResources.addOverride(
|
||||
R.bool.can_use_one_handed_bouncer, false);
|
||||
mTestableResources.addOverride(
|
||||
com.android.internal.R.bool.config_enableOneHandedKeyguard, false);
|
||||
|
||||
mKeyguardHostViewController.init();
|
||||
assertEquals(
|
||||
((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity,
|
||||
Gravity.CENTER);
|
||||
|
||||
// And enable
|
||||
mTestableResources.addOverride(
|
||||
R.bool.can_use_one_handed_bouncer, true);
|
||||
mTestableResources.addOverride(
|
||||
com.android.internal.R.bool.config_enableOneHandedKeyguard, true);
|
||||
|
||||
mKeyguardHostViewController.updateResources();
|
||||
assertEquals(
|
||||
((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity,
|
||||
Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateKeyguardPositionDelegatesToSecurityContainer() {
|
||||
mKeyguardHostViewController.updateKeyguardPosition(1.0f);
|
||||
|
||||
Reference in New Issue
Block a user