Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
YGOMobile
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fallenstardust
YGOMobile
Commits
da056f6b
Commit
da056f6b
authored
Oct 03, 2021
by
noname
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dialogDeckSelect
parent
f77175cc
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
367 additions
and
360 deletions
+367
-360
mobile/src/main/java/cn/garymb/ygomobile/utils/FileUtils.java
...le/src/main/java/cn/garymb/ygomobile/utils/FileUtils.java
+1
-13
mobile/src/main/java/cn/garymb/ygomobile/utils/YGODialogUtil.java
...rc/main/java/cn/garymb/ygomobile/utils/YGODialogUtil.java
+366
-347
No files found.
mobile/src/main/java/cn/garymb/ygomobile/utils/FileUtils.java
View file @
da056f6b
...
@@ -167,22 +167,10 @@ public class FileUtils {
...
@@ -167,22 +167,10 @@ public class FileUtils {
}
}
public
static
void
copyFile
(
String
oldPath
,
String
newPath
)
throws
IOException
{
public
static
void
copyFile
(
String
oldPath
,
String
newPath
)
throws
IOException
{
copyFile
(
oldPath
,
newPath
,
true
);
}
public
static
void
copyFile
(
String
oldPath
,
String
newPath
,
boolean
isName
)
throws
IOException
{
//判断复制后的路径是否含有文件名,如果没有则加上
if
(!
isName
)
{
//由于newPath是路径加文件名,所以获取要复制的文件名与复制后的路径组成新的newPath
String
abb
[]
=
oldPath
.
split
(
"/"
);
newPath
=
newPath
+
"/"
+
abb
[
abb
.
length
-
1
];
}
FileInputStream
fis
=
new
FileInputStream
(
oldPath
);
FileInputStream
fis
=
new
FileInputStream
(
oldPath
);
FileOutputStream
fos
=
new
FileOutputStream
(
newPath
);
FileOutputStream
fos
=
new
FileOutputStream
(
newPath
);
byte
[]
buf
=
new
byte
[
1024
];
byte
[]
buf
=
new
byte
[
1024
];
int
len
=
0
;
int
len
;
while
((
len
=
fis
.
read
(
buf
))
!=
-
1
)
{
while
((
len
=
fis
.
read
(
buf
))
!=
-
1
)
{
fos
.
write
(
buf
,
0
,
len
);
fos
.
write
(
buf
,
0
,
len
);
}
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/utils/YGODialogUtil.java
View file @
da056f6b
...
@@ -39,391 +39,410 @@ import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback;
...
@@ -39,391 +39,410 @@ import cn.garymb.ygomobile.utils.recyclerview.DeckTypeTouchHelperCallback;
import
static
cn
.
garymb
.
ygomobile
.
lite
.
R
.
string
.
please_select_target_category
;
import
static
cn
.
garymb
.
ygomobile
.
lite
.
R
.
string
.
please_select_target_category
;
public
class
YGODialogUtil
{
public
class
YGODialogUtil
{
private
static
class
ViewHolder
{
private
static
final
int
IMAGE_MOVE
=
0
;
private
static
final
int
IMAGE_COPY
=
1
;
private
final
int
IMAGE_MOVE
=
0
;
private
static
final
int
IMAGE_DEL
=
2
;
private
final
int
IMAGE_COPY
=
1
;
private
final
int
IMAGE_DEL
=
2
;
private
static
LinearLayout
ll_move
,
ll_copy
,
ll_del
,
ll_add
;
private
static
ImageView
iv_move
,
iv_copy
,
iv_del
;
private
final
LinearLayout
ll_move
;
private
static
TextView
tv_move
,
tv_copy
,
tv_del
;
private
final
LinearLayout
ll_copy
;
private
static
TextSelectAdapter
typeAdp
,
deckAdp
;
private
final
LinearLayout
ll_del
;
private
static
Dialog
ygoDialog
;
private
final
ImageView
iv_move
;
private
final
ImageView
iv_copy
;
public
static
void
dialogDeckSelect
(
Context
context
,
String
selectDeckPath
,
OnDeckMenuListener
onDeckMenuListener
)
{
private
final
ImageView
iv_del
;
DialogUtils
du
=
DialogUtils
.
getdx
(
context
);
private
final
TextView
tv_move
;
View
viewDialog
=
du
.
dialogBottomSheet
(
R
.
layout
.
dialog_deck_select
,
0
);
private
final
TextView
tv_copy
;
RecyclerView
rv_type
,
rv_deck
;
private
final
TextView
tv_del
;
private
final
TextSelectAdapter
<
DeckType
>
typeAdp
;
rv_deck
=
viewDialog
.
findViewById
(
R
.
id
.
rv_deck
);
private
final
TextSelectAdapter
<
DeckFile
>
deckAdp
;
rv_type
=
viewDialog
.
findViewById
(
R
.
id
.
rv_type
);
private
final
Dialog
ygoDialog
;
ll_move
=
viewDialog
.
findViewById
(
R
.
id
.
ll_move
);
ll_copy
=
viewDialog
.
findViewById
(
R
.
id
.
ll_copy
);
public
ViewHolder
(
Context
context
,
String
selectDeckPath
,
OnDeckMenuListener
onDeckMenuListener
){
ll_del
=
viewDialog
.
findViewById
(
R
.
id
.
ll_del
);
View
viewDialog
=
DialogUtils
.
getdx
(
context
).
dialogBottomSheet
(
R
.
layout
.
dialog_deck_select
,
0
);
ll_add
=
viewDialog
.
findViewById
(
R
.
id
.
ll_add
);
RecyclerView
rv_type
,
rv_deck
;
iv_copy
=
viewDialog
.
findViewById
(
R
.
id
.
iv_copy
);
iv_move
=
viewDialog
.
findViewById
(
R
.
id
.
iv_move
);
rv_deck
=
viewDialog
.
findViewById
(
R
.
id
.
rv_deck
);
iv_del
=
viewDialog
.
findViewById
(
R
.
id
.
iv_del
);
rv_type
=
viewDialog
.
findViewById
(
R
.
id
.
rv_type
);
tv_move
=
viewDialog
.
findViewById
(
R
.
id
.
tv_move
);
ll_move
=
viewDialog
.
findViewById
(
R
.
id
.
ll_move
);
tv_copy
=
viewDialog
.
findViewById
(
R
.
id
.
tv_copy
);
ll_copy
=
viewDialog
.
findViewById
(
R
.
id
.
ll_copy
);
tv_del
=
viewDialog
.
findViewById
(
R
.
id
.
tv_del
);
ll_del
=
viewDialog
.
findViewById
(
R
.
id
.
ll_del
);
LinearLayout
ll_add
=
viewDialog
.
findViewById
(
R
.
id
.
ll_add
);
hideAllDeckUtil
();
iv_copy
=
viewDialog
.
findViewById
(
R
.
id
.
iv_copy
);
rv_deck
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
iv_move
=
viewDialog
.
findViewById
(
R
.
id
.
iv_move
);
rv_type
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
iv_del
=
viewDialog
.
findViewById
(
R
.
id
.
iv_del
);
tv_move
=
viewDialog
.
findViewById
(
R
.
id
.
tv_move
);
List
<
DeckType
>
typeList
=
DeckUtil
.
getDeckTypeList
(
context
);
tv_copy
=
viewDialog
.
findViewById
(
R
.
id
.
tv_copy
);
tv_del
=
viewDialog
.
findViewById
(
R
.
id
.
tv_del
);
int
typeSelectPosition
=
2
;
int
deckSelectPosition
=
-
1
;
hideAllDeckUtil
();
List
<
DeckFile
>
deckList
;
rv_deck
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
if
(!
TextUtils
.
isEmpty
(
selectDeckPath
))
{
rv_type
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
File
file
=
new
File
(
selectDeckPath
);
if
(
file
.
exists
())
{
List
<
DeckType
>
typeList
=
DeckUtil
.
getDeckTypeList
(
context
);
String
name
=
file
.
getParentFile
().
getName
();
String
lastName
=
file
.
getParentFile
().
getParentFile
().
getName
();
int
typeSelectPosition
=
2
;
if
(
name
.
equals
(
"pack"
)
||
name
.
equals
(
"cacheDeck"
))
{
int
deckSelectPosition
=
-
1
;
//卡包
List
<
DeckFile
>
deckList
;
typeSelectPosition
=
0
;
if
(!
TextUtils
.
isEmpty
(
selectDeckPath
))
{
}
else
if
(
name
.
equals
(
"Decks"
)
&&
lastName
.
equals
(
Constants
.
WINDBOT_PATH
))
{
File
file
=
new
File
(
selectDeckPath
);
//ai卡组
if
(
file
.
exists
())
{
typeSelectPosition
=
1
;
String
name
=
file
.
getParentFile
().
getName
();
}
else
if
(
name
.
equals
(
"deck"
)
&&
lastName
.
equals
(
Constants
.
PREF_DEF_GAME_DIR
))
{
String
lastName
=
file
.
getParentFile
().
getParentFile
().
getName
();
//如果是deck并且上一个目录是ygocore的话,保证不会把名字为deck的卡包识别为未分类
if
(
name
.
equals
(
"pack"
)
||
name
.
equals
(
"cacheDeck"
))
{
}
else
{
//卡包
//其他卡包
typeSelectPosition
=
0
;
for
(
int
i
=
3
;
i
<
typeList
.
size
();
i
++)
{
}
else
if
(
name
.
equals
(
"Decks"
)
&&
lastName
.
equals
(
Constants
.
WINDBOT_PATH
))
{
DeckType
deckType
=
typeList
.
get
(
i
);
//ai卡组
if
(
deckType
.
getName
().
equals
(
name
))
{
typeSelectPosition
=
1
;
typeSelectPosition
=
i
;
}
else
if
(
name
.
equals
(
"deck"
)
&&
lastName
.
equals
(
Constants
.
PREF_DEF_GAME_DIR
))
{
break
;
//如果是deck并且上一个目录是ygocore的话,保证不会把名字为deck的卡包识别为未分类
}
else
{
//其他卡包
for
(
int
i
=
3
;
i
<
typeList
.
size
();
i
++)
{
DeckType
deckType
=
typeList
.
get
(
i
);
if
(
deckType
.
getName
().
equals
(
name
))
{
typeSelectPosition
=
i
;
break
;
}
}
}
}
}
}
}
}
}
}
deckList
=
DeckUtil
.
getDeckList
(
typeList
.
get
(
typeSelectPosition
).
getPath
());
deckList
=
DeckUtil
.
getDeckList
(
typeList
.
get
(
typeSelectPosition
).
getPath
());
if
(
typeSelectPosition
==
0
)
{
if
(
typeSelectPosition
==
0
)
{
if
(
AppsSettings
.
get
().
isReadExpansions
()
)
{
if
(
AppsSettings
.
get
().
isReadExpansions
())
{
try
{
try
{
deckList
.
addAll
(
DeckUtil
.
getExpansionsDeckList
());
deckList
.
addAll
(
DeckUtil
.
getExpansionsDeckList
());
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
YGOUtil
.
show
(
"额外卡库加载失败,原因为"
+
e
);
YGOUtil
.
show
(
"额外卡库加载失败,原因为"
+
e
);
}
}
}
}
}
}
typeAdp
=
new
TextSelectAdapter
<>(
typeList
,
typeSelectPosition
);
typeAdp
=
new
TextSelectAdapter
<>(
typeList
,
type
SelectPosition
);
deckAdp
=
new
TextSelectAdapter
<>(
deckList
,
deck
SelectPosition
);
deckAdp
=
new
TextSelectAdapter
<>(
deckList
,
deckSelectPosition
);
rv_type
.
setAdapter
(
typeAdp
);
rv_type
.
setAdapter
(
type
Adp
);
rv_deck
.
setAdapter
(
deck
Adp
);
rv_deck
.
setAdapter
(
deckAdp
);
typeAdp
.
setOnItemSelectListener
(
new
TextSelectAdapter
.
OnItemSelectListener
<
DeckType
>()
{
typeAdp
.
setOnItemSelectListener
(
new
TextSelectAdapter
.
OnItemSelectListener
<
DeckType
>()
{
@Override
@Override
public
void
onItemSelect
(
int
position
,
DeckType
item
)
{
public
void
onItemSelect
(
int
position
,
DeckType
item
)
{
clearDeckSelect
();
clearDeckSelect
();
deckList
.
clear
();
deckList
.
clear
(
);
deckList
.
addAll
(
DeckUtil
.
getDeckList
(
item
.
getPath
())
);
deckList
.
addAll
(
DeckUtil
.
getDeckList
(
item
.
getPath
()));
if
(
position
==
0
)
{
if
(
position
==
0
)
{
if
(
AppsSettings
.
get
().
isReadExpansions
()
)
{
if
(
AppsSettings
.
get
().
isReadExpansions
())
{
try
{
try
{
deckList
.
addAll
(
DeckUtil
.
getExpansionsDeckList
());
deckList
.
addAll
(
DeckUtil
.
getExpansionsDeckList
());
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
YGOUtil
.
show
(
"额外卡库加载失败,原因为"
+
e
);
YGOUtil
.
show
(
"额外卡库加载失败,原因为"
+
e
);
}
}
}
}
}
deckAdp
.
notifyDataSetChanged
();
}
}
deckAdp
.
notifyDataSetChanged
();
});
}
deckAdp
.
setOnItemSelectListener
(
new
TextSelectAdapter
.
OnItemSelectListener
<
DeckFile
>()
{
});
@Override
deckAdp
.
setOnItemSelectListener
(
new
TextSelectAdapter
.
OnItemSelectListener
<
DeckFile
>()
{
public
void
onItemSelect
(
int
position
,
DeckFile
item
)
{
@Override
if
(
deckAdp
.
isManySelect
())
{
public
void
onItemSelect
(
int
position
,
DeckFile
item
)
{
deckAdp
.
addManySelect
(
item
);
if
(
deckAdp
.
isManySelect
())
{
deckAdp
.
notifyItemChanged
(
position
);
deckAdp
.
addManySelect
(
item
);
}
else
{
deckAdp
.
notifyItemChanged
(
position
);
dismiss
();
}
else
{
onDeckMenuListener
.
onDeckSelect
(
item
);
dis
();
}
onDeckMenuListener
.
onDeckSelect
(
item
);
}
}
}
});
});
deckAdp
.
setOnItemLongClickListener
(
new
BaseQuickAdapter
.
OnItemLongClickListener
()
{
deckAdp
.
setOnItemLongClickListener
(
new
BaseQuickAdapter
.
OnItemLongClickListener
()
{
@Override
@Override
public
boolean
onItemLongClick
(
BaseQuickAdapter
adapter
,
View
view
,
int
position
)
{
public
boolean
onItemLongClick
(
BaseQuickAdapter
adapter
,
View
view
,
int
position
)
{
if
(
deckAdp
.
isSelect
()
||
typeAdp
.
getSelectPosition
()
==
0
)
if
(
deckAdp
.
isSelect
()
||
typeAdp
.
getSelectPosition
()
==
0
)
return
true
;
return
true
;
deckAdp
.
setManySelect
(
true
);
deckAdp
.
setManySelect
(
true
);
if
(
typeAdp
.
getSelectPosition
()
==
1
)
{
if
(
typeAdp
.
getSelectPosition
()
==
1
)
{
showCopyDeckUtil
();
showCopyDeckUtil
();
}
else
{
}
else
{
showAllDeckUtil
();
showAllDeckUtil
();
}
deckAdp
.
addManySelect
((
DeckFile
)
adapter
.
getItem
(
position
));
deckAdp
.
notifyItemChanged
(
position
);
return
true
;
}
}
deckAdp
.
addManySelect
((
DeckFile
)
adapter
.
getItem
(
position
));
});
deckAdp
.
notifyItemChanged
(
position
);
return
true
;
ll_add
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
}
@Override
});
public
void
onClick
(
View
v
)
{
DialogUtils
.
getdx
(
context
).
dialogl
(
context
.
getString
(
R
.
string
.
new_deck
),
ll_add
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
new
String
[]{
context
.
getString
(
R
.
string
.
category_name
),
@Override
context
.
getString
(
R
.
string
.
deck_name
)},
R
.
drawable
.
radius
).
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
public
void
onClick
(
View
v
)
{
@Override
du
.
dialogl
(
context
.
getString
(
R
.
string
.
new_deck
),
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
new
String
[]{
context
.
getString
(
R
.
string
.
category_name
),
DialogUtils
.
getdx
(
context
).
dis
();
context
.
getString
(
R
.
string
.
deck_name
)},
R
.
drawable
.
radius
).
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
switch
(
position
)
{
@Override
case
0
:
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
//if (deckList.size()>=8){
du
.
dis
();
// YGOUtil.show("最多只能有5个自定义分类");
switch
(
position
)
{
//}
case
0
:
DialogPlus
builder
=
new
DialogPlus
(
context
);
//if (deckList.size()>=8){
builder
.
setTitle
(
R
.
string
.
please_input_category_name
);
// YGOUtil.show("最多只能有5个自定义分类");
EditText
editText
=
new
EditText
(
context
);
//}
editText
.
setGravity
(
Gravity
.
TOP
|
Gravity
.
LEFT
);
DialogPlus
builder
=
new
DialogPlus
(
context
);
editText
.
setInputType
(
InputType
.
TYPE_TEXT_FLAG_NO_SUGGESTIONS
);
builder
.
setTitle
(
R
.
string
.
please_input_category_name
);
editText
.
setSingleLine
();
EditText
editText
=
new
EditText
(
context
);
builder
.
setContentView
(
editText
);
editText
.
setGravity
(
Gravity
.
TOP
|
Gravity
.
LEFT
);
builder
.
setOnCloseLinster
(
DialogInterface:
:
dismiss
);
editText
.
setInputType
(
InputType
.
TYPE_TEXT_FLAG_NO_SUGGESTIONS
);
builder
.
setLeftButtonListener
((
dlg
,
s
)
->
{
editText
.
setSingleLine
();
String
name
=
editText
.
getText
().
toString
().
trim
();
builder
.
setContentView
(
editText
);
if
(
TextUtils
.
isEmpty
(
name
))
{
builder
.
setOnCloseLinster
((
dlg
)
->
{
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
invalid_category_name
));
dlg
.
dismiss
();
return
;
});
}
builder
.
setLeftButtonListener
((
dlg
,
s
)
->
{
File
file
=
new
File
(
AppsSettings
.
get
().
getDeckDir
(),
name
);
String
name
=
editText
.
getText
().
toString
().
trim
();
if
(
IOUtils
.
createFolder
(
file
))
{
if
(
TextUtils
.
isEmpty
(
name
))
{
typeList
.
add
(
new
DeckType
(
name
,
file
.
getAbsolutePath
()));
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
invalid_category_name
));
typeAdp
.
notifyItemInserted
(
typeList
.
size
()
-
1
);
return
;
dlg
.
dismiss
();
}
}
else
{
File
file
=
new
File
(
AppsSettings
.
get
().
getDeckDir
(),
name
);
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
create_new_failed
));
if
(
IOUtils
.
createFolder
(
file
))
{
}
typeList
.
add
(
new
DeckType
(
name
,
file
.
getAbsolutePath
()));
typeAdp
.
notifyItemInserted
(
typeList
.
size
()
-
1
);
});
dlg
.
dismiss
();
builder
.
show
();
}
else
{
break
;
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
create_new_failed
));
case
1
:
}
onDeckMenuListener
.
onDeckNew
(
typeList
.
get
(
typeAdp
.
getSelectPosition
()));
dismiss
();
});
break
;
builder
.
show
();
}
break
;
case
1
:
onDeckMenuListener
.
onDeckNew
(
typeList
.
get
(
typeAdp
.
getSelectPosition
()));
dis
();
break
;
}
}
}
});
});
}
}
});
});
ll_move
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
ll_move
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
@Override
public
void
onClick
(
View
v
)
{
public
void
onClick
(
View
v
)
{
List
<
DeckType
>
otherType
=
getOtherTypeList
();
List
<
DeckType
>
otherType
=
getOtherTypeList
();
DialogUtils
.
getdx
(
context
).
dialogl
(
context
.
getString
(
please_select_target_category
),
du
.
dialogl
(
context
.
getString
(
please_select_target_category
),
getStringType
(
otherType
),
getStringType
(
otherType
),
R
.
drawable
.
radius
).
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
R
.
drawable
.
radius
).
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
@Override
@Override
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
DialogUtils
.
getdx
(
context
).
dis
();
du
.
dis
();
DeckType
toType
=
otherType
.
get
(
position
);
DeckType
toType
=
otherType
.
get
(
position
);
IOUtils
.
createFolder
(
new
File
(
toType
.
getPath
()));
IOUtils
.
createFolder
(
new
File
(
toType
.
getPath
()));
List
<
DeckFile
>
deckFileList
=
deckAdp
.
getSelectList
();
List
<
DeckFile
>
deckFileList
=
deckAdp
.
getSelectList
();
for
(
DeckFile
deckFile
:
deckFileList
)
{
for
(
DeckFile
deckFile
:
deckFileList
)
{
try
{
try
{
FileUtils
.
moveFile
(
deckFile
.
getPath
(),
new
File
(
toType
.
getPath
(),
deckFile
.
getName
()).
getPath
());
FileUtils
.
moveFile
(
deckFile
.
getPath
(),
new
File
(
toType
.
getPath
(),
deckFile
.
getName
()).
getPath
());
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
deckList
.
remove
(
deckFile
);
}
}
deckList
.
remove
(
deckFile
);
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
onDeckMenuListener
.
onDeckMove
(
deckAdp
.
getSelectList
(),
toType
);
clearDeckSelect
();
}
}
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
});
onDeckMenuListener
.
onDeckMove
(
deckAdp
.
getSelectList
(),
toType
);
}
clearDeckSelect
();
});
ll_copy
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
List
<
DeckType
>
otherType
=
getOtherTypeList
();
DialogUtils
.
getdx
(
context
).
dialogl
(
context
.
getString
(
please_select_target_category
),
getStringType
(
otherType
),
R
.
drawable
.
radius
).
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
DialogUtils
.
getdx
(
context
).
dis
();
DeckType
toType
=
otherType
.
get
(
position
);
IOUtils
.
createFolder
(
new
File
(
toType
.
getPath
()));
List
<
DeckFile
>
deckFileList
=
deckAdp
.
getSelectList
();
for
(
DeckFile
deckFile
:
deckFileList
)
{
try
{
FileUtils
.
copyFile
(
deckFile
.
getPath
(),
new
File
(
toType
.
getPath
(),
deckFile
.
getName
()).
getPath
());
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
onDeckMenuListener
.
onDeckCopy
(
deckAdp
.
getSelectList
(),
toType
);
clearDeckSelect
();
}
});
}
});
ll_del
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
deckAdp
.
getSelectList
().
size
()
==
0
)
{
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
no_deck_is_selected
));
return
;
}
}
});
DialogPlus
dialogPlus
=
new
DialogPlus
(
context
);
}
dialogPlus
.
setMessage
(
R
.
string
.
question_delete_deck
);
});
dialogPlus
.
setLeftButtonText
(
YGOUtil
.
s
(
R
.
string
.
delete
));
dialogPlus
.
setRightButtonText
(
R
.
string
.
Cancel
);
ll_copy
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
dialogPlus
.
setLeftButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
@Override
@Override
public
void
onClick
(
View
v
)
{
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
List
<
DeckType
>
otherType
=
getOtherTypeList
();
List
<
DeckFile
>
selectDeckList
=
deckAdp
.
getSelectList
();
for
(
DeckFile
deckFile
:
selectDeckList
)
{
du
.
dialogl
(
context
.
getString
(
please_select_target_category
),
new
File
(
deckFile
.
getPath
()).
delete
();
getStringType
(
otherType
),
deckList
.
remove
(
deckFile
);
R
.
drawable
.
radius
).
setOnItemClickListener
(
new
AdapterView
.
OnItemClickListener
()
{
@Override
public
void
onItemClick
(
AdapterView
<?>
parent
,
View
view
,
int
position
,
long
id
)
{
du
.
dis
();
DeckType
toType
=
otherType
.
get
(
position
);
IOUtils
.
createFolder
(
new
File
(
toType
.
getPath
()));
List
<
DeckFile
>
deckFileList
=
deckAdp
.
getSelectList
();
for
(
DeckFile
deckFile
:
deckFileList
)
{
try
{
FileUtils
.
copyFile
(
deckFile
.
getPath
(),
new
File
(
toType
.
getPath
(),
deckFile
.
getName
()).
getPath
());
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
dialogPlus
.
dismiss
();
onDeckMenuListener
.
onDeckDel
(
selectDeckList
);
clearDeckSelect
();
}
});
dialogPlus
.
setRightButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
@Override
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
dialogPlus
.
dismiss
();
}
}
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
});
onDeckMenuListener
.
onDeckCopy
(
deckAdp
.
getSelectList
(),
toType
);
dialogPlus
.
show
();
clearDeckSelect
();
}
});
ygoDialog
=
DialogUtils
.
getdx
(
context
).
getDialog
();
ygoDialog
.
setOnDismissListener
(
new
DialogInterface
.
OnDismissListener
()
{
@Override
public
void
onDismiss
(
DialogInterface
dialog
)
{
clearDeckSelect
();
}
});
ygoDialog
.
setOnKeyListener
(
new
DialogInterface
.
OnKeyListener
()
{
@Override
public
boolean
onKey
(
DialogInterface
dialog
,
int
keyCode
,
KeyEvent
event
)
{
if
(
keyCode
==
KeyEvent
.
KEYCODE_BACK
)
{
if
(
deckAdp
.
isManySelect
())
{
clearDeckSelect
();
return
true
;
}
}
}
});
return
false
;
}
});
ll_del
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
deckAdp
.
getSelectList
().
size
()
==
0
)
{
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
no_deck_is_selected
));
return
;
}
}
DialogPlus
dialogPlus
=
new
DialogPlus
(
context
);
});
dialogPlus
.
setMessage
(
R
.
string
.
question_delete_deck
);
ItemTouchHelper
itemTouchHelper
=
new
ItemTouchHelper
(
new
DeckTypeTouchHelperCallback
(
new
OnDeckTypeListener
()
{
dialogPlus
.
setLeftButtonText
(
YGOUtil
.
s
(
R
.
string
.
delete
));
@Override
dialogPlus
.
setRightButtonText
(
R
.
string
.
Cancel
);
public
void
onDeckTypeListener
(
int
positon
)
{
dialogPlus
.
setLeftButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
File
file
=
new
File
(
typeList
.
get
(
positon
).
getPath
());
@Override
File
[]
files
=
file
.
listFiles
();
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
List
<
DeckFile
>
deckFileList
=
new
ArrayList
<>();
List
<
DeckFile
>
selectDeckList
=
deckAdp
.
getSelectList
();
if
(
files
!=
null
)
{
for
(
DeckFile
deckFile
:
selectDeckList
)
{
for
(
File
file1
:
files
)
{
new
File
(
deckFile
.
getPath
()).
delete
();
deckFileList
.
add
(
new
DeckFile
(
file1
));
deckList
.
remove
(
deckFile
);
}
}
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
dialogPlus
.
dismiss
();
onDeckMenuListener
.
onDeckDel
(
selectDeckList
);
clearDeckSelect
();
}
}
});
IOUtils
.
delete
(
file
);
dialogPlus
.
setRightButtonListener
(
new
DialogInterface
.
OnClickListener
()
{
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
@Override
onDeckMenuListener
.
onDeckDel
(
deckFileList
);
public
void
onClick
(
DialogInterface
dialog
,
int
which
)
{
typeAdp
.
remove
(
positon
);
dialogPlus
.
dismiss
();
if
(
typeAdp
.
getSelectPosition
()
==
positon
)
{
typeAdp
.
setSelectPosition
(
2
);
typeAdp
.
notifyItemChanged
(
2
);
}
}
});
clearDeckSelect
();
dialogPlus
.
show
();
deckList
.
clear
();
}
deckList
.
addAll
(
DeckUtil
.
getDeckList
(
typeList
.
get
(
2
).
getPath
()));
});
deckAdp
.
notifyDataSetChanged
();
}
}));
itemTouchHelper
.
attachToRecyclerView
(
rv_type
);
}
ygoDialog
=
du
.
getDialog
();
private
String
[]
getStringType
(
List
<
DeckType
>
deckTypeList
)
{
ygoDialog
.
setOnDismissListener
(
new
DialogInterface
.
OnDismissListener
()
{
String
[]
types
=
new
String
[
deckTypeList
.
size
()];
@Override
for
(
int
i
=
0
;
i
<
types
.
length
;
i
++)
{
public
void
onDismiss
(
DialogInterface
dialog
)
{
types
[
i
]
=
deckTypeList
.
get
(
i
).
getName
();
clearDeckSelect
();
}
}
});
return
types
;
ygoDialog
.
setOnKeyListener
(
new
DialogInterface
.
OnKeyListener
()
{
}
@Override
public
boolean
onKey
(
DialogInterface
dialog
,
int
keyCode
,
KeyEvent
event
)
{
if
(
keyCode
==
KeyEvent
.
KEYCODE_BACK
)
{
if
(
deckAdp
.
isManySelect
())
{
clearDeckSelect
();
return
true
;
}
//获取可以移动的分类
private
List
<
DeckType
>
getOtherTypeList
()
{
List
<
DeckType
>
typeList
=
typeAdp
.
getData
();
List
<
DeckType
>
moveTypeList
=
new
ArrayList
<>();
DeckType
selectType
=
typeList
.
get
(
typeAdp
.
getSelectPosition
());
for
(
int
i
=
2
;
i
<
typeList
.
size
();
i
++)
{
DeckType
deckType
=
typeList
.
get
(
i
);
if
(!
deckType
.
getPath
().
equals
(
selectType
.
getPath
()))
{
moveTypeList
.
add
(
deckType
);
}
}
return
false
;
}
});
ItemTouchHelper
itemTouchHelper
=
new
ItemTouchHelper
(
new
DeckTypeTouchHelperCallback
(
new
OnDeckTypeListener
()
{
@Override
public
void
onDeckTypeListener
(
int
positon
)
{
File
file
=
new
File
(
typeList
.
get
(
positon
).
getPath
());
File
[]
files
=
file
.
listFiles
();
List
<
DeckFile
>
deckFileList
=
new
ArrayList
<>();
if
(
files
!=
null
)
{
for
(
File
file1
:
files
)
{
deckFileList
.
add
(
new
DeckFile
(
file1
));
}
}
IOUtils
.
delete
(
file
);
YGOUtil
.
show
(
context
.
getString
(
R
.
string
.
done
));
onDeckMenuListener
.
onDeckDel
(
deckFileList
);
typeAdp
.
remove
(
positon
);
if
(
typeAdp
.
getSelectPosition
()
==
positon
)
{
typeAdp
.
setSelectPosition
(
2
);
typeAdp
.
notifyItemChanged
(
2
);
}
clearDeckSelect
();
deckList
.
clear
();
deckList
.
addAll
(
DeckUtil
.
getDeckList
(
typeList
.
get
(
2
).
getPath
()));
deckAdp
.
notifyDataSetChanged
();
}
}
}));
return
moveTypeList
;
itemTouchHelper
.
attachToRecyclerView
(
rv_type
);
}
}
private
static
String
[]
getStringType
(
List
<
DeckType
>
deckTypeList
)
{
private
void
showAllDeckUtil
()
{
String
[]
types
=
new
String
[
deckTypeList
.
size
()];
ImageUtil
.
reImageColor
(
IMAGE_MOVE
,
iv_move
);
//可用时用原图标色
for
(
int
i
=
0
;
i
<
types
.
length
;
i
++)
{
ImageUtil
.
reImageColor
(
IMAGE_DEL
,
iv_del
);
types
[
i
]
=
deckTypeList
.
get
(
i
).
getName
();
ImageUtil
.
reImageColor
(
IMAGE_COPY
,
iv_copy
);
tv_del
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
//可用时字色蓝
tv_copy
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
tv_move
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
ll_del
.
setEnabled
(
true
);
ll_copy
.
setEnabled
(
true
);
ll_move
.
setEnabled
(
true
);
}
}
return
types
;
}
//获取可以移动的分类
private
void
hideAllDeckUtil
()
{
private
static
List
<
DeckType
>
getOtherTypeList
()
{
ImageUtil
.
setGrayImage
(
IMAGE_MOVE
,
iv_move
);
List
<
DeckType
>
typeList
=
typeAdp
.
getData
(
);
ImageUtil
.
setGrayImage
(
IMAGE_DEL
,
iv_del
);
List
<
DeckType
>
moveTypeList
=
new
ArrayList
<>(
);
ImageUtil
.
setGrayImage
(
IMAGE_COPY
,
iv_copy
);
DeckType
selectType
=
typeList
.
get
(
typeAdp
.
getSelectPosition
());
tv_del
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
//不可用时字色灰
for
(
int
i
=
2
;
i
<
typeList
.
size
();
i
++)
{
tv_copy
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
DeckType
deckType
=
typeList
.
get
(
i
);
tv_move
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
)
);
if
(!
deckType
.
getPath
().
equals
(
selectType
.
getPath
()))
{
ll_del
.
setEnabled
(
false
);
moveTypeList
.
add
(
deckTyp
e
);
ll_copy
.
setEnabled
(
fals
e
);
}
ll_move
.
setEnabled
(
false
);
}
}
return
moveTypeList
;
}
private
static
void
showAll
DeckUtil
()
{
private
void
showCopy
DeckUtil
()
{
ImageUtil
.
reImageColor
(
IMAGE_MOVE
,
iv_move
);
//可用时用原图标色
ImageUtil
.
setGrayImage
(
IMAGE_MOVE
,
iv_move
);
ImageUtil
.
reImageColor
(
IMAGE_DEL
,
iv_del
);
ImageUtil
.
setGrayImage
(
IMAGE_DEL
,
iv_del
);
ImageUtil
.
reImageColor
(
IMAGE_COPY
,
iv_copy
);
ImageUtil
.
reImageColor
(
IMAGE_COPY
,
iv_copy
);
tv_del
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
//可用时字色蓝
tv_del
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
tv_copy
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
tv_copy
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
tv_move
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
tv_move
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
ll_del
.
setEnabled
(
tru
e
);
ll_del
.
setEnabled
(
fals
e
);
ll_copy
.
setEnabled
(
true
);
ll_copy
.
setEnabled
(
true
);
ll_move
.
setEnabled
(
tru
e
);
ll_move
.
setEnabled
(
fals
e
);
}
}
private
static
void
hideAllDeckUtil
()
{
private
void
clearDeckSelect
()
{
ImageUtil
.
setGrayImage
(
IMAGE_MOVE
,
iv_move
);
deckAdp
.
setManySelect
(
false
);
ImageUtil
.
setGrayImage
(
IMAGE_DEL
,
iv_del
);
hideAllDeckUtil
();
ImageUtil
.
setGrayImage
(
IMAGE_COPY
,
iv_copy
);
}
tv_del
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
//不可用时字色灰
tv_copy
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
tv_move
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
ll_del
.
setEnabled
(
false
);
ll_copy
.
setEnabled
(
false
);
ll_move
.
setEnabled
(
false
);
}
private
static
void
showCopyDeckUtil
()
{
public
void
show
(){
ImageUtil
.
setGrayImage
(
IMAGE_MOVE
,
iv_move
);
if
(
ygoDialog
!=
null
&&
!
ygoDialog
.
isShowing
())
{
ImageUtil
.
setGrayImage
(
IMAGE_DEL
,
iv_del
);
ygoDialog
.
show
();
ImageUtil
.
reImageColor
(
IMAGE_COPY
,
iv_copy
);
}
tv_del
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
}
tv_copy
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
holo_blue_bright
));
tv_move
.
setTextColor
(
YGOUtil
.
c
(
R
.
color
.
star_rank
));
public
void
dismiss
()
{
ll_del
.
setEnabled
(
false
);
if
(
ygoDialog
!=
null
&&
ygoDialog
.
isShowing
())
ll_copy
.
setEnabled
(
true
);
ygoDialog
.
dismiss
();
ll_move
.
setEnabled
(
false
);
}
}
private
static
void
clearDeckSelect
()
{
deckAdp
.
setManySelect
(
false
);
hideAllDeckUtil
();
}
}
public
static
void
dis
()
{
if
(
ygoDialog
!=
null
)
public
static
void
dialogDeckSelect
(
Context
context
,
String
selectDeckPath
,
OnDeckMenuListener
onDeckMenuListener
)
{
ygoDialog
.
dismiss
();
ViewHolder
viewHolder
=
new
ViewHolder
(
context
,
selectDeckPath
,
onDeckMenuListener
);
viewHolder
.
show
();
}
}
public
interface
OnDeckMenuListener
{
public
interface
OnDeckMenuListener
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment