Skip to content

Commit

Permalink
test2
Browse files Browse the repository at this point in the history
  • Loading branch information
ketan-sharmaa committed Jun 28, 2024
1 parent 7ea4265 commit f88246c
Show file tree
Hide file tree
Showing 11 changed files with 60 additions and 33 deletions.
2 changes: 1 addition & 1 deletion lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class MyApp extends StatelessWidget {
builder: (context, orient, _) {
return MultiProvider(
providers: [
ChangeNotifierProvider<QuizProvider>(create: (_) => QuizProvider()),
ChangeNotifierProvider<DataProvider>(create: (_) => DataProvider()),
],
child: MaterialApp(
routes: {
Expand Down
17 changes: 13 additions & 4 deletions lib/provider/quiz_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@ import 'package:portfolio_flutter/model/quiz_ques_model.dart';
import 'package:portfolio_flutter/screens/routes/quiz/quiz_end_screen.dart';
import 'package:portfolio_flutter/utils/logger.dart';

class QuizProvider extends ChangeNotifier {
class DataProvider extends ChangeNotifier {
bool scrollOffAndTiltOn = false;
set updatesSrollOffAndTiltOn(value){
scrollOffAndTiltOn=value;
notifyListeners();
}

List<ArcQuizQuesModel>? liveQuiz;
PageController quizPageController = PageController();
Timer? timer;
Expand All @@ -31,7 +37,7 @@ class QuizProvider extends ChangeNotifier {
oneSec,
(Timer timer) {
if (start == 0) {
cta(context,tappedOption:null, quesId: quesId, timer: timer);
cta(context, tappedOption: null, quesId: quesId, timer: timer);

notifyListeners();
} else {
Expand All @@ -51,7 +57,6 @@ class QuizProvider extends ChangeNotifier {
bool isCorrect = false,
required Timer timer,
required String? tappedOption,

}) {
tapped = true;
appLog(name: 'quizTimes', log: "timer ends");
Expand Down Expand Up @@ -104,7 +109,11 @@ class QuizProvider extends ChangeNotifier {
required String? tappedOption,
}) async {
try {
cta(context,tappedOption:tappedOption, quesId: questionId, isCorrect: isCorrect, timer: timer!);
cta(context,
tappedOption: tappedOption,
quesId: questionId,
isCorrect: isCorrect,
timer: timer!);
notifyListeners();
} catch (error) {
appLog(
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/pages/home.dart
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Home extends StatefulWidget {
class _HomeState extends State<Home> {
@override
void initState() {
Provider.of<QuizProvider>(context, listen: false).setLiveQuiz();
Provider.of<DataProvider>(context, listen: false).setLiveQuiz();
SchedulerBinding.instance.addPostFrameCallback((_) {
for (var e in [
'/1.png',
Expand Down
12 changes: 6 additions & 6 deletions lib/screens/routes/components/mockup_card.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import 'dart:math' as math;

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:portfolio_flutter/provider/quiz_provider.dart';
import 'package:provider/provider.dart';
import 'package:responsive_sizer/responsive_sizer.dart';
import 'package:sensors_plus/sensors_plus.dart';

Expand Down Expand Up @@ -65,18 +67,17 @@ class _MockupCardState extends State<MockupCard> {
super.dispose();
_streamSubscription?.cancel(); // Cancel subscription when done
}
bool scrollOffAndTiltOn=false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onLongPressStart: (details) {
setState(() {
scrollOffAndTiltOn=true;
Provider.of<DataProvider>(context,listen:false).updatesSrollOffAndTiltOn=true;
});
},
onLongPressEnd: (details) {
setState(() {
scrollOffAndTiltOn=false;
Provider.of<DataProvider>(context,listen:false).updatesSrollOffAndTiltOn=false;
});
},
onLongPressMoveUpdate: (details) {
Expand All @@ -86,15 +87,14 @@ bool scrollOffAndTiltOn=false;
final widgetWidth = box.size.width;
final widgetHeight = box.size.height;
final localPosition = box.globalToLocal(details.localPosition);

setState(() {
// my idea of using cos for this eqution
final normalizedX = localPosition.dx / widgetWidth;
final normalizedY = localPosition.dy / widgetHeight;
final value =
math.cos(normalizedX * math.pi); // Adjust PI for desired curve
-math.cos(normalizedX * math.pi); // Adjust PI for desired curve
final value1 =
-math.cos(normalizedY * math.pi); // Adjust PI for desired curve
math.cos(normalizedY * math.pi); // Adjust PI for desired curve
tiltX = value * hoverSensitivity; // Adjust tilt based on value
tiltY = (value1 * hoverSensitivity); // Adjust tilt based on value
data = " y:$tiltY";
Expand Down
15 changes: 12 additions & 3 deletions lib/screens/routes/components/project_description_map.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@ import 'package:flutter/widgets.dart';
import 'package:markdown_widget/markdown_helper.dart';
import 'package:markdown_widget/markdown_widget.dart';
import 'package:portfolio_flutter/constants.dart';
import 'package:portfolio_flutter/provider/quiz_provider.dart';
import 'package:portfolio_flutter/screens/routes/components/mockup_card.dart';
import 'package:portfolio_flutter/theme.dart';
import 'package:provider/provider.dart';
import 'package:responsive_sizer/responsive_sizer.dart';
import 'package:url_launcher/url_launcher.dart';

Expand All @@ -32,9 +34,16 @@ class ProjectDescriptionMAP extends StatelessWidget {
// onError: (exception, stackTrace) => log('chache failed'),
// ).then((value) => log('cached $element'));
// }
return SingleChildScrollView(
child: Column(children: data(context)),
);
return Selector<DataProvider, bool>(
selector: (p0, p1) => p1.scrollOffAndTiltOn,
builder: (context, value, _) {
return SingleChildScrollView(
physics: value
? const NeverScrollableScrollPhysics()
: const BouncingScrollPhysics(),
child: Column(children: data(context)),
);
});
}

List<Widget> data(context) {
Expand Down
26 changes: 17 additions & 9 deletions lib/screens/routes/projects.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ import 'package:flutter/material.dart';
import 'package:logger/logger.dart';
import 'package:portfolio_flutter/constants.dart';
import 'package:portfolio_flutter/data.dart';
import 'package:portfolio_flutter/provider/quiz_provider.dart';
import 'package:portfolio_flutter/screens/routes/components/project_description_map.dart';
import 'package:portfolio_flutter/theme.dart';
import 'package:portfolio_flutter/utils/logger.dart';
import 'package:provider/provider.dart';

class Projects extends StatefulWidget {
static const routeName = '/projects';
Expand Down Expand Up @@ -73,15 +75,21 @@ class _ProjectsState extends State<Projects> {
body: AnimatedContainer(
duration: Durations.medium4,
color: colors[(_currentPage)],
child: PageView.builder(
controller: controller,
itemCount: projectsDATA.length,
itemBuilder: (context, index) {
return ProjectDescriptionMAP(
project: projectsDATA[index],
index: index,
);
},
child: Selector<DataProvider,bool>(
selector: (p0, p1) => p1.scrollOffAndTiltOn,
builder: (BuildContext context, bool value, Widget? child) {
return PageView.builder(
physics: value ? const NeverScrollableScrollPhysics():const BouncingScrollPhysics(),
controller: controller,
itemCount: projectsDATA.length,
itemBuilder: (context, index) {
return ProjectDescriptionMAP(
project: projectsDATA[index],
index: index,
);
},
);
},
),
),
);
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/routes/quiz/components/options_box.dart
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class _OptionsBoxState extends State<OptionsBox> {
child: QuizTimer(
quesId: widget.question.questionID,
)),
Selector<QuizProvider, bool>(
Selector<DataProvider, bool>(
selector: (p0, p1) => p1.tapped,
shouldRebuild: (previous, next) => true,
builder: (context, tapped, _) {
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/routes/quiz/components/options_quiz.dart
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ class _OptionsQuizState extends State<OptionsQuiz>
});
});
});
Provider.of<QuizProvider>(context, listen: false)
Provider.of<DataProvider>(context, listen: false)
.playQlanQuiz(
context,
questionId: widget.question.questionID,
Expand Down
7 changes: 4 additions & 3 deletions lib/screens/routes/quiz/components/quiz_timer.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ class QuizTimer extends StatefulWidget {
class _QuizTimerState extends State<QuizTimer> {
@override
void initState() {
Provider.of<QuizProvider>(context, listen: false).startTimer(context,widget.quesId);
Provider.of<DataProvider>(context, listen: false)
.startTimer(context, widget.quesId);
super.initState();
}

Expand All @@ -30,7 +31,7 @@ class _QuizTimerState extends State<QuizTimer> {

@override
Widget build(BuildContext context) {
return Consumer<QuizProvider>(
return Consumer<DataProvider>(
builder: (context, provider, _) {
return SizedBox(
width: 195,
Expand Down Expand Up @@ -65,7 +66,7 @@ class _QuizTimerState extends State<QuizTimer> {
'${provider.start ~/ 10}s',
style: Theme.of(context).textTheme.bodySmall!.copyWith(
fontWeight: FontWeight.bold,
color: Colors.amber,
color: Colors.amber,
),
),
],
Expand Down
6 changes: 3 additions & 3 deletions lib/screens/routes/quiz/quiz_end_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class _QuizEndScreenState extends State<QuizEndScreen> {
fit: BoxFit.cover,
),
SingleChildScrollView(
child: Consumer<QuizProvider>(
child: Consumer<DataProvider>(
builder: (context, provider, _) {
return Column(
//risky
Expand Down Expand Up @@ -89,7 +89,7 @@ class _QuizEndScreenState extends State<QuizEndScreen> {
);
}

Row header(BuildContext context, QuizProvider provider) {
Row header(BuildContext context, DataProvider provider) {
return Row(
// mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Expand Down Expand Up @@ -201,7 +201,7 @@ class _QuizEndScreenState extends State<QuizEndScreen> {
);
}

Widget quesBox(QuizProvider provider) {
Widget quesBox(DataProvider provider) {
return Container(
clipBehavior: Clip.none,
child: Column(
Expand Down
2 changes: 1 addition & 1 deletion lib/screens/routes/quiz/quiz_play_screen.dart
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class _QuizPlayScreenState extends State<QuizPlayScreen> {
return QuizBg(
child: Scaffold(
backgroundColor: const Color.fromARGB(255, 17, 17, 17),
body: Consumer<QuizProvider>(
body: Consumer<DataProvider>(
builder: (context, quizProvider, child) {
return PageView.builder(
physics: const NeverScrollableScrollPhysics(),
Expand Down

0 comments on commit f88246c

Please sign in to comment.