Merge remote-tracking branch 'refs/remotes/commons-app/2.7.x-release' into 2.7.x-release-fork

This commit is contained in:
misaochan 2018-03-26 18:06:12 +10:00
commit c154de15e5
6 changed files with 108 additions and 38 deletions

View file

@ -1,6 +1,9 @@
package fr.free.nrw.commons.nearby; package fr.free.nrw.commons.nearby;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
@ -10,6 +13,7 @@ import android.support.design.widget.BottomSheetBehavior;
import android.support.v4.app.FragmentTransaction; import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AlertDialog;
import android.util.Log;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
@ -33,6 +37,7 @@ import fr.free.nrw.commons.location.LatLng;
import fr.free.nrw.commons.location.LocationServiceManager; import fr.free.nrw.commons.location.LocationServiceManager;
import fr.free.nrw.commons.location.LocationUpdateListener; import fr.free.nrw.commons.location.LocationUpdateListener;
import fr.free.nrw.commons.theme.NavigationBaseActivity; import fr.free.nrw.commons.theme.NavigationBaseActivity;
import fr.free.nrw.commons.utils.NetworkUtils;
import fr.free.nrw.commons.utils.UriSerializer; import fr.free.nrw.commons.utils.UriSerializer;
import fr.free.nrw.commons.utils.ViewUtil; import fr.free.nrw.commons.utils.ViewUtil;
@ -69,11 +74,14 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp
private boolean lockNearbyView; //Determines if the nearby places needs to be refreshed private boolean lockNearbyView; //Determines if the nearby places needs to be refreshed
private BottomSheetBehavior bottomSheetBehavior; // Behavior for list bottom sheet private BottomSheetBehavior bottomSheetBehavior; // Behavior for list bottom sheet
private BottomSheetBehavior bottomSheetBehaviorForDetails; // Behavior for details bottom sheet private BottomSheetBehavior bottomSheetBehaviorForDetails; // Behavior for details bottom sheet
private NearbyMapFragment nearbyMapFragment; public NearbyMapFragment nearbyMapFragment;
private NearbyListFragment nearbyListFragment; private NearbyListFragment nearbyListFragment;
private static final String TAG_RETAINED_MAP_FRAGMENT = NearbyMapFragment.class.getSimpleName(); private static final String TAG_RETAINED_MAP_FRAGMENT = NearbyMapFragment.class.getSimpleName();
private static final String TAG_RETAINED_LIST_FRAGMENT = NearbyListFragment.class.getSimpleName(); private static final String TAG_RETAINED_LIST_FRAGMENT = NearbyListFragment.class.getSimpleName();
private final String NETWORK_INTENT_ACTION = "android.net.conn.CONNECTIVITY_CHANGE";
private BroadcastReceiver broadcastReceiver;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -271,6 +279,7 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp
super.onResume(); super.onResume();
lockNearbyView = false; lockNearbyView = false;
checkGps(); checkGps();
addNetworkBroadcastReceiver();
} }
@Override @Override
@ -283,9 +292,28 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp
// to the retained fragment object to perform its own cleanup. // to the retained fragment object to perform its own cleanup.
removeMapFragment(); removeMapFragment();
removeListFragment(); removeListFragment();
unregisterReceiver(broadcastReceiver);
} }
} }
private void addNetworkBroadcastReceiver() {
IntentFilter intentFilter = new IntentFilter(NETWORK_INTENT_ACTION);
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (NetworkUtils.isInternetConnectionEstablished(NearbyActivity.this)) {
refreshView(LocationServiceManager
.LocationChangeType.LOCATION_SIGNIFICANTLY_CHANGED);
} else {
ViewUtil.showLongToast(NearbyActivity.this, getString(R.string.no_internet));
}
}
};
this.registerReceiver(broadcastReceiver, intentFilter);
}
/** /**
@ -297,6 +325,12 @@ public class NearbyActivity extends NavigationBaseActivity implements LocationUp
if (lockNearbyView) { if (lockNearbyView) {
return; return;
} }
if (!NetworkUtils.isInternetConnectionEstablished(this)) {
hideProgressBar();
return;
}
locationManager.registerLocationManager(); locationManager.registerLocationManager();
LatLng lastLocation = locationManager.getLastLocation(); LatLng lastLocation = locationManager.getLastLocation();

View file

@ -0,0 +1,18 @@
package fr.free.nrw.commons.utils;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetworkUtils {
public static boolean isInternetConnectionEstablished(Context context) {
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
return activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();
}
}

View file

@ -1,7 +1,9 @@
package fr.free.nrw.commons.utils; package fr.free.nrw.commons.utils;
import android.content.Context;
import android.support.design.widget.Snackbar; import android.support.design.widget.Snackbar;
import android.view.View; import android.view.View;
import android.widget.Toast;
public class ViewUtil { public class ViewUtil {
@ -9,4 +11,9 @@ public class ViewUtil {
Snackbar.make(view, messageResourceId, Snackbar.LENGTH_SHORT).show(); Snackbar.make(view, messageResourceId, Snackbar.LENGTH_SHORT).show();
} }
public static void showLongToast(Context context, String text) {
Toast.makeText(context, text,
Toast.LENGTH_LONG).show();
}
} }

View file

@ -21,9 +21,10 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_below="@id/toolbar"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal"> android:orientation="horizontal">
@ -37,7 +38,7 @@
android:id="@+id/container" android:id="@+id/container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
</LinearLayout> </LinearLayout>
<android.support.design.widget.FloatingActionButton <android.support.design.widget.FloatingActionButton
android:id="@+id/fab_list" android:id="@+id/fab_list"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -88,7 +89,7 @@
</RelativeLayout> </RelativeLayout>
<include layout="@layout/bottom_sheet_nearby" /> <include layout="@layout/bottom_sheet_nearby" />
<include <include

View file

@ -1,43 +1,50 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/drawer_main">
<item
android:id="@+id/action_home"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/navigation_item_home" />
<item <item
android:id="@+id/action_home" android:id="@+id/action_nearby"
android:icon="@drawable/ic_home_black_24dp" android:icon="@drawable/ic_location_black_24dp"
android:title="@string/navigation_item_home"/> android:title="@string/navigation_item_nearby" />
</group>
<group android:id="@+id/drawer_account">
<item
android:id="@+id/action_notifications"
android:icon="@drawable/ic_notifications_black_24dp"
android:title="@string/navigation_item_notification" />
<item
android:id="@+id/action_nearby"
android:icon="@drawable/ic_location_black_24dp"
android:title="@string/navigation_item_nearby"/>
<item <item
android:id="@+id/action_notifications" android:id="@+id/action_settings"
android:icon="@drawable/ic_notifications_black_24dp" android:icon="@drawable/ic_settings_black_24dp"
android:title="@string/navigation_item_notification"/> android:title="@string/navigation_item_settings" />
<item </group>
android:id="@+id/action_about" <group android:id="@+id/drawer_contact">
android:icon="@drawable/ic_info_outline_black_24dp" <item
android:title="@string/navigation_item_about"/> android:id="@+id/action_about"
android:icon="@drawable/ic_info_outline_black_24dp"
android:title="@string/navigation_item_about" />
<item
android:id="@+id/action_introduction"
android:icon="@drawable/ic_help_black_24dp"
android:title="@string/navigation_item_info" />
<item <item
android:id="@+id/action_settings" android:id="@+id/action_feedback"
android:icon="@drawable/ic_settings_black_24dp" android:icon="@drawable/ic_feedback_black_24dp"
android:title="@string/navigation_item_settings"/> android:title="@string/navigation_item_feedback" />
<item
android:id="@+id/action_introduction"
android:icon="@drawable/ic_help_black_24dp"
android:title="@string/navigation_item_info"/>
<item </group>
android:id="@+id/action_feedback"
android:icon="@drawable/ic_feedback_black_24dp"
android:title="@string/navigation_item_feedback"/>
<item
android:id="@+id/action_logout"
android:icon="@drawable/ic_exit_to_app_black_24dp"
android:title="@string/navigation_item_logout"/>
<group android:id="@+id/drawer_logout">
<item
android:id="@+id/action_logout"
android:icon="@drawable/ic_exit_to_app_black_24dp"
android:title="@string/navigation_item_logout" />
</group>
</menu> </menu>

View file

@ -253,9 +253,12 @@
<string name="about_rate_us"><u>Rate Us</u></string> <string name="about_rate_us"><u>Rate Us</u></string>
<string name="about_faq">Frequently Asked Questions</string> <string name="about_faq">Frequently Asked Questions</string>
<string name="welcome_skip_button">Skip Tutorial</string> <string name="welcome_skip_button">Skip Tutorial</string>
<string name="no_internet">Internet unavailable</string>
<string name="internet_established">Internet available</string>
<string name="error_notifications">Error fetching notifications</string> <string name="error_notifications">Error fetching notifications</string>
<string name="no_notifications">No notifications found</string> <string name="no_notifications">No notifications found</string>
<string name="about_translate"><u>Translate</u></string> <string name="about_translate"><u>Translate</u></string>
<string name="about_translate_title">Languages</string> <string name="about_translate_title">Languages</string>
<string name="about_translate_message">Select the langauge you want translations for ?</string> <string name="about_translate_message">Select the langauge you want translations for ?</string>