@@ -156,6 +156,7 @@ public class ZulipActivity extends BaseActivity implements
156
156
final int allPeopleId = -1 ;
157
157
public MessageListFragment currentList ;
158
158
public CommonProgressDialog commonProgressDialog ;
159
+ private Snackbar connectivitySnackbar ;
159
160
FloatingActionButton fab ;
160
161
NarrowFilter narrowFilter ;
161
162
String prevId = null ;
@@ -1980,7 +1981,7 @@ public boolean onCreateOptionsMenu(Menu menu) {
1980
1981
1981
1982
@ Override
1982
1983
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 )) {
1984
1985
menu .findItem (R .id .refresh ).setEnabled (true );
1985
1986
} else {
1986
1987
//Disabling the refresh button
@@ -2381,21 +2382,33 @@ public void showConnectivitySnackBar(final String networkState) {
2381
2382
public void handleMessage (android .os .Message msg ) {
2382
2383
if (networkState .equals (Constants .STATUS_CONNECTING )) {
2383
2384
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 ();
2385
2387
2386
2388
} else if (networkState .equals (Constants .STATUS_CONNECTED )) {
2389
+ if (connectivitySnackbar != null ) {
2390
+ connectivitySnackbar .dismiss ();
2391
+ }
2387
2392
//Starts a network request only when there is an active network connection
2388
2393
startRequests ();
2389
2394
networkStatus = Constants .STATUS_CONNECTED ;
2390
- Snackbar .make (coordinatorLayout , R .string .connection_established , Snackbar .LENGTH_SHORT ).show ();
2391
2395
} else {
2392
2396
displayChatBox (false );
2393
2397
displayFAB (true );
2394
2398
//Displays old offline messages
2395
- if (!networkStatus .equals (Constants .STATUS_CONNECTED ))
2399
+ if (!networkStatus .equals (Constants .STATUS_CONNECTED ))
2396
2400
onReadyToDisplay (true );
2397
2401
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 ();
2399
2412
}
2400
2413
Log .d ("NetworkStatus" , networkState );
2401
2414
super .handleMessage (msg );
0 commit comments