diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java b/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java index 462fc11..a1d92a7 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/ViewController.java @@ -42,6 +42,7 @@ import ru.touchin.roboswag.components.navigation.fragments.ViewControllerFragmen import ru.touchin.roboswag.components.utils.BaseLifecycleBindable; import ru.touchin.roboswag.components.utils.LifecycleBindable; import ru.touchin.roboswag.components.utils.UiUtils; +import ru.touchin.roboswag.core.log.Lc; import ru.touchin.roboswag.core.utils.ShouldNotHappenException; import rx.Observable; import rx.Subscription; @@ -236,6 +237,7 @@ public class ViewController, */ @CallSuper public void onCreate() { + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onCreate(); } @@ -245,6 +247,7 @@ public class ViewController, */ @CallSuper public void onStart() { + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onStart(); } @@ -253,7 +256,7 @@ public class ViewController, * Usually it is indicating that user can't see fragment on screen and useful to track analytics events. */ public void onAppear() { - //do nothing + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); } /** @@ -262,7 +265,7 @@ public class ViewController, */ @CallSuper public void onResume() { - //do nothing + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); } /** @@ -280,7 +283,7 @@ public class ViewController, */ @CallSuper public void onPause() { - //do nothing + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); } /** @@ -290,7 +293,7 @@ public class ViewController, */ @CallSuper public void onSaveInstanceState(@NonNull final Bundle savedInstanceState) { - // do nothing + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); } /** @@ -298,7 +301,7 @@ public class ViewController, * Usually it is indicating that user can't see fragment on screen and useful to track analytics events. */ public void onDisappear() { - //do nothing + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); } /** @@ -307,6 +310,7 @@ public class ViewController, */ @CallSuper public void onStop() { + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onStop(); } @@ -316,6 +320,7 @@ public class ViewController, */ @CallSuper public void onDestroy() { + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onDestroy(); destroyed = true; } diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java b/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java index 1761f0a..1fb7655 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/activities/BaseActivity.java @@ -38,6 +38,8 @@ import java.util.ArrayList; import ru.touchin.roboswag.components.utils.BaseLifecycleBindable; import ru.touchin.roboswag.components.utils.LifecycleBindable; +import ru.touchin.roboswag.components.utils.UiUtils; +import ru.touchin.roboswag.core.log.Lc; import rx.Observable; import rx.Subscription; import rx.functions.Action0; @@ -76,6 +78,7 @@ public abstract class BaseActivity extends AppCompatActivity @Override protected void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onCreate(); restoreLastActivityResult(savedInstanceState); } @@ -92,6 +95,7 @@ public abstract class BaseActivity extends AppCompatActivity @Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { super.onActivityResult(requestCode, resultCode, data); + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this) + " requestCode: " + requestCode + "; resultCode: " + resultCode); if (resultCode == RESULT_OK) { lastActivityResult.onNext(new Pair<>(requestCode, data)); } @@ -114,17 +118,20 @@ public abstract class BaseActivity extends AppCompatActivity @Override protected void onStart() { super.onStart(); + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onStart(); } @Override protected void onResume() { super.onResume(); + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); resumed = true; } @Override protected void onPause() { + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); resumed = false; super.onPause(); } @@ -132,6 +139,7 @@ public abstract class BaseActivity extends AppCompatActivity @Override protected void onSaveInstanceState(@NonNull final Bundle stateToSave) { super.onSaveInstanceState(stateToSave); + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); if (lastActivityResult.getValue() != null) { stateToSave.putInt(ACTIVITY_RESULT_CODE_EXTRA, lastActivityResult.getValue().first); if (lastActivityResult.getValue().second != null) { @@ -140,14 +148,22 @@ public abstract class BaseActivity extends AppCompatActivity } } + @Override + public void onLowMemory() { + super.onLowMemory(); + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); + } + @Override protected void onStop() { + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onStop(); super.onStop(); } @Override protected void onDestroy() { + UiUtils.UI_LIFECYCLE_LC_GROUP.i(Lc.getCodePoint(this)); baseLifecycleBindable.onDestroy(); super.onDestroy(); } diff --git a/src/main/java/ru/touchin/roboswag/components/utils/UiUtils.java b/src/main/java/ru/touchin/roboswag/components/utils/UiUtils.java index 82381a5..ae175ee 100644 --- a/src/main/java/ru/touchin/roboswag/components/utils/UiUtils.java +++ b/src/main/java/ru/touchin/roboswag/components/utils/UiUtils.java @@ -57,6 +57,10 @@ public final class UiUtils { * Logging group to log UI metrics (like inflation or layout time etc.). */ public static final LcGroup UI_METRICS_LC_GROUP = new LcGroup("UI_METRICS"); + /** + * Logging group to log UI lifecycle (onCreate, onStart, onResume etc.). + */ + public static final LcGroup UI_LIFECYCLE_LC_GROUP = new LcGroup("UI_LIFECYCLE"); /** * Delay to let user view ripple effect before screen changed. */