GH#1480: Improve conversion of incoming NS-PS name.
This commit is contained in:
parent
9309729ca1
commit
51315fc942
|
@ -101,6 +101,11 @@ public class ProfileSwitch implements Interval, DataPointWithLabelInterface {
|
||||||
return profile;
|
return profile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Note: the name returned here is used as the PS name when uploading to NS. When such a PS is retrieved
|
||||||
|
* again from NS, the added parts must be removed again, see
|
||||||
|
* {@link info.nightscout.utils.PercentageSplitter#pureName} */
|
||||||
|
// TODO refactor to remove this coupling; either move this to a renamed PercentageSplitter, e.g.
|
||||||
|
// ProfileSwitchNameConverter to convert in both directions, are add the pureName method here.
|
||||||
public String getCustomizedName() {
|
public String getCustomizedName() {
|
||||||
String name = profileName;
|
String name = profileName;
|
||||||
if(LocalProfilePlugin.LOCAL_PROFILE.equals(name)){
|
if(LocalProfilePlugin.LOCAL_PROFILE.equals(name)){
|
||||||
|
|
|
@ -9,11 +9,14 @@ import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class PercentageSplitter {
|
public class PercentageSplitter {
|
||||||
// "Profile name (200%,2h)"
|
// "Profile name (200%,2h)"
|
||||||
private static final Pattern percentagePattern = Pattern.compile("(.+)\\(\\d+%,\\d+h\\)");
|
private static final Pattern percentagePattern = Pattern.compile("(.+)\\(\\d+%,-?\\d+h\\)");
|
||||||
// "Profile name (200%)"
|
// "Profile name (200%)"
|
||||||
private static final Pattern percentageShiftPattern = Pattern.compile("(.+)\\(\\d+%\\)");
|
private static final Pattern percentageShiftPattern = Pattern.compile("(.+)\\(\\d+%\\)");
|
||||||
|
|
||||||
/** Removes the suffix for percentage and timeshift from a profile name. */
|
/** Removes the suffix for percentage and timeshift from a profile name. This is the inverse of what
|
||||||
|
* {@link info.nightscout.androidaps.db.ProfileSwitch#getCustomizedName()} does.
|
||||||
|
* Since the customized name is used for the PS upload to NS, this is needed get the original profile name
|
||||||
|
* when retrieving the PS from NS again. */
|
||||||
public static String pureName(String name) {
|
public static String pureName(String name) {
|
||||||
Matcher percentageMatch = percentagePattern.matcher(name);
|
Matcher percentageMatch = percentagePattern.matcher(name);
|
||||||
if (percentageMatch.find()) {
|
if (percentageMatch.find()) {
|
||||||
|
|
|
@ -19,7 +19,12 @@ public class PercentageSplitterTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void pureNameTestPercentageAndShift() {
|
public void pureNameTestPercentageAndPositiveTimeShift() {
|
||||||
assertEquals("Fiasp", PercentageSplitter.pureName("Fiasp (101%,2h)"));
|
assertEquals("Fiasp", PercentageSplitter.pureName("Fiasp (101%,2h)"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void pureNameTestPercentageAndNegtiveTimeShift() {
|
||||||
|
assertEquals("Fiasp", PercentageSplitter.pureName("Fiasp (101%,-2h)"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue