Welcome to my personal blog!

I am doing software development in many areas, with my main fields of experience being cross-platform software (C++/Qt), Android apps (native), Linux & DevOps (Bash/Python/Ruby, Docker, ...).

Open Source is one of my passions -- I am a developer and maintainer of many open projects and regularly start contributing to additional ones. Support me on my mission! My other favourite activities include photography and being outdoor as much as possible. I am too volunteering at the local fire department. I went to school at HTL Braunau (Electronics / Software Engineering & Mobile Computing), studied at FH Hagenberg (Mobile Computing) and work currently at Felgo.

This post is is about one simple java class which can parse m3u playlists containing radio and IPTV video streams.
Simply add the SimpleM3UParser.java class to your Java or Android project to get started.

Parse streams, display in list and play

With this class it’s very easy to get a list of streams:

List<SimpleM3UParser.M3U_Entry> playlist = new SimpleM3UParser().parse("/filepath/to/streams.m3u");

Below is a screenshot of my personal IPTV Android app that my family uses since years to watch IPTV streams. It uses SimpleM3UParser. The screenshot also contains the file structure and structure of a m3u/m3u8 playlist for live streams. (same structure as seen at examples in source code file)

Image

The list in the screenshot is a ListView with simple Image/TextViews. When clicking a item, playback starts. If you want to play using an external media player app on Android, here’s a snippet for VLC media player:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndTypeAndNormalize(Uri.parse(playlist.get(INDEX).getUrl()), "video/*");
intent.setPackage("org.videolan.vlc");
activity.startActivity(intent);

Give me the code!

Code for parser and complete examples is available for Download from GitHub and licensed Apache 2.0.

Additional info

  • Looking for URLs of legal live streams? Take a look at KodiNerds-IPTV.
  • What is the reason for this blog post?
    • I noticed multiple people asking for a simple free & open source app for watching IPTV streams, especially in F-Droid community chat & forum.
    • Be it open source or not, this is blog post and associated code may be the starting point of your new IPTV & streaming app!

Read more

Markor v2.0 update is out! Get the update now from Google Play, GitHub or F-Droid!
Continue reading to find out what’s new, improved and fixed in this update.


File search has returned to Markor! Search is decoupled from file browser and supports recursive file search.
In the editor there is also a new dedicated button in the menu toolbar for search.
Now there is always a search button available in all type of pages, even better it’s always at the same position.

Showcase


Improved image, PDF sharing and printing

The color scheme is now automatically switched to light with white background, when sharing or exporting a document as PDF or image. As PDF export and printing uses the same Android feature, the improvement is also available for priting.

With this change, Markor will always automatically generate clean white documents for you (without theme specific background color), perfect for printing.


Improved file handling

Markor will ask now if a file should be opened inside editor, if it’s one of the extended list of expected file typs. You will now get a dialog to choose between Markor or external app. This list of file types includes but is not limited to data exchange (like csv, json, xml, yaml) and development (c++, java, python, ruby, golang, bash) files types.

There is also a new settings option in the general section, which allows to specify a comma seperated list of file extensions that always should be opened with Markor. If you want to open files with .gradle and .pro extension, as well files without extension: None, .mytype.

Various improvements

  • Always view files starting with “index.”
  • Setting to configure wrap mode (=line breaking)
  • Menu option for reload file (editor/viewer)
  • Menu option for hiding files & folders starting with a dot
  • Setting to set tab width
  • Improve back button when always start view mode is set
  • Keep file browser sort order
  • Improve inline code highlighting
  • Add new line when archiving tasks

Read more

Markor v1.8 update is out! Get the update now from Google Play, GitHub or F-Droid!
Continue reading to find out what’s new, improved and fixed in this update.


All new file browser

Showcase

  • The old file browser was removed and replaced by a new compact solution. It is based on the file browser known from import dialog.
  • The previous “Notebook” tab in the main screen is now called “Files”. Notebook is now just your document “home” folder.
  • You can now freely navigate the filesystem and all files are shown (previously: only folders and text documents).


Favourites

  • Add any file or folder to your favourites! Long press a file/folder and tap the star button to add to or remove from favourites.
  • Favourite files are highlighted by Markor’s red accent color.
  • Use the new quick navigation menu option to quickly navigate to your favourites, recently viewed files and more.
  • Favourites are listed as normal files/folders in the file browser. They appear virtual under the special folder /storage/favourite-files. When a folder gets selected, the file browser will navigate to the real folder. Files get opened.
  • You can also set Favourites as default folder to load on app start. Check out the blog post section about settings!


Improved SD Card support

Showcase

  • Markor now uses the Android Storage Access Framework to access SD cards.
  • To mount a SD card (so files can be edited by Markor), navigate to the SD card folder.
  • (first screenshot) Press the + button and a descrptive dialog appears.
  • (second screenshot) Follow the steps shown in the dialog to give Markor access to your SD card.
  • (third screenshot) Files on the SD card are not striked out anymore, which means Markor has write access to the file/folder.


New and updated Settings

Showcase


App start folder

You can find this new option at General -> App start folder. It allows you to select the special folder to load when Markor starts. The default is Notebook.
Do you want multiple Notebooks? Favourite multiple folders and set the start folder to Favourites ツ.


Additional fonts

Showcase

Add custom fonts to Markor!

Custom fonts do change the default text appearance in edit & view mode. They work just as system fonts do, but you need to install for them to appear.

Install font: Copy font to one of these locations:

  • (Markor-)Notebook/.app/fonts/
  • /storage/emulated/0/Fonts/

Select font: Settings option at Editor -> Document Editor Font

  • 1: System (default) fonts are always listed on top.
    • The default option is Roboto Regular (sans-serif-regular)
  • 2/3: Custom fonts are listed below system fonts. The font name is taken from the filename. To identify the correct font the absolute path is shown as well. Custom fonts are ordered as listed in Install font
  • 4: Bundled fonts


Bundled fonts

Markor bundles thes additional fonts (free & open license only):

FontAlternative toKnown from
Liberation MonoCourier NewMicrosoft Wordpad
Liberation SansArialGoogle Docs
Liberation SerifTimes New RomanPrevious default Microsoft Word font
Open SansCalibriDefault Microsoft Word font
Roboto SlabGoogle Keep
DejaVu SansLinux desktop, Firefox
DejaVu Sans MonoLinux terminals (=Monospaced)
UbuntuDefault font on Ubuntu desktops
LatoPopular font for websites
Source Sans ProPopular font for websites
Source Serif ProPopular font for websites
Source Code ProPopular font for editing code

Changelog


  • Show app intro at first start
  • All new file navigation
  • Add favourite files
  • Add quick navigiation options (to notebook, sdcard, AppData and more)
  • Add option to set Navigation-Bar color
  • Combine edit & view mode to one fragment, show view as overlay
  • Add horizontal scrolling for code blocks in view mode
  • More efficient undo/redo
  • Option to enable/disable swipe to change mode
  • WikiLinks: Disable default escaped characters, so subfolder path is not converted to hyphen
  • Added fonts: Source Pro, DejaVu Sans Mono, Ubuntu, Lato
  • Scan storage Fonts folder for custom fonts
  • Add word count to document info dialog

Notice: Development changelog is always available from GitHub. See the commit history for code changes.


Update stats

  • Two first-time-contributors and zero previous contributors improved the source code of the Markor project in this update. Learn how you can improve the project by code
  • In this update totally 72 commits were made, 130 changed files, 5.001 additions and 2.249 deletions.
  • There were totally 7 minor releases in prepartion of this update.
  • 36 new strings were added for translation. 67 contributors are now translating the Markor project. Help by translating Markor into your language.


Give feedback

  • AlternativeTo
  • Google Play
  • Mastodon / G-Droid / F-Droid: Toot a message starting with (copy paste):
    @gdroid@mastodon.technology #net_gsantner_markor #fdroid_app_comments #markor @gsantner@friendica.feneas.org Markor feedback:
    

Read more