add param dialog to app

This commit is contained in:
afischerdev 2023-05-04 11:19:07 +02:00
parent cdda6ee32c
commit 3976750f75
11 changed files with 789 additions and 96 deletions

View file

@ -829,7 +829,10 @@ public class BRouterView extends View {
for (int i = 0; i < 6; i++) {
if (checkedModes[i]) {
writeRawTrackToMode(routingModes[i]);
ServiceModeConfig smc = new ServiceModeConfig(routingModes[i], profileName);
String s = map.get(routingModes[i]).params;
String p = map.get(routingModes[i]).profile;
if (s == null || !p.equals(profileName)) s = "noparams";
ServiceModeConfig smc = new ServiceModeConfig(routingModes[i], profileName, s);
for (OsmNodeNamed nogo : nogoVetoList) {
smc.nogoVetos.add(nogo.ilon + "," + nogo.ilat);
}
@ -860,6 +863,81 @@ public class BRouterView extends View {
((BRouterActivity) getContext()).showModeConfigOverview(msg.toString());
}
public void configureServiceParams(String profile, String sparams) {
List<ServiceModeConfig> map = new ArrayList<>();
BufferedReader br = null;
String modesFile = modesDir + "/serviceconfig.dat";
try {
br = new BufferedReader(new FileReader(modesFile));
for (; ; ) {
String line = br.readLine();
if (line == null)
break;
ServiceModeConfig smc = new ServiceModeConfig(line);
if (smc.profile.equals(profile)) smc.params = sparams;
map.add(smc);
}
} catch (Exception ignored) {
} finally {
if (br != null)
try {
br.close();
} catch (Exception ignored) {
}
}
// now write new config
BufferedWriter bw = null;
StringBuilder msg = new StringBuilder("Mode mapping is now:\n");
msg.append("( [");
msg.append(nogoVetoList.size() > 0 ? nogoVetoList.size() : "..").append("] counts nogo-vetos)\n");
try {
bw = new BufferedWriter(new FileWriter(modesFile));
for (ServiceModeConfig smc : map) {
bw.write(smc.toLine());
bw.write('\n');
msg.append(smc).append('\n');
}
} catch (Exception ignored) {
} finally {
if (bw != null)
try {
bw.close();
} catch (Exception ignored) {
}
}
((BRouterActivity) getContext()).showModeConfigOverview(msg.toString());
}
public String getConfigureServiceParams(String profile) {
List<ServiceModeConfig> map = new ArrayList<>();
BufferedReader br = null;
String modesFile = modesDir + "/serviceconfig.dat";
try {
br = new BufferedReader(new FileReader(modesFile));
for (; ; ) {
String line = br.readLine();
if (line == null)
break;
ServiceModeConfig smc = new ServiceModeConfig(line);
if (smc.profile.equals(profile)) {
if (!smc.params.equals("noparams")) return smc.params;
else return "";
}
map.add(smc);
}
} catch (Exception ignored) {
} finally {
if (br != null)
try {
br.close();
} catch (Exception ignored) {
}
}
// no profile found
return null;
}
public void shareTrack() {
File track = new File(trackOutfile);
// Copy file to cache to ensure FileProvider allows sharing the file