Remove the replaced activity checking to impact launching performance
Bug: 209081502
Test: make SettingsRoboTests
Change-Id: Id8e2144a5965601be9c290bc4df6db0d0beb0917
Merged-In: Id8e2144a5965601be9c290bc4df6db0d0beb0917
diff --git a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
index 0947938..cbfbd34 100644
--- a/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceController.java
@@ -18,7 +18,6 @@
import android.content.ComponentName;
import android.content.Context;
-import android.content.Intent;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
@@ -32,8 +31,6 @@
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 {
@@ -43,13 +40,9 @@
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);
@@ -63,8 +56,6 @@
}, true /* shortString */);
});
- mBatterySettingsFeatureProvider = FeatureFactory.getFactory(context)
- .getBatterySettingsFeatureProvider(context);
mBatteryStatusFeatureProvider = FeatureFactory.getFactory(context)
.getBatteryStatusFeatureProvider(context);
}
@@ -82,37 +73,6 @@
}
@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(currentFragmentName);
- mContext.startActivity(intent);
- return true;
- }
-
- @Override
public void onStart() {
mBatteryBroadcastReceiver.register();
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
index eef6988..9e563f2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/TopLevelBatteryPreferenceControllerTest.java
@@ -21,11 +21,7 @@
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;
@@ -36,9 +32,7 @@
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.Test;
import org.junit.runner.RunWith;
@@ -50,23 +44,13 @@
@RunWith(RobolectricTestRunner.class)
public class TopLevelBatteryPreferenceControllerTest {
private Context mContext;
- private FakeFeatureFactory mFeatureFactory;
private TopLevelBatteryPreferenceController mController;
- private BatterySettingsFeatureProvider mBatterySettingsFeatureProvider;
@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
@@ -81,54 +65,6 @@
}
@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
- 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(any());
-
- 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();
}