Loading src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java +0 −40 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.settings.fuelgauge; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; Loading @@ -32,8 +31,6 @@ import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.utils.ThreadUtils; import java.util.HashMap; public class TopLevelBatteryPreferenceController extends BasePreferenceController implements LifecycleObserver, OnStart, OnStop, BatteryPreferenceController { Loading @@ -43,13 +40,9 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle Preference mPreference; private final BatteryBroadcastReceiver mBatteryBroadcastReceiver; private BatteryInfo mBatteryInfo; private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider; private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider; private String mBatteryStatusLabel; @VisibleForTesting protected static HashMap<String, ComponentName> sReplacingActivityMap = new HashMap<>(); public TopLevelBatteryPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(mContext); Loading @@ -63,8 +56,6 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle }, true /* shortString */); }); mBatterySettingsFeatureProvider = FeatureFactory.getFactory(context) .getBatterySettingsFeatureProvider(context); mBatteryStatusFeatureProvider = FeatureFactory.getFactory(context) .getBatteryStatusFeatureProvider(context); } Loading @@ -81,37 +72,6 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle mPreference = screen.findPreference(getPreferenceKey()); } @Override public boolean handlePreferenceTreeClick(Preference preference) { String prefFrag = preference.getFragment(); if (prefFrag == null || prefFrag.isEmpty()) { // Not a redirect, so use the default. return super.handlePreferenceTreeClick(preference); } ComponentName currentFragmentName = convertClassPathToComponentName(prefFrag); if (currentFragmentName == null) { return super.handlePreferenceTreeClick(preference); } ComponentName replacingActivity; if (sReplacingActivityMap.containsKey(prefFrag)) { replacingActivity = sReplacingActivityMap.get(prefFrag); } else { replacingActivity = mBatterySettingsFeatureProvider.getReplacingActivity( currentFragmentName); sReplacingActivityMap.put(prefFrag, replacingActivity); } if (replacingActivity == null || currentFragmentName.compareTo(replacingActivity) == 0) { return super.handlePreferenceTreeClick(preference); } Intent intent = new Intent(); intent.setComponent(replacingActivity); mContext.startActivity(intent); return true; } @Override public void onStart() { mBatteryBroadcastReceiver.register(); Loading tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java +0 −67 Original line number Diff line number Diff line Loading @@ -21,11 +21,7 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -37,14 +33,11 @@ import android.content.Intent; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; Loading @@ -53,24 +46,14 @@ import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class TopLevelBatteryPreferenceControllerTest { private Context mContext; private FakeFeatureFactory mFeatureFactory; private TopLevelBatteryPreferenceController mController; private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider; private ArgumentCaptor<Intent> mIntentArgumentCaptor; @Before public void setUp() { MockitoAnnotations.initMocks(this); mFeatureFactory = FakeFeatureFactory.setupForTest(); mContext = spy(Robolectric.setupActivity(Activity.class)); mController = new TopLevelBatteryPreferenceController(mContext, "test_key"); mBatterySettingsFeatureProvider = mFeatureFactory.batterySettingsFeatureProvider; } @After public void cleanUp() { TopLevelBatteryPreferenceController.sReplacingActivityMap.clear(); } @Test Loading @@ -84,56 +67,6 @@ public class TopLevelBatteryPreferenceControllerTest { assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void handlePreferenceTreeClick_noFragment_noCustomActivityCalled() { Preference preference = new Preference(mContext); assertThat(mController.handlePreferenceTreeClick(preference)).isFalse(); } @Test public void handlePreferenceTreeClick_sameActivityReturned_noCustomActivityCalled() { String fragmentPath = "my.fragment.ClassName"; Preference preference = mock(Preference.class); when(preference.getFragment()).thenReturn(fragmentPath); ComponentName pathName = mController.convertClassPathToComponentName(fragmentPath); when(mBatterySettingsFeatureProvider.getReplacingActivity(any())).thenReturn(pathName); assertThat(mController.handlePreferenceTreeClick(preference)).isFalse(); } @Test @Ignore public void handlePreferenceTreeClick_newActivityReturned_newActivityRedirected() { String fragmentPath = "my.fragment.ClassName"; Preference preference = mock(Preference.class); when(preference.getFragment()).thenReturn(fragmentPath); String newFragmentPath = "my.fragment.NewClassName"; ComponentName newPathName = mController.convertClassPathToComponentName(newFragmentPath); when(mBatterySettingsFeatureProvider.getReplacingActivity(any())).thenReturn( newPathName); doNothing().when(mContext).startActivity(mIntentArgumentCaptor.capture()); assertThat(mIntentArgumentCaptor.getValue().getComponent()).isEqualTo(newPathName); assertThat(mController.handlePreferenceTreeClick(preference)).isTrue(); } @Test public void handlePreferenceTreeClick_calledMultipleTimes_fetchedFromCache() { String fragmentPath = "my.fragment.ClassName"; Preference preference = mock(Preference.class); when(preference.getFragment()).thenReturn(fragmentPath); String newFragmentPath = "my.fragment.NewClassName"; ComponentName newPathName = mController.convertClassPathToComponentName(newFragmentPath); when(mBatterySettingsFeatureProvider.getReplacingActivity(any())).thenReturn( newPathName); doNothing().when(mContext).startActivity(any()); assertThat(mController.handlePreferenceTreeClick(preference)).isTrue(); assertThat(mController.handlePreferenceTreeClick(preference)).isTrue(); verify(mBatterySettingsFeatureProvider, times(1)).getReplacingActivity(any()); } @Test public void convertClassPathToComponentName_nullInput_returnsNull() { assertThat(mController.convertClassPathToComponentName(null)).isNull(); Loading Loading
src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java +0 −40 Original line number Diff line number Diff line Loading @@ -18,7 +18,6 @@ package com.android.settings.fuelgauge; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import androidx.annotation.VisibleForTesting; import androidx.preference.Preference; Loading @@ -32,8 +31,6 @@ import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.utils.ThreadUtils; import java.util.HashMap; public class TopLevelBatteryPreferenceController extends BasePreferenceController implements LifecycleObserver, OnStart, OnStop, BatteryPreferenceController { Loading @@ -43,13 +40,9 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle Preference mPreference; private final BatteryBroadcastReceiver mBatteryBroadcastReceiver; private BatteryInfo mBatteryInfo; private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider; private BatteryStatusFeatureProvider mBatteryStatusFeatureProvider; private String mBatteryStatusLabel; @VisibleForTesting protected static HashMap<String, ComponentName> sReplacingActivityMap = new HashMap<>(); public TopLevelBatteryPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(mContext); Loading @@ -63,8 +56,6 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle }, true /* shortString */); }); mBatterySettingsFeatureProvider = FeatureFactory.getFactory(context) .getBatterySettingsFeatureProvider(context); mBatteryStatusFeatureProvider = FeatureFactory.getFactory(context) .getBatteryStatusFeatureProvider(context); } Loading @@ -81,37 +72,6 @@ public class TopLevelBatteryPreferenceController extends BasePreferenceControlle mPreference = screen.findPreference(getPreferenceKey()); } @Override public boolean handlePreferenceTreeClick(Preference preference) { String prefFrag = preference.getFragment(); if (prefFrag == null || prefFrag.isEmpty()) { // Not a redirect, so use the default. return super.handlePreferenceTreeClick(preference); } ComponentName currentFragmentName = convertClassPathToComponentName(prefFrag); if (currentFragmentName == null) { return super.handlePreferenceTreeClick(preference); } ComponentName replacingActivity; if (sReplacingActivityMap.containsKey(prefFrag)) { replacingActivity = sReplacingActivityMap.get(prefFrag); } else { replacingActivity = mBatterySettingsFeatureProvider.getReplacingActivity( currentFragmentName); sReplacingActivityMap.put(prefFrag, replacingActivity); } if (replacingActivity == null || currentFragmentName.compareTo(replacingActivity) == 0) { return super.handlePreferenceTreeClick(preference); } Intent intent = new Intent(); intent.setComponent(replacingActivity); mContext.startActivity(intent); return true; } @Override public void onStart() { mBatteryBroadcastReceiver.register(); Loading
tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java +0 −67 Original line number Diff line number Diff line Loading @@ -21,11 +21,7 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.any; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -37,14 +33,11 @@ import android.content.Intent; import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.testutils.FakeFeatureFactory; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.MockitoAnnotations; import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; Loading @@ -53,24 +46,14 @@ import org.robolectric.annotation.Config; @RunWith(RobolectricTestRunner.class) public class TopLevelBatteryPreferenceControllerTest { private Context mContext; private FakeFeatureFactory mFeatureFactory; private TopLevelBatteryPreferenceController mController; private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider; private ArgumentCaptor<Intent> mIntentArgumentCaptor; @Before public void setUp() { MockitoAnnotations.initMocks(this); mFeatureFactory = FakeFeatureFactory.setupForTest(); mContext = spy(Robolectric.setupActivity(Activity.class)); mController = new TopLevelBatteryPreferenceController(mContext, "test_key"); mBatterySettingsFeatureProvider = mFeatureFactory.batterySettingsFeatureProvider; } @After public void cleanUp() { TopLevelBatteryPreferenceController.sReplacingActivityMap.clear(); } @Test Loading @@ -84,56 +67,6 @@ public class TopLevelBatteryPreferenceControllerTest { assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void handlePreferenceTreeClick_noFragment_noCustomActivityCalled() { Preference preference = new Preference(mContext); assertThat(mController.handlePreferenceTreeClick(preference)).isFalse(); } @Test public void handlePreferenceTreeClick_sameActivityReturned_noCustomActivityCalled() { String fragmentPath = "my.fragment.ClassName"; Preference preference = mock(Preference.class); when(preference.getFragment()).thenReturn(fragmentPath); ComponentName pathName = mController.convertClassPathToComponentName(fragmentPath); when(mBatterySettingsFeatureProvider.getReplacingActivity(any())).thenReturn(pathName); assertThat(mController.handlePreferenceTreeClick(preference)).isFalse(); } @Test @Ignore public void handlePreferenceTreeClick_newActivityReturned_newActivityRedirected() { String fragmentPath = "my.fragment.ClassName"; Preference preference = mock(Preference.class); when(preference.getFragment()).thenReturn(fragmentPath); String newFragmentPath = "my.fragment.NewClassName"; ComponentName newPathName = mController.convertClassPathToComponentName(newFragmentPath); when(mBatterySettingsFeatureProvider.getReplacingActivity(any())).thenReturn( newPathName); doNothing().when(mContext).startActivity(mIntentArgumentCaptor.capture()); assertThat(mIntentArgumentCaptor.getValue().getComponent()).isEqualTo(newPathName); assertThat(mController.handlePreferenceTreeClick(preference)).isTrue(); } @Test public void handlePreferenceTreeClick_calledMultipleTimes_fetchedFromCache() { String fragmentPath = "my.fragment.ClassName"; Preference preference = mock(Preference.class); when(preference.getFragment()).thenReturn(fragmentPath); String newFragmentPath = "my.fragment.NewClassName"; ComponentName newPathName = mController.convertClassPathToComponentName(newFragmentPath); when(mBatterySettingsFeatureProvider.getReplacingActivity(any())).thenReturn( newPathName); doNothing().when(mContext).startActivity(any()); assertThat(mController.handlePreferenceTreeClick(preference)).isTrue(); assertThat(mController.handlePreferenceTreeClick(preference)).isTrue(); verify(mBatterySettingsFeatureProvider, times(1)).getReplacingActivity(any()); } @Test public void convertClassPathToComponentName_nullInput_returnsNull() { assertThat(mController.convertClassPathToComponentName(null)).isNull(); Loading