Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 38c67ff9 authored by Adam Powell's avatar Adam Powell
Browse files

Add FragmentLifecycleCallbacks

Add a new callback object that can be attached to a FragmentManager to
observe all fragment lifecycle events within that
FragmentManager. Useful for dependency injection and other
shenanigans.

FragmentLifecycleCallbacks can be registered as recursive, in which
case they will be activated for any lifecycle events that happen in
descendant FragmentManagers as well.

Test: cts-tradefed run singleCommand cts --skip-preconditions --skip-device-info --module CtsFragmentTestCases
Change-Id: I816b1fbef6c29616ccc3fd729ee847c5f1a6f72f
parent 71a7b9ad
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -4632,8 +4632,10 @@ package android.app {
    method public abstract boolean popBackStackImmediate(java.lang.String, int);
    method public abstract boolean popBackStackImmediate(int, int);
    method public abstract void putFragment(android.os.Bundle, java.lang.String, android.app.Fragment);
    method public abstract void registerFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
    method public abstract void removeOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener);
    method public abstract android.app.Fragment.SavedState saveFragmentInstanceState(android.app.Fragment);
    method public abstract void unregisterFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks);
    field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
  }
@@ -4646,6 +4648,23 @@ package android.app {
    method public abstract java.lang.String getName();
  }
  public abstract class FragmentManager.FragmentLifecycleCallbacks {
    ctor public FragmentManager.FragmentLifecycleCallbacks();
    method public void onFragmentActivityCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentDestroyed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentStopped(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentViewCreated(android.app.FragmentManager, android.app.Fragment, android.view.View, android.os.Bundle);
    method public void onFragmentViewDestroyed(android.app.FragmentManager, android.app.Fragment);
  }
  public static abstract interface FragmentManager.OnBackStackChangedListener {
    method public abstract void onBackStackChanged();
  }
+19 −0
Original line number Diff line number Diff line
@@ -4776,8 +4776,10 @@ package android.app {
    method public abstract boolean popBackStackImmediate(java.lang.String, int);
    method public abstract boolean popBackStackImmediate(int, int);
    method public abstract void putFragment(android.os.Bundle, java.lang.String, android.app.Fragment);
    method public abstract void registerFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
    method public abstract void removeOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener);
    method public abstract android.app.Fragment.SavedState saveFragmentInstanceState(android.app.Fragment);
    method public abstract void unregisterFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks);
    field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
  }
@@ -4790,6 +4792,23 @@ package android.app {
    method public abstract java.lang.String getName();
  }
  public abstract class FragmentManager.FragmentLifecycleCallbacks {
    ctor public FragmentManager.FragmentLifecycleCallbacks();
    method public void onFragmentActivityCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentDestroyed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentStopped(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentViewCreated(android.app.FragmentManager, android.app.Fragment, android.view.View, android.os.Bundle);
    method public void onFragmentViewDestroyed(android.app.FragmentManager, android.app.Fragment);
  }
  public static abstract interface FragmentManager.OnBackStackChangedListener {
    method public abstract void onBackStackChanged();
  }
+19 −0
Original line number Diff line number Diff line
@@ -4635,8 +4635,10 @@ package android.app {
    method public abstract boolean popBackStackImmediate(java.lang.String, int);
    method public abstract boolean popBackStackImmediate(int, int);
    method public abstract void putFragment(android.os.Bundle, java.lang.String, android.app.Fragment);
    method public abstract void registerFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks, boolean);
    method public abstract void removeOnBackStackChangedListener(android.app.FragmentManager.OnBackStackChangedListener);
    method public abstract android.app.Fragment.SavedState saveFragmentInstanceState(android.app.Fragment);
    method public abstract void unregisterFragmentLifecycleCallbacks(android.app.FragmentManager.FragmentLifecycleCallbacks);
    field public static final int POP_BACK_STACK_INCLUSIVE = 1; // 0x1
  }
@@ -4649,6 +4651,23 @@ package android.app {
    method public abstract java.lang.String getName();
  }
  public abstract class FragmentManager.FragmentLifecycleCallbacks {
    ctor public FragmentManager.FragmentLifecycleCallbacks();
    method public void onFragmentActivityCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentCreated(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentDestroyed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentDetached(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPaused(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentPreAttached(android.app.FragmentManager, android.app.Fragment, android.content.Context);
    method public void onFragmentResumed(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentSaveInstanceState(android.app.FragmentManager, android.app.Fragment, android.os.Bundle);
    method public void onFragmentStarted(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentStopped(android.app.FragmentManager, android.app.Fragment);
    method public void onFragmentViewCreated(android.app.FragmentManager, android.app.Fragment, android.view.View, android.os.Bundle);
    method public void onFragmentViewDestroyed(android.app.FragmentManager, android.app.Fragment);
  }
  public static abstract interface FragmentManager.OnBackStackChangedListener {
    method public abstract void onBackStackChanged();
  }
+432 −0

File changed.

Preview size limit exceeded, changes collapsed.