resource alert dialog

This commit is contained in:
Caesar2011
2018-09-16 19:41:01 +02:00
parent e21b2e99f2
commit c79977140f
7 changed files with 45 additions and 51 deletions

View File

@@ -1,6 +1,7 @@
package de.sebse.fuplanner.fragments.moddetails;
import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
@@ -19,6 +20,8 @@ import de.sebse.fuplanner.MainActivity;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.KVV;
import de.sebse.fuplanner.services.KVV.types.Modules;
import de.sebse.fuplanner.services.KVV.types.Resource;
import de.sebse.fuplanner.tools.UtilsDate;
import de.sebse.fuplanner.tools.logging.Logger;
import de.sebse.fuplanner.tools.ui.treeview.DirectoryNodeBinder;
import de.sebse.fuplanner.tools.ui.treeview.FileNodeBinder;
@@ -85,6 +88,21 @@ public class ModDetailResourceFragment extends Fragment {
onToggle(!node.isExpand(), holder);
// if (!node.isExpand())
// adapter.collapseBrotherNode(node);
} else {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getContext());
Resource.File file = (Resource.File) node.getContent();
alertDialogBuilder
.setTitle(file.getTitle())
.setMessage(
getResources().getString(R.string.creator_name, file.getAuthor()) + "\n" +
getResources().getString(R.string.last_modified_on, UtilsDate.getModifiedDateTime(context, file.getModifiedDate()))
)
.setCancelable(true)
.setNeutralButton(R.string.close, (dialog, id) -> dialog.cancel())
.setPositiveButton(R.string.download, (dialog, id) -> log.d(file.getUrl()));
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
return false;
}

View File

@@ -1,9 +1,12 @@
package de.sebse.fuplanner.services.KVV.types;
import android.support.annotation.LayoutRes;
import java.io.Serializable;
import java.util.ArrayList;
import de.sebse.fuplanner.tools.ui.treeview.Dir;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.tools.ui.treeview.LayoutItemType;
import de.sebse.fuplanner.tools.ui.treeview.TreeNode;
@@ -52,7 +55,7 @@ public abstract class Resource implements Serializable {
public abstract TreeNode getTreeNode();
public static class File extends Resource {
public static class File extends Resource implements LayoutItemType {
private final String type;
public File(String author, String title, long modifiedDate, String url, boolean visible, String container, String type) {
@@ -73,11 +76,16 @@ public abstract class Resource implements Serializable {
@Override
public TreeNode getTreeNode() {
return new TreeNode<>(new de.sebse.fuplanner.tools.ui.treeview.File(title));
return new TreeNode<>(this);
}
@Override
public @LayoutRes int getLayoutId() {
return R.layout.item_file;
}
}
public static class Folder extends Resource{
public static class Folder extends Resource implements LayoutItemType {
private final ArrayList<Resource> childs;
public Folder(String author, String title, long modifiedDate, String url, boolean visible, String container) {
@@ -110,12 +118,17 @@ public abstract class Resource implements Serializable {
@Override
public TreeNode getTreeNode() {
TreeNode<Dir> dir = new TreeNode<>(new Dir(title));
TreeNode dir = new TreeNode<>(this);
for (Resource res: childs) {
dir.addChild(res.getTreeNode());
}
return dir;
}
@Override
public @LayoutRes int getLayoutId() {
return R.layout.item_dir;
}
}
}

View File

@@ -1,21 +0,0 @@
package de.sebse.fuplanner.tools.ui.treeview;
import de.sebse.fuplanner.R;
/**
* Created by tlh on 2016/10/1 :)
*/
public class Dir implements LayoutItemType {
public String dirName;
public Dir(String dirName) {
this.dirName = dirName;
}
@Override
public int getLayoutId() {
return R.layout.item_dir;
}
}

View File

@@ -5,6 +5,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.types.Resource;
/**
* Created by tlh on 2016/10/1 :)
@@ -22,8 +23,8 @@ public class DirectoryNodeBinder extends TreeViewBinder<DirectoryNodeBinder.View
holder.ivArrow.setImageResource(R.drawable.ic_keyboard_arrow_right_black_18dp);
int rotateDegree = node.isExpand() ? 90 : 0;
holder.ivArrow.setRotation(rotateDegree);
Dir dirNode = (Dir) node.getContent();
holder.tvName.setText(dirNode.dirName);
Resource.Folder dirNode = (Resource.Folder) node.getContent();
holder.tvName.setText(dirNode.getTitle());
if (node.isLeaf())
holder.ivArrow.setVisibility(View.INVISIBLE);
else holder.ivArrow.setVisibility(View.VISIBLE);

View File

@@ -1,21 +0,0 @@
package de.sebse.fuplanner.tools.ui.treeview;
import de.sebse.fuplanner.R;
/**
* Created by tlh on 2016/10/1 :)
*/
public class File implements LayoutItemType {
public String fileName;
public File(String fileName) {
this.fileName = fileName;
}
@Override
public int getLayoutId() {
return R.layout.item_file;
}
}

View File

@@ -4,6 +4,7 @@ import android.view.View;
import android.widget.TextView;
import de.sebse.fuplanner.R;
import de.sebse.fuplanner.services.KVV.types.Resource;
/**
* Created by tlh on 2016/10/1 :)
@@ -17,8 +18,8 @@ public class FileNodeBinder extends TreeViewBinder<FileNodeBinder.ViewHolder> {
@Override
public void bindView(ViewHolder holder, int position, TreeNode node) {
File fileNode = (File) node.getContent();
holder.tvName.setText(fileNode.fileName);
Resource.File fileNode = (Resource.File) node.getContent();
holder.tvName.setText(fileNode.getTitle());
}
@Override

View File

@@ -62,4 +62,7 @@
<string name="starters">Starters</string>
<string name="others">Others</string>
<string name="resourcen">Resourcen</string>
<string name="creator_name">Created by: %1$s</string>
<string name="last_modified_on">Last Modified: %1$s</string>
<string name="download">Download</string>
</resources>