mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-17 01:15:17 +00:00
Compare commits
3 Commits
3539b6f38b
...
cfcb729ff2
Author | SHA1 | Date | |
---|---|---|---|
![]() |
cfcb729ff2 | ||
![]() |
4ed40d95b2 | ||
![]() |
b24dcd2951 |
@ -70,6 +70,7 @@ class SiblingTracksSheet extends HookConsumerWidget {
|
|||||||
final preferences = ref.watch(userPreferencesProvider);
|
final preferences = ref.watch(userPreferencesProvider);
|
||||||
final youtubeEngine = ref.watch(youtubeEngineProvider);
|
final youtubeEngine = ref.watch(youtubeEngineProvider);
|
||||||
|
|
||||||
|
final isLoading = useState(false);
|
||||||
final isSearching = useState(false);
|
final isSearching = useState(false);
|
||||||
final searchMode = useState(preferences.searchMode);
|
final searchMode = useState(preferences.searchMode);
|
||||||
final activeTrackSources = ref.watch(activeTrackSourcesProvider);
|
final activeTrackSources = ref.watch(activeTrackSourcesProvider);
|
||||||
@ -195,27 +196,40 @@ class SiblingTracksSheet extends HookConsumerWidget {
|
|||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
enabled: !isFetchingActiveTrack,
|
enabled: !isFetchingActiveTrack && !isLoading.value,
|
||||||
selected: !isFetchingActiveTrack &&
|
selected: !isFetchingActiveTrack &&
|
||||||
sourceInfo.id == activeTrackSource?.info.id,
|
sourceInfo.id == activeTrackSource?.info.id,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
if (!isFetchingActiveTrack &&
|
if (!isFetchingActiveTrack &&
|
||||||
sourceInfo.id != activeTrackSource?.info.id) {
|
sourceInfo.id != activeTrackSource?.info.id) {
|
||||||
await activeTrackNotifier?.swapWithSibling(sourceInfo);
|
try {
|
||||||
await ref.read(audioPlayerProvider.notifier).swapActiveSource();
|
isLoading.value = true;
|
||||||
|
await activeTrackNotifier?.swapWithSibling(sourceInfo);
|
||||||
|
await ref.read(audioPlayerProvider.notifier).swapActiveSource();
|
||||||
|
|
||||||
if (context.mounted) {
|
if (context.mounted) {
|
||||||
if (MediaQuery.sizeOf(context).mdAndUp) {
|
if (MediaQuery.sizeOf(context).mdAndUp) {
|
||||||
closeOverlay(context);
|
closeOverlay(context);
|
||||||
} else {
|
} else {
|
||||||
closeDrawer(context);
|
closeDrawer(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
if (context.mounted) {
|
||||||
|
isLoading.value = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
[activeTrackSource, activeTrackNotifier, siblings],
|
[
|
||||||
|
activeTrackSource,
|
||||||
|
activeTrackNotifier,
|
||||||
|
siblings,
|
||||||
|
isFetchingActiveTrack,
|
||||||
|
isLoading.value,
|
||||||
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
final scale = context.theme.scaling;
|
final scale = context.theme.scaling;
|
||||||
@ -293,6 +307,15 @@ class SiblingTracksSheet extends HookConsumerWidget {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
AnimatedSwitcher(
|
||||||
|
duration: const Duration(milliseconds: 300),
|
||||||
|
child: isLoading.value
|
||||||
|
? const SizedBox(
|
||||||
|
width: double.infinity,
|
||||||
|
child: LinearProgressIndicator(),
|
||||||
|
)
|
||||||
|
: const SizedBox.shrink(),
|
||||||
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: AnimatedSwitcher(
|
child: AnimatedSwitcher(
|
||||||
duration: const Duration(milliseconds: 300),
|
duration: const Duration(milliseconds: 300),
|
||||||
@ -307,7 +330,9 @@ class SiblingTracksSheet extends HookConsumerWidget {
|
|||||||
itemCount: siblings.length,
|
itemCount: siblings.length,
|
||||||
separatorBuilder: (context, index) => const Gap(8),
|
separatorBuilder: (context, index) => const Gap(8),
|
||||||
itemBuilder: (context, index) => itemBuilder(
|
itemBuilder: (context, index) => itemBuilder(
|
||||||
siblings[index], activeTrackSource!.source),
|
siblings[index],
|
||||||
|
activeTrackSource!.source,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
true => FutureBuilder(
|
true => FutureBuilder(
|
||||||
future: searchRequest,
|
future: searchRequest,
|
||||||
|
@ -13,7 +13,6 @@ import 'package:spotube/l10n/l10n.dart';
|
|||||||
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
import 'package:spotube/provider/user_preferences/user_preferences_provider.dart';
|
||||||
|
|
||||||
final localWithName = L10n.all.map((e) {
|
final localWithName = L10n.all.map((e) {
|
||||||
print(e);
|
|
||||||
final isoCodeName =
|
final isoCodeName =
|
||||||
LanguageLocals.getDisplayLanguage(e.languageCode, e.countryCode);
|
LanguageLocals.getDisplayLanguage(e.languageCode, e.countryCode);
|
||||||
return (
|
return (
|
||||||
|
Loading…
Reference in New Issue
Block a user