Change options menu item according to tab view

This commit is contained in:
neslihanturan 2018-09-28 11:47:44 +03:00
parent ed667112b4
commit ad10832774
4 changed files with 62 additions and 8 deletions

View file

@ -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()) {

View file

@ -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);

View file

@ -5,4 +5,10 @@
app:showAsAction="ifRoom|withText"
android:icon="@drawable/ic_notifications_white_24dp"
/>
<item android:id="@+id/list_sheet"
android:title="@string/list_sheet"
app:showAsAction="ifRoom|withText"
android:icon="@drawable/ic_list_white_24dp"
/>
</menu>

View file

@ -359,5 +359,6 @@
<string name="display_nearby_notification">Display nearby notification</string>
<string name="display_nearby_notification_summary">Display closest wikidata item needs an image, above contribution list</string>
<string name="no_close_nearby">No nearby places found close to you</string>
<string name="list_sheet">List</string>
</resources>