28
28
import android .graphics .Bitmap ;
29
29
import android .graphics .PorterDuff ;
30
30
import android .graphics .drawable .Drawable ;
31
+ import android .net .ConnectivityManager ;
31
32
import android .net .Uri ;
32
33
import android .os .Build ;
33
34
import android .os .Bundle ;
@@ -183,6 +184,7 @@ public class ZulipActivity extends BaseActivity implements
183
184
private SimpleCursorAdapter emailActvAdapter ;
184
185
private AppBarLayout appBarLayout ;
185
186
private MutedTopics mMutedTopics ;
187
+ private BroadcastReceiver networkStateReceiver ;
186
188
private BroadcastReceiver onGcmMessage = new BroadcastReceiver () {
187
189
public void onReceive (Context contenxt , Intent intent ) {
188
190
// Block the event before it propagates to show a notification.
@@ -553,6 +555,7 @@ public Cursor runQuery(CharSequence charSequence) {
553
555
handleOnFragmentChange ();
554
556
calendar = Calendar .getInstance ();
555
557
setupSnackBar ();
558
+ setupNetworkBroadcastReceiver ();
556
559
}
557
560
558
561
/**
@@ -1976,6 +1979,7 @@ protected void onPause() {
1976
1979
Log .i ("status" , "suspend" );
1977
1980
1978
1981
unregisterReceiver (onGcmMessage );
1982
+ unregisterReceiver (networkStateReceiver );
1979
1983
1980
1984
if (event_poll != null ) {
1981
1985
event_poll .abort ();
@@ -1997,6 +2001,9 @@ protected void onResume() {
1997
2001
filter .setPriority (2 );
1998
2002
registerReceiver (onGcmMessage , filter );
1999
2003
2004
+ // Registering network state broadcast receiver
2005
+ setupNetworkBroadcastReceiver ();
2006
+
2000
2007
homeList .onActivityResume ();
2001
2008
if (narrowedList != null ) {
2002
2009
narrowedList .onActivityResume ();
@@ -2141,4 +2148,32 @@ public void onClick(View view) {
2141
2148
public enum Flag {
2142
2149
RESET_DATABASE ,
2143
2150
}
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
+ }
2144
2179
}
0 commit comments