stopAutoScroll method
void
stopAutoScroll()
إيقاف السكرول التلقائي نهائيًا مع حفظ الصفحة التي وصل إليها المستخدم
Implementation
void stopAutoScroll() {
// حفظ الصفحة الحالية قبل الإيقاف
final reachedPage = state.currentScrollPage.value;
// هل كان السكرول التلقائي فعّالاً؟
final wasActive = state.isActive.value;
state.isActive.value = false;
state.isPaused.value = false;
_ticker?.stop();
_ticker?.dispose();
_ticker = null;
// تحديث صفحة QuranCtrl والانتقال إليها في الـ PageView الأفقي
// لا تحفظ إذا لم يكن السكرول التلقائي فعّالاً (مثلاً عند onClose بدون تشغيل)
if (wasActive && reachedPage > 0) {
final quranCtrl = QuranCtrl.instance;
quranCtrl.state.currentPageNumber.value = reachedPage;
quranCtrl.saveLastPage(reachedPage);
// الانتقال للصفحة بعد أن يُعاد بناء الـ PageView الأفقي
WidgetsBinding.instance.addPostFrameCallback((_) {
quranCtrl.jumpToPage(reachedPage - 1);
});
}
}