Merge pull request #55 from R0m1k3/antigravity

feat: Add movies tab with pagination, search, and player integration.
This commit is contained in:
LogiFlow authored and GitHub committed 2025-12-06 20:45:21 +01:00
commit e76d6d3ed8
4 files changed
+17 -16

No files matched your search

+13 -13
View File
@@ -103,21 +103,21 @@ class AppTheme {
),
// Cards: Transparent by default (content defines look)
cardTheme: const CardTheme(
color: AppColors.surface,
elevation: 0,
margin: EdgeInsets.zero,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(radiusMd))),
),
// cardTheme: const CardTheme(
// color: AppColors.surface,
// elevation: 0,
// margin: EdgeInsets.zero,
// shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(radiusMd))),
// ),
// Dialogs: Glass/Dark
dialogTheme: DialogTheme(
backgroundColor: const Color(0xFF1C1C1E), // Apple Dark Grey
elevation: 24,
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(radiusLg)),
titleTextStyle: GoogleFonts.inter(fontSize: 20, fontWeight: FontWeight.bold, color: AppColors.textPrimary),
contentTextStyle: GoogleFonts.inter(fontSize: 16, color: AppColors.textSecondary),
),
// dialogTheme: DialogTheme(
// backgroundColor: const Color(0xFF1C1C1E), // Apple Dark Grey
// elevation: 24,
// shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(radiusLg)),
// titleTextStyle: GoogleFonts.inter(fontSize: 20, fontWeight: FontWeight.bold, color: AppColors.textPrimary),
// contentTextStyle: GoogleFonts.inter(fontSize: 16, color: AppColors.textSecondary),
// ),
);
}
@@ -1,5 +1,6 @@
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
import '../../theme/app_colors.dart';
import '../../theme/app_theme.dart';
@@ -326,7 +326,7 @@ class XtreamService {
}
/// Get movies with pagination support
Future<List<xm.Movie>> getMovies({int offset = 0, int limit = 100}) async {
Future<List<xm.Movie>> getMoviesPaginated({int offset = 0, int limit = 100}) async {
if (_currentPlaylist == null) throw Exception('No playlist configured');
try {
+2 -2
View File
@@ -8,7 +8,7 @@ import '../../../core/theme/app_theme.dart';
import '../../../core/utils/responsive_layout.dart';
import '../../../core/widgets/components/hero_carousel.dart';
import '../../../core/widgets/components/ui_components.dart';
import '../../favorites/providers/watch_history_provider.dart';
import '../providers/watch_history_provider.dart';
import '../models/xtream_models.dart';
import '../providers/xtream_provider.dart';
import '../providers/settings_provider.dart';
@@ -158,7 +158,7 @@ class _MoviesTabState extends ConsumerState<MoviesTab> {
} else {
displayMovies = settings.moviesKeywords.isEmpty
? _movies
: _movies.where((m) => settings.matchesMovieFilter(m.categoryName)).toList();
: _movies.where((m) => settings.matchesMoviesFilter(m.categoryName)).toList();
}
// Hero Items (Take 5 random or first 5)