diff --git a/metadata/com.quaap.launchtime.txt b/metadata/com.quaap.launchtime.txt
deleted file mode 100644
index e440eaddbc..0000000000
--- a/metadata/com.quaap.launchtime.txt
+++ /dev/null
@@ -1,127 +0,0 @@
-Categories:System
-License:GPL-3.0-or-later
-Web Site:http://quaap.com/D/LaunchTime
-Source Code:https://github.com/quaap/LaunchTime
-Issue Tracker:https://github.com/quaap/LaunchTime/issues
-Changelog:https://github.com/quaap/LaunchTime/releases
-Donate:https://paypal.me/quaap
-
-Auto Name:LaunchTime
-
-Repo Type:git
-Repo:https://github.com/quaap/LaunchTime
-
-Build:0.1,1
-    commit=v0.1
-    subdir=app
-    gradle=yes
-
-Build:0.2,2
-    commit=v0.2
-    subdir=app
-    gradle=yes
-
-Build:0.3,3
-    commit=v0.3
-    subdir=app
-    gradle=yes
-
-Build:0.4,4
-    commit=v0.4
-    subdir=app
-    gradle=yes
-
-Build:0.5,5
-    commit=v0.5
-    subdir=app
-    gradle=yes
-
-Build:0.5.1,51
-    commit=v0.5.1
-    subdir=app
-    gradle=yes
-
-Build:0.5.2,52
-    commit=v0.5.2
-    subdir=app
-    gradle=yes
-
-Build:0.5.3,53
-    commit=v0.5.3
-    subdir=app
-    gradle=yes
-
-Build:0.6.0,60
-    commit=v0.6.0
-    subdir=app
-    gradle=yes
-
-Build:0.7.0,70
-    commit=v0.7.0
-    subdir=app
-    gradle=yes
-
-Build:0.7.1,71
-    commit=v0.7.1
-    subdir=app
-    gradle=yes
-
-Build:0.7.2,72
-    commit=v0.7.2
-    subdir=app
-    gradle=yes
-
-Build:0.7.3,73
-    commit=v0.7.3
-    subdir=app
-    gradle=yes
-
-Build:0.7.4,74
-    commit=v0.7.4
-    subdir=app
-    gradle=yes
-
-Build:0.7.5,75
-    commit=v0.7.5
-    subdir=app
-    gradle=yes
-
-Build:0.7.6,76
-    commit=v0.7.6
-    subdir=app
-    gradle=yes
-
-Build:0.8.0,801
-    commit=v0.8.0
-    subdir=app
-    gradle=yes
-
-Build:0.8.1,810
-    commit=v0.8.1
-    subdir=app
-    gradle=yes
-
-Build:0.8.2,820
-    commit=v0.8.2
-    subdir=app
-    gradle=yes
-
-Build:0.8.3,830
-    commit=v0.8.3
-    subdir=app
-    gradle=yes
-
-Build:0.8.4,840
-    commit=v0.8.4
-    subdir=app
-    gradle=yes
-
-Build:0.8.5,850
-    commit=v0.8.5
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags ^v[0-9\.]+$
-Current Version:0.8.5
-Current Version Code:850
diff --git a/metadata/com.quaap.launchtime.yml b/metadata/com.quaap.launchtime.yml
new file mode 100644
index 0000000000..9d85862a39
--- /dev/null
+++ b/metadata/com.quaap.launchtime.yml
@@ -0,0 +1,173 @@
+Categories:
+  - System
+License: GPL-3.0-or-later
+WebSite: http://quaap.com/D/LaunchTime
+SourceCode: https://github.com/quaap/LaunchTime
+IssueTracker: https://github.com/quaap/LaunchTime/issues
+Changelog: https://github.com/quaap/LaunchTime/releases
+Donate: https://paypal.me/quaap
+
+AutoName: LaunchTime
+
+RepoType: git
+Repo: https://github.com/quaap/LaunchTime
+
+Builds:
+  - versionName: '0.1'
+    versionCode: 1
+    commit: v0.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '0.2'
+    versionCode: 2
+    commit: v0.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '0.3'
+    versionCode: 3
+    commit: v0.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '0.4'
+    versionCode: 4
+    commit: v0.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '0.5'
+    versionCode: 5
+    commit: v0.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.5.1
+    versionCode: 51
+    commit: v0.5.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.5.2
+    versionCode: 52
+    commit: v0.5.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.5.3
+    versionCode: 53
+    commit: v0.5.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.6.0
+    versionCode: 60
+    commit: v0.6.0
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.7.0
+    versionCode: 70
+    commit: v0.7.0
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.7.1
+    versionCode: 71
+    commit: v0.7.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.7.2
+    versionCode: 72
+    commit: v0.7.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.7.3
+    versionCode: 73
+    commit: v0.7.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.7.4
+    versionCode: 74
+    commit: v0.7.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.7.5
+    versionCode: 75
+    commit: v0.7.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.7.6
+    versionCode: 76
+    commit: v0.7.6
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.8.0
+    versionCode: 801
+    commit: v0.8.0
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.8.1
+    versionCode: 810
+    commit: v0.8.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.8.2
+    versionCode: 820
+    commit: v0.8.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.8.3
+    versionCode: 830
+    commit: v0.8.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.8.4
+    versionCode: 840
+    commit: v0.8.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.8.5
+    versionCode: 850
+    commit: v0.8.5
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags ^v[0-9\.]+$
+CurrentVersion: 0.8.5
+CurrentVersionCode: 850
diff --git a/metadata/com.quaap.phonefonefun.txt b/metadata/com.quaap.phonefonefun.txt
deleted file mode 100644
index 5a4d2e2c2c..0000000000
--- a/metadata/com.quaap.phonefonefun.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-Categories:Games
-License:GPL-3.0-only
-Web Site:http://quaap.com/D/PhoneFoneFun
-Source Code:https://github.com/quaap/PhoneFoneFun
-Issue Tracker:https://github.com/quaap/PhoneFoneFun/issues
-Changelog:https://github.com/quaap/PhoneFoneFun/releases
-Donate:https://paypal.me/quaap
-
-Auto Name:PhoneFoneFun
-Summary:A playphone for toddlers
-Description:
-A simple play phone/fone for young children. Makes accurate phone noises and can
-also speak using Text-to-speech. I've tested with my own 2.5 year-old, and he
-loves it!
-
-Creates a standard "old-school" cell phone which can beep like a real phone, say
-numbers and make a fake conversation (using text-to-speech).
-.
-
-Repo Type:git
-Repo:https://github.com/quaap/PhoneFoneFun
-
-Build:1.2,12
-    commit=v1.2
-    subdir=app
-    gradle=yes
-
-Build:1.3,13
-    commit=v1.3
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags ^v[0-9\.]+$
-Current Version:1.3
-Current Version Code:13
diff --git a/metadata/com.quaap.phonefonefun.yml b/metadata/com.quaap.phonefonefun.yml
new file mode 100644
index 0000000000..3537b04305
--- /dev/null
+++ b/metadata/com.quaap.phonefonefun.yml
@@ -0,0 +1,41 @@
+Categories:
+  - Games
+License: GPL-3.0-only
+WebSite: http://quaap.com/D/PhoneFoneFun
+SourceCode: https://github.com/quaap/PhoneFoneFun
+IssueTracker: https://github.com/quaap/PhoneFoneFun/issues
+Changelog: https://github.com/quaap/PhoneFoneFun/releases
+Donate: https://paypal.me/quaap
+
+AutoName: PhoneFoneFun
+Summary: A playphone for toddlers
+Description: |-
+    A simple play phone/fone for young children. Makes accurate phone noises and can
+    also speak using Text-to-speech. I've tested with my own 2.5 year-old, and he
+    loves it!
+
+    Creates a standard "old-school" cell phone which can beep like a real phone, say
+    numbers and make a fake conversation (using text-to-speech).
+
+RepoType: git
+Repo: https://github.com/quaap/PhoneFoneFun
+
+Builds:
+  - versionName: '1.2'
+    versionCode: 12
+    commit: v1.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '1.3'
+    versionCode: 13
+    commit: v1.3
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags ^v[0-9\.]+$
+CurrentVersion: '1.3'
+CurrentVersionCode: 13
diff --git a/metadata/com.quaap.primary.txt b/metadata/com.quaap.primary.txt
deleted file mode 100644
index f2c32fd2aa..0000000000
--- a/metadata/com.quaap.primary.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-Categories:Science & Education,Games
-License:GPL-3.0-or-later
-Web Site:http://quaap.com/D/Primary
-Source Code:https://github.com/quaap/Primary
-Issue Tracker:https://github.com/quaap/Primary/issues
-Donate:https://paypal.me/quaap
-
-Auto Name:Primary
-Summary:A simple educational practice game for kids (and adults).
-Description:
-Primary is a slightly gamified educational application aimed at Primary
-(Elementary) school-aged children, but of course adults who wish to sharpen
-their skills will find it useful as well.  There are levels dealing with basic
-math, sorting, clocks, spelling, plurals, etc., with new subjects planned for
-the future.
-
-See the website for a full list of subjects and features.
-.
-
-Repo Type:git
-Repo:https://github.com/quaap/Primary
-
-Build:0.1,1
-    commit=v0.1
-    subdir=app
-    gradle=yes
-
-Build:0.2,2
-    commit=v0.2
-    subdir=app
-    gradle=yes
-
-Build:0.3,3
-    commit=v0.3
-    subdir=app
-    gradle=yes
-
-Build:0.3.1,31
-    commit=v0.3.1
-    subdir=app
-    gradle=yes
-
-Build:0.3.2,32
-    commit=v0.3.2
-    subdir=app
-    gradle=yes
-
-Build:0.3.3,33
-    commit=v0.3.3
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:0.3.3
-Current Version Code:33
diff --git a/metadata/com.quaap.primary.yml b/metadata/com.quaap.primary.yml
new file mode 100644
index 0000000000..8d42fb9587
--- /dev/null
+++ b/metadata/com.quaap.primary.yml
@@ -0,0 +1,70 @@
+Categories:
+  - Science & Education
+  - Games
+License: GPL-3.0-or-later
+WebSite: http://quaap.com/D/Primary
+SourceCode: https://github.com/quaap/Primary
+IssueTracker: https://github.com/quaap/Primary/issues
+Donate: https://paypal.me/quaap
+
+AutoName: Primary
+Summary: A simple educational practice game for kids (and adults).
+Description: |-
+    Primary is a slightly gamified educational application aimed at Primary
+    (Elementary) school-aged children, but of course adults who wish to sharpen
+    their skills will find it useful as well.  There are levels dealing with basic
+    math, sorting, clocks, spelling, plurals, etc., with new subjects planned for
+    the future.
+
+    See the website for a full list of subjects and features.
+
+RepoType: git
+Repo: https://github.com/quaap/Primary
+
+Builds:
+  - versionName: '0.1'
+    versionCode: 1
+    commit: v0.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '0.2'
+    versionCode: 2
+    commit: v0.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '0.3'
+    versionCode: 3
+    commit: v0.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.3.1
+    versionCode: 31
+    commit: v0.3.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.3.2
+    versionCode: 32
+    commit: v0.3.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 0.3.3
+    versionCode: 33
+    commit: v0.3.3
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: 0.3.3
+CurrentVersionCode: 33
diff --git a/metadata/com.rareventure.gps2.txt b/metadata/com.rareventure.gps2.txt
deleted file mode 100644
index 6b016eae1d..0000000000
--- a/metadata/com.rareventure.gps2.txt
+++ /dev/null
@@ -1,466 +0,0 @@
-Categories:Navigation
-License:GPL-3.0-only
-Web Site:
-Source Code:https://github.com/redfish64/TinyTravelTracker
-Issue Tracker:https://github.com/redfish64/TinyTravelTracker/issues
-
-Auto Name:Tiny Travel Tracker
-Summary:Secure long term GPS tracker and log
-Description:
-Track your geolocation with timestamps and notes.
-
-Features:
-
-* It keeps track of it's own battery usage to prevent excessive battery drain.
-* It can handle hundreds of thousands of points.
-* The data is encrypted using 256 AES keys and can be password protected.
-* It doesn't upload data to any website but remains on your phone at all times -- and data is easily wiped away by uninstalling the app.
-
-It's meant for both traveling to far off places and reviewing your day to day
-activities.
-
-It can find the answer to questions such as:
-
-* Where did I really go when I got lost on top of that mountain?
-* How many times have I been to the gym in the last month?
-* Where are some different routes to work that I haven't tried yet, and how long to the routes I choose actually take?
-* How many hours have I actually spent in that pool hall?
-* What did I do all day on October 27th, 2010?
-* Where was that little shop I visited when I was wandering around Tokyo?
-
-It also is useful in situations where you don't have internet access. All map
-tiles previously viewed are cached on the phone, so even without internet, you
-can use the map as long as you've looked at previously viewed area. In addition,
-since the GPS points are stored on the phone, they are always present,
-regardless of internet availability.
-.
-
-Repo Type:git
-Repo:https://github.com/redfish64/TinyTravelTracker
-
-Build:1.0.11,36
-    disable=remove apk
-    commit=fc48b08b9f57aa8807957d1696c54d4766ea6147
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.12,37
-    commit=ce30ce7a00a4f815b560ba57b57975cf3de9f22a
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.13,38
-    commit=v1.0.13
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.14,39
-    commit=v1.0.14
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.15,40
-    commit=v1.0.15
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.16,41
-    commit=v1.0.16
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.16.1,42
-    commit=v1.0.16.1
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.16.2,43
-    commit=v1.0.16.2
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-
-Build:1.0.1.2,46
-    disable=version conflicts
-    commit=none
-
-Build:1.1.3,47
-    disable=doesn't build
-    commit=v1.1.3
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.4,48
-    disable=doesn't build
-    commit=v1.1.4
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.5,49
-    commit=v1.1.5
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.7,51
-    commit=v1.1.7
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.8,52
-    commit=v1.1.8
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.10,54
-    commit=v1.1.10
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.13,57
-    disable=gradle
-    commit=v1.1.13
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.14,58
-    commit=v1.1.14
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.15,59
-    commit=v1.1.15
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.17,61
-    commit=v1.1.17
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.19,63
-    commit=v1.1.19
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.20,64
-    commit=v1.1.20
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.21,65
-    commit=v1.1.21
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.22,66
-    commit=v1.1.22
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.23,67
-    commit=v1.1.23
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.24,68
-    commit=v1.1.24
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.25,69
-    commit=v1.1.25
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew && \
-        chmod +x ../lib/tangram-es/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar libs
-    ndk=r10e
-
-Build:1.1.27,71
-    commit=v1.1.27
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-full-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew && \
-        chmod +x ../lib/tangram-es/platforms/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar libs/tangram-full-release.aar
-    ndk=r13b
-
-Build:1.1.28,72
-    commit=v1.1.28
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-full-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew && \
-        chmod +x ../lib/tangram-es/platforms/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar libs/tangram-full-release.aar
-    ndk=r13b
-
-Build:1.1.29,73
-    commit=v1.1.29
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-full-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew && \
-        chmod +x ../lib/tangram-es/platforms/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar libs/tangram-full-release.aar
-    ndk=r13b
-
-Build:1.1.30,74
-    commit=v1.1.30
-    subdir=app
-    submodules=yes
-    gradle=yes
-    prebuild=mkdir -p libs && \
-        touch libs/tangram-full-release.aar #gradle clean will barf if this file doesn't exist
-    scanignore=app/src/main/resources/org/joda/time/tz/data
-    build=echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew && \
-        chmod +x ../lib/tangram-es/platforms/android/gradlew && \
-        ../lib/tangram-es/android_aar_build.sh && \
-        cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar libs/tangram-full-release.aar
-    ndk=r13b
-
-Build:1.1.34,77
-    commit=v1.1.34
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.35,78
-    commit=v1.1.35
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.36,79
-    commit=v1.1.36
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.37,80
-    commit=v1.1.37
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.38,81
-    commit=v1.1.38
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.39,82
-    commit=v1.1.39
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.40,83
-    commit=v1.1.40
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.41,84
-    commit=v1.1.41
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.42,85
-    commit=v1.1.42
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.43,86
-    commit=v1.1.43
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.44,87
-    commit=v1.1.44
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Build:1.1.45,88
-    commit=v1.1.45
-    subdir=app
-    gradle=yes
-    scanignore=app/src/main/resources/org/joda/time/tz/data,app/src/main/assets/fonts
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:1.1.45
-Current Version Code:88
diff --git a/metadata/com.rareventure.gps2.yml b/metadata/com.rareventure.gps2.yml
new file mode 100644
index 0000000000..360b3eec7d
--- /dev/null
+++ b/metadata/com.rareventure.gps2.yml
@@ -0,0 +1,686 @@
+Categories:
+  - Navigation
+License: GPL-3.0-only
+SourceCode: https://github.com/redfish64/TinyTravelTracker
+IssueTracker: https://github.com/redfish64/TinyTravelTracker/issues
+
+AutoName: Tiny Travel Tracker
+Summary: Secure long term GPS tracker and log
+Description: |-
+    Track your geolocation with timestamps and notes.
+
+    Features:
+
+    * It keeps track of it's own battery usage to prevent excessive battery drain.
+    * It can handle hundreds of thousands of points.
+    * The data is encrypted using 256 AES keys and can be password protected.
+    * It doesn't upload data to any website but remains on your phone at all times -- and data is easily wiped away by uninstalling the app.
+
+    It's meant for both traveling to far off places and reviewing your day to day
+    activities.
+
+    It can find the answer to questions such as:
+
+    * Where did I really go when I got lost on top of that mountain?
+    * How many times have I been to the gym in the last month?
+    * Where are some different routes to work that I haven't tried yet, and how long to the routes I choose actually take?
+    * How many hours have I actually spent in that pool hall?
+    * What did I do all day on October 27th, 2010?
+    * Where was that little shop I visited when I was wandering around Tokyo?
+
+    It also is useful in situations where you don't have internet access. All map
+    tiles previously viewed are cached on the phone, so even without internet, you
+    can use the map as long as you've looked at previously viewed area. In addition,
+    since the GPS points are stored on the phone, they are always present,
+    regardless of internet availability.
+
+RepoType: git
+Repo: https://github.com/redfish64/TinyTravelTracker
+
+Builds:
+  - versionName: 1.0.11
+    versionCode: 36
+    disable: remove apk
+    commit: fc48b08b9f57aa8807957d1696c54d4766ea6147
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.12
+    versionCode: 37
+    commit: ce30ce7a00a4f815b560ba57b57975cf3de9f22a
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.13
+    versionCode: 38
+    commit: v1.0.13
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.14
+    versionCode: 39
+    commit: v1.0.14
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.15
+    versionCode: 40
+    commit: v1.0.15
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.16
+    versionCode: 41
+    commit: v1.0.16
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.16.1
+    versionCode: 42
+    commit: v1.0.16.1
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.16.2
+    versionCode: 43
+    commit: v1.0.16.2
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+
+  - versionName: 1.0.1.2
+    versionCode: 46
+    disable: version conflicts
+    commit: none
+
+  - versionName: 1.1.3
+    versionCode: 47
+    disable: doesn't build
+    commit: v1.1.3
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.4
+    versionCode: 48
+    disable: doesn't build
+    commit: v1.1.4
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.5
+    versionCode: 49
+    commit: v1.1.5
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.7
+    versionCode: 51
+    commit: v1.1.7
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.8
+    versionCode: 52
+    commit: v1.1.8
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.10
+    versionCode: 54
+    commit: v1.1.10
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.13
+    versionCode: 57
+    disable: gradle
+    commit: v1.1.13
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.14
+    versionCode: 58
+    commit: v1.1.14
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.15
+    versionCode: 59
+    commit: v1.1.15
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.17
+    versionCode: 61
+    commit: v1.1.17
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.19
+    versionCode: 63
+    commit: v1.1.19
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.20
+    versionCode: 64
+    commit: v1.1.20
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.21
+    versionCode: 65
+    commit: v1.1.21
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.22
+    versionCode: 66
+    commit: v1.1.22
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.23
+    versionCode: 67
+    commit: v1.1.23
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.24
+    versionCode: 68
+    commit: v1.1.24
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.25
+    versionCode: 69
+    commit: v1.1.25
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-release.aar #gradle clean will barf if this file doesn't\
+        \ exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/android/gradlew
+      - chmod +x ../lib/tangram-es/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/android/tangram/build/outputs/aar/tangram-release.aar
+        libs
+    ndk: r10e
+
+  - versionName: 1.1.27
+    versionCode: 71
+    commit: v1.1.27
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-full-release.aar #gradle clean will barf if this file\
+        \ doesn't exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew
+      - chmod +x ../lib/tangram-es/platforms/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar
+        libs/tangram-full-release.aar
+    ndk: r13b
+
+  - versionName: 1.1.28
+    versionCode: 72
+    commit: v1.1.28
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-full-release.aar #gradle clean will barf if this file\
+        \ doesn't exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew
+      - chmod +x ../lib/tangram-es/platforms/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar
+        libs/tangram-full-release.aar
+    ndk: r13b
+
+  - versionName: 1.1.29
+    versionCode: 73
+    commit: v1.1.29
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-full-release.aar #gradle clean will barf if this file\
+        \ doesn't exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew
+      - chmod +x ../lib/tangram-es/platforms/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar
+        libs/tangram-full-release.aar
+    ndk: r13b
+
+  - versionName: 1.1.30
+    versionCode: 74
+    commit: v1.1.30
+    subdir: app
+    submodules: true
+    gradle:
+      - yes
+    prebuild:
+      - mkdir -p libs
+      - "touch libs/tangram-full-release.aar #gradle clean will barf if this file\
+        \ doesn't exist"
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+    build:
+      - echo -e '#!/bin/sh\ngradle "$@"' > ../lib/tangram-es/platforms/android/gradlew
+      - chmod +x ../lib/tangram-es/platforms/android/gradlew
+      - ../lib/tangram-es/android_aar_build.sh
+      - cp ../lib/tangram-es/platforms/android/tangram/build/outputs/aar/tangram-full-release.aar
+        libs/tangram-full-release.aar
+    ndk: r13b
+
+  - versionName: 1.1.34
+    versionCode: 77
+    commit: v1.1.34
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.35
+    versionCode: 78
+    commit: v1.1.35
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.36
+    versionCode: 79
+    commit: v1.1.36
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.37
+    versionCode: 80
+    commit: v1.1.37
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.38
+    versionCode: 81
+    commit: v1.1.38
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.39
+    versionCode: 82
+    commit: v1.1.39
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.40
+    versionCode: 83
+    commit: v1.1.40
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.41
+    versionCode: 84
+    commit: v1.1.41
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.42
+    versionCode: 85
+    commit: v1.1.42
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.43
+    versionCode: 86
+    commit: v1.1.43
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.44
+    versionCode: 87
+    commit: v1.1.44
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+  - versionName: 1.1.45
+    versionCode: 88
+    commit: v1.1.45
+    subdir: app
+    gradle:
+      - yes
+    scanignore:
+      - app/src/main/resources/org/joda/time/tz/data
+      - app/src/main/assets/fonts
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: 1.1.45
+CurrentVersionCode: 88
diff --git a/metadata/com.rascarlo.aurdroid.txt b/metadata/com.rascarlo.aurdroid.txt
deleted file mode 100644
index 9a99fe95a7..0000000000
--- a/metadata/com.rascarlo.aurdroid.txt
+++ /dev/null
@@ -1,75 +0,0 @@
-Categories:Development
-License:GPL-3.0-only
-Web Site:
-Source Code:https://github.com/rascarlo/AURdroid
-Issue Tracker:https://github.com/rascarlo/AURdroid/issues
-
-Auto Name:AURdroid
-
-Repo Type:git
-Repo:https://github.com/rascarlo/AURdroid
-
-Build:1,2
-    commit=v1
-    subdir=app
-    gradle=yes
-
-Build:4,4
-    commit=v4
-    subdir=app
-    gradle=yes
-
-Build:4.1,5
-    commit=v4.1
-    subdir=app
-    gradle=yes
-
-Build:4.1.1,6
-    commit=v4.1.1
-    subdir=app
-    gradle=yes
-
-Build:4.1.2,7
-    commit=v4.1.2
-    subdir=app
-    gradle=yes
-
-Build:4.1.3,8
-    commit=v4.1.3
-    subdir=app
-    gradle=yes
-
-Build:4.1.4,9
-    commit=v4.1.4
-    subdir=app
-    gradle=yes
-
-Build:4.1.5,10
-    commit=v4.1.5
-    subdir=app
-    gradle=yes
-
-Build:4.1.6,11
-    commit=v4.1.6
-    subdir=app
-    gradle=yes
-
-Build:4.1.7,12
-    commit=v4.1.7
-    subdir=app
-    gradle=yes
-
-Build:4.1.8,13
-    commit=v4.1.8
-    subdir=app
-    gradle=yes
-
-Build:4.1.9,14
-    commit=v4.1.9
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:4.1.9
-Current Version Code:14
diff --git a/metadata/com.rascarlo.aurdroid.yml b/metadata/com.rascarlo.aurdroid.yml
new file mode 100644
index 0000000000..efaf39dc3e
--- /dev/null
+++ b/metadata/com.rascarlo.aurdroid.yml
@@ -0,0 +1,100 @@
+Categories:
+  - Development
+License: GPL-3.0-only
+SourceCode: https://github.com/rascarlo/AURdroid
+IssueTracker: https://github.com/rascarlo/AURdroid/issues
+
+AutoName: AURdroid
+
+RepoType: git
+Repo: https://github.com/rascarlo/AURdroid
+
+Builds:
+  - versionName: '1'
+    versionCode: 2
+    commit: v1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '4'
+    versionCode: 4
+    commit: v4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '4.1'
+    versionCode: 5
+    commit: v4.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.1
+    versionCode: 6
+    commit: v4.1.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.2
+    versionCode: 7
+    commit: v4.1.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.3
+    versionCode: 8
+    commit: v4.1.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.4
+    versionCode: 9
+    commit: v4.1.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.5
+    versionCode: 10
+    commit: v4.1.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.6
+    versionCode: 11
+    commit: v4.1.6
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.7
+    versionCode: 12
+    commit: v4.1.7
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.8
+    versionCode: 13
+    commit: v4.1.8
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 4.1.9
+    versionCode: 14
+    commit: v4.1.9
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: 4.1.9
+CurrentVersionCode: 14
diff --git a/metadata/com.rastating.droidbeard.txt b/metadata/com.rastating.droidbeard.txt
deleted file mode 100644
index 6de5d19102..0000000000
--- a/metadata/com.rastating.droidbeard.txt
+++ /dev/null
@@ -1,122 +0,0 @@
-Categories:Internet
-License:GPL-3.0-only
-Web Site:http://www.droidbeard.com
-Source Code:https://github.com/rastating/DroidBeard
-Issue Tracker:https://github.com/rastating/DroidBeard/issues
-
-Auto Name:DroidBeard
-Summary:Manage SickBeard installations
-Description:
-Managing your [http://sickbeard.com/ SickBeard] installation either at home or
-remotely. Current features include:
-
-* Add new shows from your Android device
-* See upcoming episodes
-* View snatch and download history
-* Manage episode statuses and force searches
-* Supports multiple profiles so you can manage multiple Sick Beard installations
-* Support for Sick Rage specific API
-.
-
-Repo Type:git
-Repo:https://github.com/rastating/DroidBeard
-
-Build:1.2,1200
-    commit=4892df7c63e22fd676001d19706fe578f2871e0c
-    subdir=app
-    gradle=yes
-
-Build:1.3.4,1304
-    commit=v1.3.4
-    subdir=app
-    gradle=yes
-
-Build:1.3.6,1306
-    commit=v1.3.6
-    subdir=app
-    gradle=yes
-
-Build:1.3.7,1307
-    commit=v1.3.7
-    subdir=app
-    gradle=yes
-
-Build:1.3.8,1308
-    commit=v1.3.8
-    subdir=app
-    gradle=yes
-
-Build:1.3.9,1309
-    commit=v1.3.9
-    subdir=app
-    gradle=yes
-
-Build:1.3.10,1310
-    commit=v1.3.10
-    subdir=app
-    gradle=yes
-
-Build:1.3.11,1311
-    commit=v1.3.11
-    subdir=app
-    gradle=yes
-
-Build:1.3.12,1312
-    commit=v1.3.12
-    subdir=app
-    gradle=yes
-
-Build:1.4.0,1400
-    commit=v1.4.0
-    subdir=app
-    gradle=yes
-
-Build:1.4.1,1401
-    commit=v1.4.1
-    subdir=app
-    gradle=yes
-
-Build:1.4.3,1403
-    commit=v1.4.3
-    subdir=app
-    gradle=yes
-
-Build:1.4.4,1404
-    commit=v1.4.4
-    subdir=app
-    gradle=yes
-
-Build:1.4.5,1405
-    commit=v1.4.5
-    subdir=app
-    gradle=yes
-
-Build:1.4.7,1407
-    commit=v1.4.7
-    subdir=app
-    gradle=yes
-
-Build:1.4.8,1408
-    commit=v1.4.8
-    subdir=app
-    gradle=yes
-
-Build:1.4.9,1409
-    commit=v1.4.9
-    subdir=app
-    gradle=yes
-
-Build:1.5.0,1500
-    commit=v1.5
-    subdir=app
-    gradle=yes
-
-Build:1.5.2,1502
-    commit=v1.5.2
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:1.5.2
-Current Version Code:1502
diff --git a/metadata/com.rastating.droidbeard.yml b/metadata/com.rastating.droidbeard.yml
new file mode 100644
index 0000000000..1fc803b980
--- /dev/null
+++ b/metadata/com.rastating.droidbeard.yml
@@ -0,0 +1,161 @@
+Categories:
+  - Internet
+License: GPL-3.0-only
+WebSite: http://www.droidbeard.com
+SourceCode: https://github.com/rastating/DroidBeard
+IssueTracker: https://github.com/rastating/DroidBeard/issues
+
+AutoName: DroidBeard
+Summary: Manage SickBeard installations
+Description: |-
+    Managing your [http://sickbeard.com/ SickBeard] installation either at home or
+    remotely. Current features include:
+
+    * Add new shows from your Android device
+    * See upcoming episodes
+    * View snatch and download history
+    * Manage episode statuses and force searches
+    * Supports multiple profiles so you can manage multiple Sick Beard installations
+    * Support for Sick Rage specific API
+
+RepoType: git
+Repo: https://github.com/rastating/DroidBeard
+
+Builds:
+  - versionName: '1.2'
+    versionCode: 1200
+    commit: 4892df7c63e22fd676001d19706fe578f2871e0c
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.4
+    versionCode: 1304
+    commit: v1.3.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.6
+    versionCode: 1306
+    commit: v1.3.6
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.7
+    versionCode: 1307
+    commit: v1.3.7
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.8
+    versionCode: 1308
+    commit: v1.3.8
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.9
+    versionCode: 1309
+    commit: v1.3.9
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.10
+    versionCode: 1310
+    commit: v1.3.10
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.11
+    versionCode: 1311
+    commit: v1.3.11
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.12
+    versionCode: 1312
+    commit: v1.3.12
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.0
+    versionCode: 1400
+    commit: v1.4.0
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.1
+    versionCode: 1401
+    commit: v1.4.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.3
+    versionCode: 1403
+    commit: v1.4.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.4
+    versionCode: 1404
+    commit: v1.4.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.5
+    versionCode: 1405
+    commit: v1.4.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.7
+    versionCode: 1407
+    commit: v1.4.7
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.8
+    versionCode: 1408
+    commit: v1.4.8
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.4.9
+    versionCode: 1409
+    commit: v1.4.9
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.5.0
+    versionCode: 1500
+    commit: v1.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.5.2
+    versionCode: 1502
+    commit: v1.5.2
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: 1.5.2
+CurrentVersionCode: 1502
diff --git a/metadata/com.reddyetwo.hashmypass.app.txt b/metadata/com.reddyetwo.hashmypass.app.txt
deleted file mode 100644
index 4bb049d00d..0000000000
--- a/metadata/com.reddyetwo.hashmypass.app.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-Categories:Security,Internet
-License:GPL-3.0-only
-Web Site:
-Source Code:https://github.com/gustavomondron/twik
-Issue Tracker:https://github.com/gustavomondron/twik/issues
-
-Auto Name:Twik
-Summary:Manage and generate secure passwords
-Description:
-Use a combination of a master key/password, a private key, and the website
-name/url to generate a unique, strong password. Since passwords are generated
-each time, even if one of them is compromised the rest would be safe. Twik also
-integrates with any web browser, so that you can generate a password quickly by
-sharing a website with Twik from the browser.
-
-It is compatible with Password Hasher Plus, a Chrome extension by Eric Woodruff
-that follows the same principles for generating strong passwords. You can use
-the same private and master keys to generate the same passwords on your desktop
-browser.
-
-Features:
-
-* Several profiles, each with its own private key
-* Favicons to easily identify websites
-* Identicons to check that you typed your master key correctly at a glance
-* Share any website from a web browser to generate a password for it
-* Customize password generation for each website (password length and characters)
-* Automatically copy generated passwords to the clipboard
-.
-
-Repo Type:git
-Repo:https://github.com/gustavomondron/twik
-
-Build:1.2.1,6
-    commit=v1.2.1
-    subdir=app
-    gradle=yes
-
-Build:1.2.3,8
-    commit=v1.2.3
-    subdir=app
-    gradle=yes
-
-Build:1.2.4,9
-    commit=v1.2.4
-    subdir=app
-    gradle=yes
-
-Build:1.2.5,10
-    commit=v1.2.5
-    subdir=app
-    gradle=yes
-
-Build:1.2.6,11
-    commit=v1.2.6
-    subdir=app
-    gradle=yes
-
-Build:1.3.1,16
-    commit=v1.3.1
-    subdir=app
-    gradle=yes
-
-Build:1.3.2,17
-    commit=v1.3.2
-    subdir=app
-    gradle=yes
-
-Build:1.3.3,18
-    commit=v1.3.3
-    subdir=app
-    gradle=yes
-
-Build:1.3.4,19
-    commit=v1.3.4
-    subdir=app
-    gradle=yes
-
-Build:1.3.5,20
-    commit=v1.3.5
-    subdir=app
-    gradle=yes
-
-Build:1.3.7,22
-    commit=v1.3.7
-    subdir=app
-    gradle=yes
-
-Build:1.3.10,24
-    commit=v1.3.10
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:1.3.10
-Current Version Code:24
diff --git a/metadata/com.reddyetwo.hashmypass.app.yml b/metadata/com.reddyetwo.hashmypass.app.yml
new file mode 100644
index 0000000000..ec3e03de1e
--- /dev/null
+++ b/metadata/com.reddyetwo.hashmypass.app.yml
@@ -0,0 +1,122 @@
+Categories:
+  - Security
+  - Internet
+License: GPL-3.0-only
+SourceCode: https://github.com/gustavomondron/twik
+IssueTracker: https://github.com/gustavomondron/twik/issues
+
+AutoName: Twik
+Summary: Manage and generate secure passwords
+Description: |-
+    Use a combination of a master key/password, a private key, and the website
+    name/url to generate a unique, strong password. Since passwords are generated
+    each time, even if one of them is compromised the rest would be safe. Twik also
+    integrates with any web browser, so that you can generate a password quickly by
+    sharing a website with Twik from the browser.
+
+    It is compatible with Password Hasher Plus, a Chrome extension by Eric Woodruff
+    that follows the same principles for generating strong passwords. You can use
+    the same private and master keys to generate the same passwords on your desktop
+    browser.
+
+    Features:
+
+    * Several profiles, each with its own private key
+    * Favicons to easily identify websites
+    * Identicons to check that you typed your master key correctly at a glance
+    * Share any website from a web browser to generate a password for it
+    * Customize password generation for each website (password length and characters)
+    * Automatically copy generated passwords to the clipboard
+
+RepoType: git
+Repo: https://github.com/gustavomondron/twik
+
+Builds:
+  - versionName: 1.2.1
+    versionCode: 6
+    commit: v1.2.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.3
+    versionCode: 8
+    commit: v1.2.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.4
+    versionCode: 9
+    commit: v1.2.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.5
+    versionCode: 10
+    commit: v1.2.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.6
+    versionCode: 11
+    commit: v1.2.6
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.1
+    versionCode: 16
+    commit: v1.3.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.2
+    versionCode: 17
+    commit: v1.3.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.3
+    versionCode: 18
+    commit: v1.3.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.4
+    versionCode: 19
+    commit: v1.3.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.5
+    versionCode: 20
+    commit: v1.3.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.7
+    versionCode: 22
+    commit: v1.3.7
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.10
+    versionCode: 24
+    commit: v1.3.10
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: 1.3.10
+CurrentVersionCode: 24
diff --git a/metadata/com.redirectapps.tvkill.txt b/metadata/com.redirectapps.tvkill.txt
deleted file mode 100644
index 8de5d79592..0000000000
--- a/metadata/com.redirectapps.tvkill.txt
+++ /dev/null
@@ -1,104 +0,0 @@
-Categories:Multimedia,System
-License:GPL-3.0-only
-Web Site:
-Source Code:https://github.com/42SK/TVKILL
-Issue Tracker:https://github.com/42SK/TVKILL/issues
-
-Auto Name:TV KILL
-Summary:Turn off TVs
-Description:
-Turn off supported TVs using your device's built-in IR-blaster. The app basicly
-transmits a variety of off-patterns for different TVs successively, which will
-cause most TVs to power down.
-
-If you activate the repetitive-mode, your phone will transmit the off signals
-over and over again, even when you close the Application or lock your screen.
-This way, you can simply deploy your phone in front of a TV and the TV will turn
-itself off again whenever somebody tries to switch it on. (Great for private
-screening events)
-
-You can also select an off-pattern that only affects devices from a single
-manufacturer, in case you want to turn-off a TV from a specific brand.
-
-TV KILL also includes a widget for your home screen, so you don't even have to
-open the app to turn a TV off.
-.
-
-Repo Type:git
-Repo:https://github.com/42SK/TVKILL
-
-Build:1.0.6,10
-    commit=8f08b0f46a64fc04f238bedcb425df32f7a15551
-    subdir=app
-    gradle=yes
-
-Build:1.0.7,11
-    commit=v1.0.7
-    subdir=app
-    gradle=yes
-
-Build:1.0.8,12
-    commit=v1.0.8
-    subdir=app
-    gradle=yes
-
-Build:1.0.8.1,13
-    disable=buggy
-    commit=v1.0.8.1
-    subdir=app
-    gradle=yes
-
-Build:1.0.8.2,14
-    commit=v1.0.8.2
-    subdir=app
-    gradle=yes
-
-Build:1.1,15
-    commit=v1.1
-    subdir=app
-    gradle=yes
-
-Build:1.2,16
-    commit=v1.2
-    subdir=app
-    gradle=yes
-
-Build:1.2.1,17
-    commit=v1.2.1
-    subdir=app
-    gradle=yes
-
-Build:1.2.2,18
-    commit=v1.2.2
-    subdir=app
-    gradle=yes
-
-Build:1.2.3,19
-    commit=v1.2.3
-    subdir=app
-    gradle=yes
-
-Build:1.2.4,20
-    commit=v1.2.4
-    subdir=app
-    gradle=yes
-
-Build:1.2.5,21
-    commit=v1.2.5
-    subdir=app
-    gradle=yes
-
-Build:1.3.1,23
-    commit=v1.3.1
-    subdir=app
-    gradle=yes
-
-Build:1.3.2,24
-    commit=v1.3.2
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:1.3.2
-Current Version Code:24
diff --git a/metadata/com.redirectapps.tvkill.yml b/metadata/com.redirectapps.tvkill.yml
new file mode 100644
index 0000000000..6bdcf0dff9
--- /dev/null
+++ b/metadata/com.redirectapps.tvkill.yml
@@ -0,0 +1,133 @@
+Categories:
+  - Multimedia
+  - System
+License: GPL-3.0-only
+SourceCode: https://github.com/42SK/TVKILL
+IssueTracker: https://github.com/42SK/TVKILL/issues
+
+AutoName: TV KILL
+Summary: Turn off TVs
+Description: |-
+    Turn off supported TVs using your device's built-in IR-blaster. The app basicly
+    transmits a variety of off-patterns for different TVs successively, which will
+    cause most TVs to power down.
+
+    If you activate the repetitive-mode, your phone will transmit the off signals
+    over and over again, even when you close the Application or lock your screen.
+    This way, you can simply deploy your phone in front of a TV and the TV will turn
+    itself off again whenever somebody tries to switch it on. (Great for private
+    screening events)
+
+    You can also select an off-pattern that only affects devices from a single
+    manufacturer, in case you want to turn-off a TV from a specific brand.
+
+    TV KILL also includes a widget for your home screen, so you don't even have to
+    open the app to turn a TV off.
+
+RepoType: git
+Repo: https://github.com/42SK/TVKILL
+
+Builds:
+  - versionName: 1.0.6
+    versionCode: 10
+    commit: 8f08b0f46a64fc04f238bedcb425df32f7a15551
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.0.7
+    versionCode: 11
+    commit: v1.0.7
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.0.8
+    versionCode: 12
+    commit: v1.0.8
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.0.8.1
+    versionCode: 13
+    disable: buggy
+    commit: v1.0.8.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.0.8.2
+    versionCode: 14
+    commit: v1.0.8.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '1.1'
+    versionCode: 15
+    commit: v1.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '1.2'
+    versionCode: 16
+    commit: v1.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.1
+    versionCode: 17
+    commit: v1.2.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.2
+    versionCode: 18
+    commit: v1.2.2
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.3
+    versionCode: 19
+    commit: v1.2.3
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.4
+    versionCode: 20
+    commit: v1.2.4
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.2.5
+    versionCode: 21
+    commit: v1.2.5
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.1
+    versionCode: 23
+    commit: v1.3.1
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: 1.3.2
+    versionCode: 24
+    commit: v1.3.2
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: 1.3.2
+CurrentVersionCode: 24
diff --git a/metadata/com.rehanced.lunary.txt b/metadata/com.rehanced.lunary.txt
deleted file mode 100644
index bf952bb22c..0000000000
--- a/metadata/com.rehanced.lunary.txt
+++ /dev/null
@@ -1,128 +0,0 @@
-AntiFeatures:NonFreeNet
-Categories:Money,Internet
-License:GPL-3.0-only
-Web Site:
-Source Code:https://github.com/manuelsc/Lunary-Ethereum-Wallet
-Issue Tracker:https://github.com/manuelsc/Lunary-Ethereum-Wallet/issues
-
-Auto Name:Lunary
-Summary:Manage and transfer your Ether with ease
-Description:
-A beautiful designed, easy to use and secure Ethereum Wallet for your phone.
-
-Features:
-
-* Mutli wallet support
-* Support for watch only wallets
-* Send / Request payments
-* Notification on incoming transactions
-* Combined transaction history
-* Addressbook and address naming
-* Importing / Exporting wallets
-* Display amounts in ETH, USD or BTC
-* No registration or sign up required
-* Price history charts
-* Support for 8 Currencies: USD, EUR, GBP, CHF, AUD, CAD, JPY, RUB
-.
-
-Repo Type:git
-Repo:https://github.com/manuelsc/Lunary-Ethereum-Wallet
-
-Build:1.18,9
-    commit=v1.18
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.24,14
-    commit=v1.24
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.25,15
-    commit=v1.25
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.26,16
-    commit=v1.26
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.27,17
-    commit=v1.27
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.28,18
-    commit=v1.28
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.29,19
-    commit=v1.29
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.291,20
-    commit=v1.291
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.3,21
-    commit=v1.3
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.31,22
-    commit=v1.31
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.34,25
-    commit=v1.34
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.36,27
-    commit=v1.36
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.37,28
-    commit=v1.37
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.38,29
-    commit=v1.38
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Build:1.39,31
-    commit=v1.39
-    subdir=app
-    gradle=fdroid
-    prebuild=sed -i -e '/googleplayCompile/d' build.gradle
-
-Maintainer Notes:
-Bump that this gets build sooner.
-.
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:1.39
-Current Version Code:31
diff --git a/metadata/com.rehanced.lunary.yml b/metadata/com.rehanced.lunary.yml
new file mode 100644
index 0000000000..e9f8613e1d
--- /dev/null
+++ b/metadata/com.rehanced.lunary.yml
@@ -0,0 +1,158 @@
+AntiFeatures:
+  - NonFreeNet
+Categories:
+  - Money
+  - Internet
+License: GPL-3.0-only
+SourceCode: https://github.com/manuelsc/Lunary-Ethereum-Wallet
+IssueTracker: https://github.com/manuelsc/Lunary-Ethereum-Wallet/issues
+
+AutoName: Lunary
+Summary: Manage and transfer your Ether with ease
+Description: |-
+    A beautiful designed, easy to use and secure Ethereum Wallet for your phone.
+
+    Features:
+
+    * Mutli wallet support
+    * Support for watch only wallets
+    * Send / Request payments
+    * Notification on incoming transactions
+    * Combined transaction history
+    * Addressbook and address naming
+    * Importing / Exporting wallets
+    * Display amounts in ETH, USD or BTC
+    * No registration or sign up required
+    * Price history charts
+    * Support for 8 Currencies: USD, EUR, GBP, CHF, AUD, CAD, JPY, RUB
+
+RepoType: git
+Repo: https://github.com/manuelsc/Lunary-Ethereum-Wallet
+
+Builds:
+  - versionName: '1.18'
+    versionCode: 9
+    commit: v1.18
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.24'
+    versionCode: 14
+    commit: v1.24
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.25'
+    versionCode: 15
+    commit: v1.25
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.26'
+    versionCode: 16
+    commit: v1.26
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.27'
+    versionCode: 17
+    commit: v1.27
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.28'
+    versionCode: 18
+    commit: v1.28
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.29'
+    versionCode: 19
+    commit: v1.29
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.291'
+    versionCode: 20
+    commit: v1.291
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.3'
+    versionCode: 21
+    commit: v1.3
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.31'
+    versionCode: 22
+    commit: v1.31
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.34'
+    versionCode: 25
+    commit: v1.34
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.36'
+    versionCode: 27
+    commit: v1.36
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.37'
+    versionCode: 28
+    commit: v1.37
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.38'
+    versionCode: 29
+    commit: v1.38
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+  - versionName: '1.39'
+    versionCode: 31
+    commit: v1.39
+    subdir: app
+    gradle:
+      - fdroid
+    prebuild: sed -i -e '/googleplayCompile/d' build.gradle
+
+MaintainerNotes: Bump that this gets build sooner.
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: '1.39'
+CurrentVersionCode: 31
diff --git a/metadata/com.repay.android.txt b/metadata/com.repay.android.txt
deleted file mode 100644
index d8fe74debb..0000000000
--- a/metadata/com.repay.android.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-Categories:Money
-License:Apache-2.0
-Web Site:
-Source Code:https://github.com/matt-allen/repay-android
-Issue Tracker:https://github.com/matt-allen/repay-android/issues
-
-Auto Name:Repay
-Summary:Keep track of lended money
-Description:
-Lending money to your friends can get messy. You can lose track and have
-disputes over it, or forget altogether. With Repay you can keep track of
-everything you've lent them, and what they've lent you too using a simple, fast
-system to store an IOU in your device so you never forget. There's no need to
-make any accounts or give any bank account information, it's just a simple
-record you keep to make sure you're never out of pocket.
-.
-
-Repo Type:git
-Repo:https://github.com/matt-allen/repay-android
-
-Build:1.6,25
-    commit=v1.6
-    subdir=repay
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:1.6
-Current Version Code:25
diff --git a/metadata/com.repay.android.yml b/metadata/com.repay.android.yml
new file mode 100644
index 0000000000..7179cbc3bb
--- /dev/null
+++ b/metadata/com.repay.android.yml
@@ -0,0 +1,31 @@
+Categories:
+  - Money
+License: Apache-2.0
+SourceCode: https://github.com/matt-allen/repay-android
+IssueTracker: https://github.com/matt-allen/repay-android/issues
+
+AutoName: Repay
+Summary: Keep track of lended money
+Description: |-
+    Lending money to your friends can get messy. You can lose track and have
+    disputes over it, or forget altogether. With Repay you can keep track of
+    everything you've lent them, and what they've lent you too using a simple, fast
+    system to store an IOU in your device so you never forget. There's no need to
+    make any accounts or give any bank account information, it's just a simple
+    record you keep to make sure you're never out of pocket.
+
+RepoType: git
+Repo: https://github.com/matt-allen/repay-android
+
+Builds:
+  - versionName: '1.6'
+    versionCode: 25
+    commit: v1.6
+    subdir: repay
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: '1.6'
+CurrentVersionCode: 25
diff --git a/metadata/com.rfo.basic.txt b/metadata/com.rfo.basic.txt
deleted file mode 100644
index 3ad6b8a2c6..0000000000
--- a/metadata/com.rfo.basic.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Categories:Writing
-License:GPL-3.0-only
-Web Site:
-Source Code:https://github.com/ibinshoid/LASKmobile
-Issue Tracker:https://github.com/ibinshoid/LASKmobile/issues
-
-Auto Name:LASKmobile
-Summary:Mobile part of the field catalog LASK
-Description:
-LASKmobile allows you to enter your data at work and sync it with LASK
-(www.launchpad.net/lask).
-.
-
-Repo Type:git
-Repo:https://github.com/ibinshoid/LASKmobile
-
-Build:0.5.1,500
-    commit=v0.5.1
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version %v
-Update Check Mode:Tags
-Current Version:0.5.1
-Current Version Code:500
diff --git a/metadata/com.rfo.basic.yml b/metadata/com.rfo.basic.yml
new file mode 100644
index 0000000000..98c157fa0f
--- /dev/null
+++ b/metadata/com.rfo.basic.yml
@@ -0,0 +1,27 @@
+Categories:
+  - Writing
+License: GPL-3.0-only
+SourceCode: https://github.com/ibinshoid/LASKmobile
+IssueTracker: https://github.com/ibinshoid/LASKmobile/issues
+
+AutoName: LASKmobile
+Summary: Mobile part of the field catalog LASK
+Description: |-
+    LASKmobile allows you to enter your data at work and sync it with LASK
+    (www.launchpad.net/lask).
+
+RepoType: git
+Repo: https://github.com/ibinshoid/LASKmobile
+
+Builds:
+  - versionName: 0.5.1
+    versionCode: 500
+    commit: v0.5.1
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version %v
+UpdateCheckMode: Tags
+CurrentVersion: 0.5.1
+CurrentVersionCode: 500
diff --git a/metadata/com.ridgelineapps.resdicegame.txt b/metadata/com.ridgelineapps.resdicegame.txt
deleted file mode 100644
index e45151649e..0000000000
--- a/metadata/com.ridgelineapps.resdicegame.txt
+++ /dev/null
@@ -1,41 +0,0 @@
-AntiFeatures:NonFreeAssets
-Categories:Games
-License:GPL-3.0-only
-Web Site:
-Source Code:https://github.com/Bubu/android-dice-game
-Issue Tracker:https://github.com/Bubu/android-dice-game/issues
-Changelog:https://github.com/Bubu/android-dice-game/releases
-
-Auto Name:Catan Dice Game
-Summary:Resource dice game
-Description:
-'''Note:''' In a future version this app will stop distributing the original
-Catan artwork. If you may be able to help with replacements please drop by at
-the issue tracker.
-
-Unofficial version of a very famous resource dice board game. This version is
-not associated with the publishers of the original game.
-.
-
-Repo Type:git
-Repo:https://github.com/Bubu/android-dice-game
-
-Build:1.13,14
-    commit=v1.13
-    subdir=app
-    gradle=yes
-
-Build:1.14,15
-    commit=v1.14
-    subdir=app
-    gradle=yes
-
-Build:1.15,16
-    commit=v1.15
-    subdir=app
-    gradle=yes
-
-Auto Update Mode:Version v%v
-Update Check Mode:Tags
-Current Version:1.15
-Current Version Code:16
diff --git a/metadata/com.ridgelineapps.resdicegame.yml b/metadata/com.ridgelineapps.resdicegame.yml
new file mode 100644
index 0000000000..79fbbe4a79
--- /dev/null
+++ b/metadata/com.ridgelineapps.resdicegame.yml
@@ -0,0 +1,48 @@
+AntiFeatures:
+  - NonFreeAssets
+Categories:
+  - Games
+License: GPL-3.0-only
+SourceCode: https://github.com/Bubu/android-dice-game
+IssueTracker: https://github.com/Bubu/android-dice-game/issues
+Changelog: https://github.com/Bubu/android-dice-game/releases
+
+AutoName: Catan Dice Game
+Summary: Resource dice game
+Description: |-
+    '''Note:''' In a future version this app will stop distributing the original
+    Catan artwork. If you may be able to help with replacements please drop by at
+    the issue tracker.
+
+    Unofficial version of a very famous resource dice board game. This version is
+    not associated with the publishers of the original game.
+
+RepoType: git
+Repo: https://github.com/Bubu/android-dice-game
+
+Builds:
+  - versionName: '1.13'
+    versionCode: 14
+    commit: v1.13
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '1.14'
+    versionCode: 15
+    commit: v1.14
+    subdir: app
+    gradle:
+      - yes
+
+  - versionName: '1.15'
+    versionCode: 16
+    commit: v1.15
+    subdir: app
+    gradle:
+      - yes
+
+AutoUpdateMode: Version v%v
+UpdateCheckMode: Tags
+CurrentVersion: '1.15'
+CurrentVersionCode: 16