Loading services/core/java/com/android/server/wm/ActivityMetricsLogger.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1631,7 +1631,7 @@ class ActivityMetricsLogger { int positionToLog = APP_COMPAT_STATE_CHANGED__LETTERBOX_POSITION__NOT_LETTERBOXED_POSITION; int positionToLog = APP_COMPAT_STATE_CHANGED__LETTERBOX_POSITION__NOT_LETTERBOXED_POSITION; if (isAppCompateStateChangedToLetterboxed(state)) { if (isAppCompateStateChangedToLetterboxed(state)) { positionToLog = activity.mAppCompatController.getAppCompatReachabilityOverrides() positionToLog = activity.mAppCompatController.getReachabilityOverrides() .getLetterboxPositionForLogging(); .getLetterboxPositionForLogging(); } } FrameworkStatsLog.write(FrameworkStatsLog.APP_COMPAT_STATE_CHANGED, FrameworkStatsLog.write(FrameworkStatsLog.APP_COMPAT_STATE_CHANGED, Loading services/core/java/com/android/server/wm/ActivityRecord.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -8744,7 +8744,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A navBarInsets = Insets.NONE; navBarInsets = Insets.NONE; } } final AppCompatReachabilityOverrides reachabilityOverrides = final AppCompatReachabilityOverrides reachabilityOverrides = mAppCompatController.getAppCompatReachabilityOverrides(); mAppCompatController.getReachabilityOverrides(); // Horizontal position // Horizontal position int offsetX = 0; int offsetX = 0; if (parentBounds.width() != screenResolvedBoundsWidth) { if (parentBounds.width() != screenResolvedBoundsWidth) { Loading services/core/java/com/android/server/wm/AppCompatController.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -33,7 +33,7 @@ class AppCompatController { @NonNull @NonNull private final AppCompatAspectRatioPolicy mAppCompatAspectRatioPolicy; private final AppCompatAspectRatioPolicy mAppCompatAspectRatioPolicy; @NonNull @NonNull private final AppCompatReachabilityPolicy mAppCompatReachabilityPolicy; private final AppCompatReachabilityPolicy mReachabilityPolicy; @NonNull @NonNull private final DesktopAppCompatAspectRatioPolicy mDesktopAppCompatAspectRatioPolicy; private final DesktopAppCompatAspectRatioPolicy mDesktopAppCompatAspectRatioPolicy; @NonNull @NonNull Loading @@ -58,7 +58,7 @@ class AppCompatController { mOrientationPolicy = new AppCompatOrientationPolicy(activityRecord, mAppCompatOverrides); mOrientationPolicy = new AppCompatOrientationPolicy(activityRecord, mAppCompatOverrides); mAppCompatAspectRatioPolicy = new AppCompatAspectRatioPolicy(activityRecord, mAppCompatAspectRatioPolicy = new AppCompatAspectRatioPolicy(activityRecord, mTransparentPolicy, mAppCompatOverrides); mTransparentPolicy, mAppCompatOverrides); mAppCompatReachabilityPolicy = new AppCompatReachabilityPolicy(activityRecord, mReachabilityPolicy = new AppCompatReachabilityPolicy(activityRecord, wmService.mAppCompatConfiguration); wmService.mAppCompatConfiguration); mAppCompatLetterboxPolicy = new AppCompatLetterboxPolicy(activityRecord, mAppCompatLetterboxPolicy = new AppCompatLetterboxPolicy(activityRecord, wmService.mAppCompatConfiguration); wmService.mAppCompatConfiguration); Loading Loading @@ -109,8 +109,8 @@ class AppCompatController { } } @NonNull @NonNull AppCompatReachabilityPolicy getAppCompatReachabilityPolicy() { AppCompatReachabilityPolicy getReachabilityPolicy() { return mAppCompatReachabilityPolicy; return mReachabilityPolicy; } } @NonNull @NonNull Loading @@ -124,8 +124,8 @@ class AppCompatController { } } @NonNull @NonNull AppCompatReachabilityOverrides getAppCompatReachabilityOverrides() { AppCompatReachabilityOverrides getReachabilityOverrides() { return mAppCompatOverrides.getAppCompatReachabilityOverrides(); return mAppCompatOverrides.getReachabilityOverrides(); } } @NonNull @NonNull Loading services/core/java/com/android/server/wm/AppCompatLetterboxPolicy.java +7 −7 Original line number Original line Diff line number Diff line Loading @@ -205,7 +205,7 @@ class AppCompatLetterboxPolicy { } } pw.println(prefix + " letterboxReason=" pw.println(prefix + " letterboxReason=" + AppCompatUtils.getLetterboxReasonString(mActivityRecord, mainWin)); + AppCompatUtils.getLetterboxReasonString(mActivityRecord, mainWin)); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy().dump(pw, prefix); mActivityRecord.mAppCompatController.getReachabilityPolicy().dump(pw, prefix); final AppCompatLetterboxOverrides letterboxOverride = mActivityRecord.mAppCompatController final AppCompatLetterboxOverrides letterboxOverride = mActivityRecord.mAppCompatController .getAppCompatLetterboxOverrides(); .getAppCompatLetterboxOverrides(); pw.println(prefix + " letterboxBackgroundColor=" + Integer.toHexString( pw.println(prefix + " letterboxBackgroundColor=" + Integer.toHexString( Loading Loading @@ -276,12 +276,12 @@ class AppCompatLetterboxPolicy { final AppCompatLetterboxOverrides letterboxOverrides = mActivityRecord final AppCompatLetterboxOverrides letterboxOverrides = mActivityRecord .mAppCompatController.getAppCompatLetterboxOverrides(); .mAppCompatController.getAppCompatLetterboxOverrides(); final AppCompatReachabilityPolicy reachabilityPolicy = mActivityRecord final AppCompatReachabilityPolicy reachabilityPolicy = mActivityRecord .mAppCompatController.getAppCompatReachabilityPolicy(); .mAppCompatController.getReachabilityPolicy(); mLetterbox = new Letterbox(() -> mActivityRecord.makeChildSurface(null), mLetterbox = new Letterbox(() -> mActivityRecord.makeChildSurface(null), mActivityRecord.mWmService.mTransactionFactory, mActivityRecord.mWmService.mTransactionFactory, reachabilityPolicy, letterboxOverrides, reachabilityPolicy, letterboxOverrides, this::getLetterboxParentSurface); this::getLetterboxParentSurface); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(mLetterbox::getInnerFrame); .setLetterboxInnerBoundsSupplier(mLetterbox::getInnerFrame); } } final Point letterboxPosition = new Point(); final Point letterboxPosition = new Point(); Loading @@ -291,7 +291,7 @@ class AppCompatLetterboxPolicy { final Rect innerFrame = new Rect(); final Rect innerFrame = new Rect(); calculateLetterboxInnerBounds(mActivityRecord, w, innerFrame); calculateLetterboxInnerBounds(mActivityRecord, w, innerFrame); mLetterbox.layout(spaceToFill, innerFrame, letterboxPosition); mLetterbox.layout(spaceToFill, innerFrame, letterboxPosition); if (mActivityRecord.mAppCompatController.getAppCompatReachabilityOverrides() if (mActivityRecord.mAppCompatController.getReachabilityOverrides() .isDoubleTapEvent()) { .isDoubleTapEvent()) { // We need to notify Shell that letterbox position has changed. // We need to notify Shell that letterbox position has changed. mActivityRecord.getTask().dispatchTaskInfoChangedIfNeeded(true /* force */); mActivityRecord.getTask().dispatchTaskInfoChangedIfNeeded(true /* force */); Loading Loading @@ -321,7 +321,7 @@ class AppCompatLetterboxPolicy { mLetterbox.destroy(); mLetterbox.destroy(); mLetterbox = null; mLetterbox = null; } } mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(null); .setLetterboxInnerBoundsSupplier(null); } } Loading Loading @@ -415,7 +415,7 @@ class AppCompatLetterboxPolicy { calculateLetterboxPosition(mActivityRecord, mLetterboxPosition); calculateLetterboxPosition(mActivityRecord, mLetterboxPosition); calculateLetterboxOuterBounds(mActivityRecord, mOuterBounds); calculateLetterboxOuterBounds(mActivityRecord, mOuterBounds); calculateLetterboxInnerBounds(mActivityRecord, w, mInnerBounds); calculateLetterboxInnerBounds(mActivityRecord, w, mInnerBounds); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(() -> mInnerBounds); .setLetterboxInnerBoundsSupplier(() -> mInnerBounds); } } Loading @@ -438,7 +438,7 @@ class AppCompatLetterboxPolicy { mLetterboxPosition.set(0, 0); mLetterboxPosition.set(0, 0); mInnerBounds.setEmpty(); mInnerBounds.setEmpty(); mOuterBounds.setEmpty(); mOuterBounds.setEmpty(); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(null); .setLetterboxInnerBoundsSupplier(null); } } Loading services/core/java/com/android/server/wm/AppCompatOverrides.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -37,7 +37,7 @@ public class AppCompatOverrides { @NonNull @NonNull private final AppCompatResizeOverrides mResizeOverrides; private final AppCompatResizeOverrides mResizeOverrides; @NonNull @NonNull private final AppCompatReachabilityOverrides mAppCompatReachabilityOverrides; private final AppCompatReachabilityOverrides mReachabilityOverrides; @NonNull @NonNull private final AppCompatLetterboxOverrides mAppCompatLetterboxOverrides; private final AppCompatLetterboxOverrides mAppCompatLetterboxOverrides; Loading @@ -50,11 +50,11 @@ public class AppCompatOverrides { appCompatConfiguration, optPropBuilder); appCompatConfiguration, optPropBuilder); mAppCompatOrientationOverrides = new AppCompatOrientationOverrides(activityRecord, mAppCompatOrientationOverrides = new AppCompatOrientationOverrides(activityRecord, appCompatConfiguration, optPropBuilder, mAppCompatCameraOverrides); appCompatConfiguration, optPropBuilder, mAppCompatCameraOverrides); mAppCompatReachabilityOverrides = new AppCompatReachabilityOverrides(activityRecord, mReachabilityOverrides = new AppCompatReachabilityOverrides(activityRecord, appCompatConfiguration, appCompatDeviceStateQuery); appCompatConfiguration, appCompatDeviceStateQuery); mAppCompatAspectRatioOverrides = new AppCompatAspectRatioOverrides(activityRecord, mAppCompatAspectRatioOverrides = new AppCompatAspectRatioOverrides(activityRecord, appCompatConfiguration, optPropBuilder, appCompatDeviceStateQuery, appCompatConfiguration, optPropBuilder, appCompatDeviceStateQuery, mAppCompatReachabilityOverrides); mReachabilityOverrides); mAppCompatFocusOverrides = new AppCompatFocusOverrides(activityRecord, mAppCompatFocusOverrides = new AppCompatFocusOverrides(activityRecord, appCompatConfiguration, optPropBuilder); appCompatConfiguration, optPropBuilder); mResizeOverrides = new AppCompatResizeOverrides(activityRecord, packageManager, mResizeOverrides = new AppCompatResizeOverrides(activityRecord, packageManager, Loading Loading @@ -89,8 +89,8 @@ public class AppCompatOverrides { } } @NonNull @NonNull AppCompatReachabilityOverrides getAppCompatReachabilityOverrides() { AppCompatReachabilityOverrides getReachabilityOverrides() { return mAppCompatReachabilityOverrides; return mReachabilityOverrides; } } @NonNull @NonNull Loading Loading
services/core/java/com/android/server/wm/ActivityMetricsLogger.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1631,7 +1631,7 @@ class ActivityMetricsLogger { int positionToLog = APP_COMPAT_STATE_CHANGED__LETTERBOX_POSITION__NOT_LETTERBOXED_POSITION; int positionToLog = APP_COMPAT_STATE_CHANGED__LETTERBOX_POSITION__NOT_LETTERBOXED_POSITION; if (isAppCompateStateChangedToLetterboxed(state)) { if (isAppCompateStateChangedToLetterboxed(state)) { positionToLog = activity.mAppCompatController.getAppCompatReachabilityOverrides() positionToLog = activity.mAppCompatController.getReachabilityOverrides() .getLetterboxPositionForLogging(); .getLetterboxPositionForLogging(); } } FrameworkStatsLog.write(FrameworkStatsLog.APP_COMPAT_STATE_CHANGED, FrameworkStatsLog.write(FrameworkStatsLog.APP_COMPAT_STATE_CHANGED, Loading
services/core/java/com/android/server/wm/ActivityRecord.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -8744,7 +8744,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A navBarInsets = Insets.NONE; navBarInsets = Insets.NONE; } } final AppCompatReachabilityOverrides reachabilityOverrides = final AppCompatReachabilityOverrides reachabilityOverrides = mAppCompatController.getAppCompatReachabilityOverrides(); mAppCompatController.getReachabilityOverrides(); // Horizontal position // Horizontal position int offsetX = 0; int offsetX = 0; if (parentBounds.width() != screenResolvedBoundsWidth) { if (parentBounds.width() != screenResolvedBoundsWidth) { Loading
services/core/java/com/android/server/wm/AppCompatController.java +6 −6 Original line number Original line Diff line number Diff line Loading @@ -33,7 +33,7 @@ class AppCompatController { @NonNull @NonNull private final AppCompatAspectRatioPolicy mAppCompatAspectRatioPolicy; private final AppCompatAspectRatioPolicy mAppCompatAspectRatioPolicy; @NonNull @NonNull private final AppCompatReachabilityPolicy mAppCompatReachabilityPolicy; private final AppCompatReachabilityPolicy mReachabilityPolicy; @NonNull @NonNull private final DesktopAppCompatAspectRatioPolicy mDesktopAppCompatAspectRatioPolicy; private final DesktopAppCompatAspectRatioPolicy mDesktopAppCompatAspectRatioPolicy; @NonNull @NonNull Loading @@ -58,7 +58,7 @@ class AppCompatController { mOrientationPolicy = new AppCompatOrientationPolicy(activityRecord, mAppCompatOverrides); mOrientationPolicy = new AppCompatOrientationPolicy(activityRecord, mAppCompatOverrides); mAppCompatAspectRatioPolicy = new AppCompatAspectRatioPolicy(activityRecord, mAppCompatAspectRatioPolicy = new AppCompatAspectRatioPolicy(activityRecord, mTransparentPolicy, mAppCompatOverrides); mTransparentPolicy, mAppCompatOverrides); mAppCompatReachabilityPolicy = new AppCompatReachabilityPolicy(activityRecord, mReachabilityPolicy = new AppCompatReachabilityPolicy(activityRecord, wmService.mAppCompatConfiguration); wmService.mAppCompatConfiguration); mAppCompatLetterboxPolicy = new AppCompatLetterboxPolicy(activityRecord, mAppCompatLetterboxPolicy = new AppCompatLetterboxPolicy(activityRecord, wmService.mAppCompatConfiguration); wmService.mAppCompatConfiguration); Loading Loading @@ -109,8 +109,8 @@ class AppCompatController { } } @NonNull @NonNull AppCompatReachabilityPolicy getAppCompatReachabilityPolicy() { AppCompatReachabilityPolicy getReachabilityPolicy() { return mAppCompatReachabilityPolicy; return mReachabilityPolicy; } } @NonNull @NonNull Loading @@ -124,8 +124,8 @@ class AppCompatController { } } @NonNull @NonNull AppCompatReachabilityOverrides getAppCompatReachabilityOverrides() { AppCompatReachabilityOverrides getReachabilityOverrides() { return mAppCompatOverrides.getAppCompatReachabilityOverrides(); return mAppCompatOverrides.getReachabilityOverrides(); } } @NonNull @NonNull Loading
services/core/java/com/android/server/wm/AppCompatLetterboxPolicy.java +7 −7 Original line number Original line Diff line number Diff line Loading @@ -205,7 +205,7 @@ class AppCompatLetterboxPolicy { } } pw.println(prefix + " letterboxReason=" pw.println(prefix + " letterboxReason=" + AppCompatUtils.getLetterboxReasonString(mActivityRecord, mainWin)); + AppCompatUtils.getLetterboxReasonString(mActivityRecord, mainWin)); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy().dump(pw, prefix); mActivityRecord.mAppCompatController.getReachabilityPolicy().dump(pw, prefix); final AppCompatLetterboxOverrides letterboxOverride = mActivityRecord.mAppCompatController final AppCompatLetterboxOverrides letterboxOverride = mActivityRecord.mAppCompatController .getAppCompatLetterboxOverrides(); .getAppCompatLetterboxOverrides(); pw.println(prefix + " letterboxBackgroundColor=" + Integer.toHexString( pw.println(prefix + " letterboxBackgroundColor=" + Integer.toHexString( Loading Loading @@ -276,12 +276,12 @@ class AppCompatLetterboxPolicy { final AppCompatLetterboxOverrides letterboxOverrides = mActivityRecord final AppCompatLetterboxOverrides letterboxOverrides = mActivityRecord .mAppCompatController.getAppCompatLetterboxOverrides(); .mAppCompatController.getAppCompatLetterboxOverrides(); final AppCompatReachabilityPolicy reachabilityPolicy = mActivityRecord final AppCompatReachabilityPolicy reachabilityPolicy = mActivityRecord .mAppCompatController.getAppCompatReachabilityPolicy(); .mAppCompatController.getReachabilityPolicy(); mLetterbox = new Letterbox(() -> mActivityRecord.makeChildSurface(null), mLetterbox = new Letterbox(() -> mActivityRecord.makeChildSurface(null), mActivityRecord.mWmService.mTransactionFactory, mActivityRecord.mWmService.mTransactionFactory, reachabilityPolicy, letterboxOverrides, reachabilityPolicy, letterboxOverrides, this::getLetterboxParentSurface); this::getLetterboxParentSurface); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(mLetterbox::getInnerFrame); .setLetterboxInnerBoundsSupplier(mLetterbox::getInnerFrame); } } final Point letterboxPosition = new Point(); final Point letterboxPosition = new Point(); Loading @@ -291,7 +291,7 @@ class AppCompatLetterboxPolicy { final Rect innerFrame = new Rect(); final Rect innerFrame = new Rect(); calculateLetterboxInnerBounds(mActivityRecord, w, innerFrame); calculateLetterboxInnerBounds(mActivityRecord, w, innerFrame); mLetterbox.layout(spaceToFill, innerFrame, letterboxPosition); mLetterbox.layout(spaceToFill, innerFrame, letterboxPosition); if (mActivityRecord.mAppCompatController.getAppCompatReachabilityOverrides() if (mActivityRecord.mAppCompatController.getReachabilityOverrides() .isDoubleTapEvent()) { .isDoubleTapEvent()) { // We need to notify Shell that letterbox position has changed. // We need to notify Shell that letterbox position has changed. mActivityRecord.getTask().dispatchTaskInfoChangedIfNeeded(true /* force */); mActivityRecord.getTask().dispatchTaskInfoChangedIfNeeded(true /* force */); Loading Loading @@ -321,7 +321,7 @@ class AppCompatLetterboxPolicy { mLetterbox.destroy(); mLetterbox.destroy(); mLetterbox = null; mLetterbox = null; } } mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(null); .setLetterboxInnerBoundsSupplier(null); } } Loading Loading @@ -415,7 +415,7 @@ class AppCompatLetterboxPolicy { calculateLetterboxPosition(mActivityRecord, mLetterboxPosition); calculateLetterboxPosition(mActivityRecord, mLetterboxPosition); calculateLetterboxOuterBounds(mActivityRecord, mOuterBounds); calculateLetterboxOuterBounds(mActivityRecord, mOuterBounds); calculateLetterboxInnerBounds(mActivityRecord, w, mInnerBounds); calculateLetterboxInnerBounds(mActivityRecord, w, mInnerBounds); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(() -> mInnerBounds); .setLetterboxInnerBoundsSupplier(() -> mInnerBounds); } } Loading @@ -438,7 +438,7 @@ class AppCompatLetterboxPolicy { mLetterboxPosition.set(0, 0); mLetterboxPosition.set(0, 0); mInnerBounds.setEmpty(); mInnerBounds.setEmpty(); mOuterBounds.setEmpty(); mOuterBounds.setEmpty(); mActivityRecord.mAppCompatController.getAppCompatReachabilityPolicy() mActivityRecord.mAppCompatController.getReachabilityPolicy() .setLetterboxInnerBoundsSupplier(null); .setLetterboxInnerBoundsSupplier(null); } } Loading
services/core/java/com/android/server/wm/AppCompatOverrides.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -37,7 +37,7 @@ public class AppCompatOverrides { @NonNull @NonNull private final AppCompatResizeOverrides mResizeOverrides; private final AppCompatResizeOverrides mResizeOverrides; @NonNull @NonNull private final AppCompatReachabilityOverrides mAppCompatReachabilityOverrides; private final AppCompatReachabilityOverrides mReachabilityOverrides; @NonNull @NonNull private final AppCompatLetterboxOverrides mAppCompatLetterboxOverrides; private final AppCompatLetterboxOverrides mAppCompatLetterboxOverrides; Loading @@ -50,11 +50,11 @@ public class AppCompatOverrides { appCompatConfiguration, optPropBuilder); appCompatConfiguration, optPropBuilder); mAppCompatOrientationOverrides = new AppCompatOrientationOverrides(activityRecord, mAppCompatOrientationOverrides = new AppCompatOrientationOverrides(activityRecord, appCompatConfiguration, optPropBuilder, mAppCompatCameraOverrides); appCompatConfiguration, optPropBuilder, mAppCompatCameraOverrides); mAppCompatReachabilityOverrides = new AppCompatReachabilityOverrides(activityRecord, mReachabilityOverrides = new AppCompatReachabilityOverrides(activityRecord, appCompatConfiguration, appCompatDeviceStateQuery); appCompatConfiguration, appCompatDeviceStateQuery); mAppCompatAspectRatioOverrides = new AppCompatAspectRatioOverrides(activityRecord, mAppCompatAspectRatioOverrides = new AppCompatAspectRatioOverrides(activityRecord, appCompatConfiguration, optPropBuilder, appCompatDeviceStateQuery, appCompatConfiguration, optPropBuilder, appCompatDeviceStateQuery, mAppCompatReachabilityOverrides); mReachabilityOverrides); mAppCompatFocusOverrides = new AppCompatFocusOverrides(activityRecord, mAppCompatFocusOverrides = new AppCompatFocusOverrides(activityRecord, appCompatConfiguration, optPropBuilder); appCompatConfiguration, optPropBuilder); mResizeOverrides = new AppCompatResizeOverrides(activityRecord, packageManager, mResizeOverrides = new AppCompatResizeOverrides(activityRecord, packageManager, Loading Loading @@ -89,8 +89,8 @@ public class AppCompatOverrides { } } @NonNull @NonNull AppCompatReachabilityOverrides getAppCompatReachabilityOverrides() { AppCompatReachabilityOverrides getReachabilityOverrides() { return mAppCompatReachabilityOverrides; return mReachabilityOverrides; } } @NonNull @NonNull Loading