Loading packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservableActivity.java +5 −3 Original line number Diff line number Diff line Loading @@ -24,20 +24,22 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.annotation.Nullable; import android.app.Activity; import androidx.lifecycle.LifecycleOwner; import android.os.Bundle; import android.os.PersistableBundle; import android.view.Menu; import android.view.MenuItem; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.LifecycleOwner; /** * {@link Activity} that has hooks to observe activity lifecycle events. */ public class ObservableActivity extends Activity implements LifecycleOwner { public class ObservableActivity extends FragmentActivity implements LifecycleOwner { private final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getLifecycle() { public Lifecycle getSettingsLifecycle() { return mLifecycle; } Loading packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservableDialogFragment.java +7 −7 Original line number Diff line number Diff line Loading @@ -22,14 +22,15 @@ import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.app.DialogFragment; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.LifecycleOwner; /** * {@link DialogFragment} that has hooks to observe fragment lifecycle events. */ Loading @@ -37,6 +38,10 @@ public class ObservableDialogFragment extends DialogFragment implements Lifecycl protected final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getSettingsLifecycle() { return mLifecycle; } @Override public void onAttach(Context context) { super.onAttach(context); Loading Loading @@ -100,9 +105,4 @@ public class ObservableDialogFragment extends DialogFragment implements Lifecycl } return lifecycleHandled; } @Override public Lifecycle getLifecycle() { return mLifecycle; } } packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservableFragment.java +4 −3 Original line number Diff line number Diff line Loading @@ -24,19 +24,20 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.annotation.CallSuper; import android.app.Fragment; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.fragment.app.Fragment; import androidx.lifecycle.LifecycleOwner; public class ObservableFragment extends Fragment implements LifecycleOwner { private final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getLifecycle() { public Lifecycle getSettingsLifecycle() { return mLifecycle; } Loading packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservablePreferenceFragment.java +7 −6 Original line number Diff line number Diff line Loading @@ -24,24 +24,25 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.annotation.CallSuper; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import androidx.preference.PreferenceFragment; import androidx.preference.PreferenceScreen; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; /** * {@link PreferenceFragment} that has hooks to observe fragment lifecycle events. * {@link PreferenceFragmentCompat} that has hooks to observe fragment lifecycle events. */ public abstract class ObservablePreferenceFragment extends PreferenceFragment public abstract class ObservablePreferenceFragment extends PreferenceFragmentCompat implements LifecycleOwner { private final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getLifecycle() { public Lifecycle getSettingsLifecycle() { return mLifecycle; } Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java +37 −29 Original line number Diff line number Diff line Loading @@ -18,11 +18,12 @@ package com.android.settingslib.core.lifecycle; import static androidx.lifecycle.Lifecycle.Event.ON_START; import static com.google.common.truth.Truth.assertThat; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.LinearLayout; import com.android.settingslib.SettingsLibRobolectricTestRunner; import com.android.settingslib.core.lifecycle.events.OnAttach; Loading @@ -34,13 +35,15 @@ import com.android.settingslib.core.lifecycle.events.OnPrepareOptionsMenu; import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.testutils.FragmentTestUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.android.controller.ActivityController; import org.robolectric.android.controller.FragmentController; import androidx.lifecycle.LifecycleOwner; @RunWith(SettingsLibRobolectricTestRunner.class) public class LifecycleTest { Loading @@ -64,7 +67,7 @@ public class LifecycleTest { public TestFragment() { mFragObserver = new TestObserver(); getLifecycle().addObserver(mFragObserver); getSettingsLifecycle().addObserver(mFragObserver); } } Loading @@ -74,9 +77,17 @@ public class LifecycleTest { public TestActivity() { mActObserver = new TestObserver(); getLifecycle().addObserver(mActObserver); getSettingsLifecycle().addObserver(mActObserver); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout view = new LinearLayout(this); view.setId(1); setContentView(view); } } public static class TestObserver implements LifecycleObserver, OnAttach, OnStart, OnResume, Loading Loading @@ -151,11 +162,9 @@ public class LifecycleTest { @Test public void runThroughActivityLifecycles_shouldObserveEverything() { ActivityController<TestActivity> ac = Robolectric.buildActivity(TestActivity.class); TestActivity activity = ac.get(); TestActivity activity = ac.setup().get(); ac.start(); assertThat(activity.mActObserver.mOnStartObserved).isTrue(); ac.resume(); assertThat(activity.mActObserver.mOnResumeObserved).isTrue(); activity.onCreateOptionsMenu(null); assertThat(activity.mActObserver.mOnCreateOptionsMenuObserved).isTrue(); Loading @@ -173,50 +182,50 @@ public class LifecycleTest { @Test public void runThroughDialogFragmentLifecycles_shouldObserveEverything() { FragmentController<TestDialogFragment> fragmentController = Robolectric.buildFragment(TestDialogFragment.class); TestDialogFragment fragment = fragmentController.get(); final TestDialogFragment fragment = new TestDialogFragment(); FragmentTestUtils.startFragment(fragment); fragmentController.create().start().resume(); fragment.onCreateOptionsMenu(null, null); fragment.onPrepareOptionsMenu(null); fragment.onOptionsItemSelected(null); fragmentController.pause().stop().destroy(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachHasContext).isTrue(); assertThat(fragment.mFragObserver.mOnStartObserved).isTrue(); assertThat(fragment.mFragObserver.mOnResumeObserved).isTrue(); fragment.onPause(); assertThat(fragment.mFragObserver.mOnPauseObserved).isTrue(); fragment.onStop(); assertThat(fragment.mFragObserver.mOnStopObserved).isTrue(); fragment.onDestroy(); assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); } @Test public void runThroughFragmentLifecycles_shouldObserveEverything() { FragmentController<TestFragment> fragmentController = Robolectric.buildFragment(TestFragment.class); TestFragment fragment = fragmentController.get(); final TestFragment fragment = new TestFragment(); FragmentTestUtils.startFragment(fragment); fragmentController.create().start().resume(); fragment.onCreateOptionsMenu(null, null); fragment.onPrepareOptionsMenu(null); fragment.onOptionsItemSelected(null); fragmentController.pause().stop().destroy(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachHasContext).isTrue(); assertThat(fragment.mFragObserver.mOnStartObserved).isTrue(); assertThat(fragment.mFragObserver.mOnResumeObserved).isTrue(); fragment.onPause(); assertThat(fragment.mFragObserver.mOnPauseObserved).isTrue(); fragment.onStop(); assertThat(fragment.mFragObserver.mOnStopObserved).isTrue(); fragment.onDestroy(); assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); } @Test Loading @@ -237,17 +246,16 @@ public class LifecycleTest { @Test public void onOptionItemSelectedShortCircuitsIfAnObserverHandlesTheMenuItem() { FragmentController<TestFragment> fragmentController = Robolectric.buildFragment(TestFragment.class); TestFragment fragment = fragmentController.get(); OptionItemAccepter accepter = new OptionItemAccepter(); final TestFragment fragment = new TestFragment(); FragmentTestUtils.startFragment(fragment); final OptionItemAccepter accepter = new OptionItemAccepter(); fragment.getLifecycle().addObserver(accepter); fragmentController.create().start().resume(); fragment.onCreateOptionsMenu(null, null); fragment.onPrepareOptionsMenu(null); fragment.onOptionsItemSelected(null); fragmentController.pause().stop().destroy(); assertThat(accepter.wasCalled).isFalse(); } Loading Loading
packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservableActivity.java +5 −3 Original line number Diff line number Diff line Loading @@ -24,20 +24,22 @@ import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.annotation.Nullable; import android.app.Activity; import androidx.lifecycle.LifecycleOwner; import android.os.Bundle; import android.os.PersistableBundle; import android.view.Menu; import android.view.MenuItem; import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.LifecycleOwner; /** * {@link Activity} that has hooks to observe activity lifecycle events. */ public class ObservableActivity extends Activity implements LifecycleOwner { public class ObservableActivity extends FragmentActivity implements LifecycleOwner { private final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getLifecycle() { public Lifecycle getSettingsLifecycle() { return mLifecycle; } Loading
packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservableDialogFragment.java +7 −7 Original line number Diff line number Diff line Loading @@ -22,14 +22,15 @@ import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.app.DialogFragment; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.LifecycleOwner; /** * {@link DialogFragment} that has hooks to observe fragment lifecycle events. */ Loading @@ -37,6 +38,10 @@ public class ObservableDialogFragment extends DialogFragment implements Lifecycl protected final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getSettingsLifecycle() { return mLifecycle; } @Override public void onAttach(Context context) { super.onAttach(context); Loading Loading @@ -100,9 +105,4 @@ public class ObservableDialogFragment extends DialogFragment implements Lifecycl } return lifecycleHandled; } @Override public Lifecycle getLifecycle() { return mLifecycle; } }
packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservableFragment.java +4 −3 Original line number Diff line number Diff line Loading @@ -24,19 +24,20 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.annotation.CallSuper; import android.app.Fragment; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.fragment.app.Fragment; import androidx.lifecycle.LifecycleOwner; public class ObservableFragment extends Fragment implements LifecycleOwner { private final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getLifecycle() { public Lifecycle getSettingsLifecycle() { return mLifecycle; } Loading
packages/SettingsLib/src/com/android/settingslib/core/lifecycle/ObservablePreferenceFragment.java +7 −6 Original line number Diff line number Diff line Loading @@ -24,24 +24,25 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START; import static androidx.lifecycle.Lifecycle.Event.ON_STOP; import android.annotation.CallSuper; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import androidx.preference.PreferenceFragment; import androidx.preference.PreferenceScreen; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceFragmentCompat; import androidx.preference.PreferenceScreen; /** * {@link PreferenceFragment} that has hooks to observe fragment lifecycle events. * {@link PreferenceFragmentCompat} that has hooks to observe fragment lifecycle events. */ public abstract class ObservablePreferenceFragment extends PreferenceFragment public abstract class ObservablePreferenceFragment extends PreferenceFragmentCompat implements LifecycleOwner { private final Lifecycle mLifecycle = new Lifecycle(this); public Lifecycle getLifecycle() { public Lifecycle getSettingsLifecycle() { return mLifecycle; } Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/core/lifecycle/LifecycleTest.java +37 −29 Original line number Diff line number Diff line Loading @@ -18,11 +18,12 @@ package com.android.settingslib.core.lifecycle; import static androidx.lifecycle.Lifecycle.Event.ON_START; import static com.google.common.truth.Truth.assertThat; import androidx.lifecycle.LifecycleOwner; import android.content.Context; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.LinearLayout; import com.android.settingslib.SettingsLibRobolectricTestRunner; import com.android.settingslib.core.lifecycle.events.OnAttach; Loading @@ -34,13 +35,15 @@ import com.android.settingslib.core.lifecycle.events.OnPrepareOptionsMenu; import com.android.settingslib.core.lifecycle.events.OnResume; import com.android.settingslib.core.lifecycle.events.OnStart; import com.android.settingslib.core.lifecycle.events.OnStop; import com.android.settingslib.testutils.FragmentTestUtils; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.Robolectric; import org.robolectric.android.controller.ActivityController; import org.robolectric.android.controller.FragmentController; import androidx.lifecycle.LifecycleOwner; @RunWith(SettingsLibRobolectricTestRunner.class) public class LifecycleTest { Loading @@ -64,7 +67,7 @@ public class LifecycleTest { public TestFragment() { mFragObserver = new TestObserver(); getLifecycle().addObserver(mFragObserver); getSettingsLifecycle().addObserver(mFragObserver); } } Loading @@ -74,9 +77,17 @@ public class LifecycleTest { public TestActivity() { mActObserver = new TestObserver(); getLifecycle().addObserver(mActObserver); getSettingsLifecycle().addObserver(mActObserver); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout view = new LinearLayout(this); view.setId(1); setContentView(view); } } public static class TestObserver implements LifecycleObserver, OnAttach, OnStart, OnResume, Loading Loading @@ -151,11 +162,9 @@ public class LifecycleTest { @Test public void runThroughActivityLifecycles_shouldObserveEverything() { ActivityController<TestActivity> ac = Robolectric.buildActivity(TestActivity.class); TestActivity activity = ac.get(); TestActivity activity = ac.setup().get(); ac.start(); assertThat(activity.mActObserver.mOnStartObserved).isTrue(); ac.resume(); assertThat(activity.mActObserver.mOnResumeObserved).isTrue(); activity.onCreateOptionsMenu(null); assertThat(activity.mActObserver.mOnCreateOptionsMenuObserved).isTrue(); Loading @@ -173,50 +182,50 @@ public class LifecycleTest { @Test public void runThroughDialogFragmentLifecycles_shouldObserveEverything() { FragmentController<TestDialogFragment> fragmentController = Robolectric.buildFragment(TestDialogFragment.class); TestDialogFragment fragment = fragmentController.get(); final TestDialogFragment fragment = new TestDialogFragment(); FragmentTestUtils.startFragment(fragment); fragmentController.create().start().resume(); fragment.onCreateOptionsMenu(null, null); fragment.onPrepareOptionsMenu(null); fragment.onOptionsItemSelected(null); fragmentController.pause().stop().destroy(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachHasContext).isTrue(); assertThat(fragment.mFragObserver.mOnStartObserved).isTrue(); assertThat(fragment.mFragObserver.mOnResumeObserved).isTrue(); fragment.onPause(); assertThat(fragment.mFragObserver.mOnPauseObserved).isTrue(); fragment.onStop(); assertThat(fragment.mFragObserver.mOnStopObserved).isTrue(); fragment.onDestroy(); assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); } @Test public void runThroughFragmentLifecycles_shouldObserveEverything() { FragmentController<TestFragment> fragmentController = Robolectric.buildFragment(TestFragment.class); TestFragment fragment = fragmentController.get(); final TestFragment fragment = new TestFragment(); FragmentTestUtils.startFragment(fragment); fragmentController.create().start().resume(); fragment.onCreateOptionsMenu(null, null); fragment.onPrepareOptionsMenu(null); fragment.onOptionsItemSelected(null); fragmentController.pause().stop().destroy(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachObserved).isTrue(); assertThat(fragment.mFragObserver.mOnAttachHasContext).isTrue(); assertThat(fragment.mFragObserver.mOnStartObserved).isTrue(); assertThat(fragment.mFragObserver.mOnResumeObserved).isTrue(); fragment.onPause(); assertThat(fragment.mFragObserver.mOnPauseObserved).isTrue(); fragment.onStop(); assertThat(fragment.mFragObserver.mOnStopObserved).isTrue(); fragment.onDestroy(); assertThat(fragment.mFragObserver.mOnDestroyObserved).isTrue(); assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue(); assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue(); } @Test Loading @@ -237,17 +246,16 @@ public class LifecycleTest { @Test public void onOptionItemSelectedShortCircuitsIfAnObserverHandlesTheMenuItem() { FragmentController<TestFragment> fragmentController = Robolectric.buildFragment(TestFragment.class); TestFragment fragment = fragmentController.get(); OptionItemAccepter accepter = new OptionItemAccepter(); final TestFragment fragment = new TestFragment(); FragmentTestUtils.startFragment(fragment); final OptionItemAccepter accepter = new OptionItemAccepter(); fragment.getLifecycle().addObserver(accepter); fragmentController.create().start().resume(); fragment.onCreateOptionsMenu(null, null); fragment.onPrepareOptionsMenu(null); fragment.onOptionsItemSelected(null); fragmentController.pause().stop().destroy(); assertThat(accepter.wasCalled).isFalse(); } Loading