Skip to content

Instantly share code, notes, and snippets.

View chaudharydeepanshu's full-sized avatar
🎯
New Journey

Deepanshu Chaudhary chaudharydeepanshu

🎯
New Journey
View GitHub Profile
import 'package:flutter/material.dart';
class CustomDrawer extends StatefulWidget {
const CustomDrawer({
Key? key,
required this.themeMode,
required this.onThemeMode,
}) : super(key: key);
final ThemeMode? themeMode;
final ValueChanged<ThemeMode>? onThemeMode;
import 'package:flutter/material.dart';
import 'package:flutter_dark_mode_demo/sharedPreferences/app_theme_shared_preferences.dart';
Future<void> main() async {
WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
int? retrieveSavedThemeModeIndex = await retrieveSavedThemeMode();
final ThemeMode savedThemeMode = retrieveSavedThemeModeIndex == 0
? ThemeMode.system
: retrieveSavedThemeModeIndex == 1
? ThemeMode.light
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key, this.themeMode, this.onThemeMode})
: super(key: key);
final ThemeMode? themeMode; //
final ValueChanged<ThemeMode>? onThemeMode; //
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyAppState extends State<MyApp> {
//Keeps track of theme
late ThemeMode? themeMode = widget.savedThemeMode;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
//Add themeMode as themeMode
class MyApp extends StatefulWidget {
const MyApp({Key? key, this.savedThemeMode}) : super(key: key);
final ThemeMode? savedThemeMode;
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
class MyApp extends StatelessWidget {
const MyApp({Key? key, this.savedThemeMode}) : super(key: key);
final ThemeMode? savedThemeMode;
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
import 'package:shared_preferences/shared_preferences.dart';
Future<int?> retrieveSavedThemeMode() async {
final prefs = await SharedPreferences.getInstance();
// Check where the name is saved before or not
if (!prefs.containsKey('savedThemeModeIndex')) {
//if not return zero for ThemeMode.System
return 0;
}
//else return the saved theme
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:provider/provider.dart';
import 'ads/ad_state.dart';
import 'ads/banner_ad.dart';
import 'ads/banner_ad_customised.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
final initFuture = MobileAds.instance.initialize();
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:provider/provider.dart';
import 'ads/ad_state.dart';
import 'ads/banner_ad.dart';
import 'ads/banner_ad_customised.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
final initFuture = MobileAds.instance.initialize();
import 'package:google_mobile_ads/google_mobile_ads.dart';
import 'package:flutter/material.dart';
Future<AnchoredAdaptiveBannerAdSize?> anchoredAdaptiveBannerAdSize(
BuildContext context) async {
// Used to set size of adaptive banner ad according to device width and orientation.
return await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
MediaQuery.of(context).size.width.toInt());
}