mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
Change options menu item according to tab view
This commit is contained in:
parent
ed667112b4
commit
ad10832774
4 changed files with 62 additions and 8 deletions
|
|
@ -10,6 +10,7 @@ import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v4.app.FragmentPagerAdapter;
|
import android.support.v4.app.FragmentPagerAdapter;
|
||||||
import android.support.v4.content.ContextCompat;
|
import android.support.v4.content.ContextCompat;
|
||||||
import android.support.v4.view.ViewPager;
|
import android.support.v4.view.ViewPager;
|
||||||
|
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;
|
||||||
|
|
@ -128,10 +129,12 @@ public class ContributionsActivity extends AuthenticatedActivity implements Frag
|
||||||
case CONTRIBUTIONS_TAB_POSITION:
|
case CONTRIBUTIONS_TAB_POSITION:
|
||||||
tabLayout.getTabAt(CONTRIBUTIONS_TAB_POSITION).select();
|
tabLayout.getTabAt(CONTRIBUTIONS_TAB_POSITION).select();
|
||||||
isContributionsFragmentVisible = true;
|
isContributionsFragmentVisible = true;
|
||||||
|
updateMenuItem();
|
||||||
break;
|
break;
|
||||||
case NEARBY_TAB_POSITION:
|
case NEARBY_TAB_POSITION:
|
||||||
tabLayout.getTabAt(NEARBY_TAB_POSITION).select();
|
tabLayout.getTabAt(NEARBY_TAB_POSITION).select();
|
||||||
isContributionsFragmentVisible = false;
|
isContributionsFragmentVisible = false;
|
||||||
|
updateMenuItem();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
tabLayout.getTabAt(CONTRIBUTIONS_TAB_POSITION).select();
|
tabLayout.getTabAt(CONTRIBUTIONS_TAB_POSITION).select();
|
||||||
|
|
@ -214,18 +217,38 @@ public class ContributionsActivity extends AuthenticatedActivity implements Frag
|
||||||
public boolean onCreateOptionsMenu(Menu menu) {
|
public boolean onCreateOptionsMenu(Menu menu) {
|
||||||
MenuInflater inflater = getMenuInflater();
|
MenuInflater inflater = getMenuInflater();
|
||||||
inflater.inflate(R.menu.contribution_activity_notification_menu, menu);
|
inflater.inflate(R.menu.contribution_activity_notification_menu, menu);
|
||||||
if (!deviceHasCamera()) {
|
|
||||||
menu.findItem(R.id.notifications).setEnabled(false);
|
|
||||||
}
|
|
||||||
this.menu = menu;
|
|
||||||
if (!isThereUnreadNotifications) {
|
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 {
|
} 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;
|
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
|
@Override
|
||||||
public boolean onOptionsItemSelected(MenuItem item) {
|
public boolean onOptionsItemSelected(MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,16 @@
|
||||||
package fr.free.nrw.commons.nearby;
|
package fr.free.nrw.commons.nearby;
|
||||||
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.graphics.Typeface;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.design.widget.BottomSheetBehavior;
|
import android.support.design.widget.BottomSheetBehavior;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.Menu;
|
||||||
|
import android.view.MenuInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.LinearLayout;
|
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.location.LocationUpdateListener;
|
||||||
import fr.free.nrw.commons.utils.NetworkUtils;
|
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.wikidata.WikidataEditListener;
|
import fr.free.nrw.commons.wikidata.WikidataEditListener;
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.schedulers.Schedulers;
|
import io.reactivex.schedulers.Schedulers;
|
||||||
import timber.log.Timber;
|
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_SIGNIFICANTLY_CHANGED;
|
||||||
import static fr.free.nrw.commons.location.LocationServiceManager.LocationChangeType.LOCATION_SLIGHTLY_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
|
// Resume the fragment if exist
|
||||||
resumeFragment();
|
resumeFragment();
|
||||||
bundle = new Bundle();
|
bundle = new Bundle();
|
||||||
|
|
||||||
initBottomSheetBehaviour();
|
initBottomSheetBehaviour();
|
||||||
|
wikidataEditListener.setAuthenticationStateListener(this);
|
||||||
return view;
|
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() {
|
private void resumeFragment() {
|
||||||
// Find the retained fragment on activity restarts
|
// Find the retained fragment on activity restarts
|
||||||
nearbyMapFragment = getMapFragment();
|
nearbyMapFragment = getMapFragment();
|
||||||
|
|
@ -152,7 +174,9 @@ public class NearbyFragment extends CommonsDaggerSupportFragment
|
||||||
public void prepareViewsForSheetPosition(int bottomSheetState) {
|
public void prepareViewsForSheetPosition(int bottomSheetState) {
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onLocationChangedSignificantly(LatLng latLng) {
|
public void onLocationChangedSignificantly(LatLng latLng) {
|
||||||
//refreshView(LOCATION_SIGNIFICANTLY_CHANGED);
|
//refreshView(LOCATION_SIGNIFICANTLY_CHANGED);
|
||||||
|
|
|
||||||
|
|
@ -5,4 +5,10 @@
|
||||||
app:showAsAction="ifRoom|withText"
|
app:showAsAction="ifRoom|withText"
|
||||||
android:icon="@drawable/ic_notifications_white_24dp"
|
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>
|
</menu>
|
||||||
|
|
|
||||||
|
|
@ -359,5 +359,6 @@
|
||||||
<string name="display_nearby_notification">Display nearby notification</string>
|
<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="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="no_close_nearby">No nearby places found close to you</string>
|
||||||
|
<string name="list_sheet">List</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue