Skip to content

Commit 49ab84b

Browse files
Merge branch 'release/2.11.4'
2 parents b816388 + 1ee7ac4 commit 49ab84b

File tree

6 files changed

+74
-5
lines changed

6 files changed

+74
-5
lines changed

nearit-ui/src/main/java/com/nearit/ui_bindings/permissions/PermissionsRequestExtraParams.java

+14
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class PermissionsRequestExtraParams implements Parcelable {
1818
private final boolean autoStartRadar;
1919
private final boolean invisibleLayoutMode;
2020
private boolean noBeacon;
21+
private boolean noNotifications;
2122
private final boolean nonBlockingBeacon;
2223
private int headerResourceId;
2324
private int bluetoothResourceId;
@@ -35,6 +36,7 @@ public class PermissionsRequestExtraParams implements Parcelable {
3536
boolean autoStartRadar,
3637
boolean invisibleLayoutMode,
3738
boolean noBeacon,
39+
boolean noNotifications,
3840
boolean nonBlockingBeacon,
3941
int headerResourceId,
4042
int bluetoothResourceId,
@@ -50,6 +52,7 @@ public class PermissionsRequestExtraParams implements Parcelable {
5052
this.autoStartRadar = autoStartRadar;
5153
this.invisibleLayoutMode = invisibleLayoutMode;
5254
this.noBeacon = noBeacon;
55+
this.noNotifications = noNotifications;
5356
this.nonBlockingBeacon = nonBlockingBeacon;
5457
this.headerResourceId = headerResourceId;
5558
this.bluetoothResourceId = bluetoothResourceId;
@@ -95,6 +98,7 @@ public void writeToParcel(Parcel dest, int flags) {
9598
dest.writeInt(autoStartRadar ? 1 : 0);
9699
dest.writeInt(invisibleLayoutMode ? 1 : 0);
97100
dest.writeInt(noBeacon ? 1 : 0);
101+
dest.writeInt(noNotifications ? 1 : 0);
98102
dest.writeInt(nonBlockingBeacon ? 1 : 0);
99103
dest.writeInt(headerResourceId);
100104
dest.writeInt(bluetoothResourceId);
@@ -120,6 +124,7 @@ public PermissionsRequestExtraParams createFromParcel(Parcel in) {
120124
boolean autoStartRadar = in.readInt() != 0;
121125
boolean invisibleLayoutMode = in.readInt() != 0;
122126
boolean noBeacon = in.readInt() != 0;
127+
boolean noNotifications = in.readInt() != 0;
123128
boolean nonBlockingBeacon = in.readInt() != 0;
124129
int headerResourceId = in.readInt();
125130
int bluetoothResourceId = in.readInt();
@@ -137,6 +142,7 @@ public PermissionsRequestExtraParams createFromParcel(Parcel in) {
137142
autoStartRadar,
138143
invisibleLayoutMode,
139144
noBeacon,
145+
noNotifications,
140146
nonBlockingBeacon,
141147
headerResourceId,
142148
bluetoothResourceId,
@@ -172,6 +178,10 @@ public boolean isNoBeacon() {
172178
return noBeacon;
173179
}
174180

181+
public boolean isNoNotifications() {
182+
return noNotifications;
183+
}
184+
175185
public boolean isNonBlockingBeacon() {
176186
return nonBlockingBeacon;
177187
}
@@ -216,6 +226,10 @@ public void setNoBeacon(boolean noBeacon) {
216226
this.noBeacon = noBeacon;
217227
}
218228

229+
public void setNoNotifications(boolean noNotifications) {
230+
this.noNotifications = noNotifications;
231+
}
232+
219233
public String getExplanation() {
220234
return explanation;
221235
}

nearit-ui/src/main/java/com/nearit/ui_bindings/permissions/PermissionsRequestIntentBuilder.java

+12
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class PermissionsRequestIntentBuilder {
1717
private boolean radarAutoStart = false;
1818
private boolean invisibleLayoutMode = false;
1919
private boolean noBeacon = false;
20+
private boolean noNotifications = false;
2021
private boolean nonBlockingBeacon = false;
2122
private int headerResourceId;
2223
private int bluetoothResourceId;
@@ -82,6 +83,16 @@ public PermissionsRequestIntentBuilder noBeacon() {
8283
return this;
8384
}
8485

86+
/**
87+
* Avoid handling notification "permission"
88+
* <p>
89+
* <p> Default: false
90+
*/
91+
public PermissionsRequestIntentBuilder noNotifications() {
92+
noNotifications = true;
93+
return this;
94+
}
95+
8596
/**
8697
* Sets BLE requirement as non blocking
8798
* <p>
@@ -205,6 +216,7 @@ private PermissionsRequestExtraParams getParams() {
205216
radarAutoStart,
206217
invisibleLayoutMode,
207218
noBeacon,
219+
noNotifications,
208220
nonBlockingBeacon,
209221
headerResourceId,
210222
bluetoothResourceId,

nearit-ui/src/main/java/com/nearit/ui_bindings/permissions/invisible/NearItInvisiblePresenterImpl.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void onLocationServicesOn() {
8686
if (!params.isNoBeacon() && permissionsManager.isBleAvailable() && !permissionsManager.isBluetoothOn()) {
8787
view.turnOnBluetooth();
8888
} else {
89-
if (!permissionsManager.areNotificationsEnabled()) {
89+
if (!permissionsManager.areNotificationsEnabled() && !params.isNoNotifications()) {
9090
view.showNotificationsDialog();
9191
} else {
9292
finalCheck();
@@ -122,7 +122,7 @@ public void handleActivityResult(int requestCode, int resultCode, Intent data) {
122122
if (requestCode == NEAR_BLUETOOTH_SETTINGS_CODE) {
123123
if (resultCode == Activity.RESULT_OK) {
124124
if (checkLocation()) {
125-
if (permissionsManager.areNotificationsEnabled()) {
125+
if (permissionsManager.areNotificationsEnabled() || params.isNoNotifications()) {
126126
finalCheck();
127127
} else {
128128
notificationsDialogLaunched = true;
@@ -203,7 +203,7 @@ private void askLocationServices() {
203203
if (permissionsManager.isBleAvailable() && !params.isNoBeacon() && !permissionsManager.isBluetoothOn()) {
204204
onLocationServicesOn();
205205
} else {
206-
if (!permissionsManager.areNotificationsEnabled()) {
206+
if (!permissionsManager.areNotificationsEnabled() && !params.isNoNotifications()) {
207207
state.setNotificationsAsked();
208208
view.showNotificationsDialog();
209209
} else {

nearit-ui/src/test/java/com/nearit/ui_bindings/permissions/NearItInvisiblePresenterImplTest.java

+43
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,20 @@ public void onStart_ifLocationGrantedONBluetoothAvailableAndONNotificationsOff_s
161161
verify(view).showNotificationsDialog();
162162
}
163163

164+
@Test
165+
public void onStart_locationGrantedAndON_bluetoothAvailableAndON_NotificationOff_noNotification_doNOTshowDialog() {
166+
whenLocationPermissionIsGranted();
167+
whenLocationIsOn();
168+
whenBleIsAvailable();
169+
whenBluetoothIsOn();
170+
whenNotificationsAreOff();
171+
whenNoNotifications();
172+
173+
presenter.start();
174+
175+
verify(view, never()).showNotificationsDialog();
176+
}
177+
164178
@Test
165179
public void onLocationResultKO_finishWithSomeResult() {
166180
whenBleIsAvailable();
@@ -197,6 +211,20 @@ public void onBluetoothResultOK_ifNotificationsOFF_showDialog() {
197211
verify(view).showNotificationsDialog();
198212
}
199213

214+
@Test
215+
public void onBluetoothResultOK_ifNotificationsOFF_ifNoNotification_doNOTshowDialog() {
216+
whenLocationPermissionIsGranted();
217+
whenLocationIsOn();
218+
whenBleIsAvailable();
219+
whenBluetoothIsOn();
220+
whenNotificationsAreOff();
221+
whenNoNotifications();
222+
223+
presenter.handleActivityResult(NEAR_BLUETOOTH_SETTINGS_CODE, RESULT_OK, intent);
224+
225+
verify(view, never()).showNotificationsDialog();
226+
}
227+
200228
@Test
201229
public void onBluetoothResultOK_ifLocationGrantedButOFF_turnItOn() {
202230
whenLocationPermissionIsGranted();
@@ -236,6 +264,17 @@ public void onLocationServiceOn_ifNoBeaconAndNotificationOff_showNotificationsDi
236264
verify(view).showNotificationsDialog();
237265
}
238266

267+
@Test
268+
public void onLocationServiceOn_ifNoBeaconAndNotificationOff_ifNoNotification_showNotificationsDialog() {
269+
whenNoBeacon();
270+
whenNotificationsAreOff();
271+
whenNoNotifications();
272+
273+
presenter.onLocationServicesOn();
274+
275+
verify(view, never()).showNotificationsDialog();
276+
}
277+
239278
@Test
240279
public void onLocationServiceOn_ifBluetoothAvailableAndOff_turnItOn() {
241280
whenBluetoothIsOff();
@@ -349,6 +388,10 @@ private void whenNoBeacon() {
349388
when(params.isNoBeacon()).thenReturn(true);
350389
}
351390

391+
private void whenNoNotifications() {
392+
when(params.isNoNotifications()).thenReturn(true);
393+
}
394+
352395
private void whenBleIsAvailable() {
353396
when(permissionsManager.isBleAvailable()).thenReturn(true);
354397
}

sample-kotlin/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ dependencies {
5757

5858
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
5959

60-
// implementation 'it.near.sdk:nearit-ui:2.11.3'
60+
// implementation 'it.near.sdk:nearit-ui:2.11.4'
6161
implementation project(':nearit-ui')
6262

6363
implementation 'it.near.sdk:nearit:2.11.2'

sample/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ android {
6262
dependencies {
6363
implementation fileTree(include: ['*.jar'], dir: 'libs')
6464

65-
// implementation 'it.near.sdk:nearit-ui:2.11.3'
65+
// implementation 'it.near.sdk:nearit-ui:2.11.4'
6666
implementation project(':nearit-ui')
6767

6868
implementation 'it.near.sdk:nearit:2.11.2'

0 commit comments

Comments
 (0)