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
1809a180
Commit
1809a180
authored
Jun 06, 2025
by
fallenstardust
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
移除刷新按钮,不在监听状态变化
parent
63715915
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
141 deletions
+12
-141
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
...arymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
+3
-32
mobile/src/main/java/cn/garymb/ygomobile/deck_square/MyDeckListAdapter.java
...va/cn/garymb/ygomobile/deck_square/MyDeckListAdapter.java
+7
-97
mobile/src/main/res/layout/fragment_deck_square_my_deck.xml
mobile/src/main/res/layout/fragment_deck_square_my_deck.xml
+0
-10
mobile/src/main/res/layout/item_my_deck.xml
mobile/src/main/res/layout/item_my_deck.xml
+2
-2
No files found.
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
View file @
1809a180
...
...
@@ -30,7 +30,7 @@ import cn.garymb.ygomobile.utils.YGOUtil;
//打开页面后,先扫描本地的卡组,读取其是否包含deckId,是的话代表平台上可能有
//之后读取平台上的卡组,与本地卡组列表做比较。
public
class
DeckSquareMyDeckFragment
extends
Fragment
implements
MyDeckListAdapter
.
OnDeckDeleteListener
{
public
class
DeckSquareMyDeckFragment
extends
Fragment
{
private
static
final
String
TAG
=
DeckSquareListAdapter
.
class
.
getSimpleName
();
private
FragmentDeckSquareMyDeckBinding
binding
;
private
MyDeckListAdapter
deckListAdapter
;
...
...
@@ -72,13 +72,6 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
}
});
binding
.
refreshData
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
deckListAdapter
.
loadData
();
}
});
deckListAdapter
.
setOnItemLongClickListener
((
adapter
,
view
,
position
)
->
{
MyDeckItem
item
=
(
MyDeckItem
)
adapter
.
getItem
(
position
);
...
...
@@ -97,8 +90,6 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
onDeckMenuListener
.
onDeckSelect
(
deckFile
);
}
);
// 设置删除监听器
deckListAdapter
.
setOnDeckDeleteListener
(
this
);
return
binding
.
getRoot
();
}
...
...
@@ -133,6 +124,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
return
result
;
}).
fail
((
e
)
->
{
YGOUtil
.
showTextToast
(
R
.
string
.
logining_failed
);
binding
.
llMainUi
.
setVisibility
(
View
.
GONE
);
binding
.
progressBar
.
setVisibility
(
View
.
GONE
);
binding
.
btnLogin
.
setEnabled
(
true
);
...
...
@@ -145,7 +137,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
binding
.
btnLogin
.
setEnabled
(
true
);
YGOUtil
.
showTextToast
(
R
.
string
.
login_succeed
);
}
else
{
LogUtil
.
i
(
TAG
,
"login fail2"
);
YGOUtil
.
showTextToast
(
R
.
string
.
logining_failed
);
binding
.
llMainUi
.
setVisibility
(
View
.
GONE
);
binding
.
progressBar
.
setVisibility
(
View
.
GONE
);
binding
.
btnLogin
.
setEnabled
(
true
);
...
...
@@ -153,25 +145,4 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
});
}
@Override
public
void
onDeckDeleteStarted
()
{
binding
.
refreshData
.
setEnabled
(
false
);
// 设置灰色滤镜
binding
.
refreshData
.
setColorFilter
(
Color
.
GRAY
,
PorterDuff
.
Mode
.
SRC_IN
);
}
@Override
public
void
onDeckDeleteProgress
(
int
secondsRemaining
)
{
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
binding
.
refreshData
.
setTooltipText
(
secondsRemaining
+
"s waiting"
);
}
}
@Override
public
void
onDeckDeleteFinished
()
{
binding
.
refreshData
.
setEnabled
(
true
);
// 移除滤镜,恢复原颜色
binding
.
refreshData
.
clearColorFilter
();
}
}
mobile/src/main/java/cn/garymb/ygomobile/deck_square/MyDeckListAdapter.java
View file @
1809a180
package
cn.garymb.ygomobile.deck_square
;
import
android.os.CountDownTimer
;
import
android.util.Log
;
import
android.widget.ImageView
;
...
...
@@ -27,9 +25,6 @@ import cn.garymb.ygomobile.utils.YGOUtil;
public
class
MyDeckListAdapter
extends
BaseQuickAdapter
<
MyDeckItem
,
BaseViewHolder
>
{
private
static
final
String
TAG
=
DeckSquareListAdapter
.
class
.
getSimpleName
();
private
ImageLoader
imageLoader
;
// 添加监听器变量
private
OnDeckDeleteListener
deleteListener
;
private
OnDeckManipulateListener
manipulateListener
;
public
MyDeckListAdapter
(
int
layoutResId
)
{
super
(
layoutResId
);
...
...
@@ -37,49 +32,6 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
imageLoader
=
new
ImageLoader
();
}
public
interface
OnDeckManipulateListener
{
void
onDeckHide
();
void
onDeckCancelHide
();
void
onDeckDeleteFinished
();
}
// 在MyDeckListAdapter中添加接口
public
interface
OnDeckDeleteListener
{
void
onDeckDeleteStarted
();
void
onDeckDeleteProgress
(
int
secondsRemaining
);
void
onDeckDeleteFinished
();
}
// 添加设置监听器的方法
public
void
setOnDeckDeleteListener
(
OnDeckDeleteListener
listener
)
{
this
.
deleteListener
=
listener
;
}
private
void
startButtonCountdown
()
{
final
int
countdownSeconds
=
3
;
new
CountDownTimer
(
countdownSeconds
*
1000
,
1000
)
{
@Override
public
void
onTick
(
long
millisUntilFinished
)
{
int
secondsLeft
=
(
int
)
(
millisUntilFinished
/
1000
);
if
(
deleteListener
!=
null
)
{
deleteListener
.
onDeckDeleteProgress
(
secondsLeft
);
}
}
@Override
public
void
onFinish
()
{
if
(
deleteListener
!=
null
)
{
deleteListener
.
onDeckDeleteFinished
();
}
}
}.
start
();
}
public
void
loadData
()
{
List
<
MyDeckItem
>
myOnlineDecks
=
new
ArrayList
<>();
LoginToken
loginToken
=
DeckSquareApiUtil
.
getLoginData
();
...
...
@@ -139,42 +91,21 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
}
private
void
deleteMyDeckOnLine
(
MyDeckItem
item
)
{
if
(
item
!=
null
)
{
LoginToken
loginToken
=
DeckSquareApiUtil
.
getLoginData
();
if
(
loginToken
==
null
)
{
return
;
}
//放在登录检查后面,否则:如果未通过登录检查,本函数return后将无法调用onDeckDeleteFinished()
if
(
deleteListener
!=
null
)
{
deleteListener
.
onDeckDeleteStarted
();
}
VUiKit
.
defer
().
when
(()
->
{
PushDeckResponse
result
=
DeckSquareApiUtil
.
deleteDeck
(
item
.
getDeckId
(),
loginToken
);
return
result
;
}).
fail
(
e
->
{
if
(
deleteListener
!=
null
)
{
deleteListener
.
onDeckDeleteFinished
();
}
LogUtil
.
i
(
TAG
,
"square deck detail fail"
+
e
.
getMessage
());
}).
done
(
data
->
{
if
(
data
.
isData
())
{
/*
*服务器的api有问题:获取指定用户的卡组列表(无已删卡组)
*删除成功后,通过http://rarnu.xyz:38383/api/mdpro3/sync/795610/nodel接口查询用户卡组时
*要等待2~3秒api响应内容才会对应更新
*/
YGOUtil
.
showTextToast
(
"删除成功,3秒后服务器将完成同步"
);
remove
(
item
);
// 开始倒计时
startButtonCountdown
();
}
else
{
if
(
deleteListener
!=
null
)
{
deleteListener
.
onDeckDeleteFinished
();
}
YGOUtil
.
showTextToast
(
"delete fail "
+
data
.
getMessage
());
}
});
...
...
@@ -187,42 +118,17 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
*/
private
void
changeDeckPublicState
(
MyDeckItem
item
)
{
if
(
item
!=
null
)
{
LoginToken
loginToken
=
DeckSquareApiUtil
.
getLoginData
();
if
(
loginToken
==
null
)
{
return
;
}
//放在登录检查后面,否则:如果未通过登录检查,本函数return后将无法调用onDeckDeleteFinished()
if
(
deleteListener
!=
null
)
{
deleteListener
.
onDeckDeleteStarted
();
}
VUiKit
.
defer
().
when
(()
->
{
BasicResponse
result
=
DeckSquareApiUtil
.
setDeckPublic
(
item
.
getDeckId
(),
loginToken
,
!
item
.
getPublic
());
return
result
;
}).
fail
(
e
->
{
if
(
deleteListener
!=
null
)
{
deleteListener
.
onDeckDeleteFinished
();
}
LogUtil
.
i
(
TAG
,
"square deck detail fail"
+
e
.
getMessage
());
}).
done
(
data
->
{
if
(
data
.
isMessageTrue
())
{
/*
*服务器的api有问题:获取指定用户的卡组列表(无已删卡组)
*删除成功后,通过http://rarnu.xyz:38383/api/mdpro3/sync/795610/nodel接口查询用户卡组时
*要等待2~3秒api响应内容才会对应更新
*/
if
(
item
.
getPublic
())
{
//注意,item是修改前的值,因此item.isPublic为true代表修改前为公开卡组
YGOUtil
.
showTextToast
(
"已将卡组设为私有"
);
}
else
{
YGOUtil
.
showTextToast
(
"已将卡组公开"
);
}
startButtonCountdown
();
}
else
{
YGOUtil
.
showTextToast
(
"操作失败"
);
}
});
}
}
...
...
@@ -237,21 +143,25 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
if
(
item
.
getPublic
())
{
helper
.
setText
(
R
.
id
.
change_show_or_hide
,
R
.
string
.
in_public
);
}
else
{
helper
.
setText
(
R
.
id
.
change_show_or_hide
,
R
.
string
.
in_personal_use
);
}
LogUtil
.
i
(
TAG
,
code
+
" "
+
item
.
getDeckName
());
if
(
code
!=
0
)
{
imageLoader
.
bindImage
(
cardImage
,
code
,
null
,
ImageLoader
.
Type
.
small
);
}
else
{
imageLoader
.
bindImage
(
cardImage
,
-
1
,
null
,
ImageLoader
.
Type
.
small
);
}
helper
.
getView
(
R
.
id
.
delete_my_online_deck_btn
).
setOnClickListener
(
view
->
{
deleteMyDeckOnLine
(
item
);
});
helper
.
getView
(
R
.
id
.
ll_switch_show
).
setOnClickListener
(
view
->
{
if
(
item
.
getPublic
())
{
helper
.
setText
(
R
.
id
.
change_show_or_hide
,
R
.
string
.
in_personal_use
);
helper
.
getView
(
R
.
id
.
ll_switch_show
).
setBackgroundResource
(
R
.
drawable
.
button_radius_n
);
}
else
{
helper
.
setText
(
R
.
id
.
change_show_or_hide
,
R
.
string
.
in_public
);
helper
.
getView
(
R
.
id
.
ll_switch_show
).
setBackgroundResource
(
R
.
drawable
.
button_radius_red
);
}
LogUtil
.
i
(
TAG
,
"current "
+
item
.
toString
());
changeDeckPublicState
(
item
);
});
...
...
mobile/src/main/res/layout/fragment_deck_square_my_deck.xml
View file @
1809a180
...
...
@@ -131,16 +131,6 @@
android:layout_weight=
"1"
android:text=
"注销"
/>
<ImageButton
android:id=
"@+id/refresh_data"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:layout_weight=
"1"
android:background=
"@drawable/ic_radius_bg"
android:layout_marginStart=
"4dp"
android:src=
"@drawable/ic_refresh"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
mobile/src/main/res/layout/item_my_deck.xml
View file @
1809a180
...
...
@@ -76,8 +76,8 @@
<ImageView
android:id=
"@+id/show_on_deck_square"
android:layout_width=
"
2
0dp"
android:layout_height=
"
2
0dp"
android:layout_width=
"
1
0dp"
android:layout_height=
"
1
0dp"
android:layout_marginLeft=
"5dp"
android:src=
"@drawable/baseline_remove_red_eye_24"
/>
...
...
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