Skip to content

Commit 9ea23c2

Browse files
committed
hotfix for importing old geofences
hotfix for importing old geofences
1 parent 4218a1d commit 9ea23c2

28 files changed

+115
-87
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ android {
88
defaultConfig {
99
minSdkVersion 16
1010
targetSdkVersion 23
11-
versionCode 62
12-
versionName '0.1.217'
11+
versionCode 64
12+
versionName '0.1.218'
1313
multiDexEnabled true
1414
}
1515

app/src/main/java/nl/hnogames/domoticz/Containers/LocationInfo.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,18 @@ public Geofence toGeofence() {
9494
if (radius <= 0)
9595
radius = 400;//default
9696

97-
// Build a new Geofence object.
98-
return new Geofence.Builder()
99-
.setRequestId(String.valueOf(id))
100-
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
101-
Geofence.GEOFENCE_TRANSITION_EXIT)
102-
.setCircularRegion(latLng.latitude, latLng.longitude, radius)
103-
.setExpirationDuration(Geofence.NEVER_EXPIRE)
104-
.build();
97+
try {
98+
// Build a new Geofence object.
99+
return new Geofence.Builder()
100+
.setRequestId(String.valueOf(id))
101+
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
102+
Geofence.GEOFENCE_TRANSITION_EXIT)
103+
.setCircularRegion(latLng.latitude, latLng.longitude, radius)
104+
.setExpirationDuration(Geofence.NEVER_EXPIRE)
105+
.build();
106+
}catch(Exception ex){
107+
// Wrong LocationInfo data detected
108+
return null;
109+
}
105110
}
106111
}

app/src/main/java/nl/hnogames/domoticz/Utils/SharedPrefUtil.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@
2929
import android.content.res.TypedArray;
3030
import android.os.Bundle;
3131
import android.preference.PreferenceManager;
32+
import android.support.annotation.NonNull;
3233
import android.util.Log;
34+
import android.widget.Toast;
3335

3436
import com.google.android.gms.common.api.GoogleApiClient;
3537
import com.google.android.gms.location.Geofence;
@@ -45,8 +47,11 @@
4547
import java.io.ObjectOutputStream;
4648
import java.util.ArrayList;
4749
import java.util.Arrays;
50+
import java.util.Collection;
4851
import java.util.HashSet;
52+
import java.util.Iterator;
4953
import java.util.List;
54+
import java.util.ListIterator;
5055
import java.util.Map;
5156
import java.util.Set;
5257

@@ -583,18 +588,33 @@ public void saveLocations(List<LocationInfo> locations) {
583588
}
584589

585590
public ArrayList<LocationInfo> getLocations() {
591+
List<LocationInfo> returnValue = new ArrayList<LocationInfo>();
586592
List<LocationInfo> locations;
593+
boolean incorrectDetected=false;
594+
587595
if (prefs.contains(PREF_GEOFENCE_LOCATIONS)) {
588596
String jsonLocations = prefs.getString(PREF_GEOFENCE_LOCATIONS, null);
589597
Gson gson = new Gson();
590598
LocationInfo[] locationItem = gson.fromJson(jsonLocations,
591599
LocationInfo[].class);
592600
locations = Arrays.asList(locationItem);
593-
locations = new ArrayList<>(locations);
601+
602+
for (LocationInfo l : locations){
603+
if(l.toGeofence() != null){
604+
returnValue.add(l);
605+
}
606+
else {
607+
incorrectDetected=true;
608+
}
609+
}
610+
if(incorrectDetected) {
611+
saveLocations(returnValue);
612+
Toast.makeText(mContext, "Due to changes on Geofencing, please recreate your locations", Toast.LENGTH_LONG).show();
613+
}
594614
} else
595615
return null;
596616

597-
return (ArrayList<LocationInfo>) locations;
617+
return (ArrayList<LocationInfo>) returnValue;
598618
}
599619

600620
public LocationInfo getLocation(int id) {

app/src/main/res/layout/dialog_scene_info.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@
4242
android:paddingBottom="2dp"
4343
android:paddingLeft="16dp"
4444
android:paddingRight="2dp"
45-
android:paddingTop="2dp"
46-
android:text="@string/idx_valuePlaceholder" />
45+
android:paddingTop="2dp" />
4746

4847
<TextView
4948
android:id="@+id/LastUpdate_value"

app/src/main/res/layout/dialog_switch_info.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,7 @@
5656
android:paddingBottom="2dp"
5757
android:paddingLeft="16dp"
5858
android:paddingRight="2dp"
59-
android:paddingTop="2dp"
60-
android:text="@string/idx_valuePlaceholder" />
59+
android:paddingTop="2dp" />
6160

6261
<TextView
6362
android:id="@+id/LastUpdate_value"

app/src/main/res/layout/dialog_utilities_info.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@
4343
android:paddingBottom="2dp"
4444
android:paddingLeft="16dp"
4545
android:paddingRight="2dp"
46-
android:paddingTop="2dp"
47-
android:text="@string/idx_valuePlaceholder" />
46+
android:paddingTop="2dp" />
4847

4948
<TextView
5049
android:id="@+id/LastUpdate_value"

app/src/main/res/layout/dialog_weather.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,7 @@
9999
android:paddingBottom="2dp"
100100
android:paddingLeft="16dp"
101101
android:paddingRight="2dp"
102-
android:paddingTop="2dp"
103-
android:text="@string/idx_valuePlaceholder" />
102+
android:paddingTop="2dp" />
104103

105104
<TextView
106105
android:id="@+id/LastUpdate_value"

app/src/main/res/values-ca/strings_switches.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
<string name="title_switches">Interruptors</string>
55
<string name="txt_notAvailable">N/D</string>
66
<string name="idx">IDX</string>
7-
<string name="idx_valuePlaceholder">33</string>
87
<string name="placeholder_value">255</string>
98
<string name="color_set">Color definit per</string>
9+
<string name="state_set">State set for</string>
1010
<string name="error_favorite">No s\'ha pogut definit el preferit</string>
1111
<string name="error_logs">No s\'ha trobat cap registre per mostrar</string>
1212
<string name="error_color">No s\'ha pogut canviar el color</string>
13+
<string name="error_state">Could not change the state</string>
1314
<string name="error_timer">No s\'ha pogut mostrar els temporitzadors</string>
14-
<string name="error_level">Canviant el nivell per l\'interruptor</string>
15+
<string name="set_level_switch">"Setting level for switch: %1$s to %2$d"</string>
1516
</resources>

app/src/main/res/values-ca/strings_welcome.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@
22
<!--Generated by crowdin.com-->
33
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
44
<string name="welcome_title_activity_welcome">Benvinguts</string>
5-
<string name="welcome_info_domoticz">Domoticz és un sistema d\'automatizació domèstic que us permet monitoritzar
6-
i configurar dispositius com: llums, interruptors, diferents sensors/comptadors de
7-
temperatura, pluja, vent, UV, elèctricitat, gas, aigua i molts més.
8-
Podeu enviar notificacions/alertes a qualsevol dispositiu mòbil.</string>
5+
<string name="welcome_info_domoticz">Domoticz és un sistema d\'automatizació domèstic que us permet monitoritzar i configurar dispositius com: llums, interruptors, diferents sensors/comptadors de temperatura, pluja, vent, UV, elèctricitat, gas, aigua i molts més. Podeu enviar notificacions/alertes a qualsevol dispositiu mòbil.</string>
96
<string name="welcome_info_swipe">Llisqueu cap a la dreta o utilitzeu els botons de navegació de sota per continuar</string>
107
<string name="welcome_info_settings1">La pàgina següent és per a la configuració de Domoticz.</string>
118
<string name="welcome_info_settings2">

app/src/main/res/values-de/strings.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
<string name="normal">Normal</string>
3333
<string name="economy">Economy</string>
3434
<string name="away">Away</string>
35-
<string name="day_off">Day off</string>
36-
<string name="custom">Custom</string>
37-
<string name="heating_off">Heating off</string>
35+
<string name="day_off">Ausnahmetag</string>
36+
<string name="custom">Sonderprogramm</string>
37+
<string name="heating_off">Heizung aus</string>
3838
<string name="debug_textview_title">Debuginformationen</string>
3939
<string name="msg_copiedToClipboard">Text in Zwischenablage kopiert</string>
4040
<string name="favorite">Favorit</string>

0 commit comments

Comments
 (0)