diff --git a/app/src/main/java/fr/free/nrw/commons/Utils.java b/app/src/main/java/fr/free/nrw/commons/Utils.java index 0ece6e119..d296fdbcf 100644 --- a/app/src/main/java/fr/free/nrw/commons/Utils.java +++ b/app/src/main/java/fr/free/nrw/commons/Utils.java @@ -1,7 +1,9 @@ package fr.free.nrw.commons; +import android.content.Context; import android.net.Uri; import android.os.Build; +import android.preference.PreferenceManager; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.assist.ImageScaleType; @@ -306,4 +308,12 @@ public class Utils { public static boolean isNullOrWhiteSpace(String value) { return value == null || value.trim().isEmpty(); } + + public static boolean isDarkTheme(Context context) { + if (PreferenceManager.getDefaultSharedPreferences(context).getBoolean("theme",true)) { + return true; + }else { + return false; + } + } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 0f8f176de..43966f7a4 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -3,6 +3,7 @@ package fr.free.nrw.commons.nearby; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; +import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.view.Menu; import android.view.MenuInflater; @@ -71,6 +72,11 @@ public class NearbyActivity extends BaseActivity { return true; case R.id.action_map: showMapView(); + if (isMapViewActive) { + item.setIcon(R.drawable.ic_list_white_24dp); + } else { + item.setIcon(R.drawable.ic_map_white_24dp); + } return true; default: return super.onOptionsItemSelected(item); @@ -83,6 +89,12 @@ public class NearbyActivity extends BaseActivity { if (nearbyAsyncTask.getStatus() == AsyncTask.Status.FINISHED) { setMapFragment(); } + + } else { + isMapViewActive = false; + if (nearbyAsyncTask.getStatus() == AsyncTask.Status.FINISHED) { + setListFragment(); + } } } @@ -160,22 +172,21 @@ public class NearbyActivity extends BaseActivity { * Calls fragment for map view. */ public void setMapFragment() { - FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - NearbyMapFragment fragment = new NearbyMapFragment(); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + Fragment fragment = new NearbyMapFragment(); fragment.setArguments(bundle); - ft.add(R.id.container, fragment); - ft.commit(); + fragmentTransaction.replace(R.id.container, fragment); + fragmentTransaction.commit(); } /** * Calls fragment for list view. */ public void setListFragment() { - FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); - NearbyListFragment fragment = new NearbyListFragment(); + FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); + Fragment fragment = new NearbyListFragment(); fragment.setArguments(bundle); - ft.add(R.id.container, fragment); - ft.commit(); + fragmentTransaction.replace(R.id.container, fragment); + fragmentTransaction.commit(); } - } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java index e777eb3ee..3bf6f7a50 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyInfoDialog.java @@ -107,4 +107,9 @@ public class NearbyInfoDialog extends OverlayDialog { Intent browserIntent = new Intent(Intent.ACTION_VIEW, articleLink); startActivity(browserIntent); } + + @OnClick(R.id.emptyLayout) + void onCloseClicked() { + dismissAllowingStateLoss(); + } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java index c15a407c3..77512139e 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java @@ -66,6 +66,17 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + + if (curLatLng != null) { + setupMapView(savedInstanceState); + } + + setHasOptionsMenu(false); + + return mapView; + } + + private void setupMapView(Bundle savedInstanceState) { MapboxMapOptions options = new MapboxMapOptions() .styleUrl(Style.OUTDOORS) .camera(new CameraPosition.Builder() @@ -99,10 +110,6 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { } else { mapView.setStyleUrl(getResources().getString(R.string.map_theme_light)); } - - setHasOptionsMenu(false); - - return mapView; } @Override @@ -112,31 +119,41 @@ public class NearbyMapFragment extends android.support.v4.app.Fragment { @Override public void onStart() { - mapView.onStart(); + if (mapView != null) { + mapView.onStart(); + } super.onStart(); } @Override public void onPause() { - mapView.onPause(); + if (mapView != null) { + mapView.onPause(); + } super.onPause(); } @Override public void onResume() { - mapView.onResume(); + if (mapView != null) { + mapView.onResume(); + } super.onResume(); } @Override public void onStop() { - mapView.onStop(); + if (mapView != null) { + mapView.onStop(); + } super.onStop(); } @Override public void onDestroyView() { - mapView.onDestroy(); + if (mapView != null) { + mapView.onDestroy(); + } super.onDestroyView(); } } diff --git a/app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java b/app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java index f52ea84dd..b0be190a4 100644 --- a/app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/theme/BaseActivity.java @@ -6,16 +6,17 @@ import android.preference.PreferenceManager; import android.support.v7.app.AppCompatActivity; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.Utils; public class BaseActivity extends AppCompatActivity { boolean currentTheme; @Override protected void onCreate(Bundle savedInstanceState) { - if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("theme",true)) { + if(Utils.isDarkTheme(this)){ currentTheme = true; setTheme(R.style.DarkAppTheme); - }else { + } else { currentTheme = false; setTheme(R.style.LightAppTheme); // default } diff --git a/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java b/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java index 69bc8549f..6b2913d6d 100644 --- a/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java +++ b/app/src/main/java/fr/free/nrw/commons/ui/widget/OverlayDialog.java @@ -11,14 +11,12 @@ import android.view.View; import android.view.Window; import android.view.WindowManager; -import fr.free.nrw.commons.R; - public abstract class OverlayDialog extends DialogFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setStyle(STYLE_NORMAL, R.style.borderless_dialog); + setStyle(STYLE_NO_FRAME, android.R.style.Theme_Holo_Light); } @Override diff --git a/app/src/main/res/drawable-hdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-hdpi/ic_list_white_24dp.png new file mode 100644 index 000000000..f8f7e7dda Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_list_white_24dp.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_map_black_24dp.png b/app/src/main/res/drawable-hdpi/ic_map_black_24dp.png deleted file mode 100644 index c81d0e068..000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_map_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-mdpi/ic_list_white_24dp.png new file mode 100644 index 000000000..15d8fc2bb Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_list_white_24dp.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_map_black_24dp.png b/app/src/main/res/drawable-mdpi/ic_map_black_24dp.png deleted file mode 100644 index bcc500e96..000000000 Binary files a/app/src/main/res/drawable-mdpi/ic_map_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-xhdpi/ic_list_white_24dp.png new file mode 100644 index 000000000..2b7253975 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_list_white_24dp.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_map_black_24dp.png b/app/src/main/res/drawable-xhdpi/ic_map_black_24dp.png deleted file mode 100644 index a3ecc7190..000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_map_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png new file mode 100644 index 000000000..4d2807e4e Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_list_white_24dp.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_map_black_24dp.png b/app/src/main/res/drawable-xxhdpi/ic_map_black_24dp.png deleted file mode 100644 index 827c9fc9f..000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_map_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_list_white_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_list_white_24dp.png new file mode 100644 index 000000000..2a6d3b044 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_list_white_24dp.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_map_black_24dp.png b/app/src/main/res/drawable-xxxhdpi/ic_map_black_24dp.png deleted file mode 100644 index da75c65bb..000000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_map_black_24dp.png and /dev/null differ diff --git a/app/src/main/res/layout/dialog_nearby_info.xml b/app/src/main/res/layout/dialog_nearby_info.xml index be21af18e..1dc5c29f4 100644 --- a/app/src/main/res/layout/dialog_nearby_info.xml +++ b/app/src/main/res/layout/dialog_nearby_info.xml @@ -1,5 +1,5 @@ - + + - + android:layout_alignParentBottom="true" + android:background="@android:color/white"> + android:animateLayoutChanges="true" + android:minHeight="@dimen/bottom_peak_height" + android:orientation="vertical"> + + + + + + + + + + + + + + + + android:paddingBottom="16dp" + android:paddingTop="16dp" + android:text="GET DIRECTIONS" + android:textColor="@android:color/black" /> + + + + - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file