Version 2.12.4 17 July 2024 | 10 Muharram 1446

  • Update Android project folder - Updated targetSdkVersion to 34 and others.
  • Update dependencies

Version 2.12.3 1 April 2024 | 21 Ramadan 1445

  • Enhance UX for azan notification, particularly on Android 13+ since they require granting runtime notification permission. This includes display permission dialog before actually asking the permission so that user aware why they need to grant that permission. Also, the app now checks on the app startup the permission status, it will prompt the user to grant the permission (like this). PR #230.
  • This part is a bit technical, in this update I'm also changing the method to schedule notification/azan to alarmClock (previously using setExactAndAllowWhileIdle). This is an attempt to fix various issue regarding the notificaion/azan such as it did not goes off, delayed etc. This implementation may be temporary.

Version 2.12.2 19 February 2024 | 9 Syaa'ban 1445

  • Fix app crashes on launch on Android 14+ devices if the homescreen widget was added. The crashed are caused because the app are trying to schedule the widget update using setExact alarm when the required permission is not granted by the user. Issue #228

Version 2.12.1 13 February 2024 | 3 Syaa'ban 1445

  • Fix issue where some widget layout would shift due to missing layout_weight property.
  • Add Bahasa Melayu translation in homescreen widget.
  • Prevent crashes in some situation when checking for updates.

Version 2.12.0 11 February 2024 | 1 Syaa'ban 1445

  • Homescreen widget now follows dynamic color. Closed #222 mpt new dynamic widget
  • Fixes issue where prayer data won't show in homescreen widget when new month comes. Fixed #224
  • Minor adjustment to horizontal homescreen widget layout. Maybe fixes #218
  • Refactor code to adapt new way of listening for app lifecycle events
  • Upgrade pub dependencies

Version 2.11.3 15 January 2024 | 3 Rejab 1445

  • Fix bug on homescreen widget where it shows the incorrect prayer time data. Issue #219. Thanks to MPT user who reported this issue.
  • Make Send button in feedback page larger, easier to find. 13ed004
  • Update dependencies

Version 2.11.1 4 January 2024 | 22 J.Akhir 1445

Due to the Jan 1 Incident issue, some changes are made to improve stability of the app.

  • Fix Homescreen widget error view that never triggered.
  • Skip storing cache if the API response can't be parsed by the equivalent model
  • Change the cache key for API response, because some users still have the error

Other chores:

  • Update dependencies
  • Update website, link & references

Version 2.11.0 27 December 2023 | 14 J.Akhir 1445

  • Add Android Homescreen widget. Finally closes issue #9
  • Fix autoscroll 'terlajak' in full prayer timetable. Issue #213
  • Request to schedule exact alarm notification for Android 13+

Version 2.10.1 5 December 2023

Version 2.10.0 26 November 2023

  • Added feature to download/save/print monthly prayer times timetable. [Demo]
  • Upgrade dependencies
  • Bump Android minSdkVersion to 21 (Due to fluttertoast plugin)
  • Fix visual bug that cause the header in full timetable page not reacting on scroll.
  • [DEV]
    • Fix lints etc.

Version 2.9.3 19 October 2023

  • Add missing Malay translations in manual zone selector page
  • Upgrade dependencies (including multiple major version packages)
  • [DEV]
    • Fix lints rule

Version 2.9.2 27 August 2023 | 10 Safar 1445

  • Added monochrome icons variant. For device with support of theme icons (Android 13+), the app icon will match the system wallpapers. [Screenshots]
  • Update dependencies (and upgraded to latest Flutter stable 3.13.x)
  • Autoscroll to current day row in full timetable page. [See Tweet]
  • Added nice, subtle and welcoming entry animation for the prayer time list. [See Tweet]
  • [DEV]
    • Code cleaning and refactoring

Version 2.9.1 27 August 2023 | 23 Muharram 1445

  • Possible fix to #203 again. Crashlytics dashboard are full of this issue. 🤷
  • Update text not visible on button. Screenshot
  • Allow expired certificate from mpt-server. This is to allow prayer data to fetched when running on older Android versions.
  • Update dependencies
  • Opted in to use badges package instead of custom widget Screenshots
  • [DEV]
    • Renamed files to follow Dart naming conventions 1699404 c32e3ff ba95b70
    • Fixed imports conventions 2e949d6

Version 2.9.0 27 August 2023 | 27 Zulhijjah 1444

  • Using the latest API update from mpt-server
    • Prayer time API now using solat-v2 endpoint
    • Improved accuracy when detecting prayer zone - now using pre-defined zone definition instead of just calculating the nearest point of the prayer time zone to the user location. For more details, please see issue #188
  • Upgrade dependencies (major ones included: http, google_fonts, flutter_local_notifications, app_settings)
  • Possibly fixed error related to notification scheduling. #203
  • Revert adding the error message in zone_chooser dialog 5adc2cd
  • DEV:
    • Fix some of the file names with respect to linter rule lowercase_with_underscores
    • Bump kotlin version to the 1.8.22 (due to app_settings requirement)

Version 2.8.3 18 Jun 2023 | 29 Zulkaedah 1444

  • Update JAKIM location database (Comes with zone changes and addition especially for Sarawak, etc.) 011cb86

Version 2.8.2 13 Jun 2023 | 24 Zulkaedah 1444

  • Fixed notification bug where it fails to schedule some prayer notification due to notification ID collision. See #201

Version 2.8.1 19 May 2023 | 28 Syawal 1444

Version 2.8.0 22 April 2023 | 1 Syawal 1444

  • Revamped design to Material You (or Material 3). Feel more rounded corners, improved designs and clean UIs.
  • The app themes now matched the phone's theme colours (usually derived from the wallpaper) for supported phones only.
  • Increase default text size for prayer time text to 16.
  • Relocate the Ads widget to the to the top. So that the location of floating action button and snackbar are restored.
  • Update copyright year to 2023 Yeah, I know it's pretty late..
  • Request notification permission on onboarding screen (for Android 13+ only). Previously, the app notification would be requested on the second app launches, so user wouldn't received the scheduled notification after the first launch.
    • Bump targetSdkVersion to 33
  • Upgrade dependencies
  • Skip Autostart banner for Samsung devices because it was found unnnecessary. User couldn't even change the app settings.

Version 2.7.6 31 March 2023 | 9 Ramadhan 1444

  • Fixed Google Play Policy issue. See #180. Yes, again (╯°□°)╯︵ ┻━┻
  • Upgrade dependencies

Version 2.7.5 15 March 2023 | 22 Sya'ban 1444

  • Fix Google Play Policy issue. See #180.
  • Upgrade dependencies

Version 2.7.4 4 March 2023 | 11 Sya'ban 1444

  • Fixed azan notification issue that plays Azan subuh for every prayer times. See issue #173
  • Renamed app label. Malaysia Prayer Time is now Prayer Time (Waktu Solat Malaysia is now Waktu Solat). See #174
  • Removed unused widgets, add missing tooltips.

Version 2.7.3 3 February 2023

  • Added new notification option: Short Azan. This notification will only play the first "Allahu Akbar x2" of the azan. Maqam Lamy by Mishary Rashid Al-Afasy #158
  • Added azan preview in notification settings. User can now quickly fire notification to hear how they sounds like.
  • Minor UI tweak when asking user to restart app after modify the notification setting. [Screenshot]
  • Upgrade to Flutter 3.7
  • Upgrade dependencies (major: flutter_local_notifications, google_fonts, flutter_svg)
  • Updated location based on new JAKIM's location. Added NGS03 and replaced KTN03 to KTN02. #164
  • Update copyright year (2023)
  • Make banner ads no longer inside a scroll view. This is to comply to the Google's policy. But, the share button is no longer can be docked on the bottom navigation bar :( #168. [Screenshot]
  • DEV:
    • Renamed some filenames to follow Dart naming convention
    • etc.

Version 2.7.1 2 December 2022

Version 2.6.2-hotfix.1 27 September 2022

Version 2.6.2 26 September 2022

  • Upgrade dependencies
  • Android 12 support. Bumped targetSdkVersion to 31.
  • In feedback page, the letter will auto capitalize first letter (like WhatsApp etc.)
  • Using MPT-Server's API to get image mosque
  • Open link when tapping on copyright information
  • DEV
    • Rename some folders to follow Dart naming convention
    • Start write some tests
    • Refactor some class

Version 2.6.0 8 September 2022

  • In full prayer timetable, the background image will show a mosque according to user's current zone. [Screenshot]
  • Display detected geocoding as subLocality as it is appear to be more specific to the location. For example, app show Pusat Bandar Wangsa Maju instead of generic Kuala Lumpur. [Screenshot]
  • Add shake widget on onboarding screen for Autostart adomnition (not all phones) to alert the users to enable it. [Video]
  • MPT-Server API will now used as primary API to prayer time data, backed up with JAKIM API.
  • Add keybaord autofill hints in email field in feedback page. [Screenshot]
  • [DEV]

Version 2.5.0 31 July 2022

  • Added firebase_crashlytics - to understand the crashes and hopefully be able to mitigate it.
  • flutterfire configured
  • In update available page, the phrase Released 0 days ago is changed to Released today.
  • Updated short links.
  • Change word Frequently Asked Question to Documentation. Since it's no longer points to a faq page in previous releases ago. Screenshot
  • Provide a better error message when getting user's zone is few place where the negeri couldn't be detected. From my triage, it happen when I put the user on the water (sea). #130
  • Fixed incorrect tooltip text on menu button. Screenshot
  • Upgrade dependencies (Including major: google_mobile_ads)
  • [DEV]
    • Changed few file names to respect the Dart's naming convention.
    • Removed deprecated splash screen manifest. Docs

Version 2.4.4-hotfix.1 11 July 2022

  • In Feedback page:
    • Fixed error Converting object to an encodable object failed: Instance of 'Duration' when user submitting feedback.
    • Being more transparent to the user i.e. disclosed all data that being shared to developer when user sending the feedback. Includes option to hide sensitive data eg: GPS coordinate. Screenshot
  • [Dev] Added ability to hide ads for 10 minutes. Accessible from debug dialog.

Version 2.4.4 1 July 2022

  • Upgrade dependencies (including major: device_info_plus, google_fonts)
  • New feature: quick actions.
    • Quickly open Qibla compass/Timetable/Tasbih pages from your home screen/launcher icon. Screenshot
    • Added quick_actions dependency.
    • Added icons and made some modification to l10n.
    • Learn more of this feature here.
  • Added analytics to record api fetching method (jakim, cached, or backup)
  • Added device locale and offset time properties to device info in feedback page.
    • Also make App build number sends string instead of integer for Zapier to read it.
  • Correction on spelling mistake by @agoza in #27 (screenshot),
  • Migrated to official google_mobile_ads package as the jankiness issue with Android is finally resolved.
  • Developer experience:
    • Added toString() method to LocationCoordinateData and Location class.
    • 80-char lint rule, and .gitignore addition by @agoza in #27
    • Changed few file names according to Dart convention.
    • Handled most linter warnings

Version 2.4.2 27 May 2022

  • Flutter 3.0 Upgrade
    • Bumped the versions to 7.4 for Gradle, and 7.1.2 for the Android Gradle plugin.
  • Fix some typo(s) in app.
  • Fixed unformatted time when copy individual prayer time. Issue #117
  • 'Fixes' certificates issues from JAKIM e-solat portal. Issue #123
  • Made URL open accordingly.In-app browser/External applications
  • Upgrade dependencies
  • Major upgrade grouped_list dependencies.
  • Fixed blurry & jagged tasbih logo on the bottom app bar (Screenshots)
  • Fix missing center titles in some screens.
  • UI cleanup in qibla page. (Screenshot)
  • Added auto_start_flutter. To detect if the app support Autostart, and prompt the user to disable the setting. This should cover various notification issues such as #89, #106, #108 etc.
    • Add prompt to enable Autostart in onboarding screen (Screenshot)
    • Display status if device have no autostart setting in notification troubleshoot page. (Screenshot)
  • Removed cloud_firestore dependency.
    • **Feedback pagI created a server as a middleman for firebase connections.
    • **FAQ pagRemoved. Replaced with external link to the new MPT website.

Version 2.4.0-hotfix.1 9 April 2022

  • Fixed Connection reset by peer error. Caused by JAKIM server. #113
  • [Dev] Use enum for share target function.

Version 2.4.0 4 April 2022

  • Added option to view last one third of the night in full prayer timetable. #102.
  • System bar is now transparent. Screenshot (joining the latest design trends)
  • Correct the un-uniform tasbih icon colour at the bottom app bar.
  • Fix missing translation for prayer timetable settings.
  • Give route name to Navigator.push() for Analytics purposes.
  • Upgrade dependencies
  • Added firebase_analytics.
  • Remove references to hijri offset - no longer needed since the data from JAKIM is considered the most accurate
  • [Dev] Change JAKIM model datatypes for prayer time data. Previously using list of UNIX timestamp, now Object of DateTime(s).
  • [Dev] (Debug dialog) Replaced open in-app review with notification setting notice.

Version 2.3.5-hotfix 11 March 2022

  • Fixed notification not getting rescheduled when changing location. #104. Also fixed other notification issues #105 that came with (probably) February Update.
  • What's New dialog no longer show detailed changelog. Instead, it will only provide link to this changelog page only. Screenshot

Version 2.3.5 5 March 2022

  • Fixed notification failed to schedule. This is due to slight api changes that failed the date parser to convert the date correctly. #103
  • New Tasbih. It features a simple beads and a counter. Can be accessed via the pray icon at the navigation bar. #103 #RoadToRamadan
  • Minor tweak in the date format on the homepage. Screenshot
  • System Navigation bar colour now follows the app theme. #101
  • [Developer debug feature] Moves notification related part from debug dialog to notification setting page. Screenshot

Version 2.3.3 24 February 2022

  • Flutter 2.10 changes
    • Update android:name property in AndroidManifest.xml.
    • Update jcenter() to mavenCentral() in build.gradle.
    • Use kotlin latest version 1.6.10.
  • Fixed the long lasting wrong hijri date issue #54. Hijri date is now consume directly from JAKIM.
    • Removed hijri and firebase_remote_config.
    • However, I'll keep the remote config maintained for a few months (for user that didn't update the app yet).
  • In addition, hijri date column has been added to the full prayer timetable page.
  • Also added new setting dialog in full timetable page. Currently there's only an option to hide/unhide the hijri column. Watch video.
  • Added timeout to JAKIM api request. This is to prevent the app loading indefinitely because sometimes JAKIM server didn't return any response in case of error.
  • Upgrade depdendencies
  • Fix missing translation in Update Checker page.
  • Improve UI & text formatting in Update Checker page. Screenshots.
  • Added semantics in introduction_screen and in ZoneChooser. #97
  • Prevent ads from showing when error is occured when fetching prayer times - Hope it will improve the user experience.
  • Added Google Fonts license. #91.
  • Code cleanup, fixed imports, renamed files and classes, delete unused files, organizing files structure etc.
  • Comparing 2.3.0 - 2.3.3

Version 2.3.0 27 January 2022

  • Added Bahasa Melayu to the app! 🇲🇾
    • For for time installation, user will be prompted to choose their preferred language. Default to their device locale (en/ms)
    • For others, language can be changed in Setting page.
    • Revert the changes made in #45. Naming convention are now based on language.
  • For every app updates installed, the app will show a What's New dialog.
    • For example: In this update, the app will prompt user to select language.
  • Added flutter_markdown to easily format rich text without messing around with TextSpan(s)
  • Changed 2021 reference to 2022 in legalese, app name etc.
  • Added/rearrange few assets in onboarding screeen.
    • New source to yoink some icons 3d assets 😎
  • Added Dismiss button to hide the notification issue prompt permanently (in app body).
  • Add zone, app locale & device locale to Send Feedback metadata. Screenshot
  • Initial implementation of Semantics. #97
  • Other changes
    • Fixed grammars, wordings etc. in few places.
    • Code refactor

Version 2.2.9 16 December 2021

  • Build with Flutter 2.8, which claims to have performance improvements in reduction in startup latency of 50% when running on a low-end Android device, and a 10% improvement on high-end devices.
  • Remove location migration code.
  • Added updates available page.
  • Upgrade dependencies including few major. Commit ref 215d46a
  • Code related changes
    • Change describeEnum to byName method in Theme Setting. (New in Dart 2.15). Commit ref 7db2ffd
    • Organize imports. Commit ref 693830e

Version 2.2.8-hotfix.1 23 November 2021

  • Upgrade flutter_local_notifications to version 9.1.4. Mainly to address a fix to java.util.concurrent.RejectedExecutionException crashes which impacted previous release. More info of this issue can be found here.
  • Remove auto_size_text.
  • Upgrade other dependencies.

Version 2.2.8 21 November 2021

  • Migrated share to share_plus.
  • Fixed empty text in Zone Chooser - When locality is empty, use name instead. #67
  • Removed kStoredLocationLocality key (no longer needed).
  • Re-enable Salam Jumaat wish in notification. #81
  • Remove the word NEW on notification type options.
  • Added warning/disclaimer/consent page before using qibla compass. Inspired by JAKIM app.
  • Changed calibrate compass image asset.
  • Beautify qibla calibrate dialog.
  • Upgraded 4 major dependencies & 47 other dependencies.
  • Drop support for Android 4.4 and below. Changed compileSdkVersion to 31 & minSdkVersion to 20 in build.gradle file.
  • Implements Flutter best practice including fix relative imports, Widget class, unused parameters and more.
  • Added name and value to debug notification.

Version 2.2.5 11 October 2021

  • Migrated device_info and package_info to plus version; device_info_plus and package_info_plus respectively.
  • Subtle red indicator will be shown if latest version of the app is available. -Menu button on bottom navigation bar.
    • Android ≤ 23 will no longer supported in the upcoming version.
  • Prayer table time format is now respecting setting. #88
  • Removed azan notification introduction dialog. (That one introduced in ver 2.0.0 back then)
  • Simplify devlog instagram URL
  • Minor UI changes divider in About Page.

Version 2.2.4-hotfix 1 October 2021

  • Fix Trying to read MMM from 01 Okt-2021 05:43:00 at position 3`. Date format from JAKIM is not standard so the app can't parse it. Issue #86.
  • Update changelog link in About Page.

Version 2.2.3 28 September 2021

  • Fixed time from API is being wrongly parsed as 12-Hour system (supposedly 24-Hour system), causing wrong time shown for some zones (especially Zohor time in Sabah). Issue #85. Thank you, anonymous user for alerting me about this issue. (Yes, this is repeated issue similar to this update back then 🤦‍♂️)
  • Minor UI change manual location chooser - cleaner header textstyle.
  • Temporary disable Salam Jumaat wish (summary) in notification. Issue #81.

Version 2.2.2 22 September 2021

  • Some improvement in prayer time timetable:
    • Fixed a typo Imsak Syuruk. #80.
    • Added other prayer times (Imsak & Dhuha)
    • Smaller gaps in between Column, so user wont have to scroll to far.
    • Added tooltip to some column headers.
  • API Migration from mpti906 to JAKIM e-solat API. Fixed #83. A part of #82. Why?
  • Added backup API if Jakim's server is down.
  • Using grouped_list in manual location chooser. List is now grouped by their negeri, with a minor UI change for better indication that the zone is currently selected.
  • Changed the way how app is saving zone to device. Previously saving location using their index (int), but it will face problem if later JAKIM want to change their zone (add/remove). So now it will save the Jakim Code (String) itself. Your saved data will be migrated automatically.
  • Fix overflow Inkwell in About dialog buttons.
  • Make azan notification as default.
  • Removed reference to mpti906 in About Dialog.
  • Upgrade some dependencies
  • Other code cleanups, incl. purging unused reference, code & constants.

Version 2.1.0 2 September 2021

  • Fix wrong zone for some Sarawak district - Fix wrong mapping from JAKIM code to mpti906 location code that resulting in fetching the wrong prayer time. Affected user may need to change to other location and change back to your actual location to clear up the cache. (Thanks to some users for reporting this issue)
  • Fixed jankiness issue when scroll with inline banner ads. Replaces the official google_mobile_ads package with @atrope's fork.
  • Adjust link text colour contrast to improve readability in About page.
  • Upgrade 19+ dependencies.

Version 2.0.0 31 August 2021

  • 🚛 Migrate Flutter project to null safety.
  • Added azan notification. Now there are two types of notification, default sound and azan. Existing user will be asked if they want to try. Source: Athan Alafasy - SoundCloud. Closed #39:
    • Both types will use different notification channel. This is required to satisfy requirement of Android 8.0+ and to maintain backward compatibility. (Syuruk will use same default notification channel regardless of the notification type)
    • Added option to select preferred notification in onboarding page.
    • Added option to change preferred notification type in Notification Settings page. (Required app restart to apply changes)
    • Prompt existing user to change to azan notification.
  • Remove skip button to skip page in Onboarding screen. (User can still swipe right)
  • Added summary text in notification for Syuruk and Zohor (for Jumaat).
  • Timestamp in notification is now showing the actual prayer time. (Not the time when the notification fired, because sometimes it get delayed). Closes #71
  • Added flutter_restart - To easily restart the app natively.
  • Update Privacy Policy.
  • Resizes image assets (smaller).
  • Reduce snackbar time and simplify text (for Location Chooser).
  • Remove old hijri offset setting.
  • Added some Padding to loading & error animation (in GetPrayerTime).
  • Remove unused isolate_handler. Realized that I never use the implementation before.
  • Major version dependencies upgrade: provider: ^5.0.0 -> ^6.0.0 and flutter_local_notifications: ^6.0.0 -> ^8.1.1+1
  • Code cleanup (a lot...)
  • and (probably) more not documented.

Version 1.26.143 5 August 2021

  • Added google_mobile_ads. Unobtrusive ad is now showing on the main page. Alert me if inappropriate ads is showing.
  • firebase_remote_config. Hijri offset data now fetched from the server (controlled by me so remind me if I forgot to update, allow up to 8 hours for the changes fully propagates), removed manual adjustment setting. Issue #54.
  • in_app_review. In App Review window will show after app launch count is equal to 10. Hoping to receive positive or constructive criticism after this.
  • flutter_lints. Applied coding best practices followed with code cleanup, and refactoring.
  • New Monthly Prayer Table, featuring beautiful IIUM SHAS Mosque :mosque::heart:. #55
  • Added offline cache support. By default, if criteria are met (same location, same month & same year), prayer data will load data from storage (if available) instead fetching from the API.
  • MPTI906 new dart model. ( is quite nice tool)
  • Better error messages for ZoneChooser and GetPrayerTime.
  • Throw error when detected location is not in Malaysia. Commit ref b500e4c. Also fixed invalid argument(s) error.
  • Added some icons in ZoneChooser error dialog.
  • Added button to open system location setting when failed to get location. Commit ref 8a80e5f.
  • Solat Card UI improvement:
    • More subtle shadow under solat card.
    • Will not stretch with the screen. Now constraints to fixed width. (I admit it still looks teribble when in landscape mode)
  • Copy & Share changes:
    • Copy prayer times button moved to share fab.
    • The message You can set defaults in Setting -> Sharing will only show on first opened.
    • Added 'Copy' option to default sharing setting in Setting page.
  • Added notification troubleshooter page. (Issue #77)
  • Added fix notification prompt on main page. (Will be shown based on some condition)
  • Changed datatype String to GeoPoint in Feedback page for Position field value.
  • Limit URL string text by one line in FAQs page.
  • Prompt user to provide email (so that I could reply) in Feedback page if the message sounded like a question. (Nah not an AI, just checking if the text contains question mark ?)
  • Main header part (that one houses date and location button, below the appbar) now adapts to its children. Means no longer overflow date/location widget.
  • Fix wrong coloured button in no compass error.
  • Upgrade dependencies.
  • Upgrade Gradle version to 4.1.0. Changed minSdkVersion to 19. Drop supports Android lower than version 4.4 (KitKat).
  • 🆕 [CODE] improvements.
    • Make LocationDatabase static.
    • New DebugToast class.
    • Removed unused notification UI code. Commit bcafcb3
    • FlutterLocalNotificationsPlugin() instance no longer referenced from the main.dart. Commit 555593c.
    • Renamed file cachedPrayerData.dart to temp_prayer_data.dart and probably more that I forgot to take note.
  • Changed SizedBox to Padding widget in app icon (AboutPage) so that the loading indicator will not be clipped & overflowed.
  • Updated Privacy Policy.

Version 1.20.127 4 July 2021

  • Updated Share the app message in Contribution page which now includes both Play Store link and web app link.
  • Rounded corner app icon in About page.
  • New theme changing animation (Sun/Moon animation). Original code from here.
  • Fix cannot open URL in Android 11 (API 30). Removed canLaunch checker and forcewebview parameter.
  • Increase timeout to get GPS to 12s.
  • Rename title to MY Prayer time. Affect recent screen on Android.
  • Minor Provider and GetStorage optimization. Commit ref af1e8f3
  • Showing a proper error screen when no compass sensor exists on device. No more blank grey screen. Fixes #70.
  • Set default Hijri offset to -1. This should affect new installs only. Commit ref 6503b6e
  • Smaller loading indicator in About Page (10px less than the icon). Commit ref d77e4ae
  • Upgrade dependencies.

Version 1.20.120 30 May 2021

  • Introducing Onboarding screen. This screen is shown when user open the app for the first time to setup few settings in app. User can 1) Set location and 2) Set preferred theme. Assets are from BAM Free 3D Illustration Kit. Package used: introduction_screen. Closes #62.
  • Removed Retry button when get location throw an error. Side effect of FutureBuilder implementation.
  • The manual location chooser will refresh regardless of if the previous value is same.
  • Add 10s timeout to get location method.
  • Changes RichText with in ZoneChooser for Error Widget.
  • Changed my Twitter username in About page.
  • Upgrade and update dependencies (incl major).
  • Refactor ZoneChooser class to be more modular so that it can be reusable by in Onboarding Screen.
  • [DEBUG] Add Erase all data to clear all setting. Basically, a GetStorage().erase. You can find it after enabling app's developer mode.
  • [CODE] Migrate from GetX to Provider for ThemeController.
  • [CODE] Some methods are now marked as static so no need to create a new instance of them.
  • [CODE] Changed StreamBuilder to FutureBuilder method for fetching prayer time. As a result, I be able to get rid that old BLoC method implemented in app. This result in creating LocationProvider to assist the operation. Change bitly link to FDL link in copy and share message.
  • Update MPT theme image. 031fd12
  • Remove extra space in ZoneChooser error dialog. 9bc1fb1
  • Snackbar after location has been selected is reduced to 1500ms. 29147d2
  • Reorder About Page list items. Also, added some padding to copyright information. de6adad
  • Adding back location position in debug dialog. Also included in Send Feedback metadata.
  • Add more debug toast where it is necessary.
  • Remove get and rxdart from pubspec.yaml (but these packages are still used by some other dependencies)
  • Changed content padding values in setting some AlertDialog.
  • email_validator. The feedback form will not send if incorrect email format is entered. However, user still can leave the email field empty.
  • Added Frequently Asked Questions (FAQs) page. Items are fetched from cloud database (Firestore). The page can be accessed from About Page or Send Feedback page.
  • Add SizedBox widget at the bottom of setting page to give it breathable space.
  • Bring back the copyright information in About Page.
  • Set addDefaultShareMenuItem to true and set colour navigationBarColor for Chrome Custom Tabs
  • Tell user (toast message) that they will receive a copy of their response if email address is provided.
  • Increase divider thickness to 2 in AboutPage.dart.
  • Added more apps by me link in AboutPage.dart.
  • Restructured text in AboutPage.dart; Added link to e-solat Jakim page and MPTi906 API website.

Version 1.18.98 13 April 2021

  • Temporary fix the offsetted hijri date #54, I just change the assignation for GetStorage() when app started. This will affect only for new installs, where GetStorage() object not existed yet, existing user will need to adjust the hijri date manually. Guide to change offset date can be find here. Change colour for some elements.
  • Hide keyboard after press send in Send feedback option.
  • Change response text after submit feedback.
  • Share/Copy timetable now respect the offset-ed hijri day.

Version 1.18.97 28 March 2021

  • Flutter 2.0
  • Added Scrollbar to the location lists.
  • cloud_firestore, firebase_core, device_info
  • Feedback page redesign, user no longer use email as medium of sending the report. Now the data is sent via Firebase Firestore. The pro of this method is that user can remain anonymous, but it is recommended to provide an email address so that I can contact you for following up the issue.
  • Redesign a little bit in AboutPage.dart including changing font in version text, bring down the copyright legalese.
  • Upgrade most dependencies to null safety versions.
  • Fix attempt for the #56. Not sure about the issue tbh.
  • Fixed offset Hijri date on both web and Android (Issue #59) - Ability to adjust the offset by +-2 days.
  • Enabled multidex (Android)
  • Code cleanup & minor UI fix.

Version 1.15.94 28 September 2021

  • Introduced Share to WhatsApp option. The texts will be formatted beautifully (bold, italic etc.) Default setting can be changed in Setting page. So, there are three options of sharing now. 1- Ask, 2- Plain Text, 3-WhatsApp.
  • Adjustable prayer time text sizes. Defaulted to size 14. Minimum is 12 and can go up to 22. Issue #8.
  • Add http:// to links so other apps (e.g.: WhatsApp/Telegram) can generate a link preview.
  • Upgraded 8 dependencies! Including flutter_svg that caused the release to be delayed (dnfield/flutter_svg#479)
  • Fix CircularProgressIndicator weird size in About page.
  • Add share subject parameter, useful for example, email app.
  • :globe_with_meridians: Added open on web.
  • Fix some Flutter button deprecation including OutlineButton, RaisedButton & FlatButton. Flutter notice.
  • Change some random information. Yea random typo, grammar itu ini.
  • Change Accept this location to Set this location in locationChooser dialog.
  • [CODE] Upgraded flutter_local_notification to 4.0.1. Looking at the changelog, I hoping there is some increase in notification scheduler performance.
  • Others (may) not documented.

Version 1.13.91-hotfix2 19 February 2021

  • Custom fork hijri packages to make it more Malaysian friendly (Huh?). Thanks to Aqil Mohd for the idea.
  • Reverted to the good old mpti906 API (yes again hahaha), no longer use JAKIM API because very often downtime and affected the user experience. Thanks to Aqil Mohd again.
  • Notification threshold until rescheduled reduced to two days (Previously three days).

Version 1.13.89-hotfix 19 February 2021

  • Fixed time conversion conflict when converting 12:00 to epoch, and later affected UI view. It supposed to be converted to 12pm but it was converted to 12am (hshshhs 😆). Closes #49. Thanks to butitik.
  • Change notification naming convention to Malay to make it consistent with the UI, however channel name not (yet) effected. Related to #45. Thanks to Aqil Mohd.

Version 1.13.87 17 February 2021

  • Added geocoding.
  • Prayer time zone is now detected in app. This should fix the issue #28 where some location is wrongly detected.
    • Caveat: Geocoding plugin uses Google Play Service API, so, devices like Huawei may not be supported.
    • Previously, user location is sent to mpti906 API for getting JAKIM code. (Introduced in ver. 1.3.15)
    • Honorable mention to Mr. Aizal Manan who contribute ideas in fixing this issue.
  • Prayer time data now fetched directly from e-solat JAKIM API. No more mpti906 API.
  • Added Qibla compass feature. Thanks to flutter_qiblah and its example (I take most of the code from there hehe 👀)
  • Bump compileSdkVerison and targetSdkVersion to 30 (Android 11 support)
  • Change naming convention to Malay nomenclature #45. However, notification name not effected (or the notification channel will be messed up).
  • [Code] Remove prayer name dart class.
  • Added font_awesome_flutter to replace most of material icons in app.
  • Changes in prayer email feedback template
  • Use BouncingScrollPhysics (like in iOS) in About page. Saja nak kasi kepelbagaian design haha.

Version 1.12.76-stable 27 January 2021

  • Fixed app not responding issue. No automatic notification scheduling when open app or changing theme. It will reschedule back after 3 days on app reopening. Issue #31 solved.
  • Other notification improvements 🔔
    • Expandable when needed, ability to reveal more location text without clipping. Issue #34 solved.
    • Notification gets its own dedicated settings ⚙️. Including troubleshooting option if needed
      • Added ability to limit the notification scheduling. By default, the app will schedule notification until the end of the month. This process is sacrificing performance. UI will feel slow and unresponsive. So, this option is to set the max number of notifications the app can schedule is up to 7 days. Commit reference: df47ffa
      • Added force update notification kForceUpdateNotif in troubleshooting section. In case the user didn't receive any notification in app.
  • Secret debug setting/dialog changes
    • Added developer mode. Long press logo (2 times) on AboutPage to turn it on. (Inspired by Telegram on Android app)
    • Added option to toggle Verbose debug mode on/off. Important information will be shown in toast messages.
    • Added few more fields including last notification get scheduled in DateTime format.
    • When developer mode is already enabled, dialog will shown in the first long press.
  • Categorized according to category. Added padding around heading.
  • Added space between URL and comma in feedback page, some apps will treat the comma is part of URL. Issue #31. Reference commit 60c5e9c
  • Replaced toast Location updated and saved response with Snackbar. (Interfered with some verbose debug features)
  • Fixed all imports. ~20 imports changed to relative path. Thanks to this dart-import extension. Commit reference af1fd4e
  • ScaffoldMessenger.of(context) to fix Scaffold showSnackBar deprecated.
  • Changed theme app mockup images. Firebase link changed. Using Pixel 3a device emulator is kinda cool.
  • Bump device_info: ^1.0.0 package.
  • Added Firebase analytics to Android dependencies. Use for analytics purposes. We do not collect any personal data from the users. Commit reference c8f8072
  • Update copyright year. #40
  • Added JAKIM e-solat link, accessible at Setting/About, the green banner. Clickable.
  • App title in About page changed to MPT 2021 (yeaa happy new year to you too). Copyright text format also fixed.
  • Improved keyword grammatical mistakes in few, random Setting locations.
  • Correctly implements Share the app. Share functionality is now working. Accessible at - Setting/About/Contribution and Support. Commit reference 18a6a19#r46369728
  • Added flutter_web_browser. Some of the link now open in custom tabs, speedy and better experiences.

Version 1.11.55 2 December 2020

  • Daily notification now run isolated from the main thread. This made possible by isolate_handler plugin, and also this gist. #31
    • However, there still a few noticeable slowdowns but it not as severe as the previous release (except when you change theme). Users at least can now change settings (am/pm or show other prayer time) without triggering the notification scheduler again.
  • App will remind users at 00:05 on the first day of the month to open the app for scheduling notification. (As the API only provide prayer data for the current month, notification scheduling for the next month can't be done.)

Version 1.11.53-hotfix.2 30 November 2020

  • Fix notification behavior where it will create new channel for every time the app show notification. See screenshot.
    • If your notification setting is quite mess, it is suggested to uninstall MPT and then reinstall back.
  • Fix grammatical error in notification. (Yes, small things does matter)

Version 1.11.53 29 November 2020

  • Notification reminder is now available for Fajr, Syuruk, Zuhr, Asr, Maghrib, Isya', feature request #25. See also: caveats.
  • Changed GitHub username link (@fareezMaple -> @iqfareez) #27
  • Added rxdart, flutter_local_notifications.
  • Modify donation option the Donation and Support.
  • Added more entries to secret debug dialog.
  • Also added two new entries to feedback page email template.

Version 1.10.51-hotfix 18 November 2020

  • Fixed issue where Labuan (WLY 02) maps to wrong location code. Issue #26. Commit ref 1d2414c
  • Show other prayer time ListTile's is now tappable. Switch can be triggered by tapping on ListTile. Commit ref 058a3f3

Version 1.10.49 12 November 2020

  • Added Imsak, Syuruk and Dhuha time - (Imsak is 10 min before Fajr, Dhuha is 28 min after syuruk). Users need to enable them manually in setting).
  • Security improvement. API call now using https protocol. Thanks to API. Besides, the app no longer use android:usesCleartextTraffic="true" flag in Android Manifest.
  • Fixed 503 error on getting prayer time. (This caused by previous API)
  • Fixed slightly wrong location in Kelantan.
  • Added provider - Users no longer need to restart the app to apply settings.
  • Added auto_size_text - Using smaller date widget, it caused overflowed on devices in small screen.
  • Release notes page now open in browser.
  • Update some dependencies.
  • Code clean-up (Delete unused file from the older API implementation etc.)

Version 1.1.40 20 October 2020

(yes, typo version number🌚)

  • Users are now able to change 12-hour or 24-hour system.
  • Cleaned up menu sheet.
  • Restored error message when failed to connect.
  • Dedicated Settings page.
  • New About Page.

Version 1.6.32-hotfix 1 October 2020

  • MPT is now open sourced 🎉. It is licensed under GPL-3.0.
  • Fixed some text are not readable during light/dark mode. Refer issue #18
  • Cleaned up feedback email template. Removed unwanted content. Refer issue #19
  • Privacy Policy and Release Notes now open in app WebView.
  • Theme page shortcut in bottomAppBar.

Version 1.5.29 18 October 2020

  • Added dark mode. 🌚 Thanks to this article.
  • Refix the issue where user can't copy / share on the first run after installation. #17
  • Depend on get package.
  • In manual location list, currently selected location is now highlighted. This will help user to quickly know which location is currently selected.
  • Simplify feedback page (Removed emoji reaction etc)
  • Increase space between solatCard. Previously 500 was changed to 320 factors.
  • Change splash screen icon to match with app icon.
  • Added Contribution page
  • No longer use restart widget, used streambuilder to refresh prayer time (Safer approach but make the code spaghettier :spaghetti:)
  • Most of FlatButton is changed to TextButton widget. (Flutter 1.22 new widget)
  • Added hint that MPT will become open sourced.
  • Added secret debug dialog. Tap and hold the app icon in about page will.....
  • Toast appears when user select Accept this location in ZoneChooser.
  • Change string Location updated to Location updated and saved to better tell user that their selected location will be preserved.
  • Fix some string grammar / capitalization mistake.
  • Changed Subuh to Fajr and Zohor to Zuhr for more consistent language. (Prayer Time page | Share and Copy)
  • Consistent in capitalization in bottomAppBar options.
  • Code clean-up

Version 1.3.15 29 September 2020

  • Location can be set based on your location (GPS or network) - again, credit to mpti906 API.
    • Added geolocator
    • You need to accept the permission when prompted. If it fails to get gps location, it will fall back to manual selection.
    • Previously set location data may get deleted.
  • Added flutter_spinkit - nice looking loading indicators - Implemented in GetPrayertime and ZonePicker screens.
  • Code reformats, location data no longer fetched from JSON assets, used class instead.

Version 1.2.11 21 September 2020

  • Fixed issue #14: Current API, AzanPro, is out of date from JAKIM and some location shows wrong prayer time. Changed API provider to WaktuSolat API.
  • Added two new permissions in manifest: ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION (to be used later)
  • Removed unused permission: VIBRATE
  • Changed toast response when copy timetable from Copied to Timetable copied.
  • Change material app title to My Prayer Time (more short), this should reflect on Recent Action (Android)
  • Swap Kuala Lumpur, Putrajaya string in location chooser.

Version 1.2.7 16 September 2020

  • Added share
    • Share prayer timetable.
    • FAB end-docked to bottomAppBar.
  • Added copy the whole timetable functionality. Beside menu icon. Basically, copy and share message is the same content.
  • TextAlignment and TextStyle in About Dialog.

Version 1.0.6 8 September 2020

  • Concatenated word Version with version number in About Dialog.
  • Removed word BETA on the AppBar
  • Rate App has been changed to Rate and Review.
  • Added string Prayer time data provided by JAKIM in AboutDialog.
  • Feedback screen now pop itself after send button is pressed.
  • BottomAppBar now pop itself after user tapped into Rate and review

Version 1.0.0 5 September 2020

  • Initial release

5 Jun 2020: Initial commit 🎉

Previous changelog page: mptwaktusolat/app_waktu_solat_malaysia/wiki/Changelog