2019-11-06

MantisDroid v.2.9

MantisDroid and MantisDroid Free has been updated to version 2.9.

A user emailed me yesterday about an issue connecting the app to the server. I registered an account in his MantisBT and everything looked good but the app couldn't connect to the server and the error message in the app was that the URL was incorrect. Very odd.
I hooked up Android Studio and an emulator to his MantisBT and saw what the error message really was:
"cleartext http traffic to not permitted"

A quick googling gave me the following answer:
"Starting with Android 9 (API level 28), cleartext support is disabled by default."
https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted

This is caused by the increased default security configuration in Android. In Android 9 all traffic must be encrypted. His server was not using SSL so Android stopped the communication between the app and the server. I advised him to enable SSL in his server, but I still had to fix this issue since there are users running MantisBT without SSL and I don't think this user will activate SSL immediately.

I made a quick fix with this thread as reference:
https://stackoverflow.com/questions/45940861/android-8-cleartext-http-traffic-not-permitted

Add a new resource: xml/network_security_config.xml with:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <!--Set application-wide security config using base-config tag.-->
    <base-config cleartextTrafficPermitted="true"/>
</network-security-config>

And then add it to the application tag in AndroidManifest.xml:
android:networkSecurityConfig="@xml/network_security_config"

My new CI/CD pipelines in Azure Devops made it very smooth to build and release a new version in just a few hours. When I push the code to GitHub it will automatically build debug versions of the apps. When the debug testing is completed I will manually trigger the pipeline that build release versions and publish them to the internal test track in Play Store. When the beta testing is completed I will trigger the last pipeline that promotes the apps from internal to production.

Release notes:
• Successful deletion of issue will no longer display error message.
• Fixed problem opening attachments.
• Bug fixes and general improvements.
Known issues:
• Upload file from Drive, Dropbox etc does not work.

The fix allowing clear text traffic is not listed since I don't see that as a feature and I don't want users to run MantisBT without SSL.

Check my MantisBT for other bugs and change requests: https://mantis.nextsource.se
Change log for MantisDroid: https://nextsource.se/mantisdroid/

Download apps from Play Store:
MantisDroid MantisDroid Free

2019-10-24

MantisDroid v.2.8

MantisDroid and MantisDroid Free has been updated to version 2.8.
(I haven't blogged about versions 2.6 and 2.7. Check the changelog for all versions here: https://nextsource.se/mantisdroid/)
There has been some major work under the hood to migrate the code to everything new, for example AndroidX. I've also setup a new build pipeline in Microsoft Azure DevOps.

• Fixed crash on open issue.
• Fixed upload attachment problem (solved with new permissions handling).
• Removed scan QR button in login page.
Known issues:
• Upload file from Drive, Dropbox etc does not work.
• Open downloaded attachment fails.
• Delete issues displays error message but issue is deleted. Just refresh issue list.

Check my MantisBT for other bugs and change requests: https://mantis.nextsource.se

Download apps from Play Store:
MantisDroid - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroid
MantisDroid Free - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroidfree

2014-06-10

MantisDroid v.2.5

MantisDroid and MantisDroid Free has been updated to version 2.5.
(Version 2.4 was a small release with just the addition of the closed issues page.)
Settings added:
• Override access level from server. Server will still enforce access level for actions, but you can get more functions activated in the app. Default: server access level.
• Set day limit for recently modified issues. Default: 14 days.
• Show/hide closed issues page. Default: hidden.

Download from Play Store:
MantisDroid - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroid
MantisDroid Free - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroidfree

2014-04-17

MantisDroid v.2.3

MantisDroid and MantisDroid Free has been updated to version 2.3.

Full version:
  • Multiple logins - Easily switch between servers and users.
  • View issues from project details.
  • Custom fields for dates formatted correctly.
  • Trim usernames in login screen.
  • Moved input field for URL in login page to make LastPass "fill into apps" work.
  • Upgraded ksoap2 to fix major problems with some web service implementations.
Free version:
  • Custom fields for dates formatted correctly.
  • Trim usernames in login screen.
  • Moved input field for URL in login page to make LastPass "fill into apps" work.
  • Upgraded ksoap2 to fix major problems with some web service implementations.
Download from Play Store:
MantisDroid - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroid
MantisDroid Free - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroidfree

2013-11-15

MantisDroid v.2.2

MantisDroid and MantisDroid Free has been updated to version 2.2.

-Handle the field "due date".
-Bug fixes.

Download from Play Store:
MantisDroid - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroid
MantisDroid Free - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroidfree

2013-11-11

parse.com-php-library - Contributed with a function in Github

We are using parse.com as the server backend in a project. The administration interface is written in PHP so we are using parse.com-php-library to easily integrate with parse.com.
parse.com-php-library is open source and available on GitHub.

Today we needed a function to filter our records on a specific date in the database.
The most obvious way to solve it was to combine a call to whereGreaterThanOrEqualTo() with a call to whereLessThanOrEqualTo(), but it will not work since it will handle it as an OR query.

The solution was to add a new function to parseQuery.php:
public function whereBetweenOrEqualTo($key, $startValue, $endValue){
   if(isset($key) && isset($startValue) && isset($endValue)){
      $this->_query[$key] = array(
         '$gte' => $startValue,
         '$lte' => $endValue
      );
   }        
   else{
      $this->throwError('the $key, $startValue and $endValue parameters must be set when setting a "where" query method');                
   }
}

We could just have added it to our own parseQuery.php and continued to work, but since it is open source and on GitHub it is very easy to contribute to the original project.

  1. Fork the project you would like to contribute to - Go to the project at the GitHub web page and click the Fork button.
  2. Clone the code to your computer. There is an application for GitHub that will handle repositories on GitHub for you which will make cloning, committing and other tasks very easy.
  3. Make changes to the code.
  4. Commit your changes to your local repository. Use the GitHub application to make it easier.
  5. Push your changes to the remote server. It is called Sync in the GitHub application.
Your changes are now in your the repository that you forked. Make a pull request to let the original repository now that you have made some great additions and changes to the code.

  1. Go to your project and click Pull requests and then New pull request.
  2. Follow the instructions to create a pull request for your changes and write an informative comment: "Fixes #117. Query for between or equal to start and end value."
    Hash + issue number will automatically be linked to the issue number.
  3. If the owner of the original repository likes the changes he/she will add them to the repository.

2013-09-02

MantisDroid v.2.1

MantisDroid and MantisDroid Free has been updated to version 2.1.
Free and full version:
-Share text from other apps to report issue.
-Login help that will popup after three failed login attempts.
-Added simple caching of issues to speed up some operations.
-Mantis URL is added to the feedback mail to make it easier to give support for login problems.

Full version also got:
-Shortcut function to change product, target and fixed version.

Download from Play Store:
MantisDroid - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroid
MantisDroid Free - https://play.google.com/store/apps/details?id=se.nextsource.android.mantisdroidfree