Skip to content

Commit 2f5706c

Browse files
authored
Merge pull request #516 from Countly/staging
Staging 25.4.5
2 parents d3ddbc8 + e442f6f commit 2f5706c

File tree

104 files changed

+5047
-918
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+5047
-918
lines changed

.github/workflows/build_and_test_sdk.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: The Countly Android SDK Unit Test
22

33
env:
44
EMULATOR_REPO: us-docker.pkg.dev/android-emulator-268719/images/28-playstore-x64:30.1.2
5-
JAVA_V: 11
5+
JAVA_V: 17
66
JAVA_DIST: corretto
77

88
permissions:
@@ -25,7 +25,7 @@ jobs:
2525

2626
steps:
2727
- name: Install Docker to the Runner
28-
run: sudo apt-get install docker
28+
run: sudo apt-get install containerd.io
2929

3030
- name: Pull Emulator from the Repo
3131
run: docker pull ${{ env.EMULATOR_REPO }}

CHANGELOG.md

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,68 @@
1+
## 25.4.5
2+
* Added a new config flag `setUseSerialExecutor(boolean useSerial)` for selecting immediate request executor type.
3+
* Added a new config option `setWebviewDisplayOption(WebViewDisplayOption)` to control how Content and Feedback Widgets are displayed.
4+
* `IMMERSIVE` mode (default): Full-screen display (except cutouts).
5+
* `SAFE_AREA` mode: Omits status bar, navigation bar and cutouts when displaying webviews.
6+
* Added a new config option `disableGradualRequestCleaner()` to change request queue overflow behavior. When enabled, all overflowing requests are removed at once instead of in batches.
7+
* Added a new method `requestQueue().addCustomNetworkRequestHeaders(Map<String,String>)` for providing or overriding custom headers after init .
8+
9+
* Mitigated a potential issue where Remote Config calls could have blocked the main UI thread processes.
10+
11+
* Immediate requests now will be run by parallel executor instead of serial by default.
12+
13+
## 25.4.4
14+
* Improved disk size calculation in crash reports.
15+
16+
* Added a new function "recordMetrics(metricsOverride)" to send a device metrics request, accessible through the requestQueue interface.
17+
* Added a new Consent option "metrics" for controlling "recordMetrics" method. (This has no effect on Session metrics.)
18+
* Added "setRequestTimeoutDuration(requestTimeoutDuration)" init config method to change request timeout duration in seconds.
19+
20+
* Mitigated an issue displaying Content on API level 35 and above.
21+
22+
## 25.4.3
23+
* Improved Health Check metric information.
24+
* Improved Content display mechanics.
25+
26+
* Mitigated an issue that could have happened when navigating back from a Content.
27+
* Mitigated a persistency issue with configuration provided SBS and its initial state.
28+
* Mitigated an issue where SBS could have been fetched twice.
29+
30+
## 25.4.2
31+
* Mitigated an issue where latest fetched behavior settings were replacing the current settings instead of merging.
32+
33+
## 25.4.1
34+
* Improved request queue handling with a built-in backoff mechanism which is enabled by default.
35+
* Added "disableBackoffMechanism()" init config method to disable backoff behavior.
36+
* Added "disableSDKBehaviorSettingsUpdates()" init config method to disable server config updates.
37+
* Added fullscreen support for feedback widgets.
38+
* Extended the notification button URL handler to allow custom handling of URLs when notification buttons are clicked in the background.
39+
40+
* Deprecated "presentFeedbackWidget(widgetInfo, context, closeButtonText, devCallback)", replaced with "presentFeedbackWidget(widgetInfo, context, devCallback)" in the feedbacks.
41+
42+
## 25.4.0
43+
* ! Minor breaking change ! Removed Secure.ANDROID_ID usage in device id generation. The SDK now exclusively uses random UUIDs for device id generation.
44+
* ! Minor breaking change ! Server Configuration is now enabled by default. Changes made on SDK Manager > SDK Configuration on your server will affect SDK behavior directly.
45+
46+
* Added a Content feature method "refreshContentZone" that does a manual refresh.
47+
* Extended server configuration capabilities of the SDK.
48+
* Added a config method to provide server config in the initialization "setSDKBehaviorSettings(String)".
49+
* Added a new interface "CountlyNotificationButtonURLHandler" to allow custom handling of URLs when notification buttons are clicked. Could be set by "CountlyConfigPush.setNotificationButtonURLHandler"
50+
51+
* Mitigated an issue that caused PN message data collision if two message with same ID was received.
52+
53+
* Removed the deprecated function "CountlyConfig.setIdMode(idMode)"
54+
55+
* Deprecated the experimental configuration function enableServerConfiguration.
56+
57+
## 25.1.1
58+
* Mitigated an issue where after closing a content, they were not being fetched again.
59+
60+
## 25.1.0
61+
* Improved content size management of content blocks.
62+
63+
* Mitigated an issue where, the action bar was overlapping with the content display.
64+
* Improved the custom CertificateTrustManager to handle domain-specific configurations by supporting hostname-aware checkServerTrusted calls.
65+
166
## 24.7.8
267
* Added a config option to content (setZoneTimerInterval) to set content zone timer. (Experimental!)
368

@@ -7,7 +72,6 @@
772

873
## 24.7.6
974
* Added support for localization of content blocks.
10-
1175
* Mitigated an issue where visibility could have been wrongly assigned if a view was closed while going to background. (Experimental!)
1276
* Fixed a bug where passing the global content callback was not possible.
1377
* Mitigated an issue related to content actions navigation.

app-kotlin/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ plugins {
66
}
77

88
android {
9+
namespace "ly.count.android.demo.kotlin"
910
compileSdkVersion 35
1011

1112
defaultConfig {

app-kotlin/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="ly.count.android.demo.kotlin">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
43

54
<uses-permission android:name="android.permission.INTERNET"/>
65
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

app-native/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ apply plugin: 'com.android.application'
44
// apply plugin: ly.count.android.plugins.UploadSymbolsPlugin
55

66
android {
7+
namespace "ly.count.android.demo.crash"
78
compileSdkVersion 35
89

910
defaultConfig {

app-native/src/main/AndroidManifest.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="ly.count.android.demo.crash">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
43
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
54
<application
65
android:name=".App"

app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ android {
7474
// sourceCompatibility JavaVersion.VERSION_1_8
7575
// targetCompatibility JavaVersion.VERSION_1_8
7676
// }
77+
// kotlinOptions {
78+
// jvmTarget = "1.8"
79+
// }
7780

7881
/*
7982
//for automatic symbol upload

app/src/main/AndroidManifest.xml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="ly.count.android.demo">
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
43

54
<uses-permission android:name="android.permission.INTERNET"/>
65
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
@@ -101,6 +100,11 @@
101100
android:label="@string/activity_name_feedback"
102101
android:configChanges="orientation|screenSize"/>
103102

103+
<activity
104+
android:name=".ActivityExampleContentZone"
105+
android:label="@string/activity_name_content_zone"
106+
android:configChanges="orientation|screenSize"/>
107+
104108
<activity
105109
android:name=".ActivityExampleTests"
106110
android:exported="false"/>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package ly.count.android.demo;
2+
3+
import android.app.Activity;
4+
import android.os.Bundle;
5+
import android.view.View;
6+
import android.widget.EditText;
7+
import androidx.appcompat.app.AppCompatActivity;
8+
import java.util.UUID;
9+
import ly.count.android.sdk.Countly;
10+
11+
public class ActivityExampleContentZone extends AppCompatActivity {
12+
13+
Activity activity;
14+
EditText deviceIdEditText;
15+
16+
@Override
17+
public void onCreate(Bundle savedInstanceState) {
18+
activity = this;
19+
super.onCreate(savedInstanceState);
20+
setContentView(R.layout.activity_example_content_zone);
21+
deviceIdEditText = findViewById(R.id.editTextDeviceIdContentZone);
22+
}
23+
24+
public void onClickEnterContentZone(View v) {
25+
Countly.sharedInstance().contents().enterContentZone();
26+
}
27+
28+
public void onClickExitContentZone(View v) {
29+
Countly.sharedInstance().contents().exitContentZone();
30+
}
31+
32+
public void onClickRefreshContentZone(View v) {
33+
Countly.sharedInstance().contents().refreshContentZone();
34+
}
35+
36+
public void onClickChangeDeviceIdContentZone(View v) {
37+
String deviceId = deviceIdEditText.getText().toString();
38+
String newDeviceId = deviceId.isEmpty() ? UUID.randomUUID().toString() : deviceId;
39+
40+
Countly.sharedInstance().deviceId().setID(newDeviceId);
41+
}
42+
}

app/src/main/java/ly/count/android/demo/ActivityExampleOthers.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,12 +137,4 @@ public void onClickUpdateSession(View v) {
137137
public void onClickEndSession(View v) {
138138
Countly.sharedInstance().sessions().endSession();
139139
}
140-
141-
public void onClickFetchContents(View v) {
142-
Countly.sharedInstance().contents().enterContentZone();
143-
}
144-
145-
public void onClickExitContents(View v) {
146-
Countly.sharedInstance().contents().exitContentZone();
147-
}
148140
}

0 commit comments

Comments
 (0)