Skip to content

Commit 386e04b

Browse files
author
SkyD666
committed
[feature|optimize|fix]整理申请权限代码;整理部分投屏代码;支持调节弹幕字号;优化播放界面Toolbar显示逻辑代码;导入数据源前申请存储权限,避免在某些手机上崩溃;修复数据源弹出Toast时崩溃的问题(没有把com.skyd.imomoe.util.ToastKt加入混淆规则)
1 parent 5fdd276 commit 386e04b

45 files changed

Lines changed: 983 additions & 1095 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.idea/misc.xml

Lines changed: 4 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,15 @@
4242
4. 支持**双指缩放****移动****旋转**视频
4343
5. 支持视频**投屏**到电视
4444
6. 支持部分视频**显示****发送弹幕**(需要数据源支持弹幕)
45-
7. 支持**缓存视频**到本地(暂不支持m3u8格式资源缓存)
46-
8. 支持**追番**(数据保存在本地)
47-
9. 支持显示**观看历史**记录
48-
10. 支持显示**搜索历史**记录
49-
11. 支持改变视频**播放速度**
50-
12. 支持改变**视频**显示**比例**(16:9, 4:3, 全屏等)
51-
13. [支持**自定义**显示**数据源**](doc/customdatasource/README.md)
52-
14. ......
45+
7. 支持输入某站弹幕链接播放网络弹幕(例如https://api.bilibili.com/x/v1/dm/list.so?oid=97495910)
46+
8. 支持**缓存视频**到本地(暂不支持m3u8格式资源缓存)
47+
9. 支持**追番**(数据保存在本地)
48+
10. 支持显示**观看历史**记录
49+
11. 支持显示**搜索历史**记录
50+
12. 支持改变视频**播放速度**
51+
13. 支持改变**视频**显示**比例**(16:9, 4:3, 全屏等)
52+
14. [支持**自定义**显示**数据源**](doc/customdatasource/README.md)
53+
15. ......
5354

5455
## 运行截图
5556

@@ -67,7 +68,7 @@
6768

6869
## 安全说明
6970

70-
**请勿**私自**传播APK**安装包,Github仓库为唯一长期仓库,**请仅在Github仓库下载安装包**请勿下载来历不明的应用与Jar包,谨防隐私泄露,谨防受骗!
71+
**请勿**私自**传播APK**安装包,Github仓库为唯一长期仓库,**请仅在Github仓库下载安装包**请勿下载来历不明的应用与ads包,谨防隐私泄露,谨防受骗!
7172

7273
### 已发现未知来源的APK
7374

app/proguard-rules.pro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public static final int *;
105105
-keep class com.skyd.imomoe.model.util.** { *; }
106106
-keep class com.skyd.imomoe.util.html.source.** { *; }
107107
-keep class com.skyd.imomoe.util.eventbus.** { *; }
108+
-keep class com.skyd.imomoe.util.ToastKt { *; }
108109
# 与自定义数据源相关的库不应该被混淆
109110
-keep class org.jsoup.** { *; }
110111
-keep class org.greenrobot.eventbus.** { *; }

app/src/main/java/com/skyd/imomoe/model/DataSourceManager.kt

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,13 @@ import com.skyd.imomoe.BuildConfig
77
import com.skyd.imomoe.model.interfaces.IConst
88
import com.skyd.imomoe.model.interfaces.IRouteProcessor
99
import com.skyd.imomoe.model.interfaces.IUtil
10-
import com.skyd.imomoe.util.showToast
1110
import com.skyd.imomoe.util.editor
1211
import com.skyd.imomoe.util.sharedPreferences
1312
import dalvik.system.DexClassLoader
1413
import java.io.File
1514

1615

1716
object DataSourceManager {
18-
// var useCustomDataSource: Boolean
19-
// get() {
20-
// return App.context.sharedPreferences().getBoolean("useCustomDataSource", false)
21-
// }
22-
// set(value) {
23-
// App.context.sharedPreferences().editor { putBoolean("useCustomDataSource", value) }
24-
// }
2517

2618
const val DEFAULT_DATA_SOURCE = ""
2719

@@ -97,7 +89,7 @@ object DataSourceManager {
9789
@Suppress("UNCHECKED_CAST")
9890
fun <T> create(clazz: Class<T>): T? {
9991
// 如果不使用自定义数据,直接返回null
100-
if (dataSourceName == DEFAULT_DATA_SOURCE) return null
92+
if (dataSourceName == DEFAULT_DATA_SOURCE && !BuildConfig.DEBUG) return null
10193
cache[clazz]?.let {
10294
return it.newInstance() as T
10395
}

app/src/main/java/com/skyd/imomoe/net/DoH.kt renamed to app/src/main/java/com/skyd/imomoe/net/DnsServer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import com.skyd.imomoe.util.showToast
1212
import okhttp3.HttpUrl.Companion.toHttpUrl
1313
import java.lang.Exception
1414

15-
object DoH {
15+
object DnsServer {
1616
val defaultDnsServer = hashMapOf(
1717
0 to "",
1818
1 to "https://223.5.5.5/dns-query",

app/src/main/java/com/skyd/imomoe/net/Okhttp.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import java.io.File
1111
private val okhttpCache = Cache(File("cacheDir", "okhttpcache"), 10 * 1024 * 1024)
1212
private val bootstrapClient = OkHttpClient.Builder().cache(okhttpCache).build()
1313

14-
var dns: DnsOverHttps? = DoH.dnsServer.let {
14+
var dns: DnsOverHttps? = DnsServer.dnsServer.let {
1515
if (it.isNullOrBlank()) null else {
1616
try {
1717
DnsOverHttps.Builder().client(bootstrapClient)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.skyd.imomoe.util
2+
3+
/**
4+
* 只拼接百分号%
5+
*/
6+
inline val Int.percentage: String
7+
get() = "${this}%"
8+
9+
/**
10+
* 乘100后拼接百分号
11+
*/
12+
fun Int.toPercentage(): String = "${this * 100}%"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.skyd.imomoe.util
2+
3+
import android.app.Activity
4+
import androidx.fragment.app.Fragment
5+
import com.hjq.permissions.Permission
6+
import com.hjq.permissions.XXPermissions
7+
import com.skyd.imomoe.view.listener.dsl.OnSinglePermissionCallback
8+
import com.skyd.imomoe.view.listener.dsl.requestSinglePermission
9+
10+
fun Activity.requestManageExternalStorage(init: OnSinglePermissionCallback.() -> Unit) {
11+
XXPermissions.with(this).permission(Permission.MANAGE_EXTERNAL_STORAGE)
12+
.requestSinglePermission(init)
13+
}
14+
15+
fun Fragment.requestManageExternalStorage(init: OnSinglePermissionCallback.() -> Unit) {
16+
XXPermissions.with(this).permission(Permission.MANAGE_EXTERNAL_STORAGE)
17+
.requestSinglePermission(init)
18+
}

app/src/main/java/com/skyd/imomoe/util/dlna/CastObject.java

Lines changed: 0 additions & 201 deletions
This file was deleted.

0 commit comments

Comments
 (0)