diff --git a/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java b/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java index be63b17..7063d71 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java @@ -45,11 +45,9 @@ public class BRouterActivity extends AppCompatActivity implements ActivityCompat private static final int DIALOG_SELECTBASEDIR_ID = 11; private static final int DIALOG_MAINACTION_ID = 12; private static final int DIALOG_OLDDATAHINT_ID = 13; - private static final int DIALOG_SHOW_WP_HELP_ID = 14; - private static final int DIALOG_SHOW_WP_SCANRESULT_ID = 15; private static final int DIALOG_SHOW_REPEAT_TIMEOUT_HELP_ID = 16; private static final int DIALOG_SHOW_API23_HELP_ID = 17; - + private final Set dialogIds = new HashSet<>(); private BRouterView mBRouterView; private PowerManager mPowerManager; private WakeLock mWakeLock; @@ -66,8 +64,6 @@ public class BRouterActivity extends AppCompatActivity implements ActivityCompat private String[] availableVias; private Set selectedVias; private List nogoList; - private String maptoolDirCandidate; - private final Set dialogIds = new HashSet<>(); private String errorMessage; private String title; private int wpCount; @@ -148,27 +144,6 @@ public class BRouterActivity extends AppCompatActivity implements ActivityCompat } }); return builder.create(); - case DIALOG_SHOW_WP_HELP_ID: - builder - .setTitle("No Waypoint Database found") - .setMessage( - "The simple scan did not find any map-tool directory including a waypoint database. " - + "Reason could be there is no map-tool installed (osmand, locus or oruxmaps), or at an " - + "unusual path, or it contains no waypoints yet. That's o.k. if you want to use BRouter " - + "in server-mode only - in that case you can still use the 'Server-Mode' button to " - + "configure the profile mapping. But you will not be able to use nogo-points or do " - + "long distance calculations. If you know the path to your map-tool, you can manually " - + "configure it in 'storageconfig.txt'. Or I can do an extended scan searching " - + "your sd-card for a valid waypoint database").setPositiveButton("Scan", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - mBRouterView.startWpDatabaseScan(); - } - }).setNegativeButton("Exit", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - finish(); - } - }); - return builder.create(); case DIALOG_SHOW_API23_HELP_ID: builder .setTitle("Android >=6 limitations") @@ -202,20 +177,6 @@ public class BRouterActivity extends AppCompatActivity implements ActivityCompat } }); return builder.create(); - case DIALOG_SHOW_WP_SCANRESULT_ID: - builder - .setTitle("Waypoint Database ") - .setMessage("Found Waypoint-Database(s) for maptool-dir: " + maptoolDirCandidate - + " Configure that?").setPositiveButton("Yes", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - mBRouterView.saveMaptoolDir(maptoolDirCandidate); - } - }).setNegativeButton("No", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - finish(); - } - }); - return builder.create(); case DIALOG_OLDDATAHINT_ID: builder .setTitle("Local setup needs reset") @@ -448,22 +409,13 @@ public class BRouterActivity extends AppCompatActivity implements ActivityCompat } public void showWaypointDatabaseHelp() { - if (mBRouterView.canAccessSdCard) { - showNewDialog(DIALOG_SHOW_WP_HELP_ID); - } else { - showNewDialog(DIALOG_SHOW_API23_HELP_ID); - } + showNewDialog(DIALOG_SHOW_API23_HELP_ID); } public void showRepeatTimeoutHelp() { showNewDialog(DIALOG_SHOW_REPEAT_TIMEOUT_HELP_ID); } - public void showWpDatabaseScanSuccess(String bestGuess) { - maptoolDirCandidate = bestGuess; - showNewDialog(DIALOG_SHOW_WP_SCANRESULT_ID); - } - public void selectNogos(List nogoList) { this.nogoList = nogoList; showDialog(DIALOG_NOGOSELECT_ID); diff --git a/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java b/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java index ada4a39..5455db0 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/BRouterView.java @@ -75,7 +75,6 @@ public class BRouterView extends View { private boolean needsViaSelection; private boolean needsNogoSelection; private boolean needsWaypointSelection; - private WpDatabaseScanner dataBaseScanner; private long lastDataTime = System.currentTimeMillis(); private CoordinateReader cor; private int[] imgPixels; @@ -428,17 +427,6 @@ public class BRouterView extends View { } } - public void startWpDatabaseScan() { - dataBaseScanner = new WpDatabaseScanner(); - dataBaseScanner.start(); - invalidate(); - } - - public void saveMaptoolDir(String dir) { - ConfigMigration.saveAdditionalMaptoolDir(segmentDir, dir); - ((BRouterActivity) getContext()).showResultMessage("Success", "please restart to use new config", -1); - } - public void finishWaypointSelection() { needsWaypointSelection = false; } @@ -715,51 +703,7 @@ public class BRouterView extends View { } } - private void showDatabaseScanning(Canvas canvas) { - try { - Thread.sleep(100); - } catch (InterruptedException ignored) { - } - Paint paint1 = new Paint(); - paint1.setColor(Color.WHITE); - paint1.setTextSize(20); - - Paint paint2 = new Paint(); - paint2.setColor(Color.WHITE); - paint2.setTextSize(10); - - String currentDir = dataBaseScanner.getCurrentDir(); - String bestGuess = dataBaseScanner.getBestGuess(); - - if (currentDir == null) // scan finished - { - if (bestGuess.length() == 0) { - ((BRouterActivity) getContext()).showErrorMessage("scan did not find any possible waypoint database"); - } else { - ((BRouterActivity) getContext()).showWpDatabaseScanSuccess(bestGuess); - } - cr = null; - dataBaseScanner = null; - waitingForSelection = true; - return; - } - - canvas.drawText("Scanning:", 10, 30, paint1); - canvas.drawText(currentDir, 0, 60, paint2); - canvas.drawText("Best Guess:", 10, 90, paint1); - canvas.drawText(bestGuess, 0, 120, paint2); - canvas.drawText("Last Error:", 10, 150, paint1); - canvas.drawText(dataBaseScanner.getLastError(), 0, 180, paint2); - - invalidate(); - } - private void _onDraw(Canvas canvas) { - if (dataBaseScanner != null) { - showDatabaseScanning(canvas); - return; - } - if (waitingForSelection) return; diff --git a/brouter-routing-app/src/main/java/btools/routingapp/WpDatabaseScanner.java b/brouter-routing-app/src/main/java/btools/routingapp/WpDatabaseScanner.java deleted file mode 100644 index 0c91da0..0000000 --- a/brouter-routing-app/src/main/java/btools/routingapp/WpDatabaseScanner.java +++ /dev/null @@ -1,107 +0,0 @@ -package btools.routingapp; - -import java.io.File; - -public class WpDatabaseScanner extends Thread { - private String currentDir = ""; - private String bestGuess = ""; - private String lastError = ""; - - private Object currentDirSync = new Object(); - - private long maxtimestamp = 0; - - public String getCurrentDir() { - synchronized (currentDirSync) { - return currentDir; - } - } - - private void setCurrentDir(String dir) { - synchronized (currentDirSync) { - currentDir = dir; - } - } - - public String getBestGuess() { - synchronized (currentDirSync) { - return bestGuess; - } - } - - public String getLastError() { - synchronized (currentDirSync) { - return lastError; - } - } - - private void setLastError(String msg) { - synchronized (currentDirSync) { - lastError = msg; - } - } - - private static String[] vetos = new String[]{"dev", "sys", "system", "proc", "etc", "init", "d", "cache", "acct", "data"}; - - private void scan(File dir, int level) { - if (level > 8) { - return; - } - - try { - if (dir.isDirectory()) { - if (level == 1) { - String name = dir.getName(); - for (String veto : vetos) { - if (veto.equals(name)) { - return; - } - } - } - - testPath(dir.getPath()); - File[] childs = dir.listFiles(); - if (childs == null) { - return; - } - for (File child : childs) { - scan(child, level + 1); - } - } - } catch (Exception e) { - setLastError(e.toString()); - } - } - - private void testPath(String path) throws Exception { - setCurrentDir(path); - - testReader(new CoordinateReaderOsmAnd(path)); - testReader(new CoordinateReaderOsmAnd(path, true)); - testReader(new CoordinateReaderLocus(path)); - testReader(new CoordinateReaderOrux(path)); - } - - private void testReader(CoordinateReader cor) throws Exception { - long ts = cor.getTimeStamp(); - if (ts > maxtimestamp) { - maxtimestamp = ts; - synchronized (currentDirSync) { - bestGuess = cor.basedir; - } - } else if (ts > 0 && ts == maxtimestamp) { - synchronized (currentDirSync) { - if (cor.basedir.length() < bestGuess.length()) { - bestGuess = cor.basedir; - } - } - } - } - - @Override - public void run() { - scan(new File("/"), 0); - setCurrentDir(null); - - } -}