Added setup connectivity warning

pull/199/head
M66B 4 years ago
parent 7570a0849f
commit 9638bb8a3f

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

@ -112,6 +112,22 @@
app:layout_constraintStart_toEndOf="@id/one" app:layout_constraintStart_toEndOf="@id/one"
app:layout_constraintTop_toTopOf="@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 <ImageButton
android:id="@+id/ibHelp" android:id="@+id/ibHelp"
android:layout_width="48dp" android:layout_width="48dp"
@ -141,7 +157,7 @@
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/title1" /> app:layout_constraintTop_toBottomOf="@id/tvNoInternet" />
<eu.faircode.email.FixedTextView <eu.faircode.email.FixedTextView
android:id="@+id/tvQuickRemarkMultiple" android:id="@+id/tvQuickRemarkMultiple"

Loading…
Cancel
Save