build: fastlane setup

Fastlane is a toolkit to automate various processes.
Our first usecase is deploying automatically binaries to the Play store.
fastlane works with a Fastfile containing the different 'lanes'.
This commit adds the first lane:

- beta: sign, zipalign and upload to the Play Store beta channel a
  provided apk

This lane needs two custom 'actions'

- sign_apk: use a provided keystore and key to sign the apk
- zipalign: android tool performing an operation on the apk before
uploading it

These two actions are versioned in the fastlane/actions/ folder.
The deployment to the Google Developer Console is done by fastlane and
accessed is granted using a provided api access file.

Change-Id: Ie89b31f08828809887847178c5116deb06ff6d31
diff --git a/ring-android/fastlane/.gitignore b/ring-android/fastlane/.gitignore
new file mode 100644
index 0000000..30d0742
--- /dev/null
+++ b/ring-android/fastlane/.gitignore
@@ -0,0 +1 @@
+report.xml
diff --git a/ring-android/fastlane/Appfile b/ring-android/fastlane/Appfile
new file mode 100644
index 0000000..918614b
--- /dev/null
+++ b/ring-android/fastlane/Appfile
@@ -0,0 +1,2 @@
+# App package
+package_name "cx.ring"
diff --git a/ring-android/fastlane/Fastfile b/ring-android/fastlane/Fastfile
new file mode 100644
index 0000000..02afeb7
--- /dev/null
+++ b/ring-android/fastlane/Fastfile
@@ -0,0 +1,43 @@
+# Customise this file, documentation can be found here:
+# https://github.com/fastlane/fastlane/tree/master/fastlane/docs
+# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md
+# can also be listed using the `fastlane actions` command
+
+# Change the syntax highlighting to Ruby
+# All lines starting with a # are ignored when running `fastlane`
+
+# If you want to automatically update fastlane if a new version is available:
+# update_fastlane
+
+# This is the minimum version number required.
+# Update this, if you use features of a newer version
+fastlane_version "2.13.0"
+
+default_platform :android
+
+platform :android do
+
+  desc "Submit a new Beta Build to the Play Store"
+  lane :beta do |options|
+    sign_apk(
+      apk_path: options[:apk_path],
+      signed_apk_path: options[:signed_apk_path],
+      keystore_path: options[:keystore_path],
+      alias: options[:keyalias],
+      storepass: options[:storepass],
+      keypass: options[:keypass]
+    )
+
+    zipalign(
+        apk_path: options[:signed_apk_path]
+    )
+
+    supply(
+      apk: options[:signed_apk_path],
+      track: "beta",
+      json_key: options[:json_key]
+    )
+  end
+
+end
+
diff --git a/ring-android/fastlane/README.md b/ring-android/fastlane/README.md
new file mode 100644
index 0000000..7ebc78d
--- /dev/null
+++ b/ring-android/fastlane/README.md
@@ -0,0 +1,19 @@
+fastlane documentation
+================
+# Installation
+```
+sudo gem install fastlane
+```
+# Available Actions
+## Android
+### android beta
+```
+fastlane android beta
+```
+Submit a new Beta Build to the Play Store
+
+----
+
+This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run.
+More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
+The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
diff --git a/ring-android/fastlane/actions/sign_apk.rb b/ring-android/fastlane/actions/sign_apk.rb
new file mode 100644
index 0000000..e616af9
--- /dev/null
+++ b/ring-android/fastlane/actions/sign_apk.rb
@@ -0,0 +1,94 @@
+module Fastlane
+  module Actions
+    module SharedValues
+      SIGNED_APK_PATH = :SIGNED_APK_PATH
+    end
+
+    class SignApkAction < Action
+      def self.run(params)
+
+      UI.user_error!("Couldn't find '*release-unsigned.apk' file at path 'app/build/outputs/apk/'") unless params[:apk_path]
+
+      UI.user_error!("Need keystore in order to sign apk") unless params[:keystore_path]
+
+      sign_cmd = ["jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1"]
+      sign_cmd << ["-keystore #{params[:keystore_path]}" ] if params[:keystore_path]
+      sign_cmd << ["#{params[:apk_path]}"] if params[:apk_path]
+      sign_cmd << ["#{params[:alias]}"] if params[:alias]
+      sign_cmd << ["-keypass #{params[:keypass] ? params[:keypass] : params[:storepass]}"] if params[:keypass] || params[:storepass]
+      sign_cmd << ["-storepass #{params[:storepass]}"] if params[:storepass]
+      sign_cmd << ["-tsa #{params[:tsa]}"] if params[:tsa]
+
+      if params[:signed_apk_path]
+        sign_cmd << ["-signedjar #{params[:signed_apk_path]}" ]
+        Actions.lane_context[SharedValues::SIGNED_APK_PATH] = "#{params[:signed_apk_path]}"
+      elsif params[:apk_path].include?("unsigned")
+        sign_cmd << ["-signedjar #{params[:apk_path].gsub('-unsigned', '')}"]
+        Actions.lane_context[SharedValues::SIGNED_APK_PATH] = "#{params[:apk_path].gsub('-unsigned', '')}"
+      end
+
+      Fastlane::Actions.sh(sign_cmd, log: true)
+    end
+
+      #####################################################
+      # @!group Documentation
+      #####################################################
+
+      def self.description
+        "Sign a Android apk with a java keystore"
+      end
+
+      def self.available_options
+
+        apk_path_default = Dir["*.apk"].last || Dir[File.join("app", "build", "outputs", "apk", "*release-unsigned.apk")].last
+
+        [
+          FastlaneCore::ConfigItem.new(key: :apk_path,
+                                       env_name: "apk_path",
+                                       description: "Path to your APK file that you want to sign",
+                                       default_value: Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] || apk_path_default,
+                                       optional: true),
+          FastlaneCore::ConfigItem.new(key: :signed_apk_path,
+                                       env_name: "SIGNED_APK_PATH",
+                                       description: "Path to the signed APK file",
+                                       optional: true,
+                                       is_string: true),
+          FastlaneCore::ConfigItem.new(key: :keystore_path,
+                                       env_name: "KEYSTORE_PATH",
+                                       description: "Path to java keystore",
+                                       optional: true),
+          FastlaneCore::ConfigItem.new(key: :alias,
+                                       env_name: "ALIAS",
+                                       description: "The alias of the certificate in the keystore to use to sign the apk",
+                                       is_string: true),
+          FastlaneCore::ConfigItem.new(key: :keypass,
+                                       env_name: "KEY_PASS",
+                                       description: "The password used to protect the private key of the keystore entry addressed by the alias specified. If not specified storepass will be used",
+                                       optional:true,
+                                       is_string: true),
+          FastlaneCore::ConfigItem.new(key: :storepass,
+                                       env_name: "STORE_PASS",
+                                       description: "The password which is required to  access  the keystore",
+                                       is_string: true),
+          FastlaneCore::ConfigItem.new(key: :tsa,
+                                       env_name: "TIME_STAMPING_AUTHORITHY",
+                                       description: "The url of the Time Stamping Authority (TSA) used to timestamp the apk signing",
+                                       optional:true,
+                                       is_string: true)
+        ]
+      end
+
+      def self.output
+          ['SIGN_APK_PATH', 'Path to your APK file']
+      end
+
+      def self.authors
+        "nomisRev"
+      end
+
+      def self.is_supported?(platform)
+        platform == :android
+      end
+    end
+  end
+end
diff --git a/ring-android/fastlane/actions/zipalign.rb b/ring-android/fastlane/actions/zipalign.rb
new file mode 100644
index 0000000..b67b278
--- /dev/null
+++ b/ring-android/fastlane/actions/zipalign.rb
@@ -0,0 +1,58 @@
+module Fastlane
+  module Actions
+    module SharedValues
+      ZIPALIGN_CUSTOM_VALUE = :ZIPALIGN_CUSTOM_VALUE
+    end
+
+    class ZipalignAction < Action
+      def self.run(params)
+
+       UI.user_error!("Couldn't find '*release.apk' file at path 'app/build/outputs/apk/'") unless params[:apk_path]
+
+       error_callback = proc do |error|
+         new_name = params[:apk_path].gsub('.apk', '-unaligned.apk')
+         rename_command = ["mv -n",params[:apk_path],new_name]
+         Fastlane::Actions.sh(rename_command, log: false)
+
+         aligncmd = ["zipalign -v -f 4", new_name , " ", params[:apk_path] ]
+         Fastlane::Actions.sh(aligncmd, log: true)
+
+         return
+        end
+
+       zipalign = Fastlane::Actions.sh("zipalign -c -v 4 #{params[:apk_path]}", log: false , error_callback: error_callback)
+    
+       UI.message('Input apk is aligned')
+
+     end 
+      #####################################################
+      # @!group Documentation
+      #####################################################
+
+      def self.description
+        "Zipalign an apk. Input apk is renamed '*-unaligned.apk'"
+      end
+
+      def self.available_options
+
+        apk_path_default = Dir["*.apk"].last || Dir[File.join("app", "build", "outputs", "apk", "*release.apk")].last
+
+        [
+          FastlaneCore::ConfigItem.new(key: :apk_path,
+                                       env_name: "INPUT_APK_PATH",
+                                       description: "Path to your APK file that you want to align",
+                                       default_value: Actions.lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH] || apk_path_default,
+                                       optional: true)
+        ]
+      end
+
+      def self.authors
+        ["nomisRev"]
+      end
+
+      def self.is_supported?(platform)
+        platform == :android
+      end
+    end
+  end
+end
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/19.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/19.txt
new file mode 100644
index 0000000..69a8c74
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/19.txt
@@ -0,0 +1 @@
+* RTL layout support
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/20.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/20.txt
new file mode 100644
index 0000000..69a8c74
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/20.txt
@@ -0,0 +1 @@
+* RTL layout support
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/21.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/21.txt
new file mode 100644
index 0000000..1cd4c4e
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/21.txt
@@ -0,0 +1,2 @@
+* Only show relevant contacts
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/23.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/23.txt
new file mode 100644
index 0000000..0d235b3
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/23.txt
@@ -0,0 +1 @@
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/24.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/24.txt
new file mode 100644
index 0000000..0d235b3
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/24.txt
@@ -0,0 +1 @@
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/26.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/26.txt
new file mode 100644
index 0000000..782f53c
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/26.txt
@@ -0,0 +1,2 @@
+* UI improvements
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/27.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/27.txt
new file mode 100644
index 0000000..782f53c
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/27.txt
@@ -0,0 +1,2 @@
+* UI improvements
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/28.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/28.txt
new file mode 100644
index 0000000..d236e1d
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/28.txt
@@ -0,0 +1,3 @@
+* QR-code scanning (thanks to Alexander Zahdeh)
+* Added start on boot setting
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/29.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/29.txt
new file mode 100644
index 0000000..dd0b04a
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/29.txt
@@ -0,0 +1,2 @@
+* Experimental video support !
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/30.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/30.txt
new file mode 100644
index 0000000..dd0b04a
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/30.txt
@@ -0,0 +1,2 @@
+* Experimental video support !
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/31.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/31.txt
new file mode 100644
index 0000000..0d235b3
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/31.txt
@@ -0,0 +1 @@
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/32.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/32.txt
new file mode 100644
index 0000000..0d235b3
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/32.txt
@@ -0,0 +1 @@
+* Bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/34.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/34.txt
new file mode 100644
index 0000000..5513368
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/34.txt
@@ -0,0 +1,4 @@
+* new beta release "Louis-Joseph Papineau"
+* add TURN server settings
+* update translations
+* bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/35.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/35.txt
new file mode 100644
index 0000000..5513368
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/35.txt
@@ -0,0 +1,4 @@
+* new beta release "Louis-Joseph Papineau"
+* add TURN server settings
+* update translations
+* bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/36.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/36.txt
new file mode 100644
index 0000000..5513368
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/36.txt
@@ -0,0 +1,4 @@
+* new beta release "Louis-Joseph Papineau"
+* add TURN server settings
+* update translations
+* bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/37.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/37.txt
new file mode 100644
index 0000000..33ab4d6
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/37.txt
@@ -0,0 +1,3 @@
+* bug fixes
+* experimental text message confirmation
+* experimental account import/export
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/38.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/38.txt
new file mode 100644
index 0000000..33ab4d6
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/38.txt
@@ -0,0 +1,3 @@
+* bug fixes
+* experimental text message confirmation
+* experimental account import/export
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/39.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/39.txt
new file mode 100644
index 0000000..33ab4d6
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/39.txt
@@ -0,0 +1,3 @@
+* bug fixes
+* experimental text message confirmation
+* experimental account import/export
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/40.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/40.txt
new file mode 100644
index 0000000..33ab4d6
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/40.txt
@@ -0,0 +1,3 @@
+* bug fixes
+* experimental text message confirmation
+* experimental account import/export
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/41.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/41.txt
new file mode 100644
index 0000000..973e76c
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/41.txt
@@ -0,0 +1,8 @@
+* Clickable QRCode for fullscreen display
+* x86 support
+* Better runtime permissions handling
+* UI improvements (About, Account creation wizard)
+* Better video handling
+* Bug fixes
+* Stable account import/export
+* Experimental text message confirmation
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/42.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/42.txt
new file mode 100644
index 0000000..973e76c
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/42.txt
@@ -0,0 +1,8 @@
+* Clickable QRCode for fullscreen display
+* x86 support
+* Better runtime permissions handling
+* UI improvements (About, Account creation wizard)
+* Better video handling
+* Bug fixes
+* Stable account import/export
+* Experimental text message confirmation
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/43.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/43.txt
new file mode 100644
index 0000000..b19cf69
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/43.txt
@@ -0,0 +1,6 @@
+* Stable text message acknowledgement of receipt
+* Ability to make audio-only calls
+* Improved text conversations (capitalization and multiline text)
+* In-App Embedded QR Code scanner
+* Improved conversations search
+* UI/UX improvements
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/45.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/45.txt
new file mode 100644
index 0000000..8a8439c
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/45.txt
@@ -0,0 +1,6 @@
+- add dialpad in call
+- ability to delete conversations individually
+- ability to copy a contact's number to the clipboard
+- integration of the Android contact sheets on the Smartlist
+- text conversations improvements
+- minor improvements and bug fixes
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/47.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/47.txt
new file mode 100644
index 0000000..6f67059
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/47.txt
@@ -0,0 +1 @@
+OpenDHT bump: performance improvement
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/49.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/49.txt
new file mode 100644
index 0000000..49c0904
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/49.txt
@@ -0,0 +1 @@
+Improve peer discovery by enabling UPnP
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/50.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/50.txt
new file mode 100644
index 0000000..6698455
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/50.txt
@@ -0,0 +1,4 @@
+- Connectivity improvements when switching between differents networks (wifi, cellular networks...)
+- Respect system orientation preference
+- Update translations
+- Stability improvements
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/52.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/52.txt
new file mode 100644
index 0000000..3c74020
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/52.txt
@@ -0,0 +1,4 @@
+- Improve UI in call connection screen
+- Improve notifications management
+- Update translations
+- Improve stability
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/53.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/53.txt
new file mode 100644
index 0000000..d713029
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/53.txt
@@ -0,0 +1,4 @@
+- New release Gaston Miron Beta 2
+- Multi-device support: use the same account across multiple devices
+- Name registry: Share a username instead of your RingID
+- UI and stability improvements
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/54.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/54.txt
new file mode 100644
index 0000000..427de30
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/54.txt
@@ -0,0 +1,2 @@
+- Fix migration issue
+- Restore binary size
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/55.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/55.txt
new file mode 100644
index 0000000..c175467
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/55.txt
@@ -0,0 +1,2 @@
+- Improve UI
+- Bugfixes concerning blockchain usage, account creation texting and dialing
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/56.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/56.txt
new file mode 100644
index 0000000..65c8c9c
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/56.txt
@@ -0,0 +1,4 @@
+- Better support of usernames in text messaging
+- New account wizards: one for Ring accounts, one for SIP
+- Improved crash handling
+- Bugfixes in communication mechanism
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/57.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/57.txt
new file mode 100644
index 0000000..b9a06f4
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/57.txt
@@ -0,0 +1,2 @@
+- Improve communication reliability
+- improve quality of profile picture took from gallery storage
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/58.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/58.txt
new file mode 100644
index 0000000..25977c5
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/58.txt
@@ -0,0 +1,2 @@
+- fix back button behavior in call screen
+- fix multiple notifications in case of an incoming text message
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/changelogs/59.txt b/ring-android/fastlane/metadata/android/en-US/changelogs/59.txt
new file mode 100644
index 0000000..29daedd
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/changelogs/59.txt
@@ -0,0 +1,3 @@
+- bug fix
+- multiple enhancements for landscape tablet mode
+- display username instead of ringID whenever it is relevant
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/full_description.txt b/ring-android/fastlane/metadata/android/en-US/full_description.txt
new file mode 100644
index 0000000..f11ac07
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/full_description.txt
@@ -0,0 +1,13 @@
+Ring (Beta Test) allows to make audio or video calls, and to send messages, safely and freely, in confidence. Powered by Savoir-faire Linux, Ring is a open source software that requires no central server.
+
+What can you do with Ring:
+  - make audio calls 
+  - send text messages
+  - make video calls (experimental support)
+  - use your existing SIP account
+
+Ring is in beta. There are plenty of ways to help us, check out: https://ring.cx/en/contribute
+
+You can also install Ring on Windows, Mac OS X and GNU/Linux.
+
+All the info is on https://ring.cx/en
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/images/icon.png b/ring-android/fastlane/metadata/android/en-US/images/icon.png
new file mode 100644
index 0000000..caca1da
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/images/icon.png
Binary files differ
diff --git a/ring-android/fastlane/metadata/android/en-US/short_description.txt b/ring-android/fastlane/metadata/android/en-US/short_description.txt
new file mode 100644
index 0000000..74519d3
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/short_description.txt
@@ -0,0 +1,2 @@
+Audio & Video Calls / Chat
+Take Control of your Communication!
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/title.txt b/ring-android/fastlane/metadata/android/en-US/title.txt
new file mode 100644
index 0000000..be7ca79
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/title.txt
@@ -0,0 +1 @@
+Ring (Beta 2)
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/en-US/video.txt b/ring-android/fastlane/metadata/android/en-US/video.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/en-US/video.txt
diff --git a/ring-android/fastlane/metadata/android/fr-FR/full_description.txt b/ring-android/fastlane/metadata/android/fr-FR/full_description.txt
new file mode 100644
index 0000000..5bb49d7
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/fr-FR/full_description.txt
@@ -0,0 +1,12 @@
+Ring (version Bêta) permet de communiquer, de façon confidentielle, sécuritaire et gratuite. Proposé par Savoir-faire Linux, Ring est un logiciel libre qui fonctionne sans serveur central.
+
+Ce que vous pouvez faire avec Ring:
+  - passer des appels audio 
+  - envoyer des messages texte
+  - passer des appels vidéo (fonction expérimentale)
+
+Ring est en version Bêta. Il y a différents façons de nous aider, rendez-vous sur: https://ring.cx/en/contribute
+
+Vous pouvez aussi installer Ring sur Windows, Mac OS X et GNU/Linux.
+
+Toutes les infos sont sur https://ring.cx/fr
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/fr-FR/short_description.txt b/ring-android/fastlane/metadata/android/fr-FR/short_description.txt
new file mode 100644
index 0000000..63de9c5
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/fr-FR/short_description.txt
@@ -0,0 +1,2 @@
+Appels (audio/vidéo) et tchat
+Prenez le contrôle de vos communications!
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/fr-FR/title.txt b/ring-android/fastlane/metadata/android/fr-FR/title.txt
new file mode 100644
index 0000000..22ab71f
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/fr-FR/title.txt
@@ -0,0 +1 @@
+Ring (Bêta 2)
\ No newline at end of file
diff --git a/ring-android/fastlane/metadata/android/fr-FR/video.txt b/ring-android/fastlane/metadata/android/fr-FR/video.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ring-android/fastlane/metadata/android/fr-FR/video.txt