fix(android): android 13 local tracks not showing up

This commit is contained in:
Kingkor Roy Tirtho 2023-08-08 10:39:15 +06:00
parent e7c6813ccb
commit e3f4344ae9
4 changed files with 22 additions and 5 deletions

View File

@ -5,6 +5,7 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
<queries>
<!-- If your app opens https URLs -->

View File

@ -1,6 +1,7 @@
import 'dart:io';
import 'package:catcher/catcher.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
@ -169,11 +170,25 @@ class UserLocalTracks extends HookConsumerWidget {
useAsyncEffect(
() async {
if (!kIsMobile) return;
if (!await Permission.storage.isGranted &&
!await Permission.storage.isLimited) {
final androidInfo = await DeviceInfoPlugin().androidInfo;
final hasNoStoragePerm = androidInfo.version.sdkInt < 33 &&
!await Permission.storage.isGranted &&
!await Permission.storage.isLimited;
final hasNoAudioPerm = androidInfo.version.sdkInt >= 33 &&
!await Permission.audio.isGranted &&
!await Permission.audio.isLimited;
if (hasNoStoragePerm) {
await Permission.storage.request();
if (isMounted()) ref.refresh(localTracksProvider);
}
if (hasNoAudioPerm) {
await Permission.audio.request();
if (isMounted()) ref.refresh(localTracksProvider);
}
},
null,
[],

View File

@ -419,13 +419,13 @@ packages:
source: hosted
version: "1.1.0"
device_info_plus:
dependency: transitive
dependency: "direct main"
description:
name: device_info_plus
sha256: "9b1a0c32b2a503f8fe9f8764fac7b5fcd4f6bd35d8f49de5350bccf9e2a33b8a"
sha256: "86add5ef97215562d2e090535b0a16f197902b10c369c558a100e74ea06e8659"
url: "https://pub.dev"
source: hosted
version: "9.0.0"
version: "9.0.3"
device_info_plus_platform_interface:
dependency: transitive
description:

View File

@ -102,6 +102,7 @@ dependencies:
google_fonts: ^4.0.4
supabase: ^1.9.9
dio: ^5.3.2
device_info_plus: ^9.0.3
dev_dependencies:
build_runner: ^2.3.2