Loading packages/SystemUI/res-keyguard/values/integers.xml +7 −0 Original line number Diff line number Diff line Loading @@ -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> packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java +12 −1 Original line number Diff line number Diff line Loading @@ -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), Loading packages/SystemUI/tests/src/com/android/keyguard/KeyguardHostViewControllerTest.java +48 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -49,7 +50,6 @@ import org.mockito.junit.MockitoRule; @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper public class KeyguardHostViewControllerTest extends SysuiTestCase { @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor; Loading @@ -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); Loading Loading @@ -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... Loading @@ -116,9 +123,46 @@ 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(); assertEquals( ((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity, 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, Loading Loading
packages/SystemUI/res-keyguard/values/integers.xml +7 −0 Original line number Diff line number Diff line Loading @@ -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>
packages/SystemUI/src/com/android/keyguard/KeyguardHostViewController.java +12 −1 Original line number Diff line number Diff line Loading @@ -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), Loading
packages/SystemUI/tests/src/com/android/keyguard/KeyguardHostViewControllerTest.java +48 −4 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -49,7 +50,6 @@ import org.mockito.junit.MockitoRule; @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper public class KeyguardHostViewControllerTest extends SysuiTestCase { @Mock private KeyguardUpdateMonitor mKeyguardUpdateMonitor; Loading @@ -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); Loading Loading @@ -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... Loading @@ -116,9 +123,46 @@ 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(); assertEquals( ((FrameLayout.LayoutParams) mKeyguardHostView.getLayoutParams()).gravity, 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, Loading