Always show main dialog (with Download Manager)

It can be confusing when the dialog is shown only sometimes and there is
no indication why the dialog isn't shown. The connection status can also
change after the start of the download manager so it has to handle those
errors anyway.

Closes #389
This commit is contained in:
Manuel Fuhr 2022-01-11 14:49:27 +01:00
parent c80ad5f03b
commit db42ae9f33

View file

@ -1,41 +1,32 @@
package btools.routingapp;
import java.io.File;
import java.lang.reflect.Method;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import android.app.Activity;
import android.app.ActivityManager;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.StatFs;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.util.Log;
import android.view.KeyEvent;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.os.EnvironmentCompat;
import java.io.File;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import btools.router.OsmNodeNamed;
public class BRouterActivity extends AppCompatActivity implements ActivityCompat.OnRequestPermissionsResultCallback {
@ -391,39 +382,12 @@ public class BRouterActivity extends AppCompatActivity implements ActivityCompat
private String maptoolDirCandidate;
public boolean isOnline(Context context) {
boolean result = false;
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Network nw = connectivityManager.getActiveNetwork();
if (nw == null) return false;
NetworkCapabilities nwc = connectivityManager.getNetworkCapabilities(nw);
if (nwc == null) return false;
result = nwc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) |
nwc.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) |
nwc.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET);
} else {
NetworkInfo ni = connectivityManager.getActiveNetworkInfo();
if (ni == null) return false;
result = ni.getType() == ConnectivityManager.TYPE_WIFI ||
ni.getType() == ConnectivityManager.TYPE_MOBILE ||
ni.getType() == ConnectivityManager.TYPE_ETHERNET;
}
return result;
}
@SuppressWarnings("deprecation")
public void selectProfile(String[] items) {
availableProfiles = items;
// if we have internet access, first show the main action dialog
if (isOnline(this)) {
// show main dialog
showDialog(DIALOG_MAINACTION_ID);
} else {
showDialog(DIALOG_SELECTPROFILE_ID);
}
}
@SuppressWarnings("deprecation")