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
7e3a7f78
Commit
7e3a7f78
authored
May 05, 2025
by
wangfugui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
更改部分class名称,更符合语义
parent
18305c8c
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
69 additions
and
48 deletions
+69
-48
mobile/src/main/java/cn/garymb/ygomobile/AppsSettings.java
mobile/src/main/java/cn/garymb/ygomobile/AppsSettings.java
+11
-4
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareFragment.java
...a/cn/garymb/ygomobile/deck_square/DeckSquareFragment.java
+2
-2
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
...arymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
+0
-2
mobile/src/main/java/cn/garymb/ygomobile/deck_square/MyDeckDetailDialog.java
...a/cn/garymb/ygomobile/deck_square/MyDeckDetailDialog.java
+5
-5
mobile/src/main/java/cn/garymb/ygomobile/deck_square/MyDeckListAdapter.java
...va/cn/garymb/ygomobile/deck_square/MyDeckListAdapter.java
+2
-2
mobile/src/main/java/cn/garymb/ygomobile/deck_square/SquareDeckDetailDialog.java
.../garymb/ygomobile/deck_square/SquareDeckDetailDialog.java
+8
-8
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/DownloadDeckResponse.java
...mobile/deck_square/api_response/DownloadDeckResponse.java
+3
-3
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/MyDeckResponse.java
...mb/ygomobile/deck_square/api_response/MyDeckResponse.java
+3
-3
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/MyOnlineDeckDetail.java
...gomobile/deck_square/api_response/MyOnlineDeckDetail.java
+7
-7
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/OnlineDeckDetail.java
.../ygomobile/deck_square/api_response/OnlineDeckDetail.java
+9
-8
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/SquareDeckResponse.java
...gomobile/deck_square/api_response/SquareDeckResponse.java
+3
-3
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckItemUtils.java
...java/cn/garymb/ygomobile/ui/cards/deck/DeckItemUtils.java
+8
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/home/MainActivity.java
...c/main/java/cn/garymb/ygomobile/ui/home/MainActivity.java
+1
-1
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/util/ImageUtil.java
.../cn/garymb/ygomobile/ui/mycard/mcchat/util/ImageUtil.java
+5
-0
mobile/src/main/res/values/strings.xml
mobile/src/main/res/values/strings.xml
+2
-0
No files found.
mobile/src/main/java/cn/garymb/ygomobile/AppsSettings.java
View file @
7e3a7f78
...
...
@@ -19,9 +19,9 @@ import static cn.garymb.ygomobile.Constants.DEF_PREF_KEEP_SCALE;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
DEF_PREF_NOTCH_HEIGHT
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
DEF_PREF_ONLY_GAME
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
DEF_PREF_READ_EX
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
PREF_DEF_KEY_WORDS_SPLIT
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
PREF_DEF_DATA_LANGUAGE
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
PREF_DEF_IMMERSIVE_MODE
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
PREF_DEF_KEY_WORDS_SPLIT
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
PREF_DEF_SENSOR_REFRESH
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
PREF_FONT_SIZE
;
import
static
cn
.
garymb
.
ygomobile
.
Constants
.
PREF_IMMERSIVE_MODE
;
...
...
@@ -499,6 +499,7 @@ public class AppsSettings {
public
String
getCoreSkinPath
()
{
return
new
File
(
getResourcePath
(),
Constants
.
CORE_SKIN_PATH
).
getAbsolutePath
();
}
public
String
getAvatarPath
()
{
return
new
File
(
getResourcePath
(),
Constants
.
CORE_AVATAR_PATH
).
getAbsolutePath
();
}
...
...
@@ -510,6 +511,7 @@ public class AppsSettings {
public
String
getBgPath
()
{
return
new
File
(
getResourcePath
(),
Constants
.
CORE_BG_PATH
).
getAbsolutePath
();
}
/***
* 字体路径
*/
...
...
@@ -613,7 +615,12 @@ public class AppsSettings {
return
mSharedPreferences
.
getString
(
Constants
.
PREF_DEF_LAST_YDK
,
null
);
}
//获得最后卡组绝对路径
/**
* 获得(最后)上次打开的卡组的绝对路径
* setCurDeck()方法负责设置上次打开的卡组的路径
*
* @return
*/
public
@Nullable
String
getLastDeckPath
()
{
String
path
;
...
...
@@ -804,7 +811,7 @@ public class AppsSettings {
Korean
(
1
,
"ko"
),
English
(
2
,
"en"
),
Spanish
(
3
,
"es"
),
Japanese
(
4
,
"jp"
),
Japanese
(
4
,
"jp"
),
Portuguese
(
5
,
"pt"
);
public
Integer
code
;
...
...
@@ -913,7 +920,7 @@ public class AppsSettings {
setDataLanguage
(
languageEnum
.
Portuguese
.
code
);
}
private
void
replaceLineFeed
(){
private
void
replaceLineFeed
()
{
//替换换行符
String
stringConfPath
=
new
File
(
getResourcePath
(),
CORE_STRING_PATH
).
getAbsolutePath
();
String
botConfPath
=
new
File
(
getResourcePath
(),
BOT_CONF
).
getAbsolutePath
();
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareFragment.java
View file @
7e3a7f78
...
...
@@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
import
androidx.fragment.app.Fragment
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
cn.garymb.ygomobile.deck_square.api_response.
ApiDeckRecord
;
import
cn.garymb.ygomobile.deck_square.api_response.
OnlineDeckDetail
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.lite.databinding.FragmentDeckSquareBinding
;
...
...
@@ -36,7 +36,7 @@ public class DeckSquareFragment extends Fragment {
// Set click listener in your adapter
deckSquareListAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
// Handle item click
ApiDeckRecord
item
=
(
ApiDeckRecord
)
adapter
.
getItem
(
position
);
OnlineDeckDetail
item
=
(
OnlineDeckDetail
)
adapter
.
getItem
(
position
);
// Show the dialog
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/DeckSquareMyDeckFragment.java
View file @
7e3a7f78
...
...
@@ -9,8 +9,6 @@ import androidx.annotation.NonNull;
import
androidx.fragment.app.Fragment
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
cn.garymb.ygomobile.deck_square.api_response.ApiDeckRecord
;
import
cn.garymb.ygomobile.deck_square.api_response.DeckDetail
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.lite.databinding.FragmentDeckSquareMyDeckBinding
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/MyDeckDetailDialog.java
View file @
7e3a7f78
...
...
@@ -14,7 +14,7 @@ import androidx.recyclerview.widget.RecyclerView;
import
java.util.List
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.deck_square.api_response.DeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.
MyOnline
DeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.DownloadDeckResponse
;
import
cn.garymb.ygomobile.deck_square.api_response.PushDeckResponse
;
import
cn.garymb.ygomobile.lite.R
;
...
...
@@ -30,7 +30,7 @@ public class MyDeckDetailDialog extends Dialog {
private
static
final
String
TAG
=
DeckSquareListAdapter
.
class
.
getSimpleName
();
DeckPreviewListAdapter
mListAdapter
;
private
RecyclerView
mListView
;
private
DeckDetail
m
DeckDetail
=
null
;
private
MyOnlineDeckDetail
mMyOnline
DeckDetail
=
null
;
MyDeckItem
mItem
=
null
;
//存储触发本dialog的卡组的基本信息
...
...
@@ -104,9 +104,9 @@ public class MyDeckDetailDialog extends Dialog {
//下载用户在平台上的卡组
btnDownload
.
setOnClickListener
(
v
->
{
if
(
mDeckDetail
!=
null
)
{
if
(
m
MyOnline
DeckDetail
!=
null
)
{
String
path
=
AppsSettings
.
get
().
getDeckDir
();
DeckSquareFileUtil
.
saveFileToPath
(
path
,
m
DeckDetail
.
getDeckName
()
+
".ydk"
,
m
DeckDetail
.
getDeckYdk
());
DeckSquareFileUtil
.
saveFileToPath
(
path
,
m
MyOnlineDeckDetail
.
getDeckName
()
+
".ydk"
,
mMyOnline
DeckDetail
.
getDeckYdk
());
}
});
...
...
@@ -134,7 +134,7 @@ public class MyDeckDetailDialog extends Dialog {
}).
done
((
deckData
)
->
{
if
(
deckData
!=
null
)
{
mDeckDetail
=
deckData
;
m
MyOnline
DeckDetail
=
deckData
;
LogUtil
.
i
(
TAG
,
"square deck detail done"
);
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/MyDeckListAdapter.java
View file @
7e3a7f78
...
...
@@ -9,7 +9,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder;
import
java.util.List
;
import
cn.garymb.ygomobile.deck_square.api_response.DeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.
MyOnline
DeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.MyDeckResponse
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.loader.ImageLoader
;
...
...
@@ -65,7 +65,7 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
// List<MyDeckItem> serverItems = new ArrayList<>();
if
(
serverDecks
!=
null
)
{
//将服务端的卡组也放到LocalDecks中
for
(
DeckDetail
detail
:
serverDecks
)
{
for
(
MyOnline
DeckDetail
detail
:
serverDecks
)
{
MyDeckItem
item
=
new
MyDeckItem
();
item
.
setDeckName
(
detail
.
getDeckName
());
item
.
setDeckSouce
(
1
);
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/SquareDeckDetailDialog.java
View file @
7e3a7f78
...
...
@@ -12,9 +12,9 @@ import androidx.recyclerview.widget.RecyclerView;
import
java.util.List
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.deck_square.api_response.
ApiDeckRecord
;
import
cn.garymb.ygomobile.deck_square.api_response.
OnlineDeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.BasicResponse
;
import
cn.garymb.ygomobile.deck_square.api_response.DeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.
MyOnline
DeckDetail
;
import
cn.garymb.ygomobile.deck_square.api_response.DownloadDeckResponse
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.ui.adapters.DeckPreviewListAdapter
;
...
...
@@ -30,11 +30,11 @@ public class SquareDeckDetailDialog extends Dialog {
DeckPreviewListAdapter
mListAdapter
;
private
RecyclerView
mListView
;
private
DeckDetail
m
DeckDetail
=
null
;
private
MyOnlineDeckDetail
mMyOnline
DeckDetail
=
null
;
private
ApiDeckRecord
mItem
=
null
;
private
OnlineDeckDetail
mItem
=
null
;
public
SquareDeckDetailDialog
(
Context
context
,
ApiDeckRecord
item
)
{
public
SquareDeckDetailDialog
(
Context
context
,
OnlineDeckDetail
item
)
{
super
(
context
);
mItem
=
item
;
...
...
@@ -60,9 +60,9 @@ public class SquareDeckDetailDialog extends Dialog {
//下载卡组广场的卡组
btnDownload
.
setOnClickListener
(
v
->
{
if
(
mDeckDetail
!=
null
)
{
if
(
m
MyOnline
DeckDetail
!=
null
)
{
String
path
=
AppsSettings
.
get
().
getDeckDir
();
boolean
result
=
DeckSquareFileUtil
.
saveFileToPath
(
path
,
m
DeckDetail
.
getDeckName
()
+
".ydk"
,
m
DeckDetail
.
getDeckYdk
());
boolean
result
=
DeckSquareFileUtil
.
saveFileToPath
(
path
,
m
MyOnlineDeckDetail
.
getDeckName
()
+
".ydk"
,
mMyOnline
DeckDetail
.
getDeckYdk
());
if
(
result
)
{
YGOUtil
.
showTextToast
(
"Download deck success!"
);
...
...
@@ -113,7 +113,7 @@ public class SquareDeckDetailDialog extends Dialog {
}).
done
((
deckData
)
->
{
if
(
deckData
!=
null
)
{
mDeckDetail
=
deckData
;
m
MyOnline
DeckDetail
=
deckData
;
LogUtil
.
i
(
TAG
,
"square deck detail done"
);
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/DownloadDeckResponse.java
View file @
7e3a7f78
...
...
@@ -3,7 +3,7 @@ package cn.garymb.ygomobile.deck_square.api_response;
public
class
DownloadDeckResponse
{
private
Integer
code
;
private
String
message
;
private
DeckDetail
data
;
private
MyOnline
DeckDetail
data
;
public
Integer
getCode
()
{
return
code
;
...
...
@@ -22,11 +22,11 @@ public class DownloadDeckResponse {
this
.
message
=
message
;
}
public
DeckDetail
getData
()
{
public
MyOnline
DeckDetail
getData
()
{
return
data
;
}
public
void
setData
(
DeckDetail
data
)
{
public
void
setData
(
MyOnline
DeckDetail
data
)
{
this
.
data
=
data
;
}
}
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/MyDeckResponse.java
View file @
7e3a7f78
...
...
@@ -5,7 +5,7 @@ import java.util.List;
public
class
MyDeckResponse
{
public
Integer
code
;
public
String
message
;
public
List
<
DeckDetail
>
data
;
public
List
<
MyOnline
DeckDetail
>
data
;
public
Integer
getCode
()
{
return
code
;
...
...
@@ -23,11 +23,11 @@ public class MyDeckResponse {
this
.
message
=
message
;
}
public
List
<
DeckDetail
>
getData
()
{
public
List
<
MyOnline
DeckDetail
>
getData
()
{
return
data
;
}
public
void
setData
(
List
<
DeckDetail
>
data
)
{
public
void
setData
(
List
<
MyOnline
DeckDetail
>
data
)
{
this
.
data
=
data
;
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/DeckDetail.java
→
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/
MyOnline
DeckDetail.java
View file @
7e3a7f78
...
...
@@ -6,7 +6,7 @@ import android.os.Parcelable;
import
androidx.annotation.NonNull
;
public
class
DeckDetail
implements
Parcelable
{
public
class
MyOnline
DeckDetail
implements
Parcelable
{
private
String
deckId
;
private
String
deckContributor
;
...
...
@@ -27,7 +27,7 @@ public class DeckDetail implements Parcelable {
private
String
isDelete
;
protected
DeckDetail
(
Parcel
in
)
{
protected
MyOnline
DeckDetail
(
Parcel
in
)
{
deckId
=
in
.
readString
();
deckContributor
=
in
.
readString
();
deckName
=
in
.
readString
();
...
...
@@ -47,15 +47,15 @@ public class DeckDetail implements Parcelable {
isDelete
=
in
.
readString
();
}
public
static
final
Creator
<
DeckDetail
>
CREATOR
=
new
Creator
<
DeckDetail
>()
{
public
static
final
Creator
<
MyOnlineDeckDetail
>
CREATOR
=
new
Creator
<
MyOnline
DeckDetail
>()
{
@Override
public
DeckDetail
createFromParcel
(
Parcel
in
)
{
return
new
DeckDetail
(
in
);
public
MyOnline
DeckDetail
createFromParcel
(
Parcel
in
)
{
return
new
MyOnline
DeckDetail
(
in
);
}
@Override
public
DeckDetail
[]
newArray
(
int
size
)
{
return
new
DeckDetail
[
size
];
public
MyOnline
DeckDetail
[]
newArray
(
int
size
)
{
return
new
MyOnline
DeckDetail
[
size
];
}
};
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/
ApiDeckRecord
.java
→
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/
OnlineDeckDetail
.java
View file @
7e3a7f78
...
...
@@ -5,7 +5,7 @@ import android.os.Parcelable;
import
androidx.annotation.NonNull
;
public
class
ApiDeckRecord
implements
Parcelable
{
public
class
OnlineDeckDetail
implements
Parcelable
{
private
String
deckId
;
private
String
deckContributor
;
...
...
@@ -20,7 +20,7 @@ public class ApiDeckRecord implements Parcelable {
private
int
userId
;
protected
ApiDeckRecord
(
Parcel
in
)
{
protected
OnlineDeckDetail
(
Parcel
in
)
{
deckId
=
in
.
readString
();
deckContributor
=
in
.
readString
();
deckName
=
in
.
readString
();
...
...
@@ -34,15 +34,15 @@ public class ApiDeckRecord implements Parcelable {
userId
=
in
.
readInt
();
}
public
static
final
Creator
<
ApiDeckRecord
>
CREATOR
=
new
Creator
<
ApiDeckRecord
>()
{
public
static
final
Creator
<
OnlineDeckDetail
>
CREATOR
=
new
Creator
<
OnlineDeckDetail
>()
{
@Override
public
ApiDeckRecord
createFromParcel
(
Parcel
in
)
{
return
new
ApiDeckRecord
(
in
);
public
OnlineDeckDetail
createFromParcel
(
Parcel
in
)
{
return
new
OnlineDeckDetail
(
in
);
}
@Override
public
ApiDeckRecord
[]
newArray
(
int
size
)
{
return
new
ApiDeckRecord
[
size
];
public
OnlineDeckDetail
[]
newArray
(
int
size
)
{
return
new
OnlineDeckDetail
[
size
];
}
};
...
...
@@ -65,7 +65,8 @@ public class ApiDeckRecord implements Parcelable {
dest
.
writeString
(
lastDate
);
dest
.
writeInt
(
userId
);
}
public
String
getDeckId
()
{
public
String
getDeckId
()
{
return
deckId
;
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/
Api
Response.java
→
mobile/src/main/java/cn/garymb/ygomobile/deck_square/api_response/
SquareDeck
Response.java
View file @
7e3a7f78
...
...
@@ -2,7 +2,7 @@ package cn.garymb.ygomobile.deck_square.api_response;
import
java.util.List
;
public
class
Api
Response
{
public
class
SquareDeck
Response
{
private
Integer
code
;
private
String
message
;
private
ApiData
data
;
...
...
@@ -12,7 +12,7 @@ public class ApiResponse {
private
int
size
;
private
int
total
;
private
int
pages
;
private
List
<
ApiDeckRecord
>
records
;
private
List
<
OnlineDeckDetail
>
records
;
// Getters and setters
public
int
getCurrent
()
{
...
...
@@ -31,7 +31,7 @@ public class ApiResponse {
return
pages
;
}
public
List
<
ApiDeckRecord
>
getRecords
()
{
public
List
<
OnlineDeckDetail
>
getRecords
()
{
return
records
;
}
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/deck/DeckItemUtils.java
View file @
7e3a7f78
...
...
@@ -109,6 +109,14 @@ class DeckItemUtils {
return
deck
;
}
/**
* 将file内容更新为List<DeckItem>中的内容
* 删除file,之后将List<DeckItem>中的内容保存到file中
* @param items
* @param file 原有file
* @return 如果file为null,返回false
*/
public
static
boolean
save
(
List
<
DeckItem
>
items
,
File
file
)
{
FileOutputStream
outputStream
=
null
;
OutputStreamWriter
writer
=
null
;
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/home/MainActivity.java
View file @
7e3a7f78
...
...
@@ -184,7 +184,7 @@ public class MainActivity extends HomeActivity implements BottomNavigationBar.On
enableStart
=
error
>=
0
;
getGameUriManager
().
doIntent
(
getIntent
());
});
}
else
{
}
else
{
//外部选择通过本应用打开ydk文件,会执行到这里
getGameUriManager
().
doIntent
(
intent
);
}
}
...
...
mobile/src/main/java/cn/garymb/ygomobile/ui/mycard/mcchat/util/ImageUtil.java
View file @
7e3a7f78
...
...
@@ -52,6 +52,11 @@ public class ImageUtil {
show
(
context
,
url
,
im
,
null
);
}
/**
* 将图片变换为灰度图(变成灰白色)
* @param key
* @param imageView
*/
public
static
void
setGrayImage
(
int
key
,
ImageView
imageView
)
{
ColorMatrix
matrix
=
new
ColorMatrix
();
matrix
.
setSaturation
(
0
);
...
...
mobile/src/main/res/values/strings.xml
View file @
7e3a7f78
...
...
@@ -293,6 +293,8 @@
<string
name=
"category_pack"
>
Pack
</string>
<string
name=
"category_windbot_deck"
>
AI Decks
</string>
<string
name=
"category_Uncategorized"
>
Uncategorized
</string>
<string
name=
"category_online_deck"
>
Online Deck
</string>
<string
name=
"category_my_online_deck"
>
My Online Deck
</string>
<string
name=
"please_input_category_name"
>
please input category name
</string>
<string
name=
"invalid_category_name"
>
invalid category name
</string>
<string
name=
"please_select_target_category"
>
please select target category
</string>
...
...
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