Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit 0243a2a

Browse files
committed
Connection Status: Added Network Broadcast Receiver
Fixes #312
1 parent a4374c1 commit 0243a2a

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

Diff for: app/src/main/java/com/zulip/android/activities/ZulipActivity.java

+35
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import android.graphics.Bitmap;
2929
import android.graphics.PorterDuff;
3030
import android.graphics.drawable.Drawable;
31+
import android.net.ConnectivityManager;
3132
import android.net.Uri;
3233
import android.os.Build;
3334
import android.os.Bundle;
@@ -183,6 +184,7 @@ public class ZulipActivity extends BaseActivity implements
183184
private SimpleCursorAdapter emailActvAdapter;
184185
private AppBarLayout appBarLayout;
185186
private MutedTopics mMutedTopics;
187+
private BroadcastReceiver networkStateReceiver;
186188
private BroadcastReceiver onGcmMessage = new BroadcastReceiver() {
187189
public void onReceive(Context contenxt, Intent intent) {
188190
// Block the event before it propagates to show a notification.
@@ -553,6 +555,7 @@ public Cursor runQuery(CharSequence charSequence) {
553555
handleOnFragmentChange();
554556
calendar = Calendar.getInstance();
555557
setupSnackBar();
558+
setupNetworkBroadcastReceiver();
556559
}
557560

558561
/**
@@ -1976,6 +1979,7 @@ protected void onPause() {
19761979
Log.i("status", "suspend");
19771980

19781981
unregisterReceiver(onGcmMessage);
1982+
unregisterReceiver(networkStateReceiver);
19791983

19801984
if (event_poll != null) {
19811985
event_poll.abort();
@@ -1997,6 +2001,9 @@ protected void onResume() {
19972001
filter.setPriority(2);
19982002
registerReceiver(onGcmMessage, filter);
19992003

2004+
// Registering network state broadcast receiver
2005+
setupNetworkBroadcastReceiver();
2006+
20002007
homeList.onActivityResume();
20012008
if (narrowedList != null) {
20022009
narrowedList.onActivityResume();
@@ -2141,4 +2148,32 @@ public void onClick(View view) {
21412148
public enum Flag {
21422149
RESET_DATABASE,
21432150
}
2151+
public void setupNetworkBroadcastReceiver()
2152+
{
2153+
networkStateReceiver = new BroadcastReceiver() {
2154+
final CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinatorLayout);
2155+
@Override
2156+
public void onReceive(Context context, Intent intent) {
2157+
Log.d("Network Listener", "Network Type Changed");
2158+
boolean isConnected = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
2159+
if(isConnected){
2160+
//Disable fab when there is no connectivity
2161+
fab.setEnabled(false);
2162+
fab.setVisibility(View.INVISIBLE);
2163+
Snackbar.make(coordinatorLayout,R.string.no_connection,Snackbar.LENGTH_INDEFINITE).show();
2164+
Log.d("Network Listener", "No Internet");
2165+
}
2166+
else{
2167+
//Enabling fab when connection is reestablished
2168+
fab.setEnabled(true);
2169+
fab.setVisibility(View.VISIBLE);
2170+
Snackbar.make(coordinatorLayout,R.string.connection_established,Snackbar.LENGTH_SHORT).show();
2171+
Log.d("Network Listener", "Internet");
2172+
}
2173+
}
2174+
};
2175+
2176+
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
2177+
registerReceiver(networkStateReceiver, filter);
2178+
}
21442179
}

Diff for: app/src/main/res/values/strings.xml

+2
Original file line numberDiff line numberDiff line change
@@ -129,4 +129,6 @@
129129
<item quantity="one">%d new message</item>
130130
<item quantity="other">%d new messages</item>
131131
</plurals>
132+
<string name="no_connection">No Connection!</string>
133+
<string name="connection_established">Connection Established</string>
132134
</resources>

0 commit comments

Comments
 (0)