启动图,签名更换
@@ -7,9 +7,12 @@ plugins {
|
||||
apply plugin: 'top.niunaijun.blackobfuscator'
|
||||
apply plugin: 'walle'
|
||||
|
||||
def bundledReleaseKeystore = file('../keystore/nut.jks')
|
||||
def legacyBundledReleaseKeystore = file('../keystore/nut.jks.old')
|
||||
def resolvedReleaseKeystore = bundledReleaseKeystore.exists() ? bundledReleaseKeystore : legacyBundledReleaseKeystore
|
||||
// 本产品独立签名:jks 与密码放在 android/key.properties(已 gitignore,勿提交),与其他产品不共用
|
||||
def keystoreProperties = new Properties()
|
||||
def keystorePropertiesFile = rootProject.file('key.properties')
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
keystorePropertiesFile.withInputStream { keystoreProperties.load(it) }
|
||||
}
|
||||
|
||||
android {
|
||||
namespace "com.xvproject"
|
||||
@@ -31,7 +34,7 @@ android {
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.jydj.tzzoer"
|
||||
applicationId "com.hgmj.manju"
|
||||
minSdk = 24
|
||||
targetSdk = 36
|
||||
versionCode = 1
|
||||
@@ -40,11 +43,11 @@ android {
|
||||
|
||||
signingConfigs {
|
||||
release {
|
||||
storeFile resolvedReleaseKeystore
|
||||
storePassword 'jiahua123456'
|
||||
storeFile keystoreProperties['storeFile'] ? rootProject.file(keystoreProperties['storeFile']) : null
|
||||
storePassword keystoreProperties['storePassword']
|
||||
storeType 'jks'
|
||||
keyAlias 'nut'
|
||||
keyPassword 'jiahua123456'
|
||||
keyAlias keystoreProperties['keyAlias']
|
||||
keyPassword keystoreProperties['keyPassword']
|
||||
v1SigningEnabled false
|
||||
v2SigningEnabled true
|
||||
}
|
||||
@@ -81,7 +84,7 @@ android {
|
||||
println "outputFileDir= ${outputFileDir}"
|
||||
def abi = filters.find { it.filterType.toString() == "ABI" }?.identifier
|
||||
def abiSuffix = (variant.outputs.size() > 1 && abi) ? "_${abi}" : ""
|
||||
def path = "91dj" + '_release' + "_" + variant.versionName + abiSuffix + "_" + createTime + ".apk"
|
||||
def path = "hgmj" + '_release' + "_" + variant.versionName + abiSuffix + "_" + createTime + ".apk"
|
||||
println("path= " + path)
|
||||
outputFileName = path
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 170 KiB |
|
Before Width: | Height: | Size: 448 KiB After Width: | Height: | Size: 303 KiB |
|
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 838 KiB |
@@ -20,7 +20,7 @@ class LineErrorDialog extends StatelessWidget {
|
||||
|
||||
const LineErrorDialog({super.key, this.callback});
|
||||
|
||||
String get officialUrl => '91dj1.net';
|
||||
String get officialUrl => 'huangguomj.net';
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
|
||||
@@ -31,8 +31,8 @@ class Address {
|
||||
/// 图片加载地址
|
||||
static String? baseImagePath;
|
||||
|
||||
/// 落地页地址 默认地址
|
||||
static String groundUrl = '';
|
||||
/// 落地页地址(永久域名),后台下发 GUIDE 时覆盖
|
||||
static String groundUrl = 'https://huangguomj.net';
|
||||
/// 备用落地页地址 默认地址
|
||||
static String backUpURl = '';
|
||||
/// tg群里地址 默认地址
|
||||
|
||||
@@ -17,7 +17,8 @@ class AcgGameRecommendPage extends StatefulWidget {
|
||||
State<AcgGameRecommendPage> createState() => _AcgGameRecommendPageState();
|
||||
}
|
||||
|
||||
class _AcgGameRecommendPageState extends State<AcgGameRecommendPage> with UniqueTagMixin {
|
||||
class _AcgGameRecommendPageState extends State<AcgGameRecommendPage>
|
||||
with UniqueTagMixin {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return GetBuilder<AcgGameRecommendLogic>(
|
||||
|
||||
@@ -21,10 +21,8 @@ import '../web_page/h5_page.dart';
|
||||
import 'collec_history_buy/col_his_buy_page.dart';
|
||||
import 'identity/mine_identity_page.dart';
|
||||
import 'message/message_center_page.dart';
|
||||
import 'mine_drive/mine_drive_page.dart';
|
||||
import 'mine_following/mine_following_view.dart';
|
||||
import 'mine_post/mine_publish_main_page.dart';
|
||||
import 'mine_setting/mine_code_page.dart';
|
||||
import 'mine_setting/mine_password_logic.dart';
|
||||
import 'mine_setting/mine_password_page.dart';
|
||||
import 'mine_setting/mine_setting_page.dart';
|
||||
@@ -48,13 +46,10 @@ class MineMainLogic extends GetxController with GetTickerProviderStateMixin {
|
||||
|
||||
/// 常用功能: (标题, 图标, 点击事件)
|
||||
List<(String, String, void Function())> get commonlyUsedFunction => [
|
||||
("创作中心", 'mine_menu_1.png'.mineImgPath, () => Get.to(MinePublishPostPage(), preventDuplicates: false)),
|
||||
("意见反馈", 'mine_menu_2.png'.mineImgPath, () => Get.to(() => const MineFeedbackPage())),
|
||||
("我的下载", 'mine_follow.png'.mineImgPath, () => Get.to(() => VideoCachePage())),
|
||||
("我的关注", 'mine_offical.png'.mineImgPath, () => Get.to(() => MineFollowingPage())),
|
||||
("分享邀请", 'mine_menu_5.png'.mineImgPath, () => Get.to(() => MineSharePage())),
|
||||
("领取兑换", 'mine_menu_6.png'.mineImgPath, () => Get.to(() => MineExchangeCodePage(type: 1))),
|
||||
("官方社群", 'mine_menu_7.png'.mineImgPath, () => Get.to(() => MineDrivePage())),
|
||||
("应用推荐", 'mine_menu_8.png'.mineImgPath, () => Get.to(() => const WelfareHomePage(index: 1), preventDuplicates: false)),
|
||||
("账号凭证", 'mine_menu_9.png'.mineImgPath, () => Get.dialog(MineAccountIdentityPage())),
|
||||
("锁屏密码", 'mine_menu_10.png'.mineImgPath, _toggleLockPassword),
|
||||
|
||||
@@ -82,7 +82,8 @@ class DeviceInfoService {
|
||||
/// note_this:不要修改这个值
|
||||
static const iosBundleId = "yinse_opera";
|
||||
static const naticeChannel = 'com.yinse/device'; //原生通道(设备/视频/编解码信息)
|
||||
static const requestChannel = 'com.yinse/request'; //原生系统桥(现只剩换启动图标 changeIcon)
|
||||
static const requestChannel =
|
||||
'com.yinse/request'; //原生系统桥(现只剩换启动图标 changeIcon)
|
||||
|
||||
/// 外部调用入口
|
||||
static Future<void> init() async {
|
||||
@@ -122,7 +123,9 @@ class DeviceInfoService {
|
||||
/// 拼装 UA。[deviceId] 可覆盖默认 deviceId
|
||||
static String genUserAgent({String? deviceId}) {
|
||||
final Map<String, String?> params = {
|
||||
"DevID": (deviceId == null || deviceId.isEmpty) ? DeviceInfoService.deviceId : deviceId,
|
||||
"DevID": (deviceId == null || deviceId.isEmpty)
|
||||
? DeviceInfoService.deviceId
|
||||
: deviceId,
|
||||
"DevType": DeviceInfoService.devType,
|
||||
"SysType": Platform.operatingSystem,
|
||||
"Ver": Config.innerVersion,
|
||||
@@ -133,7 +136,8 @@ class DeviceInfoService {
|
||||
'device_model': DeviceInfoService.model,
|
||||
};
|
||||
params.removeWhere((key, value) => value == null || value.isEmpty);
|
||||
final ua = Uri.encodeComponent(params.entries.map((e) => "${e.key}=${e.value}").join(";"));
|
||||
final ua = Uri.encodeComponent(
|
||||
params.entries.map((e) => "${e.key}=${e.value}").join(";"));
|
||||
return ua;
|
||||
}
|
||||
|
||||
@@ -147,12 +151,14 @@ class DeviceInfoService {
|
||||
return oldUa;
|
||||
}
|
||||
final newUa = genUserAgent(deviceId: deviceId);
|
||||
if (TextUtil.isNotEmpty(newUa)) lightKV.setString(StoreKeys.UA_CACHE, newUa);
|
||||
if (TextUtil.isNotEmpty(newUa))
|
||||
lightKV.setString(StoreKeys.UA_CACHE, newUa);
|
||||
return newUa;
|
||||
}
|
||||
|
||||
/// 清除 UA 缓存
|
||||
static Future clearCachedUserAgent() => lightKV.setString(StoreKeys.UA_CACHE, null);
|
||||
static Future clearCachedUserAgent() =>
|
||||
lightKV.setString(StoreKeys.UA_CACHE, null);
|
||||
|
||||
/// 从剪切板 json 里取推广 tid,取不到返回空串
|
||||
static Future<String> fetchTraceId() async {
|
||||
@@ -223,7 +229,8 @@ class DeviceInfoService {
|
||||
}
|
||||
|
||||
/// Android 回写 SP + 文件
|
||||
static Future<String> _persistAndroid(SharedPreferences prefs, String id) async {
|
||||
static Future<String> _persistAndroid(
|
||||
SharedPreferences prefs, String id) async {
|
||||
await prefs.setString(StoreKeys.DEVICE_ID, id);
|
||||
await _writeIdFile(id);
|
||||
return id;
|
||||
@@ -257,7 +264,7 @@ class DeviceInfoService {
|
||||
}
|
||||
if (_isInvalidId(raw)) raw = const Uuid().v4();
|
||||
// 业务规则:91jd_ 前缀,去空格,限制 50 字符(日志系统约束)
|
||||
return '91dj_${raw.replaceAll(' ', '')}'.limit(50);
|
||||
return 'hgmj_${raw.replaceAll(' ', '')}'.limit(50);
|
||||
}
|
||||
|
||||
/// 脏值检测:空 / 太短 / 全 0 / 已知脏值
|
||||
@@ -306,7 +313,9 @@ class DeviceInfoService {
|
||||
static Future<String> getChannel() async {
|
||||
if (!Platform.isAndroid) return "";
|
||||
try {
|
||||
return await const MethodChannel(naticeChannel).invokeMethod("getChannel") ?? "";
|
||||
return await const MethodChannel(naticeChannel)
|
||||
.invokeMethod("getChannel") ??
|
||||
"";
|
||||
} on PlatformException {
|
||||
return "";
|
||||
}
|
||||
|
||||