Add ability to handle onActivityResult for AbstractPreferenceController in DashboardFragment
* AbstractPreferenceController now can implement OnActivityResultListener to receive callback from DashboardFragment#onActivityResult() Bug: 270096758 Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.dashboard.DashboardFragmentTest Change-Id: Ib734287c6fe06fcdde3b2fe6ae9f4b778020b60b
This commit is contained in:
@@ -33,10 +33,12 @@ import static org.mockito.Mockito.when;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.content.pm.ProviderInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.preference.PreferenceManager.OnActivityResultListener;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
@@ -356,6 +358,19 @@ public class DashboardFragmentTest {
|
||||
assertThat(pref).isInstanceOf(PrimarySwitchPreference.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onActivityResult_test() {
|
||||
final int requestCode = 10;
|
||||
final int resultCode = 1;
|
||||
final TestOnActivityResultPreferenceController activityResultPref = spy(
|
||||
new TestOnActivityResultPreferenceController(mContext));
|
||||
mTestFragment.addPreferenceController(activityResultPref);
|
||||
|
||||
mTestFragment.onActivityResult(requestCode, resultCode, null);
|
||||
|
||||
verify(activityResultPref).onActivityResult(requestCode, resultCode, null);
|
||||
}
|
||||
|
||||
public static class TestPreferenceController extends AbstractPreferenceController
|
||||
implements PreferenceControllerMixin {
|
||||
|
||||
@@ -390,6 +405,19 @@ public class DashboardFragmentTest {
|
||||
}
|
||||
}
|
||||
|
||||
public static class TestOnActivityResultPreferenceController extends
|
||||
TestPreferenceController implements OnActivityResultListener {
|
||||
|
||||
private TestOnActivityResultPreferenceController(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
private static class TestFragment extends DashboardFragment {
|
||||
|
||||
private final PreferenceManager mPreferenceManager;
|
||||
|
Reference in New Issue
Block a user