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

View File

@ -112,6 +112,22 @@
app:layout_constraintStart_toEndOf="@id/one"
app:layout_constraintTop_toTopOf="@id/one" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvNoInternet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:drawableStart="@drawable/twotone_warning_24"
android:drawablePadding="6dp"
android:drawableTint="?attr/colorWarning"
android:text="@string/title_no_internet"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textColor="?attr/colorWarning"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title1" />
<ImageButton
android:id="@+id/ibHelp"
android:layout_width="48dp"
@ -141,7 +157,7 @@
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title1" />
app:layout_constraintTop_toBottomOf="@id/tvNoInternet" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvQuickRemarkMultiple"