Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
dec772a
解决本地编译问题
bgylde Dec 19, 2024
291b91f
初步实现exoplayer播放器替代
bgylde Dec 20, 2024
9c7fa6b
优化代码结构,解决虎牙直播阶段性请求的问题
bgylde Dec 20, 2024
9c9f5d9
修改播放页面ui
bgylde Dec 21, 2024
3b947f4
支持ijkplayer,同时解决斗鱼域名有下划线导致exoplayer请求失败的问题
bgylde Dec 21, 2024
f52bc62
优化代码结构,支持双播放器
bgylde Dec 21, 2024
f2d8a6a
添加播放器可选配置
bgylde Dec 22, 2024
71311a7
添加url更新逻辑,优化ui
bgylde Dec 22, 2024
8daa1be
解决exoplayer播放返回302无法跳转的问题
bgylde Dec 24, 2024
7e23c4f
修改签名信息,去掉读取外部存储的权限
bgylde Dec 24, 2024
04affc5
使用源码导入弹幕库的方式,方便修改
bgylde Dec 25, 2024
91f10ee
更换弹幕库,更换实现方式,优化弹幕性能
bgylde Dec 25, 2024
a51b54c
更换弹幕库,优化弹幕性能
bgylde Dec 26, 2024
a47e904
修改页面控制view
bgylde Dec 26, 2024
ab86b25
恢复弹幕库到原始实现方式,后续优化性能
bgylde Dec 26, 2024
74334a9
设置弹幕描边
bgylde Dec 26, 2024
337c2e5
再次替换弹幕库,优化tv播放时的卡顿现象
bgylde Dec 28, 2024
b29cbf2
优化界面
bgylde Dec 28, 2024
1eab6d5
添加弹幕控制逻辑
bgylde Dec 29, 2024
9004362
恢复包名
bgylde Dec 31, 2024
dd0de96
优化代码结构,解决release混淆错误的问题
bgylde Dec 31, 2024
c9924ba
fix(虎牙断流):make wup ua dynamic. Fixes #594
SlotSun Jan 21, 2025
d2022c8
Merge branch 'pr/bgylde/581' into dev
xiaoyaocz Feb 21, 2025
887c4a0
更新Flutter版本至3.27
xiaoyaocz Feb 21, 2025
14db3eb
更新部分包版本
xiaoyaocz Feb 21, 2025
5de373f
消除警告
xiaoyaocz Feb 25, 2025
d50cf2a
remove the greenish yellow focus border
ZhangTianrong Feb 25, 2025
5cc0dab
更新Android项目
xiaoyaocz Feb 26, 2025
c6bb485
Merge branch 'pr/ZhangTianrong/611' into dev
xiaoyaocz Feb 26, 2025
d81eb92
添加webdav同步功能
SlotSun Mar 9, 2025
c70cf65
fix:shieldList未添加到Hive Fixes #619
SlotSun Mar 11, 2025
b03939b
修复未登录时哔哩哔哩分类打开失败 #630
xiaoyaocz Mar 25, 2025
46f17d5
修复哔哩哔哩分类打开失败 #630
xiaoyaocz Apr 7, 2025
dedf367
Merge branch 'dev' into pr/SlotSun/617
xiaoyaocz Apr 7, 2025
ab37fba
调整WebDAV同步UI
xiaoyaocz Apr 7, 2025
0e339a8
Merge branch 'pr/SlotSun/620' into dev
xiaoyaocz Apr 7, 2025
e2f34c2
Release 1.7.7 / TV 1.2.4
xiaoyaocz Apr 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/publish_app_dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ jobs:
- name: Flutter action
uses: subosito/flutter-action@v2
with:
flutter-version: '3.22.x'
flutter-version: '3.27.x'
cache: true

# 打开MAC Desktop支持
Expand Down Expand Up @@ -166,7 +166,7 @@ jobs:
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.22.x"
flutter-version: "3.27.x"
cache: true
# 安装依赖
- name: Update apt-get
Expand Down Expand Up @@ -215,7 +215,7 @@ jobs:
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.22.x"
flutter-version: "3.27.x"
cache: true
- name: Enable Flutter Desktop
run: flutter config --enable-windows-desktop
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish_app_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Flutter action
uses: subosito/flutter-action@v2
with:
flutter-version: '3.22.x'
flutter-version: '3.27.x'
cache: true

# 打开MAC Desktop支持
Expand Down Expand Up @@ -159,7 +159,7 @@ jobs:
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.22.x"
flutter-version: "3.27.x"
cache: true
# 安装依赖
- name: Update apt-get
Expand Down Expand Up @@ -230,7 +230,7 @@ jobs:
- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.22.x"
flutter-version: "3.27.x"
cache: true
- name: Enable Flutter Desktop
run: flutter config --enable-windows-desktop
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish_tv_app_release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Flutter action
uses: subosito/flutter-action@v2
with:
flutter-version: '3.22.x'
flutter-version: '3.27.x'
cache: true

#更新Flutter的packages
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
simple_live_app/.vscode/settings.json
simple_live_tv_app/.vscode/settings.json
6 changes: 3 additions & 3 deletions assets/app_version.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"version": "1.7.6",
"version_num": 10706,
"version_desc": "- 修复虎牙播放中断 #585",
"version": "1.7.7",
"version_num": 10707,
"version_desc": "- 1. 修复哔哩哔哩分类加载失败 #630\n- 2. 支持WebDAV同步 #617 @SlotSun\n- 3. 修复屏蔽词列表同步失败 #619 @SlotSun\n- 4. 修复虎牙断流 #585 @SlotSun",
"prerelease":false,
"download_url": "https://github.com/xiaoyaocz/dart_simple_live/releases"
}
6 changes: 3 additions & 3 deletions assets/tv_app_version.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"version": "1.2.3",
"version_num": 10203,
"version_desc": "- 修复虎牙播放中断 #585",
"version": "1.2.4",
"version_num": 10204,
"version_desc": "- 修复哔哩哔哩分类加载失败\n- 支持原生播放器,播放更流畅 @bgylde #581",
"prerelease":true,
"download_url": "https://github.com/xiaoyaocz/dart_simple_live/releases"
}
3 changes: 3 additions & 0 deletions simple_live_app/.fvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"flutter": "3.27.4"
}
16 changes: 8 additions & 8 deletions simple_live_app/.metadata
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
# This file should be version controlled.
# This file should be version controlled and should not be manually edited.

version:
revision: f468f3366c26a5092eb964a230ce7892fda8f2f8
channel: stable
revision: "d8a9f9a52e5af486f80d932e838ee93861ffd863"
channel: "stable"

project_type: app

# Tracks metadata for the flutter migrate command
migration:
platforms:
- platform: root
create_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8
base_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8
- platform: linux
create_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8
base_revision: f468f3366c26a5092eb964a230ce7892fda8f2f8
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
- platform: android
create_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863
base_revision: d8a9f9a52e5af486f80d932e838ee93861ffd863

# User provided section

Expand Down
2 changes: 1 addition & 1 deletion simple_live_app/android/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ gradle-wrapper.jar
GeneratedPluginRegistrant.java

# Remember to never publicly share your keystore.
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
57 changes: 15 additions & 42 deletions simple_live_app/android/app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,64 +1,40 @@
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}


def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}


def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
compileSdkVersion 34
ndkVersion flutter.ndkVersion
namespace = "com.xycz.simple_live"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

kotlinOptions {
jvmTarget = '1.8'
}

sourceSets {
main.java.srcDirs += 'src/main/kotlin'
jvmTarget = JavaVersion.VERSION_1_8
}

defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.xycz.simple_live"
applicationId = "com.xycz.simple_live"
// You can update the following values to match your application needs.
// For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration.
minSdkVersion 21
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
multiDexEnabled true
targetSdkVersion flutter.targetSdkVersion
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}

packagingOptions {
pickFirst 'lib/**/libc++_shared.so'
}
Expand All @@ -72,6 +48,7 @@ android {
v2SigningEnabled true
}
}

buildTypes {
buildTypes {
debug {
Expand All @@ -93,9 +70,5 @@ android {
}

flutter {
source '../..'
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10"
source = "../.."
}
3 changes: 1 addition & 2 deletions simple_live_app/android/app/src/debug/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xycz.simple_live">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
Expand Down
17 changes: 14 additions & 3 deletions simple_live_app/android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xycz.simple_live">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<application
<application
android:label="Simple Live"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
Expand All @@ -16,6 +15,7 @@
android:supportsPictureInPicture="true"
android:exported="true"
android:launchMode="singleTop"
android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
Expand All @@ -39,4 +39,15 @@
android:name="flutterEmbedding"
android:value="2" />
</application>
<!-- Required to query activities that can process text, see:
https://developer.android.com/training/package-visibility and
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.

In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
<queries>
<intent>
<action android:name="android.intent.action.PROCESS_TEXT"/>
<data android:mimeType="text/plain"/>
</intent>
</queries>
</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,4 @@ package com.xycz.simple_live

import io.flutter.embedding.android.FlutterActivity

class MainActivity: FlutterActivity() {
}
class MainActivity: FlutterActivity()
3 changes: 1 addition & 2 deletions simple_live_app/android/app/src/profile/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xycz.simple_live">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
Expand Down
4 changes: 2 additions & 2 deletions simple_live_app/android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ allprojects {
}
}

rootProject.buildDir = '../build'
rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
project.evaluationDependsOn(":app")
}

tasks.register("clean", Delete) {
Expand Down
2 changes: 1 addition & 1 deletion simple_live_app/android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx1536M
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
6 changes: 3 additions & 3 deletions simple_live_app/android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ pluginManagement {

plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.3.0" apply false
id "org.jetbrains.kotlin.android" version "1.7.10" apply false
id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}

include ":app"
include ":app"
4 changes: 2 additions & 2 deletions simple_live_app/lib/app/app_style.dart
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ class AppStyle {
// labelColor: AppColors.darkColorScheme.primary,
// unselectedLabelColor: Colors.white70,
// indicator: RectangularIndicator(
// color: Colors.white.withOpacity(.2),
// color: Colors.white.withAlpha(50),
// topLeftRadius: 24,
// bottomLeftRadius: 24,
// topRightRadius: 24,
Expand Down Expand Up @@ -205,6 +205,6 @@ class AppStyle {
thickness: 1,
indent: 16,
endIndent: 16,
color: Colors.grey.withOpacity(.1),
color: Colors.grey.withAlpha(25),
);
}
2 changes: 1 addition & 1 deletion simple_live_app/lib/app/log.dart
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class Log {
lineLength: 120,
colors: true,
printEmojis: true,
printTime: false,
dateTimeFormat: DateTimeFormat.none,
),
);

Expand Down
27 changes: 26 additions & 1 deletion simple_live_app/lib/app/utils.dart
Original file line number Diff line number Diff line change
Expand Up @@ -167,7 +167,7 @@ class Utils {
),
Divider(
height: 1,
color: Colors.grey.withOpacity(.1),
color: Colors.grey.withAlpha(25),
),
Expanded(
child: child,
Expand Down Expand Up @@ -303,6 +303,31 @@ class Utils {
return result;
}

/// 多段指引用户内容的弹窗
/// - `content` 内容:可滚动
/// - `title` 顶部弹窗标题
/// - `actions` 底部按钮
static Future<T?> showInformationHelpDialog<T>({
required List<Widget> content,
Widget? title,
List<Widget>? actions,
}) async {
var result = await Get.dialog(
AlertDialog(
title: title ?? const Text("帮助"),
scrollable: true,
content: SingleChildScrollView(child: ListBody(children: content)),
actions: actions??[
TextButton(
onPressed: Get.back,
child: const Text("确定"),
),
],
),
);
return result;
}

static Future showStatement() async {
var text = await rootBundle.loadString("assets/statement.txt");

Expand Down
Loading