Union兼容
订阅初步完成
This commit is contained in:
2
.idea/compiler.xml
generated
2
.idea/compiler.xml
generated
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="CompilerConfiguration">
|
<component name="CompilerConfiguration">
|
||||||
<bytecodeTargetLevel target="17" />
|
<bytecodeTargetLevel target="21" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
8
.idea/deploymentTargetSelector.xml
generated
8
.idea/deploymentTargetSelector.xml
generated
@@ -4,6 +4,14 @@
|
|||||||
<selectionStates>
|
<selectionStates>
|
||||||
<SelectionState runConfigName="app">
|
<SelectionState runConfigName="app">
|
||||||
<option name="selectionMode" value="DROPDOWN" />
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
|
<DropdownSelection timestamp="2025-08-03T05:22:05.625472Z">
|
||||||
|
<Target type="DEFAULT_BOOT">
|
||||||
|
<handle>
|
||||||
|
<DeviceId pluginId="PhysicalDevice" identifier="serial=LNTSE66XRSFEKNW8" />
|
||||||
|
</handle>
|
||||||
|
</Target>
|
||||||
|
</DropdownSelection>
|
||||||
|
<DialogSelection />
|
||||||
</SelectionState>
|
</SelectionState>
|
||||||
</selectionStates>
|
</selectionStates>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -1,10 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="FrameworkDetectionExcludesConfiguration">
|
<component name="FrameworkDetectionExcludesConfiguration">
|
||||||
<file type="web" url="file://$PROJECT_DIR$" />
|
<file type="web" url="file://$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -26,7 +26,8 @@ public class MaimaiConfig {
|
|||||||
*/
|
*/
|
||||||
@SerializedName("OBFUSCATE_PARAM")
|
@SerializedName("OBFUSCATE_PARAM")
|
||||||
private String OBFUSCATE_PARAM;
|
private String OBFUSCATE_PARAM;
|
||||||
|
@SerializedName("clientId")
|
||||||
|
private String clientId;
|
||||||
public String getApi() {
|
public String getApi() {
|
||||||
return api;
|
return api;
|
||||||
}
|
}
|
||||||
@@ -39,6 +40,14 @@ public class MaimaiConfig {
|
|||||||
return AES_KEY;
|
return AES_KEY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getClientId() {
|
||||||
|
return clientId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClientId(String clientId) {
|
||||||
|
this.clientId = clientId;
|
||||||
|
}
|
||||||
|
|
||||||
public void setAES_KEY(String AES_KEY) {
|
public void setAES_KEY(String AES_KEY) {
|
||||||
this.AES_KEY = AES_KEY;
|
this.AES_KEY = AES_KEY;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,8 +24,10 @@ public class SegaApi2025 {
|
|||||||
public static String AES_IV ;
|
public static String AES_IV ;
|
||||||
public static String OBFUSCATE_PARAM ;
|
public static String OBFUSCATE_PARAM ;
|
||||||
public static String MAI_ENCODING = "1.50";
|
public static String MAI_ENCODING = "1.50";
|
||||||
|
public static String clientId;
|
||||||
private final OkHttpClient httpClient;
|
private final OkHttpClient httpClient;
|
||||||
|
public static int placeId = 1345;
|
||||||
|
public static int regionId = 18;
|
||||||
private final Gson gson;
|
private final Gson gson;
|
||||||
|
|
||||||
public SegaApi2025() {
|
public SegaApi2025() {
|
||||||
@@ -80,7 +82,7 @@ public class SegaApi2025 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 主API调用方法
|
// 主API调用方法
|
||||||
public JsonObject sdgbApi(String data, String apiName, String userId,String KEYCHIP_ID) throws Exception {
|
public JsonObject sdgbApi(String data, String apiName, String userId) throws Exception {
|
||||||
// Log.d("123456",BASE_URL);
|
// Log.d("123456",BASE_URL);
|
||||||
// 1. 参数校验
|
// 1. 参数校验
|
||||||
Objects.requireNonNull(apiName, "API名称不能为空");
|
Objects.requireNonNull(apiName, "API名称不能为空");
|
||||||
@@ -88,7 +90,7 @@ public class SegaApi2025 {
|
|||||||
// 2. 初始化加密和哈希
|
// 2. 初始化加密和哈希
|
||||||
AesPkcs7 aes = new AesPkcs7(AES_KEY, AES_IV);
|
AesPkcs7 aes = new AesPkcs7(AES_KEY, AES_IV);
|
||||||
String obfuscatorApi = getHashApi(apiName);
|
String obfuscatorApi = getHashApi(apiName);
|
||||||
String agent = userId == null ? KEYCHIP_ID : userId;
|
String agent = userId == null ? clientId : userId;
|
||||||
|
|
||||||
// 3. 数据处理:JSON → 压缩 → 加密
|
// 3. 数据处理:JSON → 压缩 → 加密
|
||||||
byte[] compressedData = compress(data.getBytes(StandardCharsets.UTF_8));
|
byte[] compressedData = compress(data.getBytes(StandardCharsets.UTF_8));
|
||||||
|
|||||||
@@ -0,0 +1,54 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
|
public class All_chart {
|
||||||
|
private int userId;
|
||||||
|
private int length;
|
||||||
|
private int nextIndex;
|
||||||
|
private List<UserMusicList> userMusicList;
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLength(int length) {
|
||||||
|
this.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNextIndex() {
|
||||||
|
return nextIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNextIndex(int nextIndex) {
|
||||||
|
this.nextIndex = nextIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserMusicList> getUserMusicList() {
|
||||||
|
return userMusicList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserMusicList(List<UserMusicList> userMusicList) {
|
||||||
|
this.userMusicList = userMusicList;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "User{" +
|
||||||
|
"userId=" + userId +
|
||||||
|
", length=" + length +
|
||||||
|
", nextIndex=" + nextIndex +
|
||||||
|
", userMusicList=" + userMusicList +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class BackUp {
|
||||||
|
private int userId;
|
||||||
|
private List<UserItem> userItem;
|
||||||
|
private All_chart all_chart;
|
||||||
|
private JsonObject userExtend;
|
||||||
|
private JsonObject userOption;
|
||||||
|
private JsonObject userRating;
|
||||||
|
private JsonObject userActivity;
|
||||||
|
private JsonObject userCharacter;
|
||||||
|
private JsonObject userCharge;
|
||||||
|
private JsonObject userMission;
|
||||||
|
private JsonObject userData;
|
||||||
|
|
||||||
|
public JsonObject getUserCharge() {
|
||||||
|
return userCharge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserCharge(JsonObject userCharge) {
|
||||||
|
this.userCharge = userCharge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserExtend() {
|
||||||
|
return userExtend;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserExtend(JsonObject userExtend) {
|
||||||
|
this.userExtend = userExtend;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserOption() {
|
||||||
|
return userOption;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserOption(JsonObject userOption) {
|
||||||
|
this.userOption = userOption;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserRating() {
|
||||||
|
return userRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserRating(JsonObject userRating) {
|
||||||
|
this.userRating = userRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserActivity() {
|
||||||
|
return userActivity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserActivity(JsonObject userActivity) {
|
||||||
|
this.userActivity = userActivity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserCharacter() {
|
||||||
|
return userCharacter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserCharacter(JsonObject userCharacter) {
|
||||||
|
this.userCharacter = userCharacter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserMission() {
|
||||||
|
return userMission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserMission(JsonObject userMission) {
|
||||||
|
this.userMission = userMission;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserData() {
|
||||||
|
return userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserData(JsonObject userData) {
|
||||||
|
this.userData = userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserItem> getUserItem() {
|
||||||
|
return userItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserItem(List<UserItem> userItem) {
|
||||||
|
this.userItem = userItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
public All_chart getAll_chart() {
|
||||||
|
return all_chart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAll_chart(All_chart all_chart) {
|
||||||
|
this.all_chart = all_chart;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
|
||||||
|
import org.astral.findmaimaiultra.been.sega.info.Activity;
|
||||||
|
|
||||||
|
public class Command {
|
||||||
|
private int userId;
|
||||||
|
private BackUp backUp;
|
||||||
|
private String command;
|
||||||
|
private Activity activity;
|
||||||
|
private JsonObject loginData;
|
||||||
|
private JsonObject loginResult;
|
||||||
|
private JsonObject userData;
|
||||||
|
private JsonObject playLogs;
|
||||||
|
private JsonObject upsertAll;
|
||||||
|
|
||||||
|
public JsonObject getLoginData() {
|
||||||
|
return loginData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Activity getActivity() {
|
||||||
|
return activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setActivity(Activity activity) {
|
||||||
|
this.activity = activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLoginData(JsonObject loginData) {
|
||||||
|
this.loginData = loginData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getLoginResult() {
|
||||||
|
return loginResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLoginResult(JsonObject loginResult) {
|
||||||
|
this.loginResult = loginResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BackUp getBackUp() {
|
||||||
|
return backUp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBackUp(BackUp backUp) {
|
||||||
|
this.backUp = backUp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCommand() {
|
||||||
|
return command;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCommand(String command) {
|
||||||
|
this.command = command;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUserData() {
|
||||||
|
return userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserData(JsonObject userData) {
|
||||||
|
this.userData = userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getPlayLogs() {
|
||||||
|
return playLogs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayLogs(JsonObject playLogs) {
|
||||||
|
this.playLogs = playLogs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public JsonObject getUpsertAll() {
|
||||||
|
return upsertAll;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpsertAll(JsonObject upsertAll) {
|
||||||
|
this.upsertAll = upsertAll;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class GetUserIdByQRCode {
|
||||||
|
private double errorID;
|
||||||
|
private String key;
|
||||||
|
private String timestamp;
|
||||||
|
private int userID;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "GetUserIdByQRCode{" +
|
||||||
|
"errorID=" + errorID +
|
||||||
|
", key='" + key + '\'' +
|
||||||
|
", timestamp='" + timestamp + '\'' +
|
||||||
|
", userID=" + userID +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getErrorID() {
|
||||||
|
return errorID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrorID(double errorID) {
|
||||||
|
this.errorID = errorID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTimestamp() {
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTimestamp(String timestamp) {
|
||||||
|
this.timestamp = timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserID() {
|
||||||
|
return userID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserID(int userID) {
|
||||||
|
this.userID = userID;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
|
public class MessageCom {
|
||||||
|
private int code;
|
||||||
|
private long timestamp;
|
||||||
|
private String msg;
|
||||||
|
private String data;
|
||||||
|
|
||||||
|
public MessageCom(int i, String a, String byUid) {
|
||||||
|
this.code = i;
|
||||||
|
this.msg = a;
|
||||||
|
this.data = byUid;
|
||||||
|
}
|
||||||
|
public MessageCom() {
|
||||||
|
|
||||||
|
}
|
||||||
|
public long getTimestamp() {
|
||||||
|
return timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTimestamp(long timestamp) {
|
||||||
|
this.timestamp = timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCode(int code) {
|
||||||
|
this.code = code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMsg() {
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMsg(String msg) {
|
||||||
|
this.msg = msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(String data) {
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
|
||||||
|
import org.astral.findmaimaiultra.been.sega.info.UserData;
|
||||||
|
|
||||||
|
public class PhotoMessage {
|
||||||
|
private UserScore userScore;
|
||||||
|
private All_chart maiUser;
|
||||||
|
private UserData userData;
|
||||||
|
private UserDataAll userDataFaker;
|
||||||
|
|
||||||
|
public UserScore getUserScore() {
|
||||||
|
return userScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserScore(UserScore userScore) {
|
||||||
|
this.userScore = userScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public All_chart getMaiUser() {
|
||||||
|
return maiUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaiUser(All_chart maiUser) {
|
||||||
|
this.maiUser = maiUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserData getUserData() {
|
||||||
|
return userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserData(UserData userData) {
|
||||||
|
this.userData = userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDataAll getUserDataFaker() {
|
||||||
|
return userDataFaker;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserDataFaker(UserDataAll userDataFaker) {
|
||||||
|
this.userDataFaker = userDataFaker;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class RegionData {
|
||||||
|
private int userId;
|
||||||
|
private int length;
|
||||||
|
private List<UserRegion> userRegionList;
|
||||||
|
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLength(int length) {
|
||||||
|
this.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserRegion> getUserRegionList() {
|
||||||
|
return userRegionList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserRegionList(List<UserRegion> userRegionList) {
|
||||||
|
this.userRegionList = userRegionList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,83 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import org.astral.findmaimaiultra.been.sega.All_chart;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ReisaRating {
|
||||||
|
private String id;
|
||||||
|
private int userId;
|
||||||
|
private String userName;
|
||||||
|
private String unionUserId;
|
||||||
|
private All_chart all_chart;
|
||||||
|
private int rating;
|
||||||
|
private List<Long> updateTimes;
|
||||||
|
private Map<Integer, UserItem> colls;
|
||||||
|
|
||||||
|
public Map<Integer, UserItem> getColls() {
|
||||||
|
return colls;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setColls(Map<Integer, UserItem> colls) {
|
||||||
|
this.colls = colls;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Long> getUpdateTimes() {
|
||||||
|
return updateTimes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpdateTimes(List<Long> updateTimes) {
|
||||||
|
this.updateTimes = updateTimes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserName() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUnionUserId() {
|
||||||
|
return unionUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUnionUserId(String unionUserId) {
|
||||||
|
this.unionUserId = unionUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public All_chart getAll_chart() {
|
||||||
|
return all_chart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAll_chart(All_chart all_chart) {
|
||||||
|
this.all_chart = all_chart;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRating() {
|
||||||
|
return rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRating(int rating) {
|
||||||
|
this.rating = rating;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,173 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Sega_chart {
|
||||||
|
private int musicId;
|
||||||
|
private String musicName;
|
||||||
|
private int level;
|
||||||
|
private double level_info;
|
||||||
|
private int romVersion;
|
||||||
|
private int achievement;
|
||||||
|
private int rating;
|
||||||
|
private String type;
|
||||||
|
private int playCount;
|
||||||
|
private int comboStatus;
|
||||||
|
private int syncStatus;
|
||||||
|
private int deluxscoreMax;
|
||||||
|
private int scoreRank;
|
||||||
|
private int extNum1;
|
||||||
|
private int extNum2;
|
||||||
|
private List<String> alias;
|
||||||
|
|
||||||
|
public List<String> getAlias() {
|
||||||
|
return alias;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAlias(List<String> alias) {
|
||||||
|
this.alias = alias;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayCount() {
|
||||||
|
return playCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayCount(int playCount) {
|
||||||
|
this.playCount = playCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getComboStatus() {
|
||||||
|
return comboStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComboStatus(int comboStatus) {
|
||||||
|
this.comboStatus = comboStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSyncStatus() {
|
||||||
|
return syncStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSyncStatus(int syncStatus) {
|
||||||
|
this.syncStatus = syncStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDeluxscoreMax() {
|
||||||
|
return deluxscoreMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeluxscoreMax(int deluxscoreMax) {
|
||||||
|
this.deluxscoreMax = deluxscoreMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getScoreRank() {
|
||||||
|
return scoreRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setScoreRank(int scoreRank) {
|
||||||
|
this.scoreRank = scoreRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getExtNum1() {
|
||||||
|
return extNum1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExtNum1(int extNum1) {
|
||||||
|
this.extNum1 = extNum1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getExtNum2() {
|
||||||
|
return extNum2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExtNum2(int extNum2) {
|
||||||
|
this.extNum2 = extNum2;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMusicName() {
|
||||||
|
return musicName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMusicName(String musicName) {
|
||||||
|
this.musicName = musicName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLevel_info() {
|
||||||
|
return level_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLevel_info(double level_info) {
|
||||||
|
this.level_info = level_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRating() {
|
||||||
|
return rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRating(int rating) {
|
||||||
|
this.rating = rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public int getMusicId() {
|
||||||
|
return musicId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMusicId(int musicId) {
|
||||||
|
this.musicId = musicId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLevel() {
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLevel(int level) {
|
||||||
|
this.level = level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRomVersion() {
|
||||||
|
return romVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRomVersion(int romVersion) {
|
||||||
|
this.romVersion = romVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAchievement() {
|
||||||
|
return achievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "MusicRating{" +
|
||||||
|
"musicId=" + musicId +
|
||||||
|
", musicName='" + musicName + '\'' +
|
||||||
|
", level=" + level +
|
||||||
|
", level_info=" + level_info +
|
||||||
|
", romVersion=" + romVersion +
|
||||||
|
", achievement=" + achievement +
|
||||||
|
", rating=" + rating +
|
||||||
|
", type='" + type + '\'' +
|
||||||
|
", playCount=" + playCount +
|
||||||
|
", comboStatus=" + comboStatus +
|
||||||
|
", syncStatus=" + syncStatus +
|
||||||
|
", deluxscoreMax=" + deluxscoreMax +
|
||||||
|
", scoreRank=" + scoreRank +
|
||||||
|
", extNum1=" + extNum1 +
|
||||||
|
", extNum2=" + extNum2 +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAchievement(int achievement) {
|
||||||
|
this.achievement = achievement;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class Sender {
|
||||||
|
private String key;
|
||||||
|
private String x;
|
||||||
|
private String y;
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getX() {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setX(String x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getY() {
|
||||||
|
return y;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setY(String y) {
|
||||||
|
this.y = y;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
|
||||||
|
import org.astral.findmaimaiultra.been.lx.Difficulty;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Updates {
|
||||||
|
private int musicId;
|
||||||
|
private Difficulty difficulty;
|
||||||
|
private Map<String,Object> scores;
|
||||||
|
private int fs;
|
||||||
|
private int fc;
|
||||||
|
private int isNew;
|
||||||
|
private int playCount;
|
||||||
|
|
||||||
|
public int getMusicId() {
|
||||||
|
return musicId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMusicId(int musicId) {
|
||||||
|
this.musicId = musicId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Difficulty getDifficulty() {
|
||||||
|
return difficulty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDifficulty(Difficulty difficulty) {
|
||||||
|
this.difficulty = difficulty;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, Object> getScores() {
|
||||||
|
return scores;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setScores(Map<String, Object> scores) {
|
||||||
|
this.scores = scores;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFs() {
|
||||||
|
return fs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFs(int fs) {
|
||||||
|
this.fs = fs;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFc() {
|
||||||
|
return fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFc(int fc) {
|
||||||
|
this.fc = fc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsNew() {
|
||||||
|
return isNew;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsNew(int isNew) {
|
||||||
|
this.isNew = isNew;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayCount() {
|
||||||
|
return playCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayCount(int playCount) {
|
||||||
|
this.playCount = playCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class User {
|
||||||
|
private String name;
|
||||||
|
private String email;
|
||||||
|
private int userId;
|
||||||
|
private int iconId;
|
||||||
|
|
||||||
|
public int getIconId() {
|
||||||
|
return iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIconId(int iconId) {
|
||||||
|
this.iconId = iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class UserCharge {
|
||||||
|
private int chargeId;
|
||||||
|
private int stock;
|
||||||
|
private String purchaseDate;
|
||||||
|
private String validDate;
|
||||||
|
private int extNum1;
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public int getChargeId() {
|
||||||
|
return chargeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChargeId(int chargeId) {
|
||||||
|
this.chargeId = chargeId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStock() {
|
||||||
|
return stock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStock(int stock) {
|
||||||
|
this.stock = stock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPurchaseDate() {
|
||||||
|
return purchaseDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPurchaseDate(String purchaseDate) {
|
||||||
|
this.purchaseDate = purchaseDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValidDate() {
|
||||||
|
return validDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValidDate(String validDate) {
|
||||||
|
this.validDate = validDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getExtNum1() {
|
||||||
|
return extNum1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setExtNum1(int extNum1) {
|
||||||
|
this.extNum1 = extNum1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class UserDataAll {
|
||||||
|
private int userId;
|
||||||
|
private String userName;
|
||||||
|
private boolean isLogin;
|
||||||
|
private String lastGameId;
|
||||||
|
private String lastRomVersion;
|
||||||
|
private String lastDataVersion;
|
||||||
|
private String lastLoginDate;
|
||||||
|
private String lastPlayDate;
|
||||||
|
private int playerRating;
|
||||||
|
private int nameplateId;
|
||||||
|
private int iconId;
|
||||||
|
private int trophyId;
|
||||||
|
private int isNetMember;
|
||||||
|
private boolean isInherit;
|
||||||
|
private int totalAwake;
|
||||||
|
private int dispRate;
|
||||||
|
private String dailyBonusDate;
|
||||||
|
private String headPhoneVolume;
|
||||||
|
private int banState;
|
||||||
|
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserName() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isLogin() {
|
||||||
|
return isLogin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLogin(boolean login) {
|
||||||
|
isLogin = login;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastGameId() {
|
||||||
|
return lastGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastGameId(String lastGameId) {
|
||||||
|
this.lastGameId = lastGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastRomVersion() {
|
||||||
|
return lastRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastRomVersion(String lastRomVersion) {
|
||||||
|
this.lastRomVersion = lastRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastDataVersion() {
|
||||||
|
return lastDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastDataVersion(String lastDataVersion) {
|
||||||
|
this.lastDataVersion = lastDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastLoginDate() {
|
||||||
|
return lastLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastLoginDate(String lastLoginDate) {
|
||||||
|
this.lastLoginDate = lastLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastPlayDate() {
|
||||||
|
return lastPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPlayDate(String lastPlayDate) {
|
||||||
|
this.lastPlayDate = lastPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayerRating() {
|
||||||
|
return playerRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayerRating(int playerRating) {
|
||||||
|
this.playerRating = playerRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNameplateId() {
|
||||||
|
return nameplateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNameplateId(int nameplateId) {
|
||||||
|
this.nameplateId = nameplateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIconId() {
|
||||||
|
return iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIconId(int iconId) {
|
||||||
|
this.iconId = iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTrophyId() {
|
||||||
|
return trophyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTrophyId(int trophyId) {
|
||||||
|
this.trophyId = trophyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsNetMember() {
|
||||||
|
return isNetMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsNetMember(int isNetMember) {
|
||||||
|
this.isNetMember = isNetMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isInherit() {
|
||||||
|
return isInherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInherit(boolean inherit) {
|
||||||
|
isInherit = inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalAwake() {
|
||||||
|
return totalAwake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalAwake(int totalAwake) {
|
||||||
|
this.totalAwake = totalAwake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDispRate() {
|
||||||
|
return dispRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDispRate(int dispRate) {
|
||||||
|
this.dispRate = dispRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDailyBonusDate() {
|
||||||
|
return dailyBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDailyBonusDate(String dailyBonusDate) {
|
||||||
|
this.dailyBonusDate = dailyBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHeadPhoneVolume() {
|
||||||
|
return headPhoneVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeadPhoneVolume(String headPhoneVolume) {
|
||||||
|
this.headPhoneVolume = headPhoneVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBanState() {
|
||||||
|
return banState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBanState(int banState) {
|
||||||
|
this.banState = banState;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UserItem {
|
||||||
|
private Integer userId;
|
||||||
|
private Integer itemKind;
|
||||||
|
private int length;
|
||||||
|
private List<UserItemList> userItemList;
|
||||||
|
|
||||||
|
public Integer getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(Integer userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getItemKind() {
|
||||||
|
return itemKind;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItemKind(Integer itemKind) {
|
||||||
|
this.itemKind = itemKind;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLength(int length) {
|
||||||
|
this.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserItemList> getUserItemList() {
|
||||||
|
return userItemList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserItemList(List<UserItemList> userItemList) {
|
||||||
|
this.userItemList = userItemList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class UserItemList {
|
||||||
|
private int itemKind;
|
||||||
|
private int itemId;
|
||||||
|
private int stock;
|
||||||
|
private boolean isValid;
|
||||||
|
|
||||||
|
public int getItemKind() {
|
||||||
|
return itemKind;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItemKind(int itemKind) {
|
||||||
|
this.itemKind = itemKind;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getItemId() {
|
||||||
|
return itemId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setItemId(int itemId) {
|
||||||
|
this.itemId = itemId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStock() {
|
||||||
|
return stock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStock(int stock) {
|
||||||
|
this.stock = stock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isValid() {
|
||||||
|
return isValid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValid(boolean valid) {
|
||||||
|
isValid = valid;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UserMusicList {
|
||||||
|
private List<Sega_chart> userMusicDetailList;
|
||||||
|
private int length;
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public List<Sega_chart> getUserMusicDetailList() {
|
||||||
|
return userMusicDetailList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserMusicDetailList(List<Sega_chart> userMusicDetailList) {
|
||||||
|
this.userMusicDetailList = userMusicDetailList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLength(int length) {
|
||||||
|
this.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "UserMusicList{" +
|
||||||
|
"userMusicDetailList=" + userMusicDetailList +
|
||||||
|
", length=" + length +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class UserPreview {
|
||||||
|
private Integer userId;
|
||||||
|
private String userName;
|
||||||
|
private Boolean isLogin;
|
||||||
|
private Object lastGameId;
|
||||||
|
private String lastRomVersion;
|
||||||
|
private String lastDataVersion;
|
||||||
|
private String lastLoginDate;
|
||||||
|
private String lastPlayDate;
|
||||||
|
private Integer playerRating;
|
||||||
|
private Integer nameplateId;
|
||||||
|
private Integer iconId;
|
||||||
|
private Integer trophyId;
|
||||||
|
private Integer isNetMember;
|
||||||
|
private Boolean isInherit;
|
||||||
|
private Integer totalAwake;
|
||||||
|
private Integer dispRate;
|
||||||
|
private String dailyBonusDate;
|
||||||
|
private Object headPhoneVolume;
|
||||||
|
private Integer banState;
|
||||||
|
|
||||||
|
public Integer getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(Integer userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserName() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getLogin() {
|
||||||
|
return isLogin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLogin(Boolean login) {
|
||||||
|
isLogin = login;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getLastGameId() {
|
||||||
|
return lastGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastGameId(Object lastGameId) {
|
||||||
|
this.lastGameId = lastGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastRomVersion() {
|
||||||
|
return lastRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastRomVersion(String lastRomVersion) {
|
||||||
|
this.lastRomVersion = lastRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastDataVersion() {
|
||||||
|
return lastDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastDataVersion(String lastDataVersion) {
|
||||||
|
this.lastDataVersion = lastDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastLoginDate() {
|
||||||
|
return lastLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastLoginDate(String lastLoginDate) {
|
||||||
|
this.lastLoginDate = lastLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastPlayDate() {
|
||||||
|
return lastPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPlayDate(String lastPlayDate) {
|
||||||
|
this.lastPlayDate = lastPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPlayerRating() {
|
||||||
|
return playerRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayerRating(Integer playerRating) {
|
||||||
|
this.playerRating = playerRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getNameplateId() {
|
||||||
|
return nameplateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNameplateId(Integer nameplateId) {
|
||||||
|
this.nameplateId = nameplateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getIconId() {
|
||||||
|
return iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIconId(Integer iconId) {
|
||||||
|
this.iconId = iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getTrophyId() {
|
||||||
|
return trophyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTrophyId(Integer trophyId) {
|
||||||
|
this.trophyId = trophyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getIsNetMember() {
|
||||||
|
return isNetMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsNetMember(Integer isNetMember) {
|
||||||
|
this.isNetMember = isNetMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getInherit() {
|
||||||
|
return isInherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInherit(Boolean inherit) {
|
||||||
|
isInherit = inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getTotalAwake() {
|
||||||
|
return totalAwake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalAwake(Integer totalAwake) {
|
||||||
|
this.totalAwake = totalAwake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getDispRate() {
|
||||||
|
return dispRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDispRate(Integer dispRate) {
|
||||||
|
this.dispRate = dispRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDailyBonusDate() {
|
||||||
|
return dailyBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDailyBonusDate(String dailyBonusDate) {
|
||||||
|
this.dailyBonusDate = dailyBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object getHeadPhoneVolume() {
|
||||||
|
return headPhoneVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeadPhoneVolume(Object headPhoneVolume) {
|
||||||
|
this.headPhoneVolume = headPhoneVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getBanState() {
|
||||||
|
return banState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBanState(Integer banState) {
|
||||||
|
this.banState = banState;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UserRating {
|
||||||
|
private int rating;
|
||||||
|
private List<Sega_chart> ratingList;
|
||||||
|
private List<Sega_chart> newRatingList;
|
||||||
|
private List<Sega_chart> nextRatingList;
|
||||||
|
private List<Sega_chart> nextNewRatingList;
|
||||||
|
|
||||||
|
public int getRating() {
|
||||||
|
return rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRating(int rating) {
|
||||||
|
this.rating = rating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Sega_chart> getRatingList() {
|
||||||
|
return ratingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRatingList(List<Sega_chart> ratingList) {
|
||||||
|
this.ratingList = ratingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Sega_chart> getNewRatingList() {
|
||||||
|
return newRatingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewRatingList(List<Sega_chart> newRatingList) {
|
||||||
|
this.newRatingList = newRatingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Sega_chart> getNextRatingList() {
|
||||||
|
return nextRatingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNextRatingList(List<Sega_chart> nextRatingList) {
|
||||||
|
this.nextRatingList = nextRatingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Sega_chart> getNextNewRatingList() {
|
||||||
|
return nextNewRatingList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNextNewRatingList(List<Sega_chart> nextNewRatingList) {
|
||||||
|
this.nextNewRatingList = nextNewRatingList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class UserRegion {
|
||||||
|
private int regionId;
|
||||||
|
private int playCount;
|
||||||
|
private String province;
|
||||||
|
private String created;
|
||||||
|
|
||||||
|
public String getProvince() {
|
||||||
|
return province;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProvince(String province) {
|
||||||
|
this.province = province;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRegionId() {
|
||||||
|
return regionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRegionId(int regionId) {
|
||||||
|
this.regionId = regionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayCount() {
|
||||||
|
return playCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayCount(int playCount) {
|
||||||
|
this.playCount = playCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCreated() {
|
||||||
|
return created;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreated(String created) {
|
||||||
|
this.created = created;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
|
||||||
|
public class UserScore {
|
||||||
|
private long userId;
|
||||||
|
private UserRating userRating;
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public long getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(long userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "UserScore{" +
|
||||||
|
"userId=" + userId +
|
||||||
|
", userRating=" + userRating +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserRating getUserRating() {
|
||||||
|
return userRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserRating(UserRating userRating) {
|
||||||
|
this.userRating = userRating;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UserTicket {
|
||||||
|
private int userId;
|
||||||
|
private int length;
|
||||||
|
private List<UserCharge> userChargeList;
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLength() {
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLength(int length) {
|
||||||
|
this.length = length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<UserCharge> getUserChargeList() {
|
||||||
|
return userChargeList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserChargeList(List<UserCharge> userChargeList) {
|
||||||
|
this.userChargeList = userChargeList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega.info;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Activity {
|
||||||
|
private String id;
|
||||||
|
private String userId;//MongoDB的id
|
||||||
|
private String maiUserId;
|
||||||
|
private List<MaiRole> roles;
|
||||||
|
private long startTime;
|
||||||
|
private long endTime;
|
||||||
|
private boolean isUes;
|
||||||
|
|
||||||
|
public String getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMaiUserId(String maiUserId) {
|
||||||
|
this.maiUserId = maiUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getMaiUserId() {
|
||||||
|
return maiUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(String userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MaiRole> getRoles() {
|
||||||
|
return roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRoles(List<MaiRole> roles) {
|
||||||
|
this.roles = roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getStartTime() {
|
||||||
|
return startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStartTime(long startTime) {
|
||||||
|
this.startTime = startTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getEndTime() {
|
||||||
|
return endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEndTime(long endTime) {
|
||||||
|
this.endTime = endTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUes() {
|
||||||
|
return isUes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUes(boolean ues) {
|
||||||
|
isUes = ues;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega.info;
|
||||||
|
|
||||||
|
public class MaiRole {
|
||||||
|
private String roleName;
|
||||||
|
private int stock;
|
||||||
|
private int useStock;
|
||||||
|
private boolean isActive;
|
||||||
|
|
||||||
|
public int getUseStock() {
|
||||||
|
return useStock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUseStock(int useStock) {
|
||||||
|
this.useStock = useStock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getStock() {
|
||||||
|
return stock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setStock(int stock) {
|
||||||
|
this.stock = stock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRoleName() {
|
||||||
|
return roleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRoleName(String roleName) {
|
||||||
|
this.roleName = roleName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isActive() {
|
||||||
|
return isActive;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setActive(boolean active) {
|
||||||
|
isActive = active;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega.info;
|
||||||
|
|
||||||
|
public class UserData {
|
||||||
|
private int userId;
|
||||||
|
private UserDetails userData;
|
||||||
|
private int banState;
|
||||||
|
|
||||||
|
// Getters and Setters
|
||||||
|
public int getUserId() {
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(int userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserDetails getUserData() {
|
||||||
|
return userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserData(UserDetails userData) {
|
||||||
|
this.userData = userData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBanState() {
|
||||||
|
return banState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBanState(int banState) {
|
||||||
|
this.banState = banState;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,782 @@
|
|||||||
|
package org.astral.findmaimaiultra.been.sega.info;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class UserDetails {
|
||||||
|
private String accessCode;
|
||||||
|
private String userName;
|
||||||
|
private String friendCode;
|
||||||
|
private int isNetMember;
|
||||||
|
private int point;
|
||||||
|
private int totalPoint;
|
||||||
|
private int playerRating;
|
||||||
|
private int playerOldRating;
|
||||||
|
private int playerNewRating;
|
||||||
|
private int highestRating;
|
||||||
|
private int gradeRating;
|
||||||
|
private int musicRating;
|
||||||
|
private int gradeRank;
|
||||||
|
private int courseRank;
|
||||||
|
private int classRank;
|
||||||
|
private int nameplateId;
|
||||||
|
private int frameId;
|
||||||
|
private int iconId;
|
||||||
|
private int trophyId;
|
||||||
|
private int plateId;
|
||||||
|
private int titleId;
|
||||||
|
private int partnerId;
|
||||||
|
private List<Integer> charaSlot;
|
||||||
|
private List<Integer> charaLockSlot;
|
||||||
|
private int contentBit;
|
||||||
|
private int selectMapId;
|
||||||
|
private int playCount;
|
||||||
|
private int currentPlayCount;
|
||||||
|
private int playVsCount;
|
||||||
|
private int playSyncCount;
|
||||||
|
private int winCount;
|
||||||
|
private int helpCount;
|
||||||
|
private int comboCount;
|
||||||
|
private int totalDeluxscore;
|
||||||
|
private int totalBasicDeluxscore;
|
||||||
|
private int totalAdvancedDeluxscore;
|
||||||
|
private int totalExpertDeluxscore;
|
||||||
|
private int totalMasterDeluxscore;
|
||||||
|
private int totalReMasterDeluxscore;
|
||||||
|
private int totalSync;
|
||||||
|
private int totalBasicSync;
|
||||||
|
private int totalAdvancedSync;
|
||||||
|
private int totalExpertSync;
|
||||||
|
private int totalMasterSync;
|
||||||
|
private int totalReMasterSync;
|
||||||
|
private long totalAchievement;
|
||||||
|
private long totalBasicAchievement;
|
||||||
|
private long totalAdvancedAchievement;
|
||||||
|
private long totalExpertAchievement;
|
||||||
|
private long totalMasterAchievement;
|
||||||
|
private long totalReMasterAchievement;
|
||||||
|
private String eventWatchedDate;
|
||||||
|
private String lastGameId;
|
||||||
|
private String lastRomVersion;
|
||||||
|
private String lastDataVersion;
|
||||||
|
private String lastLoginDate;
|
||||||
|
private String lastPlayDate;
|
||||||
|
private String lastPairLoginDate;
|
||||||
|
private String lastTrialPlayDate;
|
||||||
|
private int lastPlayCredit;
|
||||||
|
private int lastPlayMode;
|
||||||
|
private int lastPlaceId;
|
||||||
|
private String lastPlaceName;
|
||||||
|
private int lastAllNetId;
|
||||||
|
private int lastRegionId;
|
||||||
|
private String lastRegionName;
|
||||||
|
private String lastClientId;
|
||||||
|
private String lastCountryCode;
|
||||||
|
private int lastSelectEMoney;
|
||||||
|
private int lastSelectTicket;
|
||||||
|
private int lastSelectCourse;
|
||||||
|
private int lastCountCourse;
|
||||||
|
private String firstGameId;
|
||||||
|
private String firstRomVersion;
|
||||||
|
private String firstDataVersion;
|
||||||
|
private String firstPlayDate;
|
||||||
|
private String compatibleCmVersion;
|
||||||
|
private int totalAwake;
|
||||||
|
private String dailyBonusDate;
|
||||||
|
private String dailyCourseBonusDate;
|
||||||
|
private int mapStock;
|
||||||
|
private int renameCredit;
|
||||||
|
private int friendRegistSkip;
|
||||||
|
private int cmLastEmoneyCredit;
|
||||||
|
private int cmLastEmoneyBrand;
|
||||||
|
private String dateTime;
|
||||||
|
|
||||||
|
public String getAccessCode() {
|
||||||
|
return accessCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccessCode(String accessCode) {
|
||||||
|
this.accessCode = accessCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUserName() {
|
||||||
|
return userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserName(String userName) {
|
||||||
|
this.userName = userName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFriendCode() {
|
||||||
|
return friendCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFriendCode(String friendCode) {
|
||||||
|
this.friendCode = friendCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIsNetMember() {
|
||||||
|
return isNetMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsNetMember(int isNetMember) {
|
||||||
|
this.isNetMember = isNetMember;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPoint() {
|
||||||
|
return point;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPoint(int point) {
|
||||||
|
this.point = point;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalPoint() {
|
||||||
|
return totalPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalPoint(int totalPoint) {
|
||||||
|
this.totalPoint = totalPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayerRating() {
|
||||||
|
return playerRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayerRating(int playerRating) {
|
||||||
|
this.playerRating = playerRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayerOldRating() {
|
||||||
|
return playerOldRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayerOldRating(int playerOldRating) {
|
||||||
|
this.playerOldRating = playerOldRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayerNewRating() {
|
||||||
|
return playerNewRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayerNewRating(int playerNewRating) {
|
||||||
|
this.playerNewRating = playerNewRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHighestRating() {
|
||||||
|
return highestRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHighestRating(int highestRating) {
|
||||||
|
this.highestRating = highestRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGradeRating() {
|
||||||
|
return gradeRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGradeRating(int gradeRating) {
|
||||||
|
this.gradeRating = gradeRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMusicRating() {
|
||||||
|
return musicRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMusicRating(int musicRating) {
|
||||||
|
this.musicRating = musicRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGradeRank() {
|
||||||
|
return gradeRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGradeRank(int gradeRank) {
|
||||||
|
this.gradeRank = gradeRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCourseRank() {
|
||||||
|
return courseRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCourseRank(int courseRank) {
|
||||||
|
this.courseRank = courseRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getClassRank() {
|
||||||
|
return classRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setClassRank(int classRank) {
|
||||||
|
this.classRank = classRank;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getNameplateId() {
|
||||||
|
return nameplateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNameplateId(int nameplateId) {
|
||||||
|
this.nameplateId = nameplateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFrameId() {
|
||||||
|
return frameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFrameId(int frameId) {
|
||||||
|
this.frameId = frameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getIconId() {
|
||||||
|
return iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIconId(int iconId) {
|
||||||
|
this.iconId = iconId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTrophyId() {
|
||||||
|
return trophyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTrophyId(int trophyId) {
|
||||||
|
this.trophyId = trophyId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlateId() {
|
||||||
|
return plateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlateId(int plateId) {
|
||||||
|
this.plateId = plateId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTitleId() {
|
||||||
|
return titleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitleId(int titleId) {
|
||||||
|
this.titleId = titleId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPartnerId() {
|
||||||
|
return partnerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPartnerId(int partnerId) {
|
||||||
|
this.partnerId = partnerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Integer> getCharaSlot() {
|
||||||
|
return charaSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCharaSlot(List<Integer> charaSlot) {
|
||||||
|
this.charaSlot = charaSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Integer> getCharaLockSlot() {
|
||||||
|
return charaLockSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCharaLockSlot(List<Integer> charaLockSlot) {
|
||||||
|
this.charaLockSlot = charaLockSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getContentBit() {
|
||||||
|
return contentBit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContentBit(int contentBit) {
|
||||||
|
this.contentBit = contentBit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSelectMapId() {
|
||||||
|
return selectMapId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSelectMapId(int selectMapId) {
|
||||||
|
this.selectMapId = selectMapId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayCount() {
|
||||||
|
return playCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayCount(int playCount) {
|
||||||
|
this.playCount = playCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCurrentPlayCount() {
|
||||||
|
return currentPlayCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCurrentPlayCount(int currentPlayCount) {
|
||||||
|
this.currentPlayCount = currentPlayCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlayVsCount() {
|
||||||
|
return playVsCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlayVsCount(int playVsCount) {
|
||||||
|
this.playVsCount = playVsCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getPlaySyncCount() {
|
||||||
|
return playSyncCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPlaySyncCount(int playSyncCount) {
|
||||||
|
this.playSyncCount = playSyncCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getWinCount() {
|
||||||
|
return winCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setWinCount(int winCount) {
|
||||||
|
this.winCount = winCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHelpCount() {
|
||||||
|
return helpCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHelpCount(int helpCount) {
|
||||||
|
this.helpCount = helpCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getComboCount() {
|
||||||
|
return comboCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComboCount(int comboCount) {
|
||||||
|
this.comboCount = comboCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalDeluxscore() {
|
||||||
|
return totalDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalDeluxscore(int totalDeluxscore) {
|
||||||
|
this.totalDeluxscore = totalDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalBasicDeluxscore() {
|
||||||
|
return totalBasicDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalBasicDeluxscore(int totalBasicDeluxscore) {
|
||||||
|
this.totalBasicDeluxscore = totalBasicDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalAdvancedDeluxscore() {
|
||||||
|
return totalAdvancedDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalAdvancedDeluxscore(int totalAdvancedDeluxscore) {
|
||||||
|
this.totalAdvancedDeluxscore = totalAdvancedDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalExpertDeluxscore() {
|
||||||
|
return totalExpertDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalExpertDeluxscore(int totalExpertDeluxscore) {
|
||||||
|
this.totalExpertDeluxscore = totalExpertDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalMasterDeluxscore() {
|
||||||
|
return totalMasterDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalMasterDeluxscore(int totalMasterDeluxscore) {
|
||||||
|
this.totalMasterDeluxscore = totalMasterDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalReMasterDeluxscore() {
|
||||||
|
return totalReMasterDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalReMasterDeluxscore(int totalReMasterDeluxscore) {
|
||||||
|
this.totalReMasterDeluxscore = totalReMasterDeluxscore;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalSync() {
|
||||||
|
return totalSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalSync(int totalSync) {
|
||||||
|
this.totalSync = totalSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalBasicSync() {
|
||||||
|
return totalBasicSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalBasicSync(int totalBasicSync) {
|
||||||
|
this.totalBasicSync = totalBasicSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalAdvancedSync() {
|
||||||
|
return totalAdvancedSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalAdvancedSync(int totalAdvancedSync) {
|
||||||
|
this.totalAdvancedSync = totalAdvancedSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalExpertSync() {
|
||||||
|
return totalExpertSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalExpertSync(int totalExpertSync) {
|
||||||
|
this.totalExpertSync = totalExpertSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalMasterSync() {
|
||||||
|
return totalMasterSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalMasterSync(int totalMasterSync) {
|
||||||
|
this.totalMasterSync = totalMasterSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalReMasterSync() {
|
||||||
|
return totalReMasterSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalReMasterSync(int totalReMasterSync) {
|
||||||
|
this.totalReMasterSync = totalReMasterSync;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalAchievement() {
|
||||||
|
return totalAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalAchievement(long totalAchievement) {
|
||||||
|
this.totalAchievement = totalAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalBasicAchievement() {
|
||||||
|
return totalBasicAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalBasicAchievement(long totalBasicAchievement) {
|
||||||
|
this.totalBasicAchievement = totalBasicAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalAdvancedAchievement() {
|
||||||
|
return totalAdvancedAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalAdvancedAchievement(long totalAdvancedAchievement) {
|
||||||
|
this.totalAdvancedAchievement = totalAdvancedAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalExpertAchievement() {
|
||||||
|
return totalExpertAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalExpertAchievement(long totalExpertAchievement) {
|
||||||
|
this.totalExpertAchievement = totalExpertAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalMasterAchievement() {
|
||||||
|
return totalMasterAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalMasterAchievement(long totalMasterAchievement) {
|
||||||
|
this.totalMasterAchievement = totalMasterAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getTotalReMasterAchievement() {
|
||||||
|
return totalReMasterAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalReMasterAchievement(long totalReMasterAchievement) {
|
||||||
|
this.totalReMasterAchievement = totalReMasterAchievement;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEventWatchedDate() {
|
||||||
|
return eventWatchedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEventWatchedDate(String eventWatchedDate) {
|
||||||
|
this.eventWatchedDate = eventWatchedDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastGameId() {
|
||||||
|
return lastGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastGameId(String lastGameId) {
|
||||||
|
this.lastGameId = lastGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastRomVersion() {
|
||||||
|
return lastRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastRomVersion(String lastRomVersion) {
|
||||||
|
this.lastRomVersion = lastRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastDataVersion() {
|
||||||
|
return lastDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastDataVersion(String lastDataVersion) {
|
||||||
|
this.lastDataVersion = lastDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastLoginDate() {
|
||||||
|
return lastLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastLoginDate(String lastLoginDate) {
|
||||||
|
this.lastLoginDate = lastLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastPlayDate() {
|
||||||
|
return lastPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPlayDate(String lastPlayDate) {
|
||||||
|
this.lastPlayDate = lastPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastPairLoginDate() {
|
||||||
|
return lastPairLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPairLoginDate(String lastPairLoginDate) {
|
||||||
|
this.lastPairLoginDate = lastPairLoginDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastTrialPlayDate() {
|
||||||
|
return lastTrialPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastTrialPlayDate(String lastTrialPlayDate) {
|
||||||
|
this.lastTrialPlayDate = lastTrialPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastPlayCredit() {
|
||||||
|
return lastPlayCredit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPlayCredit(int lastPlayCredit) {
|
||||||
|
this.lastPlayCredit = lastPlayCredit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastPlayMode() {
|
||||||
|
return lastPlayMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPlayMode(int lastPlayMode) {
|
||||||
|
this.lastPlayMode = lastPlayMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastPlaceId() {
|
||||||
|
return lastPlaceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPlaceId(int lastPlaceId) {
|
||||||
|
this.lastPlaceId = lastPlaceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastPlaceName() {
|
||||||
|
return lastPlaceName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastPlaceName(String lastPlaceName) {
|
||||||
|
this.lastPlaceName = lastPlaceName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastAllNetId() {
|
||||||
|
return lastAllNetId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastAllNetId(int lastAllNetId) {
|
||||||
|
this.lastAllNetId = lastAllNetId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastRegionId() {
|
||||||
|
return lastRegionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastRegionId(int lastRegionId) {
|
||||||
|
this.lastRegionId = lastRegionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastRegionName() {
|
||||||
|
return lastRegionName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastRegionName(String lastRegionName) {
|
||||||
|
this.lastRegionName = lastRegionName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastClientId() {
|
||||||
|
return lastClientId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastClientId(String lastClientId) {
|
||||||
|
this.lastClientId = lastClientId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLastCountryCode() {
|
||||||
|
return lastCountryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastCountryCode(String lastCountryCode) {
|
||||||
|
this.lastCountryCode = lastCountryCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastSelectEMoney() {
|
||||||
|
return lastSelectEMoney;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastSelectEMoney(int lastSelectEMoney) {
|
||||||
|
this.lastSelectEMoney = lastSelectEMoney;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastSelectTicket() {
|
||||||
|
return lastSelectTicket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastSelectTicket(int lastSelectTicket) {
|
||||||
|
this.lastSelectTicket = lastSelectTicket;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastSelectCourse() {
|
||||||
|
return lastSelectCourse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastSelectCourse(int lastSelectCourse) {
|
||||||
|
this.lastSelectCourse = lastSelectCourse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLastCountCourse() {
|
||||||
|
return lastCountCourse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLastCountCourse(int lastCountCourse) {
|
||||||
|
this.lastCountCourse = lastCountCourse;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstGameId() {
|
||||||
|
return firstGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstGameId(String firstGameId) {
|
||||||
|
this.firstGameId = firstGameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstRomVersion() {
|
||||||
|
return firstRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstRomVersion(String firstRomVersion) {
|
||||||
|
this.firstRomVersion = firstRomVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstDataVersion() {
|
||||||
|
return firstDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstDataVersion(String firstDataVersion) {
|
||||||
|
this.firstDataVersion = firstDataVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFirstPlayDate() {
|
||||||
|
return firstPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFirstPlayDate(String firstPlayDate) {
|
||||||
|
this.firstPlayDate = firstPlayDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCompatibleCmVersion() {
|
||||||
|
return compatibleCmVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCompatibleCmVersion(String compatibleCmVersion) {
|
||||||
|
this.compatibleCmVersion = compatibleCmVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTotalAwake() {
|
||||||
|
return totalAwake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTotalAwake(int totalAwake) {
|
||||||
|
this.totalAwake = totalAwake;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDailyBonusDate() {
|
||||||
|
return dailyBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDailyBonusDate(String dailyBonusDate) {
|
||||||
|
this.dailyBonusDate = dailyBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDailyCourseBonusDate() {
|
||||||
|
return dailyCourseBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDailyCourseBonusDate(String dailyCourseBonusDate) {
|
||||||
|
this.dailyCourseBonusDate = dailyCourseBonusDate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getMapStock() {
|
||||||
|
return mapStock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMapStock(int mapStock) {
|
||||||
|
this.mapStock = mapStock;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getRenameCredit() {
|
||||||
|
return renameCredit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRenameCredit(int renameCredit) {
|
||||||
|
this.renameCredit = renameCredit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getFriendRegistSkip() {
|
||||||
|
return friendRegistSkip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFriendRegistSkip(int friendRegistSkip) {
|
||||||
|
this.friendRegistSkip = friendRegistSkip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCmLastEmoneyCredit() {
|
||||||
|
return cmLastEmoneyCredit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCmLastEmoneyCredit(int cmLastEmoneyCredit) {
|
||||||
|
this.cmLastEmoneyCredit = cmLastEmoneyCredit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCmLastEmoneyBrand() {
|
||||||
|
return cmLastEmoneyBrand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCmLastEmoneyBrand(int cmLastEmoneyBrand) {
|
||||||
|
this.cmLastEmoneyBrand = cmLastEmoneyBrand;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDateTime() {
|
||||||
|
return dateTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDateTime(String dateTime) {
|
||||||
|
this.dateTime = dateTime;
|
||||||
|
}
|
||||||
|
// Getters and Setters
|
||||||
|
// (Omitted for brevity, but should be generated for all fields)
|
||||||
|
}
|
||||||
@@ -1,11 +1,14 @@
|
|||||||
package org.astral.findmaimaiultra.service;
|
package org.astral.findmaimaiultra.service;
|
||||||
|
|
||||||
|
import static android.content.Context.MODE_PRIVATE;
|
||||||
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.AES_IV;
|
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.AES_IV;
|
||||||
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.AES_KEY;
|
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.AES_KEY;
|
||||||
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.BASE_URL;
|
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.BASE_URL;
|
||||||
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.OBFUSCATE_PARAM;
|
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.OBFUSCATE_PARAM;
|
||||||
|
import static org.astral.findmaimaiultra.been.faker.SegaApi2025.clientId;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@@ -14,6 +17,9 @@ import com.google.gson.Gson;
|
|||||||
|
|
||||||
import org.astral.findmaimaiultra.been.faker.MaimaiConfig;
|
import org.astral.findmaimaiultra.been.faker.MaimaiConfig;
|
||||||
import org.astral.findmaimaiultra.been.faker.SegaApi2025;
|
import org.astral.findmaimaiultra.been.faker.SegaApi2025;
|
||||||
|
import org.astral.findmaimaiultra.been.sega.Command;
|
||||||
|
import org.astral.findmaimaiultra.been.sega.Sender;
|
||||||
|
import org.astral.findmaimaiultra.ui.widget.WidgetFragment;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
@@ -29,9 +35,11 @@ import okhttp3.Response;
|
|||||||
|
|
||||||
public class InMemoryJarLoader {
|
public class InMemoryJarLoader {
|
||||||
public static SegaApi2025 segaApi2025 = new SegaApi2025();
|
public static SegaApi2025 segaApi2025 = new SegaApi2025();
|
||||||
|
private String key = "";
|
||||||
|
private String x = "";
|
||||||
|
private String y = "";
|
||||||
private static final String TAG = "JarClient";
|
private static final String TAG = "JarClient";
|
||||||
private static final String SERVER_URL = "https://union.godserver.cn/api/asserts";
|
private static final String SERVER_URL = "http://100.95.217.4:23942/api/asserts";
|
||||||
private final OkHttpClient client;
|
private final OkHttpClient client;
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
|
|
||||||
@@ -45,11 +53,24 @@ public class InMemoryJarLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void loadAndProcess() {
|
public void loadAndProcess() {
|
||||||
|
SharedPreferences sp = mContext.getSharedPreferences("setting", MODE_PRIVATE);
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
Log.d(TAG, "===== JAR文件还原客户端开始 =====");
|
key = sp.getString("key", "");
|
||||||
|
x = sp.getString("x", "");
|
||||||
|
y = sp.getString("y", "");
|
||||||
|
Sender sender = new Sender();
|
||||||
|
sender.setKey(key);
|
||||||
|
sender.setX(x);
|
||||||
|
sender.setY(y);
|
||||||
|
key = new Gson().toJson(sender);
|
||||||
|
key = WidgetFragment.encrypt( key);
|
||||||
|
if (key.equals("")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// Log.d(TAG, "===== JAR文件还原客户端开始 =====");
|
||||||
|
|
||||||
// 调用服务端预处理
|
// 调用服务端预处理
|
||||||
prepareServer();
|
prepareServer();
|
||||||
@@ -66,7 +87,7 @@ public class InMemoryJarLoader {
|
|||||||
// 下载并处理所有分块
|
// 下载并处理所有分块
|
||||||
byte[][] chunks = new byte[totalChunks][];
|
byte[][] chunks = new byte[totalChunks][];
|
||||||
for (int i = 0; i < totalChunks; i++) {
|
for (int i = 0; i < totalChunks; i++) {
|
||||||
Log.d(TAG, "\n=== 处理分块 " + (i + 1) + "/" + totalChunks + " ===");
|
// Log.d(TAG, "\n=== 处理分块 " + (i + 1) + "/" + totalChunks + " ===");
|
||||||
byte[] imageBytes = getChunkImage(i);
|
byte[] imageBytes = getChunkImage(i);
|
||||||
ChunkData data = extractChunkData(imageBytes);
|
ChunkData data = extractChunkData(imageBytes);
|
||||||
|
|
||||||
@@ -95,10 +116,10 @@ public class InMemoryJarLoader {
|
|||||||
byte[] mergedData = mergeChunks(chunks);
|
byte[] mergedData = mergeChunks(chunks);
|
||||||
logDataSummary(mergedData);
|
logDataSummary(mergedData);
|
||||||
|
|
||||||
Log.d(TAG, "\n===== 数据处理完成 =====");
|
// Log.d(TAG, "\n===== 数据处理完成 =====");
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(TAG, "\n===== 操作失败:" + e.getMessage() + " =====", e);
|
// Log.e(TAG, "\n===== 操作失败:" + e.getMessage() + " =====", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).start();
|
}).start();
|
||||||
@@ -114,14 +135,16 @@ public class InMemoryJarLoader {
|
|||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(SERVER_URL + "/prepare")
|
.url(SERVER_URL + "/prepare")
|
||||||
.post(RequestBody.create(new byte[0], null))
|
.post(RequestBody.create(new byte[0], null))
|
||||||
|
.addHeader("key",key)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
try (Response response = client.newCall(request).execute()) {
|
try (Response response = client.newCall(request).execute()) {
|
||||||
// Log.d(TAG, "响应状态码: " + response.code());
|
// Log.d(TAG, "响应状态码: " + response.code());
|
||||||
|
|
||||||
if (!response.isSuccessful()) {
|
if (!response.isSuccessful()) {
|
||||||
String errorBody = response.body() != null ? response.body().string() : "无响应内容";
|
// String errorBody = response.body() != null ? response.body().string() : "无响应内容";
|
||||||
throw new IOException("服务端预处理失败,状态码: " + response.code() + ",错误信息: " + errorBody);
|
return;
|
||||||
|
// throw new IOException("服务端预处理失败,状态码: " + response.code() + ",错误信息: " + errorBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
String responseBody = response.body().string();
|
String responseBody = response.body().string();
|
||||||
@@ -138,6 +161,7 @@ public class InMemoryJarLoader {
|
|||||||
|
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(SERVER_URL + "/total-chunks")
|
.url(SERVER_URL + "/total-chunks")
|
||||||
|
.addHeader("key",key)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
try (Response response = client.newCall(request).execute()) {
|
try (Response response = client.newCall(request).execute()) {
|
||||||
@@ -168,6 +192,7 @@ public class InMemoryJarLoader {
|
|||||||
|
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(SERVER_URL + "/chunk/" + index)
|
.url(SERVER_URL + "/chunk/" + index)
|
||||||
|
.addHeader("key",key)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
try (Response response = client.newCall(request).execute()) {
|
try (Response response = client.newCall(request).execute()) {
|
||||||
@@ -381,7 +406,7 @@ public class InMemoryJarLoader {
|
|||||||
}
|
}
|
||||||
contentPreview = "十六进制预览:\n" + hexPreview + (data.length > hexLength ? " ..." : "");
|
contentPreview = "十六进制预览:\n" + hexPreview + (data.length > hexLength ? " ..." : "");
|
||||||
}
|
}
|
||||||
//
|
////
|
||||||
// // 输出数据摘要
|
// // 输出数据摘要
|
||||||
// Log.d(TAG, "===== 合并后数据摘要 =====");
|
// Log.d(TAG, "===== 合并后数据摘要 =====");
|
||||||
// Log.d(TAG, "总大小: " + data.length + " 字节");
|
// Log.d(TAG, "总大小: " + data.length + " 字节");
|
||||||
@@ -398,6 +423,7 @@ public class InMemoryJarLoader {
|
|||||||
AES_KEY = maimaiConfig.getAES_KEY();
|
AES_KEY = maimaiConfig.getAES_KEY();
|
||||||
AES_IV = maimaiConfig.getAES_IV();
|
AES_IV = maimaiConfig.getAES_IV();
|
||||||
OBFUSCATE_PARAM = maimaiConfig.getOBFUSCATE_PARAM();
|
OBFUSCATE_PARAM = maimaiConfig.getOBFUSCATE_PARAM();
|
||||||
|
clientId = maimaiConfig.getClientId();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import android.content.Intent;
|
|||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
@@ -17,21 +18,33 @@ import androidx.lifecycle.ViewModelProvider;
|
|||||||
import com.baidu.mapapi.SDKInitializer;
|
import com.baidu.mapapi.SDKInitializer;
|
||||||
import com.baidu.mapapi.map.*;
|
import com.baidu.mapapi.map.*;
|
||||||
import com.baidu.mapapi.model.LatLng;
|
import com.baidu.mapapi.model.LatLng;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
import org.astral.findmaimaiultra.R;
|
import org.astral.findmaimaiultra.R;
|
||||||
import org.astral.findmaimaiultra.been.Place;
|
import org.astral.findmaimaiultra.been.Place;
|
||||||
import org.astral.findmaimaiultra.databinding.FragmentGalleryBinding;
|
import org.astral.findmaimaiultra.databinding.FragmentGalleryBinding;
|
||||||
import org.astral.findmaimaiultra.map2d.BasicMapActivity;
|
|
||||||
import org.astral.findmaimaiultra.utill.SharedViewModel;
|
import org.astral.findmaimaiultra.utill.SharedViewModel;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Type;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import okhttp3.Call;
|
||||||
|
import okhttp3.Callback;
|
||||||
|
import okhttp3.OkHttpClient;
|
||||||
|
import okhttp3.Request;
|
||||||
|
import okhttp3.Response;
|
||||||
|
|
||||||
public class GalleryFragment extends Fragment {
|
public class GalleryFragment extends Fragment {
|
||||||
private FragmentGalleryBinding binding;
|
private FragmentGalleryBinding binding;
|
||||||
private MapView mapView;
|
private MapView mapView;
|
||||||
private BaiduMap baiduMap;
|
private BaiduMap baiduMap;
|
||||||
private SharedViewModel sharedViewModel;
|
private SharedViewModel sharedViewModel;
|
||||||
|
private List<Place> placeList = new ArrayList<>();
|
||||||
|
private List<Place> showPlaceList = new ArrayList<>();
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater,
|
public View onCreateView(@NonNull LayoutInflater inflater,
|
||||||
ViewGroup container, Bundle savedInstanceState) {
|
ViewGroup container, Bundle savedInstanceState) {
|
||||||
GalleryViewModel galleryViewModel =
|
GalleryViewModel galleryViewModel =
|
||||||
@@ -57,11 +70,11 @@ public class GalleryFragment extends Fragment {
|
|||||||
baiduMap = mapView.getMap();
|
baiduMap = mapView.getMap();
|
||||||
|
|
||||||
// 设置地图中心点
|
// 设置地图中心点
|
||||||
LatLng latLng = new LatLng(y, x); // 北京市经纬度
|
LatLng latLng = new LatLng(x, y); // 北京市经纬度
|
||||||
baiduMap.setMapStatus(MapStatusUpdateFactory.newLatLngZoom(latLng, 13)); // 缩放级别调整为
|
baiduMap.setMapStatus(MapStatusUpdateFactory.newLatLngZoom(latLng, 13)); // 缩放级别调整为
|
||||||
|
|
||||||
// 添加独特样式的标记
|
// 添加独特样式的标记
|
||||||
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.logo); // 自定义图标资源
|
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sd); // 自定义图标资源
|
||||||
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 300, 130, true); // 缩放到 100x100 像素
|
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 300, 130, true); // 缩放到 100x100 像素
|
||||||
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(scaledBitmap);
|
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(scaledBitmap);
|
||||||
MarkerOptions markerOptions = new MarkerOptions()
|
MarkerOptions markerOptions = new MarkerOptions()
|
||||||
@@ -69,11 +82,11 @@ public class GalleryFragment extends Fragment {
|
|||||||
.title("舞萌痴位置")
|
.title("舞萌痴位置")
|
||||||
.icon(descriptor); // 使用自定义图标
|
.icon(descriptor); // 使用自定义图标
|
||||||
baiduMap.addOverlay(markerOptions);
|
baiduMap.addOverlay(markerOptions);
|
||||||
|
Log.d("GalleryFragment", "x: " + x + ", y: " + y);
|
||||||
ArrayList<Place> placeList = Objects.requireNonNull(sharedViewModel.getPlacelist().getValue());
|
// placeList = Objects.requireNonNull(sharedViewModel.getPlacelist().getValue());
|
||||||
for (Place place : placeList) {
|
// for (Place place : placeList) {
|
||||||
addMarker(new LatLng(place.getY(), place.getX()), place.getName(), place.getAddress());
|
// addMarker(new LatLng(place.getY(), place.getX()), place.getName(), place.getAddress());
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 设置标记点击监听器
|
// 设置标记点击监听器
|
||||||
baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
|
baiduMap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {
|
||||||
@@ -82,22 +95,117 @@ public class GalleryFragment extends Fragment {
|
|||||||
showMarkerInfoDialog(marker);
|
showMarkerInfoDialog(marker);
|
||||||
return true; // 返回 true 表示已处理点击事件
|
return true; // 返回 true 表示已处理点击事件
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
showMarkerInfo("");
|
||||||
|
//移动摄像头
|
||||||
|
baiduMap.animateMapStatus(MapStatusUpdateFactory.newLatLng(latLng));
|
||||||
|
|
||||||
|
baiduMap.setOnMapStatusChangeListener(new BaiduMap.OnMapStatusChangeListener() {
|
||||||
|
@Override
|
||||||
|
public void onMapStatusChangeStart(MapStatus mapStatus) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMapStatusChangeStart(MapStatus mapStatus, int i) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMapStatusChange(MapStatus mapStatus) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMapStatusChangeFinish(MapStatus mapStatus) {
|
||||||
|
// 地图状态改变完成时更新标记点
|
||||||
|
updateMarkersInViewport();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateMarkersInViewport() {
|
||||||
|
//获取摄像头经纬度和视野
|
||||||
|
MapStatus mapStatus = baiduMap.getMapStatus();
|
||||||
|
LatLng center = mapStatus.target;
|
||||||
|
double zoomLevel = mapStatus.zoom;
|
||||||
|
Log.d("GalleryFragment", "center: " + center + ", zoomLevel: " + zoomLevel);
|
||||||
|
if (zoomLevel<=12.9) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//获取视野内最大longitude
|
||||||
|
double maxLongitude = center.longitude + 1 / zoomLevel;
|
||||||
|
double minLongitude = center.longitude - 1 / zoomLevel;
|
||||||
|
//获取视野内最大latitude
|
||||||
|
double maxLatitude = center.latitude + 1 / zoomLevel;
|
||||||
|
double minLatitude = center.latitude - 1 / zoomLevel;
|
||||||
|
for (Place place : placeList) {
|
||||||
|
if (place.getY()>90 || place.getY() < 90) {
|
||||||
|
//倒转经纬度
|
||||||
|
double temp = place.getY();
|
||||||
|
place.setY(place.getX());
|
||||||
|
place.setX(temp);
|
||||||
|
}
|
||||||
|
if (place.getX() >= minLongitude && place.getX() <= maxLongitude && place.getY() >= minLatitude && place.getY() <= maxLatitude) {
|
||||||
|
if (!showPlaceList.contains( place)) {
|
||||||
|
showPlaceList.add(place);
|
||||||
|
addMarker(new LatLng(place.getY(), place.getX()), place.getName(), place.getAddress());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void showMarkerInfo(String query) {
|
||||||
|
String url = "https://mais.godserver.cn/api/mai/v1/searchAll?query="+query;
|
||||||
|
Request request = new Request.Builder()
|
||||||
|
.url(url)
|
||||||
|
.build();
|
||||||
|
new OkHttpClient().newCall(request).enqueue(new Callback() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
|
||||||
|
if (response.isSuccessful()) {
|
||||||
|
String json = response.body().string();
|
||||||
|
Type type = new TypeToken<ArrayList<Place>>() {}.getType();
|
||||||
|
placeList = new Gson().fromJson(json, type);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
private void addMarker(LatLng latLng, String title, String snippet) {
|
private void addMarker(LatLng latLng, String title, String snippet) {
|
||||||
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromResource(R.drawable.sd);
|
|
||||||
MarkerOptions markerOptions = new MarkerOptions();
|
MarkerOptions markerOptions = new MarkerOptions();
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString("snippet", snippet);
|
bundle.putString("snippet", snippet);
|
||||||
bundle.putString("title", title);
|
bundle.putString("title", title);
|
||||||
|
//判断title包不包含英文
|
||||||
|
if (containsChinese(title)) {
|
||||||
|
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.prism_plus); // 自定义图标资源
|
||||||
|
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 200, 80, true); // 缩放到 100x100 像素
|
||||||
|
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(scaledBitmap);
|
||||||
|
markerOptions.position(latLng)
|
||||||
|
.title(title)
|
||||||
|
.extraInfo(bundle)
|
||||||
|
.icon(descriptor);
|
||||||
|
baiduMap.addOverlay(markerOptions);
|
||||||
|
}else{
|
||||||
|
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.prism); // 自定义图标资源
|
||||||
|
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 200, 80, true); // 缩放到 100x100 像素
|
||||||
|
BitmapDescriptor descriptor = BitmapDescriptorFactory.fromBitmap(scaledBitmap);
|
||||||
markerOptions.position(latLng)
|
markerOptions.position(latLng)
|
||||||
.title(title)
|
.title(title)
|
||||||
.extraInfo(bundle)
|
.extraInfo(bundle)
|
||||||
.icon(descriptor);
|
.icon(descriptor);
|
||||||
baiduMap.addOverlay(markerOptions);
|
baiduMap.addOverlay(markerOptions);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
private boolean containsChinese(String str) {
|
||||||
|
if (str == null || str.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return str.matches(".*[\u4e00-\u9fa5].*");
|
||||||
|
}
|
||||||
// 在 showMarkerInfoDialog 方法中获取 snippet
|
// 在 showMarkerInfoDialog 方法中获取 snippet
|
||||||
private void showMarkerInfoDialog(Marker marker) {
|
private void showMarkerInfoDialog(Marker marker) {
|
||||||
View dialogView = LayoutInflater.from(getContext()).inflate(R.layout.marker_info_dialog, null);
|
View dialogView = LayoutInflater.from(getContext()).inflate(R.layout.marker_info_dialog, null);
|
||||||
|
|||||||
@@ -289,7 +289,7 @@ public class HomeFragment extends Fragment {
|
|||||||
String web = "";
|
String web = "";
|
||||||
try {
|
try {
|
||||||
tag = city.split("市")[0];
|
tag = city.split("市")[0];
|
||||||
web = "https://mais.godserver.cn/api/mai/v1/search?prompt1=" + tag+ "&status=市";
|
web = "https://mais.godserver.cn/api/mai/v1/searchAll?query=" + tag;
|
||||||
}catch ( Exception e) {
|
}catch ( Exception e) {
|
||||||
tag = "xy("+ x +","+ y +")";
|
tag = "xy("+ x +","+ y +")";
|
||||||
web = "https://mais.godserver.cn/api/mai/v1/search?prompt1=" + tag+ "&status=xy";
|
web = "https://mais.godserver.cn/api/mai/v1/search?prompt1=" + tag+ "&status=xy";
|
||||||
@@ -578,6 +578,8 @@ public class HomeFragment extends Fragment {
|
|||||||
private void extracted() {
|
private void extracted() {
|
||||||
//tot = tot.split("\"")[1];
|
//tot = tot.split("\"")[1];
|
||||||
Log.i("TAG", "x=" + x + ";y=" + y);
|
Log.i("TAG", "x=" + x + ";y=" + y);
|
||||||
|
settingProperties2.edit().putString("x", x).apply();
|
||||||
|
settingProperties2.edit().putString("y", y).apply();
|
||||||
//tot = "天津市东丽区民航大学";
|
//tot = "天津市东丽区民航大学";
|
||||||
if(!isFlag) {
|
if(!isFlag) {
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -48,6 +48,10 @@ import org.astral.findmaimaiultra.been.faker.MusicRating;
|
|||||||
import org.astral.findmaimaiultra.been.faker.UserMusicList;
|
import org.astral.findmaimaiultra.been.faker.UserMusicList;
|
||||||
import org.astral.findmaimaiultra.been.lx.Difficulty;
|
import org.astral.findmaimaiultra.been.lx.Difficulty;
|
||||||
import org.astral.findmaimaiultra.been.lx.Song;
|
import org.astral.findmaimaiultra.been.lx.Song;
|
||||||
|
import org.astral.findmaimaiultra.been.sega.All_chart;
|
||||||
|
import org.astral.findmaimaiultra.been.sega.ReisaRating;
|
||||||
|
import org.astral.findmaimaiultra.been.sega.User;
|
||||||
|
import org.astral.findmaimaiultra.been.sega.UserPreview;
|
||||||
import org.astral.findmaimaiultra.databinding.FragmentMusicBinding;
|
import org.astral.findmaimaiultra.databinding.FragmentMusicBinding;
|
||||||
import org.astral.findmaimaiultra.ui.login.LinkQQBot;
|
import org.astral.findmaimaiultra.ui.login.LinkQQBot;
|
||||||
import org.astral.findmaimaiultra.ui.MainActivity;
|
import org.astral.findmaimaiultra.ui.MainActivity;
|
||||||
@@ -89,26 +93,8 @@ public class MusicFragment extends Fragment {
|
|||||||
project = requireContext().getSharedPreferences("project",Context.MODE_PRIVATE);
|
project = requireContext().getSharedPreferences("project",Context.MODE_PRIVATE);
|
||||||
userId = setting.getString("userId", "未知");
|
userId = setting.getString("userId", "未知");
|
||||||
// 读取音乐评分列表
|
// 读取音乐评分列表
|
||||||
musicSongsRatings = loadMusicRatings();
|
loadMusicRatings();
|
||||||
int totalMusicRatings = 0;
|
|
||||||
for (UserMusicList musicSongsRating : musicSongsRatings) {
|
|
||||||
musicRatings.addAll(musicSongsRating.getUserMusicDetailList());
|
|
||||||
for (MusicRating musicRating : musicSongsRating.getUserMusicDetailList()) {
|
|
||||||
totalMusicRatings += musicRating.getRating();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
loadID2Score();
|
|
||||||
|
|
||||||
// 假设这里填充了音乐评分数据
|
|
||||||
if (musicRatings.isEmpty()) {
|
|
||||||
MusicRating empty = new MusicRating();
|
|
||||||
empty.setMusicName("空-请去导入成绩");
|
|
||||||
musicRatings.add(empty);
|
|
||||||
}else {
|
|
||||||
Toolbar toolbar = ((MainActivity) requireActivity()).findViewById(R.id.toolbar);
|
|
||||||
toolbar.setTitle("歌曲成绩 - 总共" + musicRatings.size() + "首");
|
|
||||||
Toast.makeText(getContext(), "总共" + musicRatings.size() + "首,有效rating:" + totalMusicRatings, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadID2Score() {
|
private void loadID2Score() {
|
||||||
@@ -134,32 +120,80 @@ public class MusicFragment extends Fragment {
|
|||||||
editor.apply();
|
editor.apply();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<UserMusicList> loadMusicRatings() {
|
private void loadMusicRatings() {
|
||||||
Gson gson = new Gson();
|
Gson gson = new Gson();
|
||||||
String json = scorePrefs.getString("musicRatings", null);
|
String url = "https://union.godserver.cn/api/union/reisaRating?key=" + setting.getString("key","");
|
||||||
if (json == null) {
|
Request request = new Request.Builder()
|
||||||
return new ArrayList<>();
|
.url(url)
|
||||||
|
.build();
|
||||||
|
new OkHttpClient().newCall(request).enqueue(new Callback() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
|
||||||
|
if (response.isSuccessful()) {
|
||||||
|
ReisaRating reisaRating = gson.fromJson(response.body().string(), ReisaRating.class);
|
||||||
|
|
||||||
|
All_chart allChart = reisaRating.getAll_chart();
|
||||||
|
String c = gson.toJson(allChart);
|
||||||
|
MaiUser maiUser = new Gson().fromJson(c, MaiUser.class);
|
||||||
|
if (maiUser==null) {
|
||||||
|
getActivity().runOnUiThread( () -> {
|
||||||
|
Toast.makeText(getActivity(), "请先绑定并且打开账号的Beta功能", Toast.LENGTH_SHORT).show();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
musicSongsRatings = maiUser.getUserMusicList();
|
||||||
|
doIt();
|
||||||
}
|
}
|
||||||
Type type = new TypeToken<List<UserMusicList>>() {}.getType();
|
|
||||||
return gson.fromJson(json, type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(@NonNull Call call, @NonNull IOException e) {
|
||||||
|
doIt();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
public void doIt() {
|
||||||
|
getActivity().runOnUiThread(() -> {
|
||||||
|
int totalMusicRatings = 0;
|
||||||
|
for (UserMusicList musicSongsRating : musicSongsRatings) {
|
||||||
|
musicRatings.addAll(musicSongsRating.getUserMusicDetailList());
|
||||||
|
for (MusicRating musicRating : musicSongsRating.getUserMusicDetailList()) {
|
||||||
|
totalMusicRatings += musicRating.getRating();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
loadID2Score();
|
||||||
|
|
||||||
|
// 假设这里填充了音乐评分数据
|
||||||
|
if (musicRatings.isEmpty()) {
|
||||||
|
MusicRating empty = new MusicRating();
|
||||||
|
empty.setMusicName("空-请去导入成绩");
|
||||||
|
musicRatings.add(empty);
|
||||||
|
}else {
|
||||||
|
Toolbar toolbar = ((MainActivity) requireActivity()).findViewById(R.id.toolbar);
|
||||||
|
toolbar.setTitle("歌曲成绩 - 总共" + musicRatings.size() + "首");
|
||||||
|
Toast.makeText(getContext(), "总共" + musicRatings.size() + "首,有效rating:" + totalMusicRatings, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
//刷新
|
||||||
|
dataanlysis();
|
||||||
|
adapter.notifyDataSetChanged();
|
||||||
|
});
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(@NonNull LayoutInflater inflater,
|
public View onCreateView(@NonNull LayoutInflater inflater,
|
||||||
ViewGroup container, Bundle savedInstanceState) {
|
ViewGroup container, Bundle savedInstanceState) {
|
||||||
MusicViewModel musicViewModel =
|
MusicViewModel musicViewModel =
|
||||||
new ViewModelProvider(this).get(MusicViewModel.class);
|
new ViewModelProvider(this).get(MusicViewModel.class);
|
||||||
SharedPreferences settingProperties = requireActivity().getSharedPreferences("setting", Context.MODE_PRIVATE);
|
SharedPreferences settingProperties = requireActivity().getSharedPreferences("setting", Context.MODE_PRIVATE);
|
||||||
|
User user = new Gson().fromJson(settingProperties.getString("userUnion", ""),User.class);
|
||||||
username = settingProperties.getString("paikaname", "");
|
username = settingProperties.getString("paikaname", "");
|
||||||
if (settingProperties.contains("userName")) {
|
if (user!=null) {
|
||||||
username = settingProperties.getString("userName", "");
|
iconId = user.getIconId();
|
||||||
|
username = user.getName();
|
||||||
SharedPreferences.Editor editorM = setting.edit();
|
SharedPreferences.Editor editorM = setting.edit();
|
||||||
editorM.putString("paikaname",username);
|
editorM.putString("paikaname",username);
|
||||||
editorM.commit();
|
editorM.commit();
|
||||||
}
|
}
|
||||||
|
|
||||||
iconId = settingProperties.getInt("iconId", 0);
|
|
||||||
|
|
||||||
binding = FragmentMusicBinding.inflate(inflater, container, false);
|
binding = FragmentMusicBinding.inflate(inflater, container, false);
|
||||||
View root = binding.getRoot();
|
View root = binding.getRoot();
|
||||||
|
|
||||||
@@ -310,60 +344,29 @@ public class MusicFragment extends Fragment {
|
|||||||
Glide.with(this)
|
Glide.with(this)
|
||||||
.load("https://assets2.lxns.net/maimai/icon/" + iconId +".png")
|
.load("https://assets2.lxns.net/maimai/icon/" + iconId +".png")
|
||||||
.into(user_avatar);
|
.into(user_avatar);
|
||||||
|
Log.d("iconId", String.valueOf(iconId));
|
||||||
TextView user_name = binding.username;
|
TextView user_name = binding.username;
|
||||||
user_name.setText(username);
|
user_name.setText(username);
|
||||||
if (!(iconId==0)){
|
// if (!(iconId==0)){
|
||||||
MaterialButton login = binding.login;
|
// MaterialButton login = binding.login;
|
||||||
login.setVisibility(View.GONE);
|
// login.setVisibility(View.GONE);
|
||||||
Intent loginIntent = new Intent(getActivity(), LinkQQBot.class);
|
// Intent loginIntent = new Intent(getActivity(), LinkQQBot.class);
|
||||||
login.setOnClickListener(view -> {
|
// login.setOnClickListener(view -> {
|
||||||
startActivity(loginIntent);
|
// startActivity(loginIntent);
|
||||||
});
|
// });
|
||||||
}else{
|
// }else{
|
||||||
|
//
|
||||||
|
// }
|
||||||
MaterialButton login = binding.login;
|
MaterialButton login = binding.login;
|
||||||
Intent loginIntent = new Intent(getActivity(), LinkQQBot.class);
|
Intent loginIntent = new Intent(getActivity(), LinkQQBot.class);
|
||||||
login.setOnClickListener(view -> {
|
login.setOnClickListener(view -> {
|
||||||
startActivity(loginIntent);
|
startActivity(loginIntent);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
if(musicRatings.size()>=50) {
|
if(musicRatings.size()>=50) {
|
||||||
dataanlysis();
|
dataanlysis();
|
||||||
}
|
}
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateScores() {
|
|
||||||
OkHttpClient client = new OkHttpClient();
|
|
||||||
String url = "https://mais.godserver.cn/api/qq/getAAALLL?qq=" + userId;
|
|
||||||
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), "");
|
|
||||||
Request request = new Request.Builder()
|
|
||||||
.url(url)
|
|
||||||
.post(requestBody)
|
|
||||||
.build();
|
|
||||||
client.newCall(request).enqueue(new okhttp3.Callback() {
|
|
||||||
@SuppressLint("NotifyDataSetChanged")
|
|
||||||
@Override
|
|
||||||
public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
|
|
||||||
if (response.isSuccessful()) {
|
|
||||||
String json = response.body().string();
|
|
||||||
MaiUser maiUser = new Gson().fromJson(json, MaiUser.class);
|
|
||||||
requireActivity().runOnUiThread(() -> {
|
|
||||||
musicRatings.clear();
|
|
||||||
for (UserMusicList musicSongsRating : maiUser.getUserMusicList()) {
|
|
||||||
musicRatings.addAll(musicSongsRating.getUserMusicDetailList());
|
|
||||||
}
|
|
||||||
adapter.notifyDataSetChanged();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onFailure(@NotNull Call call, @NotNull IOException e) {
|
|
||||||
// 处理失败情况
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
private void showMusicDetailDialog(MusicRating musicRating) {
|
private void showMusicDetailDialog(MusicRating musicRating) {
|
||||||
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext(), R.style.CustomDialogStyle);
|
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(requireContext(), R.style.CustomDialogStyle);
|
||||||
View dialogView = LayoutInflater.from(requireContext()).inflate(R.layout.music_dialog, null);
|
View dialogView = LayoutInflater.from(requireContext()).inflate(R.layout.music_dialog, null);
|
||||||
@@ -465,21 +468,10 @@ public class MusicFragment extends Fragment {
|
|||||||
switch (which) {
|
switch (which) {
|
||||||
case 0:
|
case 0:
|
||||||
// 更新数据
|
// 更新数据
|
||||||
if (userId.equals("未知")) {
|
|
||||||
new MaterialAlertDialogBuilder(requireContext(), R.style.CustomDialogStyle)
|
new MaterialAlertDialogBuilder(requireContext(), R.style.CustomDialogStyle)
|
||||||
.setMessage("请先绑定机器人")
|
.setMessage("请在群聊@Bot然后使用内置查分器并update即可")
|
||||||
.setPositiveButton("确定", (d, w) -> d.dismiss())
|
.setPositiveButton("确定", (d, w) -> d.dismiss())
|
||||||
.show();
|
.show();
|
||||||
} else {
|
|
||||||
new MaterialAlertDialogBuilder(requireContext(), R.style.CustomDialogStyle)
|
|
||||||
.setMessage("是否更新?")
|
|
||||||
.setPositiveButton("确定", (d, w) -> {
|
|
||||||
updateScores();
|
|
||||||
d.dismiss();
|
|
||||||
})
|
|
||||||
.setNegativeButton("cancel", (d, w) -> d.dismiss())
|
|
||||||
.show();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
// 分数排序
|
// 分数排序
|
||||||
@@ -704,8 +696,17 @@ public class MusicFragment extends Fragment {
|
|||||||
private void searchMusicRatings(String query) {
|
private void searchMusicRatings(String query) {
|
||||||
List<MusicRating> filteredList = new ArrayList<>();
|
List<MusicRating> filteredList = new ArrayList<>();
|
||||||
for (MusicRating musicRating : musicRatings) {
|
for (MusicRating musicRating : musicRatings) {
|
||||||
|
try {
|
||||||
if (musicRating.getMusicName().toLowerCase().contains(query.toLowerCase())) {
|
if (musicRating.getMusicName().toLowerCase().contains(query.toLowerCase())) {
|
||||||
filteredList.add(musicRating);
|
filteredList.add(musicRating);
|
||||||
|
}else
|
||||||
|
if ((musicRating.getMusicId() + "").contains(query.toLowerCase())) {
|
||||||
|
filteredList.add(musicRating);
|
||||||
|
}else if ((musicRating.getRomVersion() + "").contains(query.toLowerCase())) {
|
||||||
|
filteredList.add(musicRating);
|
||||||
|
}
|
||||||
|
}catch (Exception e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
musicRatings.clear();
|
musicRatings.clear();
|
||||||
@@ -858,8 +859,12 @@ public class MusicFragment extends Fragment {
|
|||||||
if (ids.contains(e.getId())) {
|
if (ids.contains(e.getId())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
;
|
double diff = 0.0;
|
||||||
double diff = Objects.requireNonNull(Objects.requireNonNull(songs.get(e.getId())).getDifficulties().get(e.getType()))[e.getLevel()].getLevel_value();
|
try {
|
||||||
|
diff = Objects.requireNonNull(Objects.requireNonNull(songs.get(e.getId())).getDifficulties().get(e.getType()))[e.getLevel()].getLevel_value();
|
||||||
|
}catch (Exception e2) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
double b = 99.0000;
|
double b = 99.0000;
|
||||||
for (int i = 0; i < 3; i++) {
|
for (int i = 0; i < 3; i++) {
|
||||||
b = b + 0.5 * (i - 1);
|
b = b + 0.5 * (i - 1);
|
||||||
|
|||||||
@@ -0,0 +1,128 @@
|
|||||||
|
package org.astral.findmaimaiultra.ui.widget;
|
||||||
|
|
||||||
|
import javax.crypto.Cipher;
|
||||||
|
import javax.crypto.spec.IvParameterSpec;
|
||||||
|
import javax.crypto.spec.SecretKeySpec;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
import java.security.SecureRandom;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.Base64;
|
||||||
|
|
||||||
|
public class WidgetFragment {
|
||||||
|
private static final String DATE_FORMAT = "yyyy-MM-dd-HH-mm";
|
||||||
|
private static final String ALGORITHM = "AES";
|
||||||
|
private static final String TRANSFORMATION = "AES/CBC/PKCS5Padding";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据当前时间动态生成密钥和IV并加密数据
|
||||||
|
*
|
||||||
|
* @param data 需要加密的原始数据
|
||||||
|
* @return 加密后的数据(Base64编码)
|
||||||
|
*/
|
||||||
|
public static String encrypt(String data) {
|
||||||
|
try {
|
||||||
|
// 获取当前时间
|
||||||
|
String timeString = getCurrentTimeKey();
|
||||||
|
|
||||||
|
// 基于时间生成动态密钥和IV
|
||||||
|
byte[] key = generateKey(timeString);
|
||||||
|
byte[] iv = generateIV(timeString);
|
||||||
|
|
||||||
|
// 执行加密
|
||||||
|
SecretKeySpec keySpec = new SecretKeySpec(key, ALGORITHM);
|
||||||
|
IvParameterSpec ivSpec = new IvParameterSpec(iv);
|
||||||
|
|
||||||
|
Cipher cipher = Cipher.getInstance(TRANSFORMATION);
|
||||||
|
cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);
|
||||||
|
|
||||||
|
byte[] encrypted = cipher.doFinal(data.getBytes(StandardCharsets.UTF_8));
|
||||||
|
return Base64.getEncoder().encodeToString(encrypted);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("加密失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 解密数据(同样基于当前时间生成密钥和IV)
|
||||||
|
*
|
||||||
|
* @param encryptedData 加密的数据(Base64编码)
|
||||||
|
* @return 解密后的原始数据
|
||||||
|
*/
|
||||||
|
public static String decrypt(String encryptedData) {
|
||||||
|
try {
|
||||||
|
// 获取当前时间
|
||||||
|
String timeString = getCurrentTimeKey();
|
||||||
|
|
||||||
|
// 基于时间生成动态密钥和IV
|
||||||
|
byte[] key = generateKey(timeString);
|
||||||
|
byte[] iv = generateIV(timeString);
|
||||||
|
|
||||||
|
// 执行解密
|
||||||
|
SecretKeySpec keySpec = new SecretKeySpec(key, ALGORITHM);
|
||||||
|
IvParameterSpec ivSpec = new IvParameterSpec(iv);
|
||||||
|
|
||||||
|
Cipher cipher = Cipher.getInstance(TRANSFORMATION);
|
||||||
|
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
|
||||||
|
|
||||||
|
byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(encryptedData));
|
||||||
|
return new String(decrypted, StandardCharsets.UTF_8);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("解密失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前时间格式化字符串
|
||||||
|
*
|
||||||
|
* @return 格式为 yyyy-MM-dd-HH-mm 的时间字符串
|
||||||
|
*/
|
||||||
|
private static String getCurrentTimeKey() {
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT);
|
||||||
|
return now.format(formatter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基于时间字符串生成AES密钥(32字节)
|
||||||
|
*
|
||||||
|
* @param timeString 时间字符串
|
||||||
|
* @return 32字节的AES密钥
|
||||||
|
*/
|
||||||
|
private static byte[] generateKey(String timeString) {
|
||||||
|
try {
|
||||||
|
// 添加随机盐值增强安全性
|
||||||
|
String saltedString = timeString + "SALT_KEY_" + timeString.hashCode();
|
||||||
|
|
||||||
|
// 使用SHA-256生成固定长度的哈希值
|
||||||
|
MessageDigest digest = MessageDigest.getInstance("SHA-256");
|
||||||
|
byte[] hash = digest.digest(saltedString.getBytes(StandardCharsets.UTF_8));
|
||||||
|
|
||||||
|
return hash; // SHA-256生成的哈希值正好是32字节
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("密钥生成失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基于时间字符串生成IV(16字节)
|
||||||
|
*
|
||||||
|
* @param timeString 时间字符串
|
||||||
|
* @return 16字节的IV
|
||||||
|
*/
|
||||||
|
private static byte[] generateIV(String timeString) {
|
||||||
|
try {
|
||||||
|
// 添加不同的盐值
|
||||||
|
String saltedString = "IV_SALT_" + timeString + "_" + (timeString.hashCode() * 31);
|
||||||
|
|
||||||
|
// 使用MD5生成固定长度的哈希值(16字节)
|
||||||
|
MessageDigest digest = MessageDigest.getInstance("MD5");
|
||||||
|
byte[] hash = digest.digest(saltedString.getBytes(StandardCharsets.UTF_8));
|
||||||
|
|
||||||
|
return hash; // MD5生成的哈希值正好是16字节
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("IV生成失败", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,8 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:padding="24dp">
|
android:padding="24dp">
|
||||||
|
|
||||||
|
<!-- 输入区域 -->
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -21,35 +23,154 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:hint="Union绑定uuid"
|
android:hint="Union绑定uuid"
|
||||||
android:focusable="false"
|
|
||||||
android:focusableInTouchMode="false"
|
|
||||||
android:clickable="false"
|
|
||||||
android:longClickable="false"
|
|
||||||
android:inputType="textPersonName"/>
|
android:inputType="textPersonName"/>
|
||||||
|
|
||||||
</com.google.android.material.textfield.TextInputLayout>
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<!-- 列表展示区域 -->
|
||||||
<com.google.android.material.button.MaterialButton android:layout_width="match_parent"
|
<TextView
|
||||||
android:text="绑定"
|
|
||||||
android:textColor="@android:color/white"
|
|
||||||
|
|
||||||
android:id="@+id/bangding"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
</com.google.android.material.button.MaterialButton>
|
|
||||||
<com.google.android.material.button.MaterialButton
|
|
||||||
android:id="@+id/test"
|
|
||||||
android:textColor="@android:color/white"
|
|
||||||
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="ping"/>
|
android:text="数据列表"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingBottom="8dp" />
|
||||||
<TableLayout
|
<TableLayout
|
||||||
android:id="@+id/tableLayout"
|
android:id="@+id/tableLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:stretchColumns="*">
|
android:stretchColumns="*">
|
||||||
|
<!-- 列表项将在这里动态添加 -->
|
||||||
</TableLayout>
|
</TableLayout>
|
||||||
|
<TableLayout
|
||||||
|
android:id="@+id/tableLayout2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:stretchColumns="*">
|
||||||
|
<!-- 列表项将在这里动态添加 -->
|
||||||
|
</TableLayout>
|
||||||
|
<TableLayout
|
||||||
|
android:id="@+id/yue"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:stretchColumns="*">
|
||||||
|
<!-- 列表项将在这里动态添加 -->
|
||||||
|
</TableLayout>
|
||||||
|
<TableLayout
|
||||||
|
android:id="@+id/ticketTableLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:stretchColumns="*">
|
||||||
|
<!-- 列表项将在这里动态添加 -->
|
||||||
|
</TableLayout>
|
||||||
|
|
||||||
|
<!-- 功能按钮区域 -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="功能按钮"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingBottom="8dp" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/bangding"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="绑定"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/ping"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="ping"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
|
||||||
|
<!-- 可以继续添加更多功能按钮 -->
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/ticket2"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:text="获取Ticket2"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/ticket3"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
|
||||||
|
android:text="获取Ticket3"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/ticket5"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
|
||||||
|
android:text="获取Ticket5"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/ticket6"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
|
||||||
|
android:text="获取Ticket6"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/upsertMusic"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:text="传分"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/mile"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:text="获取mile"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/unlockMusic"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:text="解锁歌曲"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/unlockItem"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:text="解锁收藏品"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
<com.google.android.material.button.MaterialButton
|
||||||
|
android:id="@+id/logout"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="强制下机"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:layout_marginBottom="8dp" />
|
||||||
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|||||||
23
app/src/main/res/layout/dialog_loading.xml
Normal file
23
app/src/main/res/layout/dialog_loading.xml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<?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="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="24dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:background="?android:attr/windowBackground">
|
||||||
|
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="16dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="加载中..."
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textColor="?android:attr/textColorPrimary" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
25
app/src/main/res/layout/dialog_mile_input.xml
Normal file
25
app/src/main/res/layout/dialog_mile_input.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?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="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:background="?android:attr/windowBackground">
|
||||||
|
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:id="@+id/mileInputLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="请输入里程数">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/mileEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="number"
|
||||||
|
android:maxLines="1" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
72
app/src/main/res/layout/dialog_unlock_music.xml
Normal file
72
app/src/main/res/layout/dialog_unlock_music.xml
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?android:attr/windowBackground">
|
||||||
|
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<!-- 歌曲ID输入 -->
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="歌曲ID">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/songIdEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="number" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<!-- 歌曲信息展示区域 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/songInfoLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_marginTop="16dp">
|
||||||
|
|
||||||
|
<!-- 歌曲图片和名称水平排列 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_marginBottom="8dp">
|
||||||
|
|
||||||
|
<!-- 歌曲图片 -->
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/songImageView"
|
||||||
|
android:layout_width="80dp"
|
||||||
|
android:layout_height="80dp"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
android:layout_marginEnd="16dp" />
|
||||||
|
|
||||||
|
<!-- 歌曲名称 -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/songNameTextView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:gravity="start"
|
||||||
|
android:maxLines="3"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textColor="?android:attr/textColorPrimary" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
160
app/src/main/res/layout/dialog_upsert_music.xml
Normal file
160
app/src/main/res/layout/dialog_upsert_music.xml
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:background="?android:attr/windowBackground">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:padding="16dp">
|
||||||
|
|
||||||
|
<!-- 歌曲ID输入 -->
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="歌曲ID">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/songIdEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="number"
|
||||||
|
android:textColor="?android:attr/textColorPrimary"
|
||||||
|
android:textColorHint="?android:attr/textColorSecondary" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<!-- 歌曲信息展示区域 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/songInfoLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_marginTop="16dp">
|
||||||
|
|
||||||
|
<!-- 歌曲图片和名称水平排列 -->
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_marginBottom="8dp">
|
||||||
|
|
||||||
|
<!-- 歌曲图片 -->
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/songImageView"
|
||||||
|
android:layout_width="80dp"
|
||||||
|
android:layout_height="80dp"
|
||||||
|
android:scaleType="centerCrop"
|
||||||
|
android:layout_marginEnd="16dp" />
|
||||||
|
|
||||||
|
<!-- 歌曲名称 -->
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/songNameTextView"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:gravity="start"
|
||||||
|
android:maxLines="3"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:textColor="?android:attr/textColorPrimary" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 难度列表 -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="选择难度:"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="4dp"
|
||||||
|
android:textColor="?android:attr/textColorPrimary" />
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/difficultySpinner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:theme="@style/SpinnerStyle" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<!-- 完成度输入 -->
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="完成度 (例如: 1005000)"
|
||||||
|
android:layout_marginTop="16dp">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/achievementEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:inputType="number"
|
||||||
|
android:textColor="?android:attr/textColorPrimary"
|
||||||
|
android:textColorHint="?android:attr/textColorSecondary" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
<!-- Combo状态 -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Combo状态:"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="4dp"
|
||||||
|
android:textColor="?android:attr/textColorPrimary" />
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/comboStatusSpinner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:theme="@style/SpinnerStyle" />
|
||||||
|
|
||||||
|
<!-- Sync状态 -->
|
||||||
|
<TextView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="Sync状态:"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="bold"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="4dp"
|
||||||
|
android:textColor="?android:attr/textColorPrimary" />
|
||||||
|
|
||||||
|
<Spinner
|
||||||
|
android:id="@+id/syncStatusSpinner"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:theme="@style/SpinnerStyle" />
|
||||||
|
|
||||||
|
<!-- DX分数 -->
|
||||||
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:hint="DX分数"
|
||||||
|
android:layout_marginTop="8dp">
|
||||||
|
|
||||||
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
android:id="@+id/dxScoreEditText"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="?android:attr/textColorPrimary"
|
||||||
|
android:textColorHint="?android:attr/textColorSecondary" />
|
||||||
|
|
||||||
|
</com.google.android.material.textfield.TextInputLayout>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</ScrollView>
|
||||||
@@ -37,12 +37,12 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent">
|
app:layout_constraintStart_toStartOf="parent">
|
||||||
|
|
||||||
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
<androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
|
|
||||||
android:id="@+id/bottom_sheet"
|
android:id="@+id/bottom_sheet"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:minHeight="100dp"
|
android:minHeight="80dp"
|
||||||
|
android:maxHeight="450dp"
|
||||||
android:background="@android:color/white"
|
android:background="@android:color/white"
|
||||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
<com.google.android.material.button.MaterialButton android:layout_width="match_parent"
|
<com.google.android.material.button.MaterialButton android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/login"
|
android:id="@+id/login"
|
||||||
android:text="登录"
|
android:text="账号相关"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:backgroundTint="@color/colorPrimary"
|
android:backgroundTint="@color/colorPrimary"
|
||||||
android:layout_marginBottom="16dp"
|
android:layout_marginBottom="16dp"
|
||||||
|
|||||||
16
app/src/main/res/layout/time_picker_dialog.xml
Normal file
16
app/src/main/res/layout/time_picker_dialog.xml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<?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:orientation="vertical"
|
||||||
|
android:padding="16dp"
|
||||||
|
android:background="?android:attr/windowBackground">
|
||||||
|
|
||||||
|
|
||||||
|
<TimePicker
|
||||||
|
android:id="@+id/timePicker"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:timePickerMode="spinner" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@@ -5,9 +5,20 @@
|
|||||||
<item name="android:background">@drawable/border</item>
|
<item name="android:background">@drawable/border</item>
|
||||||
</style>
|
</style>
|
||||||
<style name="CustomDialogStyle" parent="Theme.MaterialComponents.Light.Dialog">
|
<style name="CustomDialogStyle" parent="Theme.MaterialComponents.Light.Dialog">
|
||||||
|
<item name="android:windowBackground">?android:attr/windowBackground</item>
|
||||||
<item name="shapeAppearance">@style/ShapeAppearance.App.Dialog</item>
|
<item name="shapeAppearance">@style/ShapeAppearance.App.Dialog</item>
|
||||||
</style>
|
</style>
|
||||||
|
<style name="SpinnerStyle" parent="Widget.AppCompat.Spinner"> <item name="android:textColor">?android:attr/textColorPrimary</item>
|
||||||
|
<item name="android:spinnerItemStyle">@style/SpinnerItemStyle</item>
|
||||||
|
<item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItemStyle</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="SpinnerItemStyle" parent="Widget.AppCompat.TextView.SpinnerItem"> <item name="android:textColor">?android:attr/textColorPrimary</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="SpinnerDropDownItemStyle" parent="Widget.AppCompat.DropDownItem.Spinner"> <item name="android:textColor">?android:attr/textColorPrimary</item>
|
||||||
|
<item name="android:background">?android:attr/colorBackground</item>
|
||||||
|
</style>
|
||||||
<style name="ShapeAppearance.App.Dialog" parent="ShapeAppearance.MaterialComponents.MediumComponent">
|
<style name="ShapeAppearance.App.Dialog" parent="ShapeAppearance.MaterialComponents.MediumComponent">
|
||||||
<item name="cornerFamily">rounded</item>
|
<item name="cornerFamily">rounded</item>
|
||||||
<item name="cornerSize">16dp</item>
|
<item name="cornerSize">16dp</item>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.android.application' version '8.0.0' apply false
|
id 'com.android.application' version '8.8.0' apply false
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user