@@ -156,6 +156,7 @@ public class ZulipActivity extends BaseActivity implements
156156 final int allPeopleId = -1 ;
157157 public MessageListFragment currentList ;
158158 public CommonProgressDialog commonProgressDialog ;
159+ private Snackbar connectivitySnackbar ;
159160 FloatingActionButton fab ;
160161 NarrowFilter narrowFilter ;
161162 String prevId = null ;
@@ -1980,7 +1981,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
19801981
19811982 @ Override
19821983 public boolean onPrepareOptionsMenu (Menu menu ) {
1983- if (networkStatus .equals (Constants .STATUS_CONNECTED )|| networkStatus .equals (Constants .STATUS_CONNECTING )) {
1984+ if (networkStatus .equals (Constants .STATUS_CONNECTED ) || networkStatus .equals (Constants .STATUS_CONNECTING )) {
19841985 menu .findItem (R .id .refresh ).setEnabled (true );
19851986 } else {
19861987 //Disabling the refresh button
@@ -2381,21 +2382,33 @@ public void showConnectivitySnackBar(final String networkState) {
23812382 public void handleMessage (android .os .Message msg ) {
23822383 if (networkState .equals (Constants .STATUS_CONNECTING )) {
23832384 networkStatus = Constants .STATUS_CONNECTING ;
2384- Snackbar .make (coordinatorLayout , R .string .connecting , Snackbar .LENGTH_INDEFINITE ).show ();
2385+ connectivitySnackbar = Snackbar .make (coordinatorLayout , R .string .connecting , Snackbar .LENGTH_INDEFINITE );
2386+ connectivitySnackbar .show ();
23852387
23862388 } else if (networkState .equals (Constants .STATUS_CONNECTED )) {
2389+ if (connectivitySnackbar != null ) {
2390+ connectivitySnackbar .dismiss ();
2391+ }
23872392 //Starts a network request only when there is an active network connection
23882393 startRequests ();
23892394 networkStatus = Constants .STATUS_CONNECTED ;
2390- Snackbar .make (coordinatorLayout , R .string .connection_established , Snackbar .LENGTH_SHORT ).show ();
23912395 } else {
23922396 displayChatBox (false );
23932397 displayFAB (true );
23942398 //Displays old offline messages
2395- if (!networkStatus .equals (Constants .STATUS_CONNECTED ))
2399+ if (!networkStatus .equals (Constants .STATUS_CONNECTED ))
23962400 onReadyToDisplay (true );
23972401 networkStatus = Constants .STATUS_NOT_CONNECTED ;
2398- Snackbar .make (coordinatorLayout , R .string .no_connection , Snackbar .LENGTH_INDEFINITE ).show ();
2402+ connectivitySnackbar = Snackbar .make (coordinatorLayout , R .string .no_connection , Snackbar .LENGTH_INDEFINITE );
2403+ connectivitySnackbar .setAction ("RETRY" , new View .OnClickListener () {
2404+ @ Override
2405+ public void onClick (View view ) {
2406+ showConnectivitySnackBar (Constants .STATUS_CONNECTING );
2407+ startRequests ();
2408+ }
2409+ });
2410+ connectivitySnackbar .setActionTextColor (getResources ().getColor (R .color .top_snackbar_show_button_text_color ));
2411+ connectivitySnackbar .show ();
23992412 }
24002413 Log .d ("NetworkStatus" , networkState );
24012414 super .handleMessage (msg );
0 commit comments