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
cd25c603
Commit
cd25c603
authored
Jul 23, 2019
by
feihuaduo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
卡组分类dialog
parent
40ea24c9
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
488 additions
and
4 deletions
+488
-4
mobile/src/main/java/cn/garymb/ygomobile/AppsSettings.java
mobile/src/main/java/cn/garymb/ygomobile/AppsSettings.java
+20
-2
mobile/src/main/java/cn/garymb/ygomobile/bean/DeckType.java
mobile/src/main/java/cn/garymb/ygomobile/bean/DeckType.java
+30
-0
mobile/src/main/java/cn/garymb/ygomobile/bean/TextSelect.java
...le/src/main/java/cn/garymb/ygomobile/bean/TextSelect.java
+31
-0
mobile/src/main/java/cn/garymb/ygomobile/bean/events/DeckFile.java
...c/main/java/cn/garymb/ygomobile/bean/events/DeckFile.java
+41
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/adapters/TextSelectAdapter.java
...va/cn/garymb/ygomobile/ui/adapters/TextSelectAdapter.java
+81
-0
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerActivityImpl.java
...cn/garymb/ygomobile/ui/cards/DeckManagerActivityImpl.java
+14
-0
mobile/src/main/java/cn/garymb/ygomobile/utils/DeckUtil.java
mobile/src/main/java/cn/garymb/ygomobile/utils/DeckUtil.java
+89
-0
mobile/src/main/java/cn/garymb/ygomobile/utils/IOUtils.java
mobile/src/main/java/cn/garymb/ygomobile/utils/IOUtils.java
+20
-0
mobile/src/main/java/cn/garymb/ygomobile/utils/YGODialogUtil.java
...rc/main/java/cn/garymb/ygomobile/utils/YGODialogUtil.java
+95
-0
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
+20
-0
mobile/src/main/res/layout/activity_deck_cards.xml
mobile/src/main/res/layout/activity_deck_cards.xml
+23
-0
mobile/src/main/res/layout/dialog_deck_select.xml
mobile/src/main/res/layout/dialog_deck_select.xml
+7
-2
mobile/src/main/res/layout/text_select_item.xml
mobile/src/main/res/layout/text_select_item.xml
+16
-0
mobile/src/main/res/values/dimens.xml
mobile/src/main/res/values/dimens.xml
+1
-0
No files found.
mobile/src/main/java/cn/garymb/ygomobile/AppsSettings.java
View file @
cd25c603
...
...
@@ -161,6 +161,9 @@ public class AppsSettings {
return
mSharedPreferences
.
getBoolean
(
PREF_ONLY_GAME
,
DEF_PREF_ONLY_GAME
);
}
/***
* 是否使用额外卡库
*/
public
boolean
isReadExpansions
()
{
return
mSharedPreferences
.
getBoolean
(
PREF_READ_EX
,
DEF_PREF_READ_EX
);
}
...
...
@@ -398,14 +401,14 @@ public class AppsSettings {
}
/***
* 是否
使用额外卡库
* 是否
优先使用外置数据
*/
public
boolean
isUseExtraCards
()
{
return
mSharedPreferences
.
getBoolean
(
Constants
.
PREF_USE_EXTRA_CARD_CARDS
,
Constants
.
PREF_DEF_USE_EXTRA_CARD_CARDS
);
}
/***
* 设置是否
使用额外卡库
* 设置是否
优先使用外置数据
*/
public
void
setUseExtraCards
(
boolean
useExtraCards
)
{
mSharedPreferences
.
putBoolean
(
Constants
.
PREF_USE_EXTRA_CARD_CARDS
,
useExtraCards
);
...
...
@@ -466,6 +469,21 @@ public class AppsSettings {
return
new
File
(
getResourcePath
(),
Constants
.
CORE_DECK_PATH
).
getAbsolutePath
();
}
//获取ai卡组文件夹
public
String
getAiDeckDir
()
{
return
new
File
(
getResourcePath
(),
Constants
.
CORE_DECK_PATH
+
"/Decks"
).
getAbsolutePath
();
}
//获取新卡卡包文件夹
public
String
getPackDeckDir
()
{
return
new
File
(
getResourcePath
(),
"pack"
).
getAbsolutePath
();
}
//获取临时存放卡组的目录
public
String
getCacheDeckDir
(){
return
context
.
getExternalFilesDir
(
"cacheDeck"
).
getAbsolutePath
();
}
//获取残局文件夹
public
String
getSingleDir
()
{
return
new
File
(
getResourcePath
(),
Constants
.
CORE_SINGLE_PATH
).
getAbsolutePath
();
...
...
mobile/src/main/java/cn/garymb/ygomobile/bean/DeckType.java
0 → 100644
View file @
cd25c603
package
cn.garymb.ygomobile.bean
;
public
class
DeckType
extends
TextSelect
{
private
String
name
;
private
String
path
;
public
DeckType
(
String
name
,
String
path
)
{
this
.
name
=
name
;
this
.
path
=
path
;
super
.
setName
(
name
);
super
.
setObject
(
this
);
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getPath
()
{
return
path
;
}
public
void
setPath
(
String
path
)
{
this
.
path
=
path
;
}
}
mobile/src/main/java/cn/garymb/ygomobile/bean/TextSelect.java
0 → 100644
View file @
cd25c603
package
cn.garymb.ygomobile.bean
;
public
class
TextSelect
{
private
String
name
;
private
Object
object
;
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
Object
getObject
()
{
return
object
;
}
public
void
setObject
(
Object
object
)
{
this
.
object
=
object
;
}
public
static
TextSelect
toTextSelect
(
String
name
,
Object
object
){
TextSelect
textSelect
=
new
TextSelect
();
textSelect
.
setName
(
name
);
textSelect
.
setObject
(
object
);
return
textSelect
;
}
}
mobile/src/main/java/cn/garymb/ygomobile/bean/events/DeckFile.java
0 → 100644
View file @
cd25c603
package
cn.garymb.ygomobile.bean.events
;
import
java.io.File
;
import
cn.garymb.ygomobile.bean.TextSelect
;
public
class
DeckFile
extends
TextSelect
{
private
String
name
;
private
String
path
;
public
DeckFile
(
String
path
)
{
this
.
path
=
path
;
name
=
new
File
(
path
).
getName
();
name
=
name
.
substring
(
0
,
name
.
lastIndexOf
(
"."
));
super
.
setName
(
name
);
super
.
setObject
(
this
);
}
public
DeckFile
(
File
file
)
{
path
=
file
.
getAbsolutePath
();
name
=
file
.
getName
();
name
=
name
.
substring
(
0
,
name
.
lastIndexOf
(
"."
));
}
public
String
getName
()
{
return
name
;
}
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
public
String
getPath
()
{
return
path
;
}
public
void
setPath
(
String
path
)
{
this
.
path
=
path
;
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/adapters/TextSelectAdapter.java
0 → 100644
View file @
cd25c603
package
cn.garymb.ygomobile.ui.adapters
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.recyclerview.widget.RecyclerView
;
import
java.util.List
;
import
cn.garymb.ygomobile.bean.TextSelect
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.ui.mycard.mcchat.util.Util
;
import
cn.garymb.ygomobile.utils.YGOUtil
;
public
class
TextSelectAdapter
extends
RecyclerView
.
Adapter
<
TextSelectAdapter
.
ViewHolder
>
{
private
OnItemSelectListener
onItemSelectListener
;
private
List
<?
extends
TextSelect
>
data
;
private
int
selectPosition
;
public
TextSelectAdapter
(
List
<?
extends
TextSelect
>
data
,
int
selectPosition
)
{
this
.
data
=
data
;
this
.
selectPosition
=
selectPosition
;
}
@NonNull
@Override
public
ViewHolder
onCreateViewHolder
(
@NonNull
ViewGroup
parent
,
int
viewType
)
{
View
view
=
LayoutInflater
.
from
(
parent
.
getContext
()).
inflate
(
R
.
layout
.
text_select_item
,
parent
,
false
);
return
new
ViewHolder
(
view
);
}
@Override
public
void
onBindViewHolder
(
@NonNull
ViewHolder
holder
,
int
position
)
{
holder
.
tv_name
.
setText
(
data
.
get
(
position
).
getName
());
if
(
position
==
selectPosition
){
holder
.
view
.
setBackgroundColor
(
YGOUtil
.
c
(
R
.
color
.
gray
));
}
else
{
holder
.
view
.
setBackgroundColor
(
YGOUtil
.
c
(
R
.
color
.
white
));
}
holder
.
view
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
if
(
position
==
selectPosition
)
return
;
selectPosition
=
position
;
notifyDataSetChanged
();
onItemSelectListener
.
onItemSelect
(
position
,
data
.
get
(
position
).
getObject
());
}
});
}
public
void
setOnItemSelectListener
(
OnItemSelectListener
onItemSelectListener
)
{
this
.
onItemSelectListener
=
onItemSelectListener
;
}
@Override
public
int
getItemCount
()
{
return
data
.
size
();
}
class
ViewHolder
extends
RecyclerView
.
ViewHolder
{
View
view
;
TextView
tv_name
;
public
ViewHolder
(
View
view
)
{
super
(
view
);
this
.
view
=
view
;
this
.
tv_name
=
view
.
findViewById
(
R
.
id
.
tv_name
);
}
}
public
interface
OnItemSelectListener
<
T
>
{
void
onItemSelect
(
int
position
,
T
item
);
}
}
mobile/src/main/java/cn/garymb/ygomobile/ui/cards/DeckManagerActivityImpl.java
View file @
cd25c603
...
...
@@ -26,8 +26,10 @@ import android.view.View;
import
android.widget.AdapterView
;
import
android.widget.EditText
;
import
android.widget.Spinner
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.feihua.dialogutils.util.DialogUtils
;
import
com.nightonke.boommenu.BoomButtons.BoomButton
;
import
com.nightonke.boommenu.BoomButtons.TextOutsideCircleButton
;
import
com.nightonke.boommenu.BoomMenuButton
;
...
...
@@ -69,6 +71,7 @@ import cn.garymb.ygomobile.utils.BitmapUtil;
import
cn.garymb.ygomobile.utils.FileUtils
;
import
cn.garymb.ygomobile.utils.IOUtils
;
import
cn.garymb.ygomobile.utils.ShareUtil
;
import
cn.garymb.ygomobile.utils.YGODialogUtil
;
import
ocgcore.DataManager
;
import
ocgcore.data.Card
;
import
ocgcore.data.LimitList
;
...
...
@@ -86,15 +89,20 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
private
File
mPreLoadFile
;
private
DeckItemTouchHelper
mDeckItemTouchHelper
;
private
AppCompatSpinner
mDeckSpinner
;
private
TextView
tv_deck
;
private
SimpleSpinnerAdapter
mSimpleSpinnerAdapter
;
private
AppCompatSpinner
mLimitSpinner
;
private
CardDetail
mCardDetail
;
private
DialogPlus
mDialog
;
private
DialogPlus
builderShareLoading
;
private
DialogUtils
du
;
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
);
du
=
DialogUtils
.
getdx
(
this
);
tv_deck
=
$
(
R
.
id
.
tv_deck
);
mDeckSpinner
=
$
(
R
.
id
.
toolbar_list
);
mDeckSpinner
.
setPopupBackgroundResource
(
R
.
color
.
colorNavy
);
mLimitSpinner
=
$
(
R
.
id
.
sp_limit_list
);
...
...
@@ -147,6 +155,12 @@ class DeckManagerActivityImpl extends BaseCardsAcitivity implements RecyclerView
}
init
(
_file
);
EventBus
.
getDefault
().
register
(
this
);
tv_deck
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
public
void
onClick
(
View
v
)
{
YGODialogUtil
.
dialogDeckSelect
(
DeckManagerActivityImpl
.
this
,
null
);
}
});
}
@Override
...
...
mobile/src/main/java/cn/garymb/ygomobile/utils/DeckUtil.java
0 → 100644
View file @
cd25c603
package
cn.garymb.ygomobile.utils
;
import
android.os.Build
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
import
java.util.ArrayList
;
import
java.util.Enumeration
;
import
java.util.List
;
import
java.util.zip.ZipEntry
;
import
java.util.zip.ZipFile
;
import
cn.garymb.ygomobile.App
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.bean.DeckType
;
import
cn.garymb.ygomobile.bean.events.DeckFile
;
public
class
DeckUtil
{
public
static
List
<
DeckType
>
getDeckTypeList
()
{
List
<
DeckType
>
deckTypeList
=
new
ArrayList
<>();
deckTypeList
.
add
(
new
DeckType
(
"卡包展示"
,
AppsSettings
.
get
().
getPackDeckDir
()));
deckTypeList
.
add
(
new
DeckType
(
"人机卡组"
,
AppsSettings
.
get
().
getAiDeckDir
()));
deckTypeList
.
add
(
new
DeckType
(
"未分类"
,
AppsSettings
.
get
().
getDeckDir
()));
File
[]
files
=
new
File
(
AppsSettings
.
get
().
getDeckDir
()).
listFiles
();
if
(
files
!=
null
)
{
for
(
File
f
:
files
)
{
if
(
f
.
isDirectory
())
{
deckTypeList
.
add
(
new
DeckType
(
f
.
getName
(),
f
.
getAbsolutePath
()));
}
}
}
return
deckTypeList
;
}
public
static
List
<
DeckFile
>
getDeckList
(
String
path
)
{
List
<
DeckFile
>
deckList
=
new
ArrayList
<>();
File
[]
files
=
new
File
(
path
).
listFiles
();
if
(
files
!=
null
){
for
(
File
file
:
files
)
{
if
(
file
.
isFile
()
&&
file
.
getName
().
endsWith
(
".ydk"
))
{
deckList
.
add
(
new
DeckFile
(
file
));
}
}
}
return
deckList
;
}
public
static
List
<
DeckFile
>
getExpansionsDeckList
()
throws
IOException
{
AppsSettings
appsSettings
=
AppsSettings
.
get
();
List
<
DeckFile
>
deckList
=
new
ArrayList
<>();
File
[]
files
=
new
File
(
appsSettings
.
getExpansionsPath
(),
Constants
.
CORE_DECK_PATH
).
listFiles
();
if
(
files
!=
null
)
{
for
(
File
file
:
files
)
{
if
(
file
.
isFile
()
&&
file
.
getName
().
endsWith
(
".ydk"
))
{
deckList
.
add
(
new
DeckFile
(
file
));
}
}
}
files
=
appsSettings
.
getExpansionsPath
().
listFiles
();
for
(
File
file
:
files
)
{
if
(
file
.
isFile
()
&&
file
.
getName
().
endsWith
(
".zip"
))
{
ZipFile
zipFile
=
new
ZipFile
(
file
.
getAbsoluteFile
());
Enumeration
entries
=
zipFile
.
entries
();
while
(
entries
.
hasMoreElements
())
{
ZipEntry
entry
=
(
ZipEntry
)
entries
.
nextElement
();
if
(
entry
.
getName
().
endsWith
(
".ydk"
)){
String
name
=
entry
.
getName
();
name
=
name
.
substring
(
name
.
lastIndexOf
(
"/"
),
name
.
length
());
InputStream
inputStream
=
zipFile
.
getInputStream
(
entry
);
deckList
.
add
(
new
DeckFile
(
IOUtils
.
asFile
(
inputStream
,
appsSettings
.
getCacheDeckDir
()+
"/"
+
name
)));
}
}
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
KITKAT
)
{
IOUtils
.
close
(
zipFile
);
}
}
}
return
deckList
;
}
}
mobile/src/main/java/cn/garymb/ygomobile/utils/IOUtils.java
View file @
cd25c603
...
...
@@ -246,4 +246,24 @@ public class IOUtils {
}
public
static
File
asFile
(
InputStream
is
,
String
outPath
)
throws
IOException
{
OutputStream
os
=
null
;
try
{
os
=
new
FileOutputStream
(
outPath
);
int
len
=
0
;
byte
[]
buffer
=
new
byte
[
8192
];
while
((
len
=
is
.
read
(
buffer
))
!=
-
1
)
{
os
.
write
(
buffer
,
0
,
len
);
}
}
finally
{
if
(
os
!=
null
)
os
.
close
();
is
.
close
();
}
return
new
File
(
outPath
);
}
}
mobile/src/main/java/cn/garymb/ygomobile/utils/YGODialogUtil.java
0 → 100644
View file @
cd25c603
package
cn.garymb.ygomobile.utils
;
import
android.content.Context
;
import
android.view.View
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.feihua.dialogutils.util.DialogUtils
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
cn.garymb.ygomobile.AppsSettings
;
import
cn.garymb.ygomobile.Constants
;
import
cn.garymb.ygomobile.bean.DeckType
;
import
cn.garymb.ygomobile.bean.events.DeckFile
;
import
cn.garymb.ygomobile.lite.R
;
import
cn.garymb.ygomobile.ui.adapters.TextSelectAdapter
;
public
class
YGODialogUtil
{
public
static
void
dialogDeckSelect
(
Context
context
,
String
selectDeckPath
)
{
View
viewDialog
=
DialogUtils
.
getdx
(
context
).
dialogBottomSheet
(
R
.
layout
.
dialog_deck_select
);
RecyclerView
rv_type
,
rv_deck
;
rv_deck
=
viewDialog
.
findViewById
(
R
.
id
.
rv_deck
);
rv_type
=
viewDialog
.
findViewById
(
R
.
id
.
rv_type
);
rv_deck
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
rv_type
.
setLayoutManager
(
new
LinearLayoutManager
(
context
));
TextSelectAdapter
typeAdp
,
deckAdp
;
List
<
DeckType
>
typeList
=
DeckUtil
.
getDeckTypeList
();
int
typeSelectPosition
=
2
;
int
deckSelectPosition
=-
1
;
List
<
DeckFile
>
deckList
;
if
(
selectDeckPath
!=
null
)
{
String
name
=
new
File
(
selectDeckPath
).
getParentFile
().
getName
();
if
(
name
.
equals
(
"pack"
)
||
name
.
equals
(
"cacheDeck"
))
{
//卡包
typeSelectPosition
=
0
;
}
else
if
(
name
.
equals
(
"Decks"
))
{
//ai卡组
typeSelectPosition
=
1
;
}
else
if
(
name
.
equals
(
"deck"
)
&&
new
File
(
selectDeckPath
).
getParentFile
().
getParentFile
().
getName
().
equals
(
Constants
.
PREF_DEF_GAME_DIR
))
{
//如果是deck并且上一个目录是ygocore的话,保证不会把名字为deck的卡包识别为未分类
typeSelectPosition
=
2
;
}
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
());
typeAdp
=
new
TextSelectAdapter
(
typeList
,
typeSelectPosition
);
deckAdp
=
new
TextSelectAdapter
(
deckList
,
deckSelectPosition
);
rv_type
.
setAdapter
(
typeAdp
);
rv_deck
.
setAdapter
(
deckAdp
);
typeAdp
.
setOnItemSelectListener
(
new
TextSelectAdapter
.
OnItemSelectListener
<
DeckType
>()
{
@Override
public
void
onItemSelect
(
int
position
,
DeckType
item
)
{
deckList
.
clear
();
deckList
.
addAll
(
DeckUtil
.
getDeckList
(
item
.
getPath
()));
if
(
position
==
0
)
{
if
(
AppsSettings
.
get
().
isReadExpansions
())
{
try
{
deckList
.
addAll
(
DeckUtil
.
getExpansionsDeckList
());
}
catch
(
IOException
e
)
{
YGOUtil
.
show
(
"额外卡库加载失败,愿意为"
+
e
);
}
}
}
deckAdp
.
notifyDataSetChanged
();
}
});
deckAdp
.
setOnItemSelectListener
(
new
TextSelectAdapter
.
OnItemSelectListener
<
DeckFile
>()
{
@Override
public
void
onItemSelect
(
int
position
,
DeckFile
item
)
{
DialogUtils
.
getdx
(
context
).
dis
();
}
});
// rv_deck.setAdapter();
}
}
mobile/src/main/java/cn/garymb/ygomobile/utils/YGOUtil.java
0 → 100644
View file @
cd25c603
package
cn.garymb.ygomobile.utils
;
import
android.content.Context
;
import
android.widget.Toast
;
import
androidx.core.content.ContextCompat
;
import
cn.garymb.ygomobile.App
;
public
class
YGOUtil
{
//提示
public
static
void
show
(
String
message
)
{
Toast
.
makeText
(
App
.
get
(),
message
,
Toast
.
LENGTH_SHORT
).
show
();
}
public
static
int
c
(
int
colorId
){
return
ContextCompat
.
getColor
(
App
.
get
(),
colorId
);
}
}
mobile/src/main/res/layout/activity_deck_cards.xml
View file @
cd25c603
...
...
@@ -36,16 +36,39 @@
android:orientation=
"horizontal"
android:weightSum=
"1"
>
<LinearLayout
android:padding=
"5dp"
android:gravity=
"center_vertical"
android:orientation=
"vertical"
android:layout_weight=
"1"
android:layout_width=
"0dp"
android:layout_height=
"@dimen/item_and_text_height"
>
<TextView
android:textSize=
"12sp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"@string/deck_name"
android:textColor=
"@color/holo_blue_light"
/>
<androidx.appcompat.widget.AppCompatTextView
android:maxLines=
"1"
android:ellipsize=
"end"
android:layout_marginTop=
"2dp"
android:textColor=
"@color/white"
android:textStyle=
"bold"
android:text=
"假装这是一个卡组.ydk"
android:textSize=
"18sp"
android:id=
"@+id/tv_deck"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
<androidx.appcompat.widget.AppCompatSpinner
android:id=
"@+id/toolbar_list"
android:layout_width=
"0dp"
android:layout_height=
"@dimen/item_height"
android:visibility=
"gone"
android:layout_weight=
"1"
/>
<LinearLayout
...
...
mobile/src/main/res/layout/d
eck_select_layou
t.xml
→
mobile/src/main/res/layout/d
ialog_deck_selec
t.xml
View file @
cd25c603
...
...
@@ -6,19 +6,24 @@
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
android:layout_height=
"match_parent"
android:orientation=
"horizontal"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_type"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
/>
<View
android:background=
"@color/gray"
android:layout_width=
"1dp"
android:layout_height=
"match_parent"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_deck"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_weight=
"
1
"
/>
android:layout_weight=
"
2
"
/>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
mobile/src/main/res/layout/text_select_item.xml
0 → 100644
View file @
cd25c603
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:padding=
"10dp"
android:gravity=
"center"
android:background=
"@drawable/click_background"
android:orientation=
"vertical"
>
<androidx.appcompat.widget.AppCompatTextView
android:gravity=
"center"
android:textColor=
"@color/black"
android:id=
"@+id/tv_name"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
/>
</LinearLayout>
\ No newline at end of file
mobile/src/main/res/values/dimens.xml
View file @
cd25c603
...
...
@@ -13,6 +13,7 @@
<dimen
name=
"title_height"
>
55dp
</dimen>
<dimen
name=
"item_height2"
>
70dp
</dimen>
<dimen
name=
"item_height"
>
48dp
</dimen>
<dimen
name=
"item_and_text_height"
>
68dp
</dimen>
<dimen
name=
"button_width_small"
>
40dp
</dimen>
<dimen
name=
"button_width"
>
80dp
</dimen>
<dimen
name=
"card_small_width"
>
66dp
</dimen>
...
...
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