Skip to content

Commit a5468fb

Browse files
committed
release: SDK 1.21.1
1 parent 20db236 commit a5468fb

File tree

6 files changed

+9867
-93
lines changed

6 files changed

+9867
-93
lines changed

Sources/buildSrc/src/main/java/Consts.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ object ProjectConsts {
1111
}
1212

1313
object SDKConsts {
14-
const val VERSION = "1.21.0"
14+
const val VERSION = "1.21.1"
1515
const val API_LEVEL = 70
1616
const val MESSAGING_API_LEVEL = 12
1717

Sources/sdk/src/main/java/com/batch/android/inbox/InboxFetchWebserviceClient.java

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616
import com.batch.android.json.JSONException;
1717
import com.batch.android.json.JSONObject;
1818
import com.batch.android.post.PostDataProvider;
19-
import com.batch.android.processor.Module;
2019
import com.batch.android.processor.Provide;
21-
import com.batch.android.processor.Singleton;
2220
import com.batch.android.webservice.listener.InboxWebserviceListener;
2321
import java.net.MalformedURLException;
2422
import java.util.Date;
@@ -29,8 +27,6 @@
2927
* Webservice client for the Inbox API
3028
* Used to fetch notifications from the server
3129
*/
32-
@Module
33-
@Singleton
3430
public class InboxFetchWebserviceClient extends BatchWebservice implements TaskRunnable {
3531

3632
private static final String TAG = "InboxFetchWebserviceClient";
@@ -41,7 +37,7 @@ public class InboxFetchWebserviceClient extends BatchWebservice implements TaskR
4137
private final String authentication;
4238

4339
@NonNull
44-
private InboxWebserviceListener listener;
40+
private final InboxWebserviceListener listener;
4541

4642
public InboxFetchWebserviceClient(
4743
@NonNull Context context,
@@ -67,29 +63,6 @@ public InboxFetchWebserviceClient(
6763
}
6864
}
6965

70-
@Provide
71-
public static InboxFetchWebserviceClient provide(
72-
@NonNull Context context,
73-
@NonNull FetcherType type,
74-
@NonNull String identifier,
75-
@Nullable String authentication,
76-
@Nullable Integer limit,
77-
@Nullable String from,
78-
long fetcherId,
79-
@NonNull InboxWebserviceListener listener
80-
) throws MalformedURLException {
81-
return new InboxFetchWebserviceClient(
82-
context,
83-
type,
84-
identifier,
85-
authentication,
86-
limit,
87-
from,
88-
fetcherId,
89-
listener
90-
);
91-
}
92-
9366
@Override
9467
protected Map<String, String> getHeaders() {
9568
if (authentication != null) {
@@ -274,8 +247,4 @@ protected String getSpecificReadTimeoutKey() {
274247
protected String getSpecificRetryCountKey() {
275248
return ParameterKeys.INBOX_WS_RETRYCOUNT_KEY;
276249
}
277-
278-
public void setListener(@NonNull InboxWebserviceListener listener) {
279-
this.listener = listener;
280-
}
281250
}

Sources/sdk/src/main/java/com/batch/android/inbox/InboxFetcherInternal.java

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
import android.text.TextUtils;
55
import androidx.annotation.NonNull;
66
import androidx.annotation.Nullable;
7+
import androidx.annotation.VisibleForTesting;
78
import com.batch.android.BatchInboxFetcher;
89
import com.batch.android.BatchInboxNotificationContent;
910
import com.batch.android.PrivateNotificationContentHelper;
1011
import com.batch.android.core.Logger;
1112
import com.batch.android.core.NamedThreadFactory;
1213
import com.batch.android.di.providers.InboxDatasourceProvider;
13-
import com.batch.android.di.providers.InboxFetchWebserviceClientProvider;
1414
import com.batch.android.di.providers.InboxFetcherInternalProvider;
1515
import com.batch.android.di.providers.RuntimeManagerProvider;
1616
import com.batch.android.di.providers.TrackerModuleProvider;
@@ -94,20 +94,6 @@ public static InboxFetcherInternal provide(@NonNull Context context, String inst
9494
);
9595
}
9696

97-
@Provide
98-
public static InboxFetcherInternal provide(
99-
@NonNull Context context,
100-
String installID,
101-
@NonNull InboxFetchWebserviceClient client
102-
) {
103-
return new InboxFetcherInternal(
104-
TrackerModuleProvider.get(),
105-
InboxDatasourceProvider.get(context),
106-
context,
107-
installID
108-
);
109-
}
110-
11197
/**
11298
* Init fetcher without using cache
11399
* Internal use only
@@ -412,25 +398,30 @@ private void fetch(@Nullable final String cursor, @NonNull final InboxWebservice
412398

413399
try {
414400
// No need for the TaskExecutor, run the WS directly on this thread since it has to work serially
415-
InboxFetchWebserviceClient fetchWSClient = InboxFetchWebserviceClientProvider.get(
416-
c,
417-
fetcherType,
418-
identifier,
419-
authKey,
420-
maxPageSize,
421-
cursor,
422-
fetcherId,
423-
wsClientListener
401+
runFetchWSClient(
402+
new InboxFetchWebserviceClient(
403+
c,
404+
fetcherType,
405+
identifier,
406+
authKey,
407+
maxPageSize,
408+
cursor,
409+
fetcherId,
410+
wsClientListener
411+
)
424412
);
425-
fetchWSClient.setListener(wsClientListener);
426-
fetchWSClient.run();
427413
} catch (MalformedURLException e) {
428414
Logger.internal(TAG, "Could not start inbox fetcher ws: ", e);
429415
wsClientListener.onFailure("Internal network call error");
430416
}
431417
});
432418
}
433419

420+
@VisibleForTesting
421+
protected void runFetchWSClient(InboxFetchWebserviceClient client) {
422+
client.run();
423+
}
424+
434425
private boolean sync(@Nullable final String cursor, final InboxWebserviceListener wsClientListener) {
435426
if (datasource != null && fetcherId != -1) {
436427
List<InboxCandidateNotificationInternal> candidates = datasource.getCandidateNotifications(

Sources/sdk/src/test/java/com/batch/android/inbox/InboxFetcherInternalTest.java

Lines changed: 15 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.batch.android.inbox;
22

33
import static android.os.Looper.getMainLooper;
4-
import static com.batch.android.inbox.FetcherType.INSTALLATION;
4+
import static org.mockito.Mockito.spy;
55
import static org.robolectric.Shadows.shadowOf;
66

77
import android.content.Context;
@@ -11,22 +11,20 @@
1111
import androidx.test.filters.SmallTest;
1212
import com.batch.android.BatchInboxFetcher;
1313
import com.batch.android.BatchInboxNotificationContent;
14-
import com.batch.android.di.DI;
15-
import com.batch.android.di.DITest;
16-
import com.batch.android.di.DITestUtils;
14+
import com.batch.android.di.providers.InboxFetcherInternalProvider;
1715
import com.batch.android.json.JSONObject;
18-
import com.batch.android.webservice.listener.InboxWebserviceListener;
1916
import java.util.List;
2017
import java.util.concurrent.CountDownLatch;
2118
import org.junit.Assert;
2219
import org.junit.Before;
2320
import org.junit.Test;
2421
import org.junit.runner.RunWith;
22+
import org.mockito.Mockito;
2523
import org.powermock.api.mockito.PowerMockito;
2624

2725
@RunWith(AndroidJUnit4.class)
2826
@SmallTest
29-
public class InboxFetcherInternalTest extends DITest {
27+
public class InboxFetcherInternalTest {
3028

3129
private Context appContext;
3230
private final String payload =
@@ -35,39 +33,23 @@ public class InboxFetcherInternalTest extends DITest {
3533

3634
@Before
3735
public void setUp() {
38-
super.setUp();
3936
appContext = ApplicationProvider.getApplicationContext();
4037
latch = new CountDownLatch(1);
4138
}
4239

4340
@Test
4441
public void testFetchNewNotifications() throws Exception {
45-
InboxFetchWebserviceClient client = PowerMockito.spy(
46-
new InboxFetchWebserviceClient(
47-
appContext,
48-
INSTALLATION,
49-
"mock-id",
50-
"test-auth",
51-
20,
52-
null,
53-
-1,
54-
new InboxWebserviceListener() {
55-
@Override
56-
public void onSuccess(InboxWebserviceResponse result) {}
57-
58-
@Override
59-
public void onFailure(@NonNull String error) {}
60-
}
61-
)
62-
);
63-
PowerMockito.doReturn(new JSONObject(payload)).when(client, "getBasicJsonResponseBody");
64-
DI.getInstance().addSingletonInstance(InboxFetchWebserviceClient.class, client);
65-
InboxFetcherInternal fetcher = DITestUtils.mockSingletonDependency(
66-
InboxFetcherInternal.class,
67-
new Class[] { Context.class, String.class },
68-
appContext,
69-
"test-install-id"
70-
);
42+
InboxFetcherInternal fetcher = spy(InboxFetcherInternalProvider.get(appContext, "test-install-id"));
43+
Mockito
44+
.doAnswer(invocation -> {
45+
InboxFetchWebserviceClient client = invocation.getArgument(0);
46+
InboxFetchWebserviceClient spy = PowerMockito.spy(client);
47+
PowerMockito.doReturn(new JSONObject(payload)).when(spy, "getBasicJsonResponseBody");
48+
spy.run();
49+
return spy;
50+
})
51+
.when(fetcher)
52+
.runFetchWSClient(Mockito.any());
7153
fetcher.fetchNewNotifications(
7254
new BatchInboxFetcher.OnNewNotificationsFetchedListener() {
7355
@Override
@@ -85,7 +67,6 @@ public void onFetchSuccess(
8567
@Override
8668
public void onFetchFailure(@NonNull String error) {
8769
latch.countDown();
88-
Assert.fail();
8970
}
9071
}
9172
);

proguard-mappings/1.21.1/checksum.sha

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
261387d6e90dc20a2626dbcbfe4de528470697b7 public-sdk/Batch.aar

0 commit comments

Comments
 (0)