Skip to content

Commit c154de1

Browse files
committed
Merge remote-tracking branch 'refs/remotes/commons-app/2.7.x-release' into 2.7.x-release-fork
2 parents cb6d859 + 15b5f02 commit c154de1

File tree

6 files changed

+116
-46
lines changed

6 files changed

+116
-46
lines changed

app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package fr.free.nrw.commons.nearby;
22

3+
import android.content.BroadcastReceiver;
4+
import android.content.Context;
35
import android.content.Intent;
6+
import android.content.IntentFilter;
47
import android.content.pm.PackageManager;
58
import android.net.Uri;
69
import android.os.Build;
@@ -10,6 +13,7 @@
1013

1114
import android.support.v4.app.FragmentTransaction;
1215
import android.support.v7.app.AlertDialog;
16+
import android.util.Log;
1317
import android.view.Menu;
1418
import android.view.MenuInflater;
1519
import android.view.MenuItem;
@@ -33,6 +37,7 @@
3337
import fr.free.nrw.commons.location.LocationServiceManager;
3438
import fr.free.nrw.commons.location.LocationUpdateListener;
3539
import fr.free.nrw.commons.theme.NavigationBaseActivity;
40+
import fr.free.nrw.commons.utils.NetworkUtils;
3641
import fr.free.nrw.commons.utils.UriSerializer;
3742

3843
import fr.free.nrw.commons.utils.ViewUtil;
@@ -69,11 +74,14 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp
6974
private boolean lockNearbyView; //Determines if the nearby places needs to be refreshed
7075
private BottomSheetBehavior bottomSheetBehavior; // Behavior for list bottom sheet
7176
private BottomSheetBehavior bottomSheetBehaviorForDetails; // Behavior for details bottom sheet
72-
private NearbyMapFragment nearbyMapFragment;
77+
public NearbyMapFragment nearbyMapFragment;
7378
private NearbyListFragment nearbyListFragment;
7479
private static final String TAG_RETAINED_MAP_FRAGMENT = NearbyMapFragment.class.getSimpleName();
7580
private static final String TAG_RETAINED_LIST_FRAGMENT = NearbyListFragment.class.getSimpleName();
7681

82+
private final String NETWORK_INTENT_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
83+
private BroadcastReceiver broadcastReceiver;
84+
7785
@Override
7886
protected void onCreate(Bundle savedInstanceState) {
7987
super.onCreate(savedInstanceState);
@@ -271,6 +279,7 @@ protected void onResume() {
271279
super.onResume();
272280
lockNearbyView = false;
273281
checkGps();
282+
addNetworkBroadcastReceiver();
274283
}
275284

276285
@Override
@@ -283,9 +292,28 @@ public void onPause() {
283292
// to the retained fragment object to perform its own cleanup.
284293
removeMapFragment();
285294
removeListFragment();
295+
unregisterReceiver(broadcastReceiver);
286296
}
287297
}
288298

299+
private void addNetworkBroadcastReceiver() {
300+
IntentFilter intentFilter = new IntentFilter(NETWORK_INTENT_ACTION);
301+
302+
broadcastReceiver = new BroadcastReceiver() {
303+
304+
@Override
305+
public void onReceive(Context context, Intent intent) {
306+
if (NetworkUtils.isInternetConnectionEstablished(NearbyActivity.this)) {
307+
refreshView(LocationServiceManager
308+
.LocationChangeType.LOCATION_SIGNIFICANTLY_CHANGED);
309+
} else {
310+
ViewUtil.showLongToast(NearbyActivity.this, getString(R.string.no_internet));
311+
}
312+
}
313+
};
314+
315+
this.registerReceiver(broadcastReceiver, intentFilter);
316+
}
289317

290318

291319
/**
@@ -297,6 +325,12 @@ private void refreshView(LocationServiceManager.LocationChangeType locationChang
297325
if (lockNearbyView) {
298326
return;
299327
}
328+
329+
if (!NetworkUtils.isInternetConnectionEstablished(this)) {
330+
hideProgressBar();
331+
return;
332+
}
333+
300334
locationManager.registerLocationManager();
301335
LatLng lastLocation = locationManager.getLastLocation();
302336

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package fr.free.nrw.commons.utils;
2+
3+
4+
import android.content.Context;
5+
import android.net.ConnectivityManager;
6+
import android.net.NetworkInfo;
7+
8+
public class NetworkUtils {
9+
10+
public static boolean isInternetConnectionEstablished(Context context) {
11+
ConnectivityManager cm =
12+
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
13+
14+
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
15+
return activeNetwork != null &&
16+
activeNetwork.isConnectedOrConnecting();
17+
}
18+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
package fr.free.nrw.commons.utils;
22

3+
import android.content.Context;
34
import android.support.design.widget.Snackbar;
45
import android.view.View;
6+
import android.widget.Toast;
57

68
public class ViewUtil {
79

810
public static void showSnackbar(View view, int messageResourceId) {
911
Snackbar.make(view, messageResourceId, Snackbar.LENGTH_SHORT).show();
1012
}
1113

14+
public static void showLongToast(Context context, String text) {
15+
Toast.makeText(context, text,
16+
Toast.LENGTH_LONG).show();
17+
}
18+
1219
}

app/src/main/res/layout/activity_nearby.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
android:layout_width="match_parent"
2222
android:layout_height="wrap_content" />
2323

24-
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
24+
<LinearLayout
2525
android:layout_width="match_parent"
2626
android:layout_height="match_parent"
27+
android:layout_below="@id/toolbar"
2728
android:gravity="center_vertical"
2829
android:orientation="horizontal">
2930

@@ -37,7 +38,7 @@
3738
android:id="@+id/container"
3839
android:layout_width="match_parent"
3940
android:layout_height="match_parent" />
40-
</LinearLayout>
41+
</LinearLayout>
4142
<android.support.design.widget.FloatingActionButton
4243
android:id="@+id/fab_list"
4344
android:layout_width="wrap_content"
@@ -88,7 +89,7 @@
8889

8990

9091
</RelativeLayout>
91-
92+
9293
<include layout="@layout/bottom_sheet_nearby" />
9394

9495
<include

app/src/main/res/menu/drawer.xml

Lines changed: 48 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,50 @@
11
<menu xmlns:android="http://schemas.android.com/apk/res/android">
2-
3-
<item
4-
android:id="@+id/action_home"
5-
android:icon="@drawable/ic_home_black_24dp"
6-
android:title="@string/navigation_item_home"/>
7-
8-
<item
9-
android:id="@+id/action_nearby"
10-
android:icon="@drawable/ic_location_black_24dp"
11-
android:title="@string/navigation_item_nearby"/>
12-
13-
<item
14-
android:id="@+id/action_notifications"
15-
android:icon="@drawable/ic_notifications_black_24dp"
16-
android:title="@string/navigation_item_notification"/>
17-
18-
<item
19-
android:id="@+id/action_about"
20-
android:icon="@drawable/ic_info_outline_black_24dp"
21-
android:title="@string/navigation_item_about"/>
22-
23-
<item
24-
android:id="@+id/action_settings"
25-
android:icon="@drawable/ic_settings_black_24dp"
26-
android:title="@string/navigation_item_settings"/>
27-
28-
<item
29-
android:id="@+id/action_introduction"
30-
android:icon="@drawable/ic_help_black_24dp"
31-
android:title="@string/navigation_item_info"/>
32-
33-
<item
34-
android:id="@+id/action_feedback"
35-
android:icon="@drawable/ic_feedback_black_24dp"
36-
android:title="@string/navigation_item_feedback"/>
37-
38-
<item
39-
android:id="@+id/action_logout"
40-
android:icon="@drawable/ic_exit_to_app_black_24dp"
41-
android:title="@string/navigation_item_logout"/>
42-
2+
<group android:id="@+id/drawer_main">
3+
<item
4+
android:id="@+id/action_home"
5+
android:icon="@drawable/ic_home_black_24dp"
6+
android:title="@string/navigation_item_home" />
7+
8+
<item
9+
android:id="@+id/action_nearby"
10+
android:icon="@drawable/ic_location_black_24dp"
11+
android:title="@string/navigation_item_nearby" />
12+
</group>
13+
<group android:id="@+id/drawer_account">
14+
<item
15+
android:id="@+id/action_notifications"
16+
android:icon="@drawable/ic_notifications_black_24dp"
17+
android:title="@string/navigation_item_notification" />
18+
19+
20+
<item
21+
android:id="@+id/action_settings"
22+
android:icon="@drawable/ic_settings_black_24dp"
23+
android:title="@string/navigation_item_settings" />
24+
25+
</group>
26+
<group android:id="@+id/drawer_contact">
27+
<item
28+
android:id="@+id/action_about"
29+
android:icon="@drawable/ic_info_outline_black_24dp"
30+
android:title="@string/navigation_item_about" />
31+
<item
32+
android:id="@+id/action_introduction"
33+
android:icon="@drawable/ic_help_black_24dp"
34+
android:title="@string/navigation_item_info" />
35+
36+
<item
37+
android:id="@+id/action_feedback"
38+
android:icon="@drawable/ic_feedback_black_24dp"
39+
android:title="@string/navigation_item_feedback" />
40+
41+
42+
</group>
43+
44+
<group android:id="@+id/drawer_logout">
45+
<item
46+
android:id="@+id/action_logout"
47+
android:icon="@drawable/ic_exit_to_app_black_24dp"
48+
android:title="@string/navigation_item_logout" />
49+
</group>
4350
</menu>

app/src/main/res/values/strings.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,9 +253,12 @@
253253
<string name="about_rate_us"><u>Rate Us</u></string>
254254
<string name="about_faq">Frequently Asked Questions</string>
255255
<string name="welcome_skip_button">Skip Tutorial</string>
256-
256+
257+
<string name="no_internet">Internet unavailable</string>
258+
<string name="internet_established">Internet available</string>
257259
<string name="error_notifications">Error fetching notifications</string>
258260
<string name="no_notifications">No notifications found</string>
261+
259262
<string name="about_translate"><u>Translate</u></string>
260263
<string name="about_translate_title">Languages</string>
261264
<string name="about_translate_message">Select the langauge you want translations for ?</string>

0 commit comments

Comments
 (0)