Added setup connectivity warning

This commit is contained in:
M66B
2021-06-03 06:06:16 +02:00
parent 7570a0849f
commit 9638bb8a3f
2 changed files with 58 additions and 1 deletions

View File

@@ -31,6 +31,7 @@ import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.net.ConnectivityManager;
import android.net.Network;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@@ -62,6 +63,7 @@ import java.util.List;
public class FragmentSetup extends FragmentBase {
private ViewGroup view;
private TextView tvNoInternet;
private ImageButton ibHelp;
private Button btnQuick;
private TextView tvQuickNew;
@@ -127,6 +129,7 @@ public class FragmentSetup extends FragmentBase {
// Get controls
tvNoInternet = view.findViewById(R.id.tvNoInternet);
ibHelp = view.findViewById(R.id.ibHelp);
btnQuick = view.findViewById(R.id.btnQuick);
tvQuickNew = view.findViewById(R.id.tvQuickNew);
@@ -429,6 +432,7 @@ public class FragmentSetup extends FragmentBase {
: R.color.lightColorBackground_cards));
}
tvNoInternet.setVisibility(View.GONE);
btnIdentity.setEnabled(false);
tvNoComposable.setVisibility(View.GONE);
@@ -517,6 +521,11 @@ public class FragmentSetup extends FragmentBase {
public void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
cm.registerDefaultNetworkCallback(networkCallback);
}
// Doze
Boolean ignoring = Helper.isIgnoringOptimizations(getContext());
@@ -553,6 +562,16 @@ public class FragmentSetup extends FragmentBase {
}
}
@Override
public void onPause() {
super.onPause();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
ConnectivityManager cm = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE);
cm.unregisterNetworkCallback(networkCallback);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
for (int i = 0; i < permissions.length; i++)
@@ -571,6 +590,28 @@ public class FragmentSetup extends FragmentBase {
btnPermissions.setEnabled(!granted);
}
private ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
@Override
public void onAvailable(Network network) {
view.post(new Runnable() {
@Override
public void run() {
tvNoInternet.setVisibility(View.GONE);
}
});
}
@Override
public void onLost(@NonNull Network network) {
view.post(new Runnable() {
@Override
public void run() {
tvNoInternet.setVisibility(View.VISIBLE);
}
});
}
};
public static class FragmentDialogDoze extends FragmentDialogBase {
@NonNull
@Override