Home

Changelog

#
Version 2.13.0 30 March 2025 | 29 Ramadhan 1446

  • Added ability to share prayer time as image. Now you can easily share the prayer times with your friends and family through a beautifully formatted image. Related to #248. This is the first iteration and will improve in further releases. Feedbacks are welcomed.
  • Added new zone in Pahang: PHG07 - Zon Khas Daerah Rompin, (Mukim Rompin, Mukim Endau, Mukim Pontian). Closes #249.
  • Updated UI for Update Checker page
  • Improved error messages when failed to fetch API data
  • Regenerated Android project with updated Gradle configuration
  • Disabled Impeller renderer on Android
  • Other code optimizations and improvements

#
Version 2.12.7 19 January 2025 | 19 Rejab 1446

  • Enabled additional times (Syuruk, Imsak & Dhuha) by default.

    I received frequent feedback requesting to display the Syuruk/Imsak/Dhuha times. The app already supports this feature and can be enabled in the settings. However, it seems some users don't know how to change the settings. Hence, we've made it on by default. Users can still change this setting in the settings page. Related to issue #171

  • Added grid view layout on tablets & phone landscape. Related issue #175

  • Updated localizations for better language support

  • Fixed issue with GitHub URL on Feedback Page

  • Upgraded dependencies for improved performance and stability

#
Version 2.12.6 11 October 2024 | 8 Rabi'ulakhir 1446

  • Added timezone checker (A banner will appear if device timezone is not the same as Malaysia's) Screenshot
  • (About page) Changed Share button location to side of the app logo - Removed Contributions Page
  • (Full Timetable page) Fixed appbar appearance to increase visibility of background image & text
  • Upgraded dependencies

#
Version 2.12.5 1 September 2024

  • Fixed issue where homescreen widget failed to update in September due to incorrect locale setting. See #244
  • Added onboarding coachmarks for first installs (or first open after the update)
  • Upgraded dependencies

#
Version 2.12.4 17 July 2024 | 10 Muharram 1446

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

#
Version 2.12.3 1 April 2024 | 21 Ramadan 1445

  • Enhanced UX for azan notification, particularly on Android 13+ since they require granting runtime notification permission. This includes displaying permission dialog before actually asking the permission so that users are aware why they need to grant that permission. Also, the app now checks the permission status on startup, and will prompt the user to grant the permission if needed (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 issues regarding the notification/azan such as it not going off, being delayed, etc. This implementation may be temporary.

#
Version 2.12.2 19 February 2024 | 9 Syaa'ban 1445

  • Fixed app crashes on launch on Android 14+ devices if the homescreen widget was added. The crashes are caused because the app is 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

  • Fixed issue where some widget layout would shift due to missing layout_weight property.
  • Added Bahasa Melayu translation in homescreen widget.
  • Prevented crashes in some situations 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
  • Fixed issue where prayer data wouldn't show in homescreen widget when new month comes. Fixed #224
  • Minor adjustment to horizontal homescreen widget layout. Maybe fixes #218
  • Refactored code to adapt new way of listening for app lifecycle events
  • Upgraded pub dependencies

#
Version 2.11.3 15 January 2024 | 3 Rejab 1445

  • Fixed bug on homescreen widget where it shows the incorrect prayer time data. Issue #219. Thanks to MPT user who reported this issue.
  • Made Send button in feedback page larger, easier to find. 13ed004
  • Updated 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 the stability of the app.

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

Other chores:

  • Updated dependencies
  • Updated website, link & references

#
Version 2.11.0 27 December 2023 | 14 J.Akhir 1445

  • Added Android Homescreen widget. Finally closes issue #9
  • Fixed autoscroll 'terlajak' in full prayer timetable. Issue #213
  • Requested 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]
  • Upgraded dependencies
  • Bumped Android minSdkVersion to 21 (Due to fluttertoast plugin)
  • Fixed visual bug that caused the header in full timetable page not reacting on scroll.
  • [DEV]
    • Fixed lints etc.

#
Version 2.9.3 19 October 2023

  • Added missing Malay translations in manual zone selector page
  • Upgraded dependencies (including multiple major version packages)
  • [DEV]
    • Fixed lints rule

#
Version 2.9.2 27 August 2023 | 10 Safar 1445

  • Added monochrome icons variant. For devices with support of theme icons (Android 13+), the app icon will match the system wallpapers. [Screenshots]
  • Updated 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 is full of this issue. 🤷
  • Updated text not visible on button. Screenshot
  • Allowed expired certificate from mpt-server. This is to allow prayer data to be fetched when running on older Android versions.
  • Updated 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
  • Upgraded dependencies (major ones included: http, google_fonts, flutter_local_notifications, app_settings)
  • Possibly fixed error related to notification scheduling. #203
  • Reverted adding the error message in zone_chooser dialog 5adc2cd
  • DEV:
    • Fixed some of the file names with respect to linter rule lowercase_with_underscores
    • Bumped kotlin version to the 1.8.22 (due to app_settings requirement)

#
Version 2.8.3 18 Jun 2023 | 29 Zulkaedah 1444

  • Updated 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.
  • Increased default text size for prayer time text to 16.
  • Relocated the Ads widget to the top. So that the location of floating action button and snackbar are restored.
  • Updated copyright year to 2023 Yeah, I know it's pretty late..
  • Requested 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 receive the scheduled notification after the first launch.
    • Bumped targetSdkVersion to 33
  • Upgraded dependencies
  • Skipped Autostart banner for Samsung devices because it was found unnecessary. 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 (╯°□°)╯︵ ┻━┻
  • Upgraded dependencies

#
Version 2.7.5 15 March 2023 | 22 Sya'ban 1444

  • Fixed Google Play Policy issue. See #180.
  • Upgraded dependencies

#
Version 2.7.4 4 March 2023 | 11 Sya'ban 1444

  • Fixed azan notification issue that plays Azan subuh for every prayer time. 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, added 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 sound like.
  • Minor UI tweak when asking user to restart app after modifying the notification setting. [Screenshot]
  • Upgraded to Flutter 3.7
  • Upgraded 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
  • Updated copyright year (2023)
  • Made banner ads no longer inside a scroll view. This is to comply with 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

  • Upgraded 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
    • Renamed some folders to follow Dart naming convention
    • Started writing some tests
    • Refactored some classes

#
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 appears to be more specific to the location. For example, the app shows Pusat Bandar Wangsa Maju instead of generic Kuala Lumpur. [Screenshot]
  • Added shake widget on onboarding screen for Autostart admonition (not all phones) to alert the users to enable it. [Video]
  • MPT-Server API will now be used as primary API to prayer time data, backed up with JAKIM API.
  • Added keyboard 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.
  • Changed word Frequently Asked Question to Documentation. Since it's no longer points to a faq page in previous releases ago. Screenshot
  • Provided a better error message when getting user's zone is few places where the negeri couldn't be detected. From my triage, it happens when I put the user on the water (sea). #130
  • Fixed incorrect tooltip text on menu button. Screenshot
  • Upgraded 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

  • Upgraded 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.
  • Fixed some typo(s) in app.
  • Fixed unformatted time when copy individual prayer time. Issue #117
  • 'Fixed' certificates issues from JAKIM e-solat portal. Issue #123
  • Made URL open accordingly.In-app browser/External applications
  • Upgraded dependencies
  • Major upgrade grouped_list dependencies.
  • Fixed blurry & jagged tasbih logo on the bottom app bar (Screenshots)
  • Fixed 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 has 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.
  • Fixed missing translation for prayer timetable settings.
  • Gave route name to Navigator.push() for Analytics purposes.
  • Upgraded dependencies
  • Added firebase_analytics.
  • Removed references to hijri offset - no longer needed since the data from JAKIM is considered the most accurate
  • [Dev] Changed 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 shows 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 consumed 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.
  • Upgraded depdendencies
  • Fixed missing translation in Update Checker page.
  • Improved UI & text formatting in Update Checker page. Screenshots.
  • Added semantics in introduction_screen and in ZoneChooser. #97
  • Prevented 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.
    • Reverted 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/rearranged few assets in onboarding screen.
    • 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

  • Built 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.
  • Removed location migration code.
  • Added updates available page. https://imgur.com/a/2FXDNYL
  • Upgraded dependencies including few major. Commit ref 215d46a
  • Code related changes
    • Changed describeEnum to byName method in Theme Setting. (New in Dart 2.15). Commit ref 7db2ffd
    • Organized imports. Commit ref 693830e

#
Version 2.2.8-hotfix.1 23 November 2021

  • Upgraded 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.
  • Removed auto_size_text.
  • Upgraded 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-enabled Salam Jumaat wish in notification. #81
  • Removed 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.
  • Beautified qibla calibrate dialog.
  • Upgraded 4 major dependencies & 47 other dependencies.
  • Dropped support for Android 4.4 and below. Changed compileSdkVersion to 31 & minSdkVersion to 20 in build.gradle file.
  • Implemented 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)
  • Simplified devlog instagram URL
  • Minor UI changes divider in About Page.

#
Version 2.2.4-hotfix 1 October 2021

  • Fixed 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.
  • Updated 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.
  • Temporarily disabled 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 won't have to scroll too 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.
  • Fixed overflow Inkwell in About dialog buttons.
  • Made azan notification as default.
  • Removed reference to mpti906 in About Dialog.
  • Upgraded some dependencies
  • Other code cleanups, incl. purging unused reference, code & constants.

#
Version 2.1.0 2 September 2021

  • Fixed wrong zone for some Sarawak district - Fixed 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.
  • Adjusted link text colour contrast to improve readability in About page.
  • Upgraded 19+ dependencies.

#
Version 2.0.0 31 August 2021

  • 🚛 Migrated 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)
    • Prompted existing user to change to azan notification.
  • Removed 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 gets delayed). Closes #71
  • Added flutter_restart - To easily restart the app natively.
  • Updated Privacy Policy.
  • Resized image assets (smaller).
  • Reduced snackbar time and simplified text (for Location Chooser).
  • Removed old hijri offset setting.
  • Added some Padding to loading & error animation (in GetPrayerTime).
  • Removed 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. (https://jsontodart.zariman.dev is quite nice tool)
  • Better error messages for ZoneChooser and GetPrayerTime.
  • Threw 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.
  • Limited URL string text by one line in FAQs page.
  • Prompted 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.
  • Fixed wrong coloured button in no compass error.
  • Upgraded dependencies.
  • Upgraded Gradle version to 4.1.0. Changed minSdkVersion to 19. Drop supports Android lower than version 4.4 (KitKat).
  • 🆕 [CODE] improvements.
    • Made 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.
  • Fixed cannot open URL in Android 11 (API 30). Removed canLaunch checker and forcewebview parameter.
  • Increased timeout to get GPS to 12s.
  • Renamed 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
  • Upgraded 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.
  • Added 10s timeout to get location method.
  • Changed RichText with Text.rich in ZoneChooser for Error Widget.
  • Changed my Twitter username in About page.
  • Upgraded and updated dependencies (incl major).
  • Refactored ZoneChooser class to be more modular so that it can be reusable by in Onboarding Screen.
  • [DEBUG] Added Erase all data to clear all setting. Basically, a GetStorage().erase. You can find it after enabling app's developer mode.
  • [CODE] Migrated 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. Changed bitly link to FDL link in copy and share message.
  • Updated MPT theme image. 031fd12
  • Removed extra space in ZoneChooser error dialog. 9bc1fb1
  • Snackbar after location has been selected is reduced to 1500ms. 29147d2
  • Reordered About Page list items. Also, added some padding to copyright information. de6adad
  • Added back location position in debug dialog. Also included in Send Feedback metadata.
  • Added more debug toast where it is necessary.
  • Removed 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.
  • Added SizedBox widget at the bottom of setting page to give it breathable space.
  • Brought back the copyright information in About Page.
  • Set addDefaultShareMenuItem to true and set colour navigationBarColor for Chrome Custom Tabs
  • Told user (toast message) that they will receive a copy of their response if email address is provided.
  • Increased 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

  • Temporarily fixed 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. Changed colour for some elements.
  • Hide keyboard after press send in Send feedback option.
  • Changed 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.
  • Redesigned a little bit in AboutPage.dart including changing font in version text, bring down the copyright legalese.
  • Upgraded most dependencies to null safety versions.
  • 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.
  • Added 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)
  • Fixed CircularProgressIndicator weird size in About page.
  • Added share subject parameter, useful for example, email app.
  • :globe_with_meridians: Added open on web.
  • Fixed some Flutter button deprecation including OutlineButton, RaisedButton & FlatButton. Flutter notice.
  • Changed some random information. Yea random typo, grammar itu ini.
  • Changed 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 (😆). Closes #49. Thanks to butitik.
  • Changed 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 👀)
  • Bumped compileSdkVerison and targetSdkVersion to 30 (Android 11 support)
  • Changed naming convention to Malay nomenclature #45. However, notification name not effected (or the notification channel will be messed up).
  • [Code] Removed prayer name dart class.
  • Added font_awesome_flutter to replace most of material icons in app.
  • Changes in prayer email feedback template
  • Used 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.
  • Bumped 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
  • Updated 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 implemented 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

  • Fixed 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.
  • Fixed 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.
  • Modified 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 https://mpt.i906.my/ 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.
  • Updated 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.
  • Simplified feedback page (Removed emoji reaction etc)
  • Increased space between solatCard. Previously 500 was changed to 320 factors.
  • Changed 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.
  • Changed string Location updated to Location updated and saved to better tell user that their selected location will be preserved.
  • Fixed 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.
  • Changed material app title to My Prayer Time (more short), this should reflect on Recent Action (Android)
  • Swapped 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