Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 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
13e1e17
Fix(虎牙断流):increase ua version. Fixes #585
SlotSun Jan 13, 2025
b72ece1
TV修复虎牙播放中断
xiaoyaocz Jan 14, 2025
b823201
Release 1.7.6 / TV 1.2.3
xiaoyaocz Jan 14, 2025
51a3d0d
修复actions签出错误分支
xiaoyaocz Jan 14, 2025
c9924ba
fix(虎牙断流):make wup ua dynamic. Fixes #594
SlotSun Jan 21, 2025
aac3eb6
remove tv_support
SlotSun Jan 22, 2025
5db67f8
fix bug:自定义标签无法正确更新状态
SlotSun Jan 23, 2025
343b486
主播开启回放设定为离线
SlotSun Jan 26, 2025
b14bfb4
添加观看时长功能
SlotSun Jan 27, 2025
746b083
fix bug: hive增加字段导致空值问题 & webdav 恢复逻辑导致刷新次数过多卡死
SlotSun Jan 27, 2025
3f97792
fix bug: 修复观看时长相关功能的错误&调整关注列表排序
SlotSun Feb 9, 2025
b3fa2b6
fix bug: 修复观看时长相关功能的错误
SlotSun Feb 9, 2025
8e58695
优化WebDav细节
SlotSun Feb 15, 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
6863393
桌面端单例启动
SlotSun Feb 24, 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
e74eb3c
支持斗鱼topic链接
SlotSun Feb 27, 2025
609bdc3
Merge remote-tracking branch 'refs/remotes/upstream/dev' into dev
SlotSun Feb 27, 2025
e73ff38
处理代码合并问题
SlotSun Feb 27, 2025
fe1dda4
处理代码合并问题
SlotSun Feb 27, 2025
59fa544
新增 Esc 按键事件监听,退出全屏模式时触发
SlotSun Feb 28, 2025
5c0f137
```
SlotSun Mar 2, 2025
ebb66e3
修改 WebDAV 相关存储 key
SlotSun Mar 2, 2025
c70cf65
fix:shieldList未添加到Hive Fixes #619
SlotSun Mar 11, 2025
28a6031
fix bug: 重复添加到指定标签
SlotSun Mar 13, 2025
1067d49
1.followUser增加tag字段
SlotSun Mar 13, 2025
f839c98
数据库版本升级至10710 fix some bug
SlotSun Mar 13, 2025
985ecb0
fix some bug
SlotSun Mar 13, 2025
6457b9a
Merge branch 'dev_fix#619' into dev
SlotSun Mar 16, 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
35 changes: 3 additions & 32 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 @@ -82,35 +82,6 @@ jobs:
simple_live_app/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
simple_live_app/build/app/outputs/flutter-apk/app-x86_64-release.apk

# TV APK签名设置
- name: Download Android TV keystore
id: android_tv_keystore
uses: timheuer/base64-to-file@v1.2
with:
fileName: keystore_tv.jks
encodedString: ${{ secrets.TV_KEYSTORE_BASE64 }}
- name: Create key.properties
run: |
echo "storeFile=${{ steps.android_tv_keystore.outputs.filePath }}" > simple_live_tv_app/android/key.properties
echo "storePassword=${{ secrets.TV_STORE_PASSWORD }}" >> simple_live_tv_app/android/key.properties
echo "keyPassword=${{ secrets.TV_KEY_PASSWORD }}" >> simple_live_tv_app/android/key.properties
echo "keyAlias=${{ secrets.TV_KEY_ALIAS }}" >> simple_live_tv_app/android/key.properties

#打包 Android TV APK
- name: Build TV APK
run: |
cd simple_live_tv_app
flutter build apk --release --split-per-abi
#上传TV APK至Artifacts
- name: Upload TV APK to Artifacts
uses: actions/upload-artifact@v4
with:
name: android_tv
path: |
simple_live_tv_app/build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk
simple_live_tv_app/build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
simple_live_tv_app/build/app/outputs/flutter-apk/app-x86_64-release.apk

#打包iOS
- name: Build IPA
run: |
Expand Down Expand Up @@ -166,7 +137,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 +186,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_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
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
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.2",
"version_num": 10202,
"version_desc": "- 修复虎牙播放失败 #557",
"version": "1.2.3",
"version_num": 10203,
"version_desc": "- 修复虎牙播放中断 #585",
"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.4-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.3.2" 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),
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ class AppSettingsController extends GetxController {

var firstRun = false;

var dbVer = 0;

@override
void onInit() {
themeMode.value = LocalStorageService.instance
Expand Down Expand Up @@ -138,6 +140,8 @@ class AppSettingsController extends GetxController {
updateFollowThreadCount.value = LocalStorageService.instance
.getValue(LocalStorageService.kUpdateFollowThreadCount, 4);

dbVer = LocalStorageService.instance.getValue(LocalStorageService.kHiveDbVer, 10708);

initSiteSort();
initHomeSort();
super.onInit();
Expand Down
2 changes: 2 additions & 0 deletions simple_live_app/lib/app/event_bus.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ class EventBus {
/// 点击了底部导航
static const String kBottomNavigationBarClicked =
"BottomNavigationBarClicked";
/// 用户按了Esc
static const String kEscapePressed = "EscapePressed";
static EventBus? _instance;

static EventBus get instance {
Expand Down
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
Loading