use overflow/popup for gallery view

This commit is contained in:
Andrew Dolgov 2015-12-02 16:01:28 +03:00
parent cc757d2b06
commit 863860201a
2 changed files with 46 additions and 21 deletions

View File

@ -20,11 +20,13 @@ import android.view.ContextMenu;
import android.view.GestureDetector; import android.view.GestureDetector;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.PopupMenu;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
@ -60,13 +62,13 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur
@Override @Override
public boolean onSingleTapConfirmed(MotionEvent motionEvent) { public boolean onSingleTapConfirmed(MotionEvent motionEvent) {
ActionBar bar = getSupportActionBar(); /*ActionBar bar = getSupportActionBar();
if (bar.isShowing()) { if (bar.isShowing()) {
bar.hide(); bar.hide();
} else { } else {
bar.show(); bar.show();
} }*/
return false; return false;
} }
@ -106,7 +108,7 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur
@Override @Override
public Object instantiateItem(ViewGroup container, int position) { public Object instantiateItem(ViewGroup container, int position) {
String url = m_urls.get(position); final String url = m_urls.get(position);
Log.d(TAG, "called for URL: " + url); Log.d(TAG, "called for URL: " + url);
@ -134,7 +136,26 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur
ViewCompat.setTransitionName(imgView, "gallery:" + url); ViewCompat.setTransitionName(imgView, "gallery:" + url);
} }
registerForContextMenu(imgView); //registerForContextMenu(imgView);
view.findViewById(R.id.flavor_image_overflow).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popup = new PopupMenu(ArticleImagesPagerActivity.this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.context_article_content_img, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
return onImageMenuItemSelected(item, url);
}
});
popup.show();
}
});
DisplayImageOptions options = new DisplayImageOptions.Builder() DisplayImageOptions options = new DisplayImageOptions.Builder()
.cacheInMemory(true) .cacheInMemory(true)
@ -173,7 +194,7 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur
} }
}); });
((ViewPager) container).addView(view, 0); container.addView(view, 0);
if (position == 0) { if (position == 0) {
ActivityCompat.startPostponedEnterTransition(ArticleImagesPagerActivity.this); ActivityCompat.startPostponedEnterTransition(ArticleImagesPagerActivity.this);
@ -338,14 +359,14 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur
} }
@Override /*@Override
public void onCreateContextMenu(ContextMenu menu, View v, public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) { ContextMenu.ContextMenuInfo menuInfo) {
getMenuInflater().inflate(R.menu.context_article_content_img, menu); getMenuInflater().inflate(R.menu.context_article_content_img, menu);
super.onCreateContextMenu(menu, v, menuInfo); super.onCreateContextMenu(menu, v, menuInfo);
} }*/
@Override @Override
@ -357,7 +378,7 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur
out.putString("content", m_content); out.putString("content", m_content);
} }
@Override /*@Override
public boolean onCreateOptionsMenu(Menu menu) { public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.context_article_content_img, menu); getMenuInflater().inflate(R.menu.context_article_content_img, menu);
@ -368,22 +389,13 @@ public class ArticleImagesPagerActivity extends CommonActivity implements Gestur
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
return onContextItemSelected(item); // this is really bad :() return onContextItemSelected(item); // this is really bad :()
} }*/
@Override
public boolean onContextItemSelected(android.view.MenuItem item) {
ViewPager pager = (ViewPager) findViewById(R.id.article_images_pager);
String url = null;
if (pager != null) {
int currentItem = pager.getCurrentItem();
url = m_urls.get(currentItem);
}
public boolean onImageMenuItemSelected(MenuItem item, String url) {
switch (item.getItemId()) { switch (item.getItemId()) {
case android.R.id.home: /*case android.R.id.home:
onBackPressed(); onBackPressed();
return true; return true;*/
case R.id.article_img_open: case R.id.article_img_open:
if (url != null) { if (url != null) {
try { try {

View File

@ -26,4 +26,17 @@
android:layout_gravity="center" android:layout_gravity="center"
android:scaleType="fitCenter" /> android:scaleType="fitCenter" />
<ImageView
android:id="@+id/flavor_image_overflow"
android:clickable="true"
android:layout_width="wrap_content"
android:layout_height="24dp"
android:layout_weight="0"
android:background="@drawable/ripple"
android:paddingLeft="4dp"
android:paddingRight="4dp"
android:src="@drawable/ic_dots_vertical"
android:layout_gravity="right|bottom"
android:layout_marginBottom="8dp" />
</FrameLayout> </FrameLayout>