summaryrefslogtreecommitdiff
path: root/org.fox.ttcomics
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2015-12-03 21:28:03 +0300
committerAndrew Dolgov <[email protected]>2015-12-03 21:28:03 +0300
commit25ae3fd11b0a564dc495f1c158fd2b4ee3d125e2 (patch)
tree9fa70123052ce29792a9c7b4d1cfaf7dca712633 /org.fox.ttcomics
parent52b2e0bc35238a452c13a2a86575605037ad7a71 (diff)
enable ripple for comic overflow
Diffstat (limited to 'org.fox.ttcomics')
-rwxr-xr-x[-rw-r--r--]org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java103
-rwxr-xr-xorg.fox.ttcomics/src/main/res/layout/comics_grid_row.xml23
2 files changed, 79 insertions, 47 deletions
diff --git a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java
index bec7a6f..63ede5a 100644..100755
--- a/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java
+++ b/org.fox.ttcomics/src/main/java/org/fox/ttcomics2/ComicListFragment.java
@@ -15,6 +15,7 @@ import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
+import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@@ -23,6 +24,7 @@ import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
+import android.widget.PopupMenu;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -142,12 +144,12 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
Cursor c = (Cursor) getItem(position);
- String filePath = c.getString(c.getColumnIndex("path"));
- String fileBaseName = c.getString(c.getColumnIndex("filename"));
- String firstChild = c.getString(c.getColumnIndex("firstchild"));
+ final String filePath = c.getString(c.getColumnIndex("path"));
+ final String fileBaseName = c.getString(c.getColumnIndex("filename"));
+ final String firstChild = c.getString(c.getColumnIndex("firstchild"));
int lastPos = c.getInt(c.getColumnIndex("position"));
- int size = c.getInt(c.getColumnIndex("size"));
+ final int size = c.getInt(c.getColumnIndex("size"));
final ComicsViewHolder holder;
@@ -205,15 +207,36 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
} else {
holder.overflow.setImageResource(R.drawable.ic_dots_vertical);
+ }
- holder.overflow.setOnClickListener(new View.OnClickListener() {
+ holder.overflow.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- getActivity().openContextMenu(v);
+ @Override
+ public void onClick(View v) {
+ PopupMenu popup = new PopupMenu(getActivity(), v);
+ MenuInflater inflater = popup.getMenuInflater();
+ inflater.inflate(R.menu.context_comic_archive, popup.getMenu());
+
+ if (size == SIZE_DIR) {
+ popup.getMenu().findItem(R.id.menu_mark_as_read).setVisible(false);
+ popup.getMenu().findItem(R.id.menu_reset_progress).setVisible(false);
}
- });
- }
+
+ if (!m_activity.m_syncClient.hasOwner()) {
+ popup.getMenu().findItem(R.id.menu_reset_progress).setVisible(false);
+ }
+
+ popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
+ @Override
+ public boolean onMenuItemClick(MenuItem item) {
+ return onComicMenuItemSelected(item, filePath + "/" + fileBaseName);
+ }
+ });
+
+ popup.show();
+ }
+ });
+
}
File thumbnailFile = new File(CommonActivity.getCacheFileName(m_activity, firstChild != null ? firstChild : filePath + "/" + fileBaseName));
@@ -322,14 +345,41 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
int size = c.getInt(c.getColumnIndex("size"));
if (size == SIZE_DIR) {
- menu.findItem(R.id.menu_mark_as_read).setEnabled(false);
- menu.findItem(R.id.menu_reset_progress).setEnabled(false);
+ menu.findItem(R.id.menu_mark_as_read).setVisible(false);
+ menu.findItem(R.id.menu_reset_progress).setVisible(false);
+ }
+
+ if (!m_activity.m_syncClient.hasOwner()) {
+ menu.findItem(R.id.menu_reset_progress).setVisible(false);
}
}
super.onCreateContextMenu(menu, v, menuInfo);
}
-
+
+ protected boolean onComicMenuItemSelected(MenuItem item, String fileName) {
+ if (fileName == null) {
+ return false;
+ }
+
+ switch (item.getItemId()) {
+ case R.id.menu_open:
+ m_activity.onComicArchiveSelected(fileName);
+ return true;
+ case R.id.menu_reset_progress:
+ m_activity.resetProgress(fileName);
+ return true;
+ case R.id.menu_mark_as_read:
+ m_activity.m_databaseHelper.setLastPosition(fileName,
+ m_activity.m_databaseHelper.getSize(fileName) - 1);
+
+ updateWithoutRescan();
+ return true;
+ default:
+ return false;
+ }
+ }
+
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
@@ -338,32 +388,7 @@ public class ComicListFragment extends Fragment implements OnItemClickListener {
Cursor c = (Cursor) m_adapter.getItem(info.position);
String fileName = c.getString(c.getColumnIndex("path")) + "/" + c.getString(c.getColumnIndex("filename"));
- switch (item.getItemId()) {
- case R.id.menu_open:
- if (fileName != null) {
- m_activity.onComicArchiveSelected(fileName);
- }
- return true;
- case R.id.menu_reset_progress:
- if (fileName != null) {
- m_activity.resetProgress(fileName);
- }
- return true;
- case R.id.menu_mark_as_read:
-
- if (fileName != null) {
-
- m_activity.m_databaseHelper.setLastPosition(fileName,
- m_activity.m_databaseHelper.getSize(fileName) - 1);
-
- updateWithoutRescan();
- }
-
- return true;
- default:
- Log.d(TAG, "onContextItemSelected, unhandled id=" + item.getItemId());
- return super.onContextItemSelected(item);
- }
+ return onComicMenuItemSelected(item, fileName);
}
private Cursor createCursor() {
diff --git a/org.fox.ttcomics/src/main/res/layout/comics_grid_row.xml b/org.fox.ttcomics/src/main/res/layout/comics_grid_row.xml
index 5d9335e..9c7c06e 100755
--- a/org.fox.ttcomics/src/main/res/layout/comics_grid_row.xml
+++ b/org.fox.ttcomics/src/main/res/layout/comics_grid_row.xml
@@ -66,14 +66,21 @@
android:textSize="12sp" />
</LinearLayout>
- <ImageView
- android:paddingTop="8dp"
- android:paddingRight="8dp"
- android:layout_gravity="top|right"
- android:src="@drawable/ic_dots_vertical"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/overflow" />
+ <FrameLayout
+ android:background="@android:color/transparent"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <ImageView
+ android:paddingTop="8dp"
+ android:paddingRight="8dp"
+ android:layout_gravity="top|right"
+ android:src="@drawable/ic_dots_vertical"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/overflow"
+ android:background="@drawable/ripple" />
+ </FrameLayout>
</FrameLayout>
</android.support.v7.widget.CardView> \ No newline at end of file