Merge "Enable/disable a few things in debuggable builds"

This commit is contained in:
TreeHugger Robot
2019-03-26 21:16:27 +00:00
committed by Android (Google) Code Review
4 changed files with 40 additions and 5 deletions

View File

@@ -22,9 +22,11 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.app.Activity;
import android.os.Build;
import android.view.Window;
import android.view.WindowManager;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
@@ -41,9 +43,14 @@ public class HideNonSystemOverlayMixin implements LifecycleObserver {
mActivity = activity;
}
@VisibleForTesting
boolean isEnabled() {
return !Build.IS_DEBUGGABLE;
}
@OnLifecycleEvent(ON_START)
public void onStart() {
if (mActivity == null) {
if (mActivity == null || !isEnabled()) {
return;
}
mActivity.getWindow().addSystemFlags(SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
@@ -53,7 +60,7 @@ public class HideNonSystemOverlayMixin implements LifecycleObserver {
@OnLifecycleEvent(ON_STOP)
public void onStop() {
if (mActivity == null) {
if (mActivity == null || !isEnabled()) {
return;
}
final Window window = mActivity.getWindow();

View File

@@ -17,6 +17,7 @@
package com.android.settings.development.featureflags;
import android.content.Context;
import android.os.Build;
import android.util.FeatureFlagUtils;
import androidx.preference.PreferenceGroup;
@@ -39,7 +40,7 @@ public class FeatureFlagsPreferenceController extends BasePreferenceController
@Override
public int getAvailabilityStatus() {
return AVAILABLE;
return Build.IS_DEBUGGABLE ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override

View File

@@ -20,6 +20,7 @@ import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTE
import static com.google.common.truth.Truth.assertThat;
import android.os.Build;
import android.os.Bundle;
import android.view.WindowManager;
@@ -33,8 +34,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
public class HideNonSystemOverlayMixinTest {
@@ -67,6 +68,20 @@ public class HideNonSystemOverlayMixinTest {
.isEqualTo(0);
}
@Test
public void isEnabled_debug_false() {
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", true);
assertThat(new HideNonSystemOverlayMixin(null).isEnabled()).isFalse();
}
@Test
public void isEnabled_user_true() {
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
assertThat(new HideNonSystemOverlayMixin(null).isEnabled()).isTrue();
}
public static class TestActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {

View File

@@ -17,6 +17,7 @@
package com.android.settings.development.featureflags;
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
import static com.google.common.truth.Truth.assertThat;
@@ -26,6 +27,8 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
import android.os.Build;
import android.os.SystemProperties;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
@@ -37,6 +40,7 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
public class FeatureFlagPreferenceControllerTest {
@@ -59,10 +63,18 @@ public class FeatureFlagPreferenceControllerTest {
}
@Test
public void getAvailability_available() {
public void getAvailability_debug_available() {
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", true);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@Test
public void getAvailability_user_unavailable() {
ReflectionHelpers.setStaticField(Build.class, "IS_DEBUGGABLE", false);
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
}
@Test
public void onStart_shouldRefreshFeatureFlags() {
mController.onStart();