From a4bdd237181a32d790b6186068ad8135587c0186 Mon Sep 17 00:00:00 2001
From: Prince kushwaha <65972015+Prince-kushwaha@users.noreply.github.com>
Date: Wed, 3 Mar 2021 18:09:42 +0530
Subject: [PATCH] fix:Explore Search: No title bar for item, non-existent menu
for item, wrongly-worded menu for category (#4274)
---
.../category/CategoryDetailsActivity.java | 4 ++
.../WikidataItemDetailsActivity.java | 40 +++++++++++++++++++
.../res/menu/fragment_category_detail.xml | 2 +-
app/src/main/res/menu/menu_wikidata_item.xml | 6 +++
app/src/main/res/values/strings.xml | 2 +
5 files changed, 53 insertions(+), 1 deletion(-)
create mode 100644 app/src/main/res/menu/menu_wikidata_item.xml
diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java
index bb4ac4f14..749221547 100644
--- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java
+++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java
@@ -62,6 +62,7 @@ public class CategoryDetailsActivity extends BaseActivity
viewPager.setOffscreenPageLimit(2);
tabLayout.setupWithViewPager(viewPager);
setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setTabs();
setPageTitle();
}
@@ -187,6 +188,9 @@ public class CategoryDetailsActivity extends BaseActivity
PageTitle title = Utils.getPageTitle(CATEGORY_PREFIX + categoryName);
Utils.handleWebUrl(this, Uri.parse(title.getCanonicalUri()));
return true;
+ case android.R.id.home:
+ onBackPressed();
+ return true;
default:
return super.onOptionsItemSelected(item);
}
diff --git a/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java
index 2324ab0b8..f36e0f01c 100644
--- a/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java
+++ b/app/src/main/java/fr/free/nrw/commons/explore/depictions/WikidataItemDetailsActivity.java
@@ -2,9 +2,14 @@ package fr.free.nrw.commons.explore.depictions;
import android.content.Context;
import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
+import androidx.appcompat.widget.Toolbar;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.viewpager.widget.ViewPager;
@@ -13,6 +18,7 @@ import butterknife.ButterKnife;
import com.google.android.material.tabs.TabLayout;
import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.R;
+import fr.free.nrw.commons.Utils;
import fr.free.nrw.commons.ViewPagerAdapter;
import fr.free.nrw.commons.category.CategoryImagesCallback;
import fr.free.nrw.commons.explore.depictions.child.ChildDepictionsFragment;
@@ -43,6 +49,8 @@ public class WikidataItemDetailsActivity extends BaseActivity implements MediaDe
TabLayout tabLayout;
@BindView(R.id.viewPager)
ViewPager viewPager;
+ @BindView(R.id.toolbar)
+ Toolbar toolbar;
ViewPagerAdapter viewPagerAdapter;
@@ -56,6 +64,8 @@ public class WikidataItemDetailsActivity extends BaseActivity implements MediaDe
viewPager.setAdapter(viewPagerAdapter);
viewPager.setOffscreenPageLimit(2);
tabLayout.setupWithViewPager(viewPager);
+ setSupportActionBar(toolbar);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
setTabs();
setPageTitle();
}
@@ -188,4 +198,34 @@ public class WikidataItemDetailsActivity extends BaseActivity implements MediaDe
intent.putExtra("entityId", depictedItem.getId());
context.startActivity(intent);
}
+
+ /**
+ * This function inflates the menu
+ */
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ MenuInflater menuInflater=getMenuInflater();
+ menuInflater.inflate(R.menu.menu_wikidata_item,menu);
+ return super.onCreateOptionsMenu(menu);
+ }
+
+ /**
+ * This method handles the logic on item select in toolbar menu
+ * Currently only 1 choice is available to open Wikidata item details page in browser
+ */
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()){
+ case R.id.browser_actions_menu_items:
+ String entityId=getIntent().getStringExtra("entityId");
+ Uri uri = Uri.parse("https://www.wikidata.org/wiki/" + entityId);
+ Utils.handleWebUrl(this, uri);
+ return true;
+ case android.R.id.home:
+ onBackPressed();
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
}
diff --git a/app/src/main/res/menu/fragment_category_detail.xml b/app/src/main/res/menu/fragment_category_detail.xml
index 58f94aba8..386e678fd 100644
--- a/app/src/main/res/menu/fragment_category_detail.xml
+++ b/app/src/main/res/menu/fragment_category_detail.xml
@@ -4,6 +4,6 @@
xmlns:app="http://schemas.android.com/apk/res-auto">