|
12 | 12 |
|
13 | 13 | import android.app.Activity; |
14 | 14 | import android.app.Application; |
| 15 | +import android.content.Context; |
15 | 16 | import android.location.Location; |
16 | 17 | import android.os.Build; |
17 | 18 | import android.os.Handler; |
|
34 | 35 | import io.middleware.android.sdk.core.models.NativeRumSessionId; |
35 | 36 | import io.middleware.android.sdk.core.replay.MiddlewareRecorder; |
36 | 37 | import io.middleware.android.sdk.core.replay.ReplayRecording; |
37 | | -import io.middleware.android.sdk.core.replay.v2.ActivityCallbacks; |
| 38 | +import io.middleware.android.sdk.core.replay.v2.LifecycleManager; |
38 | 39 | import io.middleware.android.sdk.core.replay.v2.MiddlewareScreenshotManager; |
39 | 40 | import io.middleware.android.sdk.extractors.RumResponseAttributesExtractor; |
40 | 41 | import io.middleware.android.sdk.interfaces.IMiddleware; |
@@ -94,28 +95,26 @@ public static MiddlewareBuilder builder() { |
94 | 95 | // for testing purposes |
95 | 96 | public static Middleware initialize( |
96 | 97 | MiddlewareBuilder builder, |
97 | | - Application application, |
| 98 | + Context context, |
98 | 99 | Function<Application, CurrentNetworkProvider> currentNetworkProviderFactory) { |
99 | 100 | if (INSTANCE != null) { |
100 | 101 | Log.w(LOG_TAG, "Singleton Middleware instance has already been initialized."); |
101 | 102 | return INSTANCE; |
102 | 103 | } |
103 | | - |
104 | | - rumInitializer = new RumInitializer(builder, application, startupTimer); |
| 104 | + final LifecycleManager lifecycleManager = new LifecycleManager(context.getApplicationContext(), |
| 105 | + (context instanceof Activity) |
| 106 | + ? (Activity) context |
| 107 | + : null); |
| 108 | + rumInitializer = new RumInitializer(builder, context, startupTimer); |
105 | 109 | INSTANCE = rumInitializer.initialize(currentNetworkProviderFactory, Looper.getMainLooper()); |
106 | 110 | LOGGER = INSTANCE.getOpenTelemetry().getLogsBridge() |
107 | 111 | .loggerBuilder(builder.serviceName) |
108 | 112 | .build(); |
109 | 113 | if (builder.isRecordingEnabled()) { |
110 | 114 | Log.d(LOG_TAG, "Session recording enabled, waiting layout to get attached."); |
111 | 115 | middlewareScreenshotManager = new MiddlewareScreenshotManager( |
112 | | - System.currentTimeMillis(), |
113 | | - builder.target, |
114 | | - builder.rumAccessToken |
| 116 | + builder, lifecycleManager |
115 | 117 | ); |
116 | | - application.registerActivityLifecycleCallbacks( |
117 | | - new ActivityCallbacks(middlewareScreenshotManager)) |
118 | | - ; |
119 | 118 | } |
120 | 119 | Log.i(LOG_TAG, "Middleware RUM monitoring initialized with session ID: " + INSTANCE.getRumSessionId()); |
121 | 120 | return INSTANCE; |
@@ -151,23 +150,12 @@ public MiddlewareRecorder getRecorder() { |
151 | 150 | return new MiddlewareRecorder(this); |
152 | 151 | } |
153 | 152 |
|
154 | | - public void startNativeRecording(Activity activity) { |
| 153 | + public void startNativeRecording() { |
155 | 154 | if (middlewareScreenshotManager != null) { |
156 | | - middlewareScreenshotManager.setActivity(activity); |
| 155 | + middlewareScreenshotManager.start(System.currentTimeMillis()); |
157 | 156 | } |
158 | 157 | } |
159 | 158 |
|
160 | | - /** |
161 | | - * @return {@code true} if the recording started successfully. |
162 | | - */ |
163 | | - public boolean startRecording() { |
164 | | - if (middlewareScreenshotManager != null) { |
165 | | - middlewareScreenshotManager.start(); |
166 | | - return true; |
167 | | - } |
168 | | - return false; |
169 | | - } |
170 | | - |
171 | 159 | /** |
172 | 160 | * @return @{code true} if session recording stopped successfully. |
173 | 161 | */ |
|
0 commit comments