From ad108327744d983800130b885722edbe202ce057 Mon Sep 17 00:00:00 2001 From: neslihanturan Date: Fri, 28 Sep 2018 11:47:44 +0300 Subject: [PATCH] Change options menu item according to tab view --- .../contributions/ContributionsActivity.java | 35 +++++++++++++++---- .../nrw/commons/nearby/NearbyFragment.java | 28 +++++++++++++-- ...ontribution_activity_notification_menu.xml | 6 ++++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 62 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java index 18d102a43..9d0180f84 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionsActivity.java @@ -10,6 +10,7 @@ import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; +import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -128,10 +129,12 @@ public class ContributionsActivity extends AuthenticatedActivity implements Frag case CONTRIBUTIONS_TAB_POSITION: tabLayout.getTabAt(CONTRIBUTIONS_TAB_POSITION).select(); isContributionsFragmentVisible = true; + updateMenuItem(); break; case NEARBY_TAB_POSITION: tabLayout.getTabAt(NEARBY_TAB_POSITION).select(); isContributionsFragmentVisible = false; + updateMenuItem(); break; default: tabLayout.getTabAt(CONTRIBUTIONS_TAB_POSITION).select(); @@ -214,18 +217,38 @@ public class ContributionsActivity extends AuthenticatedActivity implements Frag public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.contribution_activity_notification_menu, menu); - if (!deviceHasCamera()) { - menu.findItem(R.id.notifications).setEnabled(false); - } - this.menu = menu; + if (!isThereUnreadNotifications) { - // menu.findItem(R.id.notifications).setIcon(ContextCompat.getDrawable(this, R.drawable.ic_notifications_white_24dp)); + // menu.findItem(R.id.notifications).setIcon(ContextCompat.getDrawable(this, R.drawable.ic_notifications_white_24dp)); } else { - // menu.findItem(R.id.notifications).setIcon(ContextCompat.getDrawable(this, R.drawable.ic_notifications_white_with_marker)); + // menu.findItem(R.id.notifications).setIcon(ContextCompat.getDrawable(this, R.drawable.ic_notifications_white_with_marker)); } + + this.menu = menu; + + updateMenuItem(); + return true; } + /** + * Responsible with displaying required menu items according to displayed fragment. + * Notifications icon when contributions list is visible, list sheet icon when nearby is visible + */ + private void updateMenuItem() { + if (isContributionsFragmentVisible) { + // Display notifications menu item + Log.d("deneme6","notifications is visible"); + menu.findItem(R.id.notifications).setVisible(true); + menu.findItem(R.id.list_sheet).setVisible(false); + } else { + // Display bottom list menu item + Log.d("deneme6","notifications is invisible"); + menu.findItem(R.id.notifications).setVisible(false); + menu.findItem(R.id.list_sheet).setVisible(true); + } + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java index 96f56a15e..77994f159 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyFragment.java @@ -1,12 +1,16 @@ package fr.free.nrw.commons.nearby; import android.content.SharedPreferences; +import android.graphics.Typeface; import android.net.Uri; import android.os.Bundle; +import android.os.Handler; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.design.widget.BottomSheetBehavior; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; @@ -27,11 +31,14 @@ import fr.free.nrw.commons.location.LocationServiceManager; import fr.free.nrw.commons.location.LocationUpdateListener; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.UriSerializer; +import fr.free.nrw.commons.utils.ViewUtil; import fr.free.nrw.commons.wikidata.WikidataEditListener; import io.reactivex.Observable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import timber.log.Timber; +import uk.co.deanwild.materialshowcaseview.IShowcaseListener; +import uk.co.deanwild.materialshowcaseview.MaterialShowcaseView; import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SIGNIFICANTLY_CHANGED; import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SLIGHTLY_CHANGED; @@ -83,11 +90,26 @@ public class NearbyFragment extends CommonsDaggerSupportFragment // Resume the fragment if exist resumeFragment(); bundle = new Bundle(); - initBottomSheetBehaviour(); + wikidataEditListener.setAuthenticationStateListener(this); return view; } + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + } + + /* + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.menu_nearby, menu); + + new Handler().post(() -> { + listButton = findViewById(R.id.action_display_list); + }); + }*/ + private void resumeFragment() { // Find the retained fragment on activity restarts nearbyMapFragment = getMapFragment(); @@ -152,7 +174,9 @@ public class NearbyFragment extends CommonsDaggerSupportFragment public void prepareViewsForSheetPosition(int bottomSheetState) { // TODO } - + + + @Override public void onLocationChangedSignificantly(LatLng latLng) { //refreshView(LOCATION_SIGNIFICANTLY_CHANGED); diff --git a/app/src/main/res/menu/contribution_activity_notification_menu.xml b/app/src/main/res/menu/contribution_activity_notification_menu.xml index 475b255a8..b480d917b 100644 --- a/app/src/main/res/menu/contribution_activity_notification_menu.xml +++ b/app/src/main/res/menu/contribution_activity_notification_menu.xml @@ -5,4 +5,10 @@ app:showAsAction="ifRoom|withText" android:icon="@drawable/ic_notifications_white_24dp" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f33177c4d..532d0606b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -359,5 +359,6 @@ Display nearby notification Display closest wikidata item needs an image, above contribution list No nearby places found close to you + List