androidtv: initial load of daemon

Duplicate necessary code from app module to load and run the Ring
daemon. UI must be recreated for each feature.
build-daemon.sh has been amended to also copy libring.so to androidtv
module

Change-Id: I389e6327972bac0c2dc19d21e85dd5ef867b1cfc
diff --git a/ring-android/androidtv/src/main/AndroidManifest.xml b/ring-android/androidtv/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..9c14a17
--- /dev/null
+++ b/ring-android/androidtv/src/main/AndroidManifest.xml
@@ -0,0 +1,82 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="cx.ring"
+    android:installLocation="auto"
+    android:versionCode="76"
+    android:versionName="20170501">
+
+
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.RECORD_AUDIO" />
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
+    <uses-permission android:name="android.permission.CALL_PHONE" />
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+    <uses-permission android:name="android.permission.READ_CONTACTS" />
+    <uses-permission android:name="android.permission.READ_PROFILE" />
+    <uses-permission android:name="android.permission.BLUETOOTH" />
+    <uses-permission android:name="android.permission.VIBRATE" />
+    <uses-permission android:name="android.permission.READ_CALL_LOG" />
+    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.CAMERA" />
+    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
+    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+
+    <uses-feature
+        android:name="android.hardware.touchscreen"
+        android:required="false" />
+    <uses-feature
+        android:name="android.software.leanback"
+        android:required="true" />
+    <uses-feature
+        android:name="android.hardware.bluetooth"
+        android:required="false" />
+    <uses-feature
+        android:name="android.hardware.telephony"
+        android:required="false" />
+    <uses-feature
+        android:name="android.hardware.microphone"
+        android:required="false" />
+    <uses-feature
+        android:name="android.hardware.camera"
+        android:required="false" />
+
+    <application
+        android:name=".application.RingApplication"
+        android:allowBackup="true"
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:resizeableActivity="true"
+        android:supportsRtl="true">
+
+        <activity
+            android:name="cx.ring.client.HomeActivity"
+            android:banner="@drawable/ic_launcher"
+            android:icon="@drawable/ic_launcher"
+            android:label="@string/title_activity_home"
+            android:logo="@drawable/ic_launcher"
+            android:screenOrientation="landscape">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name="cx.ring.client.DetailsActivity" />
+        <activity android:name="cx.ring.client.PlaybackOverlayActivity" />
+        <activity android:name="cx.ring.client.BrowseErrorActivity" />
+
+        <service
+            android:name=".service.DRingService"
+            android:exported="false">
+            <intent-filter>
+                <action android:name=".service.DRingService" />
+            </intent-filter>
+        </service>
+    </application>
+
+</manifest>
diff --git a/ring-android/androidtv/src/main/assets/.gitignore b/ring-android/androidtv/src/main/assets/.gitignore
new file mode 100644
index 0000000..53515ef
--- /dev/null
+++ b/ring-android/androidtv/src/main/assets/.gitignore
@@ -0,0 +1,4 @@
+revision.txt
+builddate.txt
+builder.txt
+env.txt
diff --git a/ring-android/androidtv/src/main/assets/fonts/Roboto-Thin.ttf b/ring-android/androidtv/src/main/assets/fonts/Roboto-Thin.ttf
new file mode 100644
index 0000000..309c22d
--- /dev/null
+++ b/ring-android/androidtv/src/main/assets/fonts/Roboto-Thin.ttf
Binary files differ
diff --git a/ring-android/androidtv/src/main/assets/ringtones/default.wav b/ring-android/androidtv/src/main/assets/ringtones/default.wav
new file mode 100644
index 0000000..f68346e
--- /dev/null
+++ b/ring-android/androidtv/src/main/assets/ringtones/default.wav
Binary files differ
diff --git a/ring-android/androidtv/src/main/java/cx/ring/application/RingApplication.java b/ring-android/androidtv/src/main/java/cx/ring/application/RingApplication.java
new file mode 100644
index 0000000..2de1833
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/application/RingApplication.java
@@ -0,0 +1,301 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.application;
+
+import android.app.Application;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.ServiceConnection;
+import android.media.AudioManager;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import cx.ring.BuildConfig;
+import cx.ring.daemon.Callback;
+import cx.ring.daemon.ConfigurationCallback;
+import cx.ring.daemon.PresenceCallback;
+import cx.ring.daemon.VideoCallback;
+import cx.ring.dependencyinjection.DaggerRingInjectionComponent;
+import cx.ring.dependencyinjection.PresenterInjectionModule;
+import cx.ring.dependencyinjection.RingInjectionComponent;
+import cx.ring.dependencyinjection.RingInjectionModule;
+import cx.ring.dependencyinjection.ServiceInjectionModule;
+import cx.ring.service.CallManagerCallBack;
+import cx.ring.service.ConfigurationManagerCallback;
+import cx.ring.service.DRingService;
+import cx.ring.services.AccountService;
+import cx.ring.services.CallService;
+import cx.ring.services.ConferenceService;
+import cx.ring.services.ContactService;
+import cx.ring.services.DaemonService;
+import cx.ring.services.DeviceRuntimeService;
+import cx.ring.services.HardwareService;
+import cx.ring.services.PreferencesService;
+import cx.ring.services.PresenceService;
+import cx.ring.utils.Log;
+
+public class RingApplication extends Application {
+
+    private final static String TAG = RingApplication.class.getName();
+    public final static String DRING_CONNECTION_CHANGED = BuildConfig.APPLICATION_ID + ".event.DRING_CONNECTION_CHANGE";
+    public static final int PERMISSIONS_REQUEST = 57;
+
+    private RingInjectionComponent mRingInjectionComponent;
+    private Map<String, Boolean> mPermissionsBeingAsked;
+
+    // Android Specific callbacks handlers. They rely on low level services notifications
+    private ConfigurationManagerCallback mConfigurationCallback;
+    private CallManagerCallBack mCallManagerCallBack;
+
+    // true Daemon callbacks handlers. The notify the Android ones
+    private Callback mCallAndConferenceCallbackHandler;
+    private ConfigurationCallback mAccountAndContactCallbackHandler;
+    private PresenceCallback mPresenceCallbackHandler;
+    private VideoCallback mHardwareCallbackHandler;
+    /**
+     * Handler to run tasks that needs to be on main thread (UI updates)
+     */
+    public static final Handler uiHandler = new Handler(Looper.getMainLooper());
+
+    @Inject
+    @Named("DaemonExecutor")
+    ExecutorService mExecutor;
+
+    @Inject
+    DaemonService mDaemonService;
+
+    @Inject
+    AccountService mAccountService;
+
+    @Inject
+    CallService mCallService;
+
+    @Inject
+    ConferenceService mConferenceService;
+
+    @Inject
+    HardwareService mHardwareService;
+
+    @Inject
+    PreferencesService mPreferencesService;
+
+    @Inject
+    DeviceRuntimeService mDeviceRuntimeService;
+
+    @Inject
+    ContactService mContactService;
+
+    @Inject
+    PresenceService mPresenceService;
+
+    static private final IntentFilter RINGER_FILTER = new IntentFilter(AudioManager.RINGER_MODE_CHANGED_ACTION);
+    private final BroadcastReceiver ringerModeListener = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            ringerModeChanged(intent.getIntExtra(AudioManager.EXTRA_RINGER_MODE, AudioManager.RINGER_MODE_NORMAL));
+        }
+    };
+
+    private void ringerModeChanged(int newMode) {
+        boolean mute = newMode == AudioManager.RINGER_MODE_VIBRATE || newMode == AudioManager.RINGER_MODE_SILENT;
+        mCallService.muteRingTone(mute);
+    }
+
+    private void setDefaultUncaughtExceptionHandler() {
+        try {
+            Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
+                @Override
+                public void uncaughtException(Thread t, Throwable e) {
+                    Log.e(TAG, "Uncaught Exception detected in thread ", e);
+                    android.os.Process.killProcess(android.os.Process.myPid());
+                    System.exit(2);
+                }
+            });
+        } catch (SecurityException e) {
+            Log.e(TAG, "Could not set the Default Uncaught Exception Handler", e);
+        }
+    }
+
+    private final ServiceConnection mConnection = new ServiceConnection() {
+
+        @Override
+        public void onServiceConnected(ComponentName className, IBinder s) {
+            Log.d(TAG, "onServiceConnected " + className.getClassName());
+
+            // bootstrap Daemon
+            bootstrapDaemon();
+        }
+
+        @Override
+        public void onServiceDisconnected(ComponentName className) {
+            Log.d(TAG, "onServiceDisconnected " + className.getClassName());
+        }
+    };
+
+    public void bootstrapDaemon() {
+
+        if (mDaemonService.isStarted()) {
+            return;
+        }
+
+        Future<Boolean> startResult = mExecutor.submit(new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                // Android specific callbacks handlers (rely on pure Java low level Services callbacks handlers as they
+                // observe them)
+                mConfigurationCallback = new ConfigurationManagerCallback(getApplicationContext());
+                mCallManagerCallBack = new CallManagerCallBack(getApplicationContext());
+
+                // mCallAndConferenceCallbackHandler is a wrapper to handle CallCallbacks and ConferenceCallbacks
+                mCallAndConferenceCallbackHandler = mDaemonService.getDaemonCallbackHandler(
+                        mCallService.getCallbackHandler(),
+                        mConferenceService.getCallbackHandler());
+                mAccountAndContactCallbackHandler = mDaemonService.getDaemonConfigurationCallbackHandler(
+                        mAccountService.getCallbackHandler());
+                mHardwareCallbackHandler = mHardwareService.getCallbackHandler();
+                mPresenceCallbackHandler = mPresenceService.getCallbackHandler();
+
+                // Android specific Low level Services observers
+                mCallService.addObserver(mCallManagerCallBack);
+                mConferenceService.addObserver(mCallManagerCallBack);
+                mAccountService.addObserver(mConfigurationCallback);
+                mContactService.addObserver(mConfigurationCallback);
+
+                mDaemonService.startDaemon(
+                        mCallAndConferenceCallbackHandler,
+                        mAccountAndContactCallbackHandler,
+                        mPresenceCallbackHandler,
+                        mHardwareCallbackHandler);
+
+                ringerModeChanged(((AudioManager) getSystemService(Context.AUDIO_SERVICE)).getRingerMode());
+                registerReceiver(ringerModeListener, RINGER_FILTER);
+
+                if(mDeviceRuntimeService.hasVideoPermission()) {
+                    //initVideo is called here to give time to the application to initialize hardware cameras
+                    mHardwareService.initVideo();
+                }
+
+                return true;
+            }
+        });
+
+        try {
+            startResult.get();
+        } catch (Exception e) {
+            Log.e(TAG, "DRingService start failed", e);
+        }
+
+        Intent intent = new Intent(DRING_CONNECTION_CHANGED);
+        intent.putExtra("connected", mDaemonService.isStarted());
+        sendBroadcast(intent);
+
+        // load accounts from Daemon
+        mAccountService.loadAccountsFromDaemon(mPreferencesService.isConnectedWifiAndMobile());
+    }
+
+    public void terminateDaemon() {
+        Future<Boolean> stopResult = mExecutor.submit(new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                unregisterReceiver(ringerModeListener);
+                mDaemonService.stopDaemon();
+                mConfigurationCallback = null;
+                mCallManagerCallBack = null;
+                Intent intent = new Intent(DRING_CONNECTION_CHANGED);
+                intent.putExtra("connected", mDaemonService.isStarted());
+                sendBroadcast(intent);
+
+                return true;
+            }
+        });
+
+        try {
+            stopResult.get();
+        } catch (Exception e) {
+            Log.e(TAG, "DRingService stop failed", e);
+        }
+    }
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+
+        setDefaultUncaughtExceptionHandler();
+
+        mPermissionsBeingAsked = new HashMap<>();
+
+        // building injection dependency tree
+        mRingInjectionComponent = DaggerRingInjectionComponent.builder()
+                .ringInjectionModule(new RingInjectionModule(this))
+                .presenterInjectionModule(new PresenterInjectionModule(this))
+                .serviceInjectionModule(new ServiceInjectionModule(this))
+                .build();
+
+        // we can now inject in our self whatever modules define
+        mRingInjectionComponent.inject(this);
+
+        // to bootstrap the daemon
+        Intent intent = new Intent(this, DRingService.class);
+        startService(intent);
+        bindService(intent, mConnection, BIND_AUTO_CREATE | BIND_IMPORTANT | BIND_ABOVE_CLIENT);
+    }
+
+    @Override
+    public void onTerminate() {
+        super.onTerminate();
+
+        // todo decide when to stop the daemon
+        terminateDaemon();
+    }
+
+    public RingInjectionComponent getRingInjectionComponent() {
+        return mRingInjectionComponent;
+    }
+
+    public boolean canAskForPermission(String permission) {
+
+        Boolean isBeingAsked = mPermissionsBeingAsked.get(permission);
+
+        if (isBeingAsked != null && isBeingAsked) {
+            return false;
+        }
+
+        mPermissionsBeingAsked.put(permission, true);
+
+        return true;
+    }
+
+    public void permissionHasBeenAsked(String permission) {
+        mPermissionsBeingAsked.remove(permission);
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/BrowseErrorActivity.java b/ring-android/androidtv/src/main/java/cx/ring/client/BrowseErrorActivity.java
new file mode 100644
index 0000000..dc62955
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/BrowseErrorActivity.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package cx.ring.client;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.os.Bundle;
+import android.os.Handler;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.FrameLayout;
+import android.widget.ProgressBar;
+
+import cx.ring.R;
+
+/*
+ * BrowseErrorActivity shows how to use ErrorFragment
+ */
+public class BrowseErrorActivity extends Activity {
+    private static int TIMER_DELAY = 3000;
+    private static int SPINNER_WIDTH = 100;
+    private static int SPINNER_HEIGHT = 100;
+
+    private ErrorFragment mErrorFragment;
+    private SpinnerFragment mSpinnerFragment;
+
+    /**
+     * Called when the activity is first created.
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_home);
+
+        testError();
+    }
+
+    private void testError() {
+        mErrorFragment = new ErrorFragment();
+        getFragmentManager().beginTransaction().add(R.id.main_browse_fragment, mErrorFragment).commit();
+
+        mSpinnerFragment = new SpinnerFragment();
+        getFragmentManager().beginTransaction().add(R.id.main_browse_fragment, mSpinnerFragment).commit();
+
+        final Handler handler = new Handler();
+        handler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                getFragmentManager().beginTransaction().remove(mSpinnerFragment).commit();
+                mErrorFragment.setErrorContent();
+            }
+        }, TIMER_DELAY);
+    }
+
+    static public class SpinnerFragment extends Fragment {
+        @Override
+        public View onCreateView(LayoutInflater inflater, ViewGroup container,
+                                 Bundle savedInstanceState) {
+            ProgressBar progressBar = new ProgressBar(container.getContext());
+            if (container instanceof FrameLayout) {
+                FrameLayout.LayoutParams layoutParams =
+                        new FrameLayout.LayoutParams(SPINNER_WIDTH, SPINNER_HEIGHT, Gravity.CENTER);
+                progressBar.setLayoutParams(layoutParams);
+            }
+            return progressBar;
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/CardPresenter.java b/ring-android/androidtv/src/main/java/cx/ring/client/CardPresenter.java
new file mode 100644
index 0000000..44bbdb4
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/CardPresenter.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.graphics.drawable.Drawable;
+import android.support.v17.leanback.widget.ImageCardView;
+import android.support.v17.leanback.widget.Presenter;
+import android.util.Log;
+import android.view.ViewGroup;
+
+import com.bumptech.glide.Glide;
+
+import cx.ring.R;
+
+/*
+ * A CardPresenter is used to generate Views and bind Objects to them on demand.
+ * It contains an Image CardView
+ */
+public class CardPresenter extends Presenter {
+    private static final String TAG = "CardPresenter";
+
+    private static final int CARD_WIDTH = 313;
+    private static final int CARD_HEIGHT = 176;
+    private static int sSelectedBackgroundColor;
+    private static int sDefaultBackgroundColor;
+    private Drawable mDefaultCardImage;
+
+    private static void updateCardBackgroundColor(ImageCardView view, boolean selected) {
+        int color = selected ? sSelectedBackgroundColor : sDefaultBackgroundColor;
+        // Both background colors should be set because the view's background is temporarily visible
+        // during animations.
+        view.setBackgroundColor(color);
+        view.findViewById(R.id.info_field).setBackgroundColor(color);
+    }
+
+    @Override
+    public ViewHolder onCreateViewHolder(ViewGroup parent) {
+        Log.d(TAG, "onCreateViewHolder");
+
+        sDefaultBackgroundColor = parent.getResources().getColor(R.color.default_background);
+        sSelectedBackgroundColor = parent.getResources().getColor(R.color.selected_background);
+        mDefaultCardImage = parent.getResources().getDrawable(R.drawable.movie);
+
+        ImageCardView cardView = new ImageCardView(parent.getContext()) {
+            @Override
+            public void setSelected(boolean selected) {
+                updateCardBackgroundColor(this, selected);
+                super.setSelected(selected);
+            }
+        };
+
+        cardView.setFocusable(true);
+        cardView.setFocusableInTouchMode(true);
+        updateCardBackgroundColor(cardView, false);
+        return new ViewHolder(cardView);
+    }
+
+    @Override
+    public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object item) {
+        Movie movie = (Movie) item;
+        ImageCardView cardView = (ImageCardView) viewHolder.view;
+
+        Log.d(TAG, "onBindViewHolder");
+        if (movie.getCardImageUrl() != null) {
+            cardView.setTitleText(movie.getTitle());
+            cardView.setContentText(movie.getStudio());
+            cardView.setMainImageDimensions(CARD_WIDTH, CARD_HEIGHT);
+            Glide.with(viewHolder.view.getContext())
+                    .load(movie.getCardImageUrl())
+                    .centerCrop()
+                    .error(mDefaultCardImage)
+                    .into(cardView.getMainImageView());
+        }
+    }
+
+    @Override
+    public void onUnbindViewHolder(Presenter.ViewHolder viewHolder) {
+        Log.d(TAG, "onUnbindViewHolder");
+        ImageCardView cardView = (ImageCardView) viewHolder.view;
+        // Remove references to images so that the garbage collector can free up memory
+        cardView.setBadgeImage(null);
+        cardView.setMainImage(null);
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/DetailsActivity.java b/ring-android/androidtv/src/main/java/cx/ring/client/DetailsActivity.java
new file mode 100644
index 0000000..c44fe52
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/DetailsActivity.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import cx.ring.R;
+
+/*
+ * Details activity class that loads LeanbackDetailsFragment class
+ */
+public class DetailsActivity extends Activity {
+    public static final String SHARED_ELEMENT_NAME = "hero";
+    public static final String MOVIE = "Movie";
+
+    /**
+     * Called when the activity is first created.
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_details);
+    }
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/DetailsDescriptionPresenter.java b/ring-android/androidtv/src/main/java/cx/ring/client/DetailsDescriptionPresenter.java
new file mode 100644
index 0000000..b19efbb
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/DetailsDescriptionPresenter.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter;
+
+public class DetailsDescriptionPresenter extends AbstractDetailsDescriptionPresenter {
+
+    @Override
+    protected void onBindDescription(ViewHolder viewHolder, Object item) {
+        Movie movie = (Movie) item;
+
+        if (movie != null) {
+            viewHolder.getTitle().setText(movie.getTitle());
+            viewHolder.getSubtitle().setText(movie.getStudio());
+            viewHolder.getBody().setText(movie.getDescription());
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/ErrorFragment.java b/ring-android/androidtv/src/main/java/cx/ring/client/ErrorFragment.java
new file mode 100644
index 0000000..d2f1fee
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/ErrorFragment.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package cx.ring.client;
+
+import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
+
+import cx.ring.R;
+
+/*
+ * This class demonstrates how to extend ErrorFragment
+ */
+public class ErrorFragment extends android.support.v17.leanback.app.ErrorFragment {
+    private static final String TAG = "ErrorFragment";
+    private static final boolean TRANSLUCENT = true;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        Log.d(TAG, "onCreate");
+        super.onCreate(savedInstanceState);
+        setTitle(getResources().getString(R.string.app_name));
+    }
+
+    void setErrorContent() {
+        setImageDrawable(getResources().getDrawable(R.drawable.lb_ic_sad_cloud));
+        setMessage(getResources().getString(R.string.error_fragment_message));
+        setDefaultBackground(TRANSLUCENT);
+
+        setButtonText(getResources().getString(R.string.dismiss_error));
+        setButtonClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View arg0) {
+                getFragmentManager().beginTransaction().remove(ErrorFragment.this).commit();
+            }
+        });
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/HomeActivity.java b/ring-android/androidtv/src/main/java/cx/ring/client/HomeActivity.java
new file mode 100644
index 0000000..9d7e2a6
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/HomeActivity.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+import cx.ring.R;
+
+/*
+ * MainActivity class that loads MainFragment
+ */
+public class HomeActivity extends Activity {
+    /**
+     * Called when the activity is first created.
+     */
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_home);
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/MainFragment.java b/ring-android/androidtv/src/main/java/cx/ring/client/MainFragment.java
new file mode 100644
index 0000000..433f4bd
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/MainFragment.java
@@ -0,0 +1,270 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import java.net.URI;
+import java.util.Collections;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import android.content.Intent;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v17.leanback.app.BackgroundManager;
+import android.support.v17.leanback.app.BrowseFragment;
+import android.support.v17.leanback.widget.ArrayObjectAdapter;
+import android.support.v17.leanback.widget.HeaderItem;
+import android.support.v17.leanback.widget.ImageCardView;
+import android.support.v17.leanback.widget.ListRow;
+import android.support.v17.leanback.widget.ListRowPresenter;
+import android.support.v17.leanback.widget.OnItemViewClickedListener;
+import android.support.v17.leanback.widget.OnItemViewSelectedListener;
+import android.support.v17.leanback.widget.Presenter;
+import android.support.v17.leanback.widget.Row;
+import android.support.v17.leanback.widget.RowPresenter;
+import android.support.v4.app.ActivityOptionsCompat;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Gravity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.drawable.GlideDrawable;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.SimpleTarget;
+
+import cx.ring.R;
+
+public class MainFragment extends BrowseFragment {
+    private static final String TAG = "MainFragment";
+
+    private static final int BACKGROUND_UPDATE_DELAY = 300;
+    private static final int GRID_ITEM_WIDTH = 200;
+    private static final int GRID_ITEM_HEIGHT = 200;
+    private static final int NUM_ROWS = 6;
+    private static final int NUM_COLS = 15;
+
+    private final Handler mHandler = new Handler();
+    private ArrayObjectAdapter mRowsAdapter;
+    private Drawable mDefaultBackground;
+    private DisplayMetrics mMetrics;
+    private Timer mBackgroundTimer;
+    private URI mBackgroundURI;
+    private BackgroundManager mBackgroundManager;
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        Log.i(TAG, "onCreate");
+        super.onActivityCreated(savedInstanceState);
+
+        prepareBackgroundManager();
+
+        setupUIElements();
+
+        //loadRows();
+
+        setupEventListeners();
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        if (null != mBackgroundTimer) {
+            Log.d(TAG, "onDestroy: " + mBackgroundTimer.toString());
+            mBackgroundTimer.cancel();
+        }
+    }
+
+    private void loadRows() {
+        List<Movie> list = MovieList.setupMovies();
+
+        mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter());
+        CardPresenter cardPresenter = new CardPresenter();
+
+        int i;
+        for (i = 0; i < NUM_ROWS; i++) {
+            if (i != 0) {
+                Collections.shuffle(list);
+            }
+            ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(cardPresenter);
+            for (int j = 0; j < NUM_COLS; j++) {
+                listRowAdapter.add(list.get(j % 5));
+            }
+            HeaderItem header = new HeaderItem(i, MovieList.MOVIE_CATEGORY[i]);
+            mRowsAdapter.add(new ListRow(header, listRowAdapter));
+        }
+
+        HeaderItem gridHeader = new HeaderItem(i, "PREFERENCES");
+
+        GridItemPresenter mGridPresenter = new GridItemPresenter();
+        ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(mGridPresenter);
+        gridRowAdapter.add(getResources().getString(R.string.grid_view));
+        gridRowAdapter.add(getString(R.string.error_fragment));
+        gridRowAdapter.add(getResources().getString(R.string.personal_settings));
+        mRowsAdapter.add(new ListRow(gridHeader, gridRowAdapter));
+
+        setAdapter(mRowsAdapter);
+
+    }
+
+    private void prepareBackgroundManager() {
+
+        mBackgroundManager = BackgroundManager.getInstance(getActivity());
+        mBackgroundManager.attach(getActivity().getWindow());
+        mDefaultBackground = getResources().getDrawable(R.drawable.default_background);
+        mMetrics = new DisplayMetrics();
+        getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
+    }
+
+    private void setupUIElements() {
+        // setBadgeDrawable(getActivity().getResources().getDrawable(
+        // R.drawable.videos_by_google_banner));
+        setTitle(getString(R.string.browse_title)); // Badge, when set, takes precedent
+        // over title
+        setHeadersState(HEADERS_ENABLED);
+        setHeadersTransitionOnBackEnabled(true);
+
+        // set fastLane (or headers) background color
+        setBrandColor(getResources().getColor(R.color.fastlane_background));
+        // set search icon color
+        setSearchAffordanceColor(getResources().getColor(R.color.search_opaque));
+    }
+
+    private void setupEventListeners() {
+        setOnSearchClickedListener(new View.OnClickListener() {
+
+            @Override
+            public void onClick(View view) {
+                Toast.makeText(getActivity(), "Implement your own in-app search", Toast.LENGTH_LONG)
+                        .show();
+            }
+        });
+
+        setOnItemViewClickedListener(new ItemViewClickedListener());
+        setOnItemViewSelectedListener(new ItemViewSelectedListener());
+    }
+
+    protected void updateBackground(String uri) {
+        int width = mMetrics.widthPixels;
+        int height = mMetrics.heightPixels;
+        Glide.with(getActivity())
+                .load(uri)
+                .centerCrop()
+                .error(mDefaultBackground)
+                .into(new SimpleTarget<GlideDrawable>(width, height) {
+                    @Override
+                    public void onResourceReady(GlideDrawable resource,
+                                                GlideAnimation<? super GlideDrawable>
+                                                        glideAnimation) {
+                        mBackgroundManager.setDrawable(resource);
+                    }
+                });
+        mBackgroundTimer.cancel();
+    }
+
+    private void startBackgroundTimer() {
+        if (null != mBackgroundTimer) {
+            mBackgroundTimer.cancel();
+        }
+        mBackgroundTimer = new Timer();
+        mBackgroundTimer.schedule(new UpdateBackgroundTask(), BACKGROUND_UPDATE_DELAY);
+    }
+
+    private final class ItemViewClickedListener implements OnItemViewClickedListener {
+        @Override
+        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
+                                  RowPresenter.ViewHolder rowViewHolder, Row row) {
+
+            if (item instanceof Movie) {
+                Movie movie = (Movie) item;
+                Log.d(TAG, "Item: " + item.toString());
+                Intent intent = new Intent(getActivity(), DetailsActivity.class);
+                intent.putExtra(DetailsActivity.MOVIE, movie);
+
+                Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
+                        getActivity(),
+                        ((ImageCardView) itemViewHolder.view).getMainImageView(),
+                        DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
+                getActivity().startActivity(intent, bundle);
+            } else if (item instanceof String) {
+                if (((String) item).indexOf(getString(R.string.error_fragment)) >= 0) {
+                    Intent intent = new Intent(getActivity(), BrowseErrorActivity.class);
+                    startActivity(intent);
+                } else {
+                    Toast.makeText(getActivity(), ((String) item), Toast.LENGTH_SHORT)
+                            .show();
+                }
+            }
+        }
+    }
+
+    private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
+        @Override
+        public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
+                                   RowPresenter.ViewHolder rowViewHolder, Row row) {
+            if (item instanceof Movie) {
+                mBackgroundURI = ((Movie) item).getBackgroundImageURI();
+                startBackgroundTimer();
+            }
+
+        }
+    }
+
+    private class UpdateBackgroundTask extends TimerTask {
+
+        @Override
+        public void run() {
+            mHandler.post(new Runnable() {
+                @Override
+                public void run() {
+                    if (mBackgroundURI != null) {
+                        updateBackground(mBackgroundURI.toString());
+                    }
+                }
+            });
+
+        }
+    }
+
+    private class GridItemPresenter extends Presenter {
+        @Override
+        public ViewHolder onCreateViewHolder(ViewGroup parent) {
+            TextView view = new TextView(parent.getContext());
+            view.setLayoutParams(new ViewGroup.LayoutParams(GRID_ITEM_WIDTH, GRID_ITEM_HEIGHT));
+            view.setFocusable(true);
+            view.setFocusableInTouchMode(true);
+            view.setBackgroundColor(getResources().getColor(R.color.default_background));
+            view.setTextColor(Color.WHITE);
+            view.setGravity(Gravity.CENTER);
+            return new ViewHolder(view);
+        }
+
+        @Override
+        public void onBindViewHolder(ViewHolder viewHolder, Object item) {
+            ((TextView) viewHolder.view).setText((String) item);
+        }
+
+        @Override
+        public void onUnbindViewHolder(ViewHolder viewHolder) {
+        }
+    }
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/Movie.java b/ring-android/androidtv/src/main/java/cx/ring/client/Movie.java
new file mode 100644
index 0000000..67a99e0
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/Movie.java
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.util.Log;
+
+import java.io.Serializable;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/*
+ * Movie class represents video entity with title, description, image thumbs and video url.
+ *
+ */
+public class Movie implements Serializable {
+    static final long serialVersionUID = 727566175075960653L;
+    private static long count = 0;
+    private long id;
+    private String title;
+    private String description;
+    private String bgImageUrl;
+    private String cardImageUrl;
+    private String videoUrl;
+    private String studio;
+    private String category;
+
+    public Movie() {
+    }
+
+    public static long getCount() {
+        return count;
+    }
+
+    public static void incCount() {
+        count++;
+    }
+
+    public long getId() {
+        return id;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getStudio() {
+        return studio;
+    }
+
+    public void setStudio(String studio) {
+        this.studio = studio;
+    }
+
+    public String getVideoUrl() {
+        return videoUrl;
+    }
+
+    public void setVideoUrl(String videoUrl) {
+        this.videoUrl = videoUrl;
+    }
+
+    public String getBackgroundImageUrl() {
+        return bgImageUrl;
+    }
+
+    public void setBackgroundImageUrl(String bgImageUrl) {
+        this.bgImageUrl = bgImageUrl;
+    }
+
+    public String getCardImageUrl() {
+        return cardImageUrl;
+    }
+
+    public void setCardImageUrl(String cardImageUrl) {
+        this.cardImageUrl = cardImageUrl;
+    }
+
+    public String getCategory() {
+        return category;
+    }
+
+    public void setCategory(String category) {
+        this.category = category;
+    }
+
+    public URI getBackgroundImageURI() {
+        try {
+            Log.d("BACK MOVIE: ", bgImageUrl);
+            return new URI(getBackgroundImageUrl());
+        } catch (URISyntaxException e) {
+            Log.d("URI exception: ", bgImageUrl);
+            return null;
+        }
+    }
+
+    public URI getCardImageURI() {
+        try {
+            return new URI(getCardImageUrl());
+        } catch (URISyntaxException e) {
+            return null;
+        }
+    }
+
+    @Override
+    public String toString() {
+        return "Movie{" +
+                "id=" + id +
+                ", title='" + title + '\'' +
+                ", videoUrl='" + videoUrl + '\'' +
+                ", backgroundImageUrl='" + bgImageUrl + '\'' +
+                ", backgroundImageURI='" + getBackgroundImageURI().toString() + '\'' +
+                ", cardImageUrl='" + cardImageUrl + '\'' +
+                '}';
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/MovieList.java b/ring-android/androidtv/src/main/java/cx/ring/client/MovieList.java
new file mode 100644
index 0000000..b6e5538
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/MovieList.java
@@ -0,0 +1,86 @@
+package cx.ring.client;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public final class MovieList {
+    public static final String MOVIE_CATEGORY[] = {
+            "Category Zero",
+            "Category One",
+            "Category Two",
+            "Category Three",
+            "Category Four",
+            "Category Five",
+    };
+
+    public static List<Movie> list;
+
+    public static List<Movie> setupMovies() {
+        list = new ArrayList<Movie>();
+        String title[] = {
+                "Zeitgeist 2010_ Year in Review",
+                "Google Demo Slam_ 20ft Search",
+                "Introducing Gmail Blue",
+                "Introducing Google Fiber to the Pole",
+                "Introducing Google Nose"
+        };
+
+        String description = "Fusce id nisi turpis. Praesent viverra bibendum semper. "
+                + "Donec tristique, orci sed semper lacinia, quam erat rhoncus massa, non congue tellus est "
+                + "quis tellus. Sed mollis orci venenatis quam scelerisque accumsan. Curabitur a massa sit "
+                + "amet mi accumsan mollis sed et magna. Vivamus sed aliquam risus. Nulla eget dolor in elit "
+                + "facilisis mattis. Ut aliquet luctus lacus. Phasellus nec commodo erat. Praesent tempus id "
+                + "lectus ac scelerisque. Maecenas pretium cursus lectus id volutpat.";
+
+        String videoUrl[] = {
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/Zeitgeist/Zeitgeist%202010_%20Year%20in%20Review.mp4",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/Demo%20Slam/Google%20Demo%20Slam_%2020ft%20Search.mp4",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Gmail%20Blue.mp4",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Fiber%20to%20the%20Pole.mp4",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Nose.mp4"
+        };
+        String bgImageUrl[] = {
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/Zeitgeist/Zeitgeist%202010_%20Year%20in%20Review/bg.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/Demo%20Slam/Google%20Demo%20Slam_%2020ft%20Search/bg.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Gmail%20Blue/bg.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Fiber%20to%20the%20Pole/bg.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Nose/bg.jpg",
+        };
+        String cardImageUrl[] = {
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/Zeitgeist/Zeitgeist%202010_%20Year%20in%20Review/card.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/Demo%20Slam/Google%20Demo%20Slam_%2020ft%20Search/card.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Gmail%20Blue/card.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Fiber%20to%20the%20Pole/card.jpg",
+                "http://commondatastorage.googleapis.com/android-tv/Sample%20videos/April%20Fool's%202013/Introducing%20Google%20Nose/card.jpg"
+        };
+
+        list.add(buildMovieInfo("category", title[0],
+                description, "Studio Zero", videoUrl[0], cardImageUrl[0], bgImageUrl[0]));
+        list.add(buildMovieInfo("category", title[1],
+                description, "Studio One", videoUrl[1], cardImageUrl[1], bgImageUrl[1]));
+        list.add(buildMovieInfo("category", title[2],
+                description, "Studio Two", videoUrl[2], cardImageUrl[2], bgImageUrl[2]));
+        list.add(buildMovieInfo("category", title[3],
+                description, "Studio Three", videoUrl[3], cardImageUrl[3], bgImageUrl[3]));
+        list.add(buildMovieInfo("category", title[4],
+                description, "Studio Four", videoUrl[4], cardImageUrl[4], bgImageUrl[4]));
+
+        return list;
+    }
+
+    private static Movie buildMovieInfo(String category, String title,
+                                        String description, String studio, String videoUrl, String cardImageUrl,
+                                        String bgImageUrl) {
+        Movie movie = new Movie();
+        movie.setId(Movie.getCount());
+        Movie.incCount();
+        movie.setTitle(title);
+        movie.setDescription(description);
+        movie.setStudio(studio);
+        movie.setCategory(category);
+        movie.setCardImageUrl(cardImageUrl);
+        movie.setBackgroundImageUrl(bgImageUrl);
+        movie.setVideoUrl(videoUrl);
+        return movie;
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/PlaybackOverlayActivity.java b/ring-android/androidtv/src/main/java/cx/ring/client/PlaybackOverlayActivity.java
new file mode 100644
index 0000000..3305543
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/PlaybackOverlayActivity.java
@@ -0,0 +1,255 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.app.Activity;
+import android.graphics.Bitmap;
+import android.media.MediaMetadata;
+import android.media.MediaPlayer;
+import android.media.session.MediaSession;
+import android.media.session.PlaybackState;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.widget.VideoView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.SimpleTarget;
+
+import cx.ring.R;
+
+/**
+ * PlaybackOverlayActivity for video playback that loads PlaybackOverlayFragment
+ */
+public class PlaybackOverlayActivity extends Activity implements
+        PlaybackOverlayFragment.OnPlayPauseClickedListener {
+    private static final String TAG = "PlaybackOverlayActivity";
+
+    private VideoView mVideoView;
+    private LeanbackPlaybackState mPlaybackState = LeanbackPlaybackState.IDLE;
+    private MediaSession mSession;
+
+    /**
+     * Called when the activity is first created.
+     */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.playback_controls);
+        loadViews();
+        setupCallbacks();
+        mSession = new MediaSession(this, "LeanbackSampleApp");
+        mSession.setCallback(new MediaSessionCallback());
+        mSession.setFlags(MediaSession.FLAG_HANDLES_MEDIA_BUTTONS |
+                MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS);
+
+        mSession.setActive(true);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        mVideoView.suspend();
+    }
+
+    @Override
+    public boolean onKeyUp(int keyCode, KeyEvent event) {
+        PlaybackOverlayFragment playbackOverlayFragment = (PlaybackOverlayFragment) getFragmentManager().findFragmentById(R.id.playback_controls_fragment);
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_MEDIA_PLAY:
+                playbackOverlayFragment.togglePlayback(false);
+                return true;
+            case KeyEvent.KEYCODE_MEDIA_PAUSE:
+                playbackOverlayFragment.togglePlayback(false);
+                return true;
+            case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
+                if (mPlaybackState == LeanbackPlaybackState.PLAYING) {
+                    playbackOverlayFragment.togglePlayback(false);
+                } else {
+                    playbackOverlayFragment.togglePlayback(true);
+                }
+                return true;
+            default:
+                return super.onKeyUp(keyCode, event);
+        }
+    }
+
+    /**
+     * Implementation of OnPlayPauseClickedListener
+     */
+    public void onFragmentPlayPause(Movie movie, int position, Boolean playPause) {
+        mVideoView.setVideoPath(movie.getVideoUrl());
+
+        if (position == 0 || mPlaybackState == LeanbackPlaybackState.IDLE) {
+            setupCallbacks();
+            mPlaybackState = LeanbackPlaybackState.IDLE;
+        }
+
+        if (playPause && mPlaybackState != LeanbackPlaybackState.PLAYING) {
+            mPlaybackState = LeanbackPlaybackState.PLAYING;
+            if (position > 0) {
+                mVideoView.seekTo(position);
+                mVideoView.start();
+            }
+        } else {
+            mPlaybackState = LeanbackPlaybackState.PAUSED;
+            mVideoView.pause();
+        }
+        updatePlaybackState(position);
+        updateMetadata(movie);
+    }
+
+    private void updatePlaybackState(int position) {
+        PlaybackState.Builder stateBuilder = new PlaybackState.Builder()
+                .setActions(getAvailableActions());
+        int state = PlaybackState.STATE_PLAYING;
+        if (mPlaybackState == LeanbackPlaybackState.PAUSED) {
+            state = PlaybackState.STATE_PAUSED;
+        }
+        stateBuilder.setState(state, position, 1.0f);
+        mSession.setPlaybackState(stateBuilder.build());
+    }
+
+    private long getAvailableActions() {
+        long actions = PlaybackState.ACTION_PLAY |
+                PlaybackState.ACTION_PLAY_FROM_MEDIA_ID |
+                PlaybackState.ACTION_PLAY_FROM_SEARCH;
+
+        if (mPlaybackState == LeanbackPlaybackState.PLAYING) {
+            actions |= PlaybackState.ACTION_PAUSE;
+        }
+
+        return actions;
+    }
+
+    private void updateMetadata(final Movie movie) {
+        final MediaMetadata.Builder metadataBuilder = new MediaMetadata.Builder();
+
+        String title = movie.getTitle().replace("_", " -");
+
+        metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_TITLE, title);
+        metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_SUBTITLE,
+                movie.getDescription());
+        metadataBuilder.putString(MediaMetadata.METADATA_KEY_DISPLAY_ICON_URI,
+                movie.getCardImageUrl());
+
+        // And at minimum the title and artist for legacy support
+        metadataBuilder.putString(MediaMetadata.METADATA_KEY_TITLE, title);
+        metadataBuilder.putString(MediaMetadata.METADATA_KEY_ARTIST, movie.getStudio());
+
+        Glide.with(this)
+                .load(Uri.parse(movie.getCardImageUrl()))
+                .asBitmap()
+                .into(new SimpleTarget<Bitmap>(500, 500) {
+                    @Override
+                    public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
+                        metadataBuilder.putBitmap(MediaMetadata.METADATA_KEY_ART, bitmap);
+                        mSession.setMetadata(metadataBuilder.build());
+                    }
+                });
+    }
+
+    private void loadViews() {
+        mVideoView = (VideoView) findViewById(R.id.videoView);
+        mVideoView.setFocusable(false);
+        mVideoView.setFocusableInTouchMode(false);
+    }
+
+    private void setupCallbacks() {
+
+        mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
+
+            @Override
+            public boolean onError(MediaPlayer mp, int what, int extra) {
+                String msg = "";
+                if (extra == MediaPlayer.MEDIA_ERROR_TIMED_OUT) {
+                    msg = getString(R.string.video_error_media_load_timeout);
+                } else if (what == MediaPlayer.MEDIA_ERROR_SERVER_DIED) {
+                    msg = getString(R.string.video_error_server_inaccessible);
+                } else {
+                    msg = getString(R.string.video_error_unknown_error);
+                }
+                mVideoView.stopPlayback();
+                mPlaybackState = LeanbackPlaybackState.IDLE;
+                return false;
+            }
+        });
+
+        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+            @Override
+            public void onPrepared(MediaPlayer mp) {
+                if (mPlaybackState == LeanbackPlaybackState.PLAYING) {
+                    mVideoView.start();
+                }
+            }
+        });
+
+        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
+            @Override
+            public void onCompletion(MediaPlayer mp) {
+                mPlaybackState = LeanbackPlaybackState.IDLE;
+            }
+        });
+
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        mSession.setActive(true);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        if (mVideoView.isPlaying()) {
+            if (!requestVisibleBehind(true)) {
+                // Try to play behind launcher, but if it fails, stop playback.
+                stopPlayback();
+            }
+        } else {
+            requestVisibleBehind(false);
+        }
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        mSession.release();
+    }
+
+
+    @Override
+    public void onVisibleBehindCanceled() {
+        super.onVisibleBehindCanceled();
+    }
+
+    private void stopPlayback() {
+        if (mVideoView != null) {
+            mVideoView.stopPlayback();
+        }
+    }
+
+    /*
+     * List of various states that we can be in
+     */
+    public enum LeanbackPlaybackState {
+        PLAYING, PAUSED, BUFFERING, IDLE
+    }
+
+    private class MediaSessionCallback extends MediaSession.Callback {
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/PlaybackOverlayFragment.java b/ring-android/androidtv/src/main/java/cx/ring/client/PlaybackOverlayFragment.java
new file mode 100644
index 0000000..3524bae
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/PlaybackOverlayFragment.java
@@ -0,0 +1,402 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.app.Activity;
+
+import android.media.MediaMetadataRetriever;
+import android.os.Build;
+import android.os.Bundle;
+import android.os.Handler;
+import android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter;
+import android.support.v17.leanback.widget.Action;
+import android.support.v17.leanback.widget.ArrayObjectAdapter;
+import android.support.v17.leanback.widget.ClassPresenterSelector;
+import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
+import android.support.v17.leanback.widget.HeaderItem;
+import android.support.v17.leanback.widget.ListRow;
+import android.support.v17.leanback.widget.ListRowPresenter;
+import android.support.v17.leanback.widget.OnActionClickedListener;
+import android.support.v17.leanback.widget.OnItemViewClickedListener;
+import android.support.v17.leanback.widget.OnItemViewSelectedListener;
+import android.support.v17.leanback.widget.PlaybackControlsRow;
+import android.support.v17.leanback.widget.PlaybackControlsRow.FastForwardAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.PlayPauseAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.RepeatAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.RewindAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.ShuffleAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.SkipNextAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.SkipPreviousAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsDownAction;
+import android.support.v17.leanback.widget.PlaybackControlsRow.ThumbsUpAction;
+import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
+import android.support.v17.leanback.widget.Presenter;
+import android.support.v17.leanback.widget.Row;
+import android.support.v17.leanback.widget.RowPresenter;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.drawable.GlideDrawable;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.SimpleTarget;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import cx.ring.R;
+
+/*
+ * Class for video playback with media control
+ */
+public class PlaybackOverlayFragment extends android.support.v17.leanback.app.PlaybackOverlayFragment {
+    private static final String TAG = "PlaybackControlsFragmnt";
+
+    private static final boolean SHOW_DETAIL = true;
+    private static final boolean HIDE_MORE_ACTIONS = false;
+    private static final int PRIMARY_CONTROLS = 5;
+    private static final boolean SHOW_IMAGE = PRIMARY_CONTROLS <= 5;
+    private static final int BACKGROUND_TYPE = PlaybackOverlayFragment.BG_LIGHT;
+    private static final int CARD_WIDTH = 200;
+    private static final int CARD_HEIGHT = 240;
+    private static final int DEFAULT_UPDATE_PERIOD = 1000;
+    private static final int UPDATE_PERIOD = 16;
+    private static final int SIMULATED_BUFFERED_TIME = 10000;
+
+    private ArrayObjectAdapter mRowsAdapter;
+    private ArrayObjectAdapter mPrimaryActionsAdapter;
+    private ArrayObjectAdapter mSecondaryActionsAdapter;
+    private PlayPauseAction mPlayPauseAction;
+    private RepeatAction mRepeatAction;
+    private ThumbsUpAction mThumbsUpAction;
+    private ThumbsDownAction mThumbsDownAction;
+    private ShuffleAction mShuffleAction;
+    private FastForwardAction mFastForwardAction;
+    private RewindAction mRewindAction;
+    private SkipNextAction mSkipNextAction;
+    private SkipPreviousAction mSkipPreviousAction;
+    private PlaybackControlsRow mPlaybackControlsRow;
+    private ArrayList<Movie> mItems = new ArrayList<Movie>();
+    private int mCurrentItem;
+    private Handler mHandler;
+    private Runnable mRunnable;
+    private Movie mSelectedMovie;
+
+    private OnPlayPauseClickedListener mCallback;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mItems = new ArrayList<Movie>();
+        mSelectedMovie = (Movie) getActivity()
+                .getIntent().getSerializableExtra(DetailsActivity.MOVIE);
+
+        List<Movie> movies = MovieList.list;
+
+        for (int j = 0; j < movies.size(); j++) {
+            mItems.add(movies.get(j));
+            if (mSelectedMovie.getTitle().contentEquals(movies.get(j).getTitle())) {
+                mCurrentItem = j;
+            }
+        }
+
+        mHandler = new Handler();
+
+        setBackgroundType(BACKGROUND_TYPE);
+        setFadingEnabled(false);
+
+        setupRows();
+
+        setOnItemViewSelectedListener(new OnItemViewSelectedListener() {
+            @Override
+            public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
+                                       RowPresenter.ViewHolder rowViewHolder, Row row) {
+                Log.i(TAG, "onItemSelected: " + item + " row " + row);
+            }
+        });
+        setOnItemViewClickedListener(new OnItemViewClickedListener() {
+            @Override
+            public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
+                                      RowPresenter.ViewHolder rowViewHolder, Row row) {
+                Log.i(TAG, "onItemClicked: " + item + " row " + row);
+            }
+        });
+    }
+
+    @SuppressWarnings("deprecation")
+    @Override
+    public void onAttach(Activity context) {
+        super.onAttach(context);
+        if (context instanceof OnPlayPauseClickedListener) {
+            mCallback = (OnPlayPauseClickedListener) context;
+        } else {
+            throw new RuntimeException(context.toString()
+                    + " must implement OnPlayPauseClickedListener");
+        }
+    }
+
+    private void setupRows() {
+
+        ClassPresenterSelector ps = new ClassPresenterSelector();
+
+        PlaybackControlsRowPresenter playbackControlsRowPresenter;
+        if (SHOW_DETAIL) {
+            playbackControlsRowPresenter = new PlaybackControlsRowPresenter(
+                    new DescriptionPresenter());
+        } else {
+            playbackControlsRowPresenter = new PlaybackControlsRowPresenter();
+        }
+        playbackControlsRowPresenter.setOnActionClickedListener(new OnActionClickedListener() {
+            public void onActionClicked(Action action) {
+                if (action.getId() == mPlayPauseAction.getId()) {
+                    togglePlayback(mPlayPauseAction.getIndex() == PlayPauseAction.PLAY);
+                } else if (action.getId() == mSkipNextAction.getId()) {
+                    next();
+                } else if (action.getId() == mSkipPreviousAction.getId()) {
+                    prev();
+                } else if (action.getId() == mFastForwardAction.getId()) {
+                    Toast.makeText(getActivity(), "TODO: Fast Forward", Toast.LENGTH_SHORT).show();
+                } else if (action.getId() == mRewindAction.getId()) {
+                    Toast.makeText(getActivity(), "TODO: Rewind", Toast.LENGTH_SHORT).show();
+                }
+                if (action instanceof PlaybackControlsRow.MultiAction) {
+                    ((PlaybackControlsRow.MultiAction) action).nextIndex();
+                    notifyChanged(action);
+                }
+            }
+        });
+        playbackControlsRowPresenter.setSecondaryActionsHidden(HIDE_MORE_ACTIONS);
+
+        ps.addClassPresenter(PlaybackControlsRow.class, playbackControlsRowPresenter);
+        ps.addClassPresenter(ListRow.class, new ListRowPresenter());
+        mRowsAdapter = new ArrayObjectAdapter(ps);
+
+        addPlaybackControlsRow();
+        addOtherRows();
+
+        setAdapter(mRowsAdapter);
+    }
+
+    public void togglePlayback(boolean playPause) {
+        if (playPause) {
+            startProgressAutomation();
+            setFadingEnabled(true);
+            mCallback.onFragmentPlayPause(mItems.get(mCurrentItem),
+                    mPlaybackControlsRow.getCurrentTime(), true);
+            mPlayPauseAction.setIcon(mPlayPauseAction.getDrawable(PlayPauseAction.PAUSE));
+        } else {
+            stopProgressAutomation();
+            setFadingEnabled(false);
+            mCallback.onFragmentPlayPause(mItems.get(mCurrentItem),
+                    mPlaybackControlsRow.getCurrentTime(), false);
+            mPlayPauseAction.setIcon(mPlayPauseAction.getDrawable(PlayPauseAction.PLAY));
+        }
+        notifyChanged(mPlayPauseAction);
+    }
+
+    private int getDuration() {
+        Movie movie = mItems.get(mCurrentItem);
+        MediaMetadataRetriever mmr = new MediaMetadataRetriever();
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
+            mmr.setDataSource(movie.getVideoUrl(), new HashMap<String, String>());
+        } else {
+            mmr.setDataSource(movie.getVideoUrl());
+        }
+        String time = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
+        long duration = Long.parseLong(time);
+        return (int) duration;
+    }
+
+    private void addPlaybackControlsRow() {
+        if (SHOW_DETAIL) {
+            mPlaybackControlsRow = new PlaybackControlsRow(mSelectedMovie);
+        } else {
+            mPlaybackControlsRow = new PlaybackControlsRow();
+        }
+        mRowsAdapter.add(mPlaybackControlsRow);
+
+        updatePlaybackRow(mCurrentItem);
+
+        ControlButtonPresenterSelector presenterSelector = new ControlButtonPresenterSelector();
+        mPrimaryActionsAdapter = new ArrayObjectAdapter(presenterSelector);
+        mSecondaryActionsAdapter = new ArrayObjectAdapter(presenterSelector);
+        mPlaybackControlsRow.setPrimaryActionsAdapter(mPrimaryActionsAdapter);
+        mPlaybackControlsRow.setSecondaryActionsAdapter(mSecondaryActionsAdapter);
+
+        mPlayPauseAction = new PlayPauseAction(getActivity());
+        mRepeatAction = new RepeatAction(getActivity());
+        mThumbsUpAction = new ThumbsUpAction(getActivity());
+        mThumbsDownAction = new ThumbsDownAction(getActivity());
+        mShuffleAction = new ShuffleAction(getActivity());
+        mSkipNextAction = new PlaybackControlsRow.SkipNextAction(getActivity());
+        mSkipPreviousAction = new PlaybackControlsRow.SkipPreviousAction(getActivity());
+        mFastForwardAction = new PlaybackControlsRow.FastForwardAction(getActivity());
+        mRewindAction = new PlaybackControlsRow.RewindAction(getActivity());
+
+        if (PRIMARY_CONTROLS > 5) {
+            mPrimaryActionsAdapter.add(mThumbsUpAction);
+        } else {
+            mSecondaryActionsAdapter.add(mThumbsUpAction);
+        }
+        mPrimaryActionsAdapter.add(mSkipPreviousAction);
+        if (PRIMARY_CONTROLS > 3) {
+            mPrimaryActionsAdapter.add(new PlaybackControlsRow.RewindAction(getActivity()));
+        }
+        mPrimaryActionsAdapter.add(mPlayPauseAction);
+        if (PRIMARY_CONTROLS > 3) {
+            mPrimaryActionsAdapter.add(new PlaybackControlsRow.FastForwardAction(getActivity()));
+        }
+        mPrimaryActionsAdapter.add(mSkipNextAction);
+
+        mSecondaryActionsAdapter.add(mRepeatAction);
+        mSecondaryActionsAdapter.add(mShuffleAction);
+        if (PRIMARY_CONTROLS > 5) {
+            mPrimaryActionsAdapter.add(mThumbsDownAction);
+        } else {
+            mSecondaryActionsAdapter.add(mThumbsDownAction);
+        }
+        mSecondaryActionsAdapter.add(new PlaybackControlsRow.HighQualityAction(getActivity()));
+        mSecondaryActionsAdapter.add(new PlaybackControlsRow.ClosedCaptioningAction(getActivity()));
+    }
+
+    private void notifyChanged(Action action) {
+        ArrayObjectAdapter adapter = mPrimaryActionsAdapter;
+        if (adapter.indexOf(action) >= 0) {
+            adapter.notifyArrayItemRangeChanged(adapter.indexOf(action), 1);
+            return;
+        }
+        adapter = mSecondaryActionsAdapter;
+        if (adapter.indexOf(action) >= 0) {
+            adapter.notifyArrayItemRangeChanged(adapter.indexOf(action), 1);
+            return;
+        }
+    }
+
+    private void updatePlaybackRow(int index) {
+        if (mPlaybackControlsRow.getItem() != null) {
+            Movie item = (Movie) mPlaybackControlsRow.getItem();
+            item.setTitle(mItems.get(mCurrentItem).getTitle());
+            item.setStudio(mItems.get(mCurrentItem).getStudio());
+        }
+        if (SHOW_IMAGE) {
+            updateVideoImage(mItems.get(mCurrentItem).getCardImageURI().toString());
+        }
+        mRowsAdapter.notifyArrayItemRangeChanged(0, 1);
+        mPlaybackControlsRow.setTotalTime(getDuration());
+        mPlaybackControlsRow.setCurrentTime(0);
+        mPlaybackControlsRow.setBufferedProgress(0);
+    }
+
+    private void addOtherRows() {
+        ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter());
+        for (Movie movie : mItems) {
+            listRowAdapter.add(movie);
+        }
+        HeaderItem header = new HeaderItem(0, getString(R.string.related_movies));
+        mRowsAdapter.add(new ListRow(header, listRowAdapter));
+
+    }
+
+    private int getUpdatePeriod() {
+        if (getView() == null || mPlaybackControlsRow.getTotalTime() <= 0) {
+            return DEFAULT_UPDATE_PERIOD;
+        }
+        return Math.max(UPDATE_PERIOD, mPlaybackControlsRow.getTotalTime() / getView().getWidth());
+    }
+
+    private void startProgressAutomation() {
+        mRunnable = new Runnable() {
+            @Override
+            public void run() {
+                int updatePeriod = getUpdatePeriod();
+                int currentTime = mPlaybackControlsRow.getCurrentTime() + updatePeriod;
+                int totalTime = mPlaybackControlsRow.getTotalTime();
+                mPlaybackControlsRow.setCurrentTime(currentTime);
+                mPlaybackControlsRow.setBufferedProgress(currentTime + SIMULATED_BUFFERED_TIME);
+
+                if (totalTime > 0 && totalTime <= currentTime) {
+                    next();
+                }
+                mHandler.postDelayed(this, updatePeriod);
+            }
+        };
+        mHandler.postDelayed(mRunnable, getUpdatePeriod());
+    }
+
+    private void next() {
+        if (++mCurrentItem >= mItems.size()) {
+            mCurrentItem = 0;
+        }
+
+        if (mPlayPauseAction.getIndex() == PlayPauseAction.PLAY) {
+            mCallback.onFragmentPlayPause(mItems.get(mCurrentItem), 0, false);
+        } else {
+            mCallback.onFragmentPlayPause(mItems.get(mCurrentItem), 0, true);
+        }
+        updatePlaybackRow(mCurrentItem);
+    }
+
+    private void prev() {
+        if (--mCurrentItem < 0) {
+            mCurrentItem = mItems.size() - 1;
+        }
+        if (mPlayPauseAction.getIndex() == PlayPauseAction.PLAY) {
+            mCallback.onFragmentPlayPause(mItems.get(mCurrentItem), 0, false);
+        } else {
+            mCallback.onFragmentPlayPause(mItems.get(mCurrentItem), 0, true);
+        }
+        updatePlaybackRow(mCurrentItem);
+    }
+
+    private void stopProgressAutomation() {
+        if (mHandler != null && mRunnable != null) {
+            mHandler.removeCallbacks(mRunnable);
+        }
+    }
+
+    @Override
+    public void onStop() {
+        stopProgressAutomation();
+        super.onStop();
+    }
+
+    protected void updateVideoImage(String uri) {
+        Glide.with(getActivity())
+                .load(uri)
+                .centerCrop()
+                .into(new SimpleTarget<GlideDrawable>(CARD_WIDTH, CARD_HEIGHT) {
+                    @Override
+                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
+                        mPlaybackControlsRow.setImageDrawable(resource);
+                        mRowsAdapter.notifyArrayItemRangeChanged(0, mRowsAdapter.size());
+                    }
+                });
+    }
+
+    // Container Activity must implement this interface
+    public interface OnPlayPauseClickedListener {
+        void onFragmentPlayPause(Movie movie, int position, Boolean playPause);
+    }
+
+    static class DescriptionPresenter extends AbstractDetailsDescriptionPresenter {
+        @Override
+        protected void onBindDescription(ViewHolder viewHolder, Object item) {
+            viewHolder.getTitle().setText(((Movie) item).getTitle());
+            viewHolder.getSubtitle().setText(((Movie) item).getStudio());
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/Utils.java b/ring-android/androidtv/src/main/java/cx/ring/client/Utils.java
new file mode 100644
index 0000000..d55b96b
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/Utils.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.content.Context;
+import android.graphics.Point;
+import android.view.Display;
+import android.view.WindowManager;
+import android.widget.Toast;
+
+/**
+ * A collection of utility methods, all static.
+ */
+public class Utils {
+
+    /*
+     * Making sure public utility methods remain static
+     */
+    private Utils() {
+    }
+
+    /**
+     * Returns the screen/display size
+     */
+    public static Point getDisplaySize(Context context) {
+        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
+        Display display = wm.getDefaultDisplay();
+        Point size = new Point();
+        display.getSize(size);
+        return size;
+    }
+
+    /**
+     * Shows a (long) toast
+     */
+    public static void showToast(Context context, String msg) {
+        Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
+    }
+
+    /**
+     * Shows a (long) toast.
+     */
+    public static void showToast(Context context, int resourceId) {
+        Toast.makeText(context, context.getString(resourceId), Toast.LENGTH_LONG).show();
+    }
+
+    public static int convertDpToPixel(Context ctx, int dp) {
+        float density = ctx.getResources().getDisplayMetrics().density;
+        return Math.round((float) dp * density);
+    }
+
+    /**
+     * Formats time in milliseconds to hh:mm:ss string format.
+     */
+    public static String formatMillis(int millis) {
+        String result = "";
+        int hr = millis / 3600000;
+        millis %= 3600000;
+        int min = millis / 60000;
+        millis %= 60000;
+        int sec = millis / 1000;
+        if (hr > 0) {
+            result += hr + ":";
+        }
+        if (min >= 0) {
+            if (min > 9) {
+                result += min + ":";
+            } else {
+                result += "0" + min + ":";
+            }
+        }
+        if (sec > 9) {
+            result += sec;
+        } else {
+            result += "0" + sec;
+        }
+        return result;
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/client/VideoDetailsFragment.java b/ring-android/androidtv/src/main/java/cx/ring/client/VideoDetailsFragment.java
new file mode 100644
index 0000000..d40fb71
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/client/VideoDetailsFragment.java
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+package cx.ring.client;
+
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
+import android.support.v17.leanback.app.BackgroundManager;
+import android.support.v17.leanback.app.DetailsFragment;
+import android.support.v17.leanback.widget.Action;
+import android.support.v17.leanback.widget.ArrayObjectAdapter;
+import android.support.v17.leanback.widget.ClassPresenterSelector;
+import android.support.v17.leanback.widget.DetailsOverviewRow;
+import android.support.v17.leanback.widget.DetailsOverviewRowPresenter;
+import android.support.v17.leanback.widget.HeaderItem;
+import android.support.v17.leanback.widget.ImageCardView;
+import android.support.v17.leanback.widget.ListRow;
+import android.support.v17.leanback.widget.ListRowPresenter;
+import android.support.v17.leanback.widget.OnActionClickedListener;
+import android.support.v17.leanback.widget.OnItemViewClickedListener;
+import android.support.v17.leanback.widget.Presenter;
+import android.support.v17.leanback.widget.Row;
+import android.support.v17.leanback.widget.RowPresenter;
+import android.support.v4.app.ActivityOptionsCompat;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.drawable.GlideDrawable;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.SimpleTarget;
+
+import java.util.Collections;
+import java.util.List;
+
+import cx.ring.R;
+
+/*
+ * LeanbackDetailsFragment extends DetailsFragment, a Wrapper fragment for leanback details screens.
+ * It shows a detailed view of video and its meta plus related videos.
+ */
+public class VideoDetailsFragment extends DetailsFragment {
+    private static final String TAG = "VideoDetailsFragment";
+
+    private static final int ACTION_WATCH_TRAILER = 1;
+    private static final int ACTION_RENT = 2;
+    private static final int ACTION_BUY = 3;
+
+    private static final int DETAIL_THUMB_WIDTH = 274;
+    private static final int DETAIL_THUMB_HEIGHT = 274;
+
+    private static final int NUM_COLS = 10;
+
+    private Movie mSelectedMovie;
+
+    private ArrayObjectAdapter mAdapter;
+    private ClassPresenterSelector mPresenterSelector;
+
+    private BackgroundManager mBackgroundManager;
+    private Drawable mDefaultBackground;
+    private DisplayMetrics mMetrics;
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        Log.d(TAG, "onCreate DetailsFragment");
+        super.onCreate(savedInstanceState);
+
+        prepareBackgroundManager();
+
+        mSelectedMovie = (Movie) getActivity().getIntent()
+                .getSerializableExtra(DetailsActivity.MOVIE);
+        if (mSelectedMovie != null) {
+            setupAdapter();
+            setupDetailsOverviewRow();
+            setupDetailsOverviewRowPresenter();
+            setupMovieListRow();
+            setupMovieListRowPresenter();
+            updateBackground(mSelectedMovie.getBackgroundImageUrl());
+            setOnItemViewClickedListener(new ItemViewClickedListener());
+        } else {
+            Intent intent = new Intent(getActivity(), HomeActivity.class);
+            startActivity(intent);
+        }
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+    }
+
+    private void prepareBackgroundManager() {
+        mBackgroundManager = BackgroundManager.getInstance(getActivity());
+        mBackgroundManager.attach(getActivity().getWindow());
+        mDefaultBackground = getResources().getDrawable(R.drawable.default_background);
+        mMetrics = new DisplayMetrics();
+        getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
+    }
+
+    protected void updateBackground(String uri) {
+        Glide.with(getActivity())
+                .load(uri)
+                .centerCrop()
+                .error(mDefaultBackground)
+                .into(new SimpleTarget<GlideDrawable>(mMetrics.widthPixels, mMetrics.heightPixels) {
+                    @Override
+                    public void onResourceReady(GlideDrawable resource,
+                                                GlideAnimation<? super GlideDrawable> glideAnimation) {
+                        mBackgroundManager.setDrawable(resource);
+                    }
+                });
+    }
+
+    private void setupAdapter() {
+        mPresenterSelector = new ClassPresenterSelector();
+        mAdapter = new ArrayObjectAdapter(mPresenterSelector);
+        setAdapter(mAdapter);
+    }
+
+    private void setupDetailsOverviewRow() {
+        Log.d(TAG, "doInBackground: " + mSelectedMovie.toString());
+        final DetailsOverviewRow row = new DetailsOverviewRow(mSelectedMovie);
+        row.setImageDrawable(getResources().getDrawable(R.drawable.default_background));
+        int width = Utils.convertDpToPixel(getActivity()
+                .getApplicationContext(), DETAIL_THUMB_WIDTH);
+        int height = Utils.convertDpToPixel(getActivity()
+                .getApplicationContext(), DETAIL_THUMB_HEIGHT);
+        Glide.with(getActivity())
+                .load(mSelectedMovie.getCardImageUrl())
+                .centerCrop()
+                .error(R.drawable.default_background)
+                .into(new SimpleTarget<GlideDrawable>(width, height) {
+                    @Override
+                    public void onResourceReady(GlideDrawable resource,
+                                                GlideAnimation<? super GlideDrawable>
+                                                        glideAnimation) {
+                        Log.d(TAG, "details overview card image url ready: " + resource);
+                        row.setImageDrawable(resource);
+                        mAdapter.notifyArrayItemRangeChanged(0, mAdapter.size());
+                    }
+                });
+
+        row.addAction(new Action(ACTION_WATCH_TRAILER, getResources().getString(
+                R.string.watch_trailer_1), getResources().getString(R.string.watch_trailer_2)));
+        row.addAction(new Action(ACTION_RENT, getResources().getString(R.string.rent_1),
+                getResources().getString(R.string.rent_2)));
+        row.addAction(new Action(ACTION_BUY, getResources().getString(R.string.buy_1),
+                getResources().getString(R.string.buy_2)));
+
+        mAdapter.add(row);
+    }
+
+    private void setupDetailsOverviewRowPresenter() {
+        // Set detail background and style.
+        DetailsOverviewRowPresenter detailsPresenter =
+                new DetailsOverviewRowPresenter(new DetailsDescriptionPresenter());
+        detailsPresenter.setBackgroundColor(getResources().getColor(R.color.selected_background));
+        detailsPresenter.setStyleLarge(true);
+
+        // Hook up transition element.
+        detailsPresenter.setSharedElementEnterTransition(getActivity(),
+                DetailsActivity.SHARED_ELEMENT_NAME);
+
+        detailsPresenter.setOnActionClickedListener(new OnActionClickedListener() {
+            @Override
+            public void onActionClicked(Action action) {
+                if (action.getId() == ACTION_WATCH_TRAILER) {
+                    Intent intent = new Intent(getActivity(), PlaybackOverlayActivity.class);
+                    intent.putExtra(DetailsActivity.MOVIE, mSelectedMovie);
+                    startActivity(intent);
+                } else {
+                    Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show();
+                }
+            }
+        });
+        mPresenterSelector.addClassPresenter(DetailsOverviewRow.class, detailsPresenter);
+    }
+
+    private void setupMovieListRow() {
+        String subcategories[] = {getString(R.string.related_movies)};
+        List<Movie> list = MovieList.list;
+
+        Collections.shuffle(list);
+        ArrayObjectAdapter listRowAdapter = new ArrayObjectAdapter(new CardPresenter());
+        for (int j = 0; j < NUM_COLS; j++) {
+            listRowAdapter.add(list.get(j % 5));
+        }
+
+        HeaderItem header = new HeaderItem(0, subcategories[0]);
+        mAdapter.add(new ListRow(header, listRowAdapter));
+    }
+
+    private void setupMovieListRowPresenter() {
+        mPresenterSelector.addClassPresenter(ListRow.class, new ListRowPresenter());
+    }
+
+    private final class ItemViewClickedListener implements OnItemViewClickedListener {
+        @Override
+        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
+                                  RowPresenter.ViewHolder rowViewHolder, Row row) {
+
+            if (item instanceof Movie) {
+                Movie movie = (Movie) item;
+                Log.d(TAG, "Item: " + item.toString());
+                Intent intent = new Intent(getActivity(), DetailsActivity.class);
+                intent.putExtra(getResources().getString(R.string.movie), mSelectedMovie);
+                intent.putExtra(getResources().getString(R.string.should_start), true);
+                startActivity(intent);
+
+
+                Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
+                        getActivity(),
+                        ((ImageCardView) itemViewHolder.view).getMainImageView(),
+                        DetailsActivity.SHARED_ELEMENT_NAME).toBundle();
+                getActivity().startActivity(intent, bundle);
+            }
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/PresenterInjectionModule.java b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/PresenterInjectionModule.java
new file mode 100755
index 0000000..cf6e8ec
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/PresenterInjectionModule.java
@@ -0,0 +1,86 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.dependencyinjection;
+
+import javax.inject.Singleton;
+
+import cx.ring.about.AboutPresenter;
+import cx.ring.account.RingAccountSummaryPresenter;
+import cx.ring.application.RingApplication;
+import cx.ring.navigation.RingNavigationPresenter;
+import cx.ring.settings.SettingsPresenter;
+import cx.ring.share.SharePresenter;
+import dagger.Module;
+import dagger.Provides;
+
+@Module
+public class PresenterInjectionModule {
+
+    RingApplication mRingApplication;
+
+    public PresenterInjectionModule(RingApplication app) {
+        mRingApplication = app;
+    }
+
+    @Provides
+    @Singleton
+    AboutPresenter provideAboutPresenter() {
+        AboutPresenter presenter = new AboutPresenter();
+        mRingApplication.getRingInjectionComponent().inject(presenter);
+        presenter.afterInjection();
+        return presenter;
+    }
+
+    @Provides
+    @Singleton
+    SharePresenter provideSharePresenter() {
+        SharePresenter presenter = new SharePresenter();
+        mRingApplication.getRingInjectionComponent().inject(presenter);
+        presenter.afterInjection();
+        return presenter;
+    }
+
+    @Provides
+    @Singleton
+    SettingsPresenter provideSettingsPresenter() {
+        SettingsPresenter presenter = new SettingsPresenter();
+        mRingApplication.getRingInjectionComponent().inject(presenter);
+        presenter.afterInjection();
+        return presenter;
+    }
+
+    @Provides
+    @Singleton
+    RingNavigationPresenter provideRingNavigationPresenter() {
+        RingNavigationPresenter presenter = new RingNavigationPresenter();
+        mRingApplication.getRingInjectionComponent().inject(presenter);
+        presenter.afterInjection();
+        return presenter;
+    }
+
+    @Provides
+    @Singleton
+    RingAccountSummaryPresenter provideRingAccountPresenter() {
+        RingAccountSummaryPresenter presenter = new RingAccountSummaryPresenter();
+        mRingApplication.getRingInjectionComponent().inject(presenter);
+        presenter.afterInjection();
+        return presenter;
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/RingInjectionComponent.java b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/RingInjectionComponent.java
new file mode 100755
index 0000000..81b3a65
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/RingInjectionComponent.java
@@ -0,0 +1,90 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.dependencyinjection;
+
+import javax.inject.Singleton;
+
+import cx.ring.about.AboutPresenter;
+import cx.ring.account.RingAccountSummaryPresenter;
+import cx.ring.application.RingApplication;
+import cx.ring.facades.ConversationFacade;
+import cx.ring.navigation.RingNavigationPresenter;
+import cx.ring.service.BootReceiver;
+import cx.ring.service.DRingService;
+import cx.ring.services.AccountService;
+import cx.ring.services.CallService;
+import cx.ring.services.ConferenceService;
+import cx.ring.services.ContactServiceImpl;
+import cx.ring.services.DaemonService;
+import cx.ring.services.DeviceRuntimeServiceImpl;
+import cx.ring.services.HardwareService;
+import cx.ring.services.HistoryServiceImpl;
+import cx.ring.services.NotificationServiceImpl;
+import cx.ring.services.PresenceService;
+import cx.ring.services.SharedPreferencesServiceImpl;
+
+import cx.ring.settings.SettingsPresenter;
+import cx.ring.share.SharePresenter;
+import dagger.Component;
+
+@Singleton
+@Component(modules = {RingInjectionModule.class, PresenterInjectionModule.class, ServiceInjectionModule.class})
+public interface RingInjectionComponent {
+    void inject(RingApplication app);
+
+    void inject(DRingService service);
+
+    void inject(DeviceRuntimeServiceImpl service);
+
+    void inject(DaemonService service);
+
+    void inject(CallService service);
+
+    void inject(ConferenceService service);
+
+    void inject(AccountService service);
+
+    void inject(HardwareService service);
+
+    void inject(SharedPreferencesServiceImpl service);
+
+    void inject(HistoryServiceImpl service);
+
+    void inject(ContactServiceImpl service);
+
+    void inject(NotificationServiceImpl service);
+
+    void inject(ConversationFacade service);
+
+    void inject(PresenceService service);
+
+    void inject(BootReceiver receiver);
+
+    void inject(AboutPresenter presenter);
+
+    void inject(RingNavigationPresenter presenter);
+
+    void inject(SharePresenter presenter);
+
+    void inject(SettingsPresenter presenter);
+
+    void inject(RingAccountSummaryPresenter presenter);
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/RingInjectionModule.java b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/RingInjectionModule.java
new file mode 100755
index 0000000..e93742b
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/RingInjectionModule.java
@@ -0,0 +1,47 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.dependencyinjection;
+
+import android.content.Context;
+
+import cx.ring.application.RingApplication;
+import dagger.Module;
+import dagger.Provides;
+
+@Module
+public class RingInjectionModule {
+
+    RingApplication mRingApplication;
+
+    public RingInjectionModule(RingApplication app) {
+        mRingApplication = app;
+    }
+
+    @Provides
+    RingApplication provideRingApplication() {
+        return mRingApplication;
+    }
+
+    @Provides
+    Context provideContext() {
+        return mRingApplication;
+    }
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/ServiceInjectionModule.java b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/ServiceInjectionModule.java
new file mode 100755
index 0000000..20b4140
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/dependencyinjection/ServiceInjectionModule.java
@@ -0,0 +1,201 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.dependencyinjection;
+
+import android.content.Context;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
+
+import cx.ring.application.RingApplication;
+import cx.ring.facades.ConversationFacade;
+import cx.ring.services.AccountService;
+import cx.ring.services.CallService;
+import cx.ring.services.ConferenceService;
+import cx.ring.services.ContactService;
+import cx.ring.services.ContactServiceImpl;
+import cx.ring.services.DaemonService;
+import cx.ring.services.DeviceRuntimeService;
+import cx.ring.services.DeviceRuntimeServiceImpl;
+import cx.ring.services.HardwareService;
+import cx.ring.services.HardwareServiceImpl;
+import cx.ring.services.HistoryService;
+import cx.ring.services.HistoryServiceImpl;
+import cx.ring.services.LogService;
+import cx.ring.services.LogServiceImpl;
+import cx.ring.services.NotificationService;
+import cx.ring.services.NotificationServiceImpl;
+import cx.ring.services.PreferencesService;
+import cx.ring.services.PresenceService;
+import cx.ring.services.SharedPreferencesServiceImpl;
+import cx.ring.utils.Log;
+import cx.ring.utils.MediaManager;
+import dagger.Module;
+import dagger.Provides;
+
+@Module
+public class ServiceInjectionModule {
+
+    RingApplication mRingApplication;
+
+    public ServiceInjectionModule(RingApplication app) {
+        mRingApplication = app;
+    }
+
+    @Provides
+    @Singleton
+    PreferencesService provideSettingsService() {
+        SharedPreferencesServiceImpl settingsService = new SharedPreferencesServiceImpl();
+        mRingApplication.getRingInjectionComponent().inject(settingsService);
+        return settingsService;
+    }
+
+    @Provides
+    @Singleton
+    HistoryService provideHistoryService() {
+        HistoryServiceImpl historyService = new HistoryServiceImpl();
+        mRingApplication.getRingInjectionComponent().inject(historyService);
+        historyService.initHelper();
+        return historyService;
+    }
+
+    @Provides
+    @Singleton
+    LogService provideLogService() {
+        LogService service = new LogServiceImpl();
+        Log.injectLogService(service);
+        return service;
+    }
+
+    @Provides
+    @Singleton
+    NotificationService provideNotificationService() {
+        NotificationServiceImpl service = new NotificationServiceImpl();
+        mRingApplication.getRingInjectionComponent().inject(service);
+        service.initHelper();
+        return service;
+    }
+
+    @Provides
+    @Singleton
+    DeviceRuntimeService provideDeviceRuntimeService(LogService logService) {
+        DeviceRuntimeServiceImpl runtimeService = new DeviceRuntimeServiceImpl();
+        mRingApplication.getRingInjectionComponent().inject(runtimeService);
+        runtimeService.loadNativeLibrary();
+        return runtimeService;
+    }
+
+    @Provides
+    @Singleton
+    DaemonService provideDaemonService(DeviceRuntimeService deviceRuntimeService) {
+        DaemonService daemonService = new DaemonService(deviceRuntimeService);
+        mRingApplication.getRingInjectionComponent().inject(daemonService);
+        return daemonService;
+    }
+
+    @Provides
+    @Singleton
+    CallService provideCallService(DaemonService daemonService) {
+        CallService callService = new CallService();
+        mRingApplication.getRingInjectionComponent().inject(callService);
+        return callService;
+    }
+
+    @Provides
+    @Singleton
+    ConferenceService provideConferenceService(DaemonService daemonService) {
+        ConferenceService conferenceService = new ConferenceService();
+        mRingApplication.getRingInjectionComponent().inject(conferenceService);
+        return conferenceService;
+    }
+
+    @Provides
+    @Singleton
+    AccountService provideAccountService(DaemonService daemonService) {
+        AccountService accountService = new AccountService();
+        mRingApplication.getRingInjectionComponent().inject(accountService);
+        return accountService;
+    }
+
+    @Provides
+    @Singleton
+    HardwareService provideHardwareService(Context context) {
+        HardwareServiceImpl hardwareService = new HardwareServiceImpl(context);
+        mRingApplication.getRingInjectionComponent().inject(hardwareService);
+        return hardwareService;
+    }
+
+    @Provides
+    @Singleton
+    ContactService provideContactService(PreferencesService sharedPreferencesService) {
+        ContactServiceImpl contactService = new ContactServiceImpl();
+        mRingApplication.getRingInjectionComponent().inject(contactService);
+        return contactService;
+    }
+
+    @Provides
+    @Singleton
+    PresenceService providePresenceService() {
+        PresenceService presenceService = new PresenceService();
+        mRingApplication.getRingInjectionComponent().inject(presenceService);
+        return presenceService;
+    }
+
+    @Provides
+    @Singleton
+    ConversationFacade provideConversationFacade(
+            ContactService contactService,
+            HistoryService historyService,
+            CallService callService) {
+        ConversationFacade conversationFacade = new ConversationFacade(historyService, callService, contactService);
+        mRingApplication.getRingInjectionComponent().inject(conversationFacade);
+        return conversationFacade;
+    }
+
+    @Provides
+    @Named("DaemonExecutor")
+    @Singleton
+    ExecutorService provideDaemonExecutorService() {
+        return Executors.newSingleThreadExecutor();
+    }
+
+    @Provides
+    @Named("ApplicationExecutor")
+    @Singleton
+    ExecutorService provideApplicationExecutorService() {
+        return Executors.newFixedThreadPool(5);
+    }
+
+    @Provides
+    @Singleton
+    ScheduledExecutorService provideScheduledExecutorService() {
+        return Executors.newSingleThreadScheduledExecutor();
+    }
+
+    @Provides
+    @Singleton
+    MediaManager provideMediaManager(Context context) {
+        return new MediaManager(context);
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/history/DatabaseHelper.java b/ring-android/androidtv/src/main/java/cx/ring/history/DatabaseHelper.java
new file mode 100644
index 0000000..b15394b
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/history/DatabaseHelper.java
@@ -0,0 +1,258 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.history;
+
+import android.content.Context;
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
+import android.database.sqlite.SQLiteException;
+import android.util.Log;
+
+import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper;
+import com.j256.ormlite.dao.Dao;
+import com.j256.ormlite.support.ConnectionSource;
+import com.j256.ormlite.table.TableUtils;
+
+import java.sql.SQLException;
+import java.util.ArrayList;
+
+import cx.ring.model.HistoryCall;
+import cx.ring.model.HistoryText;
+
+/**
+ * Database History Version
+ * 7 : changing columns names. See https://gerrit-ring.savoirfairelinux.com/#/c/4297
+ */
+
+/**
+ * Database helper class used to manage the creation and upgrading of your database. This class also usually provides
+ * the DAOs used by the other classes.
+ */
+public class DatabaseHelper extends OrmLiteSqliteOpenHelper {
+    private static final String TAG = DatabaseHelper.class.getSimpleName();
+    private static final String DATABASE_NAME = "history.db";
+    // any time you make changes to your database objects, you may have to increase the database version
+    private static final int DATABASE_VERSION = 8;
+
+    private Dao<HistoryCall, Integer> historyDao = null;
+    private Dao<HistoryText, Integer> historyTextDao = null;
+
+    public DatabaseHelper(Context context) {
+        super(context, DATABASE_NAME, null, DATABASE_VERSION);
+    }
+
+    /**
+     * This is called when the database is first created. Usually you should call createTable statements here to create
+     * the tables that will store your data.
+     */
+    @Override
+    public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) {
+        try {
+            Log.d(TAG, "onCreate");
+            TableUtils.createTable(connectionSource, HistoryCall.class);
+            TableUtils.createTable(connectionSource, HistoryText.class);
+        } catch (SQLException e) {
+            Log.e(TAG, "Can't create database", e);
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * This is called when your application is upgraded and it has a higher version number. This allows you to adjust
+     * the various data to match the new version number.
+     */
+    @Override
+    public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) {
+        Log.i(TAG, "onUpgrade " + oldVersion + " -> " + newVersion);
+        try {
+            updateDatabase(oldVersion, db);
+        } catch (SQLiteException exc) {
+            exc.printStackTrace();
+            clearDatabase(db);
+            onCreate(db, connectionSource);
+        }
+    }
+
+    /**
+     * Returns the Database Access Object (DAO) for our SimpleData class. It will create it or just give the cached
+     * value.
+     */
+    public Dao<HistoryCall, Integer> getHistoryDao() throws SQLException {
+        if (historyDao == null) {
+            historyDao = getDao(HistoryCall.class);
+        }
+        return historyDao;
+    }
+
+    public Dao<HistoryText, Integer> getTextHistoryDao() throws SQLException {
+        if (historyTextDao == null) {
+            historyTextDao = getDao(HistoryText.class);
+        }
+        return historyTextDao;
+    }
+
+    /**
+     * Close the database connections and clear any cached DAOs.
+     */
+    @Override
+    public void close() {
+        super.close();
+        historyDao = null;
+        historyTextDao = null;
+    }
+
+    /**
+     * Main method to update the database from an old version to the last
+     *
+     * @param fromDatabaseVersion the old version of the database
+     * @param db                  the SQLiteDatabase to work with
+     * @throws SQLiteException
+     */
+    private void updateDatabase(int fromDatabaseVersion, SQLiteDatabase db) throws SQLiteException {
+        try {
+            while (fromDatabaseVersion < DATABASE_VERSION) {
+                switch (fromDatabaseVersion) {
+                    case 6:
+                        updateDatabaseFrom6(db);
+                        break;
+                    case 7:
+                        updateDatabaseFrom7(db);
+                        break;
+                }
+                fromDatabaseVersion++;
+            }
+            Log.d(TAG, "Database has been updated to the last version.");
+        } catch (SQLiteException exc) {
+            Log.e(TAG, "Database has failed to update to the last version.");
+            throw exc;
+        }
+    }
+
+    /**
+     * Executes the migration from the database version 6 to the next
+     *
+     * @param db the SQLiteDatabase to work with
+     * @throws SQLiteException
+     */
+    private void updateDatabaseFrom6(SQLiteDatabase db) throws SQLiteException {
+        if (db != null && db.isOpen()) {
+            try {
+                Log.d(TAG, "Will begin migration from database version 6 to next.");
+                db.beginTransaction();
+                //~ Create the new historyCall table and int index
+                db.execSQL("CREATE TABLE IF NOT EXISTS `historycall` (`accountID` VARCHAR , `callID` VARCHAR , " +
+                        "`call_end` BIGINT , `TIMESTAMP_START` BIGINT , `contactID` BIGINT , " +
+                        "`contactKey` VARCHAR , `direction` INTEGER , `missed` SMALLINT , " +
+                        "`number` VARCHAR , `recordPath` VARCHAR ) ;");
+                db.execSQL("CREATE INDEX IF NOT EXISTS `historycall_TIMESTAMP_START_idx` ON `historycall` " +
+                        "( `TIMESTAMP_START` );");
+                //~ Create the new historyText table and int indexes
+                db.execSQL("CREATE TABLE IF NOT EXISTS `historytext` (`accountID` VARCHAR , `callID` VARCHAR , " +
+                        "`contactID` BIGINT , `contactKey` VARCHAR , `direction` INTEGER , " +
+                        "`id` BIGINT , `message` VARCHAR , `number` VARCHAR , `read` SMALLINT , " +
+                        "`TIMESTAMP` BIGINT , PRIMARY KEY (`id`) );");
+                db.execSQL("CREATE INDEX IF NOT EXISTS `historytext_TIMESTAMP_idx` ON `historytext` ( `TIMESTAMP` );");
+                db.execSQL("CREATE INDEX IF NOT EXISTS `historytext_id_idx` ON `historytext` ( `id` );");
+
+                Cursor hasATable = db.rawQuery("SELECT name FROM sqlite_master WHERE type=? AND name=?;",
+                        new String[]{"table", "a"});
+                if (hasATable.getCount() > 0) {
+                    //~ Copying data from the old table "a"
+                    db.execSQL("INSERT INTO `historycall` (TIMESTAMP_START, call_end, number, missed," +
+                            "direction, recordPath, accountID, contactID, contactKey, callID) " +
+                            "SELECT TIMESTAMP_START,b,c,d,e,f,g,h,i,j FROM a;");
+                    db.execSQL("DROP TABLE IF EXISTS a_TIMESTAMP_START_idx;");
+                    db.execSQL("DROP TABLE a;");
+                }
+                hasATable.close();
+
+                Cursor hasETable = db.rawQuery("SELECT name FROM sqlite_master WHERE type=? AND name=?;",
+                        new String[]{"table", "e"});
+                if (hasETable.getCount() > 0) {
+                    //~ Copying data from the old table "e"
+                    db.execSQL("INSERT INTO historytext (id, TIMESTAMP, number, direction, accountID," +
+                            "contactID, contactKey, callID, message, read) " +
+                            "SELECT id,TIMESTAMP,c,d,e,f,g,h,i,j FROM e;");
+                    //~ Remove old tables "a" and "e"
+                    db.execSQL("DROP TABLE IF EXISTS e_TIMESTAMP_idx;");
+                    db.execSQL("DROP TABLE IF EXISTS e_id_idx;");
+                    db.execSQL("DROP TABLE e;");
+                }
+                hasETable.close();
+
+                db.setTransactionSuccessful();
+                db.endTransaction();
+                Log.d(TAG, "Migration from database version 6 to next, done.");
+            } catch (SQLiteException exception) {
+                Log.e(TAG, "Migration from database version 6 to next, failed.");
+                throw exception;
+            }
+        }
+    }
+
+    private void updateDatabaseFrom7(SQLiteDatabase db) throws SQLiteException {
+        if (db != null && db.isOpen()) {
+            try {
+                Log.d(TAG, "Will begin migration from database version 7 to next.");
+                db.beginTransaction();
+                db.execSQL("ALTER TABLE historytext ADD COLUMN state VARCHAR DEFAULT ``");
+                db.setTransactionSuccessful();
+                db.endTransaction();
+                Log.d(TAG, "Migration from database version 7 to next, done.");
+            } catch (SQLiteException exception) {
+                Log.e(TAG, "Migration from database version 7 to next, failed.");
+                throw exception;
+            }
+        }
+    }
+
+    /**
+     * Removes all the data from the database, ie all the tables.
+     *
+     * @param db the SQLiteDatabase to work with
+     */
+    private void clearDatabase(SQLiteDatabase db) {
+        if (db != null && db.isOpen()) {
+            Log.d(TAG, "Will clear database.");
+            ArrayList<String> tableNames = new ArrayList<>();
+            Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null);
+            if (c.moveToFirst()) {
+                while (!c.isAfterLast()) {
+                    tableNames.add(c.getString(0));
+                    c.moveToNext();
+                }
+            }
+            c.close();
+
+            try {
+                db.beginTransaction();
+                for (String tableName : tableNames) {
+                    db.execSQL("DROP TABLE " + tableName + ";");
+                }
+                db.setTransactionSuccessful();
+                db.endTransaction();
+                Log.d(TAG, "Database is cleared");
+            } catch (SQLiteException exc) {
+                exc.printStackTrace();
+            }
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/mvp/BaseFragment.java b/ring-android/androidtv/src/main/java/cx/ring/mvp/BaseFragment.java
new file mode 100644
index 0000000..3767c76
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/mvp/BaseFragment.java
@@ -0,0 +1,56 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Hadrien De Sousa <hadrien.desousa@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.mvp;
+
+import android.app.Fragment;
+import android.os.Bundle;
+import android.view.View;
+
+import cx.ring.utils.Log;
+
+public abstract class BaseFragment<T extends RootPresenter> extends Fragment {
+
+    protected static final String TAG = BaseFragment.class.getSimpleName();
+
+    protected T presenter;
+
+    @Override
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+
+        presenter = createPresenter();
+
+        presenter.bindView(this);
+        initPresenter(presenter);
+    }
+
+    @Override
+    public void onDestroyView() {
+        Log.d(TAG, "onDestroyView");
+        super.onDestroyView();
+        presenter.unbindView();
+    }
+
+    protected abstract T createPresenter();
+
+    protected void initPresenter(T presenter) {
+
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/service/BootReceiver.java b/ring-android/androidtv/src/main/java/cx/ring/service/BootReceiver.java
new file mode 100644
index 0000000..36611ef
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/service/BootReceiver.java
@@ -0,0 +1,37 @@
+package cx.ring.service;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import javax.inject.Inject;
+
+import cx.ring.application.RingApplication;
+import cx.ring.services.PreferencesService;
+
+public class BootReceiver extends BroadcastReceiver {
+    private static final String TAG = BootReceiver.class.getSimpleName();
+
+    @Inject
+    PreferencesService mPreferencesService;
+
+    public BootReceiver() {
+    }
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        
+        if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
+
+            ((RingApplication) context.getApplicationContext()).getRingInjectionComponent().inject(this);
+            boolean isAllowRingOnStartup = mPreferencesService.loadSettings().isAllowRingOnStartup();
+
+            if (isAllowRingOnStartup) {
+                Log.w(TAG, "Starting Ring on boot");
+                Intent serviceIntent = new Intent(context, DRingService.class);
+                context.startService(serviceIntent);
+            }
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/service/CallManagerCallBack.java b/ring-android/androidtv/src/main/java/cx/ring/service/CallManagerCallBack.java
new file mode 100644
index 0000000..e445692
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/service/CallManagerCallBack.java
@@ -0,0 +1,112 @@
+package cx.ring.service;
+
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import cx.ring.daemon.IntegerMap;
+import cx.ring.model.ServiceEvent;
+import cx.ring.utils.Observable;
+import cx.ring.utils.Observer;
+
+public class CallManagerCallBack implements Observer<ServiceEvent> {
+
+    private static final String TAG = CallManagerCallBack.class.getName();
+
+    private Context mContext;
+
+    static public final String INCOMING_CALL = "incoming-call";
+
+    static public final String VCARD_COMPLETED = "vcard-completed";
+    static public final String CONF_CREATED = "conf_created";
+    static public final String CONF_REMOVED = "conf_removed";
+    static public final String CONF_CHANGED = "conf_changed";
+    static public final String RECORD_STATE_CHANGED = "record_state";
+    static public final String RTCP_REPORT_RECEIVED = "on_rtcp_report_received";
+
+
+    public CallManagerCallBack(Context context) {
+        super();
+        mContext = context;
+    }
+
+    @Override
+    public void update(Observable o, ServiceEvent event) {
+        if (event == null) {
+            return;
+        }
+
+        switch (event.getEventType()) {
+            case INCOMING_CALL:
+                incomingCall(
+                        event.getEventInput(ServiceEvent.EventInput.ACCOUNT_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.CALL_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.FROM, String.class)
+                );
+                break;
+            case CONFERENCE_CREATED:
+                conferenceCreated(event.getEventInput(ServiceEvent.EventInput.CONF_ID, String.class));
+                break;
+            case CONFERENCE_CHANGED:
+                conferenceChanged(
+                        event.getEventInput(ServiceEvent.EventInput.CONF_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.STATE, String.class)
+                );
+                break;
+            case CONFERENCE_REMOVED:
+                conferenceRemoved(event.getEventInput(ServiceEvent.EventInput.CONF_ID, String.class));
+                break;
+            case RECORD_PLAYBACK_FILEPATH:
+                // todo
+                break;
+            case RTCP_REPORT_RECEIVED:
+                onRtcpReportReceived(
+                        event.getEventInput(ServiceEvent.EventInput.CALL_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.STATS, IntegerMap.class));
+                break;
+            default:
+                Log.i(TAG, "Unkown daemon event");
+                break;
+        }
+    }
+
+    private void incomingCall(String accountId, String callId, String from) {
+        Intent toSend = new Intent(CallManagerCallBack.INCOMING_CALL);
+        toSend.putExtra("call", callId);
+        toSend.putExtra("account", accountId);
+        toSend.putExtra("from", from);
+        toSend.putExtra("resuming", false);
+        mContext.sendBroadcast(toSend);
+    }
+
+    private void conferenceCreated(final String confId) {
+        Intent intent = new Intent(CONF_CREATED);
+        intent.putExtra("conference", confId);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void conferenceRemoved(String confId) {
+        Intent intent = new Intent(CONF_REMOVED);
+        intent.putExtra("conference", confId);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void conferenceChanged(String confId, String state) {
+        Intent intent = new Intent(CONF_CHANGED);
+        intent.putExtra("conference", confId);
+        intent.putExtra("state", state);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void recordPlaybackFilepath(String id, String filename) {
+        Intent intent = new Intent();
+        intent.putExtra("call", id);
+        intent.putExtra("file", filename);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void onRtcpReportReceived(String callId, IntegerMap stats) {
+        Intent intent = new Intent(RTCP_REPORT_RECEIVED);
+        mContext.sendBroadcast(intent);
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/service/ConfigurationManagerCallback.java b/ring-android/androidtv/src/main/java/cx/ring/service/ConfigurationManagerCallback.java
new file mode 100644
index 0000000..0e41955
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/service/ConfigurationManagerCallback.java
@@ -0,0 +1,205 @@
+/**
+ * Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
+ * Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ * <p>
+ * Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
+ * <p>
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * If you own a pjsip commercial license you can also redistribute it
+ * and/or modify it under the terms of the GNU Lesser General Public License
+ * as an android library.
+ * <p>
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * <p>
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package cx.ring.service;
+
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import cx.ring.BuildConfig;
+import cx.ring.daemon.IntVect;
+import cx.ring.daemon.StringMap;
+import cx.ring.daemon.StringVect;
+import cx.ring.model.ServiceEvent;
+import cx.ring.utils.Observable;
+import cx.ring.utils.Observer;
+
+public class ConfigurationManagerCallback implements Observer<ServiceEvent> {
+
+    private static final String TAG = ConfigurationManagerCallback.class.getSimpleName();
+
+    static final String ACCOUNTS_CHANGED = BuildConfig.APPLICATION_ID + "accounts.changed";
+    static final String ACCOUNTS_DEVICES_CHANGED = BuildConfig.APPLICATION_ID + "accounts.devicesChanged";
+    static final String ACCOUNTS_EXPORT_ENDED = BuildConfig.APPLICATION_ID + "accounts.exportEnded";
+    static final String ACCOUNT_STATE_CHANGED = BuildConfig.APPLICATION_ID + "account.stateChanged";
+    static final String INCOMING_TEXT = BuildConfig.APPLICATION_ID + ".message.incomingTxt";
+    static final String MESSAGE_STATE_CHANGED = BuildConfig.APPLICATION_ID + ".message.stateChanged";
+    static final String NAME_LOOKUP_ENDED = BuildConfig.APPLICATION_ID + ".name.lookupEnded";
+    static final String NAME_REGISTRATION_ENDED = BuildConfig.APPLICATION_ID + ".name.registrationEnded";
+
+    static final String MESSAGE_STATE_CHANGED_EXTRA_ID = "id";
+    static final String MESSAGE_STATE_CHANGED_EXTRA_STATUS = "status";
+
+    private final Context mContext;
+
+    public ConfigurationManagerCallback(Context context) {
+        super();
+        mContext = context;
+    }
+
+    @Override
+    public void update(Observable o, ServiceEvent event) {
+        if (event == null) {
+            return;
+        }
+
+        switch (event.getEventType()) {
+            case VOLUME_CHANGED:
+                volumeChanged(
+                );
+                break;
+            case ACCOUNTS_CHANGED:
+                accountsChanged();
+                break;
+            case REGISTRATION_STATE_CHANGED:
+                registrationStateChanged(
+                        event.getEventInput(ServiceEvent.EventInput.ACCOUNT_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.STATE, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.DETAIL_CODE, Integer.class)
+                );
+                break;
+            case STUN_STATUS_FAILURE:
+                stunStatusFailure();
+                break;
+            case INCOMING_ACCOUNT_MESSAGE:
+                incomingAccountMessage(
+                        event.getEventInput(ServiceEvent.EventInput.ACCOUNT_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.FROM, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.MESSAGES, String.class)
+                );
+                break;
+            case ACCOUNT_MESSAGE_STATUS_CHANGED:
+                accountMessageStatusChanged(
+                        event.getEventInput(ServiceEvent.EventInput.MESSAGE_ID, Long.class),
+                        event.getEventInput(ServiceEvent.EventInput.STATE, Integer.class)
+                );
+                break;
+            case ERROR_ALERT:
+                errorAlert(event.getEventInput(ServiceEvent.EventInput.ALERT, Integer.class));
+                break;
+            case KNOWN_DEVICES_CHANGED:
+                knownDevicesChanged(
+                        event.getEventInput(ServiceEvent.EventInput.ACCOUNT_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.DEVICES, StringMap.class)
+                );
+                break;
+            case EXPORT_ON_RING_ENDED:
+                exportOnRingEnded(
+                        event.getEventInput(ServiceEvent.EventInput.ACCOUNT_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.CODE, Integer.class),
+                        event.getEventInput(ServiceEvent.EventInput.PIN, String.class)
+                );
+                break;
+            case NAME_REGISTRATION_ENDED:
+                nameRegistrationEnded(
+                        event.getEventInput(ServiceEvent.EventInput.ACCOUNT_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.STATE, Integer.class),
+                        event.getEventInput(ServiceEvent.EventInput.NAME, String.class)
+                );
+                break;
+            case REGISTERED_NAME_FOUND:
+                registeredNameFound(
+                        event.getEventInput(ServiceEvent.EventInput.ACCOUNT_ID, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.STATE, Integer.class),
+                        event.getEventInput(ServiceEvent.EventInput.ADDRESS, String.class),
+                        event.getEventInput(ServiceEvent.EventInput.NAME, String.class)
+                );
+                break;
+            default:
+                Log.i(TAG, "Unknown daemon event");
+                break;
+        }
+    }
+
+    private void volumeChanged() {
+        // nothing to be done here
+    }
+
+    private void accountsChanged() {
+        Intent intent = new Intent(ACCOUNTS_CHANGED);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void stunStatusFailure() {
+        // nothing to be done here
+    }
+
+    private void registrationStateChanged(String accountId, String state, int detailCode) {
+        Intent intent = new Intent(ACCOUNT_STATE_CHANGED);
+        intent.putExtra("account", accountId);
+        intent.putExtra("state", state);
+        intent.putExtra("code", detailCode);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void incomingAccountMessage(String accountId, String from, String msg) {
+        Intent intent = new Intent(INCOMING_TEXT);
+        intent.putExtra("txt", msg);
+        intent.putExtra("from", from);
+        intent.putExtra("account", accountId);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void accountMessageStatusChanged(long messageId, int status) {
+        Intent intent = new Intent(MESSAGE_STATE_CHANGED);
+        intent.putExtra(MESSAGE_STATE_CHANGED_EXTRA_ID, messageId);
+        intent.putExtra(MESSAGE_STATE_CHANGED_EXTRA_STATUS, status);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void errorAlert(int alert) {
+        Log.d(TAG, "errorAlert : " + alert);
+    }
+
+    private void knownDevicesChanged(String accountId, StringMap devices) {
+        Intent intent = new Intent(ACCOUNTS_DEVICES_CHANGED);
+        intent.putExtra("account", accountId);
+        intent.putExtra("devices", devices.toNative());
+        mContext.sendBroadcast(intent);
+    }
+
+    private void exportOnRingEnded(String accountId, int code, String pin) {
+        Intent intent = new Intent(ACCOUNTS_EXPORT_ENDED);
+        intent.putExtra("account", accountId);
+        intent.putExtra("code", code);
+        intent.putExtra("pin", pin);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void nameRegistrationEnded(String accountId, int state, String name) {
+        Intent intent = new Intent(NAME_REGISTRATION_ENDED);
+        intent.putExtra("account", accountId);
+        intent.putExtra("state", state);
+        intent.putExtra("name", name);
+        mContext.sendBroadcast(intent);
+    }
+
+    private void registeredNameFound(String accountId, int state, String address, String name) {
+        Intent intent = new Intent(NAME_LOOKUP_ENDED);
+        intent.putExtra("account", accountId);
+        intent.putExtra("state", state);
+        intent.putExtra("name", name);
+        intent.putExtra("address", address);
+        mContext.sendBroadcast(intent);
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/service/DRingService.java b/ring-android/androidtv/src/main/java/cx/ring/service/DRingService.java
new file mode 100644
index 0000000..4df82cd
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/service/DRingService.java
@@ -0,0 +1,724 @@
+/*
+  Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
+  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+  <p>
+  Author: Regis Montoya <r3gis.3R@gmail.com>
+  Author: Emeric Vigier <emeric.vigier@savoirfairelinux.com>
+  Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+  Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+  <p>
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+  If you own a pjsip commercial license you can also redistribute it
+  and/or modify it under the terms of the GNU Lesser General Public License
+  as an android library.
+  <p>
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+  <p>
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package cx.ring.service;
+
+import android.app.Service;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.SharedPreferences;
+import android.database.ContentObserver;
+import android.net.ConnectivityManager;
+import android.os.Bundle;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.preference.PreferenceManager;
+import android.provider.ContactsContract;
+import android.util.Log;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutorService;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import cx.ring.BuildConfig;
+import cx.ring.application.RingApplication;
+import cx.ring.facades.ConversationFacade;
+import cx.ring.model.Codec;
+import cx.ring.model.Conversation;
+import cx.ring.model.ServiceEvent;
+import cx.ring.services.AccountService;
+import cx.ring.services.CallService;
+import cx.ring.services.ConferenceService;
+import cx.ring.services.ContactService;
+import cx.ring.services.DaemonService;
+import cx.ring.services.DeviceRuntimeService;
+import cx.ring.services.HardwareService;
+import cx.ring.services.NotificationService;
+import cx.ring.services.NotificationServiceImpl;
+import cx.ring.services.PreferencesService;
+import cx.ring.utils.Observable;
+import cx.ring.utils.Observer;
+
+public class DRingService extends Service implements Observer<ServiceEvent> {
+
+    public static final String ACTION_TRUST_REQUEST_ACCEPT = BuildConfig.APPLICATION_ID + ".action.TRUST_REQUEST_ACCEPT";
+    public static final String ACTION_TRUST_REQUEST_REFUSE = BuildConfig.APPLICATION_ID + ".action.TRUST_REQUEST_REFUSE";
+    public static final String ACTION_TRUST_REQUEST_BLOCK = BuildConfig.APPLICATION_ID + ".action.TRUST_REQUEST_BLOCK";
+
+    static public final String ACTION_CALL_ACCEPT = BuildConfig.APPLICATION_ID + ".action.CALL_ACCEPT";
+    static public final String ACTION_CALL_REFUSE = BuildConfig.APPLICATION_ID + ".action.CALL_REFUSE";
+    static public final String ACTION_CALL_END = BuildConfig.APPLICATION_ID + ".action.CALL_END";
+    static public final String ACTION_CALL_VIEW = BuildConfig.APPLICATION_ID + ".action.CALL_VIEW";
+
+    static public final String ACTION_CONV_READ = BuildConfig.APPLICATION_ID + ".action.CONV_READ";
+    static public final String ACTION_CONV_ACCEPT = BuildConfig.APPLICATION_ID + ".action.CONV_ACCEPT";
+
+    private static final String TAG = DRingService.class.getName();
+
+    @Inject
+    protected DaemonService mDaemonService;
+
+    @Inject
+    protected CallService mCallService;
+
+    @Inject
+    protected ConferenceService mConferenceService;
+
+    @Inject
+    protected AccountService mAccountService;
+
+    @Inject
+    protected HardwareService mHardwareService;
+
+    @Inject
+    protected DeviceRuntimeService mDeviceRuntimeService;
+
+    @Inject
+    protected NotificationService mNotificationService;
+
+    @Inject
+    protected ContactService mContactService;
+
+    @Inject
+    protected PreferencesService mPreferencesService;
+
+    @Inject
+    protected ConversationFacade mConversationFacade;
+
+    @Inject
+    @Named("DaemonExecutor")
+    protected ExecutorService mExecutor;
+
+    private final ContactsContentObserver contactContentObserver = new ContactsContentObserver();
+
+    @Override
+    public void onCreate() {
+        Log.i(TAG, "onCreated");
+        super.onCreate();
+
+        // dependency injection
+        ((RingApplication) getApplication()).getRingInjectionComponent().inject(this);
+
+        getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, contactContentObserver);
+
+        mPreferencesService.addObserver(this);
+        mAccountService.addObserver(this);
+        mContactService.addObserver(this);
+        mConversationFacade.addObserver(this);
+    }
+
+    @Override
+    public void onDestroy() {
+        super.onDestroy();
+        unregisterReceiver(receiver);
+        getContentResolver().unregisterContentObserver(contactContentObserver);
+
+        mPreferencesService.removeObserver(this);
+        mAccountService.removeObserver(this);
+        mContactService.removeObserver(this);
+        mConversationFacade.removeObserver(this);
+    }
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        Log.i(TAG, "onStartCommand " + (intent == null ? "null" : intent.getAction()) + " " + flags + " " + startId);
+
+        if (intent != null && intent.getAction() != null) {
+            parseIntent(intent);
+        }
+
+        IntentFilter intentFilter = new IntentFilter();
+        intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
+        registerReceiver(receiver, intentFilter);
+
+        return START_STICKY; /* started and stopped explicitly */
+    }
+
+    @Override
+    public IBinder onBind(Intent arg0) {
+        Log.i(TAG, "onBound");
+        return mBinder;
+    }
+
+    private final BroadcastReceiver receiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            Log.d(TAG, "BroadcastReceiver onReceive " + intent.getAction());
+            switch (intent.getAction()) {
+                case ConnectivityManager.CONNECTIVITY_ACTION:
+                case RingApplication.DRING_CONNECTION_CHANGED: {
+                    updateConnectivityState();
+                    break;
+                }
+            }
+        }
+    };
+
+    private void updateConnectivityState() {
+        if (mDaemonService.isStarted()) {
+            mAccountService.setAccountsActive(mPreferencesService.isConnectedWifiAndMobile());
+            mHardwareService.connectivityChanged();
+        }
+    }
+
+    /* ************************************
+     *
+     * Implement public interface for the service
+     *
+     * *********************************
+     */
+
+    protected final IDRingService.Stub mBinder = new IDRingService.Stub() {
+
+        @Override
+        public String placeCall(final String account, final String number, final boolean video) {
+            return mCallService.placeCall(account, number, video).getCallId();
+        }
+
+        @Override
+        public void refuse(final String callID) {
+            mCallService.refuse(callID);
+        }
+
+        @Override
+        public void accept(final String callID) {
+            mCallService.accept(callID);
+        }
+
+        @Override
+        public void hangUp(final String callID) {
+            mCallService.hangUp(callID);
+        }
+
+        @Override
+        public void hold(final String callID) {
+            mCallService.hold(callID);
+        }
+
+        @Override
+        public void unhold(final String callID) {
+            mCallService.unhold(callID);
+        }
+
+        public void sendProfile(final String callId, final String accountId) {
+            mAccountService.sendProfile(callId, accountId);
+        }
+
+        @Override
+        public boolean isStarted() throws RemoteException {
+            return mDaemonService.isStarted();
+        }
+
+        @Override
+        public Map<String, String> getCallDetails(final String callID) throws RemoteException {
+            return mCallService.getCallDetails(callID);
+        }
+
+        @Override
+        public void setAudioPlugin(final String audioPlugin) {
+            mCallService.setAudioPlugin(audioPlugin);
+        }
+
+        @Override
+        public String getCurrentAudioOutputPlugin() {
+            return mCallService.getCurrentAudioOutputPlugin();
+        }
+
+        @Override
+        public List<String> getAccountList() {
+            return mAccountService.getAccountList();
+        }
+
+        @Override
+        public void setAccountOrder(final String order) {
+            String[] accountIds = order.split(File.separator);
+            mAccountService.setAccountOrder(Arrays.asList(accountIds));
+        }
+
+        @Override
+        public Map<String, String> getAccountDetails(final String accountID) {
+            return mAccountService.getAccountDetails(accountID);
+        }
+
+        @SuppressWarnings("unchecked")
+        // Hashmap runtime cast
+        @Override
+        public void setAccountDetails(final String accountId, final Map map) {
+            mAccountService.setAccountDetails(accountId, map);
+        }
+
+        @Override
+        public void setAccountActive(final String accountId, final boolean active) {
+            mAccountService.setAccountActive(accountId, active);
+        }
+
+        @Override
+        public void setAccountsActive(final boolean active) {
+            mAccountService.setAccountsActive(active);
+        }
+
+        @Override
+        public Map<String, String> getVolatileAccountDetails(final String accountId) {
+            return mAccountService.getVolatileAccountDetails(accountId);
+        }
+
+        @Override
+        public Map<String, String> getAccountTemplate(final String accountType) throws RemoteException {
+            return mAccountService.getAccountTemplate(accountType);
+        }
+
+        @SuppressWarnings("unchecked")
+        // Hashmap runtime cast
+        @Override
+        public String addAccount(final Map map) {
+            return mAccountService.addAccount(map).getAccountID();
+        }
+
+        @Override
+        public void removeAccount(final String accountId) {
+            mAccountService.removeAccount(accountId);
+        }
+
+        @Override
+        public String exportOnRing(final String accountId, final String password) {
+            return mAccountService.exportOnRing(accountId, password);
+        }
+
+        public Map<String, String> getKnownRingDevices(final String accountId) {
+            return mAccountService.getKnownRingDevices(accountId);
+        }
+
+        /*************************
+         * Transfer related API
+         *************************/
+
+        @Override
+        public void transfer(final String callID, final String to) throws RemoteException {
+            mCallService.transfer(callID, to);
+        }
+
+        @Override
+        public void attendedTransfer(final String transferID, final String targetID) throws RemoteException {
+            mCallService.attendedTransfer(transferID, targetID);
+        }
+
+        /*************************
+         * Conference related API
+         *************************/
+
+        @Override
+        public void removeConference(final String confID) throws RemoteException {
+            mConferenceService.removeConference(confID);
+        }
+
+        @Override
+        public void joinParticipant(final String selCallID, final String dragCallID) throws RemoteException {
+            mConferenceService.joinParticipant(selCallID, dragCallID);
+        }
+
+        @Override
+        public void addParticipant(final String callID, final String confID) throws RemoteException {
+            mConferenceService.addParticipant(callID, confID);
+        }
+
+        @Override
+        public void addMainParticipant(final String confID) throws RemoteException {
+            mConferenceService.addMainParticipant(confID);
+        }
+
+        @Override
+        public void detachParticipant(final String callID) throws RemoteException {
+            mConferenceService.detachParticipant(callID);
+        }
+
+        @Override
+        public void joinConference(final String selConfID, final String dragConfID) throws RemoteException {
+            mConferenceService.joinConference(selConfID, dragConfID);
+        }
+
+        @Override
+        public void hangUpConference(final String confID) throws RemoteException {
+            mConferenceService.hangUpConference(confID);
+        }
+
+        @Override
+        public void holdConference(final String confID) throws RemoteException {
+            mConferenceService.holdConference(confID);
+        }
+
+        @Override
+        public void unholdConference(final String confID) throws RemoteException {
+            mConferenceService.unholdConference(confID);
+        }
+
+        @Override
+        public boolean isConferenceParticipant(final String callID) throws RemoteException {
+            return mConferenceService.isConferenceParticipant(callID);
+        }
+
+        @Override
+        public Map<String, ArrayList<String>> getConferenceList() throws RemoteException {
+            return mConferenceService.getConferenceList();
+        }
+
+        @Override
+        public List<String> getParticipantList(final String confID) throws RemoteException {
+            return mConferenceService.getParticipantList(confID);
+        }
+
+        @Override
+        public String getConferenceId(String callID) throws RemoteException {
+            return mConferenceService.getConferenceId(callID);
+        }
+
+        @Override
+        public String getConferenceDetails(final String callID) throws RemoteException {
+            return mConferenceService.getConferenceDetails(callID);
+        }
+
+        @Override
+        public String getRecordPath() throws RemoteException {
+            return mCallService.getRecordPath();
+        }
+
+        @Override
+        public boolean toggleRecordingCall(final String id) throws RemoteException {
+            return mCallService.toggleRecordingCall(id);
+        }
+
+        @Override
+        public boolean startRecordedFilePlayback(final String filepath) throws RemoteException {
+            return mCallService.startRecordedFilePlayback(filepath);
+        }
+
+        @Override
+        public void stopRecordedFilePlayback(final String filepath) throws RemoteException {
+            mCallService.stopRecordedFilePlayback(filepath);
+        }
+
+        @Override
+        public void setRecordPath(final String path) throws RemoteException {
+            mCallService.setRecordPath(path);
+        }
+
+        @Override
+        public void sendTextMessage(final String callID, final String msg) throws RemoteException {
+            mCallService.sendTextMessage(callID, msg);
+        }
+
+        @Override
+        public long sendAccountTextMessage(final String accountID, final String to, final String msg) {
+            return mCallService.sendAccountTextMessage(accountID, to, msg);
+        }
+
+        @Override
+        public List<Codec> getCodecList(final String accountID) throws RemoteException {
+            return mAccountService.getCodecList(accountID);
+        }
+
+        @Override
+        public Map<String, String> validateCertificatePath(final String accountID, final String certificatePath, final String privateKeyPath, final String privateKeyPass) throws RemoteException {
+            return mAccountService.validateCertificatePath(accountID, certificatePath, privateKeyPath, privateKeyPass);
+        }
+
+        @Override
+        public Map<String, String> validateCertificate(final String accountID, final String certificate) throws RemoteException {
+            return mAccountService.validateCertificate(accountID, certificate);
+        }
+
+        @Override
+        public Map<String, String> getCertificateDetailsPath(final String certificatePath) throws RemoteException {
+            return mAccountService.getCertificateDetailsPath(certificatePath);
+        }
+
+        @Override
+        public Map<String, String> getCertificateDetails(final String certificateRaw) throws RemoteException {
+            return mAccountService.getCertificateDetails(certificateRaw);
+        }
+
+        @Override
+        public void setActiveCodecList(final List codecs, final String accountID) throws RemoteException {
+            mAccountService.setActiveCodecList(codecs, accountID);
+        }
+
+        @Override
+        public void playDtmf(final String key) throws RemoteException {
+
+        }
+
+        @Override
+        public Map<String, String> getConference(final String id) throws RemoteException {
+            return mConferenceService.getConference(id);
+        }
+
+        @Override
+        public void setMuted(final boolean mute) throws RemoteException {
+            mCallService.setMuted(mute);
+        }
+
+        @Override
+        public boolean isCaptureMuted() throws RemoteException {
+            return mCallService.isCaptureMuted();
+        }
+
+        @Override
+        public List<String> getTlsSupportedMethods() {
+            return mAccountService.getTlsSupportedMethods();
+        }
+
+        @Override
+        public List getCredentials(final String accountID) throws RemoteException {
+            return mAccountService.getCredentials(accountID);
+        }
+
+        @Override
+        public void setCredentials(final String accountID, final List creds) throws RemoteException {
+            mAccountService.setCredentials(accountID, creds);
+        }
+
+        @Override
+        public void registerAllAccounts() throws RemoteException {
+            mAccountService.registerAllAccounts();
+        }
+
+        @Override
+        @Deprecated
+        public void videoSurfaceAdded(String id) {
+
+        }
+
+        @Override
+        @Deprecated
+        public void videoSurfaceRemoved(String id) {
+
+        }
+
+        @Override
+        @Deprecated
+        public void videoPreviewSurfaceAdded() {
+
+        }
+
+        @Override
+        @Deprecated
+        public void videoPreviewSurfaceRemoved() {
+
+        }
+
+        @Override
+        @Deprecated
+        public void switchInput(final String id, final boolean front) {
+        }
+
+        @Override
+        @Deprecated
+        public void setPreviewSettings() {
+
+        }
+
+        @Override
+        public int backupAccounts(final List accountIDs, final String toDir, final String password) {
+            return mAccountService.backupAccounts(accountIDs, toDir, password);
+        }
+
+        @Override
+        public int restoreAccounts(final String archivePath, final String password) {
+            return mAccountService.restoreAccounts(archivePath, password);
+        }
+
+        @Override
+        public void connectivityChanged() {
+            mHardwareService.connectivityChanged();
+        }
+
+        @Override
+        public void lookupName(final String account, final String nameserver, final String name) {
+            mAccountService.lookupName(account, nameserver, name);
+        }
+
+        @Override
+        public void lookupAddress(final String account, final String nameserver, final String address) {
+            mAccountService.lookupAddress(account, nameserver, address);
+        }
+
+        @Override
+        public void registerName(final String account, final String password, final String name) {
+            mAccountService.registerName(account, password, name);
+        }
+    };
+
+    private void parseIntent(Intent intent) {
+        Bundle extras;
+        switch (intent.getAction()) {
+            case ACTION_TRUST_REQUEST_ACCEPT:
+            case ACTION_TRUST_REQUEST_REFUSE:
+            case ACTION_TRUST_REQUEST_BLOCK:
+                extras = intent.getExtras();
+                if (extras != null) {
+                    handleTrustRequestAction(intent.getAction(), extras);
+                }
+                break;
+            case ACTION_CALL_ACCEPT:
+            case ACTION_CALL_REFUSE:
+            case ACTION_CALL_END:
+            case ACTION_CALL_VIEW:
+                extras = intent.getExtras();
+                if (extras != null) {
+                    handleCallAction(intent.getAction(), extras);
+                }
+                break;
+            case ACTION_CONV_READ: {
+                String convId = intent.getData().getLastPathSegment();
+                Conversation conversation = mConversationFacade.getConversationById(convId);
+                if (conversation != null) {
+                    mConversationFacade.readConversation(conversation);
+                }
+                break;
+            }
+            default:
+                break;
+        }
+    }
+
+    private void handleTrustRequestAction(String action, Bundle extras) {
+        String account = extras.getString(NotificationServiceImpl.TRUST_REQUEST_NOTIFICATION_ACCOUNT_ID);
+        String from = extras.getString(NotificationServiceImpl.TRUST_REQUEST_NOTIFICATION_FROM);
+        if (account != null && from != null) {
+            mNotificationService.cancelTrustRequestNotification(account);
+            switch (action) {
+                case ACTION_TRUST_REQUEST_ACCEPT:
+                    mAccountService.acceptTrustRequest(account, from);
+                    break;
+                case ACTION_TRUST_REQUEST_REFUSE:
+                    mPreferencesService.removeRequestPreferences(account, from);
+                    mAccountService.discardTrustRequest(account, from);
+                    break;
+                case ACTION_TRUST_REQUEST_BLOCK:
+                    mAccountService.discardTrustRequest(account, from);
+                    mAccountService.removeContact(account, from, true);
+                    break;
+            }
+        }
+    }
+
+    private void handleCallAction(String action, Bundle extras) {
+        String callId = extras.getString(NotificationServiceImpl.KEY_CALL_ID);
+
+        if (callId == null || callId.isEmpty()) {
+            return;
+        }
+
+        switch (action) {
+            case ACTION_CALL_ACCEPT:
+                mCallService.accept(callId);
+                mNotificationService.cancelCallNotification(callId.hashCode());
+//                startActivity(new Intent(Intent.ACTION_VIEW)
+//                        .putExtras(extras)
+//                        .setClass(getApplicationContext(), CallActivity.class)
+//                        .setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
+                break;
+            case ACTION_CALL_REFUSE:
+                mCallService.refuse(callId);
+                mDeviceRuntimeService.closeAudioState();
+                mNotificationService.cancelCallNotification(callId.hashCode());
+                break;
+            case ACTION_CALL_END:
+                mCallService.hangUp(callId);
+                mDeviceRuntimeService.closeAudioState();
+                mNotificationService.cancelCallNotification(callId.hashCode());
+                break;
+            case ACTION_CALL_VIEW:
+//                startActivity(new Intent(Intent.ACTION_VIEW)
+//                        .putExtras(extras)
+//                        .setClass(getApplicationContext(), CallActivity.class)
+//                        .setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
+                break;
+        }
+    }
+
+    private class ContactsContentObserver extends ContentObserver {
+
+        ContactsContentObserver() {
+            super(null);
+        }
+
+        @Override
+        public void onChange(boolean selfChange, android.net.Uri uri) {
+            super.onChange(selfChange, uri);
+            Log.d(TAG, "ContactsContentObserver.onChange");
+            mContactService.loadContacts(mAccountService.hasRingAccount(), mAccountService.hasSipAccount(), mAccountService.getCurrentAccount());
+        }
+    }
+
+    public void refreshContacts() {
+        if (mAccountService.getCurrentAccount() == null) {
+            return;
+        }
+        Log.d(TAG, "refreshContacts");
+        mContactService.loadContacts(mAccountService.hasRingAccount(), mAccountService.hasSipAccount(), mAccountService.getCurrentAccount());
+    }
+
+    @Override
+    public void update(Observable observable, ServiceEvent arg) {
+        if (observable instanceof PreferencesService) {
+            refreshContacts();
+            updateConnectivityState();
+        }
+
+        if (observable instanceof AccountService && arg != null) {
+            switch (arg.getEventType()) {
+                case ACCOUNTS_CHANGED:
+
+                    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(DRingService.this);
+                    sharedPreferences.edit()
+                            .putBoolean(OutgoingCallHandler.KEY_CACHE_HAVE_RINGACCOUNT, mAccountService.hasRingAccount())
+                            .putBoolean(OutgoingCallHandler.KEY_CACHE_HAVE_SIPACCOUNT, mAccountService.hasSipAccount()).apply();
+
+                    refreshContacts();
+                    return;
+            }
+        }
+
+        if (observable instanceof ContactService && arg != null) {
+            switch (arg.getEventType()) {
+                case CONTACTS_CHANGED:
+                    mConversationFacade.refreshConversations();
+                    return;
+                case CONTACT_ADDED:
+                case CONTACT_REMOVED:
+                    refreshContacts();
+                    break;
+            }
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/service/IDRingService.aidl b/ring-android/androidtv/src/main/java/cx/ring/service/IDRingService.aidl
new file mode 100644
index 0000000..5769fbb
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/service/IDRingService.aidl
@@ -0,0 +1,121 @@
+/*
+ *  Copyright (C) 2015-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.service;
+
+interface IDRingService {
+
+    boolean isStarted();
+
+    Map getCallDetails(in String callID);
+    String placeCall(in String account, in String number, in boolean hasVideo);
+    void refuse(in String callID);
+    void accept(in String callID);
+    void hangUp(in String callID);
+    void hold(in String callID);
+    void unhold(in String callID);
+
+    void lookupName(in String account, in String nameserver, in String name);
+    void lookupAddress(in String account, in String nameserver, in String address);
+    void registerName(in String account, in String password, in String name);
+
+    List getAccountList();
+    String addAccount(in Map accountDetails);
+    void removeAccount(in String accoundId);
+    void setAccountOrder(in String order);
+    Map getAccountDetails(in String accountID);
+    Map getVolatileAccountDetails(in String accountID);
+    Map getAccountTemplate(in String accountType);
+    void registerAllAccounts();
+    void setAccountDetails(in String accountId, in Map accountDetails);
+    void setAccountActive(in String accountId, in boolean active);
+    void setAccountsActive(in boolean active);
+    List getCredentials(in String accountID);
+    void setCredentials(in String accountID, in List creds);
+    void setAudioPlugin(in String callID);
+    String getCurrentAudioOutputPlugin();
+    List getCodecList(in String accountID);
+    void setActiveCodecList(in List codecs, in String accountID);
+    String exportOnRing(in String accountID, in String password);
+    Map getKnownRingDevices(in String accountID);
+
+    Map validateCertificatePath(in String accountID, in String certificatePath, in String privateKeyPath, in String privateKeyPass);
+    Map validateCertificate(in String accountID, in String certificateId);
+    Map getCertificateDetailsPath(in String certificatePath);
+    Map getCertificateDetails(in String certificate);
+
+    /* Recording */
+    void setRecordPath(in String path);
+    String getRecordPath();
+    boolean toggleRecordingCall(in String id);
+    boolean startRecordedFilePlayback(in String filepath);
+    void stopRecordedFilePlayback(in String filepath);
+
+    /* Mute */
+    void setMuted(boolean mute);
+    boolean isCaptureMuted();
+
+    /* Security */
+    List getTlsSupportedMethods();
+
+    /* DTMF */
+    void playDtmf(in String key);
+
+    /* IM */
+    void sendTextMessage(in String callID, in String message);
+    long sendAccountTextMessage(in String accountid, in String to, in String msg);
+    void sendProfile(in String callID, in String accountID);
+
+    void transfer(in String callID, in String to);
+    void attendedTransfer(in String transferID, in String targetID);
+
+    /* Video */
+    void setPreviewSettings();
+    void switchInput(in String call, in boolean front);
+    void videoSurfaceAdded(in String call);
+    void videoSurfaceRemoved(in String call);
+    void videoPreviewSurfaceAdded();
+    void videoPreviewSurfaceRemoved();
+
+    /* Conference related methods */
+
+    void removeConference(in String confID);
+    void joinParticipant(in String sel_callID, in String drag_callID);
+
+    void addParticipant(in String callID, in String confID);
+    void addMainParticipant(in String confID);
+    void detachParticipant(in String callID);
+    void joinConference(in String sel_confID, in String drag_confID);
+    void hangUpConference(in String confID);
+    void holdConference(in String confID);
+    void unholdConference(in String confID);
+    boolean isConferenceParticipant(in String callID);
+    Map getConferenceList();
+    List getParticipantList(in String confID);
+    String getConferenceId(in String callID);
+    String getConferenceDetails(in String callID);
+
+    Map getConference(in String id);
+
+    int backupAccounts(in List accountIDs, in String toDir, in String password);
+    int restoreAccounts(in String archivePath, in String password);
+
+    void connectivityChanged();
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/service/OpenSlParams.java b/ring-android/androidtv/src/main/java/cx/ring/service/OpenSlParams.java
new file mode 100644
index 0000000..65c73d6
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/service/OpenSlParams.java
@@ -0,0 +1,86 @@
+package cx.ring.service;
+
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.media.AudioManager;
+import android.os.Build;
+import android.util.Log;
+
+/**
+ * This class illustrates how to query OpenSL config parameters on Jelly Bean MR1 while maintaining
+ * backward compatibility with older versions of Android. The trick is to place the new API calls in
+ * an inner class that will only be loaded if we're running on JB MR1 or later.
+ */
+public abstract class OpenSlParams {
+
+  /**
+   * @return The recommended sample rate in Hz.
+   */
+  public abstract int getSampleRate();
+
+  /**
+   * @return The recommended buffer size in frames.
+   */
+  public abstract int getBufferSize();
+
+  /**
+   * @param context, e.g., the current activity.
+   * @return OpenSlParams instance for the given context.
+   */
+  public static OpenSlParams createInstance(Context context) {
+    return (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
+        ? new JellyBeanMr1OpenSlParams(context)
+        : new DefaultOpenSlParams();
+  }
+
+  private OpenSlParams() {
+    // Not meant to be instantiated except here.
+  }
+
+  // Implementation for Jelly Bean MR1 or later.
+  @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
+  private static class JellyBeanMr1OpenSlParams extends OpenSlParams {
+
+    private final int sampleRate;
+    private final int bufferSize;
+
+    private JellyBeanMr1OpenSlParams(Context context) {
+      AudioManager am = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+      // Provide default values in case config lookup fails.
+      int sr = 44100;
+      int bs = 64;
+      try {
+        // If possible, query the native sample rate and buffer size.
+        sr = Integer.parseInt(am.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE));
+        bs = Integer.parseInt(am.getProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER));
+      } catch (NumberFormatException e) {
+        Log.w(getClass().getName(), "Failed to read native OpenSL config: " + e);
+      }
+      sampleRate = sr;
+      bufferSize = bs;
+    }
+
+    @Override
+    public int getSampleRate() {
+      return sampleRate;
+    }
+
+    @Override
+    public int getBufferSize() {
+      return bufferSize;
+    }
+  }
+
+  // Default factory for Jelly Bean or older.
+  private static class DefaultOpenSlParams extends OpenSlParams {
+    @Override
+    public int getSampleRate() {
+      return 44100;
+    }
+
+    @Override
+    public int getBufferSize() {
+      return 64;
+    }
+  };
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/service/OutgoingCallHandler.java b/ring-android/androidtv/src/main/java/cx/ring/service/OutgoingCallHandler.java
new file mode 100644
index 0000000..1b2e1a1
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/service/OutgoingCallHandler.java
@@ -0,0 +1,65 @@
+/*
+ *  Copyright (C) 2015-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.service;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+
+import cx.ring.R;
+import cx.ring.model.Uri;
+
+public class OutgoingCallHandler extends BroadcastReceiver
+{
+    private static final String TAG = OutgoingCallHandler.class.getSimpleName();
+    public static final String KEY_CACHE_HAVE_RINGACCOUNT = "cache_haveRingAccount";
+    public static final String KEY_CACHE_HAVE_SIPACCOUNT = "cache_haveSipAccount";
+
+    @Override
+    public void onReceive(Context context, Intent intent)
+    {
+        String phoneNumber = getResultData();
+        if (phoneNumber == null)
+            phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
+
+        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
+        boolean systemDialer = sharedPreferences.getBoolean(context.getString(R.string.pref_systemDialer_key), false);
+        if (systemDialer) {
+            boolean systemDialerSip = sharedPreferences.getBoolean(KEY_CACHE_HAVE_SIPACCOUNT, false);
+            boolean systemDialerRing = sharedPreferences.getBoolean(KEY_CACHE_HAVE_RINGACCOUNT, false);
+
+            Uri uri = new Uri(phoneNumber);
+            boolean isRingId = uri.isRingId();
+            if ((!isRingId && systemDialerSip) || (isRingId && systemDialerRing) || uri.isSingleIp()) {
+//                Intent i = new Intent(CallActivity.ACTION_CALL)
+//                        .setClass(context, CallActivity.class)
+//                        .setData(android.net.Uri.parse(phoneNumber))
+//                        .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+//                context.startActivity(i);
+
+                setResultData(null);
+            }
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/services/ContactServiceImpl.java b/ring-android/androidtv/src/main/java/cx/ring/services/ContactServiceImpl.java
new file mode 100644
index 0000000..2845e9a
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/services/ContactServiceImpl.java
@@ -0,0 +1,465 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.services;
+
+import android.content.ContentResolver;
+import android.content.ContentUris;
+import android.content.Context;
+import android.database.Cursor;
+import android.provider.ContactsContract;
+import android.support.annotation.NonNull;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.LongSparseArray;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import cx.ring.model.CallContact;
+import cx.ring.model.Uri;
+import cx.ring.utils.Tuple;
+import cx.ring.utils.VCardUtils;
+import ezvcard.VCard;
+
+public class ContactServiceImpl extends ContactService {
+
+    private static final String TAG = ContactServiceImpl.class.getName();
+
+    private static final String[] CONTACTS_SUMMARY_PROJECTION = new String[]{
+            ContactsContract.Contacts._ID,
+            ContactsContract.Contacts.LOOKUP_KEY,
+            ContactsContract.Contacts.DISPLAY_NAME,
+            ContactsContract.Contacts.PHOTO_ID,
+            ContactsContract.Contacts.STARRED
+    };
+
+    private static final String[] CONTACTS_DATA_PROJECTION = new String[]{
+            ContactsContract.Data.CONTACT_ID,
+            ContactsContract.Data.MIMETYPE,
+            ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS,
+            ContactsContract.CommonDataKinds.SipAddress.TYPE,
+            ContactsContract.CommonDataKinds.SipAddress.LABEL,
+            ContactsContract.CommonDataKinds.Im.PROTOCOL,
+            ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL
+    };
+
+    private static final String[] CONTACT_PROJECTION = {
+            ContactsContract.Contacts._ID,
+            ContactsContract.Contacts.LOOKUP_KEY,
+            ContactsContract.Contacts.DISPLAY_NAME_PRIMARY,
+            ContactsContract.Contacts.PHOTO_ID,
+            ContactsContract.Contacts.STARRED
+    };
+
+    private static final String[] CONTACTS_PHONES_PROJECTION = {
+            ContactsContract.CommonDataKinds.Phone.NUMBER,
+            ContactsContract.CommonDataKinds.Phone.TYPE,
+            ContactsContract.CommonDataKinds.Phone.LABEL
+    };
+
+    private static final String[] CONTACTS_SIP_PROJECTION = {
+            ContactsContract.Data.MIMETYPE,
+            ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS,
+            ContactsContract.CommonDataKinds.SipAddress.TYPE,
+            ContactsContract.CommonDataKinds.SipAddress.LABEL
+    };
+
+    private static final String[] DATA_PROJECTION = {
+            ContactsContract.Data._ID,
+            ContactsContract.RawContacts.CONTACT_ID,
+            ContactsContract.Data.LOOKUP_KEY,
+            ContactsContract.Data.DISPLAY_NAME_PRIMARY,
+            ContactsContract.Data.PHOTO_ID,
+            ContactsContract.Data.PHOTO_THUMBNAIL_URI,
+            ContactsContract.Data.STARRED
+    };
+
+    private static final String[] PHONELOOKUP_PROJECTION = {
+            ContactsContract.PhoneLookup._ID,
+            ContactsContract.PhoneLookup.LOOKUP_KEY,
+            ContactsContract.PhoneLookup.PHOTO_ID,
+            ContactsContract.Contacts.DISPLAY_NAME_PRIMARY
+    };
+
+    private static final String ID_SELECTION = ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?";
+
+    @Inject
+    Context mContext;
+
+    @Override
+    public Map<Long, CallContact> loadContactsFromSystem(boolean loadRingContacts, boolean loadSipContacts) {
+
+        Map<Long, CallContact> systemContacts = new HashMap<>();
+        ContentResolver contentResolver = mContext.getContentResolver();
+        StringBuilder contactsIds = new StringBuilder();
+        LongSparseArray<CallContact> cache;
+
+        Cursor contactCursor = contentResolver.query(ContactsContract.Data.CONTENT_URI, CONTACTS_DATA_PROJECTION,
+                ContactsContract.Data.MIMETYPE + "=? OR " + ContactsContract.Data.MIMETYPE + "=? OR " + ContactsContract.Data.MIMETYPE + "=?",
+                new String[]{ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE}, null);
+
+        if (contactCursor != null) {
+            cache = new LongSparseArray<>(contactCursor.getCount());
+            contactsIds.ensureCapacity(contactCursor.getCount() * 4);
+
+            final int indexId = contactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID);
+            final int indexMime = contactCursor.getColumnIndex(ContactsContract.Data.MIMETYPE);
+            final int indexNumber = contactCursor.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS);
+            final int indexType = contactCursor.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.TYPE);
+            final int indexLabel = contactCursor.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.LABEL);
+
+            while (contactCursor.moveToNext()) {
+                long contactId = contactCursor.getLong(indexId);
+                CallContact contact = cache.get(contactId);
+
+                boolean isNewContact = false;
+                if (contact == null) {
+                    contact = new CallContact(contactId);
+                    isNewContact = true;
+                    contact.setFromSystem(true);
+                }
+
+                String contactNumber = contactCursor.getString(indexNumber);
+                int contactType = contactCursor.getInt(indexType);
+                String contactLabel = contactCursor.getString(indexLabel);
+                Uri uri = new Uri(contactNumber);
+
+                if (uri.isSingleIp() || (uri.isRingId() && loadRingContacts) || loadSipContacts) {
+                    switch (contactCursor.getString(indexMime)) {
+                        case ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE:
+                            contact.addPhoneNumber(contactNumber, contactType, contactLabel);
+                            break;
+                        case ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE:
+                            contact.addNumber(contactNumber, contactType, contactLabel, cx.ring.model.Phone.NumberType.SIP);
+                            break;
+                        case ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE:
+                            if (uri.isRingId()) {
+                                contact.addNumber(contactNumber, contactType, contactLabel, cx.ring.model.Phone.NumberType.UNKNOWN);
+                            }
+                            break;
+                    }
+                }
+
+                if (isNewContact && !contact.getPhones().isEmpty()) {
+                    cache.put(contactId, contact);
+                    if (contactsIds.length() > 0) {
+                        contactsIds.append(",");
+                    }
+                    contactsIds.append(contactId);
+                }
+            }
+            contactCursor.close();
+        } else {
+            cache = new LongSparseArray<>();
+        }
+
+        contactCursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, CONTACTS_SUMMARY_PROJECTION,
+                ContactsContract.Contacts._ID + " in (" + contactsIds.toString() + ")", null,
+                ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
+
+        if (contactCursor != null) {
+            final int indexId = contactCursor.getColumnIndex(ContactsContract.Contacts._ID);
+            final int indexKey = contactCursor.getColumnIndex(ContactsContract.Data.LOOKUP_KEY);
+            final int indexName = contactCursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
+            final int indexPhoto = contactCursor.getColumnIndex(ContactsContract.Contacts.PHOTO_ID);
+
+            while (contactCursor.moveToNext()) {
+                long contactId = contactCursor.getLong(indexId);
+                CallContact contact = cache.get(contactId);
+                if (contact == null)
+                    Log.w(TAG, "Can't find contact with ID " + contactId);
+                else {
+                    contact.setContactInfos(contactCursor.getString(indexKey), contactCursor.getString(indexName), contactCursor.getLong(indexPhoto));
+                    systemContacts.put(contactId, contact);
+                }
+            }
+            contactCursor.close();
+        }
+
+
+        return systemContacts;
+    }
+
+    @Override
+    protected CallContact findContactByIdFromSystem(Long id, String key) {
+        CallContact contact = null;
+        ContentResolver contentResolver = mContext.getContentResolver();
+
+        try {
+            android.net.Uri contentUri;
+            if (key != null) {
+                contentUri = ContactsContract.Contacts.lookupContact(
+                        contentResolver,
+                        ContactsContract.Contacts.getLookupUri(id, key));
+            } else {
+                contentUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
+            }
+
+            Cursor result = null;
+            if (contentUri != null) {
+                result = contentResolver.query(contentUri, CONTACT_PROJECTION, null, null, null);
+            }
+
+            if (result == null) {
+                return null;
+            }
+
+            if (result.moveToFirst()) {
+                int indexId = result.getColumnIndex(ContactsContract.Data._ID);
+                int indexKey = result.getColumnIndex(ContactsContract.Data.LOOKUP_KEY);
+                int indexName = result.getColumnIndex(ContactsContract.Data.DISPLAY_NAME);
+                int indexPhoto = result.getColumnIndex(ContactsContract.Data.PHOTO_ID);
+                int indexStared = result.getColumnIndex(ContactsContract.Contacts.STARRED);
+
+                long contactId = result.getLong(indexId);
+
+                Log.d(TAG, "Contact name: " + result.getString(indexName) + " id:" + contactId + " key:" + result.getString(indexKey));
+
+                contact = new CallContact(contactId, result.getString(indexKey), result.getString(indexName), result.getLong(indexPhoto));
+
+                if (result.getInt(indexStared) != 0) {
+                    contact.setStared();
+                }
+
+                fillContactDetails(contact);
+            }
+
+            result.close();
+        } catch (Exception e) {
+            Log.d(TAG, "Error while searching for contact id=" + id, e);
+        }
+
+        if (contact == null) {
+            Log.d(TAG, "findById " + id + " can't find contact.");
+        }
+
+        return contact;
+    }
+
+    private void fillContactDetails(@NonNull CallContact callContact) {
+
+        ContentResolver contentResolver = mContext.getContentResolver();
+
+        try {
+            Cursor cursorPhones = contentResolver.query(
+                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
+                    CONTACTS_PHONES_PROJECTION, ID_SELECTION,
+                    new String[]{String.valueOf(callContact.getId())}, null);
+
+            if (cursorPhones != null) {
+                final int indexNumber = cursorPhones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
+                final int indexType = cursorPhones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE);
+                final int indexLabel = cursorPhones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.LABEL);
+
+                while (cursorPhones.moveToNext()) {
+                    callContact.addNumber(cursorPhones.getString(indexNumber), cursorPhones.getInt(indexType), cursorPhones.getString(indexLabel), cx.ring.model.Phone.NumberType.TEL);
+                    Log.d(TAG, "Phone:" + cursorPhones.getString(cursorPhones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
+                }
+
+                cursorPhones.close();
+            }
+
+            android.net.Uri baseUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, callContact.getId());
+            android.net.Uri targetUri = android.net.Uri.withAppendedPath(baseUri, ContactsContract.Contacts.Data.CONTENT_DIRECTORY);
+
+            Cursor cursorSip = contentResolver.query(
+                    targetUri,
+                    CONTACTS_SIP_PROJECTION,
+                    ContactsContract.Data.MIMETYPE + "=? OR " + ContactsContract.Data.MIMETYPE + " =?",
+                    new String[]{ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE}, null);
+
+            if (cursorSip != null) {
+                final int indexMime = cursorSip.getColumnIndex(ContactsContract.Data.MIMETYPE);
+                final int indexSip = cursorSip.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS);
+                final int indexType = cursorSip.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.TYPE);
+                final int indexLabel = cursorSip.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.LABEL);
+
+                while (cursorSip.moveToNext()) {
+                    String contactMime = cursorSip.getString(indexMime);
+                    String contactNumber = cursorSip.getString(indexSip);
+
+                    if (!contactMime.contentEquals(ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE) || new Uri(contactNumber).isRingId() || "ring".equalsIgnoreCase(cursorSip.getString(indexLabel))) {
+                        callContact.addNumber(contactNumber, cursorSip.getInt(indexType), cursorSip.getString(indexLabel), cx.ring.model.Phone.NumberType.SIP);
+                    }
+                    Log.d(TAG, "SIP phone:" + contactNumber + " " + contactMime + " ");
+                }
+                cursorSip.close();
+            }
+        } catch (Exception e) {
+            Log.d(TAG, "Error while retrieving detail contact info", e);
+        }
+    }
+
+    public CallContact findContactBySipNumberFromSystem(String number) {
+        CallContact contact = null;
+        ContentResolver contentResolver = mContext.getContentResolver();
+
+        try {
+            Cursor result = contentResolver.query(ContactsContract.Data.CONTENT_URI,
+                    DATA_PROJECTION,
+                    ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS + "=?" + " AND (" + ContactsContract.Data.MIMETYPE + "=? OR " + ContactsContract.Data.MIMETYPE + "=?)",
+                    new String[]{number, ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE, ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE}, null);
+
+            if (result == null) {
+                Log.d(TAG, "findContactBySipNumber " + number + " can't find contact.");
+                return CallContact.buildUnknown(number);
+            }
+
+            int indexId = result.getColumnIndex(ContactsContract.RawContacts.CONTACT_ID);
+            int indexKey = result.getColumnIndex(ContactsContract.Data.LOOKUP_KEY);
+            int indexName = result.getColumnIndex(ContactsContract.Data.DISPLAY_NAME);
+            int indexPhoto = result.getColumnIndex(ContactsContract.Data.PHOTO_ID);
+            int indexStared = result.getColumnIndex(ContactsContract.Contacts.STARRED);
+
+            if (result.moveToFirst()) {
+                long contactId = result.getLong(indexId);
+                contact = new CallContact(contactId, result.getString(indexKey), result.getString(indexName), result.getLong(indexPhoto));
+
+                if (result.getInt(indexStared) != 0) {
+                    contact.setStared();
+                }
+
+                fillContactDetails(contact);
+            }
+            result.close();
+
+            if (contact == null || contact.getPhones() == null || contact.getPhones().isEmpty()) {
+                return null;
+            }
+        } catch (Exception e) {
+            Log.d(TAG, "Error while searching for contact number=" + number, e);
+        }
+
+        return contact;
+    }
+
+    public CallContact findContactByNumberFromSystem(String number) {
+        CallContact callContact = null;
+        ContentResolver contentResolver = mContext.getContentResolver();
+
+        try {
+            android.net.Uri uri = android.net.Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, android.net.Uri.encode(number));
+            Cursor result = contentResolver.query(uri, PHONELOOKUP_PROJECTION, null, null, null);
+            if (result == null) {
+                Log.d(TAG, "findContactByNumber " + number + " can't find contact.");
+                return findContactBySipNumberFromSystem(number);
+            }
+            if (result.moveToFirst()) {
+                int indexId = result.getColumnIndex(ContactsContract.Contacts._ID);
+                int indexKey = result.getColumnIndex(ContactsContract.Data.LOOKUP_KEY);
+                int indexName = result.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
+                int indexPhoto = result.getColumnIndex(ContactsContract.Contacts.PHOTO_ID);
+                callContact = new CallContact(result.getLong(indexId), result.getString(indexKey), result.getString(indexName), result.getLong(indexPhoto));
+                fillContactDetails(callContact);
+                Log.d(TAG, "findContactByNumber " + number + " found " + callContact.getDisplayName());
+            }
+            result.close();
+        } catch (Exception e) {
+            Log.d(TAG, "Error while searching for contact number=" + number, e);
+        }
+
+        if (callContact == null) {
+            Log.d(TAG, "findContactByNumber " + number + " can't find contact.");
+            callContact = findContactBySipNumberFromSystem(number);
+        }
+
+        return callContact;
+    }
+
+    @Override
+    public Tuple<String, String> loadContactDataFromSystem(CallContact callContact) {
+
+        String contactName = callContact.getDisplayName();
+        String photoURI = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, callContact.getId()).toString();
+
+        return new Tuple<>(contactName, photoURI);
+    }
+
+    @Override
+    public void loadContactData(CallContact callContact) {
+        Tuple<String, byte[]> profileData;
+        if (callContact.isFromSystem()) {
+            profileData = loadSystemContactData(callContact);
+        } else {
+            profileData = loadVCardContactData(callContact);
+        }
+        callContact.setDisplayName(profileData.first);
+        if (profileData.second != null && profileData.second.length > 0)
+            callContact.setPhoto(profileData.second);
+    }
+
+    private Tuple<String, byte[]> loadVCardContactData(CallContact callContact) {
+        String contactName = null;
+        byte[] photoURI = null;
+        VCard vcard = null;
+
+        if (!callContact.getPhones().isEmpty()) {
+            String username = callContact.getPhones().get(0).getNumber().getHost();
+            vcard = VCardUtils.loadPeerProfileFromDisk(mContext.getFilesDir(), username + ".vcf");
+
+            if (vcard != null && vcard.getFormattedName() != null) {
+                if (!TextUtils.isEmpty(vcard.getFormattedName().getValue())) {
+                    contactName = vcard.getFormattedName().getValue();
+                }
+            }
+        }
+        if (contactName == null) {
+            contactName = callContact.getDisplayName();
+        }
+
+        if (vcard != null && !vcard.getPhotos().isEmpty()) {
+            try {
+                photoURI = vcard.getPhotos().get(0).getData();
+            } catch (Exception e) {
+                photoURI = null;
+            }
+        }
+
+        return new Tuple<>(contactName, photoURI);
+    }
+
+    private Tuple<String, byte[]> loadSystemContactData(CallContact callContact) {
+        String contactName = callContact.getDisplayName();
+        String photoURI = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, callContact.getId()).toString();
+        InputStream is;
+        try {
+            is = mContext.getContentResolver()
+                    .openInputStream(android.net.Uri.withAppendedPath(android.net.Uri.parse(photoURI),
+                            ContactsContract.Contacts.Photo.DISPLAY_PHOTO));
+            ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+            int nRead;
+            byte[] data = new byte[1024];
+            while ((nRead = is.read(data, 0, data.length)) != -1) {
+                buffer.write(data, 0, nRead);
+            }
+            buffer.flush();
+            byte[] byteArray = buffer.toByteArray();
+            return new Tuple<>(contactName, byteArray);
+        } catch (IOException e) {
+            Log.w(TAG, "Error loading photo for system contact");
+            return new Tuple<>(contactName, null);
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/services/DeviceRuntimeServiceImpl.java b/ring-android/androidtv/src/main/java/cx/ring/services/DeviceRuntimeServiceImpl.java
new file mode 100644
index 0000000..4e4fd57
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/services/DeviceRuntimeServiceImpl.java
@@ -0,0 +1,226 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.services;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.database.Cursor;
+import android.media.AudioManager;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.os.Build;
+import android.os.Handler;
+import android.provider.ContactsContract;
+import android.support.v4.content.ContextCompat;
+
+import java.io.File;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+
+import javax.inject.Inject;
+import javax.inject.Named;
+
+import cx.ring.daemon.IntVect;
+import cx.ring.daemon.StringVect;
+import cx.ring.service.OpenSlParams;
+import cx.ring.utils.Log;
+import cx.ring.utils.MediaManager;
+import cx.ring.utils.NetworkUtils;
+import cx.ring.utils.StringUtils;
+
+public class DeviceRuntimeServiceImpl extends DeviceRuntimeService {
+
+    private static final String TAG = DeviceRuntimeServiceImpl.class.getName();
+    private static final String[] PROFILE_PROJECTION = new String[]{ContactsContract.Profile._ID,
+            ContactsContract.Profile.DISPLAY_NAME_PRIMARY,
+            ContactsContract.Profile.PHOTO_ID};
+
+    @Inject
+    @Named("DaemonExecutor")
+    ExecutorService mExecutor;
+
+    @Inject
+    protected Context mContext;
+
+    @Inject
+    protected MediaManager mediaManager;
+
+    private long mDaemonThreadId = -1;
+
+    @Override
+    public void loadNativeLibrary() {
+        Future<Boolean> result = mExecutor.submit(new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                try {
+                    mDaemonThreadId = Thread.currentThread().getId();
+                    System.loadLibrary("ring");
+                    return true;
+                } catch (Exception e) {
+                    Log.e(TAG, "Could not load Ring library", e);
+                    return false;
+                }
+            }
+        });
+
+        try {
+            boolean loaded = result.get();
+            Log.i(TAG, "Ring library has been successfully loaded");
+        } catch (Exception e) {
+            Log.e(TAG, "Could not load Ring library", e);
+        }
+    }
+
+    @Override
+    public void updateAudioState(final boolean isRinging) {
+        Handler mainHandler = new Handler(mContext.getMainLooper());
+
+        mainHandler.post(new Runnable() {
+            @Override
+            public void run() {
+                mediaManager.obtainAudioFocus(isRinging);
+                if (isRinging) {
+                    mediaManager.audioManager.setMode(AudioManager.MODE_RINGTONE);
+                    mediaManager.startRing();
+                } else {
+                    mediaManager.stopRing();
+                    mediaManager.audioManager.setMode(AudioManager.MODE_IN_COMMUNICATION);
+                }
+            }
+        });
+    }
+
+    @Override
+    public void closeAudioState() {
+        mediaManager.stopRing();
+        mediaManager.abandonAudioFocus();
+    }
+
+    @Override
+    public File provideFilesDir() {
+        return mContext.getFilesDir();
+    }
+
+    @Override
+    public boolean isConnectedWifi() {
+        NetworkInfo info = NetworkUtils.getNetworkInfo(mContext);
+        return (info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_WIFI);
+    }
+
+    @Override
+    public boolean isConnectedMobile() {
+        NetworkInfo info = NetworkUtils.getNetworkInfo(mContext);
+        return (info != null && info.isConnected() && info.getType() == ConnectivityManager.TYPE_MOBILE);
+    }
+
+    @Override
+    public long provideDaemonThreadId() {
+        return mDaemonThreadId;
+    }
+
+    @Override
+    public boolean hasVideoPermission() {
+        return checkPermission(Manifest.permission.CAMERA);
+    }
+
+    @Override
+    public boolean hasAudioPermission() {
+        return checkPermission(Manifest.permission.RECORD_AUDIO);
+    }
+
+    @Override
+    public boolean hasContactPermission() {
+        return checkPermission(Manifest.permission.READ_CONTACTS);
+    }
+
+    @Override
+    public boolean hasCallLogPermission() {
+        return checkPermission(Manifest.permission.WRITE_CALL_LOG);
+    }
+
+    @Override
+    public boolean hasPhotoPermission() {
+        return checkPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE);
+    }
+
+    @Override
+    public boolean hasGalleryPermission() {
+        return checkPermission(Manifest.permission.READ_EXTERNAL_STORAGE);
+    }
+
+    @Override
+    public String getProfileName() {
+        Cursor mProfileCursor = mContext.getContentResolver().query(ContactsContract.Profile.CONTENT_URI, PROFILE_PROJECTION, null, null, null);
+        if (mProfileCursor != null) {
+            if (mProfileCursor.moveToFirst()) {
+                String profileName = mProfileCursor.getString(mProfileCursor.getColumnIndex(ContactsContract.Profile.DISPLAY_NAME_PRIMARY));
+                mProfileCursor.close();
+                return profileName;
+            }
+            mProfileCursor.close();
+        }
+        return null;
+    }
+
+    private boolean checkPermission(String permission) {
+        return ContextCompat.checkSelfPermission(mContext, permission) == PackageManager.PERMISSION_GRANTED;
+    }
+
+
+    @Override
+    public void getHardwareAudioFormat(IntVect ret) {
+        OpenSlParams audioParams = OpenSlParams.createInstance(mContext);
+        ret.add(audioParams.getSampleRate());
+        ret.add(audioParams.getBufferSize());
+        Log.d(TAG, "getHardwareAudioFormat: " + audioParams.getSampleRate() + " " + audioParams.getBufferSize());
+    }
+
+    @Override
+    public void getAppDataPath(String name, StringVect ret) {
+        if (name == null || ret == null) {
+            return;
+        }
+
+        switch (name) {
+            case "files":
+                ret.add(mContext.getFilesDir().getAbsolutePath());
+                break;
+            case "cache":
+                ret.add(mContext.getCacheDir().getAbsolutePath());
+                break;
+            default:
+                ret.add(mContext.getDir(name, Context.MODE_PRIVATE).getAbsolutePath());
+                break;
+        }
+    }
+
+    @Override
+    public void getDeviceName(StringVect ret) {
+        String manufacturer = Build.MANUFACTURER;
+        String model = Build.MODEL;
+        if (model.startsWith(manufacturer)) {
+            ret.add(StringUtils.capitalize(model));
+        } else {
+            ret.add(StringUtils.capitalize(manufacturer) + " " + model);
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/services/HardwareServiceImpl.java b/ring-android/androidtv/src/main/java/cx/ring/services/HardwareServiceImpl.java
new file mode 100644
index 0000000..c7bf3a1
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/services/HardwareServiceImpl.java
@@ -0,0 +1,565 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Hadrien De Sousa <hadrien.desousa@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.services;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.graphics.ImageFormat;
+import android.graphics.Point;
+import android.hardware.Camera;
+import android.media.AudioManager;
+import android.os.Build;
+import android.support.annotation.Nullable;
+import android.util.LongSparseArray;
+import android.view.Surface;
+import android.view.SurfaceHolder;
+import android.view.WindowManager;
+
+import java.io.IOException;
+import java.lang.ref.WeakReference;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import cx.ring.daemon.IntVect;
+import cx.ring.daemon.StringMap;
+import cx.ring.daemon.UintVect;
+import cx.ring.model.ServiceEvent;
+import cx.ring.utils.Log;
+
+public class HardwareServiceImpl extends HardwareService {
+
+    public static final String TAG = HardwareServiceImpl.class.getName();
+
+    private Context mContext;
+
+    private int cameraFront = 0;
+    private int cameraBack = 0;
+
+    private int currentCamera = -1;
+
+    private final Map<String, Shm> videoInputs = new HashMap<>();
+    private static WeakReference<SurfaceHolder> mCameraPreviewSurface = new WeakReference<>(null);
+    private static Map<String, WeakReference<SurfaceHolder>> videoSurfaces = Collections.synchronizedMap(new HashMap<String, WeakReference<SurfaceHolder>>());
+    private VideoParams previewParams = null;
+    private Camera previewCamera = null;
+    private final HashMap<String, VideoParams> mParams = new HashMap<>();
+    private final LongSparseArray<DeviceParams> mNativeParams = new LongSparseArray<>();
+
+    public HardwareServiceImpl(Context mContext) {
+        this.mContext = mContext;
+    }
+
+    public void initVideo() {
+        Log.i(TAG, "initVideo()");
+        mNativeParams.clear();
+        int numberCameras = Camera.getNumberOfCameras();
+        Camera.CameraInfo camInfo = new Camera.CameraInfo();
+        for (int i = 0; i < numberCameras; i++) {
+            addVideoDevice(Integer.toString(i));
+            Camera.getCameraInfo(i, camInfo);
+            if (camInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
+                cameraFront = i;
+            } else {
+                cameraBack = i;
+            }
+        }
+        currentCamera = cameraFront;
+        setDefaultVideoDevice(Integer.toString(cameraFront));
+    }
+
+    @Override
+    public boolean isSpeakerPhoneOn() {
+        AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+        return audioManager.isSpeakerphoneOn();
+    }
+
+    @Override
+    public void switchSpeakerPhone() {
+        AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
+        audioManager.setSpeakerphoneOn(!audioManager.isSpeakerphoneOn());
+    }
+
+    public void decodingStarted(String id, String shmPath, int width, int height, boolean isMixer) {
+        Log.i(TAG, "decodingStarted() " + id + " " + width + "x" + height);
+        Shm shm = new Shm();
+        shm.id = id;
+        shm.w = width;
+        shm.h = height;
+        videoInputs.put(id, shm);
+        WeakReference<SurfaceHolder> weakSurfaceHolder = videoSurfaces.get(id);
+        if (weakSurfaceHolder != null) {
+            SurfaceHolder holder = weakSurfaceHolder.get();
+            if (holder != null) {
+                shm.window = startVideo(id, holder.getSurface(), width, height);
+
+                if (shm.window == 0) {
+                    Log.i(TAG, "DRingService.decodingStarted() no window !");
+
+                    ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+                    event.addEventInput(ServiceEvent.EventInput.VIDEO_START, true);
+                    setChanged();
+                    notifyObservers(event);
+                    return;
+                }
+
+                ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+                event.addEventInput(ServiceEvent.EventInput.VIDEO_CALL, shm.id);
+                event.addEventInput(ServiceEvent.EventInput.VIDEO_STARTED, true);
+                event.addEventInput(ServiceEvent.EventInput.VIDEO_WIDTH, shm.w);
+                event.addEventInput(ServiceEvent.EventInput.VIDEO_HEIGHT, shm.h);
+                setChanged();
+                notifyObservers(event);
+            }
+        }
+    }
+
+    @Override
+    public void decodingStopped(String id, String shmPath, boolean isMixer) {
+        Log.i(TAG, "decodingStopped() " + id);
+        Shm shm = videoInputs.remove(id);
+        if (shm != null) {
+            stopVideo(shm.id, shm.window);
+        }
+    }
+
+    @Override
+    public void getCameraInfo(String camId, IntVect formats, UintVect sizes, UintVect rates) {
+        Log.d(TAG, "getCameraInfo: " + camId);
+        int id = Integer.valueOf(camId);
+
+        if (id < 0 || id >= Camera.getNumberOfCameras()) {
+            return;
+        }
+
+        Camera cam;
+        try {
+            cam = Camera.open(id);
+        } catch (Exception e) {
+            Log.d(TAG, e.getMessage());
+            return;
+        }
+
+        Camera.Parameters param = cam.getParameters();
+        cam.release();
+
+        for (int fmt : param.getSupportedPreviewFormats()) {
+            formats.add(fmt);
+        }
+
+        DeviceParams p = new DeviceParams();
+
+        // Use a larger resolution for Android 6.0+, 64 bits devices
+        final boolean useLargerSize = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.SUPPORTED_64_BIT_ABIS.length > 0;
+        int MIN_WIDTH = useLargerSize ? 640 : 320;
+        Point size = new Point(0, 0);
+        /** {@link Camera.Parameters#getSupportedPreviewSizes} :
+         * "This method will always return a list with at least one element."
+         * Attempt to find the size with width closest (but above) MIN_WIDTH. */
+        for (Camera.Size s : param.getSupportedPreviewSizes()) {
+            if (s.width < s.height) {
+                continue;
+            }
+            if (size.x < MIN_WIDTH ? s.width > size.x : (s.width >= MIN_WIDTH && s.width < size.x)) {
+                size.x = s.width;
+                size.y = s.height;
+            }
+        }
+
+        p.size = size;
+
+        sizes.add(p.size.x);
+        sizes.add(p.size.y);
+        sizes.add(p.size.y);
+        sizes.add(p.size.x);
+
+        for (int fps[] : param.getSupportedPreviewFpsRange()) {
+            int rate = (fps[Camera.Parameters.PREVIEW_FPS_MIN_INDEX] + fps[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]) / 2;
+            rates.add(rate);
+        }
+        p.rate = rates.get(0);
+        Log.d(TAG, "getCameraInfo: using resolution " + p.size.x + "x" + p.size.y + " " + p.rate/1000 + " FPS");
+
+        p.infos = new Camera.CameraInfo();
+        Camera.getCameraInfo(id, p.infos);
+
+        mNativeParams.put(id, p);
+    }
+
+    @Override
+    public void setParameters(String camId, int format, int width, int height, int rate) {
+        Log.d(TAG, "setParameters: " + camId + ", " + format + ", " + width + ", " + height + ", " + rate);
+        int id = Integer.valueOf(camId);
+        DeviceParams deviceParams = mNativeParams.get(id);
+        VideoParams newParams = new VideoParams(id, format, deviceParams.size.x, deviceParams.size.y, rate);
+        newParams.rotWidth = width;
+        newParams.rotHeight = height;
+        WindowManager windowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
+        int rotation = rotationToDegrees(windowManager.getDefaultDisplay().getRotation());
+        if (deviceParams.infos.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
+            newParams.rotation = (deviceParams.infos.orientation + rotation + 360) % 360;
+        } else {
+            newParams.rotation = (deviceParams.infos.orientation - rotation + 360) % 360;
+        }
+        mParams.put(camId, newParams);
+    }
+
+    @Override
+    public void startCapture(@Nullable String camId) {
+        VideoParams videoParams;
+
+        if (camId == null && previewParams != null) {
+            videoParams = previewParams;
+        } else if (camId != null) {
+            videoParams = mParams.get(camId);
+        } else if (mParams.size() == 2) {
+            currentCamera = cameraFront;
+            videoParams = mParams.get(cameraFront);
+        } else {
+            currentCamera = cameraBack;
+            videoParams = mParams.get(cameraBack);
+        }
+
+        SurfaceHolder surface = mCameraPreviewSurface.get();
+        if (surface == null) {
+            Log.w(TAG, "Can't start capture: no surface registered.");
+            previewParams = videoParams;
+
+            ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+            event.addEventInput(ServiceEvent.EventInput.VIDEO_START, true);
+            setChanged();
+            notifyObservers(event);
+            return;
+        }
+
+        if (videoParams == null) {
+            Log.w(TAG, "startCapture: no video parameters ");
+            return;
+        }
+        Log.d(TAG, "startCapture " + videoParams.id + " " + videoParams.width + "x" + videoParams.height + " rot" + videoParams.rotation);
+
+        final Camera preview;
+        try {
+            if (previewCamera != null) {
+                previewCamera.release();
+                previewCamera = null;
+            }
+            preview = Camera.open(videoParams.id);
+            setCameraDisplayOrientation(videoParams.id, preview);
+        } catch (Exception e) {
+            Log.e(TAG, "Camera.open: " + e.getMessage());
+            return;
+        }
+
+        try {
+            surface.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
+            preview.setPreviewDisplay(surface);
+        } catch (IOException e) {
+            Log.e(TAG, "setPreviewDisplay: " + e.getMessage());
+            return;
+        }
+
+        Camera.Parameters parameters = preview.getParameters();
+        parameters.setPreviewFormat(videoParams.format);
+        parameters.setPreviewSize(videoParams.width, videoParams.height);
+        parameters.setRotation(0);
+
+        for (int[] fps : parameters.getSupportedPreviewFpsRange()) {
+            if (videoParams.rate >= fps[Camera.Parameters.PREVIEW_FPS_MIN_INDEX] &&
+                    videoParams.rate <= fps[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]) {
+                parameters.setPreviewFpsRange(fps[Camera.Parameters.PREVIEW_FPS_MIN_INDEX],
+                        fps[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
+            }
+        }
+
+        try {
+            preview.setParameters(parameters);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "Error while settings preview parameters", e);
+        }
+
+        final int videoWidth = videoParams.width;
+        final int heigth = videoParams.height;
+        final int rotation = videoParams.rotation;
+
+        preview.setPreviewCallbackWithBuffer(new Camera.PreviewCallback() {
+            @Override
+            public void onPreviewFrame(byte[] data, Camera camera) {
+                setVideoFrame(data, videoWidth, heigth, rotation);
+                preview.addCallbackBuffer(data);
+            }
+        });
+
+        // enqueue first buffer
+        int bufferSize = parameters.getPreviewSize().width * parameters.getPreviewSize().height * ImageFormat.getBitsPerPixel(parameters.getPreviewFormat()) / 8;
+        preview.addCallbackBuffer(new byte[bufferSize]);
+
+        preview.setErrorCallback(new Camera.ErrorCallback() {
+            @Override
+            public void onError(int error, Camera cam) {
+                Log.w(TAG, "Camera onError " + error);
+                if (preview == cam) {
+                    stopCapture();
+                }
+            }
+        });
+        try {
+            preview.startPreview();
+        } catch (RuntimeException e) {
+            Log.e(TAG, "startPreview: " + e.getMessage());
+            return;
+        }
+
+        previewCamera = preview;
+        previewParams = videoParams;
+
+        ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_CAMERA, videoParams.id == 1);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_STARTED, true);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_WIDTH, videoParams.rotWidth);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_HEIGHT, videoParams.rotHeight);
+        setChanged();
+        notifyObservers(event);
+    }
+
+    @Override
+    public void stopCapture() {
+        Log.d(TAG, "stopCapture " + previewCamera);
+        if (previewCamera != null) {
+            final Camera preview = previewCamera;
+            final VideoParams params = previewParams;
+            previewCamera = null;
+            try {
+                preview.setPreviewCallback(null);
+                preview.setErrorCallback(null);
+                preview.stopPreview();
+                preview.release();
+            } catch (Exception e) {
+                Log.e(TAG, "stopCapture error" + e);
+            }
+
+            ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+            event.addEventInput(ServiceEvent.EventInput.VIDEO_CAMERA, params.id == 1);
+            event.addEventInput(ServiceEvent.EventInput.VIDEO_STARTED, false);
+            event.addEventInput(ServiceEvent.EventInput.VIDEO_WIDTH, params.width);
+            event.addEventInput(ServiceEvent.EventInput.VIDEO_HEIGHT, params.height);
+            setChanged();
+            notifyObservers(event);
+        }
+    }
+
+    @Override
+    public void addVideoSurface(String id, Object holder) {
+        if (!(holder instanceof SurfaceHolder)) {
+            return;
+        }
+
+        Log.w(TAG, "addVideoSurface " + id + holder.hashCode());
+
+        Shm shm = videoInputs.get(id);
+        WeakReference<SurfaceHolder> surfaceHolder = new WeakReference<>((SurfaceHolder) holder);
+        videoSurfaces.put(id, surfaceHolder);
+        if (shm != null && shm.window == 0) {
+            shm.window = startVideo(shm.id, surfaceHolder.get().getSurface(), shm.w, shm.h);
+        }
+
+        if (shm == null || shm.window == 0) {
+            Log.i(TAG, "DRingService.addVideoSurface() no window !");
+
+            ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+            event.addEventInput(ServiceEvent.EventInput.VIDEO_START, true);
+            setChanged();
+            notifyObservers(event);
+            return;
+        }
+
+        ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_CALL, shm.id);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_STARTED, true);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_WIDTH, shm.w);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_HEIGHT, shm.h);
+        setChanged();
+        notifyObservers(event);
+
+    }
+
+    @Override
+    public void addPreviewVideoSurface(Object holder) {
+        if (!(holder instanceof SurfaceHolder)) {
+            return;
+        }
+
+        Log.w(TAG, "addPreviewVideoSurface " + holder.hashCode());
+
+        mCameraPreviewSurface = new WeakReference<>((SurfaceHolder) holder);
+    }
+
+    @Override
+    public void removeVideoSurface(String id) {
+        Log.i(TAG, "removeVideoSurface " + id);
+        Shm shm = videoInputs.get(id);
+        if (shm == null) {
+            return;
+        }
+        if (shm.window != 0) {
+            try {
+                stopVideo(shm.id, shm.window);
+            } catch (Exception e) {
+                Log.e(TAG, "removeVideoSurface error" + e);
+            }
+
+            shm.window = 0;
+        }
+
+        ServiceEvent event = new ServiceEvent(ServiceEvent.EventType.VIDEO_EVENT);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_CALL, shm.id);
+        event.addEventInput(ServiceEvent.EventInput.VIDEO_STARTED, false);
+        setChanged();
+        notifyObservers(event);
+    }
+
+    @Override
+    public void removePreviewVideoSurface() {
+        Log.w(TAG, "removePreviewVideoSurface");
+        mCameraPreviewSurface.clear();
+    }
+
+    @Override
+    public void switchInput(String id) {
+        Log.w(TAG, "switchInput " + id);
+
+        final int camId;
+        if (currentCamera == cameraBack) {
+            camId = cameraFront;
+        } else {
+            camId = cameraBack;
+        }
+        currentCamera = camId;
+
+        final String uri = "camera://" + camId;
+        final StringMap map = mNativeParams.get(camId).toMap(mContext.getResources().getConfiguration().orientation);
+        this.switchInput(id, uri, map);
+    }
+
+    @Override
+    public void restartCamera(String id) {
+        stopCapture();
+        setPreviewSettings();
+        final String uri = "camera://" + currentCamera;
+        final StringMap map = mNativeParams.get(currentCamera).toMap(mContext.getResources().getConfiguration().orientation);
+        this.switchInput(id, uri, map);
+    }
+
+    @Override
+    public void setPreviewSettings() {
+        Map<String, StringMap> camSettings = new HashMap<>();
+        for (int i = 0; i < Camera.getNumberOfCameras(); i++) {
+            if (mNativeParams.get(i) != null) {
+                camSettings.put(Integer.toString(i), mNativeParams.get(i).toMap(mContext.getResources().getConfiguration().orientation));
+                Log.w(TAG, "setPreviewSettings camera:" + Integer.toString(i));
+            }
+        }
+        this.setPreviewSettings(camSettings);
+    }
+
+    @Override
+    public int getCameraCount() {
+        return Camera.getNumberOfCameras();
+    }
+
+    @Override
+    public boolean isPreviewFromFrontCamera() {
+        return Camera.getNumberOfCameras() == 1 || currentCamera == cameraFront;
+    }
+
+    private void setCameraDisplayOrientation(int camId, Camera camera) {
+        Camera.CameraInfo info = new Camera.CameraInfo();
+        Camera.getCameraInfo(camId, info);
+        WindowManager windowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
+        int rotation = rotationToDegrees(windowManager.getDefaultDisplay().getRotation());
+        int result;
+        if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
+            result = (info.orientation + rotation) % 360;
+            result = (360 - result) % 360;  // compensate the mirror
+        } else {  // back-facing
+            result = (info.orientation - rotation + 360) % 360;
+        }
+        camera.setDisplayOrientation(result);
+        Log.w(TAG, "setCameraDisplayOrientation " + Integer.toString(rotation) + " " + Integer.toString(result));
+    }
+
+    private int rotationToDegrees(int rotation) {
+        switch (rotation) {
+            case Surface.ROTATION_0:
+                return 0;
+            case Surface.ROTATION_90:
+                return 90;
+            case Surface.ROTATION_180:
+                return 180;
+            case Surface.ROTATION_270:
+                return 270;
+        }
+        return 0;
+    }
+
+    private static class Shm {
+        String id;
+        int w, h;
+        long window = 0;
+    }
+
+    private static class VideoParams {
+        public VideoParams(int id, int format, int width, int height, int rate) {
+            this.id = id;
+            this.format = format;
+            this.width = width;
+            this.height = height;
+            this.rate = rate;
+        }
+
+        public int id;
+        public int format;
+
+        // size as captured by Android
+        public int width;
+        public int height;
+
+        //size, rotated, as seen by the daemon
+        public int rotWidth;
+        public int rotHeight;
+
+        public int rate;
+        public int rotation;
+    }
+
+    private static class DeviceParams {
+        Point size;
+        long rate;
+        Camera.CameraInfo infos;
+
+        public StringMap toMap(int orientation) {
+            StringMap map = new StringMap();
+            boolean rotated = (size.x > size.y) == (orientation == Configuration.ORIENTATION_PORTRAIT);
+            map.set("size", Integer.toString(rotated ? size.y : size.x) + "x" + Integer.toString(rotated ? size.x : size.y));
+            map.set("rate", Long.toString(rate));
+            return map;
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/services/HistoryServiceImpl.java b/ring-android/androidtv/src/main/java/cx/ring/services/HistoryServiceImpl.java
new file mode 100644
index 0000000..3fbdf6e
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/services/HistoryServiceImpl.java
@@ -0,0 +1,160 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.services;
+
+import android.content.Context;
+import android.content.Intent;
+import android.text.format.DateUtils;
+import android.util.Log;
+
+import com.j256.ormlite.android.apptools.OpenHelperManager;
+import com.j256.ormlite.dao.Dao;
+import com.j256.ormlite.support.ConnectionSource;
+
+import java.sql.SQLException;
+import java.util.HashMap;
+
+import javax.inject.Inject;
+
+import cx.ring.daemon.StringMap;
+import cx.ring.history.DatabaseHelper;
+import cx.ring.model.HistoryCall;
+import cx.ring.model.HistoryText;
+import cx.ring.utils.ProfileChunk;
+import cx.ring.utils.VCardUtils;
+
+/**
+ * Implements the necessary Android related methods for the {@link HistoryService}
+ */
+public class HistoryServiceImpl extends HistoryService {
+
+    static public final String VCARD_COMPLETED = "vcard-completed";
+    private static final String TAG = HistoryServiceImpl.class.getSimpleName();
+
+    @Inject
+    protected Context mContext;
+
+    private DatabaseHelper historyDBHelper = null;
+    private ProfileChunk mProfileChunk;
+
+    public HistoryServiceImpl() {
+    }
+
+    @Override
+    protected ConnectionSource getConnectionSource() {
+        return getHelper().getConnectionSource();
+    }
+
+    @Override
+    protected Dao<HistoryCall, Integer> getCallHistoryDao() {
+        try {
+            return getHelper().getHistoryDao();
+        } catch (SQLException e) {
+            cx.ring.utils.Log.e(TAG, "Unable to get a CallHistoryDao");
+            return null;
+        }
+    }
+
+    @Override
+    protected Dao<HistoryText, Integer> getTextHistoryDao() {
+        try {
+            return getHelper().getTextHistoryDao();
+        } catch (SQLException e) {
+            cx.ring.utils.Log.e(TAG, "Unable to get a TextHistoryDao");
+            return null;
+        }
+    }
+
+    @Override
+    public String getRelativeTimeSpanString(long lastInteraction) {
+        return DateUtils.getRelativeTimeSpanString(lastInteraction, System.currentTimeMillis(), 0L, DateUtils.FORMAT_ABBREV_ALL).toString();
+    }
+
+    /**
+     * Init Helper for our DB
+     */
+    public void initHelper() {
+        if (historyDBHelper == null) {
+            historyDBHelper = OpenHelperManager.getHelper(mContext, DatabaseHelper.class);
+        }
+    }
+
+    /**
+     * Retrieve helper for our DB
+     */
+    private DatabaseHelper getHelper() {
+        if (historyDBHelper == null) {
+            historyDBHelper = OpenHelperManager.getHelper(mContext, DatabaseHelper.class);
+        }
+        return historyDBHelper;
+    }
+
+    @Override
+    public void updateVCard() {
+        this.mProfileChunk = null;
+    }
+
+    @Override
+    public void saveVCard(String from, StringMap messages) {
+        final String ringProfileVCardMime = "x-ring/ring.profile.vcard";
+
+        if (messages != null) {
+
+            String origin = messages.keys().toString().replace("[", "");
+            origin = origin.replace("]", "");
+            String[] elements = origin.split(";");
+
+            HashMap<String, String> messageKeyValue = VCardUtils.parseMimeAttributes(elements);
+
+            if (messageKeyValue != null && messageKeyValue.containsKey(VCardUtils.VCARD_KEY_MIME_TYPE) &&
+                    messageKeyValue.get(VCardUtils.VCARD_KEY_MIME_TYPE).equals(ringProfileVCardMime)) {
+                int part = Integer.parseInt(messageKeyValue.get(VCardUtils.VCARD_KEY_PART));
+                int nbPart = Integer.parseInt(messageKeyValue.get(VCardUtils.VCARD_KEY_OF));
+                if (null == mProfileChunk) {
+                    mProfileChunk = new ProfileChunk(nbPart);
+                }
+                if (messages.keys() != null && messages.keys().size() > 0) {
+                    String content = messages.getRaw(messages.keys().get(0)).toJavaString();
+                    mProfileChunk.addPartAtIndex(content, part);
+                }
+                if (mProfileChunk.isProfileComplete()) {
+                    Log.d(TAG, "Complete Profile: " + mProfileChunk.getCompleteProfile());
+                    String splitFrom[] = from.split("@");
+                    if (splitFrom.length == 2) {
+                        String filename = splitFrom[0] + ".vcf";
+                        VCardUtils.savePeerProfileToDisk(mProfileChunk.getCompleteProfile(),
+                                filename,
+                                mContext.getApplicationContext().getFilesDir());
+
+                        Intent intent = new Intent(VCARD_COMPLETED);
+                        intent.putExtra("filename", filename);
+                        mContext.sendBroadcast(intent);
+                    }
+                }
+            }
+        }
+    }
+
+    public ProfileChunk getProfileChunk() {
+        return mProfileChunk;
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/services/LogServiceImpl.java b/ring-android/androidtv/src/main/java/cx/ring/services/LogServiceImpl.java
new file mode 100644
index 0000000..dc34a91
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/services/LogServiceImpl.java
@@ -0,0 +1,59 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.services;
+
+import android.util.Log;
+
+public class LogServiceImpl implements LogService {
+
+    public void e(String tag, String message) {
+        Log.e(tag, message);
+    }
+
+    public void d(String tag, String message) {
+        Log.d(tag, message);
+    }
+
+    public void w(String tag, String message) {
+        Log.w(tag, message);
+    }
+
+    public void i(String tag, String message) {
+        Log.i(tag, message);
+    }
+
+    public void e(String tag, String message, Throwable e) {
+        Log.e(tag, message, e);
+    }
+
+    public void d(String tag, String message, Throwable e) {
+        Log.d(tag, message, e);
+    }
+
+    public void w(String tag, String message, Throwable e) {
+        Log.w(tag, message, e);
+    }
+
+    public void i(String tag, String message, Throwable e) {
+        Log.i(tag, message, e);
+    }
+
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/services/NotificationServiceImpl.java b/ring-android/androidtv/src/main/java/cx/ring/services/NotificationServiceImpl.java
new file mode 100644
index 0000000..09ead01
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/services/NotificationServiceImpl.java
@@ -0,0 +1,113 @@
+/*
+*  Copyright (C) 2017 Savoir-faire Linux Inc.
+*
+*  Author: Aline Bonnet <aline.bonnet@savoirfairelinux.com>
+*
+*  This program is free software; you can redistribute it and/or modify
+*  it under the terms of the GNU General Public License as published by
+*  the Free Software Foundation; either version 3 of the License, or
+*  (at your option) any later version.
+*
+*  This program is distributed in the hope that it will be useful,
+*  but WITHOUT ANY WARRANTY; without even the implied warranty of
+*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+*  GNU General Public License for more details.
+*
+*  You should have received a copy of the GNU General Public License
+*  along with this program; if not, write to the Free Software
+*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+package cx.ring.services;
+
+import android.content.Context;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.NotificationManagerCompat;
+
+import java.util.HashMap;
+import java.util.TreeMap;
+
+import javax.inject.Inject;
+
+import cx.ring.BuildConfig;
+import cx.ring.model.Account;
+import cx.ring.model.CallContact;
+import cx.ring.model.Conference;
+import cx.ring.model.Conversation;
+import cx.ring.model.ServiceEvent;
+import cx.ring.model.TextMessage;
+import cx.ring.utils.Observable;
+import cx.ring.utils.Observer;
+
+public class NotificationServiceImpl extends NotificationService implements Observer<ServiceEvent> {
+
+    private static final String TAG = NotificationServiceImpl.class.getName();
+
+    private static final String NOTIF_CALL = "CALL";
+    private static final String NOTIF_MSG = "MESSAGE";
+    private static final String NOTIF_TRUST_REQUEST = "TRUST REQUEST";
+
+    private static final String EXTRAS_NUMBER_TRUST_REQUEST_KEY = BuildConfig.APPLICATION_ID + "numberOfTrustRequestKey";
+    private static final String EXTRAS_TRUST_REQUEST_FROM_KEY = BuildConfig.APPLICATION_ID + "trustRequestFrom";
+
+    @Inject
+    protected Context mContext;
+
+    @Inject
+    protected AccountService mAccountService;
+
+    @Inject
+    protected PreferencesService mPreferencesService;
+
+    private NotificationManagerCompat notificationManager;
+
+    private HashMap<Integer, NotificationCompat.Builder> mNotificationBuilders;
+
+    public void initHelper() {
+        mNotificationBuilders = new HashMap<>();
+        if (notificationManager == null) {
+            notificationManager = NotificationManagerCompat.from(mContext);
+        }
+        mAccountService.addObserver(this);
+    }
+
+    @Override
+    public void update(Observable observable, ServiceEvent event) {
+
+    }
+
+    @Override
+    public void showCallNotification(Conference conference) {
+
+    }
+
+    @Override
+    public void showTextNotification(CallContact contact, Conversation conversation, TreeMap<Long, TextMessage> texts) {
+
+    }
+
+    @Override
+    public void cancelCallNotification(int notificationId) {
+
+    }
+
+    @Override
+    public void cancelTextNotification(CallContact contact) {
+
+    }
+
+    @Override
+    public void cancelAll() {
+
+    }
+
+    @Override
+    public void showIncomingTrustRequestNotification(Account account) {
+
+    }
+
+    @Override
+    public void cancelTrustRequestNotification(String accountID) {
+
+    }
+}
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/java/cx/ring/services/SharedPreferencesServiceImpl.java b/ring-android/androidtv/src/main/java/cx/ring/services/SharedPreferencesServiceImpl.java
new file mode 100644
index 0000000..5b8b175
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/services/SharedPreferencesServiceImpl.java
@@ -0,0 +1,136 @@
+/*
+ *  Copyright (C) 2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Thibault Wittemberg <thibault.wittemberg@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.services;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.inject.Inject;
+
+import cx.ring.model.Settings;
+
+public class SharedPreferencesServiceImpl extends PreferencesService {
+
+    private static final String RING_SETTINGS = "ring_settings";
+    private static final String RING_REQUESTS = "ring_requests";
+    private static final String RING_MOBILE_DATA = "mobile_data";
+    private static final String RING_SYSTEM_CONTACTS = "system_contacts";
+    private static final String RING_PLACE_CALLS = "place_calls";
+    private static final String RING_ON_STARTUP = "on_startup";
+
+    @Inject
+    protected Context mContext;
+
+    @Inject
+    protected DeviceRuntimeService mDevideRuntimeService;
+
+    public SharedPreferencesServiceImpl() {
+        mUserSettings = null;
+    }
+
+    @Override
+    public void saveSettings(Settings settings) {
+        SharedPreferences appPrefs = mContext.getSharedPreferences(RING_SETTINGS, Context.MODE_PRIVATE);
+        SharedPreferences.Editor edit = appPrefs.edit();
+        edit.clear();
+        edit.putBoolean(RING_MOBILE_DATA, settings.isAllowMobileData());
+        edit.putBoolean(RING_SYSTEM_CONTACTS, settings.isAllowSystemContacts());
+        edit.putBoolean(RING_PLACE_CALLS, settings.isAllowPlaceSystemCalls());
+        edit.putBoolean(RING_ON_STARTUP, settings.isAllowRingOnStartup());
+
+        edit.apply();
+
+        // notify the observers
+        setChanged();
+        notifyObservers();
+
+        loadSettings();
+    }
+
+    @Override
+    public Settings loadSettings() {
+        SharedPreferences appPrefs = mContext.getSharedPreferences(RING_SETTINGS, Context.MODE_PRIVATE);
+
+        if (null == mUserSettings) {
+            mUserSettings = new Settings();
+        }
+
+        mUserSettings.setAllowMobileData(appPrefs.getBoolean(RING_MOBILE_DATA, false));
+        mUserSettings.setAllowSystemContacts(appPrefs.getBoolean(RING_SYSTEM_CONTACTS, true));
+        mUserSettings.setAllowPlaceSystemCalls(appPrefs.getBoolean(RING_PLACE_CALLS, false));
+        mUserSettings.setAllowRingOnStartup(appPrefs.getBoolean(RING_ON_STARTUP, true));
+
+        return mUserSettings;
+    }
+
+    @Override
+    public Settings getUserSettings() {
+        if (null == mUserSettings) {
+            mUserSettings = loadSettings();
+        }
+        return mUserSettings;
+    }
+
+    private void saveRequests(String accountId, Set<String> requests) {
+        SharedPreferences preferences = mContext.getSharedPreferences(RING_REQUESTS, Context.MODE_PRIVATE);
+        SharedPreferences.Editor edit = preferences.edit();
+        edit.clear();
+        edit.putStringSet(accountId, requests);
+        edit.apply();
+    }
+
+    @Override
+    public void saveRequestPreferences(String accountId, String contactId) {
+        Set<String> requests = loadRequestsPreferences(accountId);
+        if (requests == null) {
+            requests = new HashSet<>();
+        }
+
+        requests.add(contactId);
+        saveRequests(accountId, requests);
+    }
+
+    @Override
+    public Set<String> loadRequestsPreferences(String accountId) {
+        SharedPreferences preferences = mContext.getSharedPreferences(RING_REQUESTS, Context.MODE_PRIVATE);
+        return preferences.getStringSet(accountId, null);
+    }
+
+    @Override
+    public void removeRequestPreferences(String accountId, String contactId) {
+        Set<String> requests = loadRequestsPreferences(accountId);
+        if (requests == null) {
+            return;
+        }
+
+        requests.remove(contactId);
+        saveRequests(accountId, requests);
+    }
+
+
+    @Override
+    public boolean isConnectedWifiAndMobile() {
+        return mDevideRuntimeService.isConnectedWifi() || (mDevideRuntimeService.isConnectedMobile() && getUserSettings().isAllowMobileData());
+    }
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/AccelerometerListener.java b/ring-android/androidtv/src/main/java/cx/ring/utils/AccelerometerListener.java
new file mode 100644
index 0000000..479de35
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/AccelerometerListener.java
@@ -0,0 +1,176 @@
+/*
+ *  Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Regis Montoya <r3gis.3R@gmail.com>
+ *  Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.utils;
+
+import android.content.Context;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.os.Handler;
+import android.os.Message;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * This class is used to listen to the accelerometer to monitor the orientation of the phone. The client of this class is notified when the
+ * orientation changes between horizontal and vertical.
+ */
+public final class AccelerometerListener {
+    private SensorManager mSensorManager;
+    private Sensor mSensor;
+
+    // mOrientation is the orientation value most recently reported to the client.
+    private int mOrientation;
+
+    // mPendingOrientation is the latest orientation computed based on the sensor value.
+    // This is sent to the client after a rebounce delay, at which point it is copied to
+    // mOrientation.
+    private int mPendingOrientation;
+
+    private OrientationListener mListener;
+
+    // Device orientation
+    public static final int ORIENTATION_UNKNOWN = 0;
+    public static final int ORIENTATION_VERTICAL = 1;
+    public static final int ORIENTATION_HORIZONTAL = 2;
+
+    private static final int ORIENTATION_CHANGED = 1234;
+
+    private static final int VERTICAL_DEBOUNCE = 100;
+    private static final int HORIZONTAL_DEBOUNCE = 500;
+    private static final double VERTICAL_ANGLE = 50.0;
+
+    public interface OrientationListener {
+        public void orientationChanged(int orientation);
+    }
+
+    public AccelerometerListener(Context context, OrientationListener listener) {
+        mListener = listener;
+        mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
+        mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
+    }
+
+    public void enable(boolean enable) {
+//        if (DEBUG)
+//            Log.d(TAG, "enable(" + enable + ")");
+        synchronized (this) {
+            if (enable) {
+                mOrientation = ORIENTATION_UNKNOWN;
+                mPendingOrientation = ORIENTATION_UNKNOWN;
+                mSensorManager.registerListener(mSensorListener, mSensor, SensorManager.SENSOR_DELAY_NORMAL);
+            } else {
+                mSensorManager.unregisterListener(mSensorListener);
+                mHandler.removeMessages(ORIENTATION_CHANGED);
+            }
+        }
+    }
+
+    private void setOrientation(int orientation) {
+        synchronized (this) {
+            if (mPendingOrientation == orientation) {
+                // Pending orientation has not changed, so do nothing.
+                return;
+            }
+
+            // Cancel any pending messages.
+            // We will either start a new timer or cancel alltogether
+            // if the orientation has not changed.
+            mHandler.removeMessages(ORIENTATION_CHANGED);
+
+            if (mOrientation != orientation) {
+                // Set timer to send an event if the orientation has changed since its
+                // previously reported value.
+                mPendingOrientation = orientation;
+                Message m = mHandler.obtainMessage(ORIENTATION_CHANGED);
+                // set delay to our debounce timeout
+                int delay = (orientation == ORIENTATION_VERTICAL ? VERTICAL_DEBOUNCE : HORIZONTAL_DEBOUNCE);
+                mHandler.sendMessageDelayed(m, delay);
+            } else {
+                // no message is pending
+                mPendingOrientation = ORIENTATION_UNKNOWN;
+            }
+        }
+    }
+
+    private void onSensorEvent(double x, double y, double z) {
+//        if (VDEBUG)
+//            Log.d(TAG, "onSensorEvent(" + x + ", " + y + ", " + z + ")");
+
+        // If some values are exactly zero, then likely the sensor is not powered up yet.
+        // ignore these events to avoid false horizontal positives.
+        if (x == 0.0 || y == 0.0 || z == 0.0)
+            return;
+
+        // magnitude of the acceleration vector projected onto XY plane
+        double xy = Math.sqrt(x * x + y * y);
+        // compute the vertical angle
+        double angle = Math.atan2(xy, z);
+        // convert to degrees
+        angle = angle * 180.0 / Math.PI;
+        int orientation = (angle > VERTICAL_ANGLE ? ORIENTATION_VERTICAL : ORIENTATION_HORIZONTAL);
+//        if (VDEBUG)
+//            Log.d(TAG, "angle: " + angle + " orientation: " + orientation);
+        setOrientation(orientation);
+    }
+
+    SensorEventListener mSensorListener = new SensorEventListener() {
+        public void onSensorChanged(SensorEvent event) {
+            onSensorEvent(event.values[0], event.values[1], event.values[2]);
+        }
+
+        public void onAccuracyChanged(Sensor sensor, int accuracy) {
+            // ignore
+        }
+    };
+
+    Handler mHandler = new AccelerometerHandler(this);
+
+    private static class AccelerometerHandler extends Handler {
+        WeakReference<AccelerometerListener> l;
+
+        AccelerometerHandler(AccelerometerListener listener) {
+            l = new WeakReference<AccelerometerListener>(listener);
+        }
+
+        public void handleMessage(Message msg) {
+            AccelerometerListener listener = l.get();
+            if (listener == null) {
+                return;
+            }
+            switch (msg.what) {
+            case ORIENTATION_CHANGED:
+                synchronized (listener) {
+                    listener.mOrientation = listener.mPendingOrientation;
+//                    if (DEBUG) {
+//                        Log.d(TAG, "orientation: "
+//                                + (listener.mOrientation == ORIENTATION_HORIZONTAL ? "horizontal"
+//                                        : (listener.mOrientation == ORIENTATION_VERTICAL ? "vertical" : "unknown")));
+//                    }
+                    listener.mListener.orientationChanged(listener.mOrientation);
+                }
+                break;
+            }
+        }
+    };
+}
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/BitmapUtils.java b/ring-android/androidtv/src/main/java/cx/ring/utils/BitmapUtils.java
new file mode 100644
index 0000000..a51c10c
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/BitmapUtils.java
@@ -0,0 +1,109 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.utils;
+
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.BitmapShader;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.graphics.RectF;
+import android.graphics.Shader;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
+
+import java.nio.ByteBuffer;
+
+/**
+ * Helper calls to manipulates Bitmaps
+ */
+public class BitmapUtils {
+
+    private static final String TAG = BitmapUtils.class.getName();
+
+    private BitmapUtils() {
+    }
+
+    @Nullable
+    public static Bitmap cropImageToCircle(@NonNull byte[] bArray) {
+        Bitmap bitmap = BitmapFactory.decodeByteArray(bArray, 0, bArray.length);
+        if (bitmap != null) {
+            return cropImageToCircle(bitmap);
+        }
+
+        return null;
+    }
+
+    @Nullable
+    public static Bitmap cropImageToCircle(@NonNull Bitmap image) {
+        int side = Math.min(image.getWidth(), image.getHeight());
+
+        final Bitmap externalBMP = Bitmap.createBitmap(side, side, Bitmap.Config.ARGB_8888);
+
+        BitmapShader shader;
+        shader = new BitmapShader(image, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
+
+        Paint paint = new Paint();
+        paint.setAntiAlias(true);
+        paint.setShader(shader);
+        Canvas internalCanvas = new Canvas(externalBMP);
+
+        Paint paintLine = new Paint();
+        paintLine.setAntiAlias(true);
+        paintLine.setDither(true);
+        paintLine.setStyle(Paint.Style.STROKE);
+        paintLine.setColor(Color.WHITE);
+        internalCanvas.drawOval(
+                new RectF(0, 0, externalBMP.getWidth(), externalBMP.getHeight()),
+                paint);
+
+        return externalBMP;
+    }
+
+    public static byte[] bitmapToBytes(Bitmap bmp) {
+        int bytes = bmp.getByteCount();
+        ByteBuffer buffer = ByteBuffer.allocate(bytes); //Create a new buffer
+        bmp.copyPixelsToBuffer(buffer); //Move the byte data to the buffer
+        return buffer.array();
+    }
+
+    public static Bitmap bytesToBitmap(byte[] imageData) {
+        if (imageData != null && imageData.length > 0) {
+            return BitmapFactory.decodeByteArray(imageData, 0, imageData.length);
+        }
+        return null;
+    }
+
+    public static Bitmap reduceBitmap(Bitmap bmp, int size) {
+        Log.d(TAG, "bitmap size before reduce " + bmp.getByteCount());
+        int height = bmp.getHeight();
+        int width = bmp.getWidth();
+        while (bmp.getByteCount() > size) {
+            height /= 2;
+            width /= 2;
+            bmp = Bitmap.createScaledBitmap(bmp, width, height, false);
+        }
+
+        Log.d(TAG, "bitmap size after reduce " + bmp.getByteCount());
+        return bmp;
+    }
+}
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/CallProximityManager.java b/ring-android/androidtv/src/main/java/cx/ring/utils/CallProximityManager.java
new file mode 100644
index 0000000..49c1256
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/CallProximityManager.java
@@ -0,0 +1,314 @@
+/*
+ *  Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Regis Montoya <r3gis.3R@gmail.com>
+ *  Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *  Additional permission under GNU GPL version 3 section 7:
+ *
+ *  If you modify this program, or any covered work, by linking or
+ *  combining it with the OpenSSL project's OpenSSL library (or a
+ *  modified version of that library), containing parts covered by the
+ *  terms of the OpenSSL or SSLeay licenses, Savoir-faire Linux Inc.
+ *  grants you additional permission to convey the resulting work.
+ *  Corresponding Source for a non-source form of such a combination
+ *  shall include the source code for the parts of OpenSSL used as well
+ *  as that of the covered work.
+ */
+package cx.ring.utils;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+import cx.ring.utils.AccelerometerListener.OrientationListener;
+
+import android.content.Context;
+import android.hardware.Sensor;
+import android.hardware.SensorEvent;
+import android.hardware.SensorEventListener;
+import android.hardware.SensorManager;
+import android.net.wifi.WifiManager;
+import android.os.PowerManager;
+import android.os.PowerManager.WakeLock;
+import android.util.Log;
+
+/**
+ * Class to manage proximity detection while in call.
+ * 
+ */
+public class CallProximityManager implements SensorEventListener, OrientationListener {
+    private static final String THIS_FILE = "CallProximityManager";
+
+    private Context mContext;
+
+    private SensorManager sensorManager;
+    private PowerManager powerManager;
+
+    // Timeout management of screen locker ui
+    // private ScreenLocker mScreenLocker;
+    private Boolean useTimeoutOverlay = null;
+
+    // Self management of proximity sensor
+    private Sensor proximitySensor;
+    private static final float PROXIMITY_THRESHOLD = 5.0f;
+    private boolean invertProximitySensor = false;
+    private boolean proximitySensorTracked = false;
+    private boolean isFirstRun = true;
+    private ProximityDirector mDirector = null;
+
+    // The hidden api that uses a wake lock
+    private WakeLock proximityWakeLock;
+
+    // The accelerometer
+    private AccelerometerListener accelerometerManager;
+    private int mOrientation;
+    private boolean accelerometerEnabled = false;
+
+    private int WAIT_FOR_PROXIMITY_NEGATIVE = 1;
+    // private final static int SCREEN_LOCKER_ACQUIRE_DELAY = "google_sdk".equals(Build.PRODUCT) ? ScreenLocker.WAIT_BEFORE_LOCK_LONG
+    // : ScreenLocker.WAIT_BEFORE_LOCK_SHORT;
+
+    private static Method powerLockReleaseIntMethod;
+
+    public interface ProximityDirector {
+        boolean shouldActivateProximity();
+        void onProximityTrackingChanged(boolean acquired);
+    }
+
+    public CallProximityManager(Context context, ProximityDirector director) {
+        mContext = context;
+        mDirector = director;
+        // mScreenLocker = screenLocker;
+
+        sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
+        powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+        accelerometerManager = new AccelerometerListener(context, this);
+
+        // Try to detect the hidden api
+        if (powerManager != null) {
+            WifiManager wman = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
+
+            // Try to use powermanager proximity sensor
+            try {
+                boolean supportProximity = false;
+                Field f = PowerManager.class.getDeclaredField("PROXIMITY_SCREEN_OFF_WAKE_LOCK");
+                int proximityScreenOffWakeLock = (Integer) f.get(null);
+                if (Compatibility.isCompatible(17)) {
+                    // Changes of the private API on android 4.2
+                    Method method = powerManager.getClass().getDeclaredMethod("isWakeLockLevelSupported", int.class);
+                    supportProximity = (Boolean) method.invoke(powerManager, proximityScreenOffWakeLock);
+                    Log.d(THIS_FILE, "Use 4.2 detection way for proximity sensor detection. Result is " + supportProximity);
+                } else {
+                    Method method = powerManager.getClass().getDeclaredMethod("getSupportedWakeLockFlags");
+                    int supportedFlags = (Integer) method.invoke(powerManager);
+                    Log.d(THIS_FILE, "Proxmity flags supported : " + supportedFlags);
+                    supportProximity = ((supportedFlags & proximityScreenOffWakeLock) != 0x0);
+                }
+                if (supportProximity) {
+                    Log.d(THIS_FILE, "We can use native screen locker !!");
+                    proximityWakeLock = powerManager.newWakeLock(proximityScreenOffWakeLock, "org.sflphone.CallProximity");
+                    proximityWakeLock.setReferenceCounted(false);
+                }
+
+            } catch (Exception e) {
+                Log.d(THIS_FILE, "Impossible to get power manager supported wake lock flags ");
+            }
+            if (powerLockReleaseIntMethod == null) {
+                try {
+                    powerLockReleaseIntMethod = proximityWakeLock.getClass().getDeclaredMethod("release", int.class);
+
+                } catch (Exception e) {
+                    Log.d(THIS_FILE, "Impossible to get power manager release with it");
+                }
+
+            }
+        }
+
+        // Try to detect a proximity sensor as fallback
+        if (proximityWakeLock == null) {
+            proximitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
+            // invertProximitySensor = SipConfigManager.getPreferenceBooleanValue(context, SipConfigManager.INVERT_PROXIMITY_SENSOR);
+        }
+
+    }
+
+    public synchronized void startTracking() {
+        // If we should manage it ourselves
+        if (proximitySensor != null && !proximitySensorTracked) {
+            // Fall back to manual mode
+            isFirstRun = true;
+            Log.d(THIS_FILE, "Register sensor");
+            sensorManager.registerListener(this, proximitySensor, SensorManager.SENSOR_DELAY_NORMAL);
+            proximitySensorTracked = true;
+        }
+        if (!accelerometerEnabled) {
+            accelerometerManager.enable(true);
+            accelerometerEnabled = true;
+        }
+    }
+
+    public synchronized void stopTracking() {
+        if (proximitySensor != null && proximitySensorTracked) {
+            proximitySensorTracked = false;
+            sensorManager.unregisterListener(this);
+            Log.d(THIS_FILE, "Unregister to sensor is done !!!");
+        }
+        if (accelerometerEnabled) {
+            accelerometerManager.enable(false);
+            accelerometerEnabled = false;
+        }
+        // mScreenLocker.tearDown();
+    }
+
+    @Override
+    public void onAccuracyChanged(Sensor sensor, int accuracy) {
+    }
+
+    @Override
+    public void onSensorChanged(SensorEvent event) {
+        // Log.d(THIS_FILE, "Tracked : "+proximitySensorTracked);
+        if (proximitySensorTracked && !isFirstRun) {
+            float distance = event.values[0];
+            boolean active = (distance >= 0.0 && distance < PROXIMITY_THRESHOLD && distance < event.sensor.getMaximumRange());
+            if (invertProximitySensor) {
+                active = !active;
+            }
+            Log.d(THIS_FILE, "Distance is now " + distance);
+
+            boolean isValidCallState = false;
+            if (mDirector != null) {
+                isValidCallState = mDirector.shouldActivateProximity();
+            }
+
+            if (isValidCallState && active) {
+                // mScreenLocker.show();
+                if (mDirector != null) {
+                    mDirector.onProximityTrackingChanged(true);
+                }
+            } else {
+                // mScreenLocker.hide();
+                if (mDirector != null) {
+                    mDirector.onProximityTrackingChanged(false);
+                }
+            }
+
+        }
+        if (isFirstRun) {
+            isFirstRun = false;
+        }
+    }
+
+    private boolean isProximityWakeHeld = false;
+
+    /**
+     * Release any lock taken by the proximity sensor
+     */
+    public synchronized void release(int flag) {
+        if (proximityWakeLock != null && isProximityWakeHeld) {
+            boolean usedNewRelease = false;
+            if (powerLockReleaseIntMethod != null) {
+                try {
+                    powerLockReleaseIntMethod.invoke(proximityWakeLock, flag);
+                    usedNewRelease = true;
+                    // Log.d(THIS_FILE, "CALL NEW RELEASE WITH FLAG " + flag);
+                } catch (Exception e) {
+                    Log.d(THIS_FILE, "Error calling new release method ", e);
+                }
+            }
+            if (!usedNewRelease) {
+                proximityWakeLock.release();
+            }
+            isProximityWakeHeld = false;
+        }
+
+        if (shouldUseTimeoutOverlay()) {
+            // mScreenLocker.hide();
+        }
+        // Notify
+        if (mDirector != null) {
+            mDirector.onProximityTrackingChanged(false);
+        }
+    }
+
+    public synchronized void acquire() {
+        if (proximityWakeLock != null && !isProximityWakeHeld) {
+            proximityWakeLock.acquire();
+            isProximityWakeHeld = true;
+        }
+        if (shouldUseTimeoutOverlay()) {
+            // mScreenLocker.delayedLock(SCREEN_LOCKER_ACQUIRE_DELAY);
+        }
+        // Notify
+        if (mDirector != null) {
+            mDirector.onProximityTrackingChanged(true);
+        }
+    }
+
+    /**
+     * Update proximity lock mode depending on current state
+     */
+    public synchronized void updateProximitySensorMode() {
+
+        // We do not keep the screen off when the user is outside in-call screen and we are
+        // horizontal, but we do not force it on when we become horizontal until the
+        // proximity sensor goes negative.
+        boolean horizontal = (mOrientation == AccelerometerListener.ORIENTATION_HORIZONTAL);
+
+        boolean activeRegardingCalls = false;
+        if (mDirector != null) {
+            activeRegardingCalls = mDirector.shouldActivateProximity();
+        }
+
+        //Log.d(THIS_FILE, "Horizontal : " + horizontal + " and activate for calls " + activeRegardingCalls);
+        if (activeRegardingCalls && !horizontal) {
+            // Phone is in use! Arrange for the screen to turn off
+            // automatically when the sensor detects a close object.
+            acquire();
+        } else {
+            // Phone is either idle, or ringing. We don't want any
+            // special proximity sensor behavior in either case.
+            int flags = (!horizontal ? 0 : WAIT_FOR_PROXIMITY_NEGATIVE);
+            release(flags);
+        }
+    }
+
+    /**
+     * Should the application display the overlay after a timeout.
+     * 
+     * @return false if we are in table mode or if proximity sensor can be used
+     */
+    private boolean shouldUseTimeoutOverlay() {
+        if (useTimeoutOverlay == null) {
+            useTimeoutOverlay = proximitySensor == null && proximityWakeLock == null && !Compatibility.isTabletScreen(mContext);
+        }
+        return useTimeoutOverlay;
+    }
+
+    public void restartTimer() {
+        if (shouldUseTimeoutOverlay()) {
+            // mScreenLocker.delayedLock(ScreenLocker.WAIT_BEFORE_LOCK_LONG);
+        }
+    }
+
+    @Override
+    public void orientationChanged(int orientation) {
+        mOrientation = orientation;
+        updateProximitySensorMode();
+    }
+
+}
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/CircleTransform.java b/ring-android/androidtv/src/main/java/cx/ring/utils/CircleTransform.java
new file mode 100644
index 0000000..21be7bb
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/CircleTransform.java
@@ -0,0 +1,72 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Hadrien De Sousa <hadrien.desousa@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.utils;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapShader;
+import android.graphics.Canvas;
+import android.graphics.Paint;
+
+import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
+import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
+
+public class CircleTransform extends BitmapTransformation {
+
+    public CircleTransform(Context context) {
+        super(context);
+    }
+
+    @Override
+    protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
+        return circleCrop(pool, toTransform);
+    }
+
+    private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {
+        if (source == null) {
+            return null;
+        }
+
+        int size = Math.min(source.getWidth(), source.getHeight());
+        int x = (source.getWidth() - size) / 2;
+        int y = (source.getHeight() - size) / 2;
+
+        Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);
+
+        Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);
+        if (result == null) {
+            result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);
+        }
+
+        Canvas canvas = new Canvas(result);
+        Paint paint = new Paint();
+        paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
+        paint.setAntiAlias(true);
+        float radius = size / 2f;
+        canvas.drawCircle(radius, radius, radius, paint);
+        return result;
+    }
+
+    @Override
+    public String getId() {
+        return getClass().getName();
+    }
+}
+
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/ClipboardHelper.java b/ring-android/androidtv/src/main/java/cx/ring/utils/ClipboardHelper.java
new file mode 100644
index 0000000..c0fd294
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/ClipboardHelper.java
@@ -0,0 +1,63 @@
+/*
+ *  Copyright (C) 2015-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.utils;
+
+import android.app.Activity;
+import android.content.ClipData;
+import android.content.ClipboardManager;
+import android.content.Context;
+import android.text.TextUtils;
+import android.util.Log;
+
+import cx.ring.BuildConfig;
+
+public class ClipboardHelper {
+    public static final String TAG = ClipboardHelper.class.getSimpleName();
+    public static final String COPY_CALL_CONTACT_NUMBER_CLIP_LABEL =
+            BuildConfig.APPLICATION_ID + ".clipboard.contactNumber";
+
+    public interface ClipboardHelperCallback {
+        void clipBoardDidCopyNumber(String copiedNumber);
+    }
+
+    public static void copyNumberToClipboard(final Activity activity,
+                                             final String number,
+                                             final ClipboardHelperCallback callback) {
+        if (TextUtils.isEmpty(number)) {
+            Log.d(TAG, "copyNumberToClipboard: number is null");
+            return;
+        }
+
+        if (activity == null) {
+            Log.d(TAG, "copyNumberToClipboard: activity is null");
+            return;
+        }
+
+        ClipboardManager clipboard = (ClipboardManager) activity
+                .getSystemService(Context.CLIPBOARD_SERVICE);
+        ClipData clip = android.content.ClipData.newPlainText(COPY_CALL_CONTACT_NUMBER_CLIP_LABEL,
+                number);
+        clipboard.setPrimaryClip(clip);
+        if (callback != null) {
+            callback.clipBoardDidCopyNumber(number);
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/Compatibility.java b/ring-android/androidtv/src/main/java/cx/ring/utils/Compatibility.java
new file mode 100644
index 0000000..8235221
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/Compatibility.java
@@ -0,0 +1,404 @@
+/*
+ *  Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Regis Montoya <r3gis.3R@gmail.com>
+ *  Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ *  Additional permission under GNU GPL version 3 section 7:
+ *
+ *  If you modify this program, or any covered work, by linking or
+ *  combining it with the OpenSSL project's OpenSSL library (or a
+ *  modified version of that library), containing parts covered by the
+ *  terms of the OpenSSL or SSLeay licenses, Savoir-faire Linux Inc.
+ *  grants you additional permission to convey the resulting work.
+ *  Corresponding Source for a non-source form of such a combination
+ *  shall include the source code for the parts of OpenSSL used as well
+ *  as that of the covered work.
+ */
+
+package cx.ring.utils;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.lang.reflect.Field;
+import java.util.regex.Pattern;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.res.Configuration;
+import android.media.AudioManager;
+import android.media.MediaRecorder.AudioSource;
+import android.net.Uri;
+import android.os.Environment;
+import android.util.Log;
+
+@SuppressWarnings("deprecation")
+public final class Compatibility {
+
+    private Compatibility() {
+    }
+
+    private static final String THIS_FILE = "Compat";
+
+    public static int getApiLevel() {
+        return android.os.Build.VERSION.SDK_INT;
+    }
+
+    public static boolean isCompatible(int apiLevel) {
+        return android.os.Build.VERSION.SDK_INT >= apiLevel;
+    }
+
+    /**
+     * Get the stream id for in call track. Can differ on some devices. Current device for which it's different :
+     * 
+     * @return
+     */
+    public static int getInCallStream(boolean requestBluetooth) {
+        /* Archos 5IT */
+        if (android.os.Build.BRAND.equalsIgnoreCase("archos") && android.os.Build.DEVICE.equalsIgnoreCase("g7a")) {
+            // Since archos has no voice call capabilities, voice call stream is
+            // not implemented
+            // So we have to choose the good stream tag, which is by default
+            // falled back to music
+            return AudioManager.STREAM_MUSIC;
+        }
+        if (requestBluetooth) {
+            return 6; /* STREAM_BLUETOOTH_SCO -- Thx @Stefan for the contrib */
+        }
+
+        // return AudioManager.STREAM_MUSIC;
+        return AudioManager.STREAM_VOICE_CALL;
+    }
+
+    public static boolean shouldUseRoutingApi() {
+        Log.d(THIS_FILE, "Current device " + android.os.Build.BRAND + " - " + android.os.Build.DEVICE);
+
+        // HTC evo 4G
+        if (android.os.Build.PRODUCT.equalsIgnoreCase("htc_supersonic")) {
+            return true;
+        }
+
+        // ZTE joe
+        if (android.os.Build.DEVICE.equalsIgnoreCase("joe")) {
+            return true;
+        }
+
+        // Samsung GT-S5830
+        return android.os.Build.DEVICE.toUpperCase().startsWith("GT-S");
+    }
+
+    public static boolean shouldUseModeApi() {
+
+        // ZTE blade et joe
+        if (android.os.Build.DEVICE.equalsIgnoreCase("blade") || android.os.Build.DEVICE.equalsIgnoreCase("joe")) {
+            return true;
+        }
+        // Samsung GT-S5360 GT-S5830 GT-S6102 ... probably all..
+        if (android.os.Build.DEVICE.toUpperCase().startsWith("GT-") || android.os.Build.PRODUCT.toUpperCase().startsWith("GT-")
+                || android.os.Build.DEVICE.toUpperCase().startsWith("YP-")) {
+            return true;
+        }
+
+        // HTC evo 4G
+        if (android.os.Build.PRODUCT.equalsIgnoreCase("htc_supersonic")) {
+            return true;
+        }
+        // LG P500, Optimus V
+        if (android.os.Build.DEVICE.toLowerCase().startsWith("thunder")) {
+            return true;
+        }
+        // LG-E720(b)
+        if (android.os.Build.MODEL.toUpperCase().startsWith("LG-E720") && !Compatibility.isCompatible(9)) {
+            return true;
+        }
+        // LG-LS840
+        if (android.os.Build.DEVICE.toLowerCase().startsWith("cayman")) {
+            return true;
+        }
+
+        // Huawei
+        if (android.os.Build.DEVICE.equalsIgnoreCase("U8150") || android.os.Build.DEVICE.equalsIgnoreCase("U8110")
+                || android.os.Build.DEVICE.equalsIgnoreCase("U8120") || android.os.Build.DEVICE.equalsIgnoreCase("U8100")
+                || android.os.Build.PRODUCT.equalsIgnoreCase("U8655")) {
+            return true;
+        }
+
+        // Moto defy mini
+        if (android.os.Build.MODEL.equalsIgnoreCase("XT320")) {
+            return true;
+        }
+
+        // Alcatel
+        if (android.os.Build.DEVICE.toUpperCase().startsWith("ONE_TOUCH_993D")) {
+            return true;
+        }
+
+        // N4
+        return android.os.Build.DEVICE.toUpperCase().startsWith("MAKO");
+
+    }
+
+    public static String guessInCallMode() {
+        // New api for 2.3.3 is not available on galaxy S II :(
+        if (!isCompatible(11) && android.os.Build.DEVICE.toUpperCase().startsWith("GT-I9100")) {
+            return Integer.toString(AudioManager.MODE_NORMAL);
+        }
+
+        if (android.os.Build.BRAND.equalsIgnoreCase("sdg") || isCompatible(10)) {
+            // Note that in APIs this is only available from level 11.
+            return "3";
+        }
+        if (android.os.Build.DEVICE.equalsIgnoreCase("blade")) {
+            return Integer.toString(AudioManager.MODE_IN_CALL);
+        }
+
+        if (!isCompatible(5)) {
+            return Integer.toString(AudioManager.MODE_IN_CALL);
+        }
+
+        return Integer.toString(AudioManager.MODE_NORMAL);
+    }
+
+    public static String getDefaultMicroSource() {
+        // Except for galaxy S II :(
+        if (!isCompatible(11) && android.os.Build.DEVICE.toUpperCase().startsWith("GT-I9100")) {
+            return Integer.toString(AudioSource.MIC);
+        }
+
+        if (isCompatible(10)) {
+            // Note that in APIs this is only available from level 11.
+            // VOICE_COMMUNICATION
+            return Integer.toString(0x7);
+        }
+        /*
+         * Too risky in terms of regressions else if (isCompatible(4)) { // VOICE_CALL return 0x4; }
+         */
+        /*
+         * if(android.os.Build.MODEL.equalsIgnoreCase("X10i")) { // VOICE_CALL return Integer.toString(0x4); }
+         */
+        /*
+         * Not relevant anymore, atrix I tested sounds fine with that if(android.os.Build.DEVICE.equalsIgnoreCase("olympus")) { //Motorola atrix bug
+         * // CAMCORDER return Integer.toString(0x5); }
+         */
+
+        return Integer.toString(AudioSource.DEFAULT);
+    }
+
+    public static String getDefaultFrequency() {
+        if (android.os.Build.DEVICE.equalsIgnoreCase("olympus")) {
+            // Atrix bug
+            return "32000";
+        }
+        if (android.os.Build.DEVICE.toUpperCase().equals("GT-P1010")) {
+            // Galaxy tab see issue 932
+            return "32000";
+        }
+
+        return isCompatible(4) ? "16000" : "8000";
+    }
+
+    public static String getCpuAbi() {
+        if (isCompatible(4)) {
+            Field field;
+            try {
+                field = android.os.Build.class.getField("CPU_ABI");
+                return field.get(null).toString();
+            } catch (Exception e) {
+                Log.w(THIS_FILE, "Announce to be android 1.6 but no CPU ABI field", e);
+            }
+
+        }
+        return "armeabi";
+    }
+
+    public final static int getNumCores() {
+        // Private Class to display only CPU devices in the directory listing
+        class CpuFilter implements FileFilter {
+            @Override
+            public boolean accept(File pathname) {
+                // Check if filename is "cpu", followed by a single digit number
+                if (Pattern.matches("cpu[0-9]", pathname.getName())) {
+                    return true;
+                }
+                return false;
+            }
+        }
+        try {
+            // Get directory containing CPU info
+            File dir = new File("/sys/devices/system/cpu/");
+            // Filter to only list the devices we care about
+            File[] files = dir.listFiles(new CpuFilter());
+            // Return the number of cores (virtual CPU devices)
+            return files.length;
+        } catch (Exception e) {
+            return Runtime.getRuntime().availableProcessors();
+        }
+    }
+
+    private static boolean needPspWorkaround() {
+        // New api for 2.3 does not work on Incredible S
+        if (android.os.Build.DEVICE.equalsIgnoreCase("vivo")) {
+            return true;
+        }
+
+        // New API for android 2.3 should be able to manage this but do only for
+        // honeycomb cause seems not correctly supported by all yet
+        if (isCompatible(11)) {
+            return false;
+        }
+
+        // All htc except....
+        if (android.os.Build.PRODUCT.toLowerCase().startsWith("htc") || android.os.Build.BRAND.toLowerCase().startsWith("htc")
+                || android.os.Build.PRODUCT.toLowerCase().equalsIgnoreCase("inc") /*
+                                                                                   * For Incredible
+                                                                                   */
+                || android.os.Build.DEVICE.equalsIgnoreCase("passion") /* N1 */) {
+            if (android.os.Build.DEVICE.equalsIgnoreCase("hero") /* HTC HERO */
+                    || android.os.Build.DEVICE.equalsIgnoreCase("magic") /*
+                                                                          * Magic Aka Dev G2
+                                                                          */
+                    || android.os.Build.DEVICE.equalsIgnoreCase("tatoo") /* Tatoo */
+                    || android.os.Build.DEVICE.equalsIgnoreCase("dream") /*
+                                                                          * Dream Aka Dev G1
+                                                                          */
+                    || android.os.Build.DEVICE.equalsIgnoreCase("legend") /* Legend */
+
+            ) {
+                return false;
+            }
+
+            // Older than 2.3 has no chance to have the new full perf wifi mode
+            // working since does not exists
+            if (!isCompatible(9)) {
+                return true;
+            } else {
+                // N1 is fine with that
+                if (android.os.Build.DEVICE.equalsIgnoreCase("passion")) {
+                    return false;
+                }
+                return true;
+            }
+
+        }
+        // Dell streak
+        if (android.os.Build.BRAND.toLowerCase().startsWith("dell") && android.os.Build.DEVICE.equalsIgnoreCase("streak")) {
+            return true;
+        }
+        // Motorola milestone 1 and 2 & motorola droid & defy not under 2.3
+        if ((android.os.Build.DEVICE.toLowerCase().contains("milestone2") || android.os.Build.BOARD.toLowerCase().contains("sholes")
+                || android.os.Build.PRODUCT.toLowerCase().contains("sholes") || android.os.Build.DEVICE.equalsIgnoreCase("olympus") || android.os.Build.DEVICE
+                .toLowerCase().contains("umts_jordan")) && !isCompatible(9)) {
+            return true;
+        }
+        // Moto defy mini
+        if (android.os.Build.MODEL.equalsIgnoreCase("XT320")) {
+            return true;
+        }
+
+        // Alcatel ONE touch
+        if (android.os.Build.DEVICE.startsWith("one_touch_990")) {
+            return true;
+        }
+
+        return false;
+    }
+
+    private static boolean needToneWorkaround() {
+        if (android.os.Build.PRODUCT.toLowerCase().startsWith("gt-i5800") || android.os.Build.PRODUCT.toLowerCase().startsWith("gt-i5801")
+                || android.os.Build.PRODUCT.toLowerCase().startsWith("gt-i9003")) {
+            return true;
+        }
+        return false;
+    }
+
+    private static boolean needSGSWorkaround() {
+        if (isCompatible(9)) {
+            return false;
+        }
+        if (android.os.Build.DEVICE.toUpperCase().startsWith("GT-I9000") || android.os.Build.DEVICE.toUpperCase().startsWith("GT-P1000")) {
+            return true;
+        }
+        return false;
+    }
+
+    private static boolean needWebRTCImplementation() {
+        if (android.os.Build.DEVICE.toLowerCase().contains("droid2")) {
+            return true;
+        }
+        if (android.os.Build.MODEL.toLowerCase().contains("droid bionic")) {
+            return true;
+        }
+        if (android.os.Build.DEVICE.toLowerCase().contains("sunfire")) {
+            return true;
+        }
+        // Huawei Y300
+        if (android.os.Build.DEVICE.equalsIgnoreCase("U8833")) {
+            return true;
+        }
+        return false;
+    }
+
+    public static boolean shouldSetupAudioBeforeInit() {
+        // Setup for GT / GS samsung devices.
+        if (android.os.Build.DEVICE.toLowerCase().startsWith("gt-") || android.os.Build.PRODUCT.toLowerCase().startsWith("gt-")) {
+            return true;
+        }
+        return false;
+    }
+
+    private static boolean shouldFocusAudio() {
+        /* HTC One X */
+        if (android.os.Build.DEVICE.toLowerCase().startsWith("endeavoru") || android.os.Build.DEVICE.toLowerCase().startsWith("evita")) {
+            return false;
+        }
+
+        if (android.os.Build.DEVICE.toUpperCase().startsWith("GT-P7510") && isCompatible(15)) {
+            return false;
+        }
+        return true;
+    }
+
+    public static boolean isTabletScreen(Context ctxt) {
+        boolean isTablet = false;
+        if (!isCompatible(4)) {
+            return false;
+        }
+        Configuration cfg = ctxt.getResources().getConfiguration();
+        int screenLayoutVal = 0;
+        try {
+            Field f = Configuration.class.getDeclaredField("screenLayout");
+            screenLayoutVal = (Integer) f.get(cfg);
+        } catch (Exception e) {
+            return false;
+        }
+        int screenLayout = (screenLayoutVal & 0xF);
+        // 0xF = SCREENLAYOUT_SIZE_MASK but avoid 1.5 incompat doing that
+        if (screenLayout == 0x3 || screenLayout == 0x4) {
+            // 0x3 = SCREENLAYOUT_SIZE_LARGE but avoid 1.5 incompat doing that
+            // 0x4 = SCREENLAYOUT_SIZE_XLARGE but avoid 1.5 incompat doing that
+            isTablet = true;
+        }
+
+        return isTablet;
+    }
+
+}
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/ContentUriHandler.java b/ring-android/androidtv/src/main/java/cx/ring/utils/ContentUriHandler.java
new file mode 100644
index 0000000..0a0ac60
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/ContentUriHandler.java
@@ -0,0 +1,39 @@
+/**
+ * Copyright (C) 2016 by Savoir-faire Linux
+ * Author : Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ * <p>
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ * <p>
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ * *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package cx.ring.utils;
+
+import android.net.Uri;
+
+import cx.ring.BuildConfig;
+
+/**
+ * This class distributes content uri used to pass along data in the app
+ */
+public class ContentUriHandler {
+
+    private static final Uri AUTHORITY_URI = Uri.parse("content://" + BuildConfig.APPLICATION_ID);
+
+    public static final Uri CONFERENCE_CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "conferences");
+    public static final Uri CALL_CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "calls");
+    public static final Uri CONVERSATION_CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "conversations");
+    public static final Uri ACCOUNTS_CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "accounts");
+
+    private ContentUriHandler() {
+        // hidden constructor
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/FileUtils.java b/ring-android/androidtv/src/main/java/cx/ring/utils/FileUtils.java
new file mode 100644
index 0000000..d4aee98
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/FileUtils.java
@@ -0,0 +1,167 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Aline Bonnet <aline.bonnet@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package cx.ring.utils;
+
+import android.content.ContentUris;
+import android.content.Context;
+import android.content.res.AssetManager;
+import android.database.Cursor;
+import android.net.Uri;
+import android.os.Build;
+import android.os.Environment;
+import android.provider.DocumentsContract;
+import android.provider.MediaStore;
+import android.util.Log;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class FileUtils {
+
+    static final String TAG = FileUtils.class.getSimpleName();
+
+    public static boolean copyAssetFolder(AssetManager assetManager, String fromAssetPath, String toPath) {
+        try {
+            String[] files = assetManager.list(fromAssetPath);
+            File fileTmp = new File(toPath);
+            if (!fileTmp.exists()) {
+                fileTmp.mkdirs();
+            }
+            Log.d(TAG, "Creating :" + toPath);
+            boolean res = true;
+            for (String file : files)
+                if (file.contains("")) {
+                    Log.d(TAG, "Copying file :" + fromAssetPath + "/" + file + " to " + toPath + "/" + file);
+                    res &= copyAsset(assetManager, fromAssetPath + "/" + file, toPath + "/" + file);
+                } else {
+                    Log.d(TAG, "Copying folder :" + fromAssetPath + "/" + file + " to " + toPath + "/" + file);
+                    res &= copyAssetFolder(assetManager, fromAssetPath + "/" + file, toPath + "/" + file);
+                }
+            return res;
+        } catch (Exception e) {
+            Log.e(TAG, "Error while copying asset folder", e);
+            return false;
+        }
+    }
+
+    private static boolean copyAsset(AssetManager assetManager, String fromAssetPath, String toPath) {
+        InputStream in;
+        OutputStream out;
+        try {
+            in = assetManager.open(fromAssetPath);
+            new File(toPath).createNewFile();
+            out = new FileOutputStream(toPath);
+            copyFile(in, out);
+            in.close();
+            out.flush();
+            out.close();
+            return true;
+        } catch (Exception e) {
+            Log.e(TAG, "Error while copying asset", e);
+            return false;
+        }
+    }
+
+    private static void copyFile(InputStream in, OutputStream out) throws IOException {
+        byte[] buffer = new byte[1024];
+        int read;
+        while ((read = in.read(buffer)) != -1) {
+            out.write(buffer, 0, read);
+        }
+    }
+
+    public static String getRealPathFromURI(Context context, Uri uri) {
+        String path = null;
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && DocumentsContract.isDocumentUri(context, uri)) {
+            if (isExternalStorageDocument(uri)) {
+                final String docId = DocumentsContract.getDocumentId(uri);
+                final String[] split = docId.split(":");
+                final String type = split[0];
+                if ("primary".equalsIgnoreCase(type)) {
+                    path = Environment.getExternalStorageDirectory() + "/" + split[1];
+                }
+            } else if (isDownloadsDocument(uri)) {
+                final String id = DocumentsContract.getDocumentId(uri);
+                final Uri contentUri = ContentUris.withAppendedId(
+                        Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
+                path = getDataColumn(context, contentUri, null, null);
+            } else if (isMediaDocument(uri)) {
+                final String docId = DocumentsContract.getDocumentId(uri);
+                final String[] split = docId.split(":");
+                final String type = split[0];
+                Uri contentUri = null;
+                if ("image".equals(type)) {
+                    contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
+                } else if ("video".equals(type)) {
+                    contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
+                } else if ("audio".equals(type)) {
+                    contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
+                }
+                final String selection = "_id=?";
+                final String[] selectionArgs = new String[]{split[1]};
+                path = getDataColumn(context, contentUri, selection, selectionArgs);
+            }
+        } else if ("content".equalsIgnoreCase(uri.getScheme())) {
+            path = getDataColumn(context, uri, null, null);
+        } else if ("file".equalsIgnoreCase(uri.getScheme())) {
+            path = uri.getPath();
+        }
+        return path;
+    }
+
+    private static boolean isExternalStorageDocument(Uri uri) {
+        return "com.android.externalstorage.documents".equals(uri.getAuthority());
+    }
+
+    private static boolean isDownloadsDocument(Uri uri) {
+        return "com.android.providers.downloads.documents".equals(uri.getAuthority());
+    }
+
+    private static boolean isMediaDocument(Uri uri) {
+        return "com.android.providers.media.documents".equals(uri.getAuthority());
+    }
+
+    private static String getDataColumn(Context context, Uri uri, String selection, String[] selectionArgs) {
+        Cursor cursor = null;
+        String path = null;
+        final String column = "_data";
+        final String[] projection = {column};
+        try {
+            cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs, null);
+            if (cursor != null && cursor.moveToFirst()) {
+                final int column_index = cursor.getColumnIndexOrThrow(column);
+                path = cursor.getString(column_index);
+            }
+        } catch (Exception e) {
+            Log.e(TAG, "Error while saving the ringtone", e);
+        } finally {
+            if (cursor != null)
+                cursor.close();
+        }
+        return path;
+    }
+
+    public static String ringtonesPath(Context context) {
+        return context.getFilesDir().getAbsolutePath() + File.separator + "ringtones";
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/KeyboardVisibilityManager.java b/ring-android/androidtv/src/main/java/cx/ring/utils/KeyboardVisibilityManager.java
new file mode 100644
index 0000000..f982e5b
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/KeyboardVisibilityManager.java
@@ -0,0 +1,72 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.utils;
+
+import android.app.Activity;
+import android.content.Context;
+import android.util.Log;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+
+public class KeyboardVisibilityManager {
+    public final static String TAG = KeyboardVisibilityManager.class.getSimpleName();
+
+    public static void showKeyboard(final Activity activity,
+                                    final View viewToFocus,
+                                    final int tag) {
+        if (null == activity) {
+            Log.d(TAG, "showKeyboard: no activity");
+            return;
+        }
+
+        if (null == viewToFocus) {
+            Log.d(TAG, "showKeyboard: no viewToFocus");
+            return;
+        }
+
+        Log.d(TAG, "showKeyboard: showing keyboard");
+        viewToFocus.requestFocus();
+        InputMethodManager imm = (InputMethodManager)
+                activity.getSystemService(Context.INPUT_METHOD_SERVICE);
+        imm.showSoftInput(viewToFocus, tag);
+    }
+
+    @SuppressWarnings("unused")
+    public static void hideKeyboard(final Activity activity,
+                                    final int tag) {
+        if (null == activity) {
+            Log.d(TAG, "hideKeyboard: no activity");
+            return;
+        }
+
+        final View currentFocus = activity.getCurrentFocus();
+        if (currentFocus != null) {
+            Log.d(TAG, "hideKeyboard: hiding keyboard");
+            currentFocus.clearFocus();
+            InputMethodManager inputManager =
+                    (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
+            inputManager.hideSoftInputFromWindow(
+                    currentFocus.getWindowToken(),
+                    tag
+            );
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/MediaManager.java b/ring-android/androidtv/src/main/java/cx/ring/utils/MediaManager.java
new file mode 100644
index 0000000..5408792
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/MediaManager.java
@@ -0,0 +1,83 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.utils;
+
+import android.content.Context;
+import android.media.AudioManager;
+import android.media.AudioManager.OnAudioFocusChangeListener;
+import android.os.Handler;
+import android.util.Log;
+import cx.ring.utils.bluetooth.BluetoothWrapper;
+
+public class MediaManager implements OnAudioFocusChangeListener, BluetoothWrapper.BluetoothChangeListener {
+
+    private static final String TAG = MediaManager.class.getSimpleName();
+    public final AudioManager audioManager;
+    private final Ringer ringer;
+
+    public MediaManager(Context c) {
+        audioManager = (AudioManager) c.getSystemService(Context.AUDIO_SERVICE);
+        
+        ringer = new Ringer(c);
+    }
+
+    public void obtainAudioFocus(boolean requestSpeakerOn) {
+        audioManager.requestAudioFocus(this, Compatibility.getInCallStream(false), AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
+        if (!audioManager.isWiredHeadsetOn()){
+            audioManager.setSpeakerphoneOn(requestSpeakerOn);
+        }
+    }
+
+    @Override
+    public void onAudioFocusChange(int arg0) {
+        Log.i(TAG, "onAudioFocusChange " + arg0);
+    }
+
+    public void abandonAudioFocus() {
+        audioManager.abandonAudioFocus(this);
+        if (audioManager.isSpeakerphoneOn()) {
+            audioManager.setSpeakerphoneOn(false);
+        }
+        audioManager.setMode(AudioManager.MODE_NORMAL);
+    }
+
+    /**5
+     * Start ringing announce for a given contact.
+     * It will also focus audio for us.
+     */
+    synchronized public void startRing() {
+        ringer.ring();
+    }
+    
+    /**
+     * Stop all ringing. <br/>
+     * Warning, this will not unfocus audio.
+     */
+    synchronized public void stopRing() {
+        ringer.stopRing();
+    }
+
+    @Override
+    public void onBluetoothStateChanged(int status) {
+    }
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/NetworkUtils.java b/ring-android/androidtv/src/main/java/cx/ring/utils/NetworkUtils.java
new file mode 100644
index 0000000..49344e2
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/NetworkUtils.java
@@ -0,0 +1,105 @@
+/*
+ *  Copyright (C) 2017 Savoir-faire Linux Inc.
+ *
+ *  Author: Hadrien Desousa <hadrien.desousa@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package cx.ring.utils;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.telephony.TelephonyManager;
+
+public final class NetworkUtils {
+    /**
+     * Get the network info
+     *
+     * @param context
+     * @return
+     */
+    public static NetworkInfo getNetworkInfo(Context context) {
+        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        return connectivityManager.getActiveNetworkInfo();
+    }
+
+    /**
+     * Check if there is fast connectivity
+     *
+     * @param context
+     * @return
+     */
+    public static boolean isConnectedFast(Context context) {
+        NetworkInfo info = NetworkUtils.getNetworkInfo(context);
+        return (info != null && info.isConnected() && NetworkUtils.isConnectionFast(info.getType(), info.getSubtype()));
+    }
+
+    /**
+     * Check if the connection is fast
+     *
+     * @param type
+     * @param subType
+     * @return
+     */
+    public static boolean isConnectionFast(int type, int subType) {
+        if (type == ConnectivityManager.TYPE_WIFI) {
+            return true;
+        } else if (type == ConnectivityManager.TYPE_MOBILE) {
+            switch (subType) {
+                case TelephonyManager.NETWORK_TYPE_1xRTT:
+                    return false; // ~ 50-100 kbps
+                case TelephonyManager.NETWORK_TYPE_CDMA:
+                    return false; // ~ 14-64 kbps
+                case TelephonyManager.NETWORK_TYPE_EDGE:
+                    return false; // ~ 50-100 kbps
+                case TelephonyManager.NETWORK_TYPE_EVDO_0:
+                    return true; // ~ 400-1000 kbps
+                case TelephonyManager.NETWORK_TYPE_EVDO_A:
+                    return true; // ~ 600-1400 kbps
+                case TelephonyManager.NETWORK_TYPE_GPRS:
+                    return false; // ~ 100 kbps
+                case TelephonyManager.NETWORK_TYPE_HSDPA:
+                    return true; // ~ 2-14 Mbps
+                case TelephonyManager.NETWORK_TYPE_HSPA:
+                    return true; // ~ 700-1700 kbps
+                case TelephonyManager.NETWORK_TYPE_HSUPA:
+                    return true; // ~ 1-23 Mbps
+                case TelephonyManager.NETWORK_TYPE_UMTS:
+                    return true; // ~ 400-7000 kbps
+            /*
+             * Above API level 7, make sure to set android:targetSdkVersion
+			 * to appropriate level to use these
+			 */
+                case TelephonyManager.NETWORK_TYPE_EHRPD: // API level 11
+                    return true; // ~ 1-2 Mbps
+                case TelephonyManager.NETWORK_TYPE_EVDO_B: // API level 9
+                    return true; // ~ 5 Mbps
+                case TelephonyManager.NETWORK_TYPE_HSPAP: // API level 13
+                    return true; // ~ 10-20 Mbps
+                case TelephonyManager.NETWORK_TYPE_IDEN: // API level 8
+                    return false; // ~25 kbps
+                case TelephonyManager.NETWORK_TYPE_LTE: // API level 11
+                    return true; // ~ 10+ Mbps
+                // Unknown
+                case TelephonyManager.NETWORK_TYPE_UNKNOWN:
+                default:
+                    return false;
+            }
+        } else {
+            return false;
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/Ringer.java b/ring-android/androidtv/src/main/java/cx/ring/utils/Ringer.java
new file mode 100644
index 0000000..ef3ef9f
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/Ringer.java
@@ -0,0 +1,87 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.utils;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+import android.os.Build;
+import android.os.Vibrator;
+import android.util.Log;
+
+/**
+ * Ringer manager
+ */
+public class Ringer {
+    private static final String TAG = Ringer.class.getSimpleName();
+    private static final long[] VIBRATE_PATTERN = {0, 1000, 1000};
+
+    @SuppressLint("NewApi")
+    private static final AudioAttributes VIBRATE_ATTRIBUTES = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) ?
+            new AudioAttributes.Builder().setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE).build() : null;
+
+    private final Context context;
+    private final Vibrator vibrator;
+
+    public Ringer(Context aContext) {
+        context = aContext;
+        vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
+    }
+
+    /**
+     * Starts the ringtone and/or vibrator.
+     */
+    public void ring() {
+        Log.d(TAG, "==> ring() called...");
+
+        AudioManager audioManager =
+                (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+
+        vibrator.cancel();
+
+        int ringerMode = audioManager.getRingerMode();
+        if (ringerMode == AudioManager.RINGER_MODE_SILENT) {
+            //No ring no vibrate
+            Log.d(TAG, "skipping ring and vibrate because profile is Silent");
+        }
+        else if (ringerMode == AudioManager.RINGER_MODE_VIBRATE || ringerMode == AudioManager.RINGER_MODE_NORMAL) {
+            // Vibrate
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                vibrator.vibrate(VIBRATE_PATTERN, 0, VIBRATE_ATTRIBUTES);
+            } else {
+                vibrator.vibrate(VIBRATE_PATTERN, 0);
+            }
+            audioManager.setMode(AudioManager.MODE_RINGTONE);
+        }
+    }
+
+    /**
+     * Stops the ringtone and/or vibrator if any of these are actually
+     * ringing/vibrating.
+     */
+    public void stopRing() {
+        Log.d(TAG, "==> stopRing() called...");
+        vibrator.cancel();
+    }
+
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/SettingsContentObserver.java b/ring-android/androidtv/src/main/java/cx/ring/utils/SettingsContentObserver.java
new file mode 100644
index 0000000..2c63cf5
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/SettingsContentObserver.java
@@ -0,0 +1,62 @@
+/*
+ *  Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+ *
+ *  Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+ *  Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+package cx.ring.utils;
+
+import android.content.Context;
+import android.database.ContentObserver;
+import android.media.AudioManager;
+import android.os.Handler;
+import android.util.Log;
+
+public class SettingsContentObserver extends ContentObserver {
+    private static final String TAG = "Settings";
+
+    private final AudioManager audioManager;
+    private double previousVolume;
+
+    public SettingsContentObserver(Context c, Handler handler) {
+        super(handler);
+        audioManager = (AudioManager) c.getSystemService(Context.AUDIO_SERVICE);
+        previousVolume = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
+    }
+
+    @Override
+    public boolean deliverSelfNotifications() {
+        return super.deliverSelfNotifications();
+    }
+
+    @Override
+    public void onChange(boolean selfChange) {
+        super.onChange(selfChange);
+        double currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
+        double delta = previousVolume - currentVolume;
+        if(delta>0)  {
+            Log.d(TAG,"Decreased");
+            previousVolume=currentVolume;
+//            context.changeVolume(currentVolume);
+        } else if(delta<0) {
+            Log.d(TAG,"Increased");
+            previousVolume=currentVolume;
+//            context.changeVolume(currentVolume);
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/bluetooth/BluetoothUtils14.java b/ring-android/androidtv/src/main/java/cx/ring/utils/bluetooth/BluetoothUtils14.java
new file mode 100644
index 0000000..c378347
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/bluetooth/BluetoothUtils14.java
@@ -0,0 +1,167 @@
+/**
+ * Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
+ * This file is part of CSipSimple.
+ *
+ *  CSipSimple is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *  If you own a pjsip commercial license you can also redistribute it
+ *  and/or modify it under the terms of the GNU Lesser General Public License
+ *  as an android library.
+ *
+ *  CSipSimple is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with CSipSimple.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package cx.ring.utils.bluetooth;
+
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothClass;
+import android.bluetooth.BluetoothDevice;
+import android.bluetooth.BluetoothProfile;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.media.AudioManager;
+import android.util.Log;
+
+import java.util.Set;
+
+public class BluetoothUtils14 extends BluetoothWrapper {
+
+    private static String TAG = BluetoothUtils14.class.getSimpleName();
+    private AudioManager audioManager;
+    private boolean isBluetoothConnected = false;
+    
+    
+    @Override
+    public boolean isBTHeadsetConnected() {
+        return bluetoothAdapter != null && (bluetoothAdapter.getProfileConnectionState(BluetoothProfile.HEADSET) == BluetoothAdapter.STATE_CONNECTED);
+    }
+
+    
+
+    private BroadcastReceiver mediaStateReceiver = new BroadcastReceiver() {
+
+        @SuppressWarnings("deprecation")
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            Log.d(TAG, ">>> BT SCO state changed !!! ");
+            if(AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED.equals(action)) {
+                int status = intent.getIntExtra(AudioManager.EXTRA_SCO_AUDIO_STATE, AudioManager.SCO_AUDIO_STATE_ERROR );
+                Log.d(TAG, "BT SCO state changed : " + status + " target is " + targetBt);
+                audioManager.setBluetoothScoOn(targetBt);
+
+                if(status == AudioManager.SCO_AUDIO_STATE_CONNECTED) {
+                    isBluetoothConnected = true;
+                }else if(status == AudioManager.SCO_AUDIO_STATE_DISCONNECTED) {
+                    isBluetoothConnected = false;
+                }
+
+                if(btChangesListener != null) {
+                    btChangesListener.onBluetoothStateChanged(status);
+                }
+            }
+        }
+    };
+
+    protected BluetoothAdapter bluetoothAdapter;
+
+    @Override
+    public void setContext(Context aContext){
+        super.setContext(aContext);
+        audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+        if(bluetoothAdapter == null) {
+            try {
+                bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
+            }catch(RuntimeException e) {
+                Log.w(TAG, "Cant get default bluetooth adapter ", e);
+            }
+        }
+    }
+
+    public boolean canBluetooth() {
+        // Detect if any bluetooth a device is available for call
+        if (bluetoothAdapter == null) {
+            // Device does not support Bluetooth
+            return false;
+        }
+        boolean hasConnectedDevice = false;
+        //If bluetooth is on
+        if(bluetoothAdapter.isEnabled()) {
+
+            //We get all bounded bluetooth devices
+            // bounded is not enough, should search for connected devices....
+            Set<BluetoothDevice> pairedDevices = bluetoothAdapter.getBondedDevices();
+            for(BluetoothDevice device : pairedDevices) {
+                BluetoothClass bluetoothClass = device.getBluetoothClass();
+                if (bluetoothClass != null) {
+                    int deviceClass = bluetoothClass.getDeviceClass();
+                    if(bluetoothClass.hasService(BluetoothClass.Service.RENDER) ||
+                            deviceClass == BluetoothClass.Device.AUDIO_VIDEO_WEARABLE_HEADSET ||
+                            deviceClass == BluetoothClass.Device.AUDIO_VIDEO_CAR_AUDIO ||
+                            deviceClass == BluetoothClass.Device.AUDIO_VIDEO_HANDSFREE ) {
+                        //And if any can be used as a audio handset
+                        hasConnectedDevice = true;
+                        break;
+                    }
+                }
+            }
+        }
+        boolean retVal = hasConnectedDevice && audioManager.isBluetoothScoAvailableOffCall();
+        Log.d(TAG, "Can I do BT ? "+retVal);
+        return retVal;
+    }
+
+    private boolean targetBt = false;
+    public void setBluetoothOn(boolean on) {
+        Log.d(TAG, "Ask for "+on+" vs "+audioManager.isBluetoothScoOn());
+        targetBt = on;
+        if(on != isBluetoothConnected) {
+            // BT SCO connection state is different from required activation
+            if(on) {
+                // First we try to connect
+                Log.d(TAG, "BT SCO on >>>");
+                audioManager.startBluetoothSco();
+            }else {
+                Log.d(TAG, "BT SCO off >>>");
+                // We stop to use BT SCO
+                audioManager.setBluetoothScoOn(false);
+                // And we stop BT SCO connection
+                audioManager.stopBluetoothSco();
+            }
+        }else if(on != audioManager.isBluetoothScoOn()) {
+            // BT SCO is already in desired connection state
+            // we only have to use it
+            audioManager.setBluetoothScoOn(on);
+        }
+    }
+
+    public boolean isBluetoothOn() {
+        return isBluetoothConnected;
+    }
+
+    @SuppressWarnings("deprecation")
+    public void register() {
+        Log.d(TAG, "Register BT media receiver");
+        context.registerReceiver(mediaStateReceiver , new IntentFilter(AudioManager.ACTION_SCO_AUDIO_STATE_CHANGED));
+    }
+
+    public void unregister() {
+        try {
+            Log.d(TAG, "Unregister BT media receiver");
+            context.unregisterReceiver(mediaStateReceiver);
+        }catch(Exception e) {
+            Log.w(TAG, "Failed to unregister media state receiver",e);
+        }
+    }
+}
diff --git a/ring-android/androidtv/src/main/java/cx/ring/utils/bluetooth/BluetoothWrapper.java b/ring-android/androidtv/src/main/java/cx/ring/utils/bluetooth/BluetoothWrapper.java
new file mode 100644
index 0000000..053db85
--- /dev/null
+++ b/ring-android/androidtv/src/main/java/cx/ring/utils/bluetooth/BluetoothWrapper.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (C) 2010-2012 Regis Montoya (aka r3gis - www.r3gis.fr)
+ * This file is part of CSipSimple.
+ *
+ *  CSipSimple is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *  If you own a pjsip commercial license you can also redistribute it
+ *  and/or modify it under the terms of the GNU Lesser General Public License
+ *  as an android library.
+ *
+ *  CSipSimple is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with CSipSimple.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+package cx.ring.utils.bluetooth;
+
+import android.content.Context;
+
+
+public abstract class BluetoothWrapper {
+
+    public interface BluetoothChangeListener {
+        void onBluetoothStateChanged(int status);
+    }
+
+
+    private static BluetoothWrapper instance;
+    protected Context context;
+
+    protected BluetoothChangeListener btChangesListener;
+
+    public static BluetoothWrapper getInstance(Context context) {
+        if (instance == null) {
+            instance = new BluetoothUtils14();
+            instance.setContext(context);
+        }
+
+        return instance;
+    }
+
+    protected BluetoothWrapper() {
+    }
+
+    protected void setContext(Context ctxt) {
+        context = ctxt;
+    }
+
+    public void setBluetoothChangeListener(BluetoothChangeListener l) {
+        btChangesListener = l;
+    }
+
+    public abstract boolean canBluetooth();
+
+    public abstract void setBluetoothOn(boolean on);
+
+    public abstract boolean isBluetoothOn();
+
+    public abstract void register();
+
+    public abstract void unregister();
+
+    public abstract boolean isBTHeadsetConnected();
+}
diff --git a/ring-android/androidtv/src/main/res/anim/contact_fadein.xml b/ring-android/androidtv/src/main/res/anim/contact_fadein.xml
new file mode 100644
index 0000000..3d93ac0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/anim/contact_fadein.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+    <alpha
+        android:fromAlpha="0.0"
+        android:toAlpha="1.0"
+        android:interpolator="@android:anim/accelerate_interpolator"
+        android:duration="@android:integer/config_shortAnimTime"
+        android:repeatCount="0" />
+</set>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/app_icon_quantum.png b/ring-android/androidtv/src/main/res/drawable-hdpi/app_icon_quantum.png
new file mode 100644
index 0000000..825ef63
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/app_icon_quantum.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/app_icon_quantum_card.png b/ring-android/androidtv/src/main/res/drawable-hdpi/app_icon_quantum_card.png
new file mode 100644
index 0000000..9b1703d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/app_icon_quantum_card.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/card_background_default.9.png b/ring-android/androidtv/src/main/res/drawable-hdpi/card_background_default.9.png
new file mode 100644
index 0000000..29f4e01
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/card_background_default.9.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/default_background.xml b/ring-android/androidtv/src/main/res/drawable-hdpi/default_background.xml
new file mode 100644
index 0000000..82e51a2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/default_background.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <gradient
+        android:angle="-270"
+        android:endColor="@color/background_gradient_end"
+        android:startColor="@color/background_gradient_start" />
+</shape>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/green_lock.png b/ring-android/androidtv/src/main/res/drawable-hdpi/green_lock.png
new file mode 100644
index 0000000..e457c78
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/green_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/grid_bg.png b/ring-android/androidtv/src/main/res/drawable-hdpi/grid_bg.png
new file mode 100644
index 0000000..476c698
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/grid_bg.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ic_action_scan_qr.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_action_scan_qr.png
new file mode 100644
index 0000000..9da2c7e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_action_scan_qr.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ic_error.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_error.png
new file mode 100644
index 0000000..fce7a1d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_error.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ic_good.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_good.png
new file mode 100644
index 0000000..2aa374c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_good.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ic_launcher.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..9653dca
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ic_network_disconnect_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_network_disconnect_black_24dp.png
new file mode 100644
index 0000000..f9e7edd
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_network_disconnect_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ic_perm_data_setting_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_perm_data_setting_black_24dp.png
new file mode 100644
index 0000000..1643436
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ic_perm_data_setting_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/movie.png b/ring-android/androidtv/src/main/res/drawable-hdpi/movie.png
new file mode 100644
index 0000000..cb5cb6d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/movie.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/red_lock.png b/ring-android/androidtv/src/main/res/drawable-hdpi/red_lock.png
new file mode 100644
index 0000000..76b5d74
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/red_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ring_logo_24dp.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ring_logo_24dp.png
new file mode 100644
index 0000000..b6eed1f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ring_logo_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/ring_logo_48dp.png b/ring-android/androidtv/src/main/res/drawable-hdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..532d54a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_disabled.png b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_disabled.png
new file mode 100644
index 0000000..9bb7247
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_disabled.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_focussed.png b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_focussed.png
new file mode 100644
index 0000000..2289859
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_focussed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_normal.png b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_normal.png
new file mode 100644
index 0000000..34aff7c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_normal.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_pressed.png b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_pressed.png
new file mode 100644
index 0000000..3c492e1
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/scrubber_pressed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/shadow7.9.png b/ring-android/androidtv/src/main/res/drawable-hdpi/shadow7.9.png
new file mode 100644
index 0000000..6d00d09
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/shadow7.9.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/star_icon.png b/ring-android/androidtv/src/main/res/drawable-hdpi/star_icon.png
new file mode 100644
index 0000000..8a708da
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/star_icon.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/videos_by_google_banner.png b/ring-android/androidtv/src/main/res/drawable-hdpi/videos_by_google_banner.png
new file mode 100644
index 0000000..bdcf41e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/videos_by_google_banner.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-hdpi/videos_by_google_icon.png b/ring-android/androidtv/src/main/res/drawable-hdpi/videos_by_google_icon.png
new file mode 100644
index 0000000..9bc4836
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-hdpi/videos_by_google_icon.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-ldpi/ic_network_disconnect_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-ldpi/ic_network_disconnect_black_24dp.png
new file mode 100644
index 0000000..8be9537
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-ldpi/ic_network_disconnect_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/app_icon_quantum.png b/ring-android/androidtv/src/main/res/drawable-mdpi/app_icon_quantum.png
new file mode 100644
index 0000000..6b62138
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/app_icon_quantum.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/app_icon_quantum_card.png b/ring-android/androidtv/src/main/res/drawable-mdpi/app_icon_quantum_card.png
new file mode 100644
index 0000000..ac9cc30
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/app_icon_quantum_card.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/green_lock.png b/ring-android/androidtv/src/main/res/drawable-mdpi/green_lock.png
new file mode 100644
index 0000000..94fbc8e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/green_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ic_action_scan_qr.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_action_scan_qr.png
new file mode 100644
index 0000000..7df4187
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_action_scan_qr.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ic_error.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_error.png
new file mode 100644
index 0000000..d7a993e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_error.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ic_good.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_good.png
new file mode 100644
index 0000000..af33e66
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_good.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ic_launcher.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..72e8e96
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ic_network_disconnect_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_network_disconnect_black_24dp.png
new file mode 100644
index 0000000..be26ae7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_network_disconnect_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ic_perm_data_setting_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_perm_data_setting_black_24dp.png
new file mode 100644
index 0000000..6686406
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ic_perm_data_setting_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/red_lock.png b/ring-android/androidtv/src/main/res/drawable-mdpi/red_lock.png
new file mode 100644
index 0000000..3e314bc
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/red_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ring_logo_24dp.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ring_logo_24dp.png
new file mode 100644
index 0000000..e489a36
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ring_logo_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/ring_logo_48dp.png b/ring-android/androidtv/src/main/res/drawable-mdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..758cf73
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/videos_by_google_banner.png b/ring-android/androidtv/src/main/res/drawable-mdpi/videos_by_google_banner.png
new file mode 100644
index 0000000..b191626
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/videos_by_google_banner.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-mdpi/videos_by_google_icon.png b/ring-android/androidtv/src/main/res/drawable-mdpi/videos_by_google_icon.png
new file mode 100644
index 0000000..8a7c6dc
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-mdpi/videos_by_google_icon.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/app_icon_quantum.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/app_icon_quantum.png
new file mode 100644
index 0000000..825ef63
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/app_icon_quantum.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/app_icon_quantum_card.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/app_icon_quantum_card.png
new file mode 100644
index 0000000..9b1703d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/app_icon_quantum_card.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/default_background.xml b/ring-android/androidtv/src/main/res/drawable-xhdpi/default_background.xml
new file mode 100644
index 0000000..82e51a2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/default_background.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <gradient
+        android:angle="-270"
+        android:endColor="@color/background_gradient_end"
+        android:startColor="@color/background_gradient_start" />
+</shape>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/green_lock.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/green_lock.png
new file mode 100644
index 0000000..78689d0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/green_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/grid_bg.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/grid_bg.png
new file mode 100644
index 0000000..476c698
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/grid_bg.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_action_scan_qr.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_action_scan_qr.png
new file mode 100644
index 0000000..75c8419
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_action_scan_qr.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_error.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_error.png
new file mode 100644
index 0000000..07ef5b2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_error.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_good.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_good.png
new file mode 100644
index 0000000..a736d11
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_good.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_launcher.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..4ee2753
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_network_disconnect_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_network_disconnect_black_24dp.png
new file mode 100644
index 0000000..5480030
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_network_disconnect_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_focussed.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_focussed.png
new file mode 100644
index 0000000..63b45b9
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_focussed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_normal.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_normal.png
new file mode 100644
index 0000000..9cf2582
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_normal.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_pressed.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_pressed.png
new file mode 100644
index 0000000..516ceca
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_pause_playcontrol_pressed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_perm_data_setting_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_perm_data_setting_black_24dp.png
new file mode 100644
index 0000000..a8a97f2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_perm_data_setting_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_focussed.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_focussed.png
new file mode 100644
index 0000000..bf93814
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_focussed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_normal.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_normal.png
new file mode 100644
index 0000000..966f754
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_normal.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_pressed.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_pressed.png
new file mode 100644
index 0000000..934ed89
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_action_pressed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_focussed.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_focussed.png
new file mode 100644
index 0000000..687b421
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_focussed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_normal.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_normal.png
new file mode 100644
index 0000000..1eadfa4
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_normal.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_pressed.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_pressed.png
new file mode 100644
index 0000000..7f583f6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ic_play_playcontrol_pressed.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/movie.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/movie.png
new file mode 100644
index 0000000..cb5cb6d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/movie.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/red_lock.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/red_lock.png
new file mode 100644
index 0000000..fe1c887
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/red_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ring_logo_24dp.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ring_logo_24dp.png
new file mode 100644
index 0000000..c085e91
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ring_logo_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/ring_logo_48dp.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..c645d4f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/star_icon.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/star_icon.png
new file mode 100644
index 0000000..8a708da
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/star_icon.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/videos_by_google_banner.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/videos_by_google_banner.png
new file mode 100644
index 0000000..bdcf41e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/videos_by_google_banner.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xhdpi/videos_by_google_icon.png b/ring-android/androidtv/src/main/res/drawable-xhdpi/videos_by_google_icon.png
new file mode 100644
index 0000000..9bc4836
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xhdpi/videos_by_google_icon.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/app_icon_quantum.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/app_icon_quantum.png
new file mode 100644
index 0000000..c82f94c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/app_icon_quantum.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/app_icon_quantum_card.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/app_icon_quantum_card.png
new file mode 100644
index 0000000..6c50e8f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/app_icon_quantum_card.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/green_lock.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/green_lock.png
new file mode 100644
index 0000000..31efb97
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/green_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_action_scan_qr.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_action_scan_qr.png
new file mode 100644
index 0000000..2815452
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_action_scan_qr.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_error.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_error.png
new file mode 100644
index 0000000..f2d6399
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_error.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_good.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_good.png
new file mode 100644
index 0000000..c1de06d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_good.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_launcher.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..8f54eeb
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_network_disconnect_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_network_disconnect_black_24dp.png
new file mode 100644
index 0000000..34eb88c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_network_disconnect_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_perm_data_setting_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_perm_data_setting_black_24dp.png
new file mode 100644
index 0000000..d9e712d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ic_perm_data_setting_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/red_lock.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/red_lock.png
new file mode 100644
index 0000000..75b4d6e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/red_lock.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ring_logo_24dp.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ring_logo_24dp.png
new file mode 100644
index 0000000..9f60bb6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ring_logo_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/ring_logo_48dp.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..a13ea0e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/videos_by_google_banner.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/videos_by_google_banner.png
new file mode 100644
index 0000000..6c121e6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/videos_by_google_banner.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxhdpi/videos_by_google_icon.png b/ring-android/androidtv/src/main/res/drawable-xxhdpi/videos_by_google_icon.png
new file mode 100644
index 0000000..4258160
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxhdpi/videos_by_google_icon.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_action_scan_qr.png b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_action_scan_qr.png
new file mode 100644
index 0000000..97c1df0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_action_scan_qr.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_network_disconnect_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_network_disconnect_black_24dp.png
new file mode 100644
index 0000000..840320b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_network_disconnect_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_perm_data_setting_black_24dp.png b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_perm_data_setting_black_24dp.png
new file mode 100644
index 0000000..a451d53
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ic_perm_data_setting_black_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ring_logo_24dp.png b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ring_logo_24dp.png
new file mode 100644
index 0000000..fac931c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ring_logo_24dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png
new file mode 100644
index 0000000..ff48e7b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable-xxxhdpi/ring_logo_48dp.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/app_icon_quantum.png b/ring-android/androidtv/src/main/res/drawable/app_icon_quantum.png
new file mode 100644
index 0000000..fda9a74
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/app_icon_quantum.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/app_icon_quantum_card.png b/ring-android/androidtv/src/main/res/drawable/app_icon_quantum_card.png
new file mode 100644
index 0000000..498cf66
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/app_icon_quantum_card.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/app_icon_your_company.png b/ring-android/androidtv/src/main/res/drawable/app_icon_your_company.png
new file mode 100644
index 0000000..0a47b01
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/app_icon_your_company.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/details_img.png b/ring-android/androidtv/src/main/res/drawable/details_img.png
new file mode 100644
index 0000000..7ea688b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/details_img.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_action_a.png b/ring-android/androidtv/src/main/res/drawable/ic_action_a.png
new file mode 100644
index 0000000..3d555ef
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_action_a.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_action_accept.xml b/ring-android/androidtv/src/main/res/drawable/ic_action_accept.xml
new file mode 100644
index 0000000..a18b994
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_action_accept.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_action_edit.xml b/ring-android/androidtv/src/main/res/drawable/ic_action_edit.xml
new file mode 100644
index 0000000..940ad13
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_action_edit.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M3,17.25V21h3.75L17.81,9.94l-3.75,-3.75L3,17.25zM20.71,7.04c0.39,-0.39 0.39,-1.02 0,-1.41l-2.34,-2.34c-0.39,-0.39 -1.02,-0.39 -1.41,0l-1.83,1.83 3.75,3.75 1.83,-1.83z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_action_new_dark.xml b/ring-android/androidtv/src/main/res/drawable/ic_action_new_dark.xml
new file mode 100644
index 0000000..1f463d3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_action_new_dark.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_add_black_24dp.xml b/ring-android/androidtv/src/main/res/drawable/ic_add_black_24dp.xml
new file mode 100644
index 0000000..0258249
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_add_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_add_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_add_white.xml
new file mode 100644
index 0000000..88a674a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_add_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_android_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_android_black.xml
new file mode 100644
index 0000000..e8dc392
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_android_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,8 2,8.67 2,9.5v7c0,0.83 0.67,1.5 1.5,1.5S5,17.33 5,16.5v-7C5,8.67 4.33,8 3.5,8zM20.5,8c-0.83,0 -1.5,0.67 -1.5,1.5v7c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5v-7c0,-0.83 -0.67,-1.5 -1.5,-1.5zM15.53,2.16l1.3,-1.3c0.2,-0.2 0.2,-0.51 0,-0.71 -0.2,-0.2 -0.51,-0.2 -0.71,0l-1.48,1.48C13.85,1.23 12.95,1 12,1c-0.96,0 -1.86,0.23 -2.66,0.63L7.85,0.15c-0.2,-0.2 -0.51,-0.2 -0.71,0 -0.2,0.2 -0.2,0.51 0,0.71l1.31,1.31C6.97,3.26 6,5.01 6,7h12c0,-1.99 -0.97,-3.75 -2.47,-4.84zM10,5L9,5L9,4h1v1zM15,5h-1L14,4h1v1z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml b/ring-android/androidtv/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
new file mode 100644
index 0000000..62b27ef
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_arrow_drop_down_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M7,10l5,5 5,-5z"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_arrow_drop_up_black_24dp.xml b/ring-android/androidtv/src/main/res/drawable/ic_arrow_drop_up_black_24dp.xml
new file mode 100644
index 0000000..b1442ce
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_arrow_drop_up_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M7,14l5,-5 5,5z"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_block_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_block_white.xml
new file mode 100644
index 0000000..a93fae1
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_block_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM4,12c0,-4.42 3.58,-8 8,-8 1.85,0 3.55,0.63 4.9,1.69L5.69,16.9C4.63,15.55 4,13.85 4,12zM12,20c-1.85,0 -3.55,-0.63 -4.9,-1.69L18.31,7.1C19.37,8.45 20,10.15 20,12c0,4.42 -3.58,8 -8,8z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_call_end_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_call_end_white.xml
new file mode 100644
index 0000000..c2a0638
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_call_end_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,9c-1.6,0 -3.15,0.25 -4.6,0.72v3.1c0,0.39 -0.23,0.74 -0.56,0.9 -0.98,0.49 -1.87,1.12 -2.66,1.85 -0.18,0.18 -0.43,0.28 -0.7,0.28 -0.28,0 -0.53,-0.11 -0.71,-0.29L0.29,13.08c-0.18,-0.17 -0.29,-0.42 -0.29,-0.7 0,-0.28 0.11,-0.53 0.29,-0.71C3.34,8.78 7.46,7 12,7s8.66,1.78 11.71,4.67c0.18,0.18 0.29,0.43 0.29,0.71 0,0.28 -0.11,0.53 -0.29,0.71l-2.48,2.48c-0.18,0.18 -0.43,0.29 -0.71,0.29 -0.27,0 -0.52,-0.11 -0.7,-0.28 -0.79,-0.74 -1.69,-1.36 -2.67,-1.85 -0.33,-0.16 -0.56,-0.5 -0.56,-0.9v-3.1C15.15,9.25 13.6,9 12,9z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_call_made_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_call_made_black.xml
new file mode 100644
index 0000000..a32b289
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_call_made_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M9,5v2h6.59L4,18.59 5.41,20 17,8.41V15h2V5z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_call_missed_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_call_missed_black.xml
new file mode 100644
index 0000000..06ef723
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_call_missed_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M19.59,7L12,14.59 6.41,9H11V7H3v8h2v-4.59l7,7 9,-9z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_call_missed_outgoing_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_call_missed_outgoing_black.xml
new file mode 100644
index 0000000..0ee6c7a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_call_missed_outgoing_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M3,8.41l9,9 7,-7V15h2V7h-8v2h4.59L12,14.59 4.41,7 3,8.41z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_call_received_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_call_received_black.xml
new file mode 100644
index 0000000..0f6be07
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_call_received_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M20,5.41L18.59,4 7,15.59V9H5v10h10v-2H8.41z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_call_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_call_white.xml
new file mode 100644
index 0000000..ef75bd7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_call_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_camera_front_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_camera_front_white.xml
new file mode 100644
index 0000000..f7c6823
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_camera_front_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M10,20L5,20v2h5v2l3,-3 -3,-3v2zM14,20v2h5v-2h-5zM12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -1.99,0.9 -1.99,2S10.9,8 12,8zM17,0L7,0C5.9,0 5,0.9 5,2v14c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2L19,2c0,-1.1 -0.9,-2 -2,-2zM7,2h10v10.5c0,-1.67 -3.33,-2.5 -5,-2.5s-5,0.83 -5,2.5L7,2z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_camera_rear_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_camera_rear_white.xml
new file mode 100644
index 0000000..441bbd7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_camera_rear_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M10,20L5,20v2h5v2l3,-3 -3,-3v2zM14,20v2h5v-2h-5zM17,0L7,0C5.9,0 5,0.9 5,2v14c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2L19,2c0,-1.1 -0.9,-2 -2,-2zM12,6c-1.11,0 -2,-0.9 -2,-2s0.89,-2 1.99,-2 2,0.9 2,2C14,5.1 13.1,6 12,6z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_cancel_black_24dp.xml b/ring-android/androidtv/src/main/res/drawable/ic_cancel_black_24dp.xml
new file mode 100644
index 0000000..7d2b57e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_cancel_black_24dp.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12,2C6.47,2 2,6.47 2,12s4.47,10 10,10 10,-4.47 10,-10S17.53,2 12,2zM17,15.59L15.59,17 12,13.41 8.41,17 7,15.59 10.59,12 7,8.41 8.41,7 12,10.59 15.59,7 17,8.41 13.41,12 17,15.59z"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_chat_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_chat_white.xml
new file mode 100644
index 0000000..564e4cf
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_chat_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M20,2L4,2c-1.1,0 -1.99,0.9 -1.99,2L2,22l4,-4h14c1.1,0 2,-0.9 2,-2L22,4c0,-1.1 -0.9,-2 -2,-2zM6,9h12v2L6,11L6,9zM14,14L6,14v-2h8v2zM18,8L6,8L6,6h12v2z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_check_circle.xml b/ring-android/androidtv/src/main/res/drawable/ic_check_circle.xml
new file mode 100644
index 0000000..440cb94
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_check_circle.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"
+        android:fillColor="#388E3C"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_close_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_close_white.xml
new file mode 100644
index 0000000..c70d373
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_close_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"
+        android:fillColor="#ffffff"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_contact_picture.png b/ring-android/androidtv/src/main/res/drawable/ic_contact_picture.png
new file mode 100644
index 0000000..b84a951
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_contact_picture.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_content_copy_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_content_copy_white.xml
new file mode 100644
index 0000000..f247b67
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_content_copy_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_delete_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_delete_white.xml
new file mode 100644
index 0000000..2b8ab5b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_delete_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V7H6v12zM19,4h-3.5l-1,-1h-5l-1,1H5v2h14V4z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_desktop_windows_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_desktop_windows_black.xml
new file mode 100644
index 0000000..45764da
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_desktop_windows_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M21,2L3,2c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h7v2L8,20v2h8v-2h-2v-2h7c1.1,0 2,-0.9 2,-2L23,4c0,-1.1 -0.9,-2 -2,-2zM21,16L3,16L3,4h18v12z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_dialer_sip_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_dialer_sip_black.xml
new file mode 100644
index 0000000..0c06c38
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_dialer_sip_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M17,3h-1v5h1L17,3zM15,5h-2L13,4h2L15,3h-3v3h2v1h-2v1h3L15,5zM18,3v5h1L19,6h2L21,3h-3zM20,5h-1L19,4h1v1zM20,15.5c-1.25,0 -2.45,-0.2 -3.57,-0.57 -0.35,-0.11 -0.74,-0.03 -1.01,0.24l-2.2,2.2c-2.83,-1.44 -5.15,-3.75 -6.59,-6.59l2.2,-2.21c0.27,-0.26 0.35,-0.65 0.24,-1C8.7,6.45 8.5,5.25 8.5,4c0,-0.55 -0.45,-1 -1,-1L4,3c-0.55,0 -1,0.45 -1,1 0,9.39 7.61,17 17,17 0.55,0 1,-0.45 1,-1v-3.5c0,-0.55 -0.45,-1 -1,-1z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_dialpad_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_dialpad_black.xml
new file mode 100644
index 0000000..453225e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_dialpad_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,19c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM6,1c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM6,7c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM6,13c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,5c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,13c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,13c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,7c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,7c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,1c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_dialpad_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_dialpad_white.xml
new file mode 100644
index 0000000..a5a34ff
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_dialpad_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,19c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM6,1c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM6,7c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM6,13c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,5c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,13c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,13c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,7c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,7c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,1c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_drafts_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_drafts_black.xml
new file mode 100644
index 0000000..245363d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_drafts_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M21.99,8c0,-0.72 -0.37,-1.35 -0.94,-1.7L12,1 2.95,6.3C2.38,6.65 2,7.28 2,8v10c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2l-0.01,-10zM12,13L3.74,7.84 12,3l8.26,4.84L12,13z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_error_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_error_white.xml
new file mode 100644
index 0000000..128aaf4
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_error_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_group_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_group_black.xml
new file mode 100644
index 0000000..9e6faba
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_group_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M16,11c1.66,0 2.99,-1.34 2.99,-3S17.66,5 16,5c-1.66,0 -3,1.34 -3,3s1.34,3 3,3zM8,11c1.66,0 2.99,-1.34 2.99,-3S9.66,5 8,5C6.34,5 5,6.34 5,8s1.34,3 3,3zM8,13c-2.33,0 -7,1.17 -7,3.5L1,19h14v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5zM16,13c-0.29,0 -0.62,0.02 -0.97,0.05 1.16,0.84 1.97,1.97 1.97,3.45L17,19h6v-2.5c0,-2.33 -4.67,-3.5 -7,-3.5z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_home_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_home_black.xml
new file mode 100644
index 0000000..b234e34
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_home_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_info_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_info_black.xml
new file mode 100644
index 0000000..16d6a64
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_info_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_insert_photo.xml b/ring-android/androidtv/src/main/res/drawable/ic_insert_photo.xml
new file mode 100644
index 0000000..f9bc47d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_insert_photo.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M21,19V5c0,-1.1 -0.9,-2 -2,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2zM8.5,13.5l2.5,3.01L14.5,12l4.5,6H5l3.5,-4.5z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_lock_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_lock_white.xml
new file mode 100644
index 0000000..15dd36e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_lock_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M18,8h-1L17,6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2L6,8c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,10c0,-1.1 -0.9,-2 -2,-2zM12,17c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2 2,0.9 2,2 -0.9,2 -2,2zM15.1,8L8.9,8L8.9,6c0,-1.71 1.39,-3.1 3.1,-3.1 1.71,0 3.1,1.39 3.1,3.1v2z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_logo_ring_beta2_blanc.xml b/ring-android/androidtv/src/main/res/drawable/ic_logo_ring_beta2_blanc.xml
new file mode 100644
index 0000000..ad27f01
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_logo_ring_beta2_blanc.xml
@@ -0,0 +1,72 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="590dp"
+        android:height="216dp"
+        android:viewportWidth="590.4"
+        android:viewportHeight="216.0">
+    <path
+        android:pathData="M343.78,154.28h22.16l-33.59,-46.5l2.14,-0.64c4.25,-1.26 7.98,-3.06 11.08,-5.32c3.07,-2.25 5.53,-4.83 7.29,-7.67c1.79,-2.88 3.13,-5.9 3.95,-8.99c0.83,-3.11 1.25,-6.43 1.25,-9.88c0,-4.01 -0.48,-7.67 -1.45,-10.87c-0.94,-3.18 -2.17,-5.83 -3.62,-7.88c-1.45,-2.04 -3.3,-3.85 -5.5,-5.38c-2.25,-1.57 -4.44,-2.76 -6.5,-3.56c-2.09,-0.81 -4.53,-1.46 -7.26,-1.95c-2.75,-0.49 -5.13,-0.8 -7.06,-0.93c-1.96,-0.13 -4.14,-0.19 -6.45,-0.19h-46.5v109.76h16.86v-43.79h21.55L343.78,154.28zM290.61,95.22V59.71h23.75c17.24,0 25.98,5.85 25.98,17.4c0,3.05 -0.61,5.76 -1.81,8.05c-1.2,2.29 -2.76,4.11 -4.63,5.41c-1.81,1.27 -4.14,2.27 -6.91,2.98c-2.66,0.68 -5.29,1.14 -7.81,1.36c-2.46,0.22 -5.34,0.32 -8.56,0.32h-20.02V95.22z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M378.11,44.52l0,18.37l18.77,0l0,-10.74l0,-7.63z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M379.31,78.93h16.38v75.35h-16.38z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M461.75,93.69c2.49,0.85 4.33,1.85 5.61,3.04c1.28,1.19 2.3,2.73 3.02,4.56c0.69,1.75 1.1,3.2 1.25,4.43c0.14,1.17 0.21,2.53 0.21,4.05v44.51h16.38v-44.75c0,-3.5 -0.18,-6.69 -0.54,-9.49c-0.35,-2.71 -1.14,-5.61 -2.33,-8.64c-1.16,-2.93 -2.73,-5.38 -4.68,-7.28c-1.95,-1.9 -4.7,-3.52 -8.19,-4.81c-3.52,-1.31 -7.77,-1.97 -12.64,-1.97c-9.12,0 -19.15,2.31 -29.81,6.86l-1.37,0.58l-2.93,-5.86h-11.11v75.35h16.38V97.32l1.01,-0.39c7.73,-2.97 14.88,-4.47 21.24,-4.47C456.48,92.45 459.34,92.87 461.75,93.69z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M570.33,187.29c2.25,-2.07 4.1,-4.26 5.49,-6.51c1.41,-2.27 2.59,-4.78 3.5,-7.46c0.92,-2.7 1.56,-5.35 1.92,-7.86c0.36,-2.54 0.54,-5.2 0.54,-7.92V78.93h-11.99l-1.37,3.94l-1.55,-0.65c-7.77,-3.24 -15.08,-4.89 -21.72,-4.89c-3.58,0 -7.25,0.4 -10.91,1.2c-3.63,0.79 -7.42,2.18 -11.25,4.15c-3.81,1.96 -7.22,4.41 -10.14,7.31c-2.88,2.85 -5.27,6.63 -7.11,11.23c-1.85,4.61 -2.79,9.86 -2.79,15.62c0,5.57 0.8,10.66 2.37,15.13c1.57,4.44 3.67,8.16 6.24,11.03c2.6,2.9 5.71,5.37 9.25,7.34c3.56,1.98 7.26,3.41 11.02,4.25c9.81,2.19 20.92,1.55 31.47,-2.21l2.12,-0.76v2.96c0,2.87 -0.18,5.52 -0.54,7.9c-0.37,2.44 -1.17,5.01 -2.4,7.63c-1.25,2.68 -2.97,4.96 -5.09,6.78c-2.12,1.8 -5.02,3.29 -8.61,4.44c-3.56,1.13 -7.8,1.7 -12.6,1.7c-6.86,0 -13.92,-1.18 -21,-3.5l-1.85,-0.67l-4.85,12.55l1.54,0.67c8.83,3.44 18.32,5.2 28.14,5.2c5.01,0 9.65,-0.43 13.78,-1.28c4.11,-0.84 7.69,-2 10.63,-3.45C565.48,191.12 568.1,189.35 570.33,187.29zM564.35,138.84c-5.45,1.96 -10.98,2.95 -16.43,2.95c-8.88,0 -15.84,-2.5 -20.68,-7.43c-4.83,-4.92 -7.29,-11.27 -7.29,-18.87c0,-7.32 2.43,-13.26 7.23,-17.66c4.76,-4.36 11.12,-6.57 18.91,-6.57c5.05,0 11.16,1.04 18.17,3.08l1.14,0.33v43.79L564.35,138.84z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M433.45,24.79h10.49c1.17,0 2.25,0.09 3.22,0.27c0.97,0.18 1.8,0.42 2.47,0.71s1.27,0.64 1.79,1.05c0.52,0.41 0.94,0.82 1.24,1.24c0.3,0.42 0.55,0.87 0.75,1.34c0.19,0.47 0.32,0.9 0.39,1.28s0.1,0.76 0.1,1.13c0,0.88 -0.24,1.77 -0.72,2.67c-0.48,0.9 -1.08,1.66 -1.8,2.28c1.45,0.59 2.6,1.52 3.48,2.78c0.87,1.26 1.31,2.64 1.31,4.13c0,0.43 -0.04,0.86 -0.13,1.31c-0.08,0.45 -0.25,0.96 -0.49,1.54c-0.25,0.58 -0.56,1.13 -0.96,1.65c-0.4,0.52 -0.93,1.04 -1.6,1.56c-0.67,0.52 -1.45,0.96 -2.32,1.33c-0.88,0.37 -1.96,0.67 -3.24,0.9c-1.28,0.23 -2.69,0.35 -4.23,0.35h-9.74V24.79H433.45zM442.84,28.9h-4.51v7.63c2.8,-0.06 4.76,-0.19 5.86,-0.39c2.68,-0.49 4.11,-1.61 4.3,-3.35c0.01,-0.14 0.02,-0.28 0.02,-0.43c0,-0.41 -0.07,-0.8 -0.21,-1.15c-0.14,-0.35 -0.4,-0.72 -0.76,-1.09c-0.37,-0.37 -0.95,-0.67 -1.75,-0.89C444.98,29 444,28.9 442.84,28.9zM443.15,39.62c-0.1,0 -1.71,0.07 -4.82,0.21v7.98h4.34c0.52,0 0.96,-0 1.33,-0.01c0.37,-0.01 0.88,-0.04 1.52,-0.09c0.65,-0.05 1.2,-0.13 1.66,-0.22c0.47,-0.1 0.98,-0.24 1.53,-0.44c0.56,-0.19 1,-0.43 1.35,-0.7s0.63,-0.62 0.87,-1.03c0.24,-0.42 0.36,-0.9 0.36,-1.42c0,-1.33 -0.73,-2.38 -2.2,-3.14C447.61,40 445.64,39.62 443.15,39.62z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M460.62,52.3V24.79h19.3v4.49h-14.4v6.6h13.34v4.49h-13.34v7.43h14.4V52.3H460.62z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M484.27,24.79h24.85v4.49h-9.99V52.3h-4.88V29.28h-9.99L484.27,24.79L484.27,24.79z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M519.07,24.79h5.34l10.88,27.51h-5.01l-3.08,-7.2h-11.23l-3.08,7.2h-4.72L519.07,24.79zM525.5,40.63l-3.91,-10.2l-3.93,10.2H525.5z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M551.29,48.57c0.76,-2.22 1.76,-4.3 3,-6.23c1.24,-1.93 2.54,-3.58 3.9,-4.93c1.36,-1.35 2.78,-2.6 4.26,-3.77c1.48,-1.17 2.88,-2.18 4.19,-3.05c1.31,-0.86 2.49,-1.68 3.56,-2.45c1.06,-0.77 1.91,-1.53 2.53,-2.28c0.63,-0.75 0.94,-1.49 0.94,-2.23c0,-1.48 -0.89,-2.78 -2.66,-3.89c-1.77,-1.11 -3.94,-1.66 -6.51,-1.66c-3.11,0 -6.88,0.76 -11.3,2.28l-1.08,0.37l-2.19,-5.86l1.02,-0.46c4.46,-1.9 9.33,-2.85 14.6,-2.85c4.74,0 8.51,1.03 11.3,3.09c2.79,2.06 4.19,4.64 4.19,7.76c0,1.35 -0.27,2.61 -0.81,3.79c-0.54,1.18 -1.28,2.24 -2.22,3.19c-0.94,0.95 -1.99,1.87 -3.16,2.76c-1.17,0.89 -2.42,1.82 -3.76,2.78c-1.34,0.96 -2.63,1.93 -3.89,2.93c-1.25,1 -2.48,2.18 -3.69,3.55c-1.21,1.37 -2.21,2.8 -3,4.3h21.27V52.3h-30.49v-3.73H551.29z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M41.07,66.24c0,0 21.22,-3.9 36.63,-4.61c0,0 -11.93,-24.26 -11.94,-45.38l-28.44,18.57C37.31,34.82 32.83,42.33 41.07,66.24z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M72.19,12.88c0,0 -2.68,16.45 11.8,47.66c0,0 12.53,-17.08 20.33,-25.39C104.32,35.16 86.06,14.84 72.19,12.88z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M91.41,60.88c0,0 31.49,-44.41 53.48,-48c0,0 2.43,17.8 -12.01,48.4C132.88,61.28 116.24,60.54 91.41,60.88z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M151.34,16.26c0,0 0.21,35.55 -39.1,95.03c0,0 18.05,25.9 22.51,30.3c0,0 54.99,-77.38 45.11,-106.64L151.34,16.26z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M179.92,73.45c0,0 -9.62,22.13 -16.03,33.13c0,0 30.37,4.84 44.51,14.78V87.76C208.4,87.76 206.36,80.02 179.92,73.45z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M166.55,113.33c0,0 30.19,5.33 41.15,15.26c0,0 -7.01,8.67 -27.79,13.03c0,0 -8.07,-19.63 -13.37,-27.85"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M159.86,113.99c0,0 -14.45,23.9 -20.98,32.44c0,0 23.99,28 41.32,32.83C180.2,179.26 187.66,163.38 159.86,113.99z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M63.14,111.47c0,0 33.28,-3.75 39.97,-2.84c0,0 29.11,50.77 71.4,75.15l-28.62,18.44C145.89,202.21 119.98,205.51 63.14,111.47z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M81.78,151.48c0,0 10.75,14.95 22.54,28.44c0,0 -18.3,20.68 -33.08,22.3l-28.7,-18.47C42.54,183.75 58.14,178.59 81.78,151.48z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M71.95,153.03c0,0 -19.9,21.86 -34.7,26.09c0,0 -4.61,-5.91 3.83,-30.28C41.07,148.84 52.22,151.75 71.95,153.03z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M56.5,112.41c0,0 14.9,24.02 22.51,34.81c0,0 -53.75,-1.64 -69.65,-18.63C9.36,128.59 22.15,117.23 56.5,112.41z"
+        android:fillColor="#FFFFFF"/>
+    <path
+        android:pathData="M8.82,87.27v34.11c0,0 24.74,-19.02 101.77,-18.98c0,0 18.74,-30.96 19.48,-35.04C130.06,67.36 30.88,61.78 8.82,87.27z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_mic_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_mic_black.xml
new file mode 100644
index 0000000..0ef08f8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_mic_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,14c1.66,0 2.99,-1.34 2.99,-3L15,5c0,-1.66 -1.34,-3 -3,-3S9,3.34 9,5v6c0,1.66 1.34,3 3,3zM17.3,11c0,3 -2.54,5.1 -5.3,5.1S6.7,14 6.7,11L5,11c0,3.41 2.72,6.23 6,6.72L11,21h2v-3.28c3.28,-0.48 6,-3.3 6,-6.72h-1.7z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_person_add_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_person_add_black.xml
new file mode 100644
index 0000000..9972ad6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_person_add_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_person_add_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_person_add_white.xml
new file mode 100644
index 0000000..e7b7ac8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_person_add_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M15,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM6,10L6,7L4,7v3L1,10v2h3v3h2v-3h3v-2L6,10zM15,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_photo_camera.xml b/ring-android/androidtv/src/main/res/drawable/ic_photo_camera.xml
new file mode 100644
index 0000000..d983072
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_photo_camera.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"
+        android:fillColor="#000000"/>
+    <path
+        android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_reorder_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_reorder_black.xml
new file mode 100644
index 0000000..bbf4986
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_reorder_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M3,15h18v-2L3,13v2zM3,19h18v-2L3,17v2zM3,11h18L21,9L3,9v2zM3,5v2h18L21,5L3,5z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_ring_logo_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_ring_logo_white.xml
new file mode 100644
index 0000000..fd611f7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_ring_logo_white.xml
@@ -0,0 +1,15 @@
+<vector android:height="24dp" android:viewportHeight="216.0"
+    android:viewportWidth="216.0" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
+    <path android:fillColor="#FFFFFF" android:pathData="M40.46,66.68c0,0 21.22,-3.9 36.63,-4.61c0,0 -11.93,-24.26 -11.94,-45.38l-28.44,18.57C36.71,35.26 32.22,42.78 40.46,66.68z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M71.58,13.33c0,0 -2.68,16.45 11.8,47.66c0,0 12.53,-17.08 20.33,-25.38C103.71,35.61 85.45,15.29 71.58,13.33z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M90.8,61.33c0,0 31.49,-44.41 53.48,-48c0,0 2.43,17.8 -12.01,48.4C132.27,61.73 115.64,60.99 90.8,61.33z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M150.73,16.7c0,0 0.21,35.55 -39.1,95.03c0,0 18.05,25.91 22.51,30.3c0,0 54.99,-77.38 45.11,-106.64L150.73,16.7z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M179.31,73.9c0,0 -9.62,22.13 -16.02,33.13c0,0 30.37,4.84 44.51,14.78V88.2C207.79,88.2 205.75,80.47 179.31,73.9z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M165.94,113.78c0,0 30.19,5.33 41.15,15.26c0,0 -7.01,8.67 -27.79,13.03c0,0 -8.07,-19.63 -13.37,-27.85"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M159.25,114.44c0,0 -14.45,23.91 -20.98,32.44c0,0 23.99,28 41.32,32.83C179.59,179.71 187.05,163.83 159.25,114.44z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M62.53,111.92c0,0 33.28,-3.75 39.97,-2.84c0,0 29.11,50.77 71.39,75.15l-28.62,18.44C145.28,202.66 119.37,205.96 62.53,111.92z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M81.17,151.92c0,0 10.75,14.95 22.54,28.44c0,0 -18.3,20.68 -33.08,22.3l-28.7,-18.47C41.93,184.2 57.53,179.04 81.17,151.92z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M71.34,153.48c0,0 -19.9,21.86 -34.7,26.09c0,0 -4.61,-5.91 3.83,-30.28C40.46,149.29 51.61,152.2 71.34,153.48z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M55.9,112.86c0,0 14.9,24.02 22.51,34.81c0,0 -53.75,-1.64 -69.65,-18.63C8.75,129.03 21.54,117.67 55.9,112.86z"/>
+    <path android:fillColor="#FFFFFF" android:pathData="M8.21,87.71v34.11c0,0 24.74,-19.02 101.77,-18.98c0,0 18.74,-30.96 19.48,-35.04C129.46,67.81 30.26,62.22 8.21,87.71z"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_screen_rotation_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_screen_rotation_white.xml
new file mode 100644
index 0000000..606a280
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_screen_rotation_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M16.48,2.52c3.27,1.55 5.61,4.72 5.97,8.48h1.5C23.44,4.84 18.29,0 12,0l-0.66,0.03 3.81,3.81 1.33,-1.32zM10.23,1.75c-0.59,-0.59 -1.54,-0.59 -2.12,0L1.75,8.11c-0.59,0.59 -0.59,1.54 0,2.12l12.02,12.02c0.59,0.59 1.54,0.59 2.12,0l6.36,-6.36c0.59,-0.59 0.59,-1.54 0,-2.12L10.23,1.75zM14.83,21.19L2.81,9.17l6.36,-6.36 12.02,12.02 -6.36,6.36zM7.52,21.48C4.25,19.94 1.91,16.76 1.55,13L0.05,13C0.56,19.16 5.71,24 12,24l0.66,-0.03 -3.81,-3.81 -1.33,1.32z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_search_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_search_white.xml
new file mode 100644
index 0000000..bb1d607
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_search_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M15.5,14h-0.79l-0.28,-0.27C15.41,12.59 16,11.11 16,9.5 16,5.91 13.09,3 9.5,3S3,5.91 3,9.5 5.91,16 9.5,16c1.61,0 3.09,-0.59 4.23,-1.57l0.27,0.28v0.79l5,4.99L20.49,19l-4.99,-5zM9.5,14C7.01,14 5,11.99 5,9.5S7.01,5 9.5,5 14,7.01 14,9.5 11.99,14 9.5,14z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_send_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_send_black.xml
new file mode 100644
index 0000000..cbbecd5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_send_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_settings_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_settings_black.xml
new file mode 100644
index 0000000..5cac272
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_settings_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_settings_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_settings_white.xml
new file mode 100644
index 0000000..a59ecc1
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_settings_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M19.43,12.98c0.04,-0.32 0.07,-0.64 0.07,-0.98s-0.03,-0.66 -0.07,-0.98l2.11,-1.65c0.19,-0.15 0.24,-0.42 0.12,-0.64l-2,-3.46c-0.12,-0.22 -0.39,-0.3 -0.61,-0.22l-2.49,1c-0.52,-0.4 -1.08,-0.73 -1.69,-0.98l-0.38,-2.65C14.46,2.18 14.25,2 14,2h-4c-0.25,0 -0.46,0.18 -0.49,0.42l-0.38,2.65c-0.61,0.25 -1.17,0.59 -1.69,0.98l-2.49,-1c-0.23,-0.09 -0.49,0 -0.61,0.22l-2,3.46c-0.13,0.22 -0.07,0.49 0.12,0.64l2.11,1.65c-0.04,0.32 -0.07,0.65 -0.07,0.98s0.03,0.66 0.07,0.98l-2.11,1.65c-0.19,0.15 -0.24,0.42 -0.12,0.64l2,3.46c0.12,0.22 0.39,0.3 0.61,0.22l2.49,-1c0.52,0.4 1.08,0.73 1.69,0.98l0.38,2.65c0.03,0.24 0.24,0.42 0.49,0.42h4c0.25,0 0.46,-0.18 0.49,-0.42l0.38,-2.65c0.61,-0.25 1.17,-0.59 1.69,-0.98l2.49,1c0.23,0.09 0.49,0 0.61,-0.22l2,-3.46c0.12,-0.22 0.07,-0.49 -0.12,-0.64l-2.11,-1.65zM12,15.5c-1.93,0 -3.5,-1.57 -3.5,-3.5s1.57,-3.5 3.5,-3.5 3.5,1.57 3.5,3.5 -1.57,3.5 -3.5,3.5z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_share_black.xml b/ring-android/androidtv/src/main/res/drawable/ic_share_black.xml
new file mode 100644
index 0000000..3649076
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_share_black.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_speaker_phone_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_speaker_phone_white.xml
new file mode 100644
index 0000000..53d5444
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_speaker_phone_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M7,7.07L8.43,8.5c0.91,-0.91 2.18,-1.48 3.57,-1.48s2.66,0.57 3.57,1.48L17,7.07C15.72,5.79 13.95,5 12,5s-3.72,0.79 -5,2.07zM12,1C8.98,1 6.24,2.23 4.25,4.21l1.41,1.41C7.28,4 9.53,3 12,3s4.72,1 6.34,2.62l1.41,-1.41C17.76,2.23 15.02,1 12,1zM14.86,10.01L9.14,10C8.51,10 8,10.51 8,11.14v9.71c0,0.63 0.51,1.14 1.14,1.14h5.71c0.63,0 1.14,-0.51 1.14,-1.14v-9.71c0.01,-0.63 -0.5,-1.13 -1.13,-1.13zM15,20L9,20v-8h6v8z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_title.png b/ring-android/androidtv/src/main/res/drawable/ic_title.png
new file mode 100644
index 0000000..1c62b2e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_title.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_videocam_white.xml b/ring-android/androidtv/src/main/res/drawable/ic_videocam_white.xml
new file mode 100644
index 0000000..1614d02
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_videocam_white.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M17,10.5V7c0,-0.55 -0.45,-1 -1,-1H4c-0.55,0 -1,0.45 -1,1v10c0,0.55 0.45,1 1,1h12c0.55,0 1,-0.45 1,-1v-3.5l4,4v-11l-4,4z"
+        android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/ic_warning.xml b/ring-android/androidtv/src/main/res/drawable/ic_warning.xml
new file mode 100644
index 0000000..35e1310
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/ic_warning.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:pathData="M1,21h22L12,2 1,21zM13,18h-2v-2h2v2zM13,14h-2v-4h2v4z"
+        android:fillColor="#000000"/>
+</vector>
diff --git a/ring-android/androidtv/src/main/res/drawable/item_generic_selector.xml b/ring-android/androidtv/src/main/res/drawable/item_generic_selector.xml
new file mode 100644
index 0000000..231cdf4
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/item_generic_selector.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_pressed="true"><shape xmlns:android="http://schemas.android.com/apk/res/android">
+            <solid android:color="@color/darker_gray" />
+
+            <padding android:bottom="@dimen/padding_large" android:left="@dimen/padding_large" android:right="@dimen/padding_large" android:top="@dimen/padding_large" />
+        </shape></item>
+    <item android:state_focused="true"><shape xmlns:android="http://schemas.android.com/apk/res/android">
+            <solid android:color="@color/light" />
+
+            <padding android:bottom="@dimen/padding_large" android:left="@dimen/padding_large" android:right="@dimen/padding_large" android:top="@dimen/padding_large" />
+        </shape></item>
+    <item><shape xmlns:android="http://schemas.android.com/apk/res/android">
+            <solid android:color="@color/light" />
+
+            <padding android:bottom="@dimen/padding_large" android:left="@dimen/padding_large" android:right="@dimen/padding_large" android:top="@dimen/padding_large" />
+        </shape></item>
+
+</selector>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable/logo_ring_beta2.png b/ring-android/androidtv/src/main/res/drawable/logo_ring_beta2.png
new file mode 100755
index 0000000..6aa23df
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/logo_ring_beta2.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/logo_sfl_coul_rgb.png b/ring-android/androidtv/src/main/res/drawable/logo_sfl_coul_rgb.png
new file mode 100644
index 0000000..6221b9e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/logo_sfl_coul_rgb.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/movie.png b/ring-android/androidtv/src/main/res/drawable/movie.png
new file mode 100644
index 0000000..cb5cb6d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/movie.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/player_bg_gradient_dark.xml b/ring-android/androidtv/src/main/res/drawable/player_bg_gradient_dark.xml
new file mode 100644
index 0000000..a372195
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/player_bg_gradient_dark.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <gradient
+        android:angle="90"
+        android:centerColor="#00000000"
+        android:endColor="#B2000000"
+        android:startColor="#B2000000"
+        android:type="linear" />
+
+</shape>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable/shadow7.9.png b/ring-android/androidtv/src/main/res/drawable/shadow7.9.png
new file mode 100644
index 0000000..6d00d09
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/shadow7.9.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/static_rounded_background.xml b/ring-android/androidtv/src/main/res/drawable/static_rounded_background.xml
new file mode 100644
index 0000000..82bbb14
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/static_rounded_background.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke
+        android:width="0dp"
+        android:color="@android:color/transparent" />
+
+    <padding
+        android:bottom="5dp"
+        android:left="5dp"
+        android:right="5dp"
+        android:top="5dp" />
+
+    <corners android:radius="5dp" />
+
+</shape>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable/textmsg_background.xml b/ring-android/androidtv/src/main/res/drawable/textmsg_background.xml
new file mode 100644
index 0000000..151c9d7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/textmsg_background.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke
+        android:width="0dp"
+        android:color="@android:color/transparent" />
+
+    <solid android:color="#ffffff" />
+
+    <padding
+        android:left="1dp"
+        android:right="1dp"
+        android:top="1dp" />
+
+    <corners android:radius="5dp" />
+
+</shape>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable/textmsg_call_background.xml b/ring-android/androidtv/src/main/res/drawable/textmsg_call_background.xml
new file mode 100644
index 0000000..35e98e4
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/textmsg_call_background.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke
+        android:width="0dp"
+        android:color="@android:color/transparent" />
+
+    <solid android:color="#dee4e7" />
+
+    <padding
+        android:left="1dp"
+        android:right="1dp"
+        android:top="1dp" />
+
+    <corners android:radius="5dp" />
+
+</shape>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable/textmsg_me_background.xml b/ring-android/androidtv/src/main/res/drawable/textmsg_me_background.xml
new file mode 100644
index 0000000..709d1e7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/textmsg_me_background.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <stroke
+        android:width="0dp"
+        android:color="@android:color/transparent" />
+
+    <solid android:color="#cfd8dc" />
+
+    <padding
+        android:left="1dp"
+        android:right="1dp"
+        android:top="1dp" />
+
+    <corners android:radius="5dp" />
+
+</shape>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/drawable/videos_by_google_banner.png b/ring-android/androidtv/src/main/res/drawable/videos_by_google_banner.png
new file mode 100644
index 0000000..4cedb52
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/videos_by_google_banner.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/drawable/videos_by_google_icon.png b/ring-android/androidtv/src/main/res/drawable/videos_by_google_icon.png
new file mode 100644
index 0000000..20fd898
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/drawable/videos_by_google_icon.png
Binary files differ
diff --git a/ring-android/androidtv/src/main/res/layout/activity_details.xml b/ring-android/androidtv/src/main/res/layout/activity_details.xml
new file mode 100644
index 0000000..a079d57
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/layout/activity_details.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<fragment xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/details_fragment"
+    android:name="cx.ring.client.VideoDetailsFragment"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="cx.ring.client.DetailsActivity"
+    tools:deviceIds="tv" />
diff --git a/ring-android/androidtv/src/main/res/layout/activity_home.xml b/ring-android/androidtv/src/main/res/layout/activity_home.xml
new file mode 100644
index 0000000..8878761
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/layout/activity_home.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<fragment xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/main_browse_fragment"
+    android:name="cx.ring.client.MainFragment"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="cx.ring.client.HomeActivity"
+    tools:deviceIds="tv"
+    tools:ignore="MergeRootFrame" />
diff --git a/ring-android/androidtv/src/main/res/layout/playback_controls.xml b/ring-android/androidtv/src/main/res/layout/playback_controls.xml
new file mode 100644
index 0000000..d83fb80
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/layout/playback_controls.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+     Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <VideoView
+        android:id="@+id/videoView"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center" />
+
+    <fragment
+        android:id="@+id/playback_controls_fragment"
+        android:name="cx.ring.client.PlaybackOverlayFragment"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</FrameLayout>
diff --git a/ring-android/androidtv/src/main/res/values-ar/strings.xml b/ring-android/androidtv/src/main/res/values-ar/strings.xml
new file mode 100644
index 0000000..1bf2e9b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ar/strings.xml
@@ -0,0 +1,97 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring برمجية حرّة طوّرت ودعمت بواسطة</string>
+  <string name="copyright_section">الحقوق محفوظة</string>
+  <string name="contribute_section">مساهمة</string>
+  <string name="version_section">الإصدار</string>
+  <string name="email_chooser_title">إرسال بريد إلكتروني باستخدام...</string>
+  <string name="credits">الأطراف المصممة</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">الاتصال بالشبكة غير متوفر</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">حساب جديد</string>
+  <string name="ab_action_chat">رسائل نصية</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">إفتح درج الإبحار</string>
+  <string name="drawer_close">أغلق درج الإبحار</string>
+  <!--Sections-->
+  <string name="menu_item_home">الصفحة الرئيسية</string>
+  <string name="menu_item_accounts">إدارة الحسابات</string>
+  <string name="menu_item_settings">إعدادات</string>
+  <string name="menu_item_about">عن Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">أطلب رقم</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">إعادة</string>
+  <string name="hist_replay_button_stop">توقف</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="zero">%d مكالمة</item>
+    <item quantity="one">%d مكالمة</item>
+    <item quantity="two">%d مكالمة</item>
+    <item quantity="few">%d مكالمة</item>
+    <item quantity="many">%d مكالمة</item>
+    <item quantity="other">%d مكالمة</item>
+  </plurals>
+  <string name="home_transfer_complet">نقل مكتمل</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">لا إتصال موجود</string>
+  <string name="starred_contacts_title">المفضلة</string>
+  <string name="searchbar_hint">ادخل اسم أو رقم هاتف</string>
+  <string name="choose_number">إختار رقم</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">أنقل إلى مكالمة جارية أخرى:</string>
+  <string name="transfer_no_other_call">لا مكالمات أخرى قيد الإنتظار</string>
+  <string name="transfer_type_number">إكتب الرقم الذي تريد التحويل إليه:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call">مكالمة واردة</string>
+  <string name="notif_current_call">المكالمات الحالية</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">أنت:</string>
+  <string name="action_call_attended_transfer">نقل</string>
+  <string name="action_call_conference">مؤتمر</string>
+  <string name="action_call_hangup">أنهي المكالمة</string>
+  <string name="ongoing_call">مكالمة جارية</string>
+  <string name="hist_in_call">مكالمة واردة من %1$s</string>
+  <string name="hist_out_call">مكالمة خارجة من %1$s</string>
+  <string name="start_error_title">لا يمكن تشغيل Ring!</string>
+  <string name="start_error_mic_required">Ring يستحق للاذن بإستخدام الميكروفون ليشتغل</string>
+  <string name="action_call_accept">أجب عن المكالمة</string>
+  <string name="action_call_decline">رفض</string>
+  <string name="ab_action_speakerphone">فعل مكبرالصوت</string>
+  <string name="ab_action_contact_add">أضف إلى الاتصالات المعروفة</string>
+  <string name="ab_action_audio_call">مكالمة صوتية</string>
+  <string name="ab_action_video_call">مكالمة فيديو</string>
+  <string name="share_via">مشاركة عبر</string>
+  <string name="ab_action_flipcamera">قلب الكاميرا</string>
+  <!--Text messages-->
+  <string name="send_message">إبعث رسالة</string>
+  <string name="time_just_now">للتوّ</string>
+  <!--MediaPreferenceFragment-->
+  <string name="ringtone_error_title">خطأ</string>
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <!--Conversation-->
+  <string name="conversation_action_copy_peer_number">نسخ الرقم</string>
+  <!--Contacts-->
+  <string name="wizard_next">التالي</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">مجهول</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">خطأ</string>
+  <!--Pending contact requests-->
+  <string name="accept">اقبل</string>
+  <string name="refuse">أرفض</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">أرسل</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ar/strings_account.xml b/ring-android/androidtv/src/main/res/values-ar/strings_account.xml
new file mode 100644
index 0000000..06f6e3a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ar/strings_account.xml
@@ -0,0 +1,78 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">إحذف</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">الاسم المستعار</string>
+  <string name="prompt_hostname">اسم المضيف</string>
+  <string name="prompt_username">اسم المستخدم</string>
+  <string name="prompt_password">كلمة السر</string>
+  <string name="action_create_short">سجل</string>
+  <string name="error_field_required">هذا الحقل مطلوب</string>
+  <string name="dialog_wait_create">في طور إضافة حساب</string>
+  <string name="dialog_wait_create_details">الرجاء الإنتظار في حين نظيف حسابك</string>
+  <string name="help_sip">ترتيب حساب SIP موجود</string>
+  <!--Strings related to account deletion-->
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">لا حساب مسجل</string>
+  <string name="normal_accounts_titles">حسابات</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">عام</string>
+  <string name="account_basic_category">إعدادات أساسية</string>
+  <string name="account_hostname_label">اسم المضيف</string>
+  <string name="account_bootstrap_label">تشغيل ذاتي</string>
+  <string name="account_username_label">اسم المستخدم</string>
+  <string name="account_password_label">كلمة السر</string>
+  <string name="account_optionnal_category">إعدادات إختيارية</string>
+  <string name="account_useragent_label">وكيل المستخدم</string>
+  <string name="account_autoanswer_label">رد ألي</string>
+  <string name="account_proxy_field">الوكيل</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">صوت</string>
+  <string name="account_preferences_media_tab">ميديا</string>
+  <string name="account_ringtone_label">النغمات</string>
+  <string name="account_ringtone_enabled_label">فعل نغمات</string>
+  <string name="account_ringtone_path_label">موقع النغمة</string>
+  <!--Video Details-->
+  <string name="account_video_label">فيديو</string>
+  <string name="account_video_enable">فعل الفيديو</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">إعدادات متقدمة</string>
+  <string name="account_registration_exp_label">إنقضاء فترة التسجيل</string>
+  <string name="account_local_interface_label">واجهة محلية</string>
+  <string name="account_local_port_label">نقطة عبور ( port ) محلية</string>
+  <string name="account_stun_enable_label">إستعمل STUN</string>
+  <string name="account_stun_server_label">خادم STUN</string>
+  <string name="account_turn_enable_label">إستعمل TURN</string>
+  <string name="account_published_same_as_local_label">منشور مثل المحلي</string>
+  <string name="account_published_port_label">نقطة العبور (port) المنشورة</string>
+  <string name="account_published_address_label">العنوان المنشور</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">الإعتمادات</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">تأمين</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">إستعمل المواصلات TLS</string>
+  <string name="account_tls_port_label">منفذ المستمع (TLS listener port) </string>
+  <string name="account_tls_certificate_list_label">سلطات الشهادة</string>
+  <string name="account_tls_certificate_file_label">ملف الشهادة</string>
+  <string name="account_tls_private_key_file_label">ملف المفتاح الخاص</string>
+  <string name="account_tls_password_label">كلمة سر المفتاح الخاص</string>
+  <string name="account_tls_method_label">أسلوب TLS</string>
+  <string name="account_tls_ciphers_label">شيفرة TLS</string>
+  <string name="account_tls_server_name_label">اسم الخادم (server)</string>
+  <string name="account_tls_verify_server_label">تحقق من الخادم (server)</string>
+  <string name="account_tls_verify_client_label">تحقق من المستخدم</string>
+  <string name="account_tls_negotiation_timeout_sec">إنقضاء فترة التفاوض (ثواني)</string>
+  <string name="account_rtp_max_port">الحد الاقصى</string>
+  <string name="account_rtp_min_port">الحد الأدنى</string>
+  <string name="account_rtp_port_range">نطاق المنفذ RTP الصوتي</string>
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">خطأ</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">مجهول</string>
+  <!--Create account-->
+  <string name="account_creation_home">مرحبا بك في Ring</string>
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ar/strings_call.xml b/ring-android/androidtv/src/main/res/values-ar/strings_call.xml
new file mode 100644
index 0000000..664530a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ar/strings_call.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">يرنّ</string>
+    <string name="call_human_state_ringing">يتّصل</string>
+    <string name="call_human_state_current">يتم التكلم</string>
+    <string name="call_human_state_hungup">فوق</string>
+    <string name="call_human_state_busy">مشغول</string>
+    <string name="call_human_state_failure">فشل</string>
+    <string name="call_human_state_hold">توقف مؤقت</string>
+    <string name="call_human_state_unhold">استئنف</string>
+    <string name="call_human_state_over">فوق</string>
+    <string name="conference_human_state_hold">توقف مؤقت</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-ar/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-ar/strings_content_description.xml
new file mode 100644
index 0000000..bb97d39
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ar/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">مكالمة سريعة</string>
+  <string name="contact_picture_description">صورة الإتصال</string>
+  <string name="dial_numeric_pad">لوحة إتصال رقمية</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ar/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-ar/strings_preferences.xml
new file mode 100644
index 0000000..700191f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ar/strings_preferences.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">الشبكة</string>
+  <string name="pref_category_contacts">الاتصالات</string>
+  <string name="pref_category_system">النظام</string>
+  <string name="pref_category_privacy">الخصوصية</string>
+  <string name="pref_mobileData_title">بيانات الهاتف</string>
+  <string name="pref_mobileData_summary">السماح لـ Ring على شبكات 3G/LTE بالإضافة لـ Wi-Fi</string>
+  <string name="pref_systemContacts_title">استخدام جهات إتصال النظام</string>
+  <string name="pref_systemContacts_summary">استخدام جهات إتصال النظام لإظهار تفاصيل المتصل</string>
+  <string name="pref_startOnBoot_title">بدأ Ring عند بدأ التشغيل</string>
+  <string name="pref_startOnBoot_summary">تشغيل Ring في الخلفية عندما يبدأ النظام</string>
+  <string name="pref_clearHistory_title">مسح السجل</string>
+  <string name="pref_clearHistory_summary">مسح كل سجل المحادثات، هذا الإختيار لايمكن التراجع عنه</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-bg/strings.xml b/ring-android/androidtv/src/main/res/values-bg/strings.xml
new file mode 100644
index 0000000..89ff74d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-bg/strings.xml
@@ -0,0 +1,126 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring е безплатен софтуер, разработван и поддържан от</string>
+  <string name="copyright_section">Авторски права</string>
+  <string name="contribute_section">Принос</string>
+  <string name="version_section">Версия</string>
+  <string name="no_email_app_installed">Не е открито приложение за е-поща. Инсталирайте такова и ни изпратете доклад.</string>
+  <string name="email_chooser_title">Изпращане на е-писмо чрез…</string>
+  <string name="credits">Заслуги</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Няма връзка с мрежата</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Нов акаунт</string>
+  <string name="ab_action_chat">Текстово съобщение</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Отваряне на менюто</string>
+  <string name="drawer_close">Затваряне на менюто</string>
+  <!--Sections-->
+  <string name="menu_item_home">Начало</string>
+  <string name="menu_item_accounts">Управление на акаунтите</string>
+  <string name="menu_item_settings">Настройки</string>
+  <string name="menu_item_about">Относно Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Наберете номер</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Повторение</string>
+  <string name="hist_replay_button_stop">Спиране</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d разговор</item>
+    <item quantity="other">%d разговора</item>
+  </plurals>
+  <string name="home_transfer_complet">Прехвърлянето е завършено</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Няма намерен контакт</string>
+  <string name="starred_contacts_title">Любими</string>
+  <string name="searchbar_hint">Въведете име или тел. номер…</string>
+  <string name="choose_number">Изберете номер</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Прехвърляне към друг текущ разговор:</string>
+  <string name="transfer_no_other_call">Няма други чакащи разговори</string>
+  <string name="transfer_type_number">Въведете номер, към който да прехвърлите:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Входящо обаждане от %1$s</string>
+  <string name="notif_incoming_call">Входящо обаждане</string>
+  <string name="notif_outgoing_call_title">Изходящо обаждане до %1$s</string>
+  <string name="notif_outgoing_call">Изходящо обаждане</string>
+  <string name="notif_current_call_title">Текущ разговор с %1$s</string>
+  <string name="notif_current_call">Текущ разговор</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Вие:</string>
+  <string name="action_call_conference">Конференция</string>
+  <string name="action_call_hangup">Затваряне</string>
+  <string name="ongoing_call">Текущо обаждане</string>
+  <string name="hist_in_call">Входящо обаждане от %1$s</string>
+  <string name="hist_out_call">Изходящо обаждане до %1$s</string>
+  <string name="start_error_title">Не мога да пусна Ring !</string>
+  <string name="start_error_mic_required">Ring се нуждае от правото за ползване на микрофона, за да работи</string>
+  <string name="action_call_accept">Приемане</string>
+  <string name="action_call_decline">Отказ</string>
+  <string name="ab_action_speakerphone">Включване на колонката</string>
+  <string name="ab_action_contact_add">Добавяне към контактите</string>
+  <string name="ab_action_contact_add_question">Добавяне към контактите?</string>
+  <string name="ab_action_audio_call">Гласово обаждане</string>
+  <string name="share_via">Споделяне чрез</string>
+  <string name="write_a_message">Напишете съобщение</string>
+  <string name="scan_qr">Сканиране на QR-код</string>
+  <string name="ab_action_flipcamera">Обръщане на камерата</string>
+  <!--Text messages-->
+  <string name="send_message">Изпращане на съобщение</string>
+  <string name="message_sending">Изпращане на съобщение…</string>
+  <string name="time_just_now">Току-що</string>
+  <string name="permission_read_denied">Не беше позволено на приложението да чете от мястото за съхранение на данни, така че не може да работи правилно. Моля, дайте това право на приложението.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Право за използване на камерата</string>
+  <string name="permission_dialog_camera_message">Разговорите с видео изискват правото за използване на камерата. Моля, дайте това право на приложението.</string>
+  <string name="ringtone_error_title">Грешка</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring се нуждае от правото за четене на контактите, за да работи тази функционалност. Моля, разрешете го.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring се нуждае от правото за запис в историята на обажданията, за да работи тази функционалност. Моля, разрешете го.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Сканирайте QR-кода на акаунта, който искате да добавите.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Изчистване на историята?</string>
+  <string name="clear_history_dialog_message">Това действие е необратимо.</string>
+  <string name="clear_history_completed">Историята беше изчистена.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Изтриване на този разговор</string>
+  <string name="conversation_action_delete_this_title">Изтриване на този разговор?</string>
+  <string name="conversation_action_delete_this_message">Това действие е необратимо.</string>
+  <string name="conversation_action_copy_peer_number">Копиране на номера</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s е копиран</string>
+  <string name="conversation_action_select_peer_number">Изберете номер</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Добавяне на %1$s?</string>
+  <string name="prompt_new_password">Нова парола</string>
+  <string name="prompt_new_password_repeat">Повторете новата парола</string>
+  <string name="account_create_title">Създаване на акаунт за Ring</string>
+  <string name="prompt_new_username">Въведете ново потребителско име</string>
+  <string name="help_password_choose">Изберете сигурна парола, която ще запомните, за да е защитен акаунтът Ви.</string>
+  <string name="help_password_enter">Въведете основната си парола за Ring</string>
+  <string name="wizard_next">Напред</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Моят профил</string>
+  <string name="open_the_gallery">Отваряне на галерията</string>
+  <string name="take_a_photo">Снимане</string>
+  <string name="unknown">Неизвестно</string>
+  <!--Share fragment-->
+  <string name="share_message">Сканирайте този QR-код с вградения скенер на приложението Ring, което иска да се свърже с Вас.</string>
+  <string name="share_your_account_information">Споделяне на информацията аз връзка с мен</string>
+  <string name="generic_error_migration">Грешка</string>
+  <!--Pending contact requests-->
+  <string name="accept">Приемане</string>
+  <string name="refuse">Отказ</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Изпращане</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-bg/strings_account.xml b/ring-android/androidtv/src/main/res/values-bg/strings_account.xml
new file mode 100644
index 0000000..368f032
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-bg/strings_account.xml
@@ -0,0 +1,140 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Изтриване</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Псевдоним</string>
+  <string name="prompt_hostname">Име на сървъра</string>
+  <string name="prompt_username">Потребителско име</string>
+  <string name="prompt_password">Парола</string>
+  <string name="action_create_short">Регистриране</string>
+  <string name="error_field_required">Това поле е задължително</string>
+  <string name="dialog_wait_create">Добавяне на акаунт</string>
+  <string name="dialog_wait_create_details">Моля, изчакайте докато новият Ви акаунт бъде добавен…</string>
+  <string name="help_ring">Акаунтът за Ring Ви позволява да се свързвате безопасно с хора чрез директна връзка през изцяло разпределена мрежа.</string>
+  <string name="help_sip_title">Добавяне на акаунт за SIP</string>
+  <string name="help_sip">Настройка на съществуващ акаунт за SIP</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Изтриване на акаунта?</string>
+  <string name="account_delete_dialog_message">Това действие е необратимо.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Няма регистриран акаунт</string>
+  <string name="normal_accounts_titles">Акаунти</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Общи</string>
+  <string name="account_basic_category">Общи настройки</string>
+  <string name="account_alias_label">Име на акаунта</string>
+  <string name="account_hostname_label">Име на сървъра</string>
+  <string name="account_username_label">Потребителско име</string>
+  <string name="account_password_label">Парола</string>
+  <string name="account_optionnal_category">Незадължителни настройки</string>
+  <string name="account_autoanswer_label">Авт. отговор</string>
+  <string name="account_proxy_field">Прокси</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Звук</string>
+  <string name="account_preferences_media_tab">Звук и видео</string>
+  <string name="account_ringtone_label">Тонове за звънене</string>
+  <string name="account_ringtone_enabled_label">Включване на тоновете за звънене</string>
+  <string name="account_ringtone_path_label">Път към тоновете за звънене</string>
+  <!--Video Details-->
+  <string name="account_video_label">Видео</string>
+  <string name="account_video_enable">Включване на видеото</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Разширени</string>
+  <string name="account_registration_exp_label">Срок на регистрацията</string>
+  <string name="account_local_interface_label">Местен интерфейс</string>
+  <string name="account_local_port_label">Местен порт</string>
+  <string name="account_stun_enable_label">Използване на Stun</string>
+  <string name="account_stun_server_label">Сървър за Stun</string>
+  <string name="account_turn_enable_label">Използване на TURN</string>
+  <string name="account_turn_server_label">Сървър за TURN</string>
+  <string name="account_turn_username_label">Потребителско име за TURN</string>
+  <string name="account_turn_password_label">Парола за TURN</string>
+  <string name="account_published_same_as_local_label">Публикуваният да е същият като местния</string>
+  <string name="account_published_port_label">Публикуван порт</string>
+  <string name="account_published_address_label">Публикуван адрес</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Идентификационни данни</string>
+  <string name="account_credentials_edit">Редактиране на идентификационните данни</string>
+  <string name="account_credentials_add">Добавяне на идентификационни данни</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Сигурност</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Използване на TLS</string>
+  <string name="account_tls_port_label">Порт за слушане на TLS</string>
+  <string name="account_tls_certificate_list_label">Източници на сертификати</string>
+  <string name="account_tls_certificate_file_label">Файл със сертификат</string>
+  <string name="account_tls_private_key_file_label">Файл с частен ключ</string>
+  <string name="account_tls_password_label">Парола за частен ключ</string>
+  <string name="account_tls_method_label">Метод на TLS</string>
+  <string name="account_tls_ciphers_label">Шифри на TLS</string>
+  <string name="account_tls_server_name_label">Име на сървъра</string>
+  <string name="account_tls_verify_server_label">Проверка на сървъра</string>
+  <string name="account_tls_verify_client_label">Проверка на клиента</string>
+  <string name="account_tls_negotiation_timeout_sec">Време за изчакване на договарянето (сек)</string>
+  <string name="account_rtp_max_port">Максимален</string>
+  <string name="account_rtp_min_port">Минимален</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Въведете парола за дешифриране на файла.</string>
+  <string name="account_restore_decryption_password">Парола за дешифриране</string>
+  <string name="account_new_device_password">Въведете основната парола, за да отключите акаунта</string>
+  <string name="restore_dialog_title">Възстановяване</string>
+  <string name="restore_backup_wait">Моля, изчакайте…</string>
+  <string name="error_password_char_count">Най-малко 6 знака</string>
+  <string name="error_passwords_not_equals">Паролите не съвпадат</string>
+  <string name="restore_failed_dialog_title">Неуспешно възстановяване</string>
+  <string name="restore_failed_dialog_msg">Възникна грешка</string>
+  <string name="export_account_wait_title">Моля, изчакайте…</string>
+  <string name="export_account_wait_message">Публикуване на новата информация за акаунта</string>
+  <string name="account_export_end_decryption_message">Отключването на акаунта Ви с предоставената парола не беше успешно.</string>
+  <string name="account_export_end_network_title">Мрежова грешка</string>
+  <string name="account_export_end_network_message">Акаунтът не може да бъде изнесен през мрежата. Проверете връзката си.</string>
+  <string name="account_export_end_error_title">Грешка</string>
+  <string name="account_export_end_error_message">Акаунтът не може да бъде изнесен. Възникна непозната грешка.</string>
+  <string name="account_enter_password">Въведете парола</string>
+  <string name="account_contact_me">Свържете се с мен в Ring !</string>
+  <string name="update_account">Обновяване на акаунта</string>
+  <string name="ring_account">Акаунт</string>
+  <string name="account_migration_title_dialog">Пренасяне на акаунта</string>
+  <string name="account_update_needed">Нужно е обновяване</string>
+  <string name="account_creation_file_too_big">Файлът е твърде голям</string>
+  <string name="account_cannot_read">Неуспешен прочит на: %1$s</string>
+  <string name="account_cannot_be_found_title">Акаунтът не може да бъде открит</string>
+  <string name="account_cannot_be_found_message">Акаунтът не може да бъде открит в мрежата на Ring.\nУверете се, че е бил изнесен от Ring чрез съществуващо устройство, както и че данните за идентификация са правилни</string>
+  <string name="account_no_network_title">Неуспешна връзка с мрежата</string>
+  <string name="account_no_network_message">Акаунтът не може да бъде добавен, тъй като Ring не може да се свърже с разпределената мрежа. Проверете връзката на устройството си.</string>
+  <string name="account_device_added_title">Акаунтът е добавен на устройството</string>
+  <string name="account_device_added_message">Настройката на акаунта Ви на това устройство беше успешна.</string>
+  <string name="account_device_updated_title">Акаунтът на устройството е обновен</string>
+  <string name="account_device_updated_message">Вие обновихте акаунта си успешно.</string>
+  <string name="account_link_button">Свързване на това устройство с акаунт</string>
+  <string name="account_import_title">Свързване с съществуващ акаунт</string>
+  <string name="account_link_prompt_pin">Въведете ПИН</string>
+  <string name="account_wizard_title">Добре дошли в</string>
+  <string name="account_new_button">Създаване на акаунт за Ring</string>
+  <string name="account_link_export_button">Свързване на друго устройство с този акаунт</string>
+  <string name="account_link_export_info">За да използвате този акаунт на други устройства, трябва първо да го направите видим в Ring. Това ще създаде ПИН код , който трябва да въведете на новото устройство, за да настроите акаунта. Кодът има давност 10 минути\n\nМоля, въведете паролата си, за да започнем:</string>
+  <string name="account_start_export_button">Създаване на ПИН код</string>
+  <string name="account_end_export_button">затваряне</string>
+  <string name="account_end_export_infos">Вашият ПИН код е:\n\n%%\n\nЗа да завършите процеса, трябва да пуснете Ring на новото устройство. Създайте нов профил чрез „Свързване на това устройство с акаунт“. Кодът има давност 10 минути.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Името не може да бъде регистрирано: грешна парола.</string>
+  <string name="register_name_invalid">Името не може да бъде регистрирано: несъществуващо име.</string>
+  <string name="register_name_already_taken">Името не може да бъде регистрирано: името е заето.</string>
+  <string name="register_name_network_error">Името не може да бъде регистрирано: грешка в мрежата или сървъра.</string>
+  <string name="error_username_empty">Въведете потребителско име</string>
+  <string name="no_registered_name_for_account">Няма открито регистрирано име за този акаунт</string>
+  <string name="register_name">Регистриране на име</string>
+  <string name="trying_to_register_name">Протича опит за регистриране на името</string>
+  <string name="registered_username">Регистрирано потребителско име</string>
+  <string name="username_already_taken">Потребителското име е вече заето</string>
+  <string name="invalid_username">Грешно потребителско име</string>
+  <string name="account_status_connecting">Свързване</string>
+  <string name="account_status_unknown">Неизвестно</string>
+  <!--Create account-->
+  <string name="account_creation_home">Добре дошли в Ring</string>
+  <!--Devices-->
+  <string name="enter_password">Въведете парола</string>
+  <string name="revoke_device_wait_title">Моля, изчакайте…</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-bg/strings_call.xml b/ring-android/androidtv/src/main/res/values-bg/strings_call.xml
new file mode 100644
index 0000000..71bd86b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-bg/strings_call.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Позвъняване</string>
+    <string name="call_human_state_connecting">Свързване</string>
+    <string name="call_human_state_ringing">Обаждане</string>
+    <string name="call_human_state_current">Говорене</string>
+    <string name="call_human_state_hungup">Край</string>
+    <string name="call_human_state_busy">Зает</string>
+    <string name="call_human_state_failure">Неуспешно</string>
+    <string name="call_human_state_hold">Задържане</string>
+    <string name="call_human_state_unhold">Подновяване</string>
+    <string name="call_human_state_over">Край</string>
+    <string name="conference_human_state_hold">Задържане</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-bg/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-bg/strings_content_description.xml
new file mode 100644
index 0000000..1aa8b1e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-bg/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Бързо обаждане</string>
+  <string name="contact_picture_description">Снимка на контакта</string>
+  <string name="dial_numeric_pad">Цифрова клавиатура</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-bg/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-bg/strings_preferences.xml
new file mode 100644
index 0000000..41a2693
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-bg/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Мрежа</string>
+  <string name="pref_category_contacts">Контакти</string>
+  <string name="pref_category_system">Система</string>
+  <string name="pref_category_privacy">Поверителност</string>
+  <string name="pref_mobileData_title">Мобилни данни</string>
+  <string name="pref_mobileData_summary">Позволяване на работата на Ring на мрежи от вида 3G/LTE, в допълнение към безжичните мрежи</string>
+  <string name="pref_systemContacts_title">Използване на системните контакти</string>
+  <string name="pref_systemContacts_summary">Използване на системните контакти за показване на информация при обаждане.</string>
+  <string name="pref_systemDialer_title">Системни разговори с Ring</string>
+  <string name="pref_systemDialer_summary">Използване на Ring за системните разговори, когато е възможно.</string>
+  <string name="pref_startOnBoot_title">Пускане на Ring при включване</string>
+  <string name="pref_startOnBoot_summary">Пускане на Ring на заден фон когато системата се включва.</string>
+  <string name="pref_clearHistory_title">Изчистване на историята</string>
+  <string name="pref_clearHistory_summary">Изчистване на цялата история на разговорите. Това действие е необратимо.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ca/strings.xml b/ring-android/androidtv/src/main/res/values-ca/strings.xml
new file mode 100644
index 0000000..04d8081
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ca/strings.xml
@@ -0,0 +1,130 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring és software lliure desenvolupat i mantingut per</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Contribueix</string>
+  <string name="version_section">Versió</string>
+  <string name="no_email_app_installed">No s\'ha trobat cap aplicació de correu, instal·leu una per enviar-nos un informe </string>
+  <string name="email_chooser_title">Enviar correu fent servir...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">No hi ha connexió a la xarxa</string>
+  <string name="error_mobile_network_available_but_disabled">Per favor doneu accés a la xarxa mòbil en la pantalla d\'ajustaments.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nou compte</string>
+  <string name="ab_action_chat">Missatge de text</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Obrir el calaix de navegació</string>
+  <string name="drawer_close">Tancar el calaix de navegació</string>
+  <!--Sections-->
+  <string name="menu_item_home">Inici</string>
+  <string name="menu_item_accounts">Gestionar els comptes</string>
+  <string name="menu_item_settings">Opcions</string>
+  <string name="menu_item_share">Comparteix el meu contacte</string>
+  <string name="menu_item_about">Sobre Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Marca un número</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Repetir</string>
+  <string name="hist_replay_button_stop">Para</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversa</item>
+    <item quantity="other">%d Converses</item>
+  </plurals>
+  <string name="home_transfer_complet">Transferència completada</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Contacte no trobat</string>
+  <string name="starred_contacts_title">Favorits</string>
+  <string name="searchbar_hint">Fiqueu un nom o número de telèfon</string>
+  <string name="choose_number">Escolliu un número</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transferir a altra trucada actual:</string>
+  <string name="transfer_no_other_call">No hi ha altres trucades pendents</string>
+  <string name="transfer_type_number">Escriure un número per transferir a:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Trucada entrant de %1$s</string>
+  <string name="notif_incoming_call">Trucada entrant</string>
+  <string name="notif_outgoing_call_title">Trucada sortint de %1$s</string>
+  <string name="notif_outgoing_call">Trucada sortint</string>
+  <string name="notif_current_call_title">Trucada actual amb %1$s</string>
+  <string name="notif_current_call">Trucada actual</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Tu:</string>
+  <string name="action_call_attended_transfer">Transferència Atesa</string>
+  <string name="action_call_conference">Conferència</string>
+  <string name="action_call_hangup">Penjar</string>
+  <string name="ongoing_call">Trucada en marxa</string>
+  <string name="hist_in_call">Trucada entrant de %1$s</string>
+  <string name="hist_out_call">Trucada en marxa de %1$s</string>
+  <string name="start_error_title">No es pot iniciar Ring !</string>
+  <string name="start_error_mic_required">Ring necessita el permís del micròfon per funcionar.</string>
+  <string name="action_call_accept">Agafar trucada</string>
+  <string name="action_call_decline">Rebutjar</string>
+  <string name="ab_action_speakerphone">Habilitar l\'altaveu</string>
+  <string name="ab_action_contact_add">Afegir als contactes</string>
+  <string name="ab_action_contact_add_question">Afegir als contactes ?</string>
+  <string name="ab_action_audio_call">Trucada de veu</string>
+  <string name="ab_action_video_call">Videotrucada </string>
+  <string name="share_via">Comparteix via</string>
+  <string name="write_a_message">Escriu un missatge</string>
+  <string name="scan_qr">Escanejar un codi QR</string>
+  <string name="ab_action_flipcamera">Canviar de càmera</string>
+  <!--Text messages-->
+  <string name="send_message">Enviar el missatge</string>
+  <string name="message_sending">Enviant missatge</string>
+  <string name="time_just_now">Ara mateix</string>
+  <string name="permission_read_denied">L\'aplicació no té permís per llegir al seu emmagatzematge. Per tant, no pot funcionar. Si us plau, considereu la concessió d\'aquest permís</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Permís de la càmera</string>
+  <string name="permission_dialog_camera_message">Les videotrucades necessiten el permís de la càmera per feuncionar. Si us plau, considereu habilitar-lo.</string>
+  <string name="ringtone_error_title">Error</string>
+  <string name="ringtone_error_format_not_supported">Aquest format no és compatible.</string>
+  <string name="ringtone_error_size_too_big">L\'arxiu és massa gran. La mida màxim és de %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring necessita el permís de llegir contactes per a habilitar aquesta funcionalitat. Si us plau, concediu-lo.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring necessita el permís d\'escriure al registre de trucades per a habilitar aquesta funcionalitat. Si us plau, concediu-lo.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Escanejar el codi QR del compte que vulgueu afegir.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Netejar l\'historial ?</string>
+  <string name="clear_history_dialog_message">Aquesta acció no pot ser desfeta.</string>
+  <string name="clear_history_completed">L\'historial s\'ha netejat.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Esborra aquesta conversa</string>
+  <string name="conversation_action_delete_this_title">Esborrar aquesta conversa ?</string>
+  <string name="conversation_action_delete_this_message">Aquesta acció no pot ser desfeta.</string>
+  <string name="conversation_action_copy_peer_number">Copia el número</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s copiat al porta-retalls</string>
+  <string name="conversation_action_select_peer_number">Seleccia un número</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Afegir %1$s ?</string>
+  <string name="prompt_new_password">Nova contrasenya</string>
+  <string name="prompt_new_password_repeat">Repetir la nova contrasenya</string>
+  <string name="account_create_title">Crear un compte de Ring</string>
+  <string name="prompt_new_username">Escriu un nou nom d\'usuari</string>
+  <string name="help_password_choose">Escollir una contrasenya forta que haureu de recordar per protegir el vostre compte de Ring.</string>
+  <string name="help_password_enter">Escriure la contrasenya del vostre compte principal de Ring</string>
+  <string name="help_pin_enter">Ficar el PIN d\'altre compte configurat de Ring. Feu servir la funció \"exportar compte a Ring\" per obtenir el PIN.</string>
+  <string name="wizard_next">Següent</string>
+  <!--MenuHeaderView-->
+  <string name="profile">El meu perfil</string>
+  <string name="open_the_gallery">Obrir la galeria</string>
+  <string name="take_a_photo">Fer una foto</string>
+  <string name="unknown">Desconegut</string>
+  <!--Share fragment-->
+  <string name="share_message">Escaneja aquest codi QR amb l\'escàner de l\'aplicació Ring que vulga comunicar-se amb tu.</string>
+  <string name="share_your_account_information">Compartir la meua informació de contacte</string>
+  <string name="generic_error_migration">Error</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <string name="send_request_button">Enviar</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ca/strings_account.xml b/ring-android/androidtv/src/main/res/values-ca/strings_account.xml
new file mode 100644
index 0000000..979ca1b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ca/strings_account.xml
@@ -0,0 +1,44 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Esborrar</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Àlies</string>
+  <string name="prompt_hostname">Nom d\'amfitrió</string>
+  <string name="prompt_username">Nom d\'usuari</string>
+  <string name="prompt_password">Contrasenya</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_message">Aquesta acció no pot ser desfeta.</string>
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Comptes</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">General</string>
+  <string name="account_hostname_label">Nom d\'amfitrió</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Nom d\'usuari</string>
+  <string name="account_password_label">Contrasenya</string>
+  <string name="account_proxy_field">Intermediari</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Àudio</string>
+  <string name="account_preferences_media_tab">Mitjans</string>
+  <string name="account_ringtone_label">To de trucada</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vídeo</string>
+  <string name="account_video_enable">Habilita el vídeo</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avançat</string>
+  <string name="account_turn_enable_label">Utilitza TURN</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Seguretat</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">Error</string>
+  <string name="account_device_updated_message">S\'ha actualitzat correctament el vostre compte de Ring.</string>
+  <string name="account_new_button">Crear un compte de Ring</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">Desconegut</string>
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ca/strings_call.xml b/ring-android/androidtv/src/main/res/values-ca/strings_call.xml
new file mode 100644
index 0000000..a8ae3f6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ca/strings_call.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_hold">En espera</string>
+    <string name="conference_human_state_hold">En espera</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-ca/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-ca/strings_preferences.xml
new file mode 100644
index 0000000..5c1e32f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ca/strings_preferences.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_contacts">Contactes</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-cs-rCZ/strings.xml b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings.xml
new file mode 100644
index 0000000..3cafe9c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings.xml
@@ -0,0 +1,135 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring je svobodný software, jejž vyvíjí a podporuje</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Přispět</string>
+  <string name="version_section">Verze</string>
+  <string name="no_email_app_installed">Nenalezena mailová aplikace, nějakou si nainstalujte, abyste nám poslali hlášení</string>
+  <string name="email_chooser_title">Poslat zprávu pomocí…</string>
+  <string name="description">Ring je svobodný software určený k univerzální komunikaci, který respektuje svobody a práva uživatelů.</string>
+  <string name="credits">Zásluhy</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Chybí připojení</string>
+  <string name="error_mobile_network_available_but_disabled">Povolte prosím v nastavení přístup k mobilním datům</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nový účet</string>
+  <string name="ab_action_chat">Textové zprávy</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Otevřít navigační šuplík</string>
+  <string name="drawer_close">Zavřít navigační šuplík</string>
+  <!--Sections-->
+  <string name="menu_item_home">Domov</string>
+  <string name="menu_item_accounts">Spravovat účty</string>
+  <string name="menu_item_settings">Nastavení</string>
+  <string name="menu_item_share">Sdílet můj kontakt</string>
+  <string name="menu_item_about">O Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Vytočit číslo</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Znovu přehrát</string>
+  <string name="hist_replay_button_stop">Zastavit</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Konverzace</item>
+    <item quantity="few">%d Konverzace</item>
+    <item quantity="other">%d konverzací</item>
+  </plurals>
+  <string name="home_transfer_complet">Přesměrování hotovo</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Nenalezen žádný kontakt</string>
+  <string name="starred_contacts_title">Oblíbené</string>
+  <string name="searchbar_hint">Vložte jméno nebo číslo…</string>
+  <string name="choose_number">Vyberte číslo</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Přesměrovat na čekající hovor:</string>
+  <string name="transfer_no_other_call">Žádné čekající hovory</string>
+  <string name="transfer_type_number">Vložte číslo, na něž chcete hovor přesměrovat:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Příchozí hovor od %1$s</string>
+  <string name="notif_incoming_call">Příchozí hovor</string>
+  <string name="notif_outgoing_call_title">Odchozí hovor k %1$s</string>
+  <string name="notif_outgoing_call">Odchozí hovor</string>
+  <string name="notif_current_call_title">Současný hovor s %1$s</string>
+  <string name="notif_current_call">Současný hovor</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Vy:</string>
+  <string name="action_call_attended_transfer">Přesměrování na čekající hovor</string>
+  <string name="action_call_conference">Konference</string>
+  <string name="action_call_hangup">Zavěsit</string>
+  <string name="ongoing_call">Probíhající hovor</string>
+  <string name="hist_in_call">Příchozí hovor %1$s</string>
+  <string name="hist_out_call">Odchozí hovor %1$s</string>
+  <string name="start_error_title">Nelze spustit Ring!</string>
+  <string name="start_error_mic_required">Aby Ring správně pracoval, vyžaduje přístup k mikrofonu.</string>
+  <string name="action_call_accept">Přijmout</string>
+  <string name="action_call_decline">Odmítnout</string>
+  <string name="ab_action_speakerphone">Zapnout reproduktor</string>
+  <string name="ab_action_contact_add">Přidat do kontaktů</string>
+  <string name="ab_action_contact_add_question">Přidat do kontaktů?</string>
+  <string name="ab_action_audio_call">Audio hovor</string>
+  <string name="ab_action_video_call">Video hovor</string>
+  <string name="share_via">Sdílet přes</string>
+  <string name="write_a_message">Napsat zprávu</string>
+  <string name="scan_qr">Skenovat QR kód</string>
+  <string name="ab_action_flipcamera">Otočit kameru</string>
+  <!--Text messages-->
+  <string name="send_message">Odeslat zprávu</string>
+  <string name="message_sending">Odesílám zprávu…</string>
+  <string name="time_just_now">Právě teď</string>
+  <string name="permission_read_denied">Aplikace nemohla číst z vašeho úložiště, takže nemůže správně fungovat. Prosím zvažte poskytnutí jí tohoto povolení</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Povolení ke kameře</string>
+  <string name="permission_dialog_camera_message">Video konverzace vyžadují povolení ke kameře. Prosím zvažte jeho povolení.</string>
+  <string name="ringtone_error_title">Chyba</string>
+  <string name="ringtone_error_format_not_supported">Tento formát je nepodporovaný.</string>
+  <string name="ringtone_error_size_too_big">Soubor je příliš velký. Maximální velikost je %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Pro tuto funkci Ring vyžaduje povolení „Číst kontakty“. Povolte jej prosím.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Pro tuto funkci Ring vyžaduje povolení „Zapisovat záznam hovorů“. Povolte jej prosím.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Oskenujte QR kód účtu, který chcete přidat.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Vymazat historii?</string>
+  <string name="clear_history_dialog_message">Tuto činnost nelze vrátit zpět.</string>
+  <string name="clear_history_completed">Historie byla vymazána.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Odstranit tuto konverzaci</string>
+  <string name="conversation_action_delete_this_title">Odstranit tuto konverzaci?</string>
+  <string name="conversation_action_delete_this_message">Tuto činnost nelze vrátit zpět.</string>
+  <string name="conversation_action_copy_peer_number">Kopírovat číslo</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s zkopírováno do schránky</string>
+  <string name="conversation_action_select_peer_number">Vyberte číslo</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Přidat %1$s?</string>
+  <string name="prompt_new_password">Nové heslo</string>
+  <string name="prompt_new_password_repeat">Zopakujte nové heslo</string>
+  <string name="account_create_title">Vytvořit účet Ring</string>
+  <string name="prompt_new_username">Zadejte nové uživatelské jméno</string>
+  <string name="help_password_choose">K ochraně účtu Ring si zvolte silné heslo, které si dovedete zapamatovat.</string>
+  <string name="help_password_enter">Zadejte hlavní heslo ke svému účtu Ring</string>
+  <string name="help_pin_enter">Zadejte PIN z jiného nastaveného účtu Ring. Abyste PIN získali, použijte volbu „exportovat účet na Ring“.</string>
+  <string name="wizard_next">Další</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Můj profil</string>
+  <string name="open_the_gallery">Otevřít galerii</string>
+  <string name="take_a_photo">Pořídit fotku</string>
+  <string name="unknown">Neznámé</string>
+  <!--Share fragment-->
+  <string name="share_message">Naskenujte QR kód zabudovaným skenerem aplikace Ring, která s vámi chce komunikovat.</string>
+  <string name="share_your_account_information">Sdílet mé kontaktní informace</string>
+  <string name="generic_error_migration">Chyba</string>
+  <!--Pending contact requests-->
+  <string name="accept">Přijmout</string>
+  <string name="refuse">Odmítnout</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Odeslat</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_account.xml b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_account.xml
new file mode 100644
index 0000000..28c638b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_account.xml
@@ -0,0 +1,156 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Odstranit</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Přezdívka</string>
+  <string name="prompt_hostname">Hostitelské jméno</string>
+  <string name="prompt_username">Uživatelské jméno</string>
+  <string name="prompt_password">Heslo</string>
+  <string name="action_create">Vytvořit účet</string>
+  <string name="action_create_short">Zaregistrovat</string>
+  <string name="error_field_required">Toto pole je vyžadováno</string>
+  <string name="dialog_wait_create">Přidávám účet</string>
+  <string name="dialog_wait_create_details">Prosím vyčkejte, než bude váš účet přidán…</string>
+  <string name="dialog_wait_update">Aktualizuje se účet</string>
+  <string name="dialog_wait_update_details">Počkejte prosím, než bude váš účet aktualizován…</string>
+  <string name="dialog_warn_ip2ip_account_title">Vytvořit prázdný účet SIP ?</string>
+  <string name="dialog_warn_ip2ip_account_message">Vytváříte prázdný účet SIP bez platného hostitelského jména.
+Budete moci pouze vytvářet a přijímat přímé ip hovory.
+Svůj účet můžete upravit později</string>
+  <string name="help_ring">Účet Ring vám umožňuje spojit se s lidmi bezpečně, uživatel s uživatelem, skrze plně decentralizovanou síť.</string>
+  <string name="help_sip_title">Přidat váš účet SIP</string>
+  <string name="help_sip">Nastavit existující účet SIP.</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Odstranit účet?</string>
+  <string name="account_delete_dialog_message">Tuto činnost nelze vrátit zpět.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Žádný registrovaný účet</string>
+  <string name="normal_accounts_titles">Účty</string>
+  <string name="normal_devices_titles">Známá zařízení připojená k tomuto účtu Ring</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Obecné</string>
+  <string name="account_basic_category">Základní nastavení</string>
+  <string name="account_alias_label">Jméno účtu</string>
+  <string name="account_hostname_label">Hostitelské jméno</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Uživatelské jméno</string>
+  <string name="account_password_label">Heslo</string>
+  <string name="account_optionnal_category">Doplňková nastavení</string>
+  <string name="account_useragent_label">Identifikace klienta</string>
+  <string name="account_autoanswer_label">Automatická odpověď</string>
+  <string name="account_upnp_label">Povolit UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Zvuk</string>
+  <string name="account_preferences_media_tab">Média</string>
+  <string name="account_ringtone_label">Vyzvánění</string>
+  <string name="account_ringtone_enabled_label">Zapnout vyzvánění</string>
+  <string name="account_ringtone_path_label">Cesta vyzvánění</string>
+  <string name="account_ringtone_custom_label">Použít vlastní vyzvánění</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Povolit video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Pokročilé</string>
+  <string name="account_registration_exp_label">Vypršení registrace</string>
+  <string name="account_local_interface_label">Místní rozhraní</string>
+  <string name="account_local_port_label">Místní port</string>
+  <string name="account_stun_enable_label">Použít Stun</string>
+  <string name="account_stun_server_label">Server Stun</string>
+  <string name="account_turn_enable_label">Použít TURN</string>
+  <string name="account_turn_server_label">Server TURN</string>
+  <string name="account_turn_username_label">Uživatelské jméno TURN</string>
+  <string name="account_turn_password_label">Heslo TURN</string>
+  <string name="account_published_same_as_local_label">Zveřejněné stejně jako místní</string>
+  <string name="account_published_port_label">Zveřejněný port</string>
+  <string name="account_published_address_label">Zveřejněná adresa</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Ověřovací údaje</string>
+  <string name="account_credentials_edit">Upravit ověřovací údaje</string>
+  <string name="account_credentials_add">Přidat ověřovací údaje</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Zabezpečení</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Použít Transport TLS</string>
+  <string name="account_tls_port_label">Naslouchací port TLS</string>
+  <string name="account_tls_certificate_list_label">Autority certifikátů</string>
+  <string name="account_tls_certificate_file_label">Soubor certifikátu</string>
+  <string name="account_tls_private_key_file_label">Soubor soukromého klíče</string>
+  <string name="account_tls_password_label">Heslo soukromého klíče</string>
+  <string name="account_tls_method_label">Metoda TLS</string>
+  <string name="account_tls_ciphers_label">Šifry TLS</string>
+  <string name="account_tls_server_name_label">Jméno serveru</string>
+  <string name="account_tls_verify_server_label">Ověřit server</string>
+  <string name="account_tls_verify_client_label">Ověřit klient</string>
+  <string name="account_tls_negotiation_timeout_sec">Limit vyjednávání (sekundy)</string>
+  <string name="account_rtp_max_port">Maximum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Rozsah portů zvukového RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Obnovit účet</string>
+  <string name="account_restore_message">Vložte heslo pro dešifrování souboru.</string>
+  <string name="account_restore_decryption_password">Dešifrovací heslo</string>
+  <string name="account_new_device_password">Pro odemčení účtu zadejte hlavní heslo</string>
+  <string name="restore_dialog_title">Obnovuje se</string>
+  <string name="restore_backup_wait">Počkejte prosím…</string>
+  <string name="error_password_char_count">Nejméně 6 znaků</string>
+  <string name="error_passwords_not_equals">Hesla se neshodují</string>
+  <string name="restore_failed_dialog_title">Obnova selhala</string>
+  <string name="restore_failed_dialog_msg">Nastala chyba</string>
+  <string name="export_account_wait_title">Počkejte prosím…</string>
+  <string name="export_account_wait_message">Zveřejňují se informace o novém účtu</string>
+  <string name="account_export_end_decryption_message">Zadaným heslem nebylo možné váš účet odemknout.</string>
+  <string name="account_export_end_network_title">Chyba sítě</string>
+  <string name="account_export_end_network_message">Nebylo možné exportovat účet do sítě. Zkontrolujte si připojení.</string>
+  <string name="account_export_end_error_title">Chyba</string>
+  <string name="account_export_end_error_message">Nebylo možné účet exportovat. Nastala neznámá chyba.</string>
+  <string name="account_enter_password">Zadejte heslo</string>
+  <string name="account_contact_me">Kontaktujte mě na Ring!</string>
+  <string name="update_account">Aktualizovat účet</string>
+  <string name="ring_account">Účet Ring</string>
+  <string name="account_migration_title_dialog">Převod účtu</string>
+  <string name="account_update_needed">Nutná aktualizace</string>
+  <string name="account_creation_file_too_big">Soubor je příliš velký</string>
+  <string name="account_cannot_read">Nelze přečíst %1$s</string>
+  <string name="account_cannot_be_found_title">Nelze nalézt účet</string>
+  <string name="account_cannot_be_found_message">Na síti Ring nebyl účet nalezen.\nUjistěte se, že byl exportován na Ring z existujícího zařízení a že jsou přihlašovací údaje správné.</string>
+  <string name="account_no_network_title">Nelze se připojit k síti</string>
+  <string name="account_no_network_message">Nebylo možno přidat účet, protože se Ring nedokázal připojit k distribuované síti. Zkontrolujte si síťové připojení.</string>
+  <string name="account_device_added_title">Přístroj přidán k účtu</string>
+  <string name="account_device_added_message">Úspěšně jste si na tomto zařízení nastavili svůj účet Ring.</string>
+  <string name="account_device_updated_title">Aktualizován přístroj v účtu</string>
+  <string name="account_device_updated_message">Úspěšně jste si aktualizovali účet Ring.</string>
+  <string name="account_link_button">Připojit toto zařízení k účtu</string>
+  <string name="account_import_title">Připojit k už existujícímu účtu</string>
+  <string name="account_link_prompt_pin">Zadejte PIN</string>
+  <string name="account_wizard_title">Vítejte v</string>
+  <string name="account_new_button">Vytvořit účet Ring</string>
+  <string name="account_link_export_button">Připojit k tomuto účtu další zařízení</string>
+  <string name="account_link_export_info">Pro použití tohoto účtu na dalších zařízeních jej musíte nejdříve vystavit na Ring. Tím se vygeneruje kód PIN, který musíte zadat na novém zařízení, kde nastavujete účet. PIN zůstává platný 10 minut. \n\nPro začátek prosím poskytněte své heslo:</string>
+  <string name="account_start_export_button">Vygenerovat PIN</string>
+  <string name="account_end_export_button">zavřít</string>
+  <string name="account_end_export_infos">Váš PIN je:\n\n%%\n\nK dokončení tohoto procesu otevřete na novém zařízení Ring. Přihlaste se k účtu pomocí „Připojit toto zařízení k účtu“. Váš PIN zůstává platný 10 minut.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Jméno nelze zaregistrovat: chybné heslo k účtu.</string>
+  <string name="register_name_invalid">Jméno nelze zaregistrovat: neplatné jméno.</string>
+  <string name="register_name_already_taken">Jméno nelze zaregistrovat: jméno je již zabrané.</string>
+  <string name="register_name_network_error">Jméno nelze zaregistrovat: chyba sítě nebo serveru.</string>
+  <string name="error_username_empty">Zadejte uživatelské jméno</string>
+  <string name="no_registered_name_for_account">Pro tento účet nenalezeno žádné registrované jméno</string>
+  <string name="register_name">Zaregistrovat jméno</string>
+  <string name="trying_to_register_name">Pokus o registraci jména</string>
+  <string name="registered_username">Registrované uživatelské jméno</string>
+  <string name="register_username">Zaregistrovat jméno veřejně (experimentální)</string>
+  <string name="username_already_taken">Uživatelské jméno je již obsazené</string>
+  <string name="invalid_username">Neplatné uživatelské jméno</string>
+  <string name="account_status_connecting">Spojování</string>
+  <string name="account_status_unknown">Neznámé</string>
+  <!--Create account-->
+  <string name="account_creation_home">Vítejte v Ringu</string>
+  <string name="account_creation_profile">Vytvořit vlastní profil</string>
+  <!--Devices-->
+  <string name="enter_password">Zadejte heslo</string>
+  <string name="revoke_device_wait_title">Počkejte prosím…</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_call.xml b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_call.xml
new file mode 100644
index 0000000..db68fc5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Vyzvánění</string>
+    <string name="call_human_state_connecting">Spojování</string>
+    <string name="call_human_state_ringing">Volání</string>
+    <string name="call_human_state_current">Probíhá hovor</string>
+    <string name="call_human_state_hungup">Hovor skončil</string>
+    <string name="call_human_state_busy">Zaneprázdněn</string>
+    <string name="call_human_state_failure">Hovor selhal</string>
+    <string name="call_human_state_hold">Pozastavit</string>
+    <string name="call_human_state_unhold">Pokračovat v hovoru</string>
+    <string name="call_human_state_over">Hovor skončil</string>
+    <string name="call_human_state_none">Nic</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Aktivní připojen</string>
+    <string name="conference_human_state_active_detached">Aktivní odpojen</string>
+    <string name="conference_human_state_active_attached_rec">Aktivní připoji záznam</string>
+    <string name="conference_human_state_active_detached_rec">Aktivní odpojil záznam</string>
+    <string name="conference_human_state_hold">Pozastavit</string>
+    <string name="conference_human_state_hold_rec">Pozastavit nahrávání</string>
+    <string name="conference_human_state_default">Nic</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_content_description.xml
new file mode 100644
index 0000000..93a8b25
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Rychlý Hovor</string>
+  <string name="contact_picture_description">Obrázek Kontaktu</string>
+  <string name="dial_numeric_pad">Číselná klávesnice</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_preferences.xml
new file mode 100644
index 0000000..d99036b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-cs-rCZ/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Síť</string>
+  <string name="pref_category_contacts">Kontakty</string>
+  <string name="pref_category_system">Systém</string>
+  <string name="pref_category_privacy">Soukromí</string>
+  <string name="pref_mobileData_title">Mobilní data</string>
+  <string name="pref_mobileData_summary">Povolit Ring na 3G/LTE sítích dodatečně k WiFi</string>
+  <string name="pref_systemContacts_title">Použít systémové kontakty</string>
+  <string name="pref_systemContacts_summary">Použít systémové kontakty pro zobrazení údajů volajícího.</string>
+  <string name="pref_systemDialer_title">Vykonávat systémové hovory skrze Ring</string>
+  <string name="pref_systemDialer_summary">Použít Ring k vykonání systémových hovorů, kdy to bude možné.</string>
+  <string name="pref_startOnBoot_title">Spustit Ring po zapnutí</string>
+  <string name="pref_startOnBoot_summary">Spustit Ring v pozadí systému po jeho nastartování.</string>
+  <string name="pref_clearHistory_title">Vymazat historii</string>
+  <string name="pref_clearHistory_summary">Vymaže celou historii konverzací. Tuto činnost nelze vrátit zpět.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-da-rDK/strings.xml b/ring-android/androidtv/src/main/res/values-da-rDK/strings.xml
new file mode 100644
index 0000000..2523535
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-da-rDK/strings.xml
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Tilbagemelding</string>
+  <string name="report">&lt;u&gt;Send os en email&lt;/u&gt;</string>
+  <string name="section_license">Licens</string>
+  <string name="sponsor_section">Ring er fri software, udviklet og støttet af</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Bidrag</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">Ingen email-app fundet, installér en for at sende os en rapport</string>
+  <string name="no_browser_app_installed">Ingen web-browser applikation fundet, installér en for at se denne side</string>
+  <string name="email_chooser_title">Send mail ved brug af...</string>
+  <string name="website_chooser_title">Vis hjemmeside med...</string>
+  <string name="license">Denne software er gjort tilgængelig \"som beset\", uden nogen former for garantier. For flere detaljer, se
+&lt;u&gt;GNU General Public License version 3 eller senere&lt;/u&gt;</string>
+  <string name="description">Ring er fri software til universel kommunikation som respekterer sine brugeres frihed og privatliv.</string>
+  <string name="credits">Krediteringer</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Ingen netværksforbindelse</string>
+  <string name="error_mobile_network_available_but_disabled">Venligst tillad adgang til telefon netværk under Indstillinger.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Ny konto</string>
+  <string name="ab_action_chat">Text-besked</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Åben navigationsskuffen</string>
+  <string name="drawer_close">Luk navigationsskuffen</string>
+  <!--Sections-->
+  <string name="menu_item_home">Hjem</string>
+  <string name="menu_item_accounts">Håndtér konti</string>
+  <string name="menu_item_settings">Indstillinger</string>
+  <string name="menu_item_share">Del min kontakt</string>
+  <string name="menu_item_about">Om Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Indtast et nummer</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Genafspil</string>
+  <string name="hist_replay_button_stop">Stop</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d samtale</item>
+    <item quantity="other">%d samtaler</item>
+  </plurals>
+  <string name="home_transfering">Overfører %1$s til %2$s</string>
+  <string name="home_transfer_complet">Overførsel afsluttet</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Ingen kontakt funder</string>
+  <string name="starred_contacts_title">Favoritter</string>
+  <string name="searchbar_hint">Indtast navn eller telefonnummer...</string>
+  <string name="choose_number">Vælg et nummer</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Overfør til en anden aktiv samtale:</string>
+  <string name="transfer_no_other_call">Ikke andre opkald i kø</string>
+  <string name="transfer_type_number">Tast nummer at overføre til:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Indgående opkald fra %1$s</string>
+  <string name="notif_incoming_call">Indgående opkald</string>
+  <string name="notif_outgoing_call_title">Udgående opkald til %1$s</string>
+  <string name="notif_outgoing_call">Udgående opkald</string>
+  <string name="notif_current_call_title">Aktivt opkald med %1$s</string>
+  <string name="notif_current_call">Nuværende opkald</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Dig:</string>
+  <string name="action_call_attended_transfer">Overvåget overførsel</string>
+  <string name="action_call_conference">Konference</string>
+  <string name="action_call_hangup">Læg på</string>
+  <string name="ongoing_call">Aktivt opkald</string>
+  <string name="hist_in_call">Indgående opkald af %1$s</string>
+  <string name="hist_out_call">Udgående opkald af %1$s</string>
+  <string name="start_error_title">Kan ikke starte Ring !</string>
+  <string name="start_error_mic_required">Ring kræver mikrofon-tilladelse for at fungere.</string>
+  <string name="action_call_accept">Besvar opkald</string>
+  <string name="action_call_decline">Afvis</string>
+  <string name="ab_action_speakerphone">Aktiver højtaler</string>
+  <string name="ab_action_contact_add">Tilføj til kontakt</string>
+  <string name="ab_action_contact_add_question">Tilføj til kontakter?</string>
+  <string name="ab_action_audio_call">Lydopkald</string>
+  <string name="ab_action_video_call">Videoopkald</string>
+  <string name="ab_action_change_screen_orientation">Ændr skærm-orientering</string>
+  <string name="share_via">Del via</string>
+  <string name="write_a_message">Skriv en besked</string>
+  <string name="scan_qr">Scan QR-kode</string>
+  <string name="ab_action_flipcamera">Flip-kamera</string>
+  <!--Text messages-->
+  <string name="send_message">Send besked</string>
+  <string name="message_sending">Sender besked...</string>
+  <string name="time_just_now">Lige nu</string>
+  <string name="permission_read_denied">Mangler tilladelse til at læse fra lageret, og kan dermed ikke fungere ordentligt. Overvej venligst at give denne tilladelse</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kamera-tilladelse</string>
+  <string name="permission_dialog_camera_message">Video-samtaler kræver kamera-tilladelse for at fungere. Overvej venligst at give denne tilladelse.</string>
+  <string name="ringtone_error_title">Fejl</string>
+  <string name="ringtone_error_format_not_supported">Dette format understøttes ikke.</string>
+  <string name="ringtone_error_size_too_big">Denne fil er for stor. Maksimalt tilladte størrelse er %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring har brug for \"Læs kontakter\"-tilladelse for at kunne udføre denne funktion. Vær venlig at tillade den.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring har brug for \"Skriv opkaldsliste\"-tilladelse for at kunne udføre denne funktion. Vær venlig at tillade den.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Skan QR-koden for kontoen du vil tilføje.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Ryd historikken?</string>
+  <string name="clear_history_dialog_message">Denne handling kan ikke fortrydes.</string>
+  <string name="clear_history_completed">Historikken er blevet ryddet.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Slet denne samtale</string>
+  <string name="conversation_action_delete_this_title">Slet denne samtale?</string>
+  <string name="conversation_action_delete_this_message">Denne handling kan ikke fortrydes.</string>
+  <string name="conversation_action_copy_peer_number">Kopiér nummer</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s kopieret til udklipsholder</string>
+  <string name="conversation_action_select_peer_number">Vælg et nummer</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Tilføj %1$s ?</string>
+  <string name="prompt_new_password">Nyt kodeord</string>
+  <string name="prompt_new_password_repeat">Gentag nyt kodeord</string>
+  <string name="account_create_title">Opret en Ring-konto</string>
+  <string name="prompt_new_username">Indtast nyt brugernavn</string>
+  <string name="help_password_choose">Vælg et stærkt kodeord, som du kan huske, til at beskytte din Ring-konto.</string>
+  <string name="help_password_enter">Indtast dit primære Ring-konto kodeord</string>
+  <string name="help_pin_enter">Indtast PIN-koden fra en anden konfigureret Ring-konto. Brug eksporter-konto-funktionaliteten for at få adgang til en PIN-kode. </string>
+  <string name="wizard_next">Næste</string>
+  <string name="wizard_back">Tilbage</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Min profil</string>
+  <string name="profile_message_warning">Din profil vil kun blive delt med dine kontakter</string>
+  <string name="open_the_gallery">Åben galleriet</string>
+  <string name="take_a_photo">Tag et billede</string>
+  <string name="profile_name_hint">Indtast dit navn (valgfrit)</string>
+  <string name="unknown">Ukendt</string>
+  <!--Share fragment-->
+  <string name="share_message">Skan denne QRCode med den indbyggede scanner i Ring-applikationen.</string>
+  <string name="share_message_no_account">Vælg en konto at dele.</string>
+  <string name="share_your_account_information">Del min kontaktinformation</string>
+  <string name="generic_error_migration">Fejl</string>
+  <string name="generic_error_migration_message">Der opstod en fejl under migrering</string>
+  <!--Pending contact requests-->
+  <string name="accept">Accepter</string>
+  <string name="refuse">Afvis</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Send</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-da-rDK/strings_account.xml b/ring-android/androidtv/src/main/res/values-da-rDK/strings_account.xml
new file mode 100644
index 0000000..ab38fd5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-da-rDK/strings_account.xml
@@ -0,0 +1,177 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Slet</string>
+  <string name="ic_advanced_menu">Avancerede indstillinger</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Tilføj Ring-konto</string>
+  <string name="add_sip_account_title">Tilføj SIP-konto</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Værtsnavn</string>
+  <string name="prompt_username">Brugernavn</string>
+  <string name="prompt_password">Kodeord</string>
+  <string name="action_create">Opret konto</string>
+  <string name="action_create_short">Registrer</string>
+  <string name="error_field_required">Dette felt er obligatorisk</string>
+  <string name="dialog_wait_create">Tilføjer konto</string>
+  <string name="dialog_wait_create_details">Vent venligst mens din nye konto tilføjes...</string>
+  <string name="dialog_wait_update">Opdaterer konto</string>
+  <string name="dialog_wait_update_details">Vent venligst mens din nye konto opdateres...</string>
+  <string name="dialog_warn_ip2ip_account_title">Opret tom SIP konto ?</string>
+  <string name="dialog_warn_ip2ip_account_message">Du er ved at oprette en SIP konto uden et gyldigt værtsnavn.
+Du vil kun kunne foretage eller modtage direkte IP opkald.
+Du kan rette din konto senere</string>
+  <string name="account_type_ip2ip">IP-konto</string>
+  <string name="help_ring">En Ring-konto gør dig i stand til at kontakte andre sikkert og direkte uden mellemmand gennem et fuldt distribueret netværk.</string>
+  <string name="help_sip_title">Tilføj din SIP-konto</string>
+  <string name="help_sip">Konfigurer en eksisterende SIP-konto.</string>
+  <string name="create_sip_account">Tilføj SIP-konto</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Slet konto ?</string>
+  <string name="account_delete_dialog_message">Denne handling kan ikke fortrydes.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Ingen konto registreret</string>
+  <string name="normal_accounts_titles">Konti</string>
+  <string name="normal_devices_titles">Kendte enheder som er tilknyttet denne Ring-konto</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Generelt</string>
+  <string name="account_basic_category">Almindelige Indstillinger</string>
+  <string name="account_alias_label">Kontonavn</string>
+  <string name="account_hostname_label">Værtsnavn</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Brugernavn</string>
+  <string name="account_password_label">Kodeord</string>
+  <string name="account_optionnal_category">Valgfrie Indstillinger</string>
+  <string name="account_useragent_label">Brugerklient</string>
+  <string name="account_autoanswer_label">Svar Opkald Automatisk</string>
+  <string name="account_upnp_label">Aktivér UPnP</string>
+  <string name="account_proxy_field">Stedfortræder</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Lyd</string>
+  <string name="account_preferences_media_tab">Medier</string>
+  <string name="account_ringtone_label">Ringetoner</string>
+  <string name="account_ringtone_enabled_label">Aktiver ringetoner</string>
+  <string name="account_ringtone_path_label">Ringetone sti</string>
+  <string name="account_ringtone_custom_label">Anvend brugervalgt ringetone</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Aktiver Video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avanceret</string>
+  <string name="account_registration_exp_label">Registreringsudløb</string>
+  <string name="account_local_interface_label">Lokalt Interface</string>
+  <string name="account_local_port_label">Lokal Port</string>
+  <string name="account_stun_enable_label">Brug STUN</string>
+  <string name="account_stun_server_label">STUN-server</string>
+  <string name="account_turn_enable_label">Brug TURN</string>
+  <string name="account_turn_server_label">TURN-server</string>
+  <string name="account_turn_username_label">TURN-brugernavn</string>
+  <string name="account_turn_password_label">TURN-password</string>
+  <string name="account_published_same_as_local_label">Publicer samme som lokale</string>
+  <string name="account_published_port_label">Publiceret Port</string>
+  <string name="account_published_address_label">Publiceret Adresse</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Legitimeringsoplysninger</string>
+  <string name="account_credentials_edit">Rediger Legitimeringsoplysninger</string>
+  <string name="account_credentials_add">Tilføj Legitimeringsoplysninger</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sikkerhed</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Brug TLS-transport</string>
+  <string name="account_tls_port_label">TLS-lytteport</string>
+  <string name="account_tls_certificate_list_label">Certificeringsautoriteter</string>
+  <string name="account_tls_certificate_file_label">Certifikatfil</string>
+  <string name="account_tls_private_key_file_label">Privat-nøglefil</string>
+  <string name="account_tls_password_label">Kodeord for Privatnøgle</string>
+  <string name="account_tls_method_label">TLS-metode</string>
+  <string name="account_tls_ciphers_label">TLS- cifre </string>
+  <string name="account_tls_server_name_label">Servernavn</string>
+  <string name="account_tls_verify_server_label">Verificer Server</string>
+  <string name="account_tls_verify_client_label">Verificer Klient</string>
+  <string name="account_tls_negotiation_timeout_sec">Tidsgrænse for Forhandling</string>
+  <string name="account_rtp_max_port">Maksimum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Portinterval for Lyd-RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Gendan en konto</string>
+  <string name="account_restore_message">Indtast kodeord for at dekryptere filen.</string>
+  <string name="account_restore_decryption_password">Dekrypteringskodeord</string>
+  <string name="account_new_device_password">Indtast primære kodeord for at oplåse konto</string>
+  <string name="restore_dialog_title">Genskaber</string>
+  <string name="restore_backup_wait">Vent venligt...</string>
+  <string name="error_password_char_count">Mindst 6 tegn</string>
+  <string name="error_passwords_not_equals">Kodeord stemmer ikke overens</string>
+  <string name="restore_failed_dialog_title">Genskabelse mislykkedes</string>
+  <string name="restore_failed_dialog_msg">Der skete en fejl</string>
+  <string name="export_account_wait_title">Vent venligt...</string>
+  <string name="export_account_wait_message">Publicierer ny konto-information</string>
+  <string name="account_export_end_decryption_message">Kunne ikke låse din konto op med brug af det angivne kodeord.</string>
+  <string name="account_export_end_network_title">Netværksfejl</string>
+  <string name="account_export_end_network_message">Kunne ikke eksportere kontoen til netværket. Kontroller forbindelsen.</string>
+  <string name="account_export_end_error_title">Fejl</string>
+  <string name="account_export_end_error_message">Kunne ikke eksportere kontoen. En ukendt fejl opstod.</string>
+  <string name="account_enter_password">Indtast kodeord</string>
+  <string name="account_share_body">Kontakt mig som \'%1$s\' på Ring, den distribuerede kommunikationsplatform: http://ring.cx</string>
+  <string name="account_share_body_with_username">Kontakt mig som \'%1$s\' eller mit offentlige brugernavn \'%2$s\' på Ring, den distribuerede kommunikationsplatform: http://ring.cx</string>
+  <string name="account_contact_me">Kontakt mig på Ring !</string>
+  <string name="update_account">Opdater konto</string>
+  <string name="account_migration">Din Ring-konto kan opdateres.\nIndtast venligst dit kodeord.</string>
+  <string name="ring_account">Ring-konto</string>
+  <string name="ring_account_identity">Identitet</string>
+  <string name="account_migration_title_dialog">Konto-migrering</string>
+  <string name="account_migration_message_dialog">Dine konti kræver at blive opdateret. Vil du gå til Konto-indstillingerne for at foretage denne operation ?</string>
+  <string name="account_update_needed">Opdatering nødvendig</string>
+  <string name="account_creation_file_too_big">Filen er for stor</string>
+  <string name="account_cannot_read">Kan ikke læse %1$s</string>
+  <string name="account_cannot_be_found_title">Kan ikke finde konto</string>
+  <string name="account_cannot_be_found_message">Kontoen kunne ikke findes på Ring-netværket.\nSikr dig at den er eksporteret fra en eksisterende enhed, og at de angivne bruger-oplysninger er korrekte.</string>
+  <string name="account_sip_cannot_be_registered_message">Du kan fortsætte med konto-oprettelsen eller redigere informationerne her. Du kan under alle omstændigheder lave ændringer senere under konti-indstillingerne.</string>
+  <string name="account_no_network_title">Kan ikke forbinde til netværket</string>
+  <string name="account_no_network_message">Kunne ikke tilføje kontoen fordi Ring ikke kunne forbinde til det distribuerede netværk. Kontroller enhedens netværksforbindelse.</string>
+  <string name="account_device_added_title">Enheds-konto tilføjet</string>
+  <string name="account_device_added_message">Du har nu konfigureret din Ring-konto på denne enhed.</string>
+  <string name="account_device_updated_title">Enheds-konto opdateret</string>
+  <string name="account_device_updated_message">Du har opdateret din Ring-konto.</string>
+  <string name="account_cannot_be_updated_message">Kontoen på enheden kunne ikke opdateres. Kontroller venligst dit kodeord.</string>
+  <string name="account_sip_success_title">SIP-konto registreret</string>
+  <string name="account_sip_success_message">Din SIP-konto blev registreret korrekt.</string>
+  <string name="account_sip_register_anyway">Registrer alligevel</string>
+  <string name="account_link_button">Tilknyt denne enhed til en konto</string>
+  <string name="account_import_title">Tilknyt til en eksisterende konto</string>
+  <string name="account_link_prompt_pin">Indtast PIN-kode</string>
+  <string name="account_wizard_title">Velkommen til</string>
+  <string name="account_new_button">Opret en Ring-konto</string>
+  <string name="account_link_export_button">Tilknyt en anden enhed til denne konto</string>
+  <string name="account_link_export_info">For at bruge denne konto på andre enheder, skal du først gøre den tilgængelig for Ring. Dette vil generere en PIN-kode som skal indtastes på den nye enhed for at installere kontoen. Pin-koden er gyldig i 10 minutter. \n\nIndtast dit kodeord for at starte:</string>
+  <string name="account_start_export_button">Generer PIN-kode</string>
+  <string name="account_end_export_button">luk</string>
+  <string name="account_end_export_infos">Din PIN-kode er:\n\n%%\n\nFor at afslutte processen skal du åbne Ring på den nye enhed, og oprette en ny konto med \"Tilknyt denne enhed til en konto\". PIN-koden er gyldig i 10 minutter.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Kan ikke registrere navn: forkert kodeord.</string>
+  <string name="register_name_invalid">Kan ikke registrere navn: ugyldigt navn</string>
+  <string name="register_name_already_taken">Kan ikke registrere navn: navnet er optaget</string>
+  <string name="register_name_network_error">Kan ikke registrere navn: netværk eller server-fejl</string>
+  <string name="error_username_empty">Indtast et brugernavn</string>
+  <string name="no_registered_name_for_account">Intet registreret navn fundet for denne konto</string>
+  <string name="register_name">Registrer navn</string>
+  <string name="trying_to_register_name">Forsøger at registrere navn</string>
+  <string name="registered_username">Registreret brugernavn</string>
+  <string name="register_username">Registrer offentligt brugernavn (eksperimentel funktionalitet)</string>
+  <string name="username_already_taken">Brugernavn er allerede taget</string>
+  <string name="invalid_username">Ugyldigt brugernavn</string>
+  <string name="account_status_connecting">Forbinder</string>
+  <string name="account_status_connection_error">Forbindelsesfejl</string>
+  <string name="account_status_online">Forbundet</string>
+  <string name="account_status_unknown">Ukendt</string>
+  <string name="account_status_offline">Ingen forbindelse</string>
+  <!--Create account-->
+  <string name="account_creation_home">Velkommen til Ring</string>
+  <string name="account_creation_profile">Opret din profil</string>
+  <string name="account_creation_ring">Opret din Ring-konto</string>
+  <string name="account_link_title">Tilknyt denne enhed</string>
+  <string name="account_sip_cannot_be_registered">Kan ikke registrere konto</string>
+  <!--Devices-->
+  <string name="enter_password">Indtast kodeord</string>
+  <string name="revoke_device_wait_title">Vent venligt...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-da-rDK/strings_call.xml b/ring-android/androidtv/src/main/res/values-da-rDK/strings_call.xml
new file mode 100644
index 0000000..4f0bdcd
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-da-rDK/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Ringer</string>
+    <string name="call_human_state_connecting">Forbinder</string>
+    <string name="call_human_state_ringing">Ringer op</string>
+    <string name="call_human_state_current">Taler</string>
+    <string name="call_human_state_hungup">Ovre</string>
+    <string name="call_human_state_busy">Optaget</string>
+    <string name="call_human_state_failure">Fejlede</string>
+    <string name="call_human_state_hold">Parkeret</string>
+    <string name="call_human_state_unhold">Uparker</string>
+    <string name="call_human_state_over">Ovre</string>
+    <string name="call_human_state_none">Ingen</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Aktiv tilføjet</string>
+    <string name="conference_human_state_active_detached">Aktiv frakoblet</string>
+    <string name="conference_human_state_active_attached_rec">Aktive tilføjet optag</string>
+    <string name="conference_human_state_active_detached_rec">Aktiv frakoblet optag</string>
+    <string name="conference_human_state_hold">Parkeret</string>
+    <string name="conference_human_state_hold_rec">Pause optag</string>
+    <string name="conference_human_state_default">Ingen</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-da-rDK/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-da-rDK/strings_content_description.xml
new file mode 100644
index 0000000..80bdb8c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-da-rDK/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Hurtigopkald</string>
+  <string name="contact_picture_description">Kontaktbillede</string>
+  <string name="dial_numeric_pad">Numerisk opkaldstastatur</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-da-rDK/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-da-rDK/strings_preferences.xml
new file mode 100644
index 0000000..bad9d26
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-da-rDK/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Netværk</string>
+  <string name="pref_category_contacts">Kontakter</string>
+  <string name="pref_category_system">System</string>
+  <string name="pref_category_privacy">Privatliv</string>
+  <string name="pref_mobileData_title">Mobildata</string>
+  <string name="pref_mobileData_summary">Tillad Ring på 3G/LTE netværk i tilllæg til Wi-Fi</string>
+  <string name="pref_systemContacts_title">Brug systemkontakter</string>
+  <string name="pref_systemContacts_summary">Brug systemkontakter til at vise opkaldsdetaljer</string>
+  <string name="pref_systemDialer_title">Foretag systemopkald med Ring</string>
+  <string name="pref_systemDialer_summary">Brug Ring til at foretage systemopkald når muligt.</string>
+  <string name="pref_startOnBoot_title">Kør Ring ved opstart</string>
+  <string name="pref_startOnBoot_summary">Kør Ring i baggrunden når systemet starter.</string>
+  <string name="pref_clearHistory_title">Ryd historiken</string>
+  <string name="pref_clearHistory_summary">Ryd al samtale-historik. Denne handling kan ikke fortrydes.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de-rDE/strings.xml b/ring-android/androidtv/src/main/res/values-de-rDE/strings.xml
new file mode 100644
index 0000000..0e86bb2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de-rDE/strings.xml
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Feedback</string>
+  <string name="report">&lt;u&gt;Schreiben Sie uns eine E-Mail&lt;/u&gt;</string>
+  <string name="section_license">Lizenz</string>
+  <string name="sponsor_section">Ring ist freie Software. Sie wurde entwickelt und wird unterstützt von</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Mitwirken</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">Keine E-Mail-App gefunden, installieren Sie eine, um uns einen Bericht zu schicken</string>
+  <string name="no_browser_app_installed">Keine Browser-App gefunden, installieren Sie eine, um die Homepage darzustellen</string>
+  <string name="email_chooser_title">Senden von E-Mails über...</string>
+  <string name="website_chooser_title">Darstellung der Homepage mit...</string>
+  <string name="license">Diese Software wird \"wie sie ist\" ohne Gewährleistung irgendwelcher Art zur Verfügung gestellt. Details finden Sie unter
+&lt;u&gt;GNU General Public License Version 3 oder später&lt;/u&gt;</string>
+  <string name="credits">Abspann</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Keine Netzwerkkonnektivität</string>
+  <string name="error_mobile_network_available_but_disabled">Bitte in den Einstellungen Zugriff auf mobile Daten erlauben.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Neues Konto</string>
+  <string name="ab_action_chat">Textnachrichten</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Navigationsfenster öffnen</string>
+  <string name="drawer_close">Navigationsfenster schließen</string>
+  <!--Sections-->
+  <string name="menu_item_home">Home</string>
+  <string name="menu_item_accounts">Konten verwalten</string>
+  <string name="menu_item_settings">Einstellungen</string>
+  <string name="menu_item_share">Teile meine RING-ID</string>
+  <string name="menu_item_about">Über Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Nummer wählen</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Wiedergeben</string>
+  <string name="hist_replay_button_stop">Beenden</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Gespräche</item>
+    <item quantity="other">%d Gespräche</item>
+  </plurals>
+  <string name="home_transfering">Übertragung von %1$s zu %2$s</string>
+  <string name="home_transfer_complet">Übertragung abgeschlossen</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Es wurde kein Kontakt gefunden</string>
+  <string name="starred_contacts_title">Favoriten</string>
+  <string name="searchbar_hint">Namen oder Telefonnummer eingeben</string>
+  <string name="choose_number">Nummer auswählen</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Durchstellen zu einem anderen aktuellen Anruf:</string>
+  <string name="transfer_no_other_call">Keine weiteren Anrufe wartend</string>
+  <string name="transfer_type_number">Eingabe Empfänger-Nummer:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Eingehender Anruf von %1$s</string>
+  <string name="notif_incoming_call">Eingehender Anruf</string>
+  <string name="notif_outgoing_call_title">Ausgehende Anruf zu %1$s</string>
+  <string name="notif_outgoing_call">Ausgehende Anruf</string>
+  <string name="notif_current_call_title">Aktueller Anruf mit %1$s</string>
+  <string name="notif_current_call">Aktueller Anruf</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Sie:</string>
+  <string name="action_call_attended_transfer">Übergabe nach Ankündigung</string>
+  <string name="action_call_conference">Konferenz</string>
+  <string name="action_call_hangup">Auflegen</string>
+  <string name="ongoing_call">Aktiver Anruf</string>
+  <string name="hist_in_call">Eingehender Anruf von %1$s</string>
+  <string name="hist_out_call">Ausgehende Anruf von %1$s</string>
+  <string name="start_error_title">Kann nicht Ring starten!</string>
+  <string name="start_error_mic_required">Ring erfordert Mikrofon-Zugriff.</string>
+  <string name="action_call_accept">Annehmen</string>
+  <string name="action_call_decline">Ablehnen</string>
+  <string name="ab_action_speakerphone">Lautsprecher aktivieren</string>
+  <string name="ab_action_contact_add">Kontakte hinzufügen</string>
+  <string name="ab_action_contact_add_question">Zu Kontakten hinzufügen?</string>
+  <string name="ab_action_audio_call">Audioanruf</string>
+  <string name="ab_action_video_call">Videoanruf</string>
+  <string name="ab_action_change_screen_orientation">Ändern der Bildschirmausrichtung</string>
+  <string name="share_via">Teilen über</string>
+  <string name="write_a_message">Eine Nachricht schreiben</string>
+  <string name="scan_qr">QR-Code scannen</string>
+  <string name="ab_action_flipcamera">Kamera wechseln</string>
+  <!--Text messages-->
+  <string name="send_message">Nachricht senden</string>
+  <string name="message_sending">Nachricht senden...</string>
+  <string name="time_just_now">Gerade eben</string>
+  <string name="permission_read_denied">Der Anwendung wurde der lesende Speicherzugriff verwehrt. Daher kann sie nicht ordnungsgemäß funktionieren. Bitte erlauben Sie diesen Zugriff.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kamera-Berechtigung</string>
+  <string name="permission_dialog_camera_message">Video-Konferenzen benötigen Zugriff auf die Kamera. Bitte erlauben Sie diesen Zugriff.</string>
+  <string name="ringtone_error_title">Fehler</string>
+  <string name="ringtone_error_format_not_supported">Dieses Format wird nicht unterstützt.</string>
+  <string name="ringtone_error_size_too_big">Diese Datei ist zu groß. Maximal %1$ikB sind erlaubt.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring benötigt für diese Funktion die Erlaubnis \"Kontakte lesen\". Bitte zulassen.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring benötigt für diese Funktion die Erlaubnis \"Anruf-Log schreiben\". Bitte zulassen.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Scannen Sie den QR-Code des Kontos, das Sie hinzufügen möchten.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Verlauf löschen?</string>
+  <string name="clear_history_dialog_message">Diese Aktion kann nicht rückgängig gemacht werden.</string>
+  <string name="clear_history_completed">Verlauf wurde gelöscht.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Diese Unterhaltung löschen</string>
+  <string name="conversation_action_delete_this_title">Diese Unterhaltung löschen?</string>
+  <string name="conversation_action_delete_this_message">Diese Aktion kann nicht rückgängig gemacht werden.</string>
+  <string name="conversation_action_copy_peer_number">Nummer kopieren</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s wurde in die Zwischenablage kopiert.</string>
+  <string name="conversation_action_select_peer_number">Nummer auswählen</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Fügen %1$s hinzu?</string>
+  <string name="prompt_new_password">Neues Passwort</string>
+  <string name="prompt_new_password_repeat">Neues Passwort wiederholen</string>
+  <string name="account_create_title">Erstelle ein Ring-Konto</string>
+  <string name="prompt_new_username">Neuen Benutzername eingeben</string>
+  <string name="help_password_choose">Wählen Sie ein sicheres Passwort und merken Sie es sich um Ihre Ring-Zugangsdaten zu schützen.</string>
+  <string name="help_password_enter">Geben Sie Ring-Konto-Passwort ein.</string>
+  <string name="help_pin_enter">Geben Sie die PIN eines anderen konfigurierten Ring-Kontos ein.</string>
+  <string name="wizard_next">Weiter</string>
+  <string name="wizard_back">Zurück</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mein Profil</string>
+  <string name="profile_message_warning">Ihr Profil wird nur mit Ihren Kontakten geteilt</string>
+  <string name="open_the_gallery">Galerie öffnen</string>
+  <string name="take_a_photo">Mache ein Foto</string>
+  <string name="profile_name_hint">Name eingeben (optional)</string>
+  <string name="unknown">Unbekannt</string>
+  <!--Share fragment-->
+  <string name="share_message">Scanne diesen QR-Code mit dem Ring-QR-Code-Scanner des neuen Kommunikationspartners.</string>
+  <string name="share_message_no_account">Bitte wählen Sie ein Konto, das Sie teilen wollen.</string>
+  <string name="share_your_account_information">Teile meine RING-ID</string>
+  <string name="generic_error_migration">Fehler</string>
+  <string name="generic_error_migration_message">Ein Fehler ist während der Datenübernahme aufgetreten</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de-rDE/strings_account.xml b/ring-android/androidtv/src/main/res/values-de-rDE/strings_account.xml
new file mode 100644
index 0000000..c95ecf9
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de-rDE/strings_account.xml
@@ -0,0 +1,86 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Löschen</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Hostname</string>
+  <string name="prompt_username">Benutzername</string>
+  <string name="prompt_password">Kennwort</string>
+  <string name="action_create">Konto erstellen</string>
+  <string name="action_create_short">Registrieren</string>
+  <string name="error_field_required">Dieses Feld ist erforderlich</string>
+  <string name="dialog_wait_create">Konto wird hinzugefügt</string>
+  <string name="account_type_ip2ip">IP Konto</string>
+  <string name="help_sip_title">Fügen Sie Ihre SIP-Account</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Konto löschen?</string>
+  <string name="account_delete_dialog_message">Diese Aktion kann nicht rückgängig gemacht werden.</string>
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Kontos</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Allgemein</string>
+  <string name="account_basic_category">Grundeinstellungen</string>
+  <string name="account_alias_label">Kontoname</string>
+  <string name="account_hostname_label">Hostname</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Benutzername</string>
+  <string name="account_password_label">Kennwort</string>
+  <string name="account_optionnal_category">Optionale Einstellungen</string>
+  <string name="account_useragent_label">Benutzer-Agent</string>
+  <string name="account_autoanswer_label">Automatische Anrufannahme</string>
+  <string name="account_upnp_label">UPNP aktivieren</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Klingeltöne</string>
+  <string name="account_ringtone_enabled_label">Klingeltöne aktivieren</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Video aktivieren</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Erweitert</string>
+  <string name="account_local_interface_label">Lokale Schnittstelle</string>
+  <string name="account_local_port_label">Lokaler Port</string>
+  <string name="account_stun_enable_label">STUN benutzen</string>
+  <string name="account_stun_server_label">STUN-Server</string>
+  <string name="account_turn_enable_label">TURN benutzen</string>
+  <string name="account_turn_server_label">TURN-Server</string>
+  <string name="account_turn_username_label">TURN-Benutzername</string>
+  <string name="account_turn_password_label">TURN-Kennwort</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Anmeldeinformationen</string>
+  <string name="account_credentials_edit">Anmeldeinformationen bearbeiten</string>
+  <string name="account_credentials_add">Anmeldeinformationen hinzufügen</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sicherheit</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_certificate_list_label">Zertifizierungsstellen</string>
+  <string name="account_tls_certificate_file_label">Zertifikatsdatei</string>
+  <string name="account_tls_private_key_file_label">Datei des privaten Schlüssels</string>
+  <string name="account_tls_password_label">Kennwort für privaten Schlüssel</string>
+  <string name="account_tls_server_name_label">Servername</string>
+  <string name="account_tls_verify_server_label">Server überprüfen</string>
+  <string name="account_tls_verify_client_label">Client überprüfen</string>
+  <string name="account_rtp_max_port">Maximum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <!--restore/backup-->
+  <string name="account_restore_decryption_password">Entschlüsselungskennwort</string>
+  <string name="restore_backup_wait">Bitte warten...</string>
+  <string name="error_password_char_count">Mindestens 6 Zeichen</string>
+  <string name="error_passwords_not_equals">Kennwörter stimmen nicht überein</string>
+  <string name="restore_failed_dialog_msg">Fehler aufgetreten</string>
+  <string name="export_account_wait_title">Bitte warten...</string>
+  <string name="account_export_end_error_title">Fehler</string>
+  <string name="account_device_updated_message">Sie haben ihr Ring-Konto erfolgreich aktualisiert.</string>
+  <string name="account_new_button">Erstellen einen Ring Konto</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">Verbinden</string>
+  <string name="account_status_unknown">Unbekannt</string>
+  <!--Create account-->
+  <string name="account_creation_home">Willkommen bei Ring</string>
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Bitte warten...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de-rDE/strings_call.xml b/ring-android/androidtv/src/main/res/values-de-rDE/strings_call.xml
new file mode 100644
index 0000000..d7d84ae
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de-rDE/strings_call.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Klingeln</string>
+    <string name="call_human_state_connecting">Verbinden</string>
+    <string name="call_human_state_ringing">Anrufen</string>
+    <string name="call_human_state_current">Sprechen</string>
+    <string name="call_human_state_hungup">Vorbei</string>
+    <string name="call_human_state_busy">Besetzt</string>
+    <string name="call_human_state_failure">Fehlgeschlagen</string>
+    <string name="call_human_state_hold">In die Warteschleife schalten</string>
+    <string name="call_human_state_unhold">Gespräch fortsetzen</string>
+    <string name="call_human_state_over">Vorbei</string>
+    <string name="call_human_state_none">Keine</string>
+    <string name="conference_human_state_hold">In die Warteschleife schalten</string>
+    <string name="conference_human_state_hold_rec">Drücken Sie REC</string>
+    <string name="conference_human_state_default">Keine</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-de-rDE/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-de-rDE/strings_content_description.xml
new file mode 100644
index 0000000..32f0d3b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de-rDE/strings_content_description.xml
@@ -0,0 +1,6 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Kurzer Anruf</string>
+  <string name="contact_picture_description">Kontaktbild</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de-rDE/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-de-rDE/strings_preferences.xml
new file mode 100644
index 0000000..1bb42fd
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de-rDE/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Netzwerk</string>
+  <string name="pref_category_contacts">Kontakte</string>
+  <string name="pref_category_system">System</string>
+  <string name="pref_category_privacy">Datenschutz</string>
+  <string name="pref_mobileData_title">Mobile Daten</string>
+  <string name="pref_mobileData_summary">Ring die Nutzung von 3G/LTE zusätzlich zu WLAN erlauben</string>
+  <string name="pref_systemContacts_title">Systemkontakte benutzen</string>
+  <string name="pref_systemContacts_summary">Systemkontakte benutzen, um Anruferdetails anzuzeigen.</string>
+  <string name="pref_systemDialer_title">Telefonanrufe auch über Ring abwickeln</string>
+  <string name="pref_systemDialer_summary">Ring ebenfalls für normale Telefonanrufe nutzen, sofern dies möglich ist.</string>
+  <string name="pref_startOnBoot_title">Ring beim Hochfahren starten</string>
+  <string name="pref_startOnBoot_summary">Ring im Hintergrund aktivieren während das System startet.</string>
+  <string name="pref_clearHistory_title">Verlauf löschen</string>
+  <string name="pref_clearHistory_summary">Löschen der Konversationshistorie. Diese Aktion kann nicht rückgängig gemacht werden.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de/strings.xml b/ring-android/androidtv/src/main/res/values-de/strings.xml
new file mode 100644
index 0000000..2b13eee
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de/strings.xml
@@ -0,0 +1,161 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Feedback</string>
+  <string name="report">&lt;u&gt;Sende uns eine E-Mail an&lt;/u&gt;</string>
+  <string name="section_license">Lizenz</string>
+  <string name="sponsor_section">Ring ist eine freie Software, entwickelt und unterstützt durch</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Beitragen</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">Es konnte keine E-Mail-Anwendung gefunden werden, installieren Sie eine, um uns einen Bericht zu senden</string>
+  <string name="no_browser_app_installed">Es konnte keine Browser-Anwendung gefunden werden, installieren Sie einen, um die Webseite anzusehen</string>
+  <string name="email_chooser_title">E-Mail wird gesendet mit...</string>
+  <string name="website_chooser_title">Webseite anzeigen mit...</string>
+  <string name="license">Diese Software wird \"wie sie ist\" ohne Gewährleistung irgendwelcher Art zur Verfügung gestellt. Details finden Sie unter
+&lt;u&gt;GNU General Public License Version 3 oder höher&lt;/u&gt;</string>
+  <string name="description">Ring ist eine Freie Software für universelle Kommunikation und respektiert die Freiheiten und Privatsphäre der Benutzer.</string>
+  <string name="credits">Würdigung</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Keine Netzwerkverbindung</string>
+  <string name="error_mobile_network_available_but_disabled">Bitte erlauben Sie den Zugang zum Mobilfunknetz in den Einstellungen</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Neues Konto</string>
+  <string name="ab_action_chat">Textnachrichten</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Navigationsleiste öffnen</string>
+  <string name="drawer_close">Navigationsleiste schließen</string>
+  <!--Sections-->
+  <string name="menu_item_home">Start</string>
+  <string name="menu_item_contact_request">Kontaktanfragen</string>
+  <string name="menu_item_accounts">Konten verwalten</string>
+  <string name="menu_item_settings">Einstellungen</string>
+  <string name="menu_item_share">Meinen Kontakt teilen</string>
+  <string name="menu_item_blacklist">Gesperrte Kontakte</string>
+  <string name="menu_item_about">Über Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Nummer wählen</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Erneut wiedergeben</string>
+  <string name="hist_replay_button_stop">Stop</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Unterhaltung</item>
+    <item quantity="other">%d Unterhaltungen</item>
+  </plurals>
+  <string name="home_transfering">Übertrage von %1$s zu %2$s</string>
+  <string name="home_transfer_complet">Übertragung abgeschlossen</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Kein Kontakt gefunden</string>
+  <string name="starred_contacts_title">Favoriten</string>
+  <string name="searchbar_hint">Namen oder Telefonnummer eingeben...</string>
+  <string name="choose_number">Nummer auswählen</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Auf einen anderen aktuellen Anruf weiterleiten</string>
+  <string name="transfer_no_other_call">Keine anderen Anrufe wartend</string>
+  <string name="transfer_type_number">Nummer für Übertragung eingeben:</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">Verpasster eingehender Anruf</string>
+  <string name="notif_missed_outgoing_call">Verpasster ausgehender Anruf</string>
+  <string name="notif_incoming_call_title">Eingehender Anruf von %1$s</string>
+  <string name="notif_incoming_call">Eingehender Anruf</string>
+  <string name="notif_outgoing_call_title">Ausgehender Anruf von %1$s</string>
+  <string name="notif_outgoing_call">Ausgehender Anruf</string>
+  <string name="notif_current_call_title">Aktueller Anruf mit %1$s</string>
+  <string name="notif_current_call">Aktueller Anruf</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Du:</string>
+  <string name="action_call_attended_transfer">Übergabe nach Ankündigung</string>
+  <string name="action_call_conference">Konferenz</string>
+  <string name="action_call_hangup">Auflegen</string>
+  <string name="ongoing_call">Derzeitiger Anruf</string>
+  <string name="hist_in_call">Eingehender Anruf von %1$s</string>
+  <string name="hist_out_call">Ausgehender Anruf von %1$s</string>
+  <string name="start_error_title">Ring konnte nicht gestartet werden!</string>
+  <string name="start_error_mic_required">Ring benötigt die Erlaubnis auf das Mikrofon zuzugreifen.</string>
+  <string name="action_call_accept">Anruf annehmen</string>
+  <string name="action_call_decline">Ablehnen</string>
+  <string name="ab_action_speakerphone">Lautsprecher einschalten</string>
+  <string name="ab_action_contact_add">Kontakte hinzufügen</string>
+  <string name="ab_action_contact_add_question">Zu Kontakten hinzufügen?</string>
+  <string name="ab_action_audio_call">Audioanruf</string>
+  <string name="ab_action_video_call">Videoanruf</string>
+  <string name="ab_action_change_screen_orientation">Bildschirmausrichtung ändern</string>
+  <string name="share_via">Teilen mit</string>
+  <string name="write_a_message">Sende eine Nachricht</string>
+  <string name="scan_qr">QR-Code scannen</string>
+  <string name="ab_action_flipcamera">Kamerabild kippen</string>
+  <!--Text messages-->
+  <string name="send_message">Nachricht senden</string>
+  <string name="message_sending">Nachricht wird gesendet…</string>
+  <string name="time_just_now">Gerade eben</string>
+  <string name="permission_read_denied">Die Anwendung hat keine Berechtigung den Speicher zu lesen und funktioniert deswegen nicht richtig. Bitte erteilen Sie diese Berechtigung.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kamera Berechtigung</string>
+  <string name="permission_dialog_camera_message">Für Video-Konversationen benötigt die Anwendung Zugriff auf die Kamera. Bitte erteilen Sie diese Berechtigung.</string>
+  <string name="ringtone_error_title">Fehler</string>
+  <string name="ringtone_error_format_not_supported">Dieses Format wird nicht unterstützt.</string>
+  <string name="ringtone_error_size_too_big">Die Datei ist zu groß. Die maximale Größe ist %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring benötigt die Berechtigung \"Kontaktdaten lesen\" für diese Funktion. Bitte erteilen Sie diese.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring benötigt die Berechtigung \"Anruflisten schreiben\" für diese Funktion. Bitte erteilen Sie diese.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Scannen Sie den QR-Code des Kontos, das Sie hinzufügen möchten.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Verlauf löschen?</string>
+  <string name="clear_history_dialog_message">Diese Aktion kann nicht rückgängig gemacht werden.</string>
+  <string name="clear_history_completed">Der Verlauf wurde gelöscht.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Diese Unterhaltung löschen</string>
+  <string name="conversation_action_delete_this_title">Diese Unterhaltung löschen?</string>
+  <string name="conversation_action_delete_this_message">Diese Aktion kann nicht rückgängig gemacht werden.</string>
+  <string name="conversation_action_copy_peer_number">Nummer kopieren</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s in die Zwischenablage kopiert</string>
+  <string name="conversation_action_select_peer_number">Suche eine Nummer aus</string>
+  <string name="conversation_action_block_this">Kontakt sperren</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">%1$s hinzufügen?</string>
+  <string name="prompt_new_password">Neues Passwort</string>
+  <string name="prompt_new_password_repeat">Neues Passwort wiederholen</string>
+  <string name="account_create_title">Ein Ring-Konto erstellen</string>
+  <string name="prompt_new_username">Neuen Benutzernamen eingeben</string>
+  <string name="help_password_choose">Wählen Sie ein sicheres Passwort, an das Sie sich erinnern können, um ihr Ring-Konto zu schützen.</string>
+  <string name="help_password_enter">Geben Sie ihr Haupt-Ring-Kontopasswort ein</string>
+  <string name="help_pin_enter">Geben Sie die PIN eines anderen konfigurierten Ring-Kontos ein. Benutzen Sie die Funktion \"Exportiere Konto auf Ring\", um die PIN zu erhalten.</string>
+  <string name="wizard_next">Weiter</string>
+  <string name="wizard_back">Zurück</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mein Profil</string>
+  <string name="profile_message_warning">Ihr Profil wird nur mit Ihren Kontakten geteilt</string>
+  <string name="open_the_gallery">Galerie öffnen</string>
+  <string name="take_a_photo">Foto machen</string>
+  <string name="profile_name_hint">Name eingeben (optional)</string>
+  <string name="unknown">Unbekannt</string>
+  <!--Share fragment-->
+  <string name="share_message">Scannen Sie diesen QR-Code mit dem eingebauten Scanner der Ringanwendung, die mit Ihnen kommunizieren will.</string>
+  <string name="share_message_no_account">Bitte wählen Sie ein Konto aus.</string>
+  <string name="share_your_account_information">Teile meine Kontaktinformationen</string>
+  <string name="generic_error_migration">Fehler</string>
+  <string name="generic_error_migration_message">Während der Migration ist ein Fehler aufgetreten</string>
+  <!--Pending contact requests-->
+  <string name="accept">Akzeptieren</string>
+  <string name="refuse">Verweigern</string>
+  <string name="block">Sperren</string>
+  <string name="contact_request_title">Ausstehende Kontaktanfrage</string>
+  <string name="contact_request_msg">Sie haben %1$s ausstehende Kontaktanfragen</string>
+  <string name="contact_request_account">Für %1$s</string>
+  <string name="no_requests">0 Kontaktanfragen</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Senden</string>
+  <string name="send_request_title">Sende eine Kontaktanfrage</string>
+  <string name="send_request_msg">Sie müssen eine Kontaktanfrage senden, um mit diesem Benutzer zu kommunizieren. Solange Ihr Kontakt die Anforderung nicht akzeptiert hat, können Sie Nachrichten senden, aber Ihr Kontakt kann diese nicht lesen.</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 gesperrte Kontakte</string>
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de/strings_account.xml b/ring-android/androidtv/src/main/res/values-de/strings_account.xml
new file mode 100644
index 0000000..7c69dfc
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de/strings_account.xml
@@ -0,0 +1,198 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Löschen</string>
+  <string name="ic_advanced_menu">Erweiterte Einstellungen</string>
+  <string name="ic_blacklist_menu">Gesperrte Kontakte</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Ring-Konto hinzufügen</string>
+  <string name="add_sip_account_title">SIP-Konto hinzufügen</string>
+  <string name="ring_account_default_name">Ring-Konto %1$s</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Rechnername</string>
+  <string name="prompt_username">Benutzername</string>
+  <string name="prompt_password">Passwort</string>
+  <string name="action_create">Konto erstellen</string>
+  <string name="action_create_short">Registrieren</string>
+  <string name="error_field_required">Dieses Feld ist erforderlich</string>
+  <string name="dialog_wait_create">Konto hinzufügen</string>
+  <string name="dialog_wait_create_details">Bitte warten Sie während Ihr neues Konto eingerichtet wird...</string>
+  <string name="dialog_wait_update">Konto wird aktualisiert</string>
+  <string name="dialog_wait_update_details">Bitte warten Sie während ihr Konto aktualisiert wird</string>
+  <string name="dialog_warn_ip2ip_account_title">Ein leeres SIP-Konto erstellen?</string>
+  <string name="dialog_warn_ip2ip_account_message">Sie sind im Begriff ein SIP-Konto ohne gültigen Hostnamen anzulegen.
+Es wird ihnen nur möglich sein direkte IP-Anrufe zu machen und zu empfangen.
+Sie können ihr Konto später bearbeiten</string>
+  <string name="account_type_ip2ip">IP-Konto</string>
+  <string name="help_ring">Ein Ring-Konto erlaubt es Ihnen andere Menschen auf sichere Art direkt über ein verteiltes Netzwerk zu erreichen</string>
+  <string name="help_sip_title">Ihr SIP-Konto hinzufgügen</string>
+  <string name="help_sip">Mit bereits bestehendem SIP-Konto anmelden.</string>
+  <string name="create_sip_account">SIP-Konto hinzufügen</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Konto löschen?</string>
+  <string name="account_delete_dialog_message">Diese Aktion kann nicht rückgängig gemacht werden.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Kein Konto registriert</string>
+  <string name="normal_accounts_titles">Konten</string>
+  <string name="normal_devices_titles">Bekannte Geräte, die mit diesem Ring-Konto verknüpft sind</string>
+  <string name="account_device_revoke">Gerät widerrufen</string>
+  <string name="account_device_revocation_success_title">Erfolgreich</string>
+  <string name="account_device_revocation_success">Gerät wird jetzt widerrufen!</string>
+  <string name="account_device_revocation_error_title">Gerät konnte nicht widerrufen werden</string>
+  <string name="account_device_revocation_wrong_password">Falsches Passwort.</string>
+  <string name="account_device_revocation_unknown_device">Unbekanntes Gerät.</string>
+  <string name="account_device_revocation_error_unknown">Unbekannter Fehler.</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Allgemein</string>
+  <string name="account_basic_category">Grundlegende Einstellungen</string>
+  <string name="account_alias_label">Kontoname</string>
+  <string name="account_hostname_label">Rechnername</string>
+  <string name="account_bootstrap_label">Aktivierung</string>
+  <string name="account_username_label">Benutzername</string>
+  <string name="account_password_label">Passwort</string>
+  <string name="account_optionnal_category">Weitere Einstellungen</string>
+  <string name="account_useragent_label">User Agent</string>
+  <string name="account_autoanswer_label">Automatisch antworten</string>
+  <string name="account_upnp_label"> UPnP aktivieren</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Medium</string>
+  <string name="account_ringtone_label">Klingeltöne</string>
+  <string name="account_ringtone_enabled_label">Klingelton benutzen</string>
+  <string name="account_ringtone_path_label">Klingeltonpfad</string>
+  <string name="account_ringtone_custom_label">Eigenen Klingelton benutzen</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Video aktivieren</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Erweitert</string>
+  <string name="account_dht_public_in_calls_label">Erlaube alle Anrufe/Nachrichten</string>
+  <string name="account_registration_exp_label">Registrierung abgelaufen</string>
+  <string name="account_local_interface_label">Lokale Schnittstelle</string>
+  <string name="account_local_port_label">Lokaler Port</string>
+  <string name="account_stun_enable_label">STUN benutzen</string>
+  <string name="account_stun_server_label">STUN-Server</string>
+  <string name="account_turn_enable_label">TURN benutzen</string>
+  <string name="account_turn_server_label">TURN-Server</string>
+  <string name="account_turn_username_label">TURN-Benutzer</string>
+  <string name="account_turn_password_label">TURN-Passwort</string>
+  <string name="account_published_same_as_local_label">Veröffentlicht mit lokal übereinstimmend</string>
+  <string name="account_published_port_label">Veröffentlichter Port</string>
+  <string name="account_published_address_label">Veröffentlichte Adresse</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Anmeldeinformationen</string>
+  <string name="account_credentials_edit">Anmeldedaten bearbeiten</string>
+  <string name="account_credentials_add">Anmeldedaten hinzufügen</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sicherheit</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">TLS-Transportverschlüsselung benutzen</string>
+  <string name="account_tls_port_label">TLS Listener Port</string>
+  <string name="account_tls_certificate_list_label">Zertifizierungsstellen</string>
+  <string name="account_tls_certificate_file_label">Zertifikatsdatei</string>
+  <string name="account_tls_private_key_file_label">Private Schlüsseldatei</string>
+  <string name="account_tls_password_label">Passwort für den privaten Schlüssel</string>
+  <string name="account_tls_method_label">TLS-Methode</string>
+  <string name="account_tls_ciphers_label">TLS-Verschlüsselungsverfahren</string>
+  <string name="account_tls_server_name_label">Servername</string>
+  <string name="account_tls_verify_server_label">Server verifizieren</string>
+  <string name="account_tls_verify_client_label">Client verifizieren</string>
+  <string name="account_tls_negotiation_timeout_sec">Timeout für Verbindungsaufbau (sek.)</string>
+  <string name="account_rtp_max_port">Maximum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Audio RTP Portbereich</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Konto wiederherstellen</string>
+  <string name="account_restore_message">Passwort eingeben um die Datei zu entschlüsseln</string>
+  <string name="account_restore_decryption_password">Passwort zum Entschlüsseln</string>
+  <string name="account_new_device_password">Geben Sie das Hauptpasswort ein, um das Konto zu entsperren</string>
+  <string name="restore_dialog_title">Wiederherstellungsvorgang</string>
+  <string name="restore_backup_wait">Bitte warten…</string>
+  <string name="error_password_char_count">Mindestens 6 Zeichen</string>
+  <string name="error_passwords_not_equals">Die Passwörter stimmen nicht überein</string>
+  <string name="restore_failed_dialog_title">Wiederherstellen fehlgeschlagen</string>
+  <string name="restore_failed_dialog_msg">Ein Fehler ist aufgetreten</string>
+  <string name="export_account_wait_title">Bitte warten…</string>
+  <string name="export_account_wait_message">Neue Konto-Informationen veröffentlichen</string>
+  <string name="account_export_end_decryption_message">Ihr Konto konnte mit dem angegebenen Passwort nicht entsperrt werden</string>
+  <string name="account_export_end_network_title">Netzwerkfehler</string>
+  <string name="account_export_end_network_message">Das Konto konnte nicht in das Netzwerk exportiert werden. Überprüfen sie ihre Verbindung.</string>
+  <string name="account_export_end_error_title">Fehler</string>
+  <string name="account_export_end_error_message">Konto konnte nicht exportiert werden. Ein unbekannter Fehler ist aufgetreten.</string>
+  <string name="account_enter_password">Passwort eingeben</string>
+  <string name="account_share_body">Kontaktieren Sie mich über \'%1$s\' mit Ring als Kommunikationsplattform: http://ring.cx</string>
+  <string name="account_share_body_with_username">Kontaktieren Sie mich über \'%1$s\' oder meinen öffentlichen Benutzernamen \'%2$s\' mit Ring als Kommunikationsplattform: http://ring.cx</string>
+  <string name="account_contact_me">Kontaktieren Sie mich mit Ring!</string>
+  <string name="update_account">Konto aktualisieren</string>
+  <string name="account_migration">Ihr Ring-Konto kann aktualisiert werden.\nBitte geben Sie Ihr Passwort ein.</string>
+  <string name="ring_account">Ring-Konto</string>
+  <string name="ring_account_identity">Identität</string>
+  <string name="account_migration_title_dialog">Konto-Migration</string>
+  <string name="account_migration_message_dialog">Ihre Konten müssen aktualisiert werden. Möchten Sie zum Kontoverwaltungsfenster gehen, um diesen Vorgang auszuführen?</string>
+  <string name="account_update_needed">Aktualisierung durchführen</string>
+  <string name="account_creation_file_too_big">Datei ist zu gross</string>
+  <string name="account_cannot_read">Kann %1$s nicht lesen</string>
+  <string name="account_cannot_be_found_title">Kann Konto nicht finden</string>
+  <string name="account_cannot_be_found_message">Konto kann im Ring-Netzwerk nicht gefunden werden.\nStellen Sie sicher, dass es von einem bereits konfiguierten Gerät exportiert wurde und dass die angegebenen Zugansdaten korrekt sind.</string>
+  <string name="account_sip_cannot_be_registered_message">Sie können mit dem Kontoerstellungsprozess fortfahren oder Ihre Informationen hier bearbeiten. Änderungen sind später in den Kontoeinstellungen noch möglich.</string>
+  <string name="account_no_network_title">Verbindung mit dem Netzwerk nicht möglich</string>
+  <string name="account_no_network_message">Konto konnte nicht hinzugefügt werden, da Ring sich nicht mit dem verteilten Netzwerk verbinden konnte. Überprüfen sie die Verbindung ihres Gerätes.</string>
+  <string name="account_device_added_title">Konto-Gerät hinzugefügt</string>
+  <string name="account_device_added_message">Sie haben erfolgreich ihr Ring-Konto auf diesem Gerät erstellt.</string>
+  <string name="account_device_updated_title">Konto-Gerät aktualisiert</string>
+  <string name="account_device_updated_message">Sie haben erfolgreich Ihr Ring-Konto aktualisiert</string>
+  <string name="account_cannot_be_updated_message">Konto-Gerät konnte nicht aktualisiert werden. Bitte überprüfen Sie Ihr Passwort.</string>
+  <string name="account_sip_success_title">SIP-Konto registriert</string>
+  <string name="account_sip_success_message">Sie haben erfolgreich Ihr SIP-Konto registriert.</string>
+  <string name="account_sip_register_anyway">Trotzdem registieren</string>
+  <string name="account_link_button">Dieses Gerät mit einem Konto verknüpfen</string>
+  <string name="account_import_title">Mit einem vorhandenen Konto verknüpfen</string>
+  <string name="account_link_prompt_pin">PIN eingeben</string>
+  <string name="account_wizard_title">Willkommen bei</string>
+  <string name="account_new_button">Ein Ring-Konto erstellen</string>
+  <string name="account_link_export_button">Weiteres Gerät mit diesem Konto verknüpfen</string>
+  <string name="account_link_export_info">Um dieses Konto auf weiteren Geräten zu verwenden, müssen Sie zuerst in den Kontoeinstellungen eine PIN generieren. Diese muss auf dem neuen Gerät eingeben werden, um das Konto zu importieren. Die PIN ist für 10 Minuten gültig. \n\nBitte geben Sie Ihr Passwort ein um zu beginnen:</string>
+  <string name="account_start_export_button">PIN generieren</string>
+  <string name="account_end_export_button">Schließen</string>
+  <string name="account_end_export_infos">Ihre PIN ist:\n\n%%\n\nUm den Prozess abzuschließen, öffnen Sie Ring auf dem neuen Gerät. Erstellen Sie ein Konto mit \"Dieses Gerät mit einem Konto verknüpfen\". Ihre PIN ist 10 Minuten gültig.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Name konnte nicht registriert werden: Falches Passwort.</string>
+  <string name="register_name_invalid">Name konnte nicht registriert werden: Ungültiger Name.</string>
+  <string name="register_name_already_taken">Name konnte nicht registriert werden: Name existiert bereits.</string>
+  <string name="register_name_network_error">Name konnte nicht registriert werden: Netzwerk oder Server Fehler.</string>
+  <string name="error_username_empty">Benutzername eingeben</string>
+  <string name="no_registered_name_for_account">Es wurde kein registrierter Name für dieses Konto gefunden</string>
+  <string name="register_name">Name registrieren</string>
+  <string name="trying_to_register_name">Name wird registriert</string>
+  <string name="registered_username">Benutzername wurde registriert</string>
+  <string name="register_username">Melden Sie sich für einen allgemein-bekannten Benutzername an (experimentell)</string>
+  <string name="username_already_taken">Dieser Benutzername ist bereits vergeben</string>
+  <string name="invalid_username">Ungültiger Benutzername</string>
+  <string name="looking_for_username_availability">Prüfe, ob der Benutzername verfügbar ist...</string>
+  <string name="account_status_connecting">Verbindet</string>
+  <string name="account_status_connection_error">Verbindungsfehler</string>
+  <string name="account_status_online">Online</string>
+  <string name="account_status_unknown">Unbekannt</string>
+  <string name="account_status_offline">Offline</string>
+  <!--Create account-->
+  <string name="account_creation_home">Willkommen zu Ring</string>
+  <string name="account_creation_profile">Erstellen Sie Ihr Profil</string>
+  <string name="account_creation_ring">Erstellen Sie Ihr Ring-Konto</string>
+  <string name="account_link_title">Verbinde diese Gerät</string>
+  <string name="account_sip_cannot_be_registered">Konto kann nicht registriert werden</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">Passwort zur Bestätigung eingeben</string>
+  <string name="enter_password">Passwort eingeben</string>
+  <string name="revoke_device_title">Gerät widerrufen</string>
+  <string name="revoke_device_message">Sind Sie sich sicher, dass Sie %1$s widerrufen wollen?</string>
+  <string name="revoke_device_wait_title">Bitte warten…</string>
+  <string name="revoke_device_wait_message">Gerät wird widerrufen</string>
+  <string name="rename_device_title">Gerät umbenennen</string>
+  <string name="rename_device_message">Wählen Sie einen neuen Namen für dieses Gerätes zur Zuordnung in ihrem Ring-Konto</string>
+  <string name="rename_device_button">Gerät umbenennen</string>
+  <string name="account_rename_device_hint">Wählen Sie einen neuen Gerätenamen</string>
+  <string name="account_device_name_empty">Geräte darf nicht leer sein</string>
+  <string name="account_device_this_indicator">dieses Gerät</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de/strings_call.xml b/ring-android/androidtv/src/main/res/values-de/strings_call.xml
new file mode 100644
index 0000000..b3f4d59
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Klingelt</string>
+    <string name="call_human_state_connecting">Verbindet</string>
+    <string name="call_human_state_ringing">Rufaufbau</string>
+    <string name="call_human_state_current">Sprechend</string>
+    <string name="call_human_state_hungup">Über</string>
+    <string name="call_human_state_busy">Beschäftigt</string>
+    <string name="call_human_state_failure">Fehlgeschlagen</string>
+    <string name="call_human_state_hold">Halten</string>
+    <string name="call_human_state_unhold">Halten aufheben</string>
+    <string name="call_human_state_over">Über</string>
+    <string name="call_human_state_none">Kein</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Aktiv angefügt</string>
+    <string name="conference_human_state_active_detached">Aktiv getrennt</string>
+    <string name="conference_human_state_active_attached_rec">Aktiv angefügt aufnehmend</string>
+    <string name="conference_human_state_active_detached_rec">Aktiv getrennt aufnehmend</string>
+    <string name="conference_human_state_hold">Halten</string>
+    <string name="conference_human_state_hold_rec">Aufnehmend halten</string>
+    <string name="conference_human_state_default">Kein</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-de/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-de/strings_content_description.xml
new file mode 100644
index 0000000..ed09b0d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de/strings_content_description.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Jetzt anrufen</string>
+  <string name="contact_picture_description">Profilbild</string>
+  <string name="dial_numeric_pad">Nummerische Wähltastatur</string>
+  <string name="contact_unblock">Entsperren</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-de/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-de/strings_preferences.xml
new file mode 100644
index 0000000..38cfd62
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-de/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Netzwerk</string>
+  <string name="pref_category_contacts">Kontakte</string>
+  <string name="pref_category_system">System</string>
+  <string name="pref_category_privacy">Privatsphäre</string>
+  <string name="pref_mobileData_title">Mobildaten</string>
+  <string name="pref_mobileData_summary">Ring die Nutzung von 3G/LTE neben WiFi erlauben</string>
+  <string name="pref_systemContacts_title">Systemkontakte benutzen</string>
+  <string name="pref_systemContacts_summary">Systemkontakte benutzen, um Anruferdetails anzuzeigen</string>
+  <string name="pref_systemDialer_title">Auch normale Anrufe über Ring abwickeln</string>
+  <string name="pref_systemDialer_summary">Ring für normale Anrufe verwenden, wenn möglich.</string>
+  <string name="pref_startOnBoot_title">Ring beim Hochfahren starten</string>
+  <string name="pref_startOnBoot_summary">Ring im Hintergrund aktivieren während das System startet</string>
+  <string name="pref_clearHistory_title">Verlauf leeren</string>
+  <string name="pref_clearHistory_summary">Alle Konversationen aus dem Verlauf löschen. Diese Aktion kann nicht rückgängig gemacht werden.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-el/strings.xml b/ring-android/androidtv/src/main/res/values-el/strings.xml
new file mode 100644
index 0000000..f4bc5e4
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-el/strings.xml
@@ -0,0 +1,119 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Το Ring είναι δωρεάν/ελεύθερο λογισμικό αναπτυγμένο και υποστηριζόμενο από</string>
+  <string name="copyright_section">Πνευματική ιδιοκτησία</string>
+  <string name="contribute_section">Πρόσφερε</string>
+  <string name="version_section">Έκδοση</string>
+  <string name="no_email_app_installed">Δεν βρέθηκε κάποια εφαρμογή email, εγκαταστήστε μια για μας στείλετε μια αναφορά</string>
+  <string name="email_chooser_title">Αποστολή email σε χρήση...</string>
+  <string name="credits">Μονάδες</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Καμία σύνδεση στο δίκτυο</string>
+  <string name="error_mobile_network_available_but_disabled">Παρακαλώ δώστε πρόσβαση στο δίκτυο κινητής τηλεφωνίας από τις  ρυθμίσεις του κινητού.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Νέος Λογαριασμός</string>
+  <string name="ab_action_chat">Μήνυμα κειμένου</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Άνοιγμα \"συρταριού\" πλοήγησης</string>
+  <string name="drawer_close">Κλείσιμο \"συρταριού\" πλοήγησης</string>
+  <!--Sections-->
+  <string name="menu_item_home">Αρχική</string>
+  <string name="menu_item_accounts">Διαχείριση Λογαριασμών</string>
+  <string name="menu_item_settings">Ρυθμίσεις</string>
+  <string name="menu_item_share">Μοίρασε τις επαφές μου</string>
+  <string name="menu_item_about">Σχετικά</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Κλήση αριθμού</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Απάντηση</string>
+  <string name="hist_replay_button_stop">Τερματισμός</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <string name="home_transfer_complet">Η προώθηση ολοκληρώθηκε</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Δεν βρέθηκαν επαφές</string>
+  <string name="starred_contacts_title">Αγαπημένα</string>
+  <string name="searchbar_hint">Εισάγετε ένα όνομα ή αριθμό τηλεφώνου</string>
+  <string name="choose_number">Επιλέξτε αριθμό</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Προώθηση σε ενεργή κλήση</string>
+  <string name="transfer_no_other_call">Δεν υπάρχουν εκκρεμείς κλήσεις</string>
+  <string name="transfer_type_number">Πληκτρολογείστε αριθμό για προώθηση</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Εισερχόμενη κλήση από %1$s</string>
+  <string name="notif_incoming_call">Εισερχόμενη κλήση</string>
+  <string name="notif_outgoing_call_title">Εξερχόμενη κλήση  %1$s</string>
+  <string name="notif_outgoing_call">Εξερχόμενη κλήση</string>
+  <string name="notif_current_call_title">Κλήση σε εξέλιξη με %1$s</string>
+  <string name="notif_current_call">Κλήση σε εξέλιξη</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Εσύ</string>
+  <string name="action_call_conference">Συνδιάσκεψη</string>
+  <string name="action_call_hangup">Κλείσιμο</string>
+  <string name="ongoing_call">Εξερχόμενη κλήση</string>
+  <string name="hist_in_call">Εισερχόμενη κλήση από %1$s</string>
+  <string name="hist_out_call">Εξερχόμενη κλήση από %1$s</string>
+  <string name="start_error_title">Η εφαρμογή Ring δεν μπορεί να ξεκινήσει !</string>
+  <string name="start_error_mic_required">Η εφαρμογή Ring θέλει να χρησιμοποιήσει το μικρόφωνο για να λειτουργήσει.</string>
+  <string name="action_call_accept">Κάνε μια κλήση</string>
+  <string name="action_call_decline">Απόρριψη κλήσης</string>
+  <string name="ab_action_speakerphone">Μεγάφωνο</string>
+  <string name="ab_action_contact_add">Προσθήκη στις επαφές</string>
+  <string name="ab_action_contact_add_question">Προσθήκη στις επαφές;</string>
+  <string name="ab_action_audio_call">Κλήση φωνής</string>
+  <string name="ab_action_video_call">Κλήση βίντεο</string>
+  <string name="share_via">Μοίρασμα μέσω</string>
+  <string name="write_a_message">Γράψε μήνυμα</string>
+  <string name="scan_qr">Σάρωση QR κώδικα</string>
+  <string name="ab_action_flipcamera">Εναλλαγή κάμερας</string>
+  <!--Text messages-->
+  <string name="send_message">Στείλε μήνυμα</string>
+  <string name="message_sending">Μήνυμα αποστέλλεται...</string>
+  <string name="time_just_now">Μόλις τώρα</string>
+  <string name="permission_read_denied">Η εφαρμογή δεν ήταν σε θέση να διαβάσει τον δίσκο σας. Με αποτέλεσμα να μην δουλεύει σωστά. Σκεφτείτε να δώσετε δικαιώματα στην λειτουργία αυτή</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Άδεια πρόσβασης στην κάμερα</string>
+  <string name="permission_dialog_camera_message">Οι κλήσεις μέσω βίντεο χρειάζεται την άδεια στην κάμερά  για να δουλέψει. Παρακαλώ σκεφτείτε να την ενεργοποιήσετε.</string>
+  <string name="ringtone_error_title">Σφάλμα</string>
+  <string name="ringtone_error_size_too_big">Το αρχείο είναι πολύ μεγάλο. Το μέγιστο μέγεθος είναι %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Η εφαρμογή Ring χρειάζεται να διαβάσει τις επαφές σας ώστε να ενεργοποιήσει αυτή την λειτουργία. Παρακαλώ δώστε την.</string>
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Σαρώστε τον κώδικα QR του λογαριασμού που θέλετε να προσθέσετε.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Διαγραφή ιστορικού;</string>
+  <string name="clear_history_dialog_message">Η ενέργεια αυτή δεν μπορεί να ανακληθεί.</string>
+  <string name="clear_history_completed">Το ιστορικό έχει διαγραφεί.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Διαγραφή αυτής της συνομιλίας</string>
+  <string name="conversation_action_delete_this_title">Διαγραφή αυτής της συνομιλίας;</string>
+  <string name="conversation_action_delete_this_message">Η ενέργεια αυτή δεν μπορεί να ανακληθεί.</string>
+  <string name="conversation_action_copy_peer_number">Αντιγραφή αριθμού </string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s αντιγράφτηκε στο πρόχειρο</string>
+  <string name="conversation_action_select_peer_number">Επιλέξτε αριθμό </string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Προσθήκη %1$s ;</string>
+  <string name="prompt_new_password">Νέο συνθηματικό</string>
+  <string name="prompt_new_password_repeat">Επανάληψη νέου συνθηματικού</string>
+  <string name="account_create_title">Δημιουργία λογαριασμού Ring</string>
+  <string name="help_password_enter">Εισαγωγή συνθηματικού του κύριου Ring λογαριασμού σας</string>
+  <string name="wizard_next">Επόμενο</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Το προφίλ μου</string>
+  <string name="take_a_photo">Λήψη φωτογραφίας</string>
+  <string name="unknown">Άγνωστοι</string>
+  <!--Share fragment-->
+  <string name="share_your_account_information">Μοίρασε τις πληροφορίες των επαφών μου</string>
+  <string name="generic_error_migration">Σφάλμα</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <string name="send_request_button">Αποστολή</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-el/strings_account.xml b/ring-android/androidtv/src/main/res/values-el/strings_account.xml
new file mode 100644
index 0000000..e91868c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-el/strings_account.xml
@@ -0,0 +1,52 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Διαγραφή</string>
+  <!--Strings related to account creation-->
+  <string name="add_sip_account_title">Προσθήκη λογαριασμού SIP</string>
+  <string name="prompt_alias">Ψευδώνυμο</string>
+  <string name="prompt_hostname">Hostname</string>
+  <string name="prompt_username">Όνομα χρήστη</string>
+  <string name="prompt_password">Σύνθημα</string>
+  <string name="action_create_short">Εγγραφή</string>
+  <string name="create_sip_account">Προσθήκη λογαριασμού SIP</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_message">Η ενέργεια αυτή δεν μπορεί να ανακληθεί.</string>
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Λογαριασμοί</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Γενικά</string>
+  <string name="account_hostname_label">Hostname</string>
+  <string name="account_username_label">Όνομα χρήστη</string>
+  <string name="account_password_label">Σύνθημα</string>
+  <string name="account_proxy_field">Διαμεσολαβητής</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Ήχος</string>
+  <string name="account_preferences_media_tab">Μέσα</string>
+  <string name="account_ringtone_label">Ringtones</string>
+  <!--Video Details-->
+  <string name="account_video_label">Βίντεο</string>
+  <string name="account_video_enable">Ενεργοποίση βίνταο</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Για προχωρημένους</string>
+  <string name="account_turn_enable_label">Χρήση TURN</string>
+  <string name="account_published_address_label">Δημοσιευμένη διεύθυνση</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Ασφάλεια</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_rtp_port_range">Εύρος θυρών RTP ήχου</string>
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">Σφάλμα</string>
+  <string name="account_device_updated_message">Ο Ring λογαριασμός σας αναβαθμίστηκε επιτυχώς.</string>
+  <string name="account_wizard_title">Καλώς ήλθατε στο</string>
+  <string name="account_new_button">Δημιουργία λογαριασμού Ring</string>
+  <!--Name registration-->
+  <string name="invalid_username">Μη έγκυρο όνομα χρήστη</string>
+  <string name="account_status_connecting">Συνδέεται</string>
+  <string name="account_status_unknown">Άγνωστοι</string>
+  <!--Create account-->
+  <string name="account_creation_home">Καλώς ήλθατε στο Ring</string>
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-el/strings_call.xml b/ring-android/androidtv/src/main/res/values-el/strings_call.xml
new file mode 100644
index 0000000..011ac15
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-el/strings_call.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Κουδουνίζει</string>
+    <string name="call_human_state_connecting">Συνδέεται</string>
+    <string name="call_human_state_ringing">Καλεί</string>
+    <string name="call_human_state_current">Μιλά</string>
+    <string name="call_human_state_hungup">Τέλος</string>
+    <string name="call_human_state_busy">Απασχολημένο</string>
+    <string name="call_human_state_failure">Απέτυχε</string>
+    <string name="call_human_state_hold">Αναμονή</string>
+    <string name="call_human_state_unhold">Ακύρωση αναμονής</string>
+    <string name="call_human_state_over">Τέλος</string>
+    <string name="call_human_state_none">Κανένα</string>
+    <string name="conference_human_state_hold">Αναμονή</string>
+    <string name="conference_human_state_default">Κανένα</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-el/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-el/strings_content_description.xml
new file mode 100644
index 0000000..91a5fb0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-el/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Γρήγορη Κλήση</string>
+  <string name="contact_picture_description">Εικόνα επαφής</string>
+  <string name="dial_numeric_pad">Αριθμητικό Πληκτρολόγιο</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-el/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-el/strings_preferences.xml
new file mode 100644
index 0000000..de19316
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-el/strings_preferences.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Δίκτυο</string>
+  <string name="pref_category_contacts">Επαφές</string>
+  <string name="pref_category_system">Σύστημα</string>
+  <string name="pref_mobileData_title">Δεδομένα κινητού</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-en-rGB/strings_account.xml b/ring-android/androidtv/src/main/res/values-en-rGB/strings_account.xml
new file mode 100644
index 0000000..db66ab2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-en-rGB/strings_account.xml
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <!--Strings related to account creation-->
+  <!--Strings related to account deletion-->
+  <!--AccountManagementFragment-->
+  <!--Basic Details-->
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_ringtone_label">Ringtones</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <!--Advanced Details-->
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <!--Name registration-->
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-eo/strings.xml b/ring-android/androidtv/src/main/res/values-eo/strings.xml
new file mode 100644
index 0000000..557ea13
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-eo/strings.xml
@@ -0,0 +1,115 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="version_section">Eldono</string>
+  <string name="description">Ring estas libera programo por universala komunikado, kiu respektas liberon kaj privatecon de siaj uzantoj.</string>
+  <string name="credits">Kredito</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Sen reta konekto</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nova konto</string>
+  <string name="ab_action_chat">Text messaging</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Malfermu navigan tirkeston</string>
+  <string name="drawer_close">Fermu navigan tirkeston</string>
+  <!--Sections-->
+  <string name="menu_item_home">Hejmo</string>
+  <string name="menu_item_accounts">Administri kontojn</string>
+  <string name="menu_item_settings">Agordoj</string>
+  <string name="menu_item_about">Pri Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Diski numeron</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Reludi</string>
+  <string name="hist_replay_button_stop">Stopi</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Konversacio</item>
+    <item quantity="other">%d Konversacioj</item>
+  </plurals>
+  <string name="home_transfer_complet">Transigo finita</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Neniu kontakto trovita</string>
+  <string name="starred_contacts_title">Favorataj</string>
+  <string name="searchbar_hint">Entajpu nomon aŭ telefonnumeron…</string>
+  <string name="choose_number">Elektu numeron</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transigu al alian vokon:</string>
+  <string name="transfer_no_other_call">Sen aliaj vokoj</string>
+  <string name="transfer_type_number">Entajpu numeron por transigi al:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Eniranta voko de %1$s</string>
+  <string name="notif_incoming_call">Eniranta voko</string>
+  <string name="notif_outgoing_call_title">Eliranta voko al %1$s</string>
+  <string name="notif_outgoing_call">Eliranta voko</string>
+  <string name="notif_current_call_title">Aktiva voko kun %1$s</string>
+  <string name="notif_current_call">Aktiva voko</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Vi:</string>
+  <string name="action_call_attended_transfer">Attended Transfer</string>
+  <string name="action_call_conference">Konferenco</string>
+  <string name="action_call_hangup">Fini vokon</string>
+  <string name="ongoing_call">Aktiva voko</string>
+  <string name="hist_in_call">Eniranta voko de %1$s</string>
+  <string name="hist_out_call">Eliranta voko de %1$s</string>
+  <string name="start_error_title">Ne povas lanĉi Ring !</string>
+  <string name="start_error_mic_required">Ring bezonas permeson je mikrofono por funkcii.</string>
+  <string name="action_call_accept">Akcepti</string>
+  <string name="action_call_decline">Rifuzi</string>
+  <string name="ab_action_speakerphone">Ŝalti laŭtparolilon</string>
+  <string name="ab_action_contact_add">Aldoni al kontaktoj</string>
+  <string name="ab_action_contact_add_question">Ĉu aldoni al kontaktoj ?</string>
+  <string name="ab_action_audio_call">Sona voko</string>
+  <string name="ab_action_video_call">Videa voko</string>
+  <string name="share_via">Kunhavi per</string>
+  <string name="write_a_message">Skribi mesaĝon</string>
+  <string name="scan_qr">Skani QR Kodon</string>
+  <string name="ab_action_flipcamera">Renversi kameraon</string>
+  <!--Text messages-->
+  <string name="send_message">Sendi mesaĝon</string>
+  <string name="message_sending">Sendanta mesaĝon…</string>
+  <string name="time_just_now">Ĵus</string>
+  <string name="permission_read_denied">La aplikaĵo ne permesatis legi vian konservadon. Tial, ĝi ne funkcias ĝuste. Bonvole pripensu permesi ĝin</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Permeso je kamerao</string>
+  <string name="permission_dialog_camera_message">Video-konversacioj bezonas permeson je kamerao por funkcii. Bonvole pripensu permesi ĝin.</string>
+  <string name="ringtone_error_title">Eraro</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring bezonas la \"Legu kontaktojn\" permeson por ŝalti tiu ĉi funkcion. Bonvole permesu ĝin.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring bezonas la \"Skribu protokolon de vokoj\" permeson por ŝalti tiu ĉi funkcion. Bonvole permesu ĝin.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Skanu la QR Kodon de la konto, kiun vi volas aldoni.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Ĉu vakigi historion ?</string>
+  <string name="clear_history_dialog_message">Tiu ĉi ago ne povos malfariĝî.</string>
+  <string name="clear_history_completed">Historio vakigita.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Forigi tiu ĉi konversacion</string>
+  <string name="conversation_action_delete_this_title">Ĉu forigi tiu ĉi konversacion ?</string>
+  <string name="conversation_action_delete_this_message">Tiu ĉi ago ne povos malfariĝi.</string>
+  <string name="conversation_action_copy_peer_number">Kopii numeron</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s kopiita en tondejon</string>
+  <string name="conversation_action_select_peer_number">Elektu numeron</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Ĉu aldoni %1$s ?</string>
+  <string name="prompt_new_password">Nova pasvorto</string>
+  <string name="account_create_title">Krei Ring konton</string>
+  <string name="wizard_next">Sekva</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">Nekonata</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">Eraro</string>
+  <!--Pending contact requests-->
+  <string name="accept">Akcepti</string>
+  <string name="refuse">Rifuzi</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Sendi</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-eo/strings_account.xml b/ring-android/androidtv/src/main/res/values-eo/strings_account.xml
new file mode 100644
index 0000000..2d8430b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-eo/strings_account.xml
@@ -0,0 +1,105 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Forigi</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Kromnomo</string>
+  <string name="prompt_hostname">Nomo de gastiga komputilo</string>
+  <string name="prompt_username">Uzantnomo</string>
+  <string name="prompt_password">Pasvorto</string>
+  <string name="action_create_short">Registri</string>
+  <string name="error_field_required">Tiu ĉi kampo bezonatas.</string>
+  <string name="dialog_wait_create">Aldonanta konton</string>
+  <string name="dialog_wait_create_details">Bonvole atendu dum via konto aldonatas…</string>
+  <string name="dialog_warn_ip2ip_account_title">Ĉu krei malplenan SIP konton ?</string>
+  <string name="dialog_warn_ip2ip_account_message">Vi kreontas novan SIP konton sen valida nomo de gastiga komputilo.
+        Vi nur eblos fari kaj ricevi senperajn ip vokojn.
+        Vi povas redakti vian konton poste</string>
+  <string name="help_ring">Ring konto ebligas al vi kontakti homojn sekure en plene disa samtavola reto.</string>
+  <string name="help_sip_title">Aldoni vian SIP konton</string>
+  <string name="help_sip">Agordi ekzistantan SIP konton.</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Ĉu forigi konton ?</string>
+  <string name="account_delete_dialog_message">Tiu ĉi ago ne povos malfariĝi.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Sen registrita konto</string>
+  <string name="normal_accounts_titles">Kontoj</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Ĝenerala</string>
+  <string name="account_basic_category">Bazaj Agordoj</string>
+  <string name="account_alias_label">Nomo de konto</string>
+  <string name="account_hostname_label">Nomo de gastiga komputilo</string>
+  <string name="account_bootstrap_label">Praŝarĝo</string>
+  <string name="account_username_label">Uzantnomo</string>
+  <string name="account_password_label">Pasvorto</string>
+  <string name="account_optionnal_category">Malnepraj Agordoj</string>
+  <string name="account_useragent_label">Klienta Aplikaĵo</string>
+  <string name="account_autoanswer_label">Aŭtomata Respondo</string>
+  <string name="account_proxy_field">Prokura Servilo</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Aŭdio</string>
+  <string name="account_preferences_media_tab">Aŭdvidaĵoj</string>
+  <string name="account_ringtone_label">Vokosonoj</string>
+  <string name="account_ringtone_enabled_label">Aktivigi vokosonojn</string>
+  <string name="account_ringtone_path_label">Vokosona dosierindiko</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Ŝalti Videon</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Specialaj</string>
+  <string name="account_registration_exp_label">Datlimo de registrado</string>
+  <string name="account_local_interface_label">Loka Interfaco</string>
+  <string name="account_local_port_label">Loka Pordo</string>
+  <string name="account_stun_enable_label">Uzi Stun</string>
+  <string name="account_stun_server_label">Stun Servilo</string>
+  <string name="account_turn_enable_label">Uzi TURN</string>
+  <string name="account_turn_server_label">TURN servilo</string>
+  <string name="account_turn_username_label">TURN uzantnomo</string>
+  <string name="account_turn_password_label">TURN pasvorto</string>
+  <string name="account_published_same_as_local_label">Publikita same kiel local</string>
+  <string name="account_published_port_label">Publikito Pordo</string>
+  <string name="account_published_address_label">Publikita Adreso</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Ensalutiloj</string>
+  <string name="account_credentials_edit">Redakti ensalutilojn</string>
+  <string name="account_credentials_add">Aldoni ensalutilojn</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sekuro</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Uzi TLS Transporton</string>
+  <string name="account_tls_port_label">TLS Aŭdanta Pordo</string>
+  <string name="account_tls_certificate_list_label">Aŭtoritatoj de Atestado</string>
+  <string name="account_tls_certificate_file_label">Dosiero de Atestilo</string>
+  <string name="account_tls_private_key_file_label">Dosiero de Privata Ŝlosilo</string>
+  <string name="account_tls_password_label">Pasvorto de Privata Ŝlosilo</string>
+  <string name="account_tls_method_label">TLS Metodo</string>
+  <string name="account_tls_ciphers_label">TLS Ĉifroj</string>
+  <string name="account_tls_server_name_label">Nomo de Servilo</string>
+  <string name="account_tls_verify_server_label">Kontroli Servilon</string>
+  <string name="account_tls_verify_client_label">Kontroli Klienton</string>
+  <string name="account_tls_negotiation_timeout_sec">Tempolimo de Intertraktado (sek)</string>
+  <string name="account_rtp_max_port">Maksimumo</string>
+  <string name="account_rtp_min_port">Minimumo</string>
+  <string name="account_rtp_port_range">Intervalo de Aŭdia RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Entajpu pasvorton por malĉifri la dosieron.</string>
+  <string name="account_restore_decryption_password">Malĉifra pasvorto</string>
+  <string name="restore_backup_wait">Bonvole atendu…</string>
+  <string name="error_password_char_count">6 signoj minimume</string>
+  <string name="error_passwords_not_equals">Pasvortoj ne kongruas</string>
+  <string name="restore_failed_dialog_msg">Eraro okazis</string>
+  <string name="export_account_wait_title">Bonvole atendu…</string>
+  <string name="account_export_end_network_title">Reta eraro</string>
+  <string name="account_export_end_error_title">Eraro</string>
+  <string name="account_wizard_title">Bonvenu al</string>
+  <string name="account_new_button">Krei Ring konton</string>
+  <!--Name registration-->
+  <string name="username_already_taken">Uzantnomo jam prenita</string>
+  <string name="invalid_username">Nevalida uzantnomo</string>
+  <string name="account_status_unknown">Nekonata</string>
+  <!--Create account-->
+  <string name="account_creation_home">Bonvenu al Ring</string>
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Bonvole atendu…</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-eo/strings_call.xml b/ring-android/androidtv/src/main/res/values-eo/strings_call.xml
new file mode 100644
index 0000000..204113d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-eo/strings_call.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Sonoriĝanta</string>
+    <string name="call_human_state_ringing">Sonoriganta</string>
+    <string name="call_human_state_current">Parolanta</string>
+    <string name="call_human_state_hungup">Finita</string>
+    <string name="call_human_state_busy">Okupata</string>
+    <string name="call_human_state_failure">Fiaskinta</string>
+    <string name="call_human_state_hold">Deteni</string>
+    <string name="call_human_state_unhold">Maldeteni</string>
+    <string name="call_human_state_over">Finita</string>
+    <string name="conference_human_state_hold">Deteni</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-eo/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-eo/strings_content_description.xml
new file mode 100644
index 0000000..51da492
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-eo/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Rapida Voko</string>
+  <string name="contact_picture_description">Kontakta Bildo</string>
+  <string name="dial_numeric_pad">Ciferilo</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-eo/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-eo/strings_preferences.xml
new file mode 100644
index 0000000..5ebe93e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-eo/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Reto</string>
+  <string name="pref_category_contacts">Kontaktoj</string>
+  <string name="pref_category_system">Sistemo</string>
+  <string name="pref_category_privacy">Privateco</string>
+  <string name="pref_mobileData_title">Porteblaj datumoj</string>
+  <string name="pref_mobileData_summary">Permesi Ring uzi 3G/LTE retojn aldone al Wi-Fi</string>
+  <string name="pref_systemContacts_title">Uzi sistemajn kontaktojn</string>
+  <string name="pref_systemContacts_summary">Uzi sistemajn kontaktojn por montri detalojn de la vokanto.</string>
+  <string name="pref_systemDialer_title">Fari sistemajn vokojn per Ring</string>
+  <string name="pref_systemDialer_summary">Uzi Ring por sistemajn vokojn kiam tio eblas.</string>
+  <string name="pref_startOnBoot_title">Lanĉi Ring je startigo</string>
+  <string name="pref_startOnBoot_summary">Lanĉi Ring fone kiam la sistemo startas.</string>
+  <string name="pref_clearHistory_title">Vakigi historion</string>
+  <string name="pref_clearHistory_summary">Vakigi la tutan historion de konversacioj. Tiun ĉi agon ne eblos malfari.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-es/strings.xml b/ring-android/androidtv/src/main/res/values-es/strings.xml
new file mode 100644
index 0000000..dae6d82
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-es/strings.xml
@@ -0,0 +1,139 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="section_license">Licencia</string>
+  <string name="sponsor_section">Ring es un software libre desarrollado y mantenido por</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Contribuir</string>
+  <string name="version_section">Versión</string>
+  <string name="no_email_app_installed">No se ha encontrado ninguna aplicación de correo. Instala una para enviarnos el informe</string>
+  <string name="no_browser_app_installed">No se ha encontrado un navegador, instale uno para poder ver esta página</string>
+  <string name="email_chooser_title">Enviar correo usando...</string>
+  <string name="description">Ring es software libre de comunicaciones que respeta las libertades y privacidad de sus usuarios.</string>
+  <string name="credits">Créditos</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Sin conexión a la red</string>
+  <string name="error_mobile_network_available_but_disabled">Permite el acceso a la red móvil en el menú de configuración.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Cuenta nueva</string>
+  <string name="ab_action_chat">Mensaje de texto</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Abrir menú lateral</string>
+  <string name="drawer_close">Cerrar menú lateral</string>
+  <!--Sections-->
+  <string name="menu_item_home">Inicio</string>
+  <string name="menu_item_accounts">Administrar cuentas</string>
+  <string name="menu_item_settings">Configuración</string>
+  <string name="menu_item_share">Compartir mi contacto</string>
+  <string name="menu_item_about">Acerca de Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Marcar un Número</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Repetir</string>
+  <string name="hist_replay_button_stop">Parar</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversacion</item>
+    <item quantity="other">Conversaciones: %d</item>
+  </plurals>
+  <string name="home_transfer_complet">Transferencia completada</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">No se ha encontrado el contacto</string>
+  <string name="starred_contacts_title">Favoritos</string>
+  <string name="searchbar_hint">Introduce nombre o número de teléfono...</string>
+  <string name="choose_number">Escoge un número</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transferir a otra llamada en curso:</string>
+  <string name="transfer_no_other_call">No hay llamadas pendientes</string>
+  <string name="transfer_type_number">Escribe el número al que transferir:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Llamada entrante de %1$s</string>
+  <string name="notif_incoming_call">Llamada entrante</string>
+  <string name="notif_outgoing_call_title">Llamando a %1$s</string>
+  <string name="notif_outgoing_call">Llamada saliente</string>
+  <string name="notif_current_call_title">Llamada en curso con %1$s</string>
+  <string name="notif_current_call">Llamada en curso</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Tú:</string>
+  <string name="action_call_attended_transfer">Transferencia atendida</string>
+  <string name="action_call_conference">Conferencia</string>
+  <string name="action_call_hangup">Colgar</string>
+  <string name="ongoing_call">Llamada en curso</string>
+  <string name="hist_in_call">Llamada entrante de %1$s</string>
+  <string name="hist_out_call">Llamada saliente a %1$s</string>
+  <string name="start_error_title">Ring no puede iniciarse</string>
+  <string name="start_error_mic_required">Ring necesita permiso de acceso al micro para funcionar.</string>
+  <string name="action_call_accept">Contestar a la llamada</string>
+  <string name="action_call_decline">Rechazar</string>
+  <string name="ab_action_speakerphone">Activar el altavoz</string>
+  <string name="ab_action_contact_add">Añadir a contactos</string>
+  <string name="ab_action_contact_add_question">¿Añadir a contactos?</string>
+  <string name="ab_action_audio_call">Llamada de voz</string>
+  <string name="ab_action_video_call">Videollamada</string>
+  <string name="share_via">Compatir via</string>
+  <string name="write_a_message">Escribir un mensaje</string>
+  <string name="scan_qr">Escanear código QR</string>
+  <string name="ab_action_flipcamera">Cambiar de cámara</string>
+  <!--Text messages-->
+  <string name="send_message">Enviar mensaje</string>
+  <string name="message_sending">Enviando mensaje...</string>
+  <string name="time_just_now">En este momento</string>
+  <string name="permission_read_denied">La aplicación no puede funcionar correctamente porque tiene permiso para leer tus archivos. Considera darle los permisos necesarios</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Permiso de cámara</string>
+  <string name="permission_dialog_camera_message">Las conversaciones con vídeo requieren utilizar la cámara. Considera conceder este permiso.</string>
+  <string name="ringtone_error_title">Error</string>
+  <string name="ringtone_error_format_not_supported">Este formato no está soportado.</string>
+  <string name="ringtone_error_size_too_big">El archivo es demasiado grande. El tamaño máximo es %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring necesita permiso para leer los contactos. Por favor, concede este permiso.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring necesita permiso para escribir en el registro de llamadas. Por favor, concede este permiso.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Escanear el código QR de la cuenta que quieres añadir.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">¿Limpiar historial?</string>
+  <string name="clear_history_dialog_message">Esta acción no puede deshacerse.</string>
+  <string name="clear_history_completed">El historial se ha limpiado.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Borrar esta conversación</string>
+  <string name="conversation_action_delete_this_title">¿Borrar esta conversación?</string>
+  <string name="conversation_action_delete_this_message">Esta acción no puede deshacerse.</string>
+  <string name="conversation_action_copy_peer_number">Copiar número</string>
+  <string name="conversation_action_copied_peer_number_clipboard">Se ha copiado %1$s al portapapeles</string>
+  <string name="conversation_action_select_peer_number">Escoge un número</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">¿Añadir %1$s ?</string>
+  <string name="prompt_new_password">Contraseña nueva</string>
+  <string name="prompt_new_password_repeat">Repite la nueva contraseña</string>
+  <string name="account_create_title">Crear una cuenta en Ring</string>
+  <string name="prompt_new_username">Ingresa un nuevo nombre de usuario</string>
+  <string name="help_password_choose">Elige una contraseña robusta que podrás recordar para proteger tu cuenta de Ring.</string>
+  <string name="help_password_enter">Ingresa la contraseña de tu cuenta principal de Ring</string>
+  <string name="help_pin_enter">Ingresa el PIN de otra cuenta de Ring configurada. Utiliza la opción \"Exportar cuenta en Ring\" para obtener un PIN.</string>
+  <string name="wizard_next">Siguiente</string>
+  <string name="wizard_back">Volver</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mi perfil</string>
+  <string name="open_the_gallery">Abrir la galería</string>
+  <string name="take_a_photo">Tomar una foto</string>
+  <string name="unknown">Desconocido</string>
+  <!--Share fragment-->
+  <string name="share_message">Escanea este QRCode con el escáner integrado de la aplicación Ring que desea comunicarse contigo.</string>
+  <string name="share_message_no_account">Seleccione una cuenta para compartir.</string>
+  <string name="share_your_account_information">Compartir mi información de contacto</string>
+  <string name="generic_error_migration">Error</string>
+  <string name="generic_error_migration_message">Ha ocurrido un error durante la migración</string>
+  <!--Pending contact requests-->
+  <string name="accept">Aceptar</string>
+  <string name="refuse">No aceptar</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Enviar</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-es/strings_account.xml b/ring-android/androidtv/src/main/res/values-es/strings_account.xml
new file mode 100644
index 0000000..774c149
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-es/strings_account.xml
@@ -0,0 +1,156 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Borrar</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Nombre del host</string>
+  <string name="prompt_username">Nombre de usuario</string>
+  <string name="prompt_password">Contraseña</string>
+  <string name="action_create">Crear cuenta</string>
+  <string name="action_create_short">Registrar</string>
+  <string name="error_field_required">Este campo es obligatorio</string>
+  <string name="dialog_wait_create">Agregando cuenta</string>
+  <string name="dialog_wait_create_details">Espera mientras se agrega tu nueva cuenta</string>
+  <string name="dialog_wait_update">Actualizando cuenta</string>
+  <string name="dialog_wait_update_details">Por favor espera mientras tu nueva cuenta se actualiza...</string>
+  <string name="dialog_warn_ip2ip_account_title">¿Crear nueva cuenta SIP?</string>
+  <string name="dialog_warn_ip2ip_account_message">Estás a punto de crear una cuenta SIP con un nombre de host inválido.
+Solo podrás realizar y recibir llamadas directas a la IP.
+Puedes editar tu cuenta luego</string>
+  <string name="help_ring">Una cuenta en Ring te permite comunicarte con gente de forma segura a través de una red P2P completamente distribuida.</string>
+  <string name="help_sip_title">Añadir tu cuenta SIP</string>
+  <string name="help_sip">Configurar una cuenta SIP existente</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">¿Borrar cuenta?</string>
+  <string name="account_delete_dialog_message">Esta acción no puede deshacerse.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">No hay cuentas registradas</string>
+  <string name="normal_accounts_titles">Cuentas</string>
+  <string name="normal_devices_titles">Dispositivos conocidos conectados a esta cuenta de Ring</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">General</string>
+  <string name="account_basic_category">Ajustes básicos</string>
+  <string name="account_alias_label">Nombre de la cuenta</string>
+  <string name="account_hostname_label">Nombre del host</string>
+  <string name="account_bootstrap_label">Cargador de inicio</string>
+  <string name="account_username_label">Nombre de usuario</string>
+  <string name="account_password_label">Contraseña</string>
+  <string name="account_optionnal_category">Configuración opcional</string>
+  <string name="account_useragent_label">Agente de usuario</string>
+  <string name="account_autoanswer_label">Respuesta automática</string>
+  <string name="account_upnp_label">Activar UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Medios</string>
+  <string name="account_ringtone_label">Tonos de llamada</string>
+  <string name="account_ringtone_enabled_label">Activar tonos de llamada</string>
+  <string name="account_ringtone_path_label">Directorio de tonos de llamada</string>
+  <string name="account_ringtone_custom_label">Utilizar un tono de llamada personalizado</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vídeo</string>
+  <string name="account_video_enable">Habilitar vídeo</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avanzado</string>
+  <string name="account_registration_exp_label">Expiración del registro</string>
+  <string name="account_local_interface_label">Interfaz local</string>
+  <string name="account_local_port_label">Puerto local</string>
+  <string name="account_stun_enable_label">Usar STUN</string>
+  <string name="account_stun_server_label">Servidor STUN</string>
+  <string name="account_turn_enable_label">Usar TURN</string>
+  <string name="account_turn_server_label">Servidor TURN</string>
+  <string name="account_turn_username_label">Nombre de usuario en TURN</string>
+  <string name="account_turn_password_label">Contraseña TURN</string>
+  <string name="account_published_same_as_local_label">Publicar el mismo como local</string>
+  <string name="account_published_port_label">Puerto publicado</string>
+  <string name="account_published_address_label">Dirección IP publicada</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Credenciales</string>
+  <string name="account_credentials_edit">Editar credenciales</string>
+  <string name="account_credentials_add">Agregar credenciales</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Seguridad</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Usar protocolo TLS</string>
+  <string name="account_tls_port_label">Puerto de escucha TLS</string>
+  <string name="account_tls_certificate_list_label">Autoridades de certificación</string>
+  <string name="account_tls_certificate_file_label">Archivo de certificado</string>
+  <string name="account_tls_private_key_file_label">Archivo de clave privada</string>
+  <string name="account_tls_password_label">Contraseña de clave privada</string>
+  <string name="account_tls_method_label">Método TLS</string>
+  <string name="account_tls_ciphers_label">Cifrados TLS</string>
+  <string name="account_tls_server_name_label">Nombre del servidor</string>
+  <string name="account_tls_verify_server_label">Verificar el servidor</string>
+  <string name="account_tls_verify_client_label">Verificar cliente</string>
+  <string name="account_tls_negotiation_timeout_sec">Tiempo de espera de negociación (seg)</string>
+  <string name="account_rtp_max_port">Máximo</string>
+  <string name="account_rtp_min_port">Mínimo</string>
+  <string name="account_rtp_port_range">Intervalo de puertos de audio RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Restaurar una cuenta</string>
+  <string name="account_restore_message">Introduce la contraseña para descifrar el archivo.</string>
+  <string name="account_restore_decryption_password">Contraseña de descifrado</string>
+  <string name="account_new_device_password">Ingresa la contraseña principal para desbloquear cuenta</string>
+  <string name="restore_dialog_title">Restaurando</string>
+  <string name="restore_backup_wait">Por favor, espera...</string>
+  <string name="error_password_char_count">6 caracteres mínimo</string>
+  <string name="error_passwords_not_equals">Las contraseñas no coinciden</string>
+  <string name="restore_failed_dialog_title">La restauración ha fallado</string>
+  <string name="restore_failed_dialog_msg">Ha ocurrido un error</string>
+  <string name="export_account_wait_title">Por favor, espera...</string>
+  <string name="export_account_wait_message">Publicando nueva información de la cuenta</string>
+  <string name="account_export_end_decryption_message">Error al desbloquear tu cuenta con la contraseña provista</string>
+  <string name="account_export_end_network_title">Error en la red</string>
+  <string name="account_export_end_network_message">Error al exportar la cuenta a la red. Verifica tu conectividad.</string>
+  <string name="account_export_end_error_title">Error</string>
+  <string name="account_export_end_error_message">Error al exportar la cuenta. Se ha producido un error desconocido.</string>
+  <string name="account_enter_password">Ingresa la contraseña</string>
+  <string name="account_contact_me">¡Contáctame en Ring!</string>
+  <string name="update_account">Actualizar cuenta</string>
+  <string name="ring_account">Cuenta de Ring</string>
+  <string name="account_migration_title_dialog">Migración de la cuenta</string>
+  <string name="account_update_needed">Actualización requerida</string>
+  <string name="account_creation_file_too_big">El archivo es demasiado grande</string>
+  <string name="account_cannot_read">Error al leer %1$s</string>
+  <string name="account_cannot_be_found_title">Error al encontrar la cuenta</string>
+  <string name="account_cannot_be_found_message">La cuenta no ha podido ser encontrada en la red de Ring.\nAsegúrate de que haya sido exportada en Ring desde un dispositivo existente, y que las credenciales provistas son correctas.</string>
+  <string name="account_no_network_title">Error al conectarse a la red</string>
+  <string name="account_no_network_message">Error al agregar la cuenta porque Ring no pudo conectarse a la red distribuida. Verifica la conectividad de tu dispositivo.</string>
+  <string name="account_device_added_title">El dispositivo de la cuenta ha sido agregado</string>
+  <string name="account_device_added_message">Has configurado tu cuenta de Ring en este dispositivo exitosamente</string>
+  <string name="account_device_updated_title">La cuenta del dispositivo ha sido actualizada</string>
+  <string name="account_device_updated_message">Has actualizado tu cuenta de Ring exitosamente</string>
+  <string name="account_link_button">Conectar este dispositivo a una cuenta</string>
+  <string name="account_import_title">Conectarse a una cuenta existente</string>
+  <string name="account_link_prompt_pin">Ingresa tu PIN</string>
+  <string name="account_wizard_title">Bienvenido a</string>
+  <string name="account_new_button">Crear una cuenta en Ring</string>
+  <string name="account_link_export_button">Conectar otro dispositivo a esta cuenta</string>
+  <string name="account_link_export_info">Para utilizar esta cuenta con otros dispositivos, primero debes exponer tu cuenta en Ring. Esto generará un PIN que deberás ingresar en tu nuevo dispositivo para configurar la cuenta. El PIN es válido por 10 minutos.\n\nPor favor provee tu contraseña para comenzar:</string>
+  <string name="account_start_export_button">Generar PIN</string>
+  <string name="account_end_export_button">cerrar</string>
+  <string name="account_end_export_infos">Tu PIN es:\n\n%%\n\nPara completar el proceso, necesitas abrir Ring en el nuevo dispositivo. Crea una nueva cuenta con \"Vincular este dispositivo a una cuenta\". Tu PIN es válido por 10 minutos.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Error al registrar el nombre: la contraseña de la cuenta es incorrecta.</string>
+  <string name="register_name_invalid">Error al registrar el nombre: nombre inválido.</string>
+  <string name="register_name_already_taken">Error al registrar el nombre: este nombre ya ha sido utilizado.</string>
+  <string name="register_name_network_error">Error al registrar el nombre: error de red o servidor.</string>
+  <string name="error_username_empty">Ingresa un nombre de usuario</string>
+  <string name="no_registered_name_for_account">No se ha encontrado un nombre registrado con esta cuenta</string>
+  <string name="register_name">Registrar nombre</string>
+  <string name="trying_to_register_name">Intentando registrar nombre</string>
+  <string name="registered_username">Nombre de usuario registrado</string>
+  <string name="register_username">Registrar un nombre público (experimental)</string>
+  <string name="username_already_taken">El nombre de usuario ya está en uso</string>
+  <string name="invalid_username">Nombre de usuario no válido</string>
+  <string name="account_status_connecting">Conectando</string>
+  <string name="account_status_unknown">Desconocido</string>
+  <!--Create account-->
+  <string name="account_creation_home">Bienvenido a Ring</string>
+  <string name="account_creation_profile">Crea tu perfil</string>
+  <!--Devices-->
+  <string name="enter_password">Ingresa la contraseña</string>
+  <string name="revoke_device_wait_title">Por favor, espera...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-es/strings_call.xml b/ring-android/androidtv/src/main/res/values-es/strings_call.xml
new file mode 100644
index 0000000..eb729f7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-es/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Sonando</string>
+    <string name="call_human_state_connecting">Conectando</string>
+    <string name="call_human_state_ringing">Llamando</string>
+    <string name="call_human_state_current">Hablando</string>
+    <string name="call_human_state_hungup">Terminado</string>
+    <string name="call_human_state_busy">Ocupado</string>
+    <string name="call_human_state_failure">Falló</string>
+    <string name="call_human_state_hold">Espera</string>
+    <string name="call_human_state_unhold">Reanudar</string>
+    <string name="call_human_state_over">Terminado</string>
+    <string name="call_human_state_none">Nada</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Conexión activa</string>
+    <string name="conference_human_state_active_detached">Conexión activa desconectada</string>
+    <string name="conference_human_state_active_attached_rec">Conexión activa grabar</string>
+    <string name="conference_human_state_active_detached_rec">Conexión activa desconectada grabar</string>
+    <string name="conference_human_state_hold">Espera</string>
+    <string name="conference_human_state_hold_rec">Pulsar REC</string>
+    <string name="conference_human_state_default">Nada</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-es/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-es/strings_content_description.xml
new file mode 100644
index 0000000..9645830
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-es/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Llamada rápida</string>
+  <string name="contact_picture_description">Foto del contacto</string>
+  <string name="dial_numeric_pad">Teclado numérico</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-es/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-es/strings_preferences.xml
new file mode 100644
index 0000000..da22b8f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-es/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Red</string>
+  <string name="pref_category_contacts">Contactos</string>
+  <string name="pref_category_system">Sistema</string>
+  <string name="pref_category_privacy">Privacidad</string>
+  <string name="pref_mobileData_title">Datos móviles</string>
+  <string name="pref_mobileData_summary">Permitir a Ring usar redes 3G/LTE a demás de Wi-Fi</string>
+  <string name="pref_systemContacts_title">Usar contactos del sistema</string>
+  <string name="pref_systemContacts_summary">Usar contactos del sistema para mostrar detalles del interlocutor.</string>
+  <string name="pref_systemDialer_title">Configurar el sistema para llamar usando Ring</string>
+  <string name="pref_systemDialer_summary">Usar Ring para las llamadas por defecto del sistema cuando sea posible.</string>
+  <string name="pref_startOnBoot_title">Iniciar Ring al inicio</string>
+  <string name="pref_startOnBoot_summary">Iniciar Ring en segundo plano al inicio del sistema.</string>
+  <string name="pref_clearHistory_title">Limpiar historial</string>
+  <string name="pref_clearHistory_summary">Limpiar todo el historial de conversaciones. Esta acción no se puede deshacer.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-et-rEE/strings_account.xml b/ring-android/androidtv/src/main/res/values-et-rEE/strings_account.xml
new file mode 100644
index 0000000..2f3f8bd
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-et-rEE/strings_account.xml
@@ -0,0 +1,22 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <!--Strings related to account creation-->
+  <!--Strings related to account deletion-->
+  <!--AccountManagementFragment-->
+  <!--Basic Details-->
+  <!--Audio Details-->
+  <string name="account_ringtone_label">Helinad</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <!--Advanced Details-->
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <!--Name registration-->
+  <string name="account_status_connecting">Ühendab</string>
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-et-rEE/strings_call.xml b/ring-android/androidtv/src/main/res/values-et-rEE/strings_call.xml
new file mode 100644
index 0000000..b0dd5e2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-et-rEE/strings_call.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Heliseb</string>
+    <string name="call_human_state_connecting">Ühendab</string>
+    <string name="call_human_state_ringing">Helistab</string>
+    <string name="call_human_state_busy">Kinni</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-et-rEE/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-et-rEE/strings_content_description.xml
new file mode 100644
index 0000000..98a40e3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-et-rEE/strings_content_description.xml
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_picture_description">Kontakti pilt</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fa-rIR/strings.xml b/ring-android/androidtv/src/main/res/values-fa-rIR/strings.xml
new file mode 100644
index 0000000..7d648b3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fa-rIR/strings.xml
@@ -0,0 +1,140 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">بازخورد</string>
+  <string name="report">برایمان رایانامه‌ای بفرستید</string>
+  <string name="section_license">مجوز</string>
+  <string name="sponsor_section">رینگ نرم‌افزاری آزاد است که توسعه داده و پشتیبانی می‌شود توسّط</string>
+  <string name="copyright_section">حق رونوشت</string>
+  <string name="contribute_section">مشارکت</string>
+  <string name="version_section">نگارش</string>
+  <string name="no_email_app_installed">هیچ کارهٔ رایانامه‌ای پیدا نشد. برای فرستادن یک گزارش به ما، یکی نصب کنید</string>
+  <string name="no_browser_app_installed">هیچ کارهٔ مرورگری پیدا نشد، برای مشاهدهٔ این صفحه، یکی نصب کنبد</string>
+  <string name="email_chooser_title">فرستادن نامه با…</string>
+  <string name="website_chooser_title">دیدن پایگاه وب با…</string>
+  <string name="license">این نرم‌افزار همان‌گونه که هست، بدون هرنوع ضمانت فراهم شده است،
+برای جزئیات، نگارش ۳ یا بالاتر پروانهٔ جامع همگانی گنو را ببینید</string>
+  <string name="description">رینگ یک نرم‌افزار ارتباطات عمومی است که به آزادی‌ها و حریم شخصی کاربرانش احترام می‌گذارد.</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">رینگ</string>
+  <string name="error_no_network">بدون اتصال شبکه</string>
+  <string name="error_mobile_network_available_but_disabled">لطفاً در صفحهٔ تنظمیات به شبکهٔ سلولی دسترسی دهید.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">حساب جدید</string>
+  <string name="ab_action_chat">پیام متنی</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">باز کردن کشوی ناوبری</string>
+  <string name="drawer_close">بستن کشوی ناوبری</string>
+  <!--Sections-->
+  <string name="menu_item_home">خانه</string>
+  <string name="menu_item_accounts">مدیریت حساب‌ها</string>
+  <string name="menu_item_settings">تنظیمات</string>
+  <string name="menu_item_share">هم‌رسانی اطّلاعات تماس</string>
+  <string name="menu_item_blacklist">مخاطبین مسدود شده</string>
+  <string name="menu_item_about">دربارهٔ رینگ</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">تماس با یک شماره</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">پاسخ</string>
+  <string name="hist_replay_button_stop">پایان</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="other">%d گفتگو</item>
+  </plurals>
+  <string name="home_transfer_complet">ارسال انجام شد</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">مخاطبی پیدا نشد</string>
+  <string name="starred_contacts_title">برگزیده‌ها</string>
+  <string name="searchbar_hint">نام یا شماره تلفن را وارد کنید...</string>
+  <string name="choose_number">شماره‌ای را برگزینید</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">جابه‌جایی به دیگر تماس جاری:</string>
+  <string name="transfer_no_other_call">هیچ تماس دیگری معلّق نیست</string>
+  <string name="transfer_type_number">شماره‌ای برای فرستادن وارد کنید:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">تماس دریافتی از %1$s</string>
+  <string name="notif_incoming_call">تماس دریافتی</string>
+  <string name="notif_outgoing_call_title">تماس خروجی با %1$s</string>
+  <string name="notif_outgoing_call">تماس خروجی</string>
+  <string name="notif_current_call_title">تماس کنونی با %1$s</string>
+  <string name="notif_current_call">تماس کنونی</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">شما:</string>
+  <string name="action_call_attended_transfer">جابه‌جایی توجّه شده</string>
+  <string name="action_call_conference">نشست</string>
+  <string name="action_call_hangup">قطع کردن</string>
+  <string name="ongoing_call">تماس خروجی</string>
+  <string name="hist_in_call">تماس دریافتی به مدّت  %1$s</string>
+  <string name="hist_out_call">تماس خروجی به مدّت %1$s</string>
+  <string name="start_error_title">رینگ نمی‌تواند شروع شود!</string>
+  <string name="start_error_mic_required">رینگ برای کار به دسترسی میکروفون نیازمند است.</string>
+  <string name="action_call_accept">برداشتن تماس</string>
+  <string name="action_call_decline">رد کردن</string>
+  <string name="ab_action_speakerphone">فعال کردن بلندگو</string>
+  <string name="ab_action_contact_add">افزودن به مخاطبان</string>
+  <string name="ab_action_contact_add_question">افزودن به مخاطبان؟</string>
+  <string name="ab_action_audio_call">تماس صوتی</string>
+  <string name="ab_action_video_call">تماس ویدیویی</string>
+  <string name="share_via">هم‌رسانی با</string>
+  <string name="write_a_message">پیامی بنویسید</string>
+  <string name="scan_qr">پویش رمز QR</string>
+  <string name="ab_action_flipcamera">چرخاندن دوربین</string>
+  <!--Text messages-->
+  <string name="send_message">ارسال پیام</string>
+  <string name="message_sending">در حال ارسال پیام…</string>
+  <string name="time_just_now">هم‌اکنون</string>
+  <string name="permission_read_denied">کاره اجازهٔ خواندن از حافظه‌تان را ندارد، بنابراین نمی‌تواند درست رفتار کند. لطفاً این دسترسی را اعطا کنید.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">دسترسی دوربین</string>
+  <string name="permission_dialog_camera_message">گفت‌وگوی ویدیویی برای کار کردن نیاز به دسترسی دوربین دارد. لطفاً آن را فعّال کنید.</string>
+  <string name="ringtone_error_title">خطا</string>
+  <string name="ringtone_error_format_not_supported">این قالب پشتیبانی نمی‌شود.</string>
+  <string name="ringtone_error_size_too_big">این پرونده خیلی بزرگ است. بیشینهٔ اندازه %1$iک‌ب است.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">رینگ برای فعّال کردن این ویژگی نیاز به دسترسی «خواندن مخاطبان» دارد. لطفاً اعطایش کنید.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">رینگ برای فعّال کردن این ویژگی نیاز به دسترسی «خواندن گزارش تماس» دارد. لطفاً اعطایش کنید.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">رمز QR حسابی که می‌خواهید بیفزایید را بپویید.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">پاک‌سازی تاریخچه؟</string>
+  <string name="clear_history_dialog_message">این کار قابل بازگشت نیست.</string>
+  <string name="clear_history_completed">تاریخچه پاک‌سازی شد.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">حذف این گفت‌وگو</string>
+  <string name="conversation_action_delete_this_title">حذف این گفت‌وگو؟</string>
+  <string name="conversation_action_delete_this_message">این کار قابل بازگشت نیست.</string>
+  <string name="conversation_action_copy_peer_number">رونوشت از شماره</string>
+  <string name="conversation_action_copied_peer_number_clipboard">‫%1$s در حافظه رونویسی شد</string>
+  <string name="conversation_action_select_peer_number">گزینش یک شماره</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">افزودن%1$s؟</string>
+  <string name="prompt_new_password">گذرواژهٔ نو</string>
+  <string name="prompt_new_password_repeat">گذرواژهٔ نو را تکرار کنید</string>
+  <string name="account_create_title">ساخت یک حساب رینگ</string>
+  <string name="prompt_new_username">نام کاربری نو را وارد کنید</string>
+  <string name="help_password_choose">برای محافظت از حساب رینگتان، گذرواژه‌ای قوی که به خاطر خواهید سپرد را برگزینید.</string>
+  <string name="help_password_enter">گذرواژهٔ حساب رینگ اصلیتان را وارد کنید</string>
+  <string name="help_pin_enter">پین را از دیگر حساب رینگ پیکربندی‌شده وارد کنید. برای به دست آوردن یک پین، از ویژگی «برون‌ریزی حساب روی رینگ» استفاده کنید.</string>
+  <string name="wizard_next">بعدی</string>
+  <string name="wizard_back">بازگشت</string>
+  <!--MenuHeaderView-->
+  <string name="profile">نمایهٔ من</string>
+  <string name="open_the_gallery">گشودن جُنگ</string>
+  <string name="take_a_photo">گرفتن عکس</string>
+  <string name="unknown">ناشناخته</string>
+  <!--Share fragment-->
+  <string name="share_message">این رمز QR را با پویشگر تعبیه شده در کارهٔ رینگی که می‌خواهد با شما گفت‌وگو کند، بپویید.</string>
+  <string name="share_message_no_account">لطفاً برای هم‌رسانی، حسابی را برگزینید.</string>
+  <string name="share_your_account_information">هم‌رسانی اطّلاعات تماس من</string>
+  <string name="generic_error_migration">خطا</string>
+  <string name="generic_error_migration_message">هنگام مهاجرت، خطایی رخ داد</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fa-rIR/strings_account.xml b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_account.xml
new file mode 100644
index 0000000..a1cd0d3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_account.xml
@@ -0,0 +1,198 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">حذف</string>
+  <string name="ic_advanced_menu">تنظیمات پیش‌رفته</string>
+  <string name="ic_blacklist_menu">مخاطبین مسدود شده</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">افزودن حساب کاربری رینگ</string>
+  <string name="add_sip_account_title">افزودن حساب کاربری سیپ</string>
+  <string name="ring_account_default_name">حساب کاربری رینگ %1$s</string>
+  <string name="prompt_alias">نام مستعار</string>
+  <string name="prompt_hostname">نام میزبان</string>
+  <string name="prompt_username">نام کاربری</string>
+  <string name="prompt_password">گذرواژه</string>
+  <string name="action_create">ایجاد حساب</string>
+  <string name="action_create_short">ثبت‌نام</string>
+  <string name="error_field_required">این زمینه مورد نیاز است</string>
+  <string name="dialog_wait_create">در حال افزودن حساب</string>
+  <string name="dialog_wait_create_details">لطفاً صبر کنید تا حساب جدیدتان افزوده شود…</string>
+  <string name="dialog_wait_update">در حال به‌روز رسانی حساب</string>
+  <string name="dialog_wait_update_details">لطفاً صبر کنید تا حساب جدیدتان به‌روز شود…</string>
+  <string name="dialog_warn_ip2ip_account_title">ایجاد حساب سیپ خالی؟</string>
+  <string name="dialog_warn_ip2ip_account_message">در حال ایجاد یک حساب سیپ بدون هیچ نام دامنهٔ معتبری هستید.
+تنها خواهید توانست تماس‌های ip مستقیم ساخته و بگیرید.
+می‌توانید بعدها حسابتان را ویرایش کنید</string>
+  <string name="account_type_ip2ip">حساب آی‌پی</string>
+  <string name="help_ring">حساب رینگ اجازه می‌دهد از درون یک شبکهٔ کاملاً توزیع‌شده، به صورت امن با افراد در تماس باشید.</string>
+  <string name="help_sip_title">افزودن حساب سیپتان</string>
+  <string name="help_sip">پیکربندی یک حساب سیپ موجود.</string>
+  <string name="create_sip_account">افزودن حساب کاربری سیپ</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">حذف حساب؟</string>
+  <string name="account_delete_dialog_message">این کار قابل بازگشت نیست.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">هیچ حسابی ثبت نشده</string>
+  <string name="normal_accounts_titles">حساب‌ها</string>
+  <string name="normal_devices_titles">افزاره‌های شناخته شدهٔ پیوسته به این حساب رینگ</string>
+  <string name="account_device_revoke">باطل کردن دستگاه</string>
+  <string name="account_device_revocation_success_title">با موفقیت انجام شد</string>
+  <string name="account_device_revocation_success">دستگاه در حال حاضر باطل شد!</string>
+  <string name="account_device_revocation_error_title">نمی توان دستگاه را باطل کرد!</string>
+  <string name="account_device_revocation_wrong_password">کلمه عبور اشتباه است.</string>
+  <string name="account_device_revocation_unknown_device">دستگاه ناشناس.</string>
+  <string name="account_device_revocation_error_unknown">خطای ناشناخته.</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">عمومی</string>
+  <string name="account_basic_category">تنظیمات پایه</string>
+  <string name="account_alias_label"> حساب</string>
+  <string name="account_hostname_label">نام میزبان</string>
+  <string name="account_bootstrap_label">خود راه اندازی</string>
+  <string name="account_username_label">نام کاربری</string>
+  <string name="account_password_label">گذرواژه</string>
+  <string name="account_optionnal_category">تنظیمات انتخابی</string>
+  <string name="account_useragent_label">عامل کاربر</string>
+  <string name="account_autoanswer_label">پاسخ خودکار</string>
+  <string name="account_upnp_label">فعّال‌کردن UPnP</string>
+  <string name="account_proxy_field">پیشکار</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">صدا</string>
+  <string name="account_preferences_media_tab">رسانه</string>
+  <string name="account_ringtone_label">صداهای زنگ</string>
+  <string name="account_ringtone_enabled_label">فعّال کردن صداهای زنگ</string>
+  <string name="account_ringtone_path_label">مسیر صدای زنگ</string>
+  <string name="account_ringtone_custom_label">استفاده از صدای زنگ سفارشی</string>
+  <!--Video Details-->
+  <string name="account_video_label">ویدیو</string>
+  <string name="account_video_enable">فعّال کردن ویدیو</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">پیش‌رفته</string>
+  <string name="account_dht_public_in_calls_label">دسترسی همه تماس ها / پیام ها</string>
+  <string name="account_registration_exp_label">ثبت‌نام منقضی شد</string>
+  <string name="account_local_interface_label">واسط محلّی</string>
+  <string name="account_local_port_label">درگاه محلّی</string>
+  <string name="account_stun_enable_label">استفاده از Stun</string>
+  <string name="account_stun_server_label">کارساز Stun</string>
+  <string name="account_turn_enable_label">استفاده از TURN</string>
+  <string name="account_turn_server_label">کارساز TURN</string>
+  <string name="account_turn_username_label">نام کاربری TURN</string>
+  <string name="account_turn_password_label">گذرواژهٔ TURN</string>
+  <string name="account_published_same_as_local_label">منتشر شده به صورت همسان با محلّی</string>
+  <string name="account_published_port_label">درگاه منتشر شده</string>
+  <string name="account_published_address_label">نشانی منتشر شده</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">دست‌اندر کاران</string>
+  <string name="account_credentials_edit">ویرایش دست‌اندر کاران</string>
+  <string name="account_credentials_add">افزودن دست‌اندر کاران</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">امنیت</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">استفاده از جابه‌جایی TLS</string>
+  <string name="account_tls_port_label">درگاه شنوندهٔ TLS</string>
+  <string name="account_tls_certificate_list_label">صادرگنندگان گواهی‌نامه</string>
+  <string name="account_tls_certificate_file_label">پروندهٔ گواهی</string>
+  <string name="account_tls_private_key_file_label">پروندهٔ کلید خصوصی</string>
+  <string name="account_tls_password_label">گذرواژهٔ کلید خصوصی</string>
+  <string name="account_tls_method_label">روش TLS</string>
+  <string name="account_tls_ciphers_label">رمزهای TLS</string>
+  <string name="account_tls_server_name_label">نام کارساز</string>
+  <string name="account_tls_verify_server_label">تأیید اعتبار کارساز</string>
+  <string name="account_tls_verify_client_label">تأیید اعتبار کارخواه</string>
+  <string name="account_tls_negotiation_timeout_sec">زمان توافق (ثانیه)</string>
+  <string name="account_rtp_max_port">بیشینه</string>
+  <string name="account_rtp_min_port">کمینه</string>
+  <string name="account_rtp_port_range">دامنهٔ درگاه RTP صدا</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">بازگردانی یک حساب</string>
+  <string name="account_restore_message">برای رمزگشایی پرونده، گذرواژه را وارد کنید.</string>
+  <string name="account_restore_decryption_password">گذرواژهٔ رمزگشایی</string>
+  <string name="account_new_device_password">برای قفل‌گشایی حساب، گذرواژهٔ اصلی را وارد کنید</string>
+  <string name="restore_dialog_title">در حال بازگردانی</string>
+  <string name="restore_backup_wait">لطفاً صبر کنید…</string>
+  <string name="error_password_char_count">کمینه ۶ نویسه</string>
+  <string name="error_passwords_not_equals">گذرواژه‌ها همتا نیستند</string>
+  <string name="restore_failed_dialog_title">بارگردانی شکست خورد</string>
+  <string name="restore_failed_dialog_msg">خطایی رخ داد</string>
+  <string name="export_account_wait_title">لطفاً صبر کنید…</string>
+  <string name="export_account_wait_message">در حال انتشار اطّلاعات حساب نو</string>
+  <string name="account_export_end_decryption_message">نمی‌توان قفل حسابتان را با گذواژهٔ فراهم شده گشود.</string>
+  <string name="account_export_end_network_title">خطای شبکه</string>
+  <string name="account_export_end_network_message">نمی‌توان حساب را روی شبکه برون‌ریخت. اتّصالتان را بررسی کنید.</string>
+  <string name="account_export_end_error_title">خطا</string>
+  <string name="account_export_end_error_message">نمی‌توان حساب را برون‌ریخت. خطایی ناشناخته رخ داد.</string>
+  <string name="account_enter_password">گذرواژه را وارد کنید</string>
+  <string name="account_share_body">با استفاده از «%1$s» روی بن‌سازهٔ ارتباطی تویع‌شدهٔ رینگ با من در تماس باشید: http://ring.cx</string>
+  <string name="account_share_body_with_username">با استفاده از «%1$s» یا نام کاربری عمومی «%2$s» روی بن‌سازهٔ ارتباطی تویع‌شدهٔ رینگ با من در تماس باشید: http://ring.cx</string>
+  <string name="account_contact_me">با من روی رینگ در تماس باشید!</string>
+  <string name="update_account">به‌روز رسانی حساب</string>
+  <string name="account_migration">حساب کاربری شما می‌تواند به‌روزر شود.\nلطفا گذرواژه خود را وارد کنید.</string>
+  <string name="ring_account">حساب رینگ</string>
+  <string name="ring_account_identity">هویت</string>
+  <string name="account_migration_title_dialog">مهاجرت حساب</string>
+  <string name="account_migration_message_dialog">حساب‌هایتان باید به‌روز شوند. می‌خواهید برای انجام این عمل، به صفحهٔ مدیریت حساب بروید؟</string>
+  <string name="account_update_needed">نیاز به به‌روز رسانی است</string>
+  <string name="account_creation_file_too_big">پرونده خیلی بزرگ است</string>
+  <string name="account_cannot_read">نمی‌توان %1$s را خواند</string>
+  <string name="account_cannot_be_found_title">نمی‌تواند حساب را یافت</string>
+  <string name="account_cannot_be_found_message">حساب نتوانست روی شبکهٔ رینگ پیدا شود.\nمطمئن شوید از یک افزارهٔ موجود، روی رینگ برون‌ریزی شده است و اعتبارنامه‌های فراهم شده درست هستند.</string>
+  <string name="account_sip_cannot_be_registered_message">می‌توانید فرایند ایجاد حساب را ادامه داده یا در این‌جا اطّلاعاتتان را ویرایش کنید. ویرایش هم‌چنان بعداٍ در تنظیمات حساب ممکن است.</string>
+  <string name="account_no_network_title">نمی‌توان به شبکه وصل شد</string>
+  <string name="account_no_network_message">نمی‌توان حساب را افزود، زیرا رینگ نتوانست به شبکهٔ توزیع شده وصل شود. اتّصال شبکه‌تان را بررسی کنید.</string>
+  <string name="account_device_added_title">افزاره به حساب افزوده شد</string>
+  <string name="account_device_added_message">حساب رینگتان را موفقّیت روی این افزاره برپا کردید.</string>
+  <string name="account_device_updated_title">حساب افزاره به‌روز شد</string>
+  <string name="account_device_updated_message">با موفّقیت حساب رینگتان را به‌روز کردید.</string>
+  <string name="account_cannot_be_updated_message">دستگاه نمی تواند به روز رسانی شود. لطفا کلمه عبور خود را چک نمایید.</string>
+  <string name="account_sip_success_title">حساب سیپ ثبت شد</string>
+  <string name="account_sip_success_message">حساب سیپتان را با موفّقیت ثبت کردید</string>
+  <string name="account_sip_register_anyway">در هر صورت ثبت نام کن</string>
+  <string name="account_link_button">پیوند این افزاره به یک حساب</string>
+  <string name="account_import_title">پیوند به یک حساب موجود</string>
+  <string name="account_link_prompt_pin">پین را وارد کنید</string>
+  <string name="account_wizard_title">خوش آمدید به</string>
+  <string name="account_new_button">ساخت یک حساب رینگ</string>
+  <string name="account_link_export_button">پیوند افزاره‌ای دیگر به این حساب</string>
+  <string name="account_link_export_info">برای استفاده از این حساب روی افزاره‌های دیگر، باید نخست آن را روی رینگ آشکار کنید. این کار یک رمز پین تولید خواهد کرد که باید برای برپایی حساب، روی افزارهٔ نو وارد کنید. پین تا ۱۰ دقیقه معتبر است. \n\nلطفاً برای شروع، گذرواژه‌تان را وارد کنید.</string>
+  <string name="account_start_export_button">تولید پین</string>
+  <string name="account_end_export_button">بستن</string>
+  <string name="account_end_export_infos">پین شما:\n\n%%\n\nبرای کامل کردن فرایند، باید رینگ را روی افزارهٔ نو گشوده و حساب جدیدی را با انتخاب «پیوند این افزاره به یک حساب» ایجاد کنید. پینتان برای ۱۰ دقیقه معتبر است.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">نمی‌تواند نام را ثبت کرد: گذرواژهٔ حساب اشتباه</string>
+  <string name="register_name_invalid">نمی‌تواند نام را ثبت کرد: نام نامعتبر</string>
+  <string name="register_name_already_taken">نمی‌تواند نام را ثبت کرد: نام فبلاً برداشته شده</string>
+  <string name="register_name_network_error">نمی‌تواند نام را ثبت کرد: خطای شبکه یا کارساز</string>
+  <string name="error_username_empty">یک نام کاربری وارد کنید</string>
+  <string name="no_registered_name_for_account">هیچ نام ثبت‌شده‌ای برای این حساب پیدا نشد</string>
+  <string name="register_name">ثبت نام</string>
+  <string name="trying_to_register_name">در حال تلاش برای ثبت نام</string>
+  <string name="registered_username">نام کاربری ثبت شد</string>
+  <string name="register_username">ثبت نام کاربری عمومی (آزمایشی)</string>
+  <string name="username_already_taken">نام کاربری قبلاً برداشته شده</string>
+  <string name="invalid_username">نام کاربری نامعتبر</string>
+  <string name="looking_for_username_availability">در حال جستجو برای در دسترس بودن نام کاربری ...</string>
+  <string name="account_status_connecting">در حال اتّصال</string>
+  <string name="account_status_connection_error">خطای ارتباط</string>
+  <string name="account_status_online">برخط</string>
+  <string name="account_status_unknown">ناشناخته</string>
+  <string name="account_status_offline">‌خط</string>
+  <!--Create account-->
+  <string name="account_creation_home">به رینگ خوش آمدید</string>
+  <string name="account_creation_profile">نمایه خود را بسازید</string>
+  <string name="account_creation_ring">حساب کاربری رینگ خود را بسازید</string>
+  <string name="account_link_title">پیوند این افزاره</string>
+  <string name="account_sip_cannot_be_registered">نمی‌توان حساب را ثبت کرد</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">رمز عبور خود را مجددا وارد نمایید</string>
+  <string name="enter_password">گذرواژه را وارد کنید</string>
+  <string name="revoke_device_title">باطل کردن دستگاه</string>
+  <string name="revoke_device_message">شماره مطمعن هستید که میخواهید %1$s را باطل کنید ؟</string>
+  <string name="revoke_device_wait_title">لطفاً صبر کنید…</string>
+  <string name="revoke_device_wait_message">در حال باطل کردن دستگاه</string>
+  <string name="rename_device_title">تغییر نام این دستگاه</string>
+  <string name="rename_device_message">یک نام جدید را انتخاب کنید برای شناسایی این دستگاه در حساب کاربری رینگ</string>
+  <string name="rename_device_button">تغییر نام دستگاه</string>
+  <string name="account_rename_device_hint">انتخاب نام جدید برای دستگاه </string>
+  <string name="account_device_name_empty">نام دستگاه نمیتواند خالی باشد</string>
+  <string name="account_device_this_indicator">این دستگاه</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fa-rIR/strings_call.xml b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_call.xml
new file mode 100644
index 0000000..1606879
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_call.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">در حال زنگ خوردن</string>
+    <string name="call_human_state_connecting">در حال اتّصال</string>
+    <string name="call_human_state_ringing">در حال تماس</string>
+    <string name="call_human_state_current">در حال صحبت</string>
+    <string name="call_human_state_busy">مشغول</string>
+    <string name="call_human_state_failure">شکست خورد</string>
+    <string name="call_human_state_hold">نگه داشتن</string>
+    <string name="call_human_state_unhold">در حال انتظار</string>
+    <string name="call_human_state_none">هیچ‌کدام</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">اتصال برقرار شد</string>
+    <string name="conference_human_state_active_detached">اتصال قطع شد</string>
+    <string name="conference_human_state_hold">نگه داشتن</string>
+    <string name="conference_human_state_default">هیچ‌کدام</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-fa-rIR/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_content_description.xml
new file mode 100644
index 0000000..3c3bade
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">تماس سریع</string>
+  <string name="contact_picture_description">نگارهٔ سریع</string>
+  <string name="dial_numeric_pad">صفحهٔ تماس عددی</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fa-rIR/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_preferences.xml
new file mode 100644
index 0000000..8e5cb6f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fa-rIR/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">شبکه</string>
+  <string name="pref_category_contacts">مخاطبین</string>
+  <string name="pref_category_system">سامانه</string>
+  <string name="pref_category_privacy">محرمانگی</string>
+  <string name="pref_mobileData_title">دادهٔ همراه</string>
+  <string name="pref_mobileData_summary">اجاز به رینگ برای کار کردن روی شبکه‌های نسل سوم و LTE، علاوه بر وای‌فای</string>
+  <string name="pref_systemContacts_title">استفاده از مخاطبین سامانه</string>
+  <string name="pref_systemContacts_summary">استفاده از مخاطبین سامانه برای نمایش جزییات تماس گیرنده.</string>
+  <string name="pref_systemDialer_title">انجام تماس‌های سامانه با استفاده از رینگ</string>
+  <string name="pref_systemDialer_summary">استفاده از رینگ برای انجام تماس‌های سامانه در صورت امکان.</string>
+  <string name="pref_startOnBoot_title">به کار انداختن رینگ هنگام شروع به کار</string>
+  <string name="pref_startOnBoot_summary">اجرای رینگ در پس‌زمینه هنگام آغاز به کار سامانه.</string>
+  <string name="pref_clearHistory_title">پاک‌سازی تاریخچه</string>
+  <string name="pref_clearHistory_summary">پاک‌سازی تمام تاریخچهٔ گفت‌وگوها. این کار قابل بازگشت نیست.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fi/strings.xml b/ring-android/androidtv/src/main/res/values-fi/strings.xml
new file mode 100644
index 0000000..ab791a2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fi/strings.xml
@@ -0,0 +1,119 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring on vapaa ohjelma jonka on kehittänyt ja jota tukee</string>
+  <string name="copyright_section">Tekijänoikeus</string>
+  <string name="contribute_section">Tuo panoksesi</string>
+  <string name="version_section">Versio</string>
+  <string name="no_email_app_installed">Sähköpostiohjelmaa ei löydetty, asenna sellainen lähettääksesi meille raportin</string>
+  <string name="email_chooser_title">Lähetä sähköpostia käyttäen...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Ei verkkoyhteyttä</string>
+  <string name="error_mobile_network_available_but_disabled">Anna lupa muuttaa verkkoasetuksia asetusruudussa</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Uusi tunnus</string>
+  <string name="ab_action_chat">Tekstiviestittely</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Avaa sivuvalikko</string>
+  <string name="drawer_close">Sulje sivuvalikko</string>
+  <!--Sections-->
+  <string name="menu_item_home">Koti</string>
+  <string name="menu_item_accounts">Hallitse tunnuksia</string>
+  <string name="menu_item_settings">Asetukset</string>
+  <string name="menu_item_about">Tietoa Ringistä</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Valitse numero</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Toista uudelleen</string>
+  <string name="hist_replay_button_stop">Lopeta</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d keskustelu</item>
+    <item quantity="other">%d Keskustelut</item>
+  </plurals>
+  <string name="home_transfer_complet">Lähetys valmis</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Yhteystietoa ei löytynyt</string>
+  <string name="starred_contacts_title">Suosikit</string>
+  <string name="searchbar_hint">Syötä nimi tai puhelinnumero...</string>
+  <string name="choose_number">Valitse numero</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Vaihda puhelua:</string>
+  <string name="transfer_no_other_call">Ei muita odottavia puheluita</string>
+  <string name="transfer_type_number">Kirjoita numero lähettääksesi: </string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Saapuva puhelu %1$s</string>
+  <string name="notif_incoming_call">Saapuva puhelu</string>
+  <string name="notif_outgoing_call_title">Lähtevä puhelu %1$s</string>
+  <string name="notif_outgoing_call">Lähtevä puhelu</string>
+  <string name="notif_current_call_title">Puhelu %1$s</string>
+  <string name="notif_current_call">Puhelu</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Sinä:</string>
+  <string name="action_call_attended_transfer">Yritetty siirto</string>
+  <string name="action_call_conference">Kokous</string>
+  <string name="action_call_hangup">Katkaise puhelu</string>
+  <string name="ongoing_call">Tämänhetkinen puhelu</string>
+  <string name="hist_in_call">Saapuva puhelu %1$s</string>
+  <string name="hist_out_call">Lähtevä puhelu %1$s</string>
+  <string name="start_error_title">Ringiä ei </string>
+  <string name="start_error_mic_required">Ring tarvitsee toimiakseen mikrofonin käyttöoikeuden.</string>
+  <string name="action_call_accept">Vastaanota puhelu</string>
+  <string name="action_call_decline">Kieltäydy</string>
+  <string name="ab_action_speakerphone">Kaiutin päälle</string>
+  <string name="ab_action_contact_add">Lisää yhteystietoihin</string>
+  <string name="ab_action_contact_add_question">Lisätäänkö yhteystietoihin?</string>
+  <string name="ab_action_audio_call">Äänipuhelu</string>
+  <string name="ab_action_video_call">Videopuhelu</string>
+  <string name="share_via">Jaa</string>
+  <string name="write_a_message">Kirjoita viesti</string>
+  <string name="scan_qr">Skannaa QR-koodi</string>
+  <string name="ab_action_flipcamera">Käännä kamera</string>
+  <!--Text messages-->
+  <string name="send_message">Lähetä viesti</string>
+  <string name="message_sending">Viestiä lähetetään...</string>
+  <string name="time_just_now">Juuri nyt</string>
+  <string name="permission_read_denied">Ohjelmalla ei ole oikeuksia lukea massamuistia. </string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kamera oikeudet</string>
+  <string name="permission_dialog_camera_message">Videopuhelut vaativat toimiakseen kameran käyttöoikeudet.</string>
+  <string name="ringtone_error_title">Virhe</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring tarvitsee yhteystietojen lukuoikeudet tätä toimintoa varten.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring tarvitsee kirjoitusoikeudet soittolokiin tätä toimintoa varten.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Skannaa lisättävän tunnuksen QR-koodi.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Tyhjennä historia?</string>
+  <string name="clear_history_dialog_message">Tätä toimintoa ei voi perua.</string>
+  <string name="clear_history_completed">Historia on tyhjennetty.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Poista tämä keskustelu</string>
+  <string name="conversation_action_delete_this_title">Poistetaanko tämä keskustelu?</string>
+  <string name="conversation_action_delete_this_message">Tätä toimintoa ei voi perua.</string>
+  <string name="conversation_action_copy_peer_number">Kopioi numero</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s kopioitu leikepöydälle</string>
+  <string name="conversation_action_select_peer_number">Valitse numero</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Lisätäänkö %1$s?</string>
+  <string name="prompt_new_password">Uusi salasana</string>
+  <string name="account_create_title">Luo Ring tunnus</string>
+  <string name="wizard_next">Seuraava</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">Tuntematon</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">Virhe</string>
+  <!--Pending contact requests-->
+  <string name="accept">Hyväksy</string>
+  <string name="refuse">Kieltäydy</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Lähetä</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fi/strings_account.xml b/ring-android/androidtv/src/main/res/values-fi/strings_account.xml
new file mode 100644
index 0000000..609ffbb
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fi/strings_account.xml
@@ -0,0 +1,89 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Poista</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Lempinimi</string>
+  <string name="prompt_hostname">Yhteysosoite</string>
+  <string name="prompt_username">Käyttäjänimi</string>
+  <string name="prompt_password">Salasana</string>
+  <string name="action_create_short">Rekistöröi</string>
+  <string name="error_field_required">Tämä kenttä on vaadittu</string>
+  <string name="dialog_wait_create">Lisätään tunnusta</string>
+  <string name="dialog_wait_create_details">Odota kunnes tunnuksesi on lisätty...</string>
+  <string name="dialog_warn_ip2ip_account_title">Luo tyhjä SIP tunnus?</string>
+  <string name="dialog_warn_ip2ip_account_message">Olet luomassa SIP tunnusta epäkelvolla yhteysosoitteella, pystyt tekemään ja vastaanottamaan vain IP-puheluita. Voit muokata tunnustasi myöhemmin.</string>
+  <string name="help_ring">Ring tunnuksella tavoitat ihmiset turvalliseseti hajautetun verkon kautta.</string>
+  <string name="help_sip_title">Lisää SIP tunnuksesi</string>
+  <string name="help_sip">Määritä olemassa oleva SIP tunnus.</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Poistetaanko tunnus?</string>
+  <string name="account_delete_dialog_message">Tätä toimintoa ei voi perua.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Ei rekistöröityjä tunnuksia</string>
+  <string name="normal_accounts_titles">Tunnukset</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Yleiset</string>
+  <string name="account_basic_category">Yleiset asetukset</string>
+  <string name="account_alias_label">Tunnuksen nimi</string>
+  <string name="account_hostname_label">Yhteysosoite</string>
+  <string name="account_username_label">Käyttäjänimi</string>
+  <string name="account_password_label">Salasana</string>
+  <string name="account_optionnal_category">Valinnaiset asetukset</string>
+  <string name="account_autoanswer_label">Automaattinen vastaus</string>
+  <string name="account_upnp_label">UPnP päälle</string>
+  <string name="account_proxy_field">Välityspalvelin</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Ääni</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Soittoäänet</string>
+  <string name="account_ringtone_enabled_label">Aktivoi soittoäänet</string>
+  <string name="account_ringtone_path_label">Soittoäänen polku</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Video päälle</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Edistyneet asetukset</string>
+  <string name="account_registration_exp_label">Rekistöröinti vanhentuu</string>
+  <string name="account_local_interface_label">Paikallinen liitäntä</string>
+  <string name="account_local_port_label">Paikallinen portti</string>
+  <string name="account_turn_password_label">TURN salasana</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Käyttöoikeudet</string>
+  <string name="account_credentials_edit">Muokkaa käyttöoikeuksia</string>
+  <string name="account_credentials_add">Lisää käyttöoikeudet</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Turvallisuus</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Käytä TLS:ää</string>
+  <string name="account_tls_port_label">Kuunneltava TLS portti</string>
+  <string name="account_tls_certificate_list_label">Varmenteiden myöntäjät</string>
+  <string name="account_tls_certificate_file_label">Varmennetiedosto</string>
+  <string name="account_tls_private_key_file_label">Salausavain-tiedosto</string>
+  <string name="account_tls_password_label">Salausavaimen salassana</string>
+  <string name="account_tls_method_label">TLS menetelmä</string>
+  <string name="account_tls_ciphers_label">TLS koodaus</string>
+  <string name="account_tls_server_name_label">Palvelinnimi</string>
+  <string name="account_tls_negotiation_timeout_sec">Neuvottelun aikakatkaisu (s)</string>
+  <string name="account_rtp_max_port">Maksimi</string>
+  <string name="account_rtp_min_port">Minimi</string>
+  <string name="account_rtp_port_range">RTP porttiväli</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Syötä salasana purkaaksesi tiedoton salauksen.</string>
+  <string name="account_restore_decryption_password">Salauksen purku salasana</string>
+  <string name="restore_backup_wait">Odota hetki...</string>
+  <string name="error_password_char_count">Vähintään 6 merkkiä</string>
+  <string name="error_passwords_not_equals">Salasanat eivät täsmää</string>
+  <string name="restore_failed_dialog_msg">Virhe tapahtui</string>
+  <string name="export_account_wait_title">Odota hetki...</string>
+  <string name="account_export_end_error_title">Virhe</string>
+  <string name="account_new_button">Luo Ring tunnus</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">Yhdistää</string>
+  <string name="account_status_unknown">Tuntematon</string>
+  <!--Create account-->
+  <string name="account_creation_home">Tervetuloa Ringiin</string>
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Odota hetki...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fi/strings_call.xml b/ring-android/androidtv/src/main/res/values-fi/strings_call.xml
new file mode 100644
index 0000000..68289d3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fi/strings_call.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Soi</string>
+    <string name="call_human_state_connecting">Yhdistää</string>
+    <string name="call_human_state_ringing">Soittaa</string>
+    <string name="call_human_state_current">Puhuu</string>
+    <string name="call_human_state_hungup">Katkaistu</string>
+    <string name="call_human_state_busy">Kiireinen</string>
+    <string name="call_human_state_failure">Epäonnistui</string>
+    <string name="call_human_state_hold">Laita pitoon</string>
+    <string name="call_human_state_unhold">Poista pidosta</string>
+    <string name="call_human_state_over">Loppu</string>
+    <string name="call_human_state_none">Ei mitään</string>
+    <string name="conference_human_state_hold">Pidossa</string>
+    <string name="conference_human_state_default">Ei mitään</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-fi/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-fi/strings_content_description.xml
new file mode 100644
index 0000000..2ec12ee
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fi/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Pikapuhelu</string>
+  <string name="contact_picture_description">Yhteystiedon kuva</string>
+  <string name="dial_numeric_pad">Numeeriset valintanäppäimet</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fi/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-fi/strings_preferences.xml
new file mode 100644
index 0000000..72c215d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fi/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Verkko</string>
+  <string name="pref_category_contacts">Yhteystiedot</string>
+  <string name="pref_category_system">Järjestelmä</string>
+  <string name="pref_category_privacy">Yksityisyys</string>
+  <string name="pref_mobileData_title">Mobiilidata</string>
+  <string name="pref_mobileData_summary">Salli Ringin käyttää mobiiliverkkoa</string>
+  <string name="pref_systemContacts_title">Käytä järjestelmän yhteystietoja</string>
+  <string name="pref_systemContacts_summary">Käytä järjestelmän yhteystietoja soittajan tietojen esittämisessä</string>
+  <string name="pref_systemDialer_title">Käytä Ring-puheluita tavallisten puheluiden sijaan</string>
+  <string name="pref_systemDialer_summary">Käytä Ring internet puheluita tavallisten puheluiden sijaan kun mahdollista.</string>
+  <string name="pref_startOnBoot_title">Käynnistä Ring laitteen käynnistyessä</string>
+  <string name="pref_startOnBoot_summary">Aja Ringiä taustalla järjestelmän käynnistyttyä</string>
+  <string name="pref_clearHistory_title">Tyhjennä historia</string>
+  <string name="pref_clearHistory_summary">Tyhjennä kaikki keskusteluhistoria. Tätä toimintoa ei voi perua.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr-rCA/strings.xml b/ring-android/androidtv/src/main/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..1c9e5af
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rCA/strings.xml
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Commentaires</string>
+  <string name="report">Contactez-nous par courriel</string>
+  <string name="section_license">Licence</string>
+  <string name="sponsor_section">Ring est un logiciel développé et suporté par</string>
+  <string name="copyright_section">Droits d\'auteurs</string>
+  <string name="contribute_section">Contribuer</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">Aucune adresse courriel n\'a étée trouvée, ajoutez en une pour nous envoyer un rapport.</string>
+  <string name="no_browser_app_installed">Aucun navigateur trouvé, en installer un afin de voir cette page.</string>
+  <string name="email_chooser_title">Envoyer un courriel en utilisant</string>
+  <string name="website_chooser_title">Visualiser le site web en utilisant...</string>
+  <string name="license">Ce logiciel est fourni \"tel quel\", sans garantie d\'aucune sorte. Pour les détails, consulter
+&lt;u&gt;GNU General Public License version 3 ou plus&lt;/u&gt;</string>
+  <string name="credits">Crédits</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Aucune connectivité réseau</string>
+  <string name="error_mobile_network_available_but_disabled">Veuillez permettre l\'accès au réseau cellulaire dans l\'écran des réglages.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nouveau compte</string>
+  <string name="ab_action_chat">Messagerie texte</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Ouvrir le NavigationDrawer</string>
+  <string name="drawer_close">Fermer le NavigationDrawer</string>
+  <!--Sections-->
+  <string name="menu_item_home">Accueil</string>
+  <string name="menu_item_accounts">Gérer les comptes</string>
+  <string name="menu_item_settings">Réglages</string>
+  <string name="menu_item_share">Partager mes informations de contact</string>
+  <string name="menu_item_about">A propos de Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Composer un numéro</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Rejouer</string>
+  <string name="hist_replay_button_stop">Arrêter</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">Conversations %d</item>
+    <item quantity="other">Conversations %d</item>
+  </plurals>
+  <string name="home_transfering">Transfert en cours de %1$s à %2$s</string>
+  <string name="home_transfer_complet">Transfert complété</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Aucun contact trouvé</string>
+  <string name="starred_contacts_title">Favoris</string>
+  <string name="searchbar_hint">Entrer le nom ou le numéro de téléphone</string>
+  <string name="choose_number">Choisissez un numéro</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transférer à un autre appel en cours</string>
+  <string name="transfer_no_other_call">Aucun appel en attente</string>
+  <string name="transfer_type_number">Entrer le numéro pour transférer à:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Appel entrant de %1$s</string>
+  <string name="notif_incoming_call">Appel entrant</string>
+  <string name="notif_outgoing_call_title">Appel sortant à %1$s</string>
+  <string name="notif_outgoing_call">Appel sortant</string>
+  <string name="notif_current_call_title">Appel en cours avec %1$s</string>
+  <string name="notif_current_call">Appel en cours</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Toi</string>
+  <string name="action_call_attended_transfer">Transfert en cours</string>
+  <string name="action_call_conference">Conférence</string>
+  <string name="action_call_hangup">Raccrocher</string>
+  <string name="ongoing_call">Appel en cours</string>
+  <string name="hist_in_call">Appel entrant de %1$s</string>
+  <string name="hist_out_call">Appel sortant de %1$s</string>
+  <string name="start_error_title">Impossible de démarrer Ring!</string>
+  <string name="start_error_mic_required">Ring requiert l\'accès au microphone pour fonctionner</string>
+  <string name="action_call_accept">Répondre à un appel</string>
+  <string name="action_call_decline">Refuser</string>
+  <string name="ab_action_speakerphone">Activer le haut-parleur</string>
+  <string name="ab_action_contact_add">Ajouter aux contacts</string>
+  <string name="ab_action_contact_add_question">Ajouter aux contacts?</string>
+  <string name="ab_action_audio_call">Appel audio</string>
+  <string name="ab_action_video_call">Appel vidéo</string>
+  <string name="ab_action_change_screen_orientation">Modifier l\'orientation de l\'écran</string>
+  <string name="share_via">Partager par</string>
+  <string name="write_a_message">Écrire un message</string>
+  <string name="scan_qr">Numériser le code QR</string>
+  <string name="ab_action_flipcamera">Inverser la caméra</string>
+  <!--Text messages-->
+  <string name="send_message">Envoyer le message</string>
+  <string name="message_sending">Transmission du message</string>
+  <string name="time_just_now">Maintenant</string>
+  <string name="permission_read_denied">L\'application n\'a pas les droits de lecture de votre espace de stockage. Il ne peut donc pas fonctionner efficacement. S.v.p. envisager l\'octroi des droits de lecture.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Droits d\'accès à la caméra</string>
+  <string name="permission_dialog_camera_message">Les conversations vidéos requièrent les droits d\'accès à la caméra pour fonctionner. S.v.p. envisager d\'octroyer ces droits.</string>
+  <string name="ringtone_error_title">Erreur</string>
+  <string name="ringtone_error_format_not_supported">Ce format n\'est pas supporté.</string>
+  <string name="ringtone_error_size_too_big">Ce fichier est trop volumineux. Le volume maximal accepté est de %1$ikB</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring requiert les droits de lecture des contacts pour activer cette fonction. S.v.p. les accorder.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring requiert les droits d\'écriture du registre d\'appel pour activer cette fonction. S.v.p. les accorder.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Numériser le code QR du compte que vous désirez ajouter.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Effacer l\'historique?</string>
+  <string name="clear_history_dialog_message">Cette action ne peut pas être annulée.</string>
+  <string name="clear_history_completed">L\'historique a été effacé.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Supprimer cette conversation</string>
+  <string name="conversation_action_delete_this_title">Supprimer cette conversation?</string>
+  <string name="conversation_action_delete_this_message">Cette action ne peut être annulée.</string>
+  <string name="conversation_action_copy_peer_number">Copier le numéro</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s copié sur le tableau de bord</string>
+  <string name="conversation_action_select_peer_number">Sélectionner un numéro de téléphone</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Ajouter %1$s ?</string>
+  <string name="prompt_new_password">Nouveau mot de passe</string>
+  <string name="prompt_new_password_repeat">Retaper le nouveau mot de passe</string>
+  <string name="account_create_title">Créer un compte Ring</string>
+  <string name="prompt_new_username">Entrer un nouveau nom d\'utilisateur</string>
+  <string name="help_password_choose">Choisir un mot de passe fort dont vous vous souviendrez pour protéger votre compte Ring.</string>
+  <string name="help_password_enter">Entrer votre mot de passe Ring principal</string>
+  <string name="help_pin_enter">Entrer le NIP d\'un autre compte Ring déjà configuré. Utiliser la fonction \"exporter le compte dans Ring\" pour obtenir un PIN.</string>
+  <string name="wizard_next">Suivant</string>
+  <string name="wizard_back">Précédent</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mon profil</string>
+  <string name="profile_message_warning">Votre profil est partagé avec vos contacts uniquement</string>
+  <string name="open_the_gallery">Ouvrir la galerie</string>
+  <string name="take_a_photo">Prendre un photo.</string>
+  <string name="profile_name_hint">Entrer votre nom (optionnel)</string>
+  <string name="unknown">Inconnu</string>
+  <!--Share fragment-->
+  <string name="share_message">Numériser ce code QR à partir du scan intégré de l\'application Ring qui veut communiquer avec vous.</string>
+  <string name="share_message_no_account">S\'il vous plaît sélectionner un compte à partager.</string>
+  <string name="share_your_account_information">Partager mes informations de contact</string>
+  <string name="generic_error_migration">Erreur</string>
+  <string name="generic_error_migration_message">Une erreur s\'est produite durant la migration.</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr-rCA/strings_account.xml b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_account.xml
new file mode 100644
index 0000000..d530af3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_account.xml
@@ -0,0 +1,172 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Supprimer</string>
+  <string name="ic_advanced_menu">Réglages avancés</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Ajouter une compte Ring</string>
+  <string name="add_sip_account_title">Ajouter un compte SIP</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Nom de domaine</string>
+  <string name="prompt_username">Nom d\'utilisateur</string>
+  <string name="prompt_password">Mot de passe</string>
+  <string name="action_create">Créer un compte</string>
+  <string name="action_create_short">Inscription</string>
+  <string name="error_field_required">Ce champ est requis</string>
+  <string name="dialog_wait_create">Ajouter un compte</string>
+  <string name="dialog_wait_create_details">S\'il vous plaît, patienter pendant la création de votre nouveau compte</string>
+  <string name="dialog_wait_update">Mise à jour du compte</string>
+  <string name="dialog_wait_update_details">S\'il vous plaît, patienter pendant la mise à jour de votre nouveau compte.</string>
+  <string name="dialog_warn_ip2ip_account_title">Créer un compte SIP vide?</string>
+  <string name="dialog_warn_ip2ip_account_message">Vous êtes sur le point de créer un compte SIP sans un nom de domaine valide.
+Vous ne pourrez qu\'émettre et recevoir des appels ip directs.
+Vous pouvez modifier votre compte plus tard.</string>
+  <string name="account_type_ip2ip">Compte IP</string>
+  <string name="help_ring">Un compte Ring vous permet de contacter des personnes de façon sécuritaire en pair à pair à travers un réseau pleinement distribué.</string>
+  <string name="help_sip_title">Ajouter un compte SIP</string>
+  <string name="help_sip">Configurer un compte SIP existant</string>
+  <string name="create_sip_account">Ajouter un compte SIP</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Supprimer le compte?</string>
+  <string name="account_delete_dialog_message">Cette action ne peut être annulée</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Aucun compte enregistré</string>
+  <string name="normal_accounts_titles">Comptes</string>
+  <string name="normal_devices_titles">Appareils connus associés à ce compte Ring</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Général</string>
+  <string name="account_basic_category">Réglages de base</string>
+  <string name="account_alias_label">Nom de compte</string>
+  <string name="account_hostname_label">Nom de domaine</string>
+  <string name="account_bootstrap_label">Amorcer</string>
+  <string name="account_username_label">Nom d\'utilisateur</string>
+  <string name="account_password_label">Mot de passe</string>
+  <string name="account_optionnal_category">Réglages optionnels</string>
+  <string name="account_useragent_label">Agent utilisateur</string>
+  <string name="account_autoanswer_label">Réponse automatique</string>
+  <string name="account_upnp_label">Activer UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Média</string>
+  <string name="account_ringtone_label">Sonneries</string>
+  <string name="account_ringtone_enabled_label">Activer les sonneries</string>
+  <string name="account_ringtone_path_label">Chemin d\'accès des sonneries</string>
+  <string name="account_ringtone_custom_label">Utiliser la sonnerie par défaut</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vidéo</string>
+  <string name="account_video_enable">Activer le vidéo</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avancé</string>
+  <string name="account_registration_exp_label">Inscription expirée</string>
+  <string name="account_local_interface_label">Interface locale</string>
+  <string name="account_local_port_label">Port local</string>
+  <string name="account_stun_enable_label">Utiliser le Stun</string>
+  <string name="account_stun_server_label">Serveur Stun</string>
+  <string name="account_turn_enable_label">Utiliser le TURN</string>
+  <string name="account_turn_server_label">Serveur TURN</string>
+  <string name="account_turn_username_label">Nom d\'utilisateur TURN</string>
+  <string name="account_turn_password_label">Mot de passe TURN</string>
+  <string name="account_published_port_label">Port publié</string>
+  <string name="account_published_address_label">Adresse publiée</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Informations de connexion</string>
+  <string name="account_credentials_edit">Modifier les informations de connexion</string>
+  <string name="account_credentials_add">Ajouter les informations de connexion</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sécurité</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Utiliser le transport TLS</string>
+  <string name="account_tls_port_label">Port TLS auditeur</string>
+  <string name="account_tls_certificate_file_label">Fichier certifié</string>
+  <string name="account_tls_private_key_file_label">Fichier de clé privée</string>
+  <string name="account_tls_password_label">Mot de passe de la clé privée</string>
+  <string name="account_tls_method_label">Méthode TLS</string>
+  <string name="account_tls_server_name_label">Nom de serveur</string>
+  <string name="account_tls_verify_server_label">Vérifier le serveur</string>
+  <string name="account_tls_verify_client_label">Vérifier le client</string>
+  <string name="account_rtp_max_port">Maximum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Réactiver le compte</string>
+  <string name="account_restore_message">Entrer le mot de passe pour déchiffrer le fichier.</string>
+  <string name="account_restore_decryption_password">Mot de passe de décryptage</string>
+  <string name="account_new_device_password">Entrer le mot de passe principal pour déverrouiller le compte</string>
+  <string name="restore_dialog_title">Réactivation en cours</string>
+  <string name="restore_backup_wait">Patienter s\'il vous plaît</string>
+  <string name="error_password_char_count">Minimum de 6 caractères</string>
+  <string name="error_passwords_not_equals">Les mots de passe ne concordent pas</string>
+  <string name="restore_failed_dialog_title">La réactivation a échouée</string>
+  <string name="restore_failed_dialog_msg">Une erreur est survenue</string>
+  <string name="export_account_wait_title">Patienter s\'il vous plaît</string>
+  <string name="export_account_wait_message">Publication des informations du nouveau compte</string>
+  <string name="account_export_end_decryption_message">Votre compte n\'a pu être déverrouillé avec le mot de passe fourni.</string>
+  <string name="account_export_end_network_title">Erreur de réseau</string>
+  <string name="account_export_end_network_message">L\'exportation du compte sur le réseau a échouée. Vérifier votre connexion.</string>
+  <string name="account_export_end_error_title">Erreur</string>
+  <string name="account_export_end_error_message">L\'exportation du compte a échouée. Une erreur inconnue est survenue.</string>
+  <string name="account_enter_password">Entrer le mot de passe</string>
+  <string name="account_share_body">Contactez-moi en utilisant \'%1$s\' sur la plateforme de communication distribuée de Ring : http://ring.cx</string>
+  <string name="account_share_body_with_username">Contactez-moi en utilisant \'%1$s\' ou mon nom d\'utilisateur public \'%2$s\' sur la plateforme de communication distribuée de Ring: http://ring.cx</string>
+  <string name="account_contact_me">Contactez-moi sur Ring!</string>
+  <string name="update_account">Mettre à jour le compte</string>
+  <string name="account_migration">Votre compte Ring peut être mis à jour.\nS\'il vous plaît, entrer votre mot de passe.</string>
+  <string name="ring_account">Compte Ring</string>
+  <string name="ring_account_identity">Identité</string>
+  <string name="account_migration_title_dialog">Migration du compte</string>
+  <string name="account_migration_message_dialog">Vos comptes doivent être mis à jour. Désirez-vous vous rendre à la fenêtre de Gestion de compte pour effectuer les modifications?</string>
+  <string name="account_update_needed">Mise à jour nécessaire</string>
+  <string name="account_creation_file_too_big">Fichier trop volumineux</string>
+  <string name="account_cannot_read">Lecture impossible de %1$s</string>
+  <string name="account_cannot_be_found_title">Impossible de trouver le compte</string>
+  <string name="account_cannot_be_found_message">Impossible de trouver le compte sur le réseau Ring. \nAssurez-vous que le compte ait été exporté sur Ring depuis un appareil existant et d\'avoir fourni les bonnes informations de connexions.</string>
+  <string name="account_sip_cannot_be_registered_message">Vous pouvez continuer avec le processus de création de compte ou modifier vos informations ici. Vous pouvez effectuer des modifications plus tard dans les paramètres du compte.</string>
+  <string name="account_no_network_title">Impossibilité de se connecter au réseau.</string>
+  <string name="account_no_network_message">Impossible d\'ajouter le compte car Ring n\'a pas pu se connecter au réseau distribué. Vérifier la connexion de votre appareil.</string>
+  <string name="account_device_added_title">Compte de l\'appareil ajouté</string>
+  <string name="account_device_added_message">Votre compte Ring a été configuré avec succès sur cet appareil.</string>
+  <string name="account_device_updated_title">Compte de l\'appareil mis à jour</string>
+  <string name="account_device_updated_message">Votre compte Ring a bien été mis à jour.</string>
+  <string name="account_cannot_be_updated_message">La mise à jour de l\'appareil associé au compte a échoué. S.v.p. vérifier votre mot de passe.</string>
+  <string name="account_sip_success_title">Compte Sip enregistré</string>
+  <string name="account_sip_success_message">Votre compte Sip a été enregistré avec succès.</string>
+  <string name="account_sip_register_anyway">S\'inscrire de toute façon</string>
+  <string name="account_link_button">Associer cet appareil à un compte</string>
+  <string name="account_import_title">Associer à un compte existant</string>
+  <string name="account_link_prompt_pin">Entrer le NIP</string>
+  <string name="account_wizard_title">Bienvenue à</string>
+  <string name="account_new_button">Créer un compte Ring</string>
+  <string name="account_link_export_button">Associer un autre appareil à ce compte</string>
+  <string name="account_link_export_info">Pour utiliser ce compte sur d\'autres appareils, vous devez d\'abord l\'afficher sur Ring.  Ceci générera un code NIP que vous devez entrer sur le nouvel appareil pour configurer votre compte. Le NIP est valide pour une durée de 10 minutes. \n\nS\'il vous plaît, entrer votre mot de passe pour débuter:</string>
+  <string name="account_start_export_button">Générer le NIP</string>
+  <string name="account_end_export_button">fermer</string>
+  <string name="account_end_export_infos">Votre NIP est:\n\n%%\n\nPour compléter le processus, vous devez ouvrir Ring sur le nouvel appareil. Créer un nouveau compte avec \"Associer cet appareil à un compte\". Votre NIP est valide pour une durée de 10 minutes.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Impossible d\'enregistrer le nom: le mot de passe est incorrect.</string>
+  <string name="register_name_invalid">Impossible d\'enregistrer le nom: nom invalide.</string>
+  <string name="register_name_already_taken">Impossible d\'enregistrer le nom: nom indisponible</string>
+  <string name="register_name_network_error">Impossible d\'enregistrer le nom: erreur de réseau ou de serveur</string>
+  <string name="error_username_empty">Entrer le nom d\'utilisateur</string>
+  <string name="no_registered_name_for_account">Aucun nom enregistré trouvé pour ce compte</string>
+  <string name="register_name">Nom d\'enregistrement</string>
+  <string name="trying_to_register_name">Enregistrement du nom en cours</string>
+  <string name="registered_username">Nom d\'utilisateur enregistré</string>
+  <string name="register_username">Enregistrer un nom d\'utilisateur public (expérimental)</string>
+  <string name="username_already_taken">Nom d\'utilisateur non-disponible</string>
+  <string name="invalid_username">Nom d\'utilisateur invalide</string>
+  <string name="account_status_connecting">Connexion en cours</string>
+  <string name="account_status_connection_error">Erreur de connexion</string>
+  <string name="account_status_online">En ligne</string>
+  <string name="account_status_unknown">Inconnu</string>
+  <string name="account_status_offline">Hors ligne</string>
+  <!--Create account-->
+  <string name="account_creation_home">Bienvenue sur Ring</string>
+  <string name="account_creation_profile">Créer votre profil</string>
+  <string name="account_creation_ring">Créer votre compte Ring</string>
+  <string name="account_link_title">Associer cet appareil</string>
+  <string name="account_sip_cannot_be_registered">Impossible d\'enregistrer le compte</string>
+  <!--Devices-->
+  <string name="enter_password">Entrer le mot de passe</string>
+  <string name="revoke_device_wait_title">Patienter s\'il vous plaît</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr-rCA/strings_call.xml b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_call.xml
new file mode 100644
index 0000000..a48bcfe
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">ça sonne</string>
+    <string name="call_human_state_connecting">connexion en cours</string>
+    <string name="call_human_state_ringing">appel en cours </string>
+    <string name="call_human_state_current">conversation en cours </string>
+    <string name="call_human_state_hungup">sur</string>
+    <string name="call_human_state_busy">occupé </string>
+    <string name="call_human_state_failure">échoué </string>
+    <string name="call_human_state_hold">tenir</string>
+    <string name="call_human_state_unhold">ne pas tenir</string>
+    <string name="call_human_state_over">sur</string>
+    <string name="call_human_state_none">rien</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">active attaché </string>
+    <string name="conference_human_state_active_detached">active détaché</string>
+    <string name="conference_human_state_active_attached_rec">attachement d\'un enregistrement vidéo  </string>
+    <string name="conference_human_state_active_detached_rec">déttachement d\'un enregistrement vidéo  </string>
+    <string name="conference_human_state_hold">tenir</string>
+    <string name="conference_human_state_hold_rec">tenir l\'enregistrement </string>
+    <string name="conference_human_state_default">rien </string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-fr-rCA/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_content_description.xml
new file mode 100644
index 0000000..9c72e9f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Appel rapide</string>
+  <string name="contact_picture_description">Photo du contact</string>
+  <string name="dial_numeric_pad">Clavier numérique</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr-rCA/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_preferences.xml
new file mode 100644
index 0000000..89f3b61
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rCA/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Réseau</string>
+  <string name="pref_category_contacts">Contacts</string>
+  <string name="pref_category_system">Système</string>
+  <string name="pref_category_privacy">Mode privée</string>
+  <string name="pref_mobileData_title">Données mobiles</string>
+  <string name="pref_mobileData_summary">Autoriser Ring à passer par le réseau 3G/LTE en plus du Wi-Fi</string>
+  <string name="pref_systemContacts_title">Utiliser le système de contacts</string>
+  <string name="pref_systemContacts_summary">Montrer les informations de l\'appelant en utilisant le système des contacts</string>
+  <string name="pref_systemDialer_title">Placer les appels en utilisant Ring</string>
+  <string name="pref_systemDialer_summary">Placer les appels en utilisant Ring quand c\'est possible</string>
+  <string name="pref_startOnBoot_title">Exécuter Ring lors du démarrage du téléphone</string>
+  <string name="pref_startOnBoot_summary">Lancer Ring quand le système démarre.</string>
+  <string name="pref_clearHistory_title">Effacer l\'historique</string>
+  <string name="pref_clearHistory_summary">Effacer l\'historique des conversations. L\'action est irréversible.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr-rFR/strings.xml b/ring-android/androidtv/src/main/res/values-fr-rFR/strings.xml
new file mode 100644
index 0000000..2675568
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rFR/strings.xml
@@ -0,0 +1,134 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring est un logiciel open-source développé et supporté par </string>
+  <string name="copyright_section">droit d\'auteur</string>
+  <string name="contribute_section">Contribuer</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">Aucun logiciel de messagerie n\'a été trouvé, merci d\'installer un logiciel de messagerie pour nous envoyer un rapport</string>
+  <string name="email_chooser_title">Envoyer un courriel en utilisant...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Aucune connexion au réseau n\'est possible</string>
+  <string name="error_mobile_network_available_but_disabled">Merci d\'accéder au réseau mobile dans les paramètres de l\'écran</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nouveau compte</string>
+  <string name="ab_action_chat">Messages textes</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Ouvrir le panneau de navigation Android</string>
+  <string name="drawer_close">Fermer le panneau de navigation Android</string>
+  <!--Sections-->
+  <string name="menu_item_home">Accueil</string>
+  <string name="menu_item_accounts">Gérer des comptes</string>
+  <string name="menu_item_settings">Réglages</string>
+  <string name="menu_item_share">Partager mes contacts</string>
+  <string name="menu_item_about">A propos de Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Composer un numéro </string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Répéter</string>
+  <string name="hist_replay_button_stop">Arrêter</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversations</item>
+    <item quantity="other">%d Conversations</item>
+  </plurals>
+  <string name="home_transfer_complet">Le transfert est terminé</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Aucun contact n\'a été trouvé</string>
+  <string name="starred_contacts_title">Favoris</string>
+  <string name="searchbar_hint">Entrer un nom ou un numéro de téléphone</string>
+  <string name="choose_number">Choisir un numéro de téléphone</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transférer à un autre appel en cours</string>
+  <string name="transfer_no_other_call">Aucun appel en attente</string>
+  <string name="transfer_type_number">Saisir le numéro de téléphone sur lequel transféré l\'appel</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Appel entrant de %1$s</string>
+  <string name="notif_incoming_call">Appel entrant</string>
+  <string name="notif_outgoing_call_title">Appel sortant à %1$s</string>
+  <string name="notif_outgoing_call">Appel sortant</string>
+  <string name="notif_current_call_title">Appel en cours avec %1$s</string>
+  <string name="notif_current_call">Appel en cours</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Toi</string>
+  <string name="action_call_attended_transfer">En attente du transfert d\'appel</string>
+  <string name="action_call_conference">Conférence</string>
+  <string name="action_call_hangup">Raccrocher</string>
+  <string name="ongoing_call">Appel en cours</string>
+  <string name="hist_in_call">Appel entrant de %1$s</string>
+  <string name="hist_out_call">Appel sortant de %1$s</string>
+  <string name="start_error_title">Ring ne démarre pas</string>
+  <string name="start_error_mic_required">Ring requiert une permission pour utiliser le micro</string>
+  <string name="action_call_accept">Prendre un appel</string>
+  <string name="action_call_decline">Refuser</string>
+  <string name="ab_action_speakerphone">Activer le haut-parleur</string>
+  <string name="ab_action_contact_add">Ajouter dans les contacts</string>
+  <string name="ab_action_contact_add_question">Voulez-vous l\'ajouter à vos contacts?</string>
+  <string name="ab_action_audio_call">Appel audio</string>
+  <string name="ab_action_video_call">Appel vidéo</string>
+  <string name="share_via">Partager via</string>
+  <string name="write_a_message">Écrire un message</string>
+  <string name="scan_qr">Scanner un code QR</string>
+  <string name="ab_action_flipcamera">Inverser la caméra</string>
+  <!--Text messages-->
+  <string name="send_message">Envoyer un message</string>
+  <string name="message_sending">Envoi du message en cours</string>
+  <string name="time_just_now">maintenant</string>
+  <string name="permission_read_denied">Le logiciel n\'a pas les permissions \"en lecture\" pour lire l\'espace de stockage d\'où un problème de fonctionnement. Merci d\'accorder ces permissions.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Autoriser la caméra</string>
+  <string name="permission_dialog_camera_message">Les conversations en mode vidéo demandent à ce que les permissions soient accordées. Merci d\'activer les permissions.</string>
+  <string name="ringtone_error_title">Erreur</string>
+  <string name="ringtone_error_format_not_supported">Ce format n\'est pas supporté</string>
+  <string name="ringtone_error_size_too_big">Ce document est trop lourd. La taille maximum autorisé est de %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring souhaite accéder à vos contacts pour activer cette fonctionnalité. Merci d\'accorder les permissions nécessaires.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring nécessite d\'avoir des accès pour activer cette fonctionnalité. Merci d\'accorder les permissions nécessaires.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Merci de scanner le Code QR du compte que vous souhaitez ajouter.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Voulez-vous effacer l\'historique?</string>
+  <string name="clear_history_dialog_message">Cette action ne peut pas être annulée</string>
+  <string name="clear_history_completed">L\'historique a été effacée</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Supprimer cette conversation</string>
+  <string name="conversation_action_delete_this_title">Voulez-vous supprimer cette conversation?</string>
+  <string name="conversation_action_delete_this_message">Cette action ne peut pas être annulée</string>
+  <string name="conversation_action_copy_peer_number">Copier le numéro de téléphone</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s a été copié dans le presse-papier</string>
+  <string name="conversation_action_select_peer_number">Choisir un numéro </string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Voulez-vous ajouter %1$s ?</string>
+  <string name="prompt_new_password">Nouveau mot de passe</string>
+  <string name="prompt_new_password_repeat">Saisir à nouveau le mot de passe</string>
+  <string name="account_create_title">Créer un compte Ring</string>
+  <string name="prompt_new_username">Saisir un nouveau nom d\'utilisateur</string>
+  <string name="help_password_choose">Saisir un mot de passe sécuritaire facile à retenir pour protéger votre compte Ring</string>
+  <string name="help_password_enter">Entrer votre mot de passe pour votre compte Ring principal</string>
+  <string name="help_pin_enter">Entrer votre PIN (numéro d\'identification personnel) configuré sur un autre compte Ring. Utiliser la fonction \"exporter un compte dans Ring\" pour obtenir votre numéro d\'identification personnel.</string>
+  <string name="wizard_next">Suivant</string>
+  <string name="wizard_back">Retour</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mon profil</string>
+  <string name="open_the_gallery">Ouvrir la galerie</string>
+  <string name="take_a_photo">Prendre une photo</string>
+  <string name="unknown">Inconnu</string>
+  <!--Share fragment-->
+  <string name="share_message">Scanner le code QR avec le scanner intégré du logiciel Ring pour pouvoir communiquer</string>
+  <string name="share_message_no_account">Sélectionnez un compte à partager.</string>
+  <string name="share_your_account_information">Partager mes coordonnées</string>
+  <string name="generic_error_migration">Erreur</string>
+  <string name="generic_error_migration_message">Une erreur est survenue lors de la migration</string>
+  <!--Pending contact requests-->
+  <string name="accept">Accepter</string>
+  <string name="refuse">Refuser</string>
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr-rFR/strings_account.xml b/ring-android/androidtv/src/main/res/values-fr-rFR/strings_account.xml
new file mode 100644
index 0000000..604a62c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rFR/strings_account.xml
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Supprimer</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_password">mot de passe</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_message">Cette action ne peut pas être annulée</string>
+  <!--AccountManagementFragment-->
+  <!--Basic Details-->
+  <string name="account_password_label">mot de passe</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_ringtone_label">Sonneries</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vidéo</string>
+  <!--Advanced Details-->
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">Erreur</string>
+  <string name="account_device_updated_message">Votre profil Ring a bien été mis à jour.</string>
+  <string name="account_new_button">Créer un compte Ring</string>
+  <string name="account_link_export_button">Connecter un autre appareil à ce compte</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">Inconnu</string>
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr-rFR/strings_call.xml b/ring-android/androidtv/src/main/res/values-fr-rFR/strings_call.xml
new file mode 100644
index 0000000..b5b16ca
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr-rFR/strings_call.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_hungup">Terminé</string>
+    <string name="call_human_state_hold">Patienter</string>
+    <string name="call_human_state_over">Terminé</string>
+    <string name="conference_human_state_hold">Patienter</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-fr/strings.xml b/ring-android/androidtv/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000..7ce5fa7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr/strings.xml
@@ -0,0 +1,134 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring est un logiciel libre développé et soutenu par</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Contribuer</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">Application d\'envoi de courriel non-trouvée, installez-en un et renvoyez-nous votre rapport</string>
+  <string name="email_chooser_title">Envoi du courriel à travers ...</string>
+  <string name="description">Ring est un logiciel libre de communication universelle qui respecte les libertés et la vie privée de ses utilisateurs.</string>
+  <string name="credits">Crédits</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Pas d\'accès au réseau</string>
+  <string name="error_mobile_network_available_but_disabled">SVP, autorisez l\'accès au réseau cellulaire dans les options de configuration</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nouveau compte</string>
+  <string name="ab_action_chat">Messagerie texte</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Ouvrir le tiroir de navigation</string>
+  <string name="drawer_close">Fermer le tiroir de navigation</string>
+  <!--Sections-->
+  <string name="menu_item_home">Accueil</string>
+  <string name="menu_item_accounts">Gérer les comptes</string>
+  <string name="menu_item_settings">Paramètres</string>
+  <string name="menu_item_share">Partager mon contact</string>
+  <string name="menu_item_about">À propos de Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Composez un numéro</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Écouter</string>
+  <string name="hist_replay_button_stop">Stop</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversation</item>
+    <item quantity="other">%d Conversations</item>
+  </plurals>
+  <string name="home_transfer_complet">Transfert terminé</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Aucun contact trouvé</string>
+  <string name="starred_contacts_title">Favoris</string>
+  <string name="searchbar_hint">Taper un nom ou un numéro…</string>
+  <string name="choose_number">Choisissez un numéro</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transfert avec un autre appel</string>
+  <string name="transfer_no_other_call">Aucun appel</string>
+  <string name="transfer_type_number">Entrez un numéro</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Appel entrant de %1$s</string>
+  <string name="notif_incoming_call">Appel entrant</string>
+  <string name="notif_outgoing_call_title">Appel sortant vers %1$s</string>
+  <string name="notif_outgoing_call">Appel sortant</string>
+  <string name="notif_current_call_title">Appel en cours avec %1$s</string>
+  <string name="notif_current_call">Appel en cours</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Vous :</string>
+  <string name="action_call_attended_transfer">Transfert</string>
+  <string name="action_call_conference">Conférence</string>
+  <string name="action_call_hangup">Raccrocher</string>
+  <string name="ongoing_call">Appel en cours</string>
+  <string name="hist_in_call">Appel entrant de %1$s</string>
+  <string name="hist_out_call">Appel sortant de %1$s</string>
+  <string name="start_error_title">Impossible de démarrer Ring |</string>
+  <string name="start_error_mic_required">Ring nécessite les permissions d\'accès au micro pour fonctionner.</string>
+  <string name="action_call_accept">Répondre</string>
+  <string name="action_call_decline">Décliner</string>
+  <string name="ab_action_speakerphone">Activer haut-parleur</string>
+  <string name="ab_action_contact_add">Ajouter aux contacts</string>
+  <string name="ab_action_contact_add_question">Ajouter aux contacts ?</string>
+  <string name="ab_action_audio_call">Appel audio</string>
+  <string name="ab_action_video_call">Appel vidéo</string>
+  <string name="share_via">Partager</string>
+  <string name="write_a_message">Ecrire un message</string>
+  <string name="scan_qr">Scanner un code QR</string>
+  <string name="ab_action_flipcamera">Changer de camera</string>
+  <!--Text messages-->
+  <string name="send_message">Envoyer le message</string>
+  <string name="message_sending">Envoi du message</string>
+  <string name="time_just_now">A l\'instant</string>
+  <string name="permission_read_denied">L\'application n\'a pas été autorisée à lire dans la mémoire du dispositif. En conséquence, elle ne peut pas fonctionner correctement. Merci de lui accorder cette permission.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Permission d\'accès au caméra</string>
+  <string name="permission_dialog_camera_message">Les conversation vidéo nécessitent la permission d\'utiliser l\'objectif. Merci de l\'autoriser.</string>
+  <string name="ringtone_error_title">Erreur</string>
+  <string name="ringtone_error_format_not_supported">Cette extension de fichier n\'est pas supportée.</string>
+  <string name="ringtone_error_size_too_big">Ce fichier est trop gros. La taille maximale est de %1$iko.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring a besoin d\'accéder en lecture à votre liste de contact. SVP autorisez-le.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring a besoin d\'accéder en écriture à votre liste de contact. SVP autorisez-le.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Numérisez le code QR de votre interlocuteur.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Effacer le journal d\'appels ?</string>
+  <string name="clear_history_dialog_message">Cette action est irréversible.</string>
+  <string name="clear_history_completed">Le journal d\'appels a été effacé.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Supprimer la conversation</string>
+  <string name="conversation_action_delete_this_title">Supprimer la conversation ?</string>
+  <string name="conversation_action_delete_this_message">Cette action est irréversible.</string>
+  <string name="conversation_action_copy_peer_number">Copier le numéro ou identifiant Ring</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s copié vers leclipboard</string>
+  <string name="conversation_action_select_peer_number">Choisir un numéro</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Ajouter %1$s</string>
+  <string name="prompt_new_password">Nouveau mot de passe</string>
+  <string name="prompt_new_password_repeat">Confirmez le mot de passe</string>
+  <string name="account_create_title">Créer un compte Ring</string>
+  <string name="prompt_new_username">Entrez un nouveau nom d\'utilisateur</string>
+  <string name="help_password_choose">Choisissez un mot de passe sécurisé dont vous vous rappellerez pour protéger votre compte Ring.</string>
+  <string name="help_password_enter">Entrez le mot de passe de votre compte Ring</string>
+  <string name="help_pin_enter">Entrez le code PIN obtenu en configurant un autre compte Ring . Utilisez la fonction \"exportez un compte sur Ring\" pour obtenir un code PIN.</string>
+  <string name="wizard_next">Suivant</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mon profil</string>
+  <string name="open_the_gallery">Ouvrir la galerie</string>
+  <string name="take_a_photo">Prendre une photo</string>
+  <string name="unknown">Inconnu</string>
+  <!--Share fragment-->
+  <string name="share_message">Scannez ce QRCode avec le scanner intégré de l\'application Ring qui souhaite communiquer avec vous.</string>
+  <string name="share_your_account_information">Partagez mes coordonnées</string>
+  <string name="generic_error_migration">Erreur</string>
+  <!--Pending contact requests-->
+  <string name="accept">Accepter</string>
+  <string name="refuse">Refuser</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Envoyer</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr/strings_account.xml b/ring-android/androidtv/src/main/res/values-fr/strings_account.xml
new file mode 100644
index 0000000..87a967a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr/strings_account.xml
@@ -0,0 +1,156 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Supprimer</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Nom du serveur</string>
+  <string name="prompt_username">Nom d\'utilisateur</string>
+  <string name="prompt_password">Mot de passe</string>
+  <string name="action_create">Créer le compte</string>
+  <string name="action_create_short">Enregistrer</string>
+  <string name="error_field_required">Ce champ est requis</string>
+  <string name="dialog_wait_create">Ajout du compte</string>
+  <string name="dialog_wait_create_details">Merci de patienter pendant l\'ajout de votre compte…</string>
+  <string name="dialog_wait_update">Mise à jour du compte</string>
+  <string name="dialog_wait_update_details">Veuillez patienter pendant la mise à jour du compte... </string>
+  <string name="dialog_warn_ip2ip_account_title">Créer un compte SIP vide ?</string>
+  <string name="dialog_warn_ip2ip_account_message">Vous êtes sur le point de créer un compte SIP sans avoir fourni un nom d\'hôte correcte.
+Vous pourrez uniquement faire et recevoir des appels directs directs sur IP.
+Vous pouvez modifier le compte plus tard.</string>
+  <string name="help_ring">Un compte Ring permet de se connecter sécuritairement avec un autre interlocuteur à travers un réseau distribué</string>
+  <string name="help_sip_title">Ajouter votre compte SIP</string>
+  <string name="help_sip">Configurez un compte SIP existant.</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Supprimer le compte ?</string>
+  <string name="account_delete_dialog_message">Cette action est irréversible.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Aucun compte enregistré</string>
+  <string name="normal_accounts_titles">Comptes</string>
+  <string name="normal_devices_titles">Liste des appareils connus liés à votre compte Ring</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Général</string>
+  <string name="account_basic_category">Réglages basiques</string>
+  <string name="account_alias_label">Nom du compte</string>
+  <string name="account_hostname_label">Serveur</string>
+  <string name="account_bootstrap_label">Adresse du nœud d\'amorçage</string>
+  <string name="account_username_label">Utilisateur</string>
+  <string name="account_password_label">Mot de passe</string>
+  <string name="account_optionnal_category">Réglages optionnels</string>
+  <string name="account_useragent_label">User-agent</string>
+  <string name="account_autoanswer_label">Décroche automatiquement l\'appel</string>
+  <string name="account_upnp_label">Activer UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Médias</string>
+  <string name="account_ringtone_label">Sonneries</string>
+  <string name="account_ringtone_enabled_label">Activer les sonneries</string>
+  <string name="account_ringtone_path_label">Sonnerie</string>
+  <string name="account_ringtone_custom_label">Utiliser une sonnerie personnalisée</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vidéo</string>
+  <string name="account_video_enable">Activer la vidéo</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avancé</string>
+  <string name="account_registration_exp_label">Expiration d\'enregistrement</string>
+  <string name="account_local_interface_label">Interface locale</string>
+  <string name="account_local_port_label">Port local</string>
+  <string name="account_stun_enable_label">Utiliser STUN</string>
+  <string name="account_stun_server_label">Serveur STUN</string>
+  <string name="account_turn_enable_label">Utiliser TURN</string>
+  <string name="account_turn_server_label">Serveur TURN</string>
+  <string name="account_turn_username_label">Utilisateur TURN</string>
+  <string name="account_turn_password_label">Mot de passe TURN</string>
+  <string name="account_published_same_as_local_label">Identique aux paramètres locaux</string>
+  <string name="account_published_port_label">Port de publication</string>
+  <string name="account_published_address_label">Adresse de publication</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Identifiants</string>
+  <string name="account_credentials_edit">Éditer les identifiants</string>
+  <string name="account_credentials_add">Ajouter des identifiants</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sécurité</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Utiliser le transport TLS</string>
+  <string name="account_tls_port_label">Port TLS Global</string>
+  <string name="account_tls_certificate_list_label">Autorité de certification</string>
+  <string name="account_tls_certificate_file_label">Certificat</string>
+  <string name="account_tls_private_key_file_label">Clé privée</string>
+  <string name="account_tls_password_label">Mot de passe de la clé</string>
+  <string name="account_tls_method_label">Méthode pour TLS</string>
+  <string name="account_tls_ciphers_label">Cryptogrammes TLS</string>
+  <string name="account_tls_server_name_label">Serveur pour connections sortantes</string>
+  <string name="account_tls_verify_server_label">TLS Verify Server</string>
+  <string name="account_tls_verify_client_label">TLS Verify Client</string>
+  <string name="account_tls_negotiation_timeout_sec">Negotiation Timeout (sec)</string>
+  <string name="account_rtp_max_port">Maximum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Plage de port RTP pour l\'audio</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Restaurer un compte</string>
+  <string name="account_restore_message">Entrer le mot de passe pour déchiffrer le fichier.</string>
+  <string name="account_restore_decryption_password">Mot de passe en clair</string>
+  <string name="account_new_device_password">Entrez le mot de passe principal pour déverrouiller le compte</string>
+  <string name="restore_dialog_title">Restauration</string>
+  <string name="restore_backup_wait">Veuillez patienter</string>
+  <string name="error_password_char_count">6 caractères maximales</string>
+  <string name="error_passwords_not_equals">Mot de passe erronné</string>
+  <string name="restore_failed_dialog_title">Échec de la restauration</string>
+  <string name="restore_failed_dialog_msg">Une erreur s\'est produite</string>
+  <string name="export_account_wait_title">Veuillez patienter</string>
+  <string name="export_account_wait_message">Édition des informations du nouveau compte</string>
+  <string name="account_export_end_decryption_message">Impossible de déverrouiller votre compte en utilisant le mot de passe fourni.</string>
+  <string name="account_export_end_network_title">Erreur de réseau</string>
+  <string name="account_export_end_network_message">Impossible d\'exporter le compte sur le réseau. Veuillez vérifier votre connexion. </string>
+  <string name="account_export_end_error_title">Erreur</string>
+  <string name="account_export_end_error_message">Impossible d\'exporter le compte. Une erreur inconnue s\'est produite.</string>
+  <string name="account_enter_password">Entrer le mot de passe</string>
+  <string name="account_contact_me">Contactez moi sur Ring !</string>
+  <string name="update_account">Mise à jour du compte </string>
+  <string name="ring_account">Compte Ring</string>
+  <string name="account_migration_title_dialog">Migration du compte</string>
+  <string name="account_update_needed">Mise à jour nécessaire</string>
+  <string name="account_creation_file_too_big">Fichier trop gros</string>
+  <string name="account_cannot_read">Impossible de lire %1$s</string>
+  <string name="account_cannot_be_found_title">Compte introuvable</string>
+  <string name="account_cannot_be_found_message">Le compte n\'a pas pu être trouvé sur le réseau Ring. Veuillez vous assurer qu\'il a été correctement exporté sur Ring depuis un appareil existant et que les identifiants fournis sont corrects.</string>
+  <string name="account_no_network_title">Impossible de se connecter au réseau</string>
+  <string name="account_no_network_message">impossible d\'ajouter le compte car Ring ne peut pas se connecter au réseau. Veuillez vérifier votre connexion.</string>
+  <string name="account_device_added_title">Appareil ajouté</string>
+  <string name="account_device_added_message">Le compte Ring a été correctement configuré sur cet appareil.</string>
+  <string name="account_device_updated_title">Appareil mis à jour</string>
+  <string name="account_device_updated_message">Mise à jour de votre compte Ring réalisée avec succès. </string>
+  <string name="account_link_button">Lier cet appareil à un compte</string>
+  <string name="account_import_title">Lier à un compte existant</string>
+  <string name="account_link_prompt_pin">Entrer votre code PIN</string>
+  <string name="account_wizard_title">Bienvenue à </string>
+  <string name="account_new_button">Créer un compte Ring</string>
+  <string name="account_link_export_button">Lier un autre appareil à ce compte</string>
+  <string name="account_link_export_info">Pour utiliser ce compte sur un autre appareil, vous devez d\'abord l\'exposer sur Ring. Ceci générera un code PIN que vous devrez entrer sur le nouvel appareil pour configurer le compte. Le code PIN sera valable pendant 10 minutes. \n\nMerci de commencer par entrer votre mot de passe:</string>
+  <string name="account_start_export_button">Générer un code PIN</string>
+  <string name="account_end_export_button">fermer</string>
+  <string name="account_end_export_infos">Votre code Pin est:\n\n%%\n\nPour terminer le processus, vous devez ouvrir Ring sur un autre appareil puis créer un nouveau compte avec \"Lier cet appareil à un compte\".  Votre code pin est utilisable pendant 10 minutes.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Impossible d\'enregistrer le nom: mauvais mot de passe.</string>
+  <string name="register_name_invalid">impossible d\'enregistrer le nom: nom incorrect.</string>
+  <string name="register_name_already_taken">Impossible d\'enregistrer le nom: le nom est déjà utilisé.</string>
+  <string name="register_name_network_error">Impossible d\'enregistrer le nom: une erreur s\'est produite sur le réseau ou le serveur.</string>
+  <string name="error_username_empty">Entrer un nom d\'utilisateur</string>
+  <string name="no_registered_name_for_account">Aucun nom n\'a été trouvé pour ce compte.</string>
+  <string name="register_name">Enregistrer un nom</string>
+  <string name="trying_to_register_name">Enregistrement du nom en cours</string>
+  <string name="registered_username">Nom d\'utilisateur enregistré</string>
+  <string name="register_username">Enregistrer un nom d\'utilisateur public (expérimental)</string>
+  <string name="username_already_taken">Ce nom d\'utilisateur est déjà utilisé</string>
+  <string name="invalid_username">Nom d\'utilisateur incorrect</string>
+  <string name="account_status_connecting">En cours de connexion</string>
+  <string name="account_status_unknown">Inconnu</string>
+  <!--Create account-->
+  <string name="account_creation_home">Bienvenue sur Ring</string>
+  <string name="account_creation_profile">Créer votre profil</string>
+  <!--Devices-->
+  <string name="enter_password">Entrer le mot de passe</string>
+  <string name="revoke_device_wait_title">Veuillez patienter</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr/strings_call.xml b/ring-android/androidtv/src/main/res/values-fr/strings_call.xml
new file mode 100644
index 0000000..bbe240f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Sonne</string>
+    <string name="call_human_state_connecting">En cours de connexion</string>
+    <string name="call_human_state_ringing">Appel en cours</string>
+    <string name="call_human_state_current">En cours</string>
+    <string name="call_human_state_hungup">Terminé</string>
+    <string name="call_human_state_busy">Occupé</string>
+    <string name="call_human_state_failure">Échec</string>
+    <string name="call_human_state_hold">Mettre en attente</string>
+    <string name="call_human_state_unhold">Reprendre</string>
+    <string name="call_human_state_over">Terminé</string>
+    <string name="call_human_state_none">Aucun</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Connecté et présent</string>
+    <string name="conference_human_state_active_detached">Connecté mais absent</string>
+    <string name="conference_human_state_active_attached_rec">Connecté et présent, enregistre</string>
+    <string name="conference_human_state_active_detached_rec">Actif mais absent, enregistre</string>
+    <string name="conference_human_state_hold">Mettre en attente</string>
+    <string name="conference_human_state_hold_rec">Pause d\'enregistrement</string>
+    <string name="conference_human_state_default">Aucun</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-fr/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-fr/strings_content_description.xml
new file mode 100644
index 0000000..0f5bf8a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Quick Call</string>
+  <string name="contact_picture_description">Contact Picture</string>
+  <string name="dial_numeric_pad">Numeric dialpad</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-fr/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-fr/strings_preferences.xml
new file mode 100644
index 0000000..9bdcf00
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-fr/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Réseau</string>
+  <string name="pref_category_contacts">Contacts</string>
+  <string name="pref_category_system">Système</string>
+  <string name="pref_category_privacy">Privée</string>
+  <string name="pref_mobileData_title">Données mobiles</string>
+  <string name="pref_mobileData_summary">Autoriser Ring sur les réseaux mobiles en plus du Wi-fi.</string>
+  <string name="pref_systemContacts_title">Utiliser les contacts de l\'appareil</string>
+  <string name="pref_systemContacts_summary">Utiliser les contacts de l\'appareil pour afficher les détails du correspondant.</string>
+  <string name="pref_systemDialer_title">Utiliser Ring par defaut pour les appels</string>
+  <string name="pref_systemDialer_summary">Utiliser Ring par défaut pour les appels, si possible</string>
+  <string name="pref_startOnBoot_title">Lancer Ring au démarrage</string>
+  <string name="pref_startOnBoot_summary">Lancer ring en arrière plan au démarrage de l\'appareil.</string>
+  <string name="pref_clearHistory_title">Effacer l\'historique</string>
+  <string name="pref_clearHistory_summary">Effacer les historiques de conversation. L\'action est irréversible.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-h500dp-land/dimens.xml b/ring-android/androidtv/src/main/res/values-h500dp-land/dimens.xml
new file mode 100644
index 0000000..d483310
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-h500dp-land/dimens.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="activity_vertical_margin">24dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-he/strings.xml b/ring-android/androidtv/src/main/res/values-he/strings.xml
new file mode 100644
index 0000000..480ecd1
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-he/strings.xml
@@ -0,0 +1,60 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="version_section">גרסא</string>
+  <string name="credits">תודות</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">אין חיבוריות רשת</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">חשבון חדש</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_home">בית</string>
+  <string name="menu_item_accounts">נהל חשבונות</string>
+  <string name="menu_item_settings">הגדרות</string>
+  <string name="menu_item_about">אודות Ring</string>
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <string name="hist_replay_button">נגן שוב</string>
+  <string name="hist_replay_button_stop">עצור</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <string name="home_transfer_complet">העברה הושלמה</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">לא נמצא איש קשר</string>
+  <string name="starred_contacts_title">מועדפים</string>
+  <string name="searchbar_hint">הזן שם או מספר טלפון…</string>
+  <string name="choose_number">בחר מספר</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <string name="notif_incoming_call">קריאה נכנסת</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">את(ה):</string>
+  <string name="action_call_conference">ועידה</string>
+  <string name="action_call_hangup">   נתק</string>
+  <!--Text messages-->
+  <string name="send_message">שלח הודעה</string>
+  <!--MediaPreferenceFragment-->
+  <string name="ringtone_error_title">שגיאה</string>
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <!--Conversation-->
+  <string name="conversation_action_copy_peer_number">העתק מספר</string>
+  <!--Contacts-->
+  <string name="wizard_next">קדימה</string>
+  <!--MenuHeaderView-->
+  <!--Share fragment-->
+  <string name="generic_error_migration">שגיאה</string>
+  <!--Pending contact requests-->
+  <string name="accept">קבל</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">שלח</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-he/strings_account.xml b/ring-android/androidtv/src/main/res/values-he/strings_account.xml
new file mode 100644
index 0000000..3ba401f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-he/strings_account.xml
@@ -0,0 +1,67 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">מחק</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">כינוי</string>
+  <string name="prompt_hostname">שם מארח</string>
+  <string name="prompt_username">שם משתמש</string>
+  <string name="prompt_password">סיסמה</string>
+  <string name="action_create_short">הירשם</string>
+  <string name="error_field_required">שדה זה הינו חובה</string>
+  <string name="dialog_wait_create">הוספת חשבון</string>
+  <string name="dialog_wait_create_details">אנא המתן בעוד שחשבונך החדש מתווסף...</string>
+  <string name="help_sip">הגדר חשבון SIP קיים.</string>
+  <!--Strings related to account deletion-->
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">אין חשבון רשום</string>
+  <string name="normal_accounts_titles">חשבונות</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">כלליות</string>
+  <string name="account_basic_category">הגדרות בסיסיות</string>
+  <string name="account_hostname_label">שם מארח</string>
+  <string name="account_username_label">שם משתמש</string>
+  <string name="account_password_label">סיסמה</string>
+  <string name="account_optionnal_category">הגדרות רשות</string>
+  <string name="account_useragent_label">סוכן משתמש</string>
+  <string name="account_autoanswer_label">מענה אוטומטי</string>
+  <string name="account_proxy_field">פרוקסי</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">אודיו</string>
+  <string name="account_preferences_media_tab">מדיה</string>
+  <string name="account_ringtone_label">רינגטונים</string>
+  <string name="account_ringtone_enabled_label">הפעל רינגטון</string>
+  <string name="account_ringtone_path_label">נציב רינגטון</string>
+  <!--Video Details-->
+  <string name="account_video_label">וידאו</string>
+  <string name="account_video_enable">אפשר וידאו</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">מתקדם</string>
+  <string name="account_registration_exp_label">רישום פוקע</string>
+  <string name="account_local_interface_label">ממשק מקומי</string>
+  <string name="account_local_port_label">פורט מקומי</string>
+  <string name="account_stun_enable_label">השתמש ב-</string>
+  <string name="account_stun_server_label">שרת Stun</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">נתוני התחברות</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">אבטחה</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">השתמש בטרנספורט TLS</string>
+  <string name="account_tls_certificate_list_label">רשויות אישור</string>
+  <string name="account_tls_certificate_file_label">קובץ תעודה</string>
+  <string name="account_tls_private_key_file_label">קובץ מפתח פרטי</string>
+  <string name="account_tls_password_label">סיסמת מפתח פרטי</string>
+  <string name="account_tls_method_label">שיטת TLS</string>
+  <string name="account_tls_server_name_label">שם שרת</string>
+  <string name="account_tls_verify_server_label">אמת שרת</string>
+  <string name="account_tls_verify_client_label">אמת לקוח</string>
+  <string name="account_rtp_max_port">מרבי</string>
+  <string name="account_rtp_min_port">נומינלי</string>
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">שגיאה</string>
+  <!--Name registration-->
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-he/strings_call.xml b/ring-android/androidtv/src/main/res/values-he/strings_call.xml
new file mode 100644
index 0000000..1cfa4b0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-he/strings_call.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_hold">החזק</string>
+    <string name="conference_human_state_hold">החזק</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-he/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-he/strings_content_description.xml
new file mode 100644
index 0000000..4f1fe03
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-he/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">שיחה מהירה</string>
+  <string name="contact_picture_description">תצלום איש קשר</string>
+  <string name="dial_numeric_pad">לוח חיוג מספרי</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-he/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-he/strings_preferences.xml
new file mode 100644
index 0000000..b81d4f3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-he/strings_preferences.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_contacts">אנשי קשר</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-hr/strings.xml b/ring-android/androidtv/src/main/res/values-hr/strings.xml
new file mode 100644
index 0000000..e623322
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hr/strings.xml
@@ -0,0 +1,141 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Povratna informacija</string>
+  <string name="report">&lt;u&gt;Pošaljite nam email&lt;/u&gt;</string>
+  <string name="section_license">Licenca</string>
+  <string name="sponsor_section">Ring je slobodi software koji razvijaju i podržavaju</string>
+  <string name="copyright_section">Autorska prava</string>
+  <string name="contribute_section">Doprinesite</string>
+  <string name="version_section">Verzija</string>
+  <string name="no_email_app_installed">Nijedna email aplikacija nije pronađena, instalairajte jednu da biste nam poslali izvješće</string>
+  <string name="no_browser_app_installed">NIje pronađen nijedan web preglednik, instalirajte jadan da biste visjeli stranicu</string>
+  <string name="email_chooser_title">Pošalji mail koristeći...</string>
+  <string name="website_chooser_title">Pogledaj web stranicu koristeći...</string>
+  <string name="credits">Zasluge</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Veza nedostupna</string>
+  <string name="error_mobile_network_available_but_disabled">Molimo, dozvolite aplikaciji pristup mobilnim podacima u postavkama.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Novi račun</string>
+  <string name="ab_action_chat">Dopisivanje</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_home">Glavni meni</string>
+  <string name="menu_item_accounts">Upravljaj računima</string>
+  <string name="menu_item_settings">Postavke</string>
+  <string name="menu_item_share">Dijeli moj kontakt</string>
+  <string name="menu_item_blacklist">Blokirani kontakti</string>
+  <string name="menu_item_about">O Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Pozovi broj</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Odgovori</string>
+  <string name="hist_replay_button_stop">Prekini</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d razgovor</item>
+    <item quantity="few">%d razgovora</item>
+    <item quantity="other">%d razgovora</item>
+  </plurals>
+  <string name="home_transfer_complet">Prijenos dovršen</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Nijedan kontakt nije nađen</string>
+  <string name="starred_contacts_title">Omiljeni</string>
+  <string name="searchbar_hint">Unesite ime ili telefonski broj...</string>
+  <string name="choose_number">Izaberite broj</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Prenesi na drugi razgovor:</string>
+  <string name="transfer_no_other_call">Nema dolazećih poziva</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">Propušteni dolazni poziv</string>
+  <string name="notif_missed_outgoing_call">Propušteni odlazni poziv</string>
+  <string name="notif_incoming_call_title">Dolazni poziv od %1$s</string>
+  <string name="notif_incoming_call">Dolazni poziv</string>
+  <string name="notif_outgoing_call_title">Odlazni poziv za %1$s</string>
+  <string name="notif_outgoing_call">Odlazni poziv</string>
+  <string name="notif_current_call_title">Trenutni poziv sa %1$s</string>
+  <string name="notif_current_call">Trenutni poziv</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Ti:</string>
+  <string name="action_call_conference">Konferencija</string>
+  <string name="action_call_hangup">Poklopi</string>
+  <string name="ongoing_call">Poziv koji je u tijeku</string>
+  <string name="hist_in_call">Dolazni poziv od %1$s</string>
+  <string name="hist_out_call">Odlazni poziv prema %1$s</string>
+  <string name="start_error_title">Nije moguće pokrenuti Ring !</string>
+  <string name="start_error_mic_required">Ring aplikaciji je potrebna dozvola mikrofona da bi radilo.</string>
+  <string name="action_call_accept">Preuzmi poziv</string>
+  <string name="action_call_decline">Odbij</string>
+  <string name="ab_action_speakerphone">Omogući zvučnik</string>
+  <string name="ab_action_contact_add">Dodaj u kontakte</string>
+  <string name="ab_action_contact_add_question">Dodati u kontakte?</string>
+  <string name="ab_action_audio_call">Audio poziv</string>
+  <string name="ab_action_video_call">Video poziv</string>
+  <string name="ab_action_change_screen_orientation">Promjeni orijentaciju zaslona</string>
+  <string name="share_via">Dijeli putem</string>
+  <string name="write_a_message">Napiši poruku</string>
+  <string name="scan_qr">Skeniraj QR kod</string>
+  <string name="ab_action_flipcamera">Okreni kameru</string>
+  <!--Text messages-->
+  <string name="send_message">Pošalji poruku</string>
+  <string name="message_sending">Šaljem poruku...</string>
+  <string name="time_just_now">Upravo sada</string>
+  <string name="permission_read_denied">Aplikacija nema dozvolu čitanja podataka. Zato ne može normalno funkcionirati. Molimo dozvolite aplikaciji čitanje podataka.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Dozvola kamere</string>
+  <string name="permission_dialog_camera_message">Video pozivi zahtjevaju dozvolu korištenja kamere. Molimo dozvolite aplikaciji korištenje kamere.</string>
+  <string name="ringtone_error_title">Greška</string>
+  <string name="ringtone_error_format_not_supported">Ovaj format nije podržan.</string>
+  <string name="ringtone_error_size_too_big">Ova datoteka je prevelika. Maksimalna veličina je %1$ikB.</string>
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Skenirajte QR kod korisnika kojeg želite dodati.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Očistiti povijest?</string>
+  <string name="clear_history_dialog_message"> Ova se radnja ne može poništiti.</string>
+  <string name="clear_history_completed">Povijest je očišćena.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Izbrišite ovaj razgovor</string>
+  <string name="conversation_action_delete_this_title">Izbrisati ovaj razgovor?</string>
+  <string name="conversation_action_delete_this_message"> Ova se radnja ne može poništiti.</string>
+  <string name="conversation_action_copy_peer_number">Kopiraj broj</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s kopiran u međuspremnik</string>
+  <string name="conversation_action_select_peer_number">Odaberite broj</string>
+  <string name="conversation_action_block_this">Blokiraj ovaj kontakt</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Dodaj %1$s ?</string>
+  <string name="prompt_new_password">Nova lozinka</string>
+  <string name="prompt_new_password_repeat">Ponovite novu lozinku</string>
+  <string name="account_create_title">Napravite Ring račun</string>
+  <string name="prompt_new_username">Unesite novo korisničko ime</string>
+  <string name="help_password_choose">Izaberite jaku lozinku koju ćete zapamtiti za zaštitu vašega Ring računa.</string>
+  <string name="help_password_enter">Unesite vašu glavnu lozinku Ring računa</string>
+  <string name="wizard_next">Slijedeće</string>
+  <string name="wizard_back">Natrag</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Moj profil</string>
+  <string name="profile_message_warning">Vaš profil je podjeljen samo sa vašim kontaktima</string>
+  <string name="open_the_gallery">Otvorite galeriju</string>
+  <string name="take_a_photo">Fotografiraj</string>
+  <string name="unknown">Nepoznato</string>
+  <!--Share fragment-->
+  <string name="share_message_no_account">Molim odaberite račun za djeljenje</string>
+  <string name="generic_error_migration">Greška</string>
+  <!--Pending contact requests-->
+  <string name="accept">Prihvati</string>
+  <string name="refuse">Odbij</string>
+  <string name="block">Blokiraj</string>
+  <string name="contact_request_account">Za %1$s</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Pošalji</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 blokiranih kontakata</string>
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-hr/strings_account.xml b/ring-android/androidtv/src/main/res/values-hr/strings_account.xml
new file mode 100644
index 0000000..f4fb8b5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hr/strings_account.xml
@@ -0,0 +1,105 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Izbriši</string>
+  <string name="ic_advanced_menu">Napredne postavke</string>
+  <string name="ic_blacklist_menu">Blokirani kontakti</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Dodaj Ring račun</string>
+  <string name="add_sip_account_title">Dodajte SIP račun</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Ime poslužitelja</string>
+  <string name="prompt_username">Korisničko ime</string>
+  <string name="prompt_password">Lozinka</string>
+  <string name="action_create">Napravi račun</string>
+  <string name="action_create_short">Registriraj</string>
+  <string name="error_field_required">Potrebno je ovo polje</string>
+  <string name="dialog_wait_create">Dodajem račun</string>
+  <string name="dialog_wait_create_details">Molim pričekajte dok se vaš novi račun ne doda...</string>
+  <string name="dialog_wait_update">Ažuriram račun</string>
+  <string name="dialog_wait_update_details">Molim pričekajte dok se vaš novi račun ne ažurira...</string>
+  <string name="dialog_warn_ip2ip_account_title">Kreirati prazan SIP račun?</string>
+  <string name="dialog_warn_ip2ip_account_message">kreirati ćete SIP račun bez pravilnog imena poslužitelja.
+Moći ćete uspostavljati i primati samo direktne IP pozive.
+Moćete urediti vaš račun kasnije</string>
+  <string name="account_type_ip2ip">IP račun</string>
+  <string name="help_sip_title">Dodajte vaš SIP račun</string>
+  <string name="help_sip">Konfigurirajte postojeći SIP račun.</string>
+  <string name="create_sip_account">Dodajte SIP račun</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Izbrisati račun?</string>
+  <string name="account_delete_dialog_message"> Ova se radnja ne može poništiti.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Nema registriranih računa</string>
+  <string name="normal_accounts_titles">Računi</string>
+  <string name="normal_devices_titles">Poznati uređaji povezani sa ovim Ring računom</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Opće</string>
+  <string name="account_basic_category">Osnovne postavke</string>
+  <string name="account_alias_label">Ime računa</string>
+  <string name="account_hostname_label">Ime poslužitelja</string>
+  <string name="account_username_label">Korisničko ime</string>
+  <string name="account_password_label">Lozinka</string>
+  <string name="account_optionnal_category">Dodatne postavke</string>
+  <string name="account_autoanswer_label">Automatski odgovor</string>
+  <string name="account_upnp_label">Omogući UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Zvuk</string>
+  <string name="account_preferences_media_tab">Medij</string>
+  <string name="account_ringtone_label">Melodije zvona</string>
+  <string name="account_ringtone_enabled_label">Aktivirajte melodije zvona</string>
+  <string name="account_ringtone_path_label">Putanja melodije zvona</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Omogući video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Napredno</string>
+  <string name="account_registration_exp_label">Registracija istjeće</string>
+  <string name="account_local_interface_label">Lokalno sučelje</string>
+  <string name="account_local_port_label">Lokalni port</string>
+  <string name="account_stun_enable_label">Koristi Stun</string>
+  <string name="account_stun_server_label">Stun poslužitelj</string>
+  <string name="account_turn_enable_label">Koristi TURN</string>
+  <string name="account_turn_server_label">TURN poslužitelj</string>
+  <string name="account_turn_username_label">TURN korisničko ime</string>
+  <string name="account_turn_password_label">TURN lozinka</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sigurnost</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_private_key_file_label">Datoteka privatnog ključa</string>
+  <string name="account_tls_password_label">Lozinka privatnog ključa</string>
+  <string name="account_tls_method_label">TLS metoda</string>
+  <string name="account_tls_server_name_label">Ime poslužitelja</string>
+  <string name="account_tls_verify_server_label">Provjeri poslužitelja</string>
+  <string name="account_tls_verify_client_label">Provjeri klijent</string>
+  <string name="account_rtp_max_port">Maksimum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Unesite lozinku za dešifriranje datoteke.</string>
+  <string name="account_restore_decryption_password">Lozinka za dešifriranje</string>
+  <string name="restore_backup_wait">Molim pričekajte...</string>
+  <string name="error_password_char_count">6 znakova minimum</string>
+  <string name="error_passwords_not_equals">Lozinke se ne podudaraju</string>
+  <string name="restore_failed_dialog_msg">Došlo je do greške</string>
+  <string name="export_account_wait_title">Molim pričekajte...</string>
+  <string name="account_export_end_network_title">Greška mreže</string>
+  <string name="account_export_end_error_title">Greška</string>
+  <string name="account_enter_password">Unesite lozinku</string>
+  <string name="update_account">Ažuriraj račun</string>
+  <string name="ring_account">Ring račun</string>
+  <string name="account_update_needed">Potrebno je ažuriranje</string>
+  <string name="account_creation_file_too_big">Datoteka je prevelika</string>
+  <string name="account_new_button">Napravite Ring račun</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">Spajanje</string>
+  <string name="account_status_unknown">Nepoznato</string>
+  <!--Create account-->
+  <string name="account_creation_home">Dobrodošli u Ring</string>
+  <string name="account_creation_profile">Napravite vaš profil</string>
+  <!--Devices-->
+  <string name="enter_password">Unesite lozinku</string>
+  <string name="revoke_device_wait_title">Molim pričekajte...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-hr/strings_call.xml b/ring-android/androidtv/src/main/res/values-hr/strings_call.xml
new file mode 100644
index 0000000..b498cad
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hr/strings_call.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Zvoni</string>
+    <string name="call_human_state_connecting">Spajanje</string>
+    <string name="call_human_state_ringing">Zovem</string>
+    <string name="call_human_state_current">Razgovaram</string>
+    <string name="call_human_state_busy">Zauzeto</string>
+    <string name="call_human_state_failure">Neuspjelo</string>
+    <string name="call_human_state_hold">Na čekanje</string>
+    <string name="call_human_state_none">Nema</string>
+    <string name="conference_human_state_hold">Na čekanje</string>
+    <string name="conference_human_state_default">Nema</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-hr/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-hr/strings_content_description.xml
new file mode 100644
index 0000000..5d7db1c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hr/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Brzi poziv</string>
+  <string name="contact_picture_description">Slika kontakta</string>
+  <string name="dial_numeric_pad">Numerička tipkovnica</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-hr/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-hr/strings_preferences.xml
new file mode 100644
index 0000000..9627012
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hr/strings_preferences.xml
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Mreža</string>
+  <string name="pref_category_contacts">Kontakti</string>
+  <string name="pref_category_system">Sustav</string>
+  <string name="pref_category_privacy">Privatnost</string>
+  <string name="pref_mobileData_title">Mobilni podaci</string>
+  <string name="pref_mobileData_summary">Dopustite Ring aplikaciji korištenje 3G/LTE mreže uz Wi-Fi</string>
+  <string name="pref_systemContacts_title">Koristi kontakte sustava</string>
+  <string name="pref_systemContacts_summary">Koristi kontakte sustava za prikaz pojedinosti pozivatelja.</string>
+  <string name="pref_startOnBoot_title">Pokreni Ring s uređajem</string>
+  <string name="pref_startOnBoot_summary">Pokreni Ring u pozadini prilikom pokretanja sustava.</string>
+  <string name="pref_clearHistory_title">Očisti povijest</string>
+  <string name="pref_clearHistory_summary">Očisti povijest svih razgovora. Ova se radnja ne može poništiti.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-hu/strings.xml b/ring-android/androidtv/src/main/res/values-hu/strings.xml
new file mode 100644
index 0000000..3838019
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hu/strings.xml
@@ -0,0 +1,127 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">A Ring egy szabad szoftver, amelynek fejlesztője és támogatója:</string>
+  <string name="copyright_section">Jogvédelem</string>
+  <string name="contribute_section">Hozzájárulás</string>
+  <string name="version_section">Verzió</string>
+  <string name="no_email_app_installed">Nem találtam emailalkalmazást. Telepítsen egyet, hogy jelentést tudjon küldeni nekünk!</string>
+  <string name="email_chooser_title">Levél küldése a következővel…</string>
+  <string name="credits">Készítők</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Nincs hálózati csatlakozás</string>
+  <string name="error_mobile_network_available_but_disabled">Kérem, engedélyezze a mobilhálózat-elérést a beállítások képernyőn!</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Új fiók</string>
+  <string name="ab_action_chat">Szöveges üzenetek</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Navigációs fiók kinyitása</string>
+  <string name="drawer_close">Navigációs fiók bezárása</string>
+  <!--Sections-->
+  <string name="menu_item_home">Főoldal</string>
+  <string name="menu_item_accounts">Fiókok kezelése</string>
+  <string name="menu_item_settings">Beállítások</string>
+  <string name="menu_item_about">A Ringről</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Szám tárcsázása</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Visszajátszás</string>
+  <string name="hist_replay_button_stop">Megállítás</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d beszélgetés</item>
+    <item quantity="other">%d beszélgetés</item>
+  </plurals>
+  <string name="home_transfer_complet">Átirányítás kész.</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Nem találtam partnereket</string>
+  <string name="starred_contacts_title">Kedvencek</string>
+  <string name="searchbar_hint">Név vagy telenfonszám beírása…</string>
+  <string name="choose_number">Válasszon egy számot</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Átirányítás egy másik jelenlévő hívásra:</string>
+  <string name="transfer_no_other_call">Nincs más függő hívás</string>
+  <string name="transfer_type_number">Átirányítás a következő számra:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Bejövő hívás a következőtől: %1$s</string>
+  <string name="notif_incoming_call">Bejövő hívás</string>
+  <string name="notif_outgoing_call_title">Kimenő hívás a következő felé: %1$s</string>
+  <string name="notif_outgoing_call">Kimenő hívás</string>
+  <string name="notif_current_call_title">Jelenlegi hívás a következővel: %1$s</string>
+  <string name="notif_current_call">Jelenlegi hívás</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Ön:</string>
+  <string name="action_call_conference">Konferencia</string>
+  <string name="action_call_hangup">Lerak</string>
+  <string name="ongoing_call">Folyamatban lévő hívás </string>
+  <string name="hist_in_call">Bejövő hívás ennyi ideje: %1$s</string>
+  <string name="hist_out_call">Kimenő hívás ennyi ideje: %1$s</string>
+  <string name="start_error_title">Nem lehet elindítani a Ringet!</string>
+  <string name="start_error_mic_required">A Ring működéséhez szükséges engedélyezni a mikrofont elérését.</string>
+  <string name="action_call_accept">Hívás fogadása</string>
+  <string name="action_call_decline">Elutasítás</string>
+  <string name="ab_action_speakerphone">Hangszóró engedélyezése</string>
+  <string name="ab_action_contact_add">Hozzáadás a partnerek listájához</string>
+  <string name="ab_action_contact_add_question">Hozzáadjuk a partnerek listájához?</string>
+  <string name="ab_action_audio_call">Hanghívás</string>
+  <string name="ab_action_video_call">Videóhívás</string>
+  <string name="share_via">Megosztás a következőn át:</string>
+  <string name="write_a_message">Üzenet írása</string>
+  <string name="scan_qr">QR-kód szkennelése</string>
+  <string name="ab_action_flipcamera">Kamera megfordítása</string>
+  <!--Text messages-->
+  <string name="send_message">Üzenet küldése</string>
+  <string name="message_sending">Üzenet küldése…</string>
+  <string name="time_just_now">Éppen most</string>
+  <string name="permission_read_denied">Az alkalmazás nem kapott engedélyt a tárhelye olvasásához, így nem képes megfelelően működni. Kérem, fontolja meg ennek az engedélynek a bekapcsolását!</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kameraengedély</string>
+  <string name="permission_dialog_camera_message">A videóhívások igénylik a kameraengedély jelenlétét. Kérem, fontolja meg ennek az engedélynek a bekapcsolását!</string>
+  <string name="ringtone_error_title">Hiba</string>
+  <string name="ringtone_error_format_not_supported">Ez a formátum nem támogatott</string>
+  <string name="ringtone_error_size_too_big">Ez a fájl túl nagy. A maximum méret %1$ikB</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">A Ringnek engedélyre van szüksége a névjegyek olvasásához. Kérem, engedélyezze!</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">A Ringnek engedélyre van szüksége a névjegyek olvasásához. Kérem, engedélyezze!</string>
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Napló törlése ?</string>
+  <string name="clear_history_dialog_message">Ez a művelet nem vonható vissza.</string>
+  <string name="clear_history_completed">A napló törölve.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">A beszélgetés törlése.</string>
+  <string name="conversation_action_delete_this_title">A beszélgetés törlése ?</string>
+  <string name="conversation_action_delete_this_message">Ez a művelet nem vonható vissza.</string>
+  <string name="conversation_action_copy_peer_number">Szám másolása</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s a vágólapra másolva</string>
+  <string name="conversation_action_select_peer_number">Válasszon egy számot</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">%1$s hozzáadása?</string>
+  <string name="prompt_new_password">Új jelszó</string>
+  <string name="prompt_new_password_repeat">Új jelszó még egyszer</string>
+  <string name="account_create_title">Egy Ringfiók létrehozása</string>
+  <string name="prompt_new_username">Új felhasználónév megadása</string>
+  <string name="help_password_choose">Válasszon egy erős jelszavat, amelyre emlékezni fog a Ringfiókja védelme érdekében</string>
+  <string name="help_password_enter">Adja meg a Ringfiók jelszavát</string>
+  <string name="help_pin_enter">Adja meg egy másik beállított Ringfiók PIN-jét! Használja a „fiók exportálása a Ringen” funkciót a PIN eléréséhez!</string>
+  <string name="wizard_next">Következő</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Profilom</string>
+  <string name="open_the_gallery">Galéria megnyitása</string>
+  <string name="take_a_photo">Fotó készítése</string>
+  <string name="unknown">Ismeretlen</string>
+  <!--Share fragment-->
+  <string name="share_your_account_information">Elérési adataim megosztása</string>
+  <string name="generic_error_migration">Hiba</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <string name="send_request_button">Elküld</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-hu/strings_account.xml b/ring-android/androidtv/src/main/res/values-hu/strings_account.xml
new file mode 100644
index 0000000..3c00f34
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hu/strings_account.xml
@@ -0,0 +1,45 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Törlés</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Álnév</string>
+  <string name="prompt_hostname">Kiszolgálónév</string>
+  <string name="prompt_username">Felhasználónév</string>
+  <string name="prompt_password">Jelszó</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_message">Ez a művelet nem vonható vissza.</string>
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Fiókok</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Általános</string>
+  <string name="account_hostname_label">Kiszolgálónév</string>
+  <string name="account_username_label">Felhasználónév</string>
+  <string name="account_password_label">Jelszó</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Hang</string>
+  <string name="account_preferences_media_tab">Média</string>
+  <string name="account_ringtone_label">Csengőhang</string>
+  <!--Video Details-->
+  <string name="account_video_label">Videó</string>
+  <string name="account_video_enable">Videó engedélyezése</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Haladó</string>
+  <string name="account_turn_enable_label">TURN használata</string>
+  <string name="account_published_address_label">Nyilvános cím</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Biztonság</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_rtp_port_range">Hang RTP port korlát</string>
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">Hiba</string>
+  <string name="account_device_updated_message">Sikeresen frissítette a Ringfiókját.</string>
+  <string name="account_new_button">Egy Ringfiók létrehozása</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">Ismeretlen</string>
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-hu/strings_call.xml b/ring-android/androidtv/src/main/res/values-hu/strings_call.xml
new file mode 100644
index 0000000..0b6e0cb
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hu/strings_call.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_hold">Tartás</string>
+    <string name="conference_human_state_hold">Tartás</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-hu/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-hu/strings_preferences.xml
new file mode 100644
index 0000000..61842d8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-hu/strings_preferences.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_contacts">Partnerek</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-id/strings.xml b/ring-android/androidtv/src/main/res/values-id/strings.xml
new file mode 100644
index 0000000..c7803f7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-id/strings.xml
@@ -0,0 +1,113 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Umpan balik</string>
+  <string name="report">&lt;u&gt;Kirim email kepada kami&lt;/u&gt;</string>
+  <string name="section_license">Lisensi</string>
+  <string name="sponsor_section">Ring adalah perangkat lunak bebas yang dikembangkan dan didukung oleh</string>
+  <string name="copyright_section">Hak cipta</string>
+  <string name="contribute_section">Berkontribusi</string>
+  <string name="version_section">Versi</string>
+  <string name="no_email_app_installed">Aplikasi email tidak ditemukan, silakan pasang salah satu untuk mengirimkan laporan kepada kami</string>
+  <string name="no_browser_app_installed">Aplikasi peramban tidak ditemukan, silakan pasang salah satu untuk melihat halaman ini</string>
+  <string name="email_chooser_title">Kirim email menggunakan...</string>
+  <string name="website_chooser_title">Lihat halaman menggunakan...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <!--AB menus-->
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <!--ContactList Fragment-->
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <!--Call Fragment-->
+  <string name="start_error_title">Tidak dapat menjalankan Ring !</string>
+  <string name="start_error_mic_required">Ring memerlukan izin mikropon agar dapat bekerja.</string>
+  <string name="action_call_accept">Terima panggilan</string>
+  <string name="action_call_decline">Tolak</string>
+  <string name="ab_action_speakerphone">Aktifkan pengeras suara</string>
+  <string name="ab_action_contact_add">Tambah sebagai kontak</string>
+  <string name="ab_action_contact_add_question">Tambahkan sebagai kontak ?</string>
+  <string name="ab_action_audio_call">Panggilan suara</string>
+  <string name="ab_action_video_call">Panggilan video</string>
+  <string name="ab_action_change_screen_orientation">Ganti orientasi layar</string>
+  <string name="share_via">Bagikan melalui</string>
+  <string name="write_a_message">Tulis pesan</string>
+  <string name="scan_qr">Pindai QR Code</string>
+  <string name="ab_action_flipcamera">Tukar kamera</string>
+  <!--Text messages-->
+  <string name="send_message">Kirim pesan</string>
+  <string name="message_sending">Mengirimkan pesan...</string>
+  <string name="time_just_now">Baru saja</string>
+  <string name="permission_read_denied">Aplikasi ini tidak diizinkan membaca ruang peyimpanan Anda. Sehingga tidak dapat bekerja sebagaimana mestinya.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Izin kamera</string>
+  <string name="permission_dialog_camera_message">Percakapan video memerlukan izin kamera agar dapat bekerja.</string>
+  <string name="ringtone_error_title">Galat</string>
+  <string name="ringtone_error_format_not_supported">Format tidak didukung.</string>
+  <string name="ringtone_error_size_too_big">Ukuran berkas terlalu besar. Ukuran maksimal adalah %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring memerlukan izin \"Baca kontak\" untuk mengaktifkan fitur ini.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring memerlukan izin \"Tulis log panggilan\" untuk mengaktifkan fitur ini.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Pindai QR Code dari akun yang ingin Anda tambahkan.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Hapus riwayat ?</string>
+  <string name="clear_history_dialog_message">Aksi ini tidak dapat dibatalkan.</string>
+  <string name="clear_history_completed">Riwayat telah dihapus.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Hapus percakapan ini</string>
+  <string name="conversation_action_delete_this_title">Hapus percakapan ini ?</string>
+  <string name="conversation_action_delete_this_message">Aksi ini tidak dapat dibatalkan.</string>
+  <string name="conversation_action_copy_peer_number">Salin nomor</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s telah disalin</string>
+  <string name="conversation_action_select_peer_number">Pilih nomor</string>
+  <string name="conversation_action_block_this">Blokir kontak ini</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Tambah %1$s ?</string>
+  <string name="prompt_new_password">Kata sandi baru</string>
+  <string name="prompt_new_password_repeat">Ulangi kata sandi baru</string>
+  <string name="account_create_title">Buat akun Ring</string>
+  <string name="prompt_new_username">Masukkan username baru</string>
+  <string name="help_password_choose">Pilih kata sandi kuat yang akan Anda ingat untuk melindungi akun Ring Anda.</string>
+  <string name="help_password_enter">Masukkan kata sandi akun Ring Anda</string>
+  <string name="help_pin_enter">Masukkan PIN dari akun Ring lainnya. Gunakan fitur \"ekspor akun Ring\" untuk mendapatkan PIN.</string>
+  <string name="wizard_next">Selanjutnya</string>
+  <string name="wizard_back">Kembali</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Profil saya</string>
+  <string name="profile_message_warning">Profil Anda hanya dibagikan kepada kontak Anda</string>
+  <string name="open_the_gallery">Buka galeri</string>
+  <string name="take_a_photo">Ambil foto</string>
+  <string name="profile_name_hint">Masukkan nama Anda (opsional)</string>
+  <string name="unknown">Tidak diketahui</string>
+  <!--Share fragment-->
+  <string name="share_message">Pindai QRCode ini menggunakan pemindai yang tersedia pada aplikasi Ring.</string>
+  <string name="share_message_no_account">Silakan pilih akun untuk dibagikan.</string>
+  <string name="share_your_account_information">Bagikan informasi kontak saya</string>
+  <string name="generic_error_migration">Galat</string>
+  <string name="generic_error_migration_message">Galat terjadi selama proses migrasi</string>
+  <!--Pending contact requests-->
+  <string name="accept">Terima</string>
+  <string name="refuse">Tolak</string>
+  <string name="block">Blokir</string>
+  <string name="contact_request_title">Permintaan kontak</string>
+  <string name="contact_request_msg">Anda memiliki %1$s permintaan kontak</string>
+  <string name="contact_request_account">Untuk %1$s</string>
+  <string name="no_requests">0 permintaan kontak</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Kirim</string>
+  <string name="send_request_title">Kirim permintaan kontak</string>
+  <string name="send_request_msg">Anda harus mengirimkan permintaan kontak agar dapat berkomunikasi dengan pengguna berikut. Selama pengguna tersebut belum menerima permintaan kontak, Anda dapat mengirimkan pesan namun pesan tersebut tidak akan terbaca.</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 kontak diblokir</string>
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-id/strings_account.xml b/ring-android/androidtv/src/main/res/values-id/strings_account.xml
new file mode 100644
index 0000000..737d325
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-id/strings_account.xml
@@ -0,0 +1,23 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <!--Strings related to account creation-->
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_message">Aksi ini tidak dapat dibatalkan.</string>
+  <!--AccountManagementFragment-->
+  <!--Basic Details-->
+  <!--Audio Details-->
+  <!--Video Details-->
+  <!--Advanced Details-->
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">Eror</string>
+  <string name="account_new_button">Buat akun Ring</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">Tidak diketahui</string>
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-id/strings_call.xml b/ring-android/androidtv/src/main/res/values-id/strings_call.xml
new file mode 100644
index 0000000..5016e07
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-id/strings_call.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_current">Bicara</string>
+    <string name="call_human_state_failure">Gagal</string>
+    <string name="call_human_state_hold">Tahan</string>
+    <string name="conference_human_state_hold">Tahan</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-id/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-id/strings_preferences.xml
new file mode 100644
index 0000000..3480a62
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-id/strings_preferences.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_contacts">Kontak</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it-rIT/strings.xml b/ring-android/androidtv/src/main/res/values-it-rIT/strings.xml
new file mode 100644
index 0000000..e451d26
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it-rIT/strings.xml
@@ -0,0 +1,144 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Feedback</string>
+  <string name="report">&lt;u&gt;Mandaci un\'e-mail&lt;/u&gt;</string>
+  <string name="section_license">Licenza</string>
+  <string name="sponsor_section">Ring è un software libero sviluppato e supportato da</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Contribuisci</string>
+  <string name="version_section">Versione</string>
+  <string name="no_email_app_installed">Nessuna applicazione email trovata, installane una per inviarci la tua opinione</string>
+  <string name="no_browser_app_installed">Nessuna applicazione browser trovata, installane una per visualizzare questa pagina</string>
+  <string name="email_chooser_title">Invia email con...</string>
+  <string name="website_chooser_title">Visualizza sito web con...</string>
+  <string name="license">Questo software è fornito \"così com\'è\", senza alcun genere di garanzia. Per ulteriori dettagli, si veda
+&lt;u&gt;GNU General Public License versione 3 o successive&lt;/u&gt;</string>
+  <string name="description">Ring è software libero per la comunicazione universale che rispetta le libertà e la privacy dei suoi utenti.</string>
+  <string name="credits">Crediti</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Assenza di connessione di rete</string>
+  <string name="error_mobile_network_available_but_disabled">Per favore consenti l\'accesso alla rete mobile dalla schermata delle impostazioni</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nuovo account</string>
+  <string name="ab_action_chat">Messaggiare</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Apri box navigazione</string>
+  <string name="drawer_close">Chiudi box navigazione</string>
+  <!--Sections-->
+  <string name="menu_item_home">Home</string>
+  <string name="menu_item_accounts">Gestisci account</string>
+  <string name="menu_item_settings">Impostazioni</string>
+  <string name="menu_item_share">Condividi il mio contatto</string>
+  <string name="menu_item_about">Informazioni su Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Componi un numero</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Replay</string>
+  <string name="hist_replay_button_stop">Stop</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversazione</item>
+    <item quantity="other">%d Conversazioni</item>
+  </plurals>
+  <string name="home_transfer_complet">Trasferimento completato</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Nessun contatto trovato</string>
+  <string name="starred_contacts_title">Preferiti</string>
+  <string name="searchbar_hint">Digita un nome o un numero di telefono</string>
+  <string name="choose_number">Seleziona un numero</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Trasferisci su un\'altra chiamata:</string>
+  <string name="transfer_no_other_call">Nessuna chiamata in attesa</string>
+  <string name="transfer_type_number">Digita il numero al quale trasferire:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Chiamata in arrivo da %1$s</string>
+  <string name="notif_incoming_call">Chiamata in arrivo</string>
+  <string name="notif_outgoing_call_title">Sto chiamando %1$s</string>
+  <string name="notif_outgoing_call">Chiamata in uscita</string>
+  <string name="notif_current_call_title">Chiamata in corso con %1$s</string>
+  <string name="notif_current_call">Chiamata corrente</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Tu:</string>
+  <string name="action_call_attended_transfer">Trasferimenti assistiti</string>
+  <string name="action_call_conference">Conferenza</string>
+  <string name="action_call_hangup">Chiudi</string>
+  <string name="ongoing_call">Chiamata in corso</string>
+  <string name="hist_in_call">Chiamata in arrivo di %1$s</string>
+  <string name="hist_out_call">Chiamata in uscita di %1$s</string>
+  <string name="start_error_title">Non riesco ad avviare Ring !</string>
+  <string name="start_error_mic_required">Ring richiede l\'accesso al microfono per funzionare.</string>
+  <string name="action_call_accept">Rispondi</string>
+  <string name="action_call_decline">Rifiuta</string>
+  <string name="ab_action_speakerphone">Attiva l\'audio</string>
+  <string name="ab_action_contact_add">Aggiungi alla rubrica</string>
+  <string name="ab_action_contact_add_question">Aggiungi alla rubrica?</string>
+  <string name="ab_action_audio_call">Chiamata</string>
+  <string name="ab_action_video_call">Videochiamata</string>
+  <string name="share_via">Condividi con</string>
+  <string name="write_a_message">Scrivi un messaggio</string>
+  <string name="scan_qr">Leggi codice QR</string>
+  <string name="ab_action_flipcamera">Cambia videocamera</string>
+  <!--Text messages-->
+  <string name="send_message">Invia messaggio</string>
+  <string name="message_sending">Sto inviando il messaggio...</string>
+  <string name="time_just_now">Proprio ora</string>
+  <string name="permission_read_denied">La app non può leggere dalla memoria. Quindi non può funzionare correttamente. Se lo desideri, attiva questo permesso.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Permesso videocamera</string>
+  <string name="permission_dialog_camera_message">Le videochiamate hanno bisogna del permesso per accedere alla videocamera. Se lo desideri, attivalo.</string>
+  <string name="ringtone_error_title">Errore</string>
+  <string name="ringtone_error_format_not_supported">Questo formato non è supportato.</string>
+  <string name="ringtone_error_size_too_big">Il file è troppo grande. La dimensione massima è %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring richiede il permesso di \"accesso alla rubrica\" per usare questa funzionalità. Se lo desideri, attivalo.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring richiede il prrmesso di \"scrittura log chiamate\" per usare questa funzionalità. Se lo desideri, attivalo.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Scansiona il codice QR dell\'account che vuoi aggiungere.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Pulisco la cronologia?</string>
+  <string name="clear_history_dialog_message">Questa operazione non può essere annullata.</string>
+  <string name="clear_history_completed">La cronologia è stata cancellata.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Cancella questa conversazione</string>
+  <string name="conversation_action_delete_this_title">Cancellare questa conversazione?</string>
+  <string name="conversation_action_delete_this_message">Questa operazione non può essere annullata.</string>
+  <string name="conversation_action_copy_peer_number">Copia numero</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s copiato negli appunti</string>
+  <string name="conversation_action_select_peer_number">Seleziona un numero</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Aggiungi %1$s ?</string>
+  <string name="prompt_new_password">Nuova password</string>
+  <string name="prompt_new_password_repeat">Ripeti nuova password</string>
+  <string name="account_create_title">Crea un account Ring</string>
+  <string name="prompt_new_username">Inserisci il nuovo nome utente</string>
+  <string name="help_password_choose">Scegli una password robusta che ti dovrai ricordare per proteggere il tuo account Ring</string>
+  <string name="help_password_enter">Inserisci la password del tuo account Ring principale</string>
+  <string name="help_pin_enter">Inserire il PIN da un altro account Ring configurato. Usa la funzione \"esporta account su Ring\" per ottenere il PIN.</string>
+  <string name="wizard_next">Prossimo</string>
+  <string name="wizard_back">Indietro</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Il mio profilo</string>
+  <string name="open_the_gallery">Apri la galleria immagini</string>
+  <string name="take_a_photo">Scatta una foto</string>
+  <string name="unknown">Sconosciuto</string>
+  <!--Share fragment-->
+  <string name="share_message">Leggi questo codice QR con lo scanner integrato dell\'applicazione Ring che vuole comunicare con te.</string>
+  <string name="share_message_no_account">Seleziona un account per la condivisione.</string>
+  <string name="share_your_account_information">Condividi le mie informazioni di contatto</string>
+  <string name="generic_error_migration">Errore</string>
+  <string name="generic_error_migration_message">Si è verificato un errore durante la migrazione</string>
+  <!--Pending contact requests-->
+  <string name="accept">Accetta</string>
+  <string name="refuse">Rifiuto</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Invia</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it-rIT/strings_account.xml b/ring-android/androidtv/src/main/res/values-it-rIT/strings_account.xml
new file mode 100644
index 0000000..8d9f4c2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it-rIT/strings_account.xml
@@ -0,0 +1,176 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Cancella</string>
+  <string name="ic_advanced_menu">Impostazioni avanzate</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Aggiungi account Ring</string>
+  <string name="add_sip_account_title">Aggiungi SIP account</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Hostname</string>
+  <string name="prompt_username">Utente</string>
+  <string name="prompt_password">Password</string>
+  <string name="action_create">Crea account</string>
+  <string name="action_create_short">Salva</string>
+  <string name="error_field_required">Questo dato è obbligatorio</string>
+  <string name="dialog_wait_create">Aggiungi account</string>
+  <string name="dialog_wait_create_details">Aspetta mentre aggiungo il tuo nuovo account...</string>
+  <string name="dialog_wait_update">Aggiorna account</string>
+  <string name="dialog_wait_update_details">Aspetta mentre aggiorno il tuo nuovo account...</string>
+  <string name="dialog_warn_ip2ip_account_title">Creo un account SIP vuoto?</string>
+  <string name="dialog_warn_ip2ip_account_message">Stai creando un account SIP senza un hostname valido.
+Potrai solo fare e ricevere chiamate dirette tramite indirizzo ip.
+Potrai modificare il tuo account successivamente</string>
+  <string name="account_type_ip2ip">Account IP</string>
+  <string name="help_ring">Un accout Ring ti permette di raggiungere le persone in modalità peer to peer tramite una rete completamente distribuita.</string>
+  <string name="help_sip_title">Aggiungi il tuo account SIP</string>
+  <string name="help_sip">Configura un account SIP esistente</string>
+  <string name="create_sip_account">Aggiungi SIP account</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Eliminare l\'account?</string>
+  <string name="account_delete_dialog_message">Questa operazione non può essere annullata.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Nessun account registrato</string>
+  <string name="normal_accounts_titles">Accounts</string>
+  <string name="normal_devices_titles">Dispositivi registrati su questo account Ring</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Generale</string>
+  <string name="account_basic_category">Impostazioni base</string>
+  <string name="account_alias_label">Nome account</string>
+  <string name="account_hostname_label">Hostname</string>
+  <string name="account_bootstrap_label">Avvio</string>
+  <string name="account_username_label">Utente</string>
+  <string name="account_password_label">Password</string>
+  <string name="account_optionnal_category">Impostazioni aggiuntive</string>
+  <string name="account_useragent_label">User Agent</string>
+  <string name="account_autoanswer_label">Risposta automatica</string>
+  <string name="account_upnp_label">Attiva UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Suonerie</string>
+  <string name="account_ringtone_enabled_label">Attiva suonerie</string>
+  <string name="account_ringtone_path_label">Percorso suonerie</string>
+  <string name="account_ringtone_custom_label">Usa suoneria personalizzata</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Attiva Video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avanzato</string>
+  <string name="account_registration_exp_label">Scadenza registrazione</string>
+  <string name="account_local_interface_label">Interfaccia locale</string>
+  <string name="account_local_port_label">Porta locale</string>
+  <string name="account_stun_enable_label">Usa Stun</string>
+  <string name="account_stun_server_label">Server Stun</string>
+  <string name="account_turn_enable_label">Utilizza TURN</string>
+  <string name="account_turn_server_label">Server TURN</string>
+  <string name="account_turn_username_label">Nome utente TURN</string>
+  <string name="account_turn_password_label">Password TURN</string>
+  <string name="account_published_same_as_local_label">Indirizzo pubblico uguale a quello locale</string>
+  <string name="account_published_port_label">Porta Pubblica</string>
+  <string name="account_published_address_label">Indirizzo Pubblico</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Credenziali</string>
+  <string name="account_credentials_edit">Modifica credenziali</string>
+  <string name="account_credentials_add">Aggiungi credenziali</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sicurezza</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Usa trasporto TLS</string>
+  <string name="account_tls_port_label">Porta ricezione TLS</string>
+  <string name="account_tls_certificate_list_label">Autorità di Certificazione</string>
+  <string name="account_tls_certificate_file_label">File del Certificato</string>
+  <string name="account_tls_private_key_file_label">File della Chiave Privata</string>
+  <string name="account_tls_password_label">Password della Chiave Privata</string>
+  <string name="account_tls_method_label">Metodo TLS</string>
+  <string name="account_tls_ciphers_label">Cifratura TLS</string>
+  <string name="account_tls_server_name_label">Nome Server</string>
+  <string name="account_tls_verify_server_label">Verifica Server</string>
+  <string name="account_tls_verify_client_label">Verifica Client</string>
+  <string name="account_tls_negotiation_timeout_sec">Timeout negoziazione (sec)</string>
+  <string name="account_rtp_max_port">Massimo</string>
+  <string name="account_rtp_min_port">Minimo</string>
+  <string name="account_rtp_port_range">Intervallo porte audio RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Ripristina un account</string>
+  <string name="account_restore_message">Inserire la password per decriptare il file.</string>
+  <string name="account_restore_decryption_password">Password per decriptare</string>
+  <string name="account_new_device_password">Inserire la password principale per sbloccare l\'account</string>
+  <string name="restore_dialog_title">Ripristino</string>
+  <string name="restore_backup_wait">Prego attendere...</string>
+  <string name="error_password_char_count">Minimo 6 caratteri</string>
+  <string name="error_passwords_not_equals">Le password non corrispondono</string>
+  <string name="restore_failed_dialog_title">Ripristino non riuscito</string>
+  <string name="restore_failed_dialog_msg">C\'è stato un errore</string>
+  <string name="export_account_wait_title">Prego attendere...</string>
+  <string name="export_account_wait_message">Sto pubblicando le informazioni del nuovo account</string>
+  <string name="account_export_end_decryption_message">Impossibile sbloccare l\'account x la con la password inserita.</string>
+  <string name="account_export_end_network_title">Errore di rete</string>
+  <string name="account_export_end_network_message">Impossibile esportare l\'account sulla rete. Controlla la tua connettività.</string>
+  <string name="account_export_end_error_title">Errore</string>
+  <string name="account_export_end_error_message">Impossibile esportare l\'account. C\'è stato un errore sconosciuto.</string>
+  <string name="account_enter_password">Inserire password</string>
+  <string name="account_share_body">Contattami usando \"%1$s\" sulla piattaforma di comunicazione distribuita Ring: http://ring.cx</string>
+  <string name="account_share_body_with_username">Contattami usando \"%1$s\" oppure il mio nome utente pubblico \"%2$s\" sulla piattaforma di comunicazione distribuita Ring: http://ring.cx</string>
+  <string name="account_contact_me">Contattami su Ring !</string>
+  <string name="update_account">Aggiorna account</string>
+  <string name="account_migration">Il tuo account Ring può essere aggiornato.\nPer favore immetti la tua password. </string>
+  <string name="ring_account">Account Ring</string>
+  <string name="ring_account_identity">Indentità</string>
+  <string name="account_migration_title_dialog">Migrazione account</string>
+  <string name="account_migration_message_dialog">Il tuo account necessita di essere aggiornato. Vuoi andare alla schermata di gestione dell\'account per completare l\'operazione?</string>
+  <string name="account_update_needed">Aggiornamento necessario</string>
+  <string name="account_creation_file_too_big">Il file è troppo grande</string>
+  <string name="account_cannot_read">Impossibile leggere %1$s</string>
+  <string name="account_cannot_be_found_title">Impossibile trovare l\'account</string>
+  <string name="account_cannot_be_found_message">Impossibile trovare l\'account nella rete Ring.\nAssicurati di averlo esportato da un account Ring esistente e di aver fornito le credenziali corrette.</string>
+  <string name="account_sip_cannot_be_registered_message">Puoi continuare con la creazione dell\'account oppure modificare le tue informazioni qui. La modifica sarà comunque possibile più tardi nelle impostazioni dell\'account.</string>
+  <string name="account_no_network_title">Impossibile collegarsi alla rete</string>
+  <string name="account_no_network_message">Impossibile aggiungere un account perchè Ring non riesce a collegarsi alla rete distribuita. Controllare la connettività.</string>
+  <string name="account_device_added_title">Il dispositivo è stato aggiunto</string>
+  <string name="account_device_added_message">Hai impostato correttamente il tuo account Ring su questo dispositivo.</string>
+  <string name="account_device_updated_title">Il dispositivo è stato aggiunto</string>
+  <string name="account_device_updated_message">Hai aggiornato correttamente il tuo account Ring.</string>
+  <string name="account_sip_success_title">Account Sip registrato</string>
+  <string name="account_sip_success_message">Hai registrato il tuo account Sip con successo.</string>
+  <string name="account_sip_register_anyway">Registrati lo stesso</string>
+  <string name="account_link_button">Collega questo dispositivo ad un account</string>
+  <string name="account_import_title">Collega ad un account esistente</string>
+  <string name="account_link_prompt_pin">Inserisci il PIN</string>
+  <string name="account_wizard_title">Benvenuto su</string>
+  <string name="account_new_button">Crea un account Ring</string>
+  <string name="account_link_export_button">Collega un altro dispositivo a questo account</string>
+  <string name="account_link_export_info">Per utilizzare questo account su altri dispositivi, devi prima renderlo visibile su Ring. Questo genererà un codice PIN che dovrai inserire nel nuovo dispositivo per impostare l\'account. Il pin è valido per 10 minuti. \n\nPer favore digita la tua password per cominciare:</string>
+  <string name="account_start_export_button">Genera Pin</string>
+  <string name="account_end_export_button">chiudi</string>
+  <string name="account_end_export_infos">Il tuo Pin è:\n\n%%\n\nPer completare la procedura, devi aprire Ring nel nuovo dispositivo. Crea un nuovo account con \"Collega questo dispositivo con un account\". Il tuo pin è valido per 10 minuti.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Non è possibile registrare questo nome: la password dell\'account è errata</string>
+  <string name="register_name_invalid">Non è possibile registrare il nome: nome non valido.</string>
+  <string name="register_name_already_taken">Non è possibile registrare il nome: nome già registrato.</string>
+  <string name="register_name_network_error">Non è possibile registrare il nome: errore di di rete o del server.</string>
+  <string name="error_username_empty">Inserire un nome utente</string>
+  <string name="no_registered_name_for_account">Nessun nome registrato è stato trovato per questo account</string>
+  <string name="register_name">Nome registrazione</string>
+  <string name="trying_to_register_name">Tentativo di registrazione del nome</string>
+  <string name="registered_username">Nome utente registrato</string>
+  <string name="register_username">Registra un nome utente pubblico (sperimentale)</string>
+  <string name="username_already_taken">Il nome utente è già utilizzato</string>
+  <string name="invalid_username">Nome utente non valido</string>
+  <string name="account_status_connecting">Collegamento</string>
+  <string name="account_status_connection_error">Errore di connessione</string>
+  <string name="account_status_online">In linea</string>
+  <string name="account_status_unknown">Sconosciuto</string>
+  <string name="account_status_offline">Disconnesso</string>
+  <!--Create account-->
+  <string name="account_creation_home">Benvenuto su Ring</string>
+  <string name="account_creation_profile">Crea il tuo profilo</string>
+  <string name="account_creation_ring">Crea il tuo account Ring</string>
+  <string name="account_link_title">Collega il dispositivo</string>
+  <string name="account_sip_cannot_be_registered">Impossibile registrare l\'account</string>
+  <!--Devices-->
+  <string name="enter_password">Inserire password</string>
+  <string name="revoke_device_wait_title">Prego attendere...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it-rIT/strings_call.xml b/ring-android/androidtv/src/main/res/values-it-rIT/strings_call.xml
new file mode 100644
index 0000000..aae5bc8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it-rIT/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Squilla</string>
+    <string name="call_human_state_connecting">Collegamento</string>
+    <string name="call_human_state_ringing">Sta chiamando</string>
+    <string name="call_human_state_current">Parla</string>
+    <string name="call_human_state_hungup">Riaggancia</string>
+    <string name="call_human_state_busy">Occupato</string>
+    <string name="call_human_state_failure">Errore</string>
+    <string name="call_human_state_hold">Pausa</string>
+    <string name="call_human_state_unhold">Riprendi</string>
+    <string name="call_human_state_over">Over</string>
+    <string name="call_human_state_none">Nessuno</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Collegati</string>
+    <string name="conference_human_state_active_detached">Scollegati</string>
+    <string name="conference_human_state_active_attached_rec">Collegati con reg.</string>
+    <string name="conference_human_state_active_detached_rec">Scollegati con reg.</string>
+    <string name="conference_human_state_hold">Pausa</string>
+    <string name="conference_human_state_hold_rec">Pausa reg</string>
+    <string name="conference_human_state_default">Nessuno</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-it-rIT/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-it-rIT/strings_content_description.xml
new file mode 100644
index 0000000..5d52ec7
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it-rIT/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Chiamata Rapida</string>
+  <string name="contact_picture_description">Immagine Contatto</string>
+  <string name="dial_numeric_pad">Tastierino numerico</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it-rIT/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-it-rIT/strings_preferences.xml
new file mode 100644
index 0000000..e6a0f55
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it-rIT/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Rete</string>
+  <string name="pref_category_contacts">Contatti</string>
+  <string name="pref_category_system">Sistema</string>
+  <string name="pref_category_privacy">Privacy</string>
+  <string name="pref_mobileData_title">Dati mobili</string>
+  <string name="pref_mobileData_summary">Consenti Ring su reti 3G/LTE oltre al Wi-Fi</string>
+  <string name="pref_systemContacts_title">Usa la rubrica</string>
+  <string name="pref_systemContacts_summary">Usa i contatti della rubrica per mostrare i dettagli del chiamante</string>
+  <string name="pref_systemDialer_title">Usa Ring per le chiamate</string>
+  <string name="pref_systemDialer_summary">Usa Ring per le chiamate quando possibile.</string>
+  <string name="pref_startOnBoot_title">Esegui Ring all\'avvio</string>
+  <string name="pref_startOnBoot_summary">Esegui Ring in background quando si avvia il sistema.</string>
+  <string name="pref_clearHistory_title">Elimina cronologia</string>
+  <string name="pref_clearHistory_summary">Elimina la cronologia delle conversazioni. Questa operazione non può essere annullata.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it/strings.xml b/ring-android/androidtv/src/main/res/values-it/strings.xml
new file mode 100644
index 0000000..e03028a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it/strings.xml
@@ -0,0 +1,131 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring è un software libero sviluppato e supportato da</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Contribuisci</string>
+  <string name="version_section">Versione</string>
+  <string name="no_email_app_installed">Applicazione email non trovata, installane una per inviarci un rapporto</string>
+  <string name="email_chooser_title">Mandaci un\'email usando...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Connessione di rete assente</string>
+  <string name="error_mobile_network_available_but_disabled">Consenti l\'acceso alla rete cellulare dalla schermata impostazioni</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nuovo profilo</string>
+  <string name="ab_action_chat">Messaggio di testo</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Apri gli strumenti di navigazione</string>
+  <string name="drawer_close">Chiudi gli strumenti di navigazione</string>
+  <!--Sections-->
+  <string name="menu_item_home">Home</string>
+  <string name="menu_item_accounts">Gestisci profili</string>
+  <string name="menu_item_settings">Impostazioni</string>
+  <string name="menu_item_share">Condividi il mio contatto</string>
+  <string name="menu_item_about">Info su Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Chiama un numero</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Ripeti</string>
+  <string name="hist_replay_button_stop">Stop</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversazione</item>
+    <item quantity="other">%d Conversazione</item>
+  </plurals>
+  <string name="home_transfer_complet">Trasferimento completato</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Nessun contatto trovato</string>
+  <string name="starred_contacts_title">Preferiti</string>
+  <string name="searchbar_hint">Digita nome o numero telefonico</string>
+  <string name="choose_number">Scegli un numero</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Trasferisci a altri la chiamata corrente</string>
+  <string name="transfer_no_other_call">Nessuna chiamata in corso</string>
+  <string name="transfer_type_number">Digita il numero a cui traferire</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Chiamata in arrivo da %1$s</string>
+  <string name="notif_incoming_call">Chiamata in arrivo</string>
+  <string name="notif_outgoing_call_title">Chiamata in uscita per %1$s</string>
+  <string name="notif_outgoing_call">Chiamata in uscita</string>
+  <string name="notif_current_call_title">Chiamata in corso con %1$s</string>
+  <string name="notif_current_call">Chiamata attiva</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Tu</string>
+  <string name="action_call_attended_transfer">Rispondere alla chiamata</string>
+  <string name="action_call_conference">Conferenza</string>
+  <string name="action_call_hangup">Riattacca</string>
+  <string name="ongoing_call">Chiamata in corso</string>
+  <string name="hist_in_call">Chiamata in arrivo di %1$s</string>
+  <string name="hist_out_call">Chiamata a %1$s</string>
+  <string name="start_error_title">Impossibile aprire Ring !</string>
+  <string name="start_error_mic_required">Per funzionare Ring richiede l\'accesso al microfono.</string>
+  <string name="action_call_accept">Accetta la chiamata</string>
+  <string name="action_call_decline">Rifiuta</string>
+  <string name="ab_action_speakerphone">Attiva gli altoparlanti</string>
+  <string name="ab_action_contact_add">Aggiungi contatti</string>
+  <string name="ab_action_contact_add_question">Aggiungere contatti ?</string>
+  <string name="ab_action_audio_call">Audiochiamata</string>
+  <string name="ab_action_video_call">Videochiamata</string>
+  <string name="share_via">Condividi via</string>
+  <string name="write_a_message">Scrivi un messaggio</string>
+  <string name="scan_qr">Scansiona QR Code</string>
+  <string name="ab_action_flipcamera">Gira la videocamera</string>
+  <!--Text messages-->
+  <string name="send_message">Invia messaggio</string>
+  <string name="message_sending">Invio messaggio in corso...</string>
+  <string name="time_just_now">Immediatamente</string>
+  <string name="permission_read_denied">L\'app non ha permessi di lettura della tua memoria. Non può funzionare correttamente. Concedile il permesso</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Attivare videocamera</string>
+  <string name="permission_dialog_camera_message">La videochiamata richiede l\'attivazione della videocamera. Concedi il permesso.</string>
+  <string name="ringtone_error_title">Errore</string>
+  <string name="ringtone_error_format_not_supported">Questo formato non è supportato.</string>
+  <string name="ringtone_error_size_too_big">Il file è troppo grande. La dimensione massima è %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring richiede permesso di \"Lettura dei contatti\" per abilitare questa funzione. Concedi il permesso.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring richiede permesso di \"Scrittura sul log delle chiamate\" per abilitare questa funzione. Concedi il permesso.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Scansiona il QR Code del profilo che desideri aggiungere.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Cancellare cronologia ?</string>
+  <string name="clear_history_dialog_message">Questa azione è irreversibilie.</string>
+  <string name="clear_history_completed">La cronologia è stata cancellata</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Cancellare questa conversazione</string>
+  <string name="conversation_action_delete_this_title">Cancellare questa conversazione ?</string>
+  <string name="conversation_action_delete_this_message">Questa azione è irreversibilie</string>
+  <string name="conversation_action_copy_peer_number">Copia il numero</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s copiato negli appunti</string>
+  <string name="conversation_action_select_peer_number">Scegli un numero</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Aggiungi %1$s ?</string>
+  <string name="prompt_new_password">Nuovo password</string>
+  <string name="prompt_new_password_repeat">Ripeti la nuova password</string>
+  <string name="account_create_title">Creare un account Ring</string>
+  <string name="prompt_new_username">Inserisci il nuovo nome utente</string>
+  <string name="help_password_choose">Scegli una password robusta che tu possa ricordare per proteggere il tuo account Ring.</string>
+  <string name="help_password_enter">Inserisci la password del tuo account principale di Ring</string>
+  <string name="help_pin_enter">Inserisci il PIN da un altro account Ring già configurato. Usa l\'opzione \"esporta account su Ring\" per ottenere un PIN.</string>
+  <string name="wizard_next">Seguente</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Il mio profilo</string>
+  <string name="open_the_gallery">Apri la galleria</string>
+  <string name="take_a_photo">Scatta una foto</string>
+  <string name="unknown">Sconosciuto</string>
+  <!--Share fragment-->
+  <string name="share_message">Scansiona questo QRCode con il scanner integrato nell\'applicazione Ring che vuole comunicare con te.</string>
+  <string name="share_your_account_information">Condividi le mie informazioni di contatto</string>
+  <string name="generic_error_migration">Errore</string>
+  <!--Pending contact requests-->
+  <string name="accept">Accettare</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Mandare</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it/strings_account.xml b/ring-android/androidtv/src/main/res/values-it/strings_account.xml
new file mode 100644
index 0000000..f978ed0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it/strings_account.xml
@@ -0,0 +1,104 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Cancella</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Nome Host</string>
+  <string name="prompt_username">Nome utente</string>
+  <string name="prompt_password">Password</string>
+  <string name="action_create_short">Register</string>
+  <string name="error_field_required">Questo campo è richiesto</string>
+  <string name="dialog_wait_create">Aggiunta account </string>
+  <string name="dialog_wait_create_details">Aspettare mentre il nuovo account è aggiunto…</string>
+  <string name="dialog_warn_ip2ip_account_title">Creare un account SIP vuoto?</string>
+  <string name="dialog_warn_ip2ip_account_message">Si sta per creare un account SIP con un nome host non valido.
+Sara solo possibile fare e ricevere chiamate ip dirette.
+Si potra modificare questo account più tardi.</string>
+  <string name="help_ring">Un account Ring permette di raggiungere persone in modo sicuro, in peer to peer attraverso una rete completamente distribuita</string>
+  <string name="help_sip_title">Aggiungere il suo account SIP</string>
+  <string name="help_sip">Importare un account SIP esistente</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Rimuovere l\'account?</string>
+  <string name="account_delete_dialog_message">Questa azione è irreversibilie.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Nessun account registrato</string>
+  <string name="normal_accounts_titles">Accounts</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Generale</string>
+  <string name="account_basic_category">Impostazioni base</string>
+  <string name="account_alias_label">Nome dell\'account</string>
+  <string name="account_hostname_label">Nome Host</string>
+  <string name="account_bootstrap_label">Innesco</string>
+  <string name="account_username_label">Nome utente</string>
+  <string name="account_password_label">Password</string>
+  <string name="account_optionnal_category">Impostazione facoltative</string>
+  <string name="account_useragent_label">User Agent</string>
+  <string name="account_autoanswer_label">Risposta automatica</string>
+  <string name="account_upnp_label">Attivare UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Suonerie</string>
+  <string name="account_ringtone_enabled_label">Attivare le suonerie</string>
+  <string name="account_ringtone_path_label">Percorso suonerie</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Attivare Video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avanzato</string>
+  <string name="account_registration_exp_label">Registrazione scaduta</string>
+  <string name="account_local_interface_label">Interfaccia locale</string>
+  <string name="account_local_port_label">Porto locale</string>
+  <string name="account_stun_enable_label">Usare STUN</string>
+  <string name="account_stun_server_label">Server STUN</string>
+  <string name="account_turn_enable_label">Usare TURN</string>
+  <string name="account_turn_server_label">Server TURN</string>
+  <string name="account_turn_username_label">Nome utente TURN</string>
+  <string name="account_turn_password_label">Password TURN</string>
+  <string name="account_published_same_as_local_label">Identico alle impostazione locali</string>
+  <string name="account_published_port_label">Porto di publicazione</string>
+  <string name="account_published_address_label">Indirizzo di publicazione</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Identificazione</string>
+  <string name="account_credentials_edit">Modificare i dati d\'identificazione</string>
+  <string name="account_credentials_add">Aggiungere dati d\'identificazione</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sicurezza</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Usare il trasporto TLS</string>
+  <string name="account_tls_port_label">Porto di ascolto TLS</string>
+  <string name="account_tls_certificate_list_label">Autorità di certificazione</string>
+  <string name="account_tls_certificate_file_label">File del certificato</string>
+  <string name="account_tls_private_key_file_label">File della chiave privata</string>
+  <string name="account_tls_password_label">Password della chiave privata</string>
+  <string name="account_tls_method_label">Metodo TLS</string>
+  <string name="account_tls_ciphers_label">Cifratura TLS</string>
+  <string name="account_tls_server_name_label">Nome server</string>
+  <string name="account_tls_verify_server_label">Verificare Server</string>
+  <string name="account_tls_verify_client_label">Verificare Client</string>
+  <string name="account_tls_negotiation_timeout_sec">Timeout di negoziazione (secondi)</string>
+  <string name="account_rtp_max_port">Massimo</string>
+  <string name="account_rtp_min_port">Minimo</string>
+  <string name="account_rtp_port_range">Intervallo porti audio RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Digitare la password per decifrare il file.</string>
+  <string name="account_restore_decryption_password">Password per decifrare</string>
+  <string name="restore_backup_wait">Aspettare</string>
+  <string name="error_password_char_count">6 caratteri minimo</string>
+  <string name="error_passwords_not_equals">Le password no corrispondono</string>
+  <string name="restore_failed_dialog_msg">C\'è stato un errore</string>
+  <string name="export_account_wait_title">Aspettare</string>
+  <string name="account_export_end_error_title">Errore</string>
+  <string name="account_device_updated_message">Hai aggiornato con successo il tuo account Ring.</string>
+  <string name="account_wizard_title">Benvenuto a</string>
+  <string name="account_new_button">Creare un account Ring</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">Connessione in corso </string>
+  <string name="account_status_unknown">Sconosciuto</string>
+  <!--Create account-->
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Aspettare</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it/strings_call.xml b/ring-android/androidtv/src/main/res/values-it/strings_call.xml
new file mode 100644
index 0000000..5aee59d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Suonando</string>
+    <string name="call_human_state_connecting">Connessione in corso </string>
+    <string name="call_human_state_ringing">Chiamando</string>
+    <string name="call_human_state_current">Parlando</string>
+    <string name="call_human_state_hungup">Finito</string>
+    <string name="call_human_state_busy">Occupato</string>
+    <string name="call_human_state_failure">Fallito</string>
+    <string name="call_human_state_hold">Pausa</string>
+    <string name="call_human_state_unhold">Riprendere</string>
+    <string name="call_human_state_over">Finito</string>
+    <string name="call_human_state_none">Nessuno</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Attivo e presente</string>
+    <string name="conference_human_state_active_detached">Attivo ma assente</string>
+    <string name="conference_human_state_active_attached_rec">Attivo, presente e registrando</string>
+    <string name="conference_human_state_active_detached_rec">Attivo, assente ma registrando</string>
+    <string name="conference_human_state_hold">Pausa</string>
+    <string name="conference_human_state_hold_rec">Pausa registrazione</string>
+    <string name="conference_human_state_default">Nessuno</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-it/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-it/strings_content_description.xml
new file mode 100644
index 0000000..f172bf0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Chiamata veloce</string>
+  <string name="contact_picture_description">Foto del contatto</string>
+  <string name="dial_numeric_pad">Tastiera numerica</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-it/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-it/strings_preferences.xml
new file mode 100644
index 0000000..96d6b50
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-it/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Rete</string>
+  <string name="pref_category_contacts">Contatti</string>
+  <string name="pref_category_system">Sistema</string>
+  <string name="pref_category_privacy">Privacy</string>
+  <string name="pref_mobileData_title">Traffico dati mobile</string>
+  <string name="pref_mobileData_summary">Attivare Ring su le rete 3G/LTE oltre che in Wi-Fi</string>
+  <string name="pref_systemContacts_title">Usare i contatti del dispositivo</string>
+  <string name="pref_systemContacts_summary">Usare i contatti del dispositivo per mostrare i dettagli di chi chiama. </string>
+  <string name="pref_systemDialer_title">Usare Ring di default per le chiamate</string>
+  <string name="pref_systemDialer_summary">Usare Ring per le chiamate quando possibile.</string>
+  <string name="pref_startOnBoot_title">Eseguire Ring al avvio del sistema</string>
+  <string name="pref_startOnBoot_summary">Eseguire Ring in background quando si avvia il sistema.</string>
+  <string name="pref_clearHistory_title">Svuotare lo storico</string>
+  <string name="pref_clearHistory_summary">Rimuovere lo storico delle conversazione</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ja/strings.xml b/ring-android/androidtv/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000..65765e0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ja/strings.xml
@@ -0,0 +1,159 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">フィードバック</string>
+  <string name="report">&lt;u&gt;私たちにメールを送る&lt;/u&gt;</string>
+  <string name="section_license">ライセンス</string>
+  <string name="sponsor_section">Ring はフリーソフトウェアです。開発およびサポートは</string>
+  <string name="copyright_section">著作権表示</string>
+  <string name="contribute_section">貢献</string>
+  <string name="version_section">バージョン</string>
+  <string name="no_email_app_installed">メールアプリが見つかりませんでした。報告するにはメールアプリをインストールしてください</string>
+  <string name="no_browser_app_installed">Webブラウザーアプリが見つかりませんでした。このページを表示するためにインストールしてください</string>
+  <string name="email_chooser_title">メール送信に使用するアプリ...</string>
+  <string name="website_chooser_title">Webサイトを表示…</string>
+  <string name="license">このソフトウェアは、現状のまま提供され、いかなる種類の保証もありません。 詳細は以下を参照してください。
+&lt;u&gt;GNU General Public License version 3 以降&lt;/u&gt;</string>
+  <string name="credits">クレジット</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">ネットワーク接続がありません</string>
+  <string name="error_mobile_network_available_but_disabled">設定画面で携帯ネットワークへのアクセスを許可してください。</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">新規アカウント</string>
+  <string name="ab_action_chat">テキストメッセージ</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">ナビゲーションドロワーを開く</string>
+  <string name="drawer_close">ナビゲーションドロワーを閉じる</string>
+  <!--Sections-->
+  <string name="menu_item_home">ホーム</string>
+  <string name="menu_item_contact_request">連絡先のリクエスト</string>
+  <string name="menu_item_accounts">アカウント管理</string>
+  <string name="menu_item_settings">設定</string>
+  <string name="menu_item_share">連絡先を共有</string>
+  <string name="menu_item_blacklist">ブロックした連絡先</string>
+  <string name="menu_item_about">Ring について</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">電話番号を入力</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">再生</string>
+  <string name="hist_replay_button_stop">停止</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="other">%d 会話</item>
+  </plurals>
+  <string name="home_transfering">%1$s から %2$s へ転送中</string>
+  <string name="home_transfer_complet">転送完了</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">連作先が見つかりません</string>
+  <string name="starred_contacts_title">お気に入り</string>
+  <string name="searchbar_hint">相手の名前か電話番号を入力してください...</string>
+  <string name="choose_number">番号を選んでください</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">現在の通話を別に転送:</string>
+  <string name="transfer_no_other_call">他に保留中の通話はありません</string>
+  <string name="transfer_type_number">転送先の番号を入力してください:</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">不在着信</string>
+  <string name="notif_missed_outgoing_call">不在発信</string>
+  <string name="notif_incoming_call_title">%1$s から着信</string>
+  <string name="notif_incoming_call">着信</string>
+  <string name="notif_outgoing_call_title">%1$s への発信</string>
+  <string name="notif_outgoing_call">発信</string>
+  <string name="notif_current_call_title">%1$s と現在の通話</string>
+  <string name="notif_current_call">現在の通話</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">あなた:</string>
+  <string name="action_call_attended_transfer">在席転送</string>
+  <string name="action_call_conference">グループ通話</string>
+  <string name="action_call_hangup">通話終了</string>
+  <string name="ongoing_call">通話中</string>
+  <string name="hist_in_call">%1$s の着信</string>
+  <string name="hist_out_call">%1$s の発信</string>
+  <string name="start_error_title">Ring を開始できません !</string>
+  <string name="start_error_mic_required">Ring を使用するには、マイクのアクセス許可が必要です。</string>
+  <string name="action_call_accept">電話を取る</string>
+  <string name="action_call_decline">辞退</string>
+  <string name="ab_action_speakerphone">スピーカーを有効にする</string>
+  <string name="ab_action_contact_add">連絡先に追加</string>
+  <string name="ab_action_contact_add_question">連絡先に追加しますか ?</string>
+  <string name="ab_action_audio_call">音声通話</string>
+  <string name="ab_action_video_call">ビデオ通話</string>
+  <string name="ab_action_change_screen_orientation">画面の向きを変更</string>
+  <string name="share_via">共有...</string>
+  <string name="write_a_message">メッセージを書く</string>
+  <string name="scan_qr">QR コードをスキャン</string>
+  <string name="ab_action_flipcamera">カメラを押す</string>
+  <!--Text messages-->
+  <string name="send_message">メッセージを送信</string>
+  <string name="message_sending">メッセージを送信中…</string>
+  <string name="time_just_now">ちょうど今</string>
+  <string name="permission_read_denied">アプリはストレージの読み取りが許可されていませんでした。 したがって、正しく機能することができません。 このアクセス許可を付与することを検討してください</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">カメラのアクセス許可</string>
+  <string name="permission_dialog_camera_message">ビデオ会話ではカメラが動作するためにアクセス許可が必要です。 有効にすることを検討してください。</string>
+  <string name="ringtone_error_title">エラー</string>
+  <string name="ringtone_error_format_not_supported">この形式はサポートされていません。</string>
+  <string name="ringtone_error_size_too_big">このファイルは大きすぎます。最大サイズは %1$ikB です。</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring は、この機能を有効にするために \"連絡先の読み取り\" アクセス許可が必要です。付与してください。</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring は、この機能を有効にするために \"通話ログの書き込み\" アクセス許可が必要です。付与してください。</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">追加したいアカウントの QR コートをスキャンしてください。</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">履歴をクリアしますか ?</string>
+  <string name="clear_history_dialog_message">この操作は元に戻せません。</string>
+  <string name="clear_history_completed">履歴をクリアしました。</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">この会話を削除</string>
+  <string name="conversation_action_delete_this_title">この会話を削除しますか ?</string>
+  <string name="conversation_action_delete_this_message">この操作は元に戻せません。</string>
+  <string name="conversation_action_copy_peer_number">番号をコピー</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s をクリップボードにコピーしました</string>
+  <string name="conversation_action_select_peer_number">番号を選択</string>
+  <string name="conversation_action_block_this">この連絡先をブロック</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">%1$s を追加しますか ?</string>
+  <string name="prompt_new_password">新しいパスワード</string>
+  <string name="prompt_new_password_repeat">新しいパスワードの繰り返し</string>
+  <string name="account_create_title">Ringアカウントを作成</string>
+  <string name="prompt_new_username">新しいユーザー名を入力してください</string>
+  <string name="help_password_choose">Ring のアカウントを保護するために覚えておく強力なパスワードを選択してください。</string>
+  <string name="help_password_enter">メインの Ring アカウントパスワードを入力してください</string>
+  <string name="help_pin_enter">設定済みの別のRingアカウントからPINを入力してください。 PINを取得するには、\"Ringのアカウントをエクスポート\" 機能を使用します。</string>
+  <string name="wizard_next">次へ</string>
+  <string name="wizard_back">戻る</string>
+  <!--MenuHeaderView-->
+  <string name="profile">マイ プロフィール</string>
+  <string name="profile_message_warning">あなたのプロフィールは連絡先とのみ共有されます</string>
+  <string name="open_the_gallery">ギャラリーを開く</string>
+  <string name="take_a_photo">写真を撮る</string>
+  <string name="profile_name_hint">名前を入力してください (オプション)</string>
+  <string name="unknown">不明</string>
+  <!--Share fragment-->
+  <string name="share_message">あなたと通信したいRingアプリケーションの組み込みスキャナで、このQRコードをスキャンします。</string>
+  <string name="share_message_no_account">共有するアカウントを選択してください。</string>
+  <string name="share_your_account_information">連絡先情報を共有</string>
+  <string name="generic_error_migration">エラー</string>
+  <string name="generic_error_migration_message">移行中にエラーが発生しました。</string>
+  <!--Pending contact requests-->
+  <string name="accept">受け入れ</string>
+  <string name="refuse">拒否</string>
+  <string name="block">ブロック</string>
+  <string name="contact_request_title">保留中の連絡先リクエスト</string>
+  <string name="contact_request_msg">%1$s の保留中のリクエストがあります</string>
+  <string name="contact_request_account">%1$s に</string>
+  <string name="no_requests">0 の連絡先リクエスト</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">送信</string>
+  <string name="send_request_title">連絡先リクエストを送信</string>
+  <string name="send_request_msg">このユーザーと通信するために連絡先のリクエストを送信する必要があります。 連絡先がリクエストを受け入れない限り、メッセージは送信できますが、連絡先はメッセージを読むことはできません。</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 のブロックした連絡先</string>
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ja/strings_account.xml b/ring-android/androidtv/src/main/res/values-ja/strings_account.xml
new file mode 100644
index 0000000..1b3d0d2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ja/strings_account.xml
@@ -0,0 +1,198 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">削除</string>
+  <string name="ic_advanced_menu">詳細設定</string>
+  <string name="ic_blacklist_menu">ブロックした連絡先</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Ringアカウントを追加</string>
+  <string name="add_sip_account_title">SIPアカウントを追加</string>
+  <string name="ring_account_default_name">Ring アカウント %1$s</string>
+  <string name="prompt_alias">別名</string>
+  <string name="prompt_hostname">ホスト名</string>
+  <string name="prompt_username">ユーザー名</string>
+  <string name="prompt_password">パスワード</string>
+  <string name="action_create">アカウント作成</string>
+  <string name="action_create_short">登録</string>
+  <string name="error_field_required">このフィールドは入力必須です</string>
+  <string name="dialog_wait_create">アカウントを追加</string>
+  <string name="dialog_wait_create_details">新しいアカウントを追加しています。しばらくお待ちください...</string>
+  <string name="dialog_wait_update">アカウントの更新</string>
+  <string name="dialog_wait_update_details">アカウントを更新しています。しばらくお待ちください...</string>
+  <string name="dialog_warn_ip2ip_account_title">空のSIPアカウントを作成しますか?</string>
+  <string name="dialog_warn_ip2ip_account_message">正しいホスト名なしのSIPアカウントを作成しようとしています。
+これは、直接のIP呼び出しによる発着信しかできません。
+アカウントを後で編集してください。</string>
+  <string name="account_type_ip2ip">IPアカウント</string>
+  <string name="help_ring">Ringアカウントを使用すると、完全に分散されたネットワークを通じてピアツーピアで安全に人々にアクセスできます。</string>
+  <string name="help_sip_title">SIPアカウントを追加</string>
+  <string name="help_sip">既存のSIPアカウントを設定</string>
+  <string name="create_sip_account">SIPアカウントを追加</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">アカウントを削除しますか?</string>
+  <string name="account_delete_dialog_message">この操作は元に戻せません。</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">アカウントが登録されていません</string>
+  <string name="normal_accounts_titles">アカウント</string>
+  <string name="normal_devices_titles">既知のデバイスがこのRingアカウントにリンクされています</string>
+  <string name="account_device_revoke">デバイスを取り消し</string>
+  <string name="account_device_revocation_success_title">成功</string>
+  <string name="account_device_revocation_success">デバイスを取り消しました!</string>
+  <string name="account_device_revocation_error_title">デバイスを取り消しできません</string>
+  <string name="account_device_revocation_wrong_password">パスワードが間違っています。</string>
+  <string name="account_device_revocation_unknown_device">不明なデバイス。</string>
+  <string name="account_device_revocation_error_unknown">不明なエラー。</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">全般</string>
+  <string name="account_basic_category">基本設定</string>
+  <string name="account_alias_label">アカウント名</string>
+  <string name="account_hostname_label">ホスト名</string>
+  <string name="account_bootstrap_label">ブートストラップ</string>
+  <string name="account_username_label">ユーザー名</string>
+  <string name="account_password_label">パスワード</string>
+  <string name="account_optionnal_category">任意の設定</string>
+  <string name="account_useragent_label">ユーザーエージェント</string>
+  <string name="account_autoanswer_label">自動応答</string>
+  <string name="account_upnp_label">UPnPを有効化</string>
+  <string name="account_proxy_field">プロキシ</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">音声</string>
+  <string name="account_preferences_media_tab">メディア</string>
+  <string name="account_ringtone_label">着信音</string>
+  <string name="account_ringtone_enabled_label">着信音を使用</string>
+  <string name="account_ringtone_path_label">着信音のパス</string>
+  <string name="account_ringtone_custom_label">カスタム着信音を使用</string>
+  <!--Video Details-->
+  <string name="account_video_label">動画</string>
+  <string name="account_video_enable">動画を有効化</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">詳細</string>
+  <string name="account_dht_public_in_calls_label">すべての着信/メッセージを許可</string>
+  <string name="account_registration_exp_label">登録の有効期限切れ</string>
+  <string name="account_local_interface_label">ローカルインターフェイス</string>
+  <string name="account_local_port_label">ローカルポート</string>
+  <string name="account_stun_enable_label">Stunを使用</string>
+  <string name="account_stun_server_label">Stunサーバー</string>
+  <string name="account_turn_enable_label">TURNを使用</string>
+  <string name="account_turn_server_label">TURNサーバー</string>
+  <string name="account_turn_username_label">TURNのユーザー名</string>
+  <string name="account_turn_password_label">TURNのパスワード</string>
+  <string name="account_published_same_as_local_label">ローカルと同じものを発行しました</string>
+  <string name="account_published_port_label">発行されたポート番号</string>
+  <string name="account_published_address_label">発行されたアドレス</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">ログイン情報</string>
+  <string name="account_credentials_edit">ログイン情報を編集</string>
+  <string name="account_credentials_add">ログイン情報を追加</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">セキュリティ</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">TLS Transportを使用</string>
+  <string name="account_tls_port_label">TLSリスナーポート</string>
+  <string name="account_tls_certificate_list_label">認証局</string>
+  <string name="account_tls_certificate_file_label">証明書ファイル</string>
+  <string name="account_tls_private_key_file_label">秘密鍵ファイル</string>
+  <string name="account_tls_password_label">秘密鍵のパスワード</string>
+  <string name="account_tls_method_label">TLS方式</string>
+  <string name="account_tls_ciphers_label">TLS暗号</string>
+  <string name="account_tls_server_name_label">サーバー名</string>
+  <string name="account_tls_verify_server_label">検証サーバー</string>
+  <string name="account_tls_verify_client_label">検証クライアント</string>
+  <string name="account_tls_negotiation_timeout_sec">ネゴシエーションタイムアウト (秒)</string>
+  <string name="account_rtp_max_port">最大</string>
+  <string name="account_rtp_min_port">最小</string>
+  <string name="account_rtp_port_range">音声 RTP ポートの範囲</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">アカウントを復元</string>
+  <string name="account_restore_message">ファイルを復号するためのパスワードを入力してください。</string>
+  <string name="account_restore_decryption_password">復号パスワード</string>
+  <string name="account_new_device_password">アカウントをロック解除するメインパスワードを入力してください</string>
+  <string name="restore_dialog_title">復元中</string>
+  <string name="restore_backup_wait">しばらくお待ちください…</string>
+  <string name="error_password_char_count">6文字以上</string>
+  <string name="error_passwords_not_equals">パスワードが一致しません</string>
+  <string name="restore_failed_dialog_title">復元に失敗しました</string>
+  <string name="restore_failed_dialog_msg">エラーが発生しました</string>
+  <string name="export_account_wait_title">しばらくお待ちください…</string>
+  <string name="export_account_wait_message">新しいアカウント情報を発行しています</string>
+  <string name="account_export_end_decryption_message">提供されたパスワードを使用してアカウントをロック解除できませんでした。</string>
+  <string name="account_export_end_network_title">ネットワークエラー</string>
+  <string name="account_export_end_network_message">ネットワーク上でアカウントをエクスポートできませんでした。 接続を確認してください。</string>
+  <string name="account_export_end_error_title">エラー</string>
+  <string name="account_export_end_error_message">アカウントをエクスポートできませんでした。 不明なエラーが発生しました。</string>
+  <string name="account_enter_password">パスワードを入力してください</string>
+  <string name="account_share_body">Ring分散コミュニケーションプラットフォーム http://ring.cx で \'%1$s\' を使用して私に連絡してください</string>
+  <string name="account_share_body_with_username">Ring分散コミュニケーションプラットフォーム http://ring.cx で \'%1$s\' または、私の公開ユーザー名 \'%2$s\' を使用して私に連絡してください</string>
+  <string name="account_contact_me">Ring で私にご連絡ください !</string>
+  <string name="update_account">アカウントの更新</string>
+  <string name="account_migration">Ringアカウントを更新することができます。\nパスワードを入力してください。</string>
+  <string name="ring_account">Ringアカウント</string>
+  <string name="ring_account_identity">ID</string>
+  <string name="account_migration_title_dialog">アカウントの移行</string>
+  <string name="account_migration_message_dialog">アカウントを更新する必要があります。 アカウント管理画面に移動して、この操作を実行しますか?</string>
+  <string name="account_update_needed">更新が必要です</string>
+  <string name="account_creation_file_too_big">ファイルが大きすぎます</string>
+  <string name="account_cannot_read">%1$s を読み込みできません</string>
+  <string name="account_cannot_be_found_title">アカウントが見つかりません</string>
+  <string name="account_cannot_be_found_message">Ringネットワーク上にアカウントが見つかりませんでした。\n既存のデバイスからRing上にエクスポートされていることと、提供された資格情報が正しいことを確認してください。</string>
+  <string name="account_sip_cannot_be_registered_message">アカウント作成プロセスを続行するか、ここで情報を編集することができます。 アカウント設定で、後で編集することも可能です。</string>
+  <string name="account_no_network_title">ネットワークに接続できません</string>
+  <string name="account_no_network_message">Ringが分散ネットワークに接続できないため、アカウントを追加できませんでした。 デバイスの接続を確認してください。</string>
+  <string name="account_device_added_title">アカウントデバイスが追加されました</string>
+  <string name="account_device_added_message">このデバイスでRingアカウントを設定しました。</string>
+  <string name="account_device_updated_title">アカウントデバイスを更新しました</string>
+  <string name="account_device_updated_message">Ringアカウントを正常に更新しました。</string>
+  <string name="account_cannot_be_updated_message">アカウントのデバイスを更新できませんでした。パスワードを確認してください。</string>
+  <string name="account_sip_success_title">SIP アカウントを登録しました</string>
+  <string name="account_sip_success_message">SIPアカウントを正常に登録しました。</string>
+  <string name="account_sip_register_anyway">とにかく登録する</string>
+  <string name="account_link_button">このデバイスをアカウントへリンク</string>
+  <string name="account_import_title">既存のアカウントにリンク</string>
+  <string name="account_link_prompt_pin">PINを入力してください</string>
+  <string name="account_wizard_title">ようこそ</string>
+  <string name="account_new_button">Ringアカウントを作成</string>
+  <string name="account_link_export_button">別のデバイスをこのアカウントへリンク</string>
+  <string name="account_link_export_info">他のデバイスでこのアカウントを使用するには、まずRing上に公開する必要があります。 これにより、アカウントを設定するために新しいデバイスに入力する必要があるPINコードが生成されます。 PINは10分間有効です。 \n\n開始するには、パスワードを入力してください:</string>
+  <string name="account_start_export_button">PINを生成</string>
+  <string name="account_end_export_button">閉じる</string>
+  <string name="account_end_export_infos">あなたのPINは:\n\n%%\n\nプロセスを完了するには、新しいデバイスでRingを開く必要があります。 「このデバイスをアカウントにリンク」で、新しいアカウントを作成します。 あなたのPINは10分間有効です。</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">名前を登録できません: アカウントのパスワードが間違っています。</string>
+  <string name="register_name_invalid">名前を登録できません: 無効な名前です。</string>
+  <string name="register_name_already_taken">名前を登録できません: 名前はすでに取得されています。</string>
+  <string name="register_name_network_error">名前を登録できません: ネットワークまたはサーバーエラー。</string>
+  <string name="error_username_empty">ユーザー名を入力してください</string>
+  <string name="no_registered_name_for_account">このアカウントの登録名が見つかりません</string>
+  <string name="register_name">登録名</string>
+  <string name="trying_to_register_name">名前を登録しようとしています</string>
+  <string name="registered_username">登録された名前</string>
+  <string name="register_username">公開ユーザー名を登録 (実験的)</string>
+  <string name="username_already_taken">名前はすでに取得されています</string>
+  <string name="invalid_username">無効なユーザー名</string>
+  <string name="looking_for_username_availability">利用可能なユーザー名を検索中…</string>
+  <string name="account_status_connecting">接続中</string>
+  <string name="account_status_connection_error">接続エラー</string>
+  <string name="account_status_online">オンライン</string>
+  <string name="account_status_unknown">不明</string>
+  <string name="account_status_offline">オフライン</string>
+  <!--Create account-->
+  <string name="account_creation_home">Ring へようこそ</string>
+  <string name="account_creation_profile">プロフィールを作成</string>
+  <string name="account_creation_ring">Ringアカウントを作成</string>
+  <string name="account_link_title">このデバイスをリンク</string>
+  <string name="account_sip_cannot_be_registered">アカウントを登録できません</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">確認のパスワードを入力</string>
+  <string name="enter_password">パスワードを入力してください</string>
+  <string name="revoke_device_title">デバイスを取り消し</string>
+  <string name="revoke_device_message">%1$s を取り消してもよろしいですか?</string>
+  <string name="revoke_device_wait_title">しばらくお待ちください…</string>
+  <string name="revoke_device_wait_message">デバイスを取り消し中</string>
+  <string name="rename_device_title">このデバイスの名前を変更</string>
+  <string name="rename_device_message">Ring アカウントでこのデバイスを識別する新しい名前を選択してください</string>
+  <string name="rename_device_button">デバイスの名前を変更</string>
+  <string name="account_rename_device_hint">新しいデバイス名を選択</string>
+  <string name="account_device_name_empty">デバイス名は空にできません</string>
+  <string name="account_device_this_indicator">このデバイス</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ja/strings_call.xml b/ring-android/androidtv/src/main/res/values-ja/strings_call.xml
new file mode 100644
index 0000000..6d9a48f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ja/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">着信中</string>
+    <string name="call_human_state_connecting">接続中</string>
+    <string name="call_human_state_ringing">発信中</string>
+    <string name="call_human_state_current">通話中</string>
+    <string name="call_human_state_hungup">通話終了</string>
+    <string name="call_human_state_busy">話中</string>
+    <string name="call_human_state_failure">失敗しました</string>
+    <string name="call_human_state_hold">保留</string>
+    <string name="call_human_state_unhold">保留解除</string>
+    <string name="call_human_state_over">通話終了</string>
+    <string name="call_human_state_none">なし</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">アクティブ参加</string>
+    <string name="conference_human_state_active_detached">アクティブ退出</string>
+    <string name="conference_human_state_active_attached_rec">アクティブ参加 rec</string>
+    <string name="conference_human_state_active_detached_rec">アクティブ退出 rec</string>
+    <string name="conference_human_state_hold">保留</string>
+    <string name="conference_human_state_hold_rec">保留 rec</string>
+    <string name="conference_human_state_default">なし</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-ja/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-ja/strings_content_description.xml
new file mode 100644
index 0000000..dc000f8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ja/strings_content_description.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">クイック通話</string>
+  <string name="contact_picture_description">連絡先の写真</string>
+  <string name="dial_numeric_pad">数字ダイヤルパッド</string>
+  <string name="contact_unblock">ブロック解除</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ja/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-ja/strings_preferences.xml
new file mode 100644
index 0000000..b24894d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ja/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">ネットワーク</string>
+  <string name="pref_category_contacts">連絡先</string>
+  <string name="pref_category_system">システム</string>
+  <string name="pref_category_privacy">プライバシー</string>
+  <string name="pref_mobileData_title">モバイル通信</string>
+  <string name="pref_mobileData_summary">Wi-Fiに加えて3G/LTEネットワークでRingを許可します</string>
+  <string name="pref_systemContacts_title">システムの連絡先を使用する</string>
+  <string name="pref_systemContacts_summary">システムの連絡先を使用して通話先の詳細を表示します。</string>
+  <string name="pref_systemDialer_title">Ringを使用してシステムの通話を行う</string>
+  <string name="pref_systemDialer_summary">可能であれば、Ringを使用してシステムの通話を行います。</string>
+  <string name="pref_startOnBoot_title">起動時にRingを開始する</string>
+  <string name="pref_startOnBoot_summary">システムの起動時にバックグラウンドでRingを実行します。</string>
+  <string name="pref_clearHistory_title">履歴をクリア</string>
+  <string name="pref_clearHistory_summary">会話の履歴をすべてクリアします。 この操作を元に戻すことはできません。</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-land/dimens.xml b/ring-android/androidtv/src/main/res/values-land/dimens.xml
new file mode 100644
index 0000000..e323d34
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-land/dimens.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+                                                                    
+Author: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
+                                                                    
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or   
+(at your option) any later version.
+                                                                    
+This program is distributed in the hope that it will be useful,     
+but WITHOUT ANY WARRANTY; without even the implied warranty of      
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       
+GNU General Public License for more details.                        
+                                                                    
+You should have received a copy of the GNU General Public License   
+along with this program; if not, write to the Free Software         
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
+-->
+<resources>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-lt/strings.xml b/ring-android/androidtv/src/main/res/values-lt/strings.xml
new file mode 100644
index 0000000..782f1c2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-lt/strings.xml
@@ -0,0 +1,122 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="section_license">Licencija</string>
+  <string name="sponsor_section">Ring yra laisva programinė įranga, kurią kuria ir palaiko</string>
+  <string name="copyright_section">Autorių Teisės</string>
+  <string name="contribute_section">Talkinti</string>
+  <string name="version_section">Versija</string>
+  <string name="no_email_app_installed">Nerasta jokios el. pašto programėlės, įdiekite kurią nors, kad išsiųstumėte mums pranešimą</string>
+  <string name="no_browser_app_installed">Nerasta jokios saityno naršyklės programėlės, įdiekite kurią nors, kad peržiūrėtumėte šį puslapį</string>
+  <string name="email_chooser_title">Siųsti paštą, naudojant...</string>
+  <string name="website_chooser_title">Rodyti svetainę, naudojant...</string>
+  <string name="description">Ring yra visuotiniam susisiekimui skirta laisva programinė įranga, kuri gerbia savo naudotojų laisves ir privatumą.</string>
+  <string name="credits">Padėkos</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Nėra tinklo ryšio</string>
+  <string name="error_mobile_network_available_but_disabled">Prašome nustatymų ekrane suteikti prieigą prie korinio tinklo.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nauja paskyra</string>
+  <string name="ab_action_chat">Tekstinis susirašinėjimas</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Atidaryti naršymo stalčių</string>
+  <string name="drawer_close">Uždaryti naršymo stalčių</string>
+  <!--Sections-->
+  <string name="menu_item_home">Pradžia</string>
+  <string name="menu_item_accounts">Tvarkyti paskyras</string>
+  <string name="menu_item_settings">Nustatymai</string>
+  <string name="menu_item_share">Bendrinti mano kontaktus</string>
+  <string name="menu_item_blacklist">Užblokuoti kontaktai</string>
+  <string name="menu_item_about">Apie Ring</string>
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <string name="hist_replay_button_stop">Stabdyti</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d pokalbis</item>
+    <item quantity="few">%d pokalbiai</item>
+    <item quantity="other">%d pokalbių</item>
+  </plurals>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Kontaktų nerasta</string>
+  <string name="searchbar_hint">Įrašykite vardą ar telefono numerį...</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Gaunamasis skambutis nuo %1$s</string>
+  <string name="notif_incoming_call">Gaunamasis skambutis</string>
+  <string name="notif_outgoing_call_title">Išsiunčiamasis skambutis naudotojui %1$s</string>
+  <string name="notif_outgoing_call">Išsiunčiamasis skambutis</string>
+  <string name="notif_current_call_title">Esamas skambutis su %1$s</string>
+  <string name="notif_current_call">Esamas skambutis</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Jūs:</string>
+  <string name="action_call_hangup">Padėti ragelį</string>
+  <string name="ongoing_call">Esamas skambutis</string>
+  <string name="hist_in_call">%1$s gaunamasis skambutis</string>
+  <string name="hist_out_call">%1$s išsiunčiamasis skambutis</string>
+  <string name="start_error_title">Nepavyksta paleisti Ring !</string>
+  <string name="start_error_mic_required">Ring darbui, reikalingas leidimas naudoti mikrofoną.</string>
+  <string name="action_call_decline">Atmesti</string>
+  <string name="ab_action_speakerphone">Įjungti garsiakalbį</string>
+  <string name="ab_action_contact_add">Pridėti prie kontaktų</string>
+  <string name="ab_action_contact_add_question">Pridėti prie kontaktų ?</string>
+  <string name="ab_action_audio_call">Garso skambutis</string>
+  <string name="ab_action_video_call">Vaizdo skambutis</string>
+  <string name="share_via">Dalintis per</string>
+  <string name="write_a_message">Rašykite žinutę</string>
+  <string name="scan_qr">Skenuoti QR kodą</string>
+  <string name="ab_action_flipcamera">Apversti kamerą</string>
+  <!--Text messages-->
+  <string name="send_message">Siųsti žinutę</string>
+  <string name="message_sending">Siunčiama žinutė...</string>
+  <string name="time_just_now">Ką tik</string>
+  <!--MediaPreferenceFragment-->
+  <string name="ringtone_error_title">Klaida</string>
+  <string name="ringtone_error_format_not_supported">Šis formatas yra nepalaikomas.</string>
+  <string name="ringtone_error_size_too_big">Šis failas yra per didelis. Didžiausias dydis yra %1$ikB.</string>
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Nuskenuokite paskyros, kurią norite pridėti, QR kodą.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Išvalyti istoriją ?</string>
+  <string name="clear_history_dialog_message">Šio veiksmo negalima bus atšaukti.</string>
+  <string name="clear_history_completed">Istorija išvalyta.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Ištrinti šį pokalbį</string>
+  <string name="conversation_action_delete_this_title">Ištrinti šį pokalbį ?</string>
+  <string name="conversation_action_delete_this_message">Šio veiksmo negalima bus atšaukti.</string>
+  <string name="conversation_action_copy_peer_number">Kopijuoti numerį</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s nukopijuota į iškarpinę</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Pridėti %1$s ?</string>
+  <string name="prompt_new_password">Naujas slaptažodis</string>
+  <string name="prompt_new_password_repeat">Pakartokite naują slaptažodį</string>
+  <string name="account_create_title">Sukurti Ring paskyrą</string>
+  <string name="prompt_new_username">Įveskite naują naudotojo vardą</string>
+  <string name="help_password_choose">Pasirinkite stiprų slaptažodį, kurį prisiminsite, kad apsaugotumėte savo Ring paskyrą.</string>
+  <string name="help_password_enter">Įveskite savo pagrindinės Ring paskyros slaptažodį</string>
+  <string name="wizard_next">Kitas</string>
+  <string name="wizard_back">Atgal</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mano profilis</string>
+  <string name="open_the_gallery">Atverti galeriją</string>
+  <string name="take_a_photo">Padaryti nuotrauką</string>
+  <string name="unknown">Nežinomas</string>
+  <!--Share fragment-->
+  <string name="share_message">Nuskenuokite šį QR kodą įtaisytu Ring programos, norinčios su jumis susisiekti, skeneriu.</string>
+  <string name="share_your_account_information">Bendrinti mano kontaktinę informaciją</string>
+  <string name="generic_error_migration">Klaida</string>
+  <!--Pending contact requests-->
+  <string name="accept">Priimti</string>
+  <string name="refuse">Atmesti</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Siųsti</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-lt/strings_account.xml b/ring-android/androidtv/src/main/res/values-lt/strings_account.xml
new file mode 100644
index 0000000..6e727db
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-lt/strings_account.xml
@@ -0,0 +1,161 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Ištrinti</string>
+  <string name="ic_advanced_menu">Išplėstiniai nustatymai</string>
+  <string name="ic_blacklist_menu">Užblokuoti kontaktai</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Pridėti Ring paskyrą</string>
+  <string name="add_sip_account_title">Pridėti SIP paskyrą</string>
+  <string name="ring_account_default_name">Ring paskyra %1$s</string>
+  <string name="prompt_alias">Slapyvardis</string>
+  <string name="prompt_hostname">Kompiuterio vardas</string>
+  <string name="prompt_username">Naudotojo vardas</string>
+  <string name="prompt_password">Slaptažodis</string>
+  <string name="action_create">Sukurti paskyrą</string>
+  <string name="action_create_short">Registruoti</string>
+  <string name="error_field_required">Šis laukas yra būtinas</string>
+  <string name="dialog_wait_create">Pridedama paskyra</string>
+  <string name="dialog_wait_create_details">Prašome palaukti, kol jūsų nauja paskyra yra pridedama</string>
+  <string name="dialog_wait_update">Atnaujinama paskyra</string>
+  <string name="dialog_wait_update_details">Prašome palaukti, kol jūsų naujoji paskyra yra atnaujinama...</string>
+  <string name="dialog_warn_ip2ip_account_title">Sukurti tuščią SIP paskyrą ?</string>
+  <string name="dialog_warn_ip2ip_account_message">Jūs ruošiatės sukurti SIP paskyrą, nenurodę teisingo kompiuterio vardo.
+Jūs galėsite atlikti ir priimti tik tiesioginius ip skambučius. 
+Vėliau, galėsite pataisyti savo paskyros informaciją</string>
+  <string name="account_type_ip2ip">IP paskyra</string>
+  <string name="help_sip_title">Pridėti savo SIP paskyrą</string>
+  <string name="help_sip">Konfigūruokite esamą SIP paskyrą.</string>
+  <string name="create_sip_account">Pridėti SIP paskyrą</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Ištrinti paskyrą ?</string>
+  <string name="account_delete_dialog_message">Šio veiksmo negalima bus atšaukti.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Nėra užregistruotų paskyrų</string>
+  <string name="normal_accounts_titles">Paskyros</string>
+  <string name="normal_devices_titles">Žinomi, su šia Ring paskyra susieti, įrenginiai</string>
+  <string name="account_device_revocation_success_title">Pavyko</string>
+  <string name="account_device_revocation_wrong_password">Neteisingas slaptažodis.</string>
+  <string name="account_device_revocation_unknown_device">Nežinomas įrenginys.</string>
+  <string name="account_device_revocation_error_unknown">Nežinoma klaida.</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Bendra</string>
+  <string name="account_basic_category">Pagrindiniai nustatymai</string>
+  <string name="account_alias_label">Paskyros pavadinimas</string>
+  <string name="account_hostname_label">Kompiuterio vardas</string>
+  <string name="account_bootstrap_label">Pradinė įkeltis</string>
+  <string name="account_username_label">Naudotojo vardas</string>
+  <string name="account_password_label">Slaptažodis</string>
+  <string name="account_optionnal_category">Pasirinktini nustatymai</string>
+  <string name="account_useragent_label">Naudotojo agentas</string>
+  <string name="account_autoanswer_label">Automatinis atsiliepimas</string>
+  <string name="account_upnp_label">Įjungti UPnP</string>
+  <string name="account_proxy_field">Įgaliotasis serveris</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Garsas</string>
+  <string name="account_preferences_media_tab">Medija</string>
+  <string name="account_ringtone_label">Skambučio melodijos</string>
+  <string name="account_ringtone_enabled_label">Aktyvuoti skambučių melodijas</string>
+  <string name="account_ringtone_path_label">Skambučio melodijos kelias</string>
+  <string name="account_ringtone_custom_label">Naudoti tinkintą skambučio melodiją</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vaizdas</string>
+  <string name="account_video_enable">Įjungti vaizdą</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Išplėstiniai</string>
+  <string name="account_dht_public_in_calls_label">Leisti visus skambučius/žinutes</string>
+  <string name="account_registration_exp_label">Registracijos galiojimo laikas</string>
+  <string name="account_local_interface_label">Vietinė sąsaja</string>
+  <string name="account_local_port_label">Vietinis prievadas</string>
+  <string name="account_stun_enable_label">Naudoti Stun</string>
+  <string name="account_stun_server_label">Stun serveris</string>
+  <string name="account_turn_enable_label">Naudoti TURN</string>
+  <string name="account_turn_server_label">TURN serveris</string>
+  <string name="account_turn_username_label">TURN naudotojo vardas</string>
+  <string name="account_turn_password_label">TURN slaptažodis</string>
+  <string name="account_published_same_as_local_label">Paskelbtas toks pats kaip vietinis</string>
+  <string name="account_published_port_label">Paskelbtas prievadas</string>
+  <string name="account_published_address_label">Paskelbtas adresas</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Prisijungimo duomenys</string>
+  <string name="account_credentials_edit">Taisyti prisijungimo duomenis</string>
+  <string name="account_credentials_add">Pridėti prisijungimo duomenis</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Saugumas</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Naudoti TLS perdavimą</string>
+  <string name="account_tls_port_label">TLS gavėjo prievadas</string>
+  <string name="account_tls_certificate_list_label">Liudijimų įstaiga</string>
+  <string name="account_tls_certificate_file_label">Liudijimo failas</string>
+  <string name="account_tls_private_key_file_label">Privačiojo rakto failas</string>
+  <string name="account_tls_password_label">Privačiojo rakto slaptažodis</string>
+  <string name="account_tls_method_label">TLS metodas</string>
+  <string name="account_tls_ciphers_label">TLS šifrai</string>
+  <string name="account_tls_server_name_label">Serverio pavadinimas</string>
+  <string name="account_tls_verify_server_label">Tikrinti serverį</string>
+  <string name="account_tls_verify_client_label">Tikrinti klientą</string>
+  <string name="account_tls_negotiation_timeout_sec">Derėjimuisi skirtas laikas (sek.)</string>
+  <string name="account_rtp_max_port">Didžiausias</string>
+  <string name="account_rtp_min_port">Mažiausias</string>
+  <string name="account_rtp_port_range">Garso RTP prievadų rėžis</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Atkurti paskyrą</string>
+  <string name="account_restore_message">Įrašykite slaptažodį, kad iššifruotumėte failą.</string>
+  <string name="account_restore_decryption_password">Iššifravimo slaptažodis</string>
+  <string name="account_new_device_password">Norėdami atrakinti paskyrą, įveskite pagrindinį slaptažodį</string>
+  <string name="restore_dialog_title">Atkuriama</string>
+  <string name="restore_backup_wait">Prašome palaukti...</string>
+  <string name="error_password_char_count">Mažiausiai 6 simboliai</string>
+  <string name="error_passwords_not_equals">Slaptažodžiai nesutampa</string>
+  <string name="restore_failed_dialog_title">Atkūrimas nepavyko</string>
+  <string name="restore_failed_dialog_msg">Įvyko klaida</string>
+  <string name="export_account_wait_title">Prašome palaukti...</string>
+  <string name="export_account_wait_message">Skelbiama naujos paskyros informacija</string>
+  <string name="account_export_end_decryption_message">Naudojant pateiktą slaptažodį, nepavyko atrakinti jūsų paskyros.</string>
+  <string name="account_export_end_network_title">Tinklo klaida</string>
+  <string name="account_export_end_error_title">Klaida</string>
+  <string name="account_export_end_error_message">Nepavyko eksportuoti paskyros. Įvyko nežinoma klaida.</string>
+  <string name="account_contact_me">Susisiekite su manimi per Ring !</string>
+  <string name="update_account">Atnaujinti paskyrą</string>
+  <string name="account_migration">Jūsų Ring paskyra gali būti atnaujinta.\nPrašome įvesti savo slaptažodį.</string>
+  <string name="ring_account">Ring paskyra</string>
+  <string name="ring_account_identity">Tapatybė</string>
+  <string name="account_migration_title_dialog">Paskyros perkėlimas</string>
+  <string name="account_update_needed">Reikalingas atnaujinimas</string>
+  <string name="account_creation_file_too_big">Failas per didelis</string>
+  <string name="account_cannot_read">Nepavyksta perskaityti %1$s</string>
+  <string name="account_cannot_be_found_title">Nepavyksta rasti paskyros</string>
+  <string name="account_no_network_title">Nepavyksta prisijungti prie tinklo</string>
+  <string name="account_device_added_title">Paskyros įrenginys pridėtas</string>
+  <string name="account_device_added_message">Jūs sėkmingai nusistatėte savo Ring paskyrą šiame įrenginyje.</string>
+  <string name="account_device_updated_title">Paskyros įrenginys atnaujintas</string>
+  <string name="account_device_updated_message">Jūs sėkmingai atnaujinote savo Ring paskyrą.</string>
+  <string name="account_link_button">Susieti šį įrenginį su paskyra</string>
+  <string name="account_import_title">Susieti su esama paskyra</string>
+  <string name="account_link_prompt_pin">Įveskite PIN</string>
+  <string name="account_wizard_title">Sveiki atvykę į </string>
+  <string name="account_new_button">Sukurti Ring paskyrą</string>
+  <string name="account_link_export_button">Susieti kitą įrenginį su šia paskyra</string>
+  <string name="account_end_export_button">užverti</string>
+  <!--Name registration-->
+  <string name="register_name_already_taken">Nepavyksta užregistruoti vardo: vardas jau užimtas.</string>
+  <string name="no_registered_name_for_account">Šiai paskyrai nerasta jokio registruoto vardo</string>
+  <string name="registered_username">Registruotas naudotojo vardas</string>
+  <string name="register_username">Registruoti viešąjį naudotojo vardą (eksperimentinis)</string>
+  <string name="username_already_taken">Naudotojo vardas jau užimtas</string>
+  <string name="invalid_username">Neteisingas naudotojo vardas</string>
+  <string name="looking_for_username_availability">Tikrinamas naudotojo vardo prieinamumas...</string>
+  <string name="account_status_connecting">Sujungiama</string>
+  <string name="account_status_connection_error">Ryšio klaida</string>
+  <string name="account_status_unknown">Nežinomas</string>
+  <!--Create account-->
+  <string name="account_creation_home">Sveiki atvykę į Ring</string>
+  <string name="account_creation_profile">Susikurkite savo profilį</string>
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Prašome palaukti...</string>
+  <string name="rename_device_title">Pervadinti šį įrenginį</string>
+  <string name="rename_device_button">Pervadinti įrenginį</string>
+  <string name="account_device_name_empty">Įrenginio pavadinimas negali būti tuščias</string>
+  <string name="account_device_this_indicator">šis įrenginys</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-lt/strings_call.xml b/ring-android/androidtv/src/main/res/values-lt/strings_call.xml
new file mode 100644
index 0000000..4362d8a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-lt/strings_call.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Skambina</string>
+    <string name="call_human_state_connecting">Sujungiama</string>
+    <string name="call_human_state_ringing">Skambinama</string>
+    <string name="call_human_state_current">Kalbama</string>
+    <string name="call_human_state_hungup">Baigta</string>
+    <string name="call_human_state_busy">Užimta</string>
+    <string name="call_human_state_failure">Nepavyko</string>
+    <string name="call_human_state_hold">Užlaikyta</string>
+    <string name="call_human_state_over">Baigta</string>
+    <string name="conference_human_state_hold">Užlaikyta</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-lt/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-lt/strings_content_description.xml
new file mode 100644
index 0000000..22c01e8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-lt/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Greitasis skambutis</string>
+  <string name="contact_picture_description">Kontakto paveikslas</string>
+  <string name="dial_numeric_pad">Skaitmeninė klaviatūra</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-lt/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-lt/strings_preferences.xml
new file mode 100644
index 0000000..9b6801e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-lt/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Tinklas</string>
+  <string name="pref_category_contacts">Kontaktai</string>
+  <string name="pref_category_system">Sistema</string>
+  <string name="pref_category_privacy">Privatumas</string>
+  <string name="pref_mobileData_title">Mobilūs duomenys</string>
+  <string name="pref_mobileData_summary">Leisti Ring 3G/LTE tinkluose, papildomai prie belaidžio tinklo</string>
+  <string name="pref_systemContacts_title">Naudoti sistemos kontaktus</string>
+  <string name="pref_systemContacts_summary">Naudoti sistemos kontaktus, kad būtų rodoma skambinančio asmens informacija.</string>
+  <string name="pref_systemDialer_title">Vykdyti sistemos skambučius, naudojant Ring</string>
+  <string name="pref_systemDialer_summary">Kai įmanoma, naudoti Ring, norint vykdyti sistemos skambučius.</string>
+  <string name="pref_startOnBoot_title">Paleisti Ring paleisties metu</string>
+  <string name="pref_startOnBoot_summary">Vykdyti Ring fone, paleidus sistemą</string>
+  <string name="pref_clearHistory_title">Išvalyti istoriją</string>
+  <string name="pref_clearHistory_summary">Išvalyti visą pokalbių istoriją. Šio veiksmo negalima bus atšaukti.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ms/strings.xml b/ring-android/androidtv/src/main/res/values-ms/strings.xml
new file mode 100644
index 0000000..0cf75de
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ms/strings.xml
@@ -0,0 +1,129 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring adalah aplikasi percuma yang dibangunkan dan disokong oleh</string>
+  <string name="copyright_section">Hakcipta</string>
+  <string name="contribute_section">Sumbangkan</string>
+  <string name="version_section">Versi</string>
+  <string name="no_email_app_installed">Tiada aplikasi emel ditemui, pasangkan satu untuk menghantar laporan kepada kami</string>
+  <string name="email_chooser_title">Hantar email menggunakan…</string>
+  <string name="credits">Kredit</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Tiada sambungan rangkaian</string>
+  <string name="error_mobile_network_available_but_disabled">Sila berikan akses kepada rangkaian selular didalam skrin tetapan.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Akaun baharu</string>
+  <string name="ab_action_chat">Pesanan teks</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Buka laci navigasi</string>
+  <string name="drawer_close">Tutup laci navigasi</string>
+  <!--Sections-->
+  <string name="menu_item_home">Utama</string>
+  <string name="menu_item_accounts">Urus akaun</string>
+  <string name="menu_item_settings">Tetapan</string>
+  <string name="menu_item_share">Kongsikan profil saya</string>
+  <string name="menu_item_about">Mengenai Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Dail nombor</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Main ulang</string>
+  <string name="hist_replay_button_stop">Berhenti</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="other">%d Perbualan</item>
+  </plurals>
+  <string name="home_transfer_complet">Pemindahan berjaya</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Tiada kenalan ditemui</string>
+  <string name="starred_contacts_title">Kegemaran</string>
+  <string name="searchbar_hint">Masukkan nama atau nombor telefon</string>
+  <string name="choose_number">Pilih nombor</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Pindahkan ke panggilan lain yang sedang berlangsung:</string>
+  <string name="transfer_no_other_call">Tiada panggilan lain yang belum selesai</string>
+  <string name="transfer_type_number">Taipkan nombor untuk memindahkan:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Panggilan masuk daripada %1$s</string>
+  <string name="notif_incoming_call">Panggilan masuk</string>
+  <string name="notif_outgoing_call_title">Panggilan keluar kepada %1$s</string>
+  <string name="notif_outgoing_call">Panggilan keluar</string>
+  <string name="notif_current_call_title">Panggilan sedang berlangsung dengan %1$s</string>
+  <string name="notif_current_call">Panggilan sedang berlangsung</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Anda</string>
+  <string name="action_call_attended_transfer">Pemindahan panggilan yang disertai</string>
+  <string name="action_call_conference">Mesyuarat</string>
+  <string name="action_call_hangup">Putuskan</string>
+  <string name="ongoing_call">Panggilan sedang berlangsung</string>
+  <string name="hist_in_call">Panggilan masuk sebanyak %1$s</string>
+  <string name="hist_out_call">Panggilan keluar sebanyak %1$s</string>
+  <string name="start_error_title">Tidak dapat memulakan Ring !</string>
+  <string name="start_error_mic_required">Ring memerlukan kebenaran mengakses mikrofon untuk bekerja dengan sempurna</string>
+  <string name="action_call_accept">Terima panggilan</string>
+  <string name="action_call_decline">Bantah panggilan</string>
+  <string name="ab_action_speakerphone">Aktifkan pembesar suara</string>
+  <string name="ab_action_contact_add">Tambahkan sebagai kenalan</string>
+  <string name="ab_action_contact_add_question">Tambah sebagai kenalan ?</string>
+  <string name="ab_action_audio_call">Panggilan suara</string>
+  <string name="ab_action_video_call">Panggilan video</string>
+  <string name="share_via">Kongsikan melalui</string>
+  <string name="write_a_message">Tulis pesan</string>
+  <string name="scan_qr">Imbas kod QR</string>
+  <string name="ab_action_flipcamera">Tukar kamera</string>
+  <!--Text messages-->
+  <string name="send_message">Hantar pesan</string>
+  <string name="message_sending">Sedang menghantar pesan…</string>
+  <string name="time_just_now">Seketika yang lalu</string>
+  <string name="permission_read_denied">Aplikasi ini tidak dibenarkan untuk membaca memori dalaman anda. Oleh begitu, ia tidak dapat bekerja dengan sempurna. Sila pertimbangkan untuk membenarkan akses tersebut</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Akses kamera</string>
+  <string name="permission_dialog_camera_message">Perbualan video memerlukan akses kepada kamera untuk bekerja dengan sempurna. Sila pertimbangkan untuk membenarkan akses tersebut.</string>
+  <string name="ringtone_error_title">Gagal</string>
+  <string name="ringtone_error_format_not_supported">Format ini tidak disokong.</string>
+  <string name="ringtone_error_size_too_big">Saiz fail ini adalah terlalu besar. Had maksimum untuk saiz fail adalah %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring memerlukan keizinan akses kepada kenalan untuk mengaktifkan fungsi ini. Sila pertimbangkan untuk membenarkan akses tersebut.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring memerlukan keizinan akses kepada kenalan untuk mengaktifkan fungsi ini. Sila pertimbangkan untuk membenarkan akses tersebut.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Imbas kod QR akaun yang ingin anda tambah.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Padam sejarah ?</string>
+  <string name="clear_history_dialog_message">Aksi ini tidak akan dapat dibuat ulang.</string>
+  <string name="clear_history_completed">Sejarah telah dipadam.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Padamkan perbualan ini</string>
+  <string name="conversation_action_delete_this_title">Padamkan perbualan ini ?</string>
+  <string name="conversation_action_delete_this_message">Aksi ini tidak akan dapat dibuat ulang.</string>
+  <string name="conversation_action_copy_peer_number">Salin nombor</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s telah disalin</string>
+  <string name="conversation_action_select_peer_number">Pilih nombor</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Tambah %1$s ?</string>
+  <string name="prompt_new_password">Kata laluan baharu</string>
+  <string name="prompt_new_password_repeat">Ulang kata laluan baharu</string>
+  <string name="account_create_title">Cipta akaun Ring</string>
+  <string name="prompt_new_username">Masukkan nama pengguna baharu</string>
+  <string name="help_password_choose">Pilih kata laluan kukuh yang perlu anda ingat untuk menjaga akaun Ring anda.</string>
+  <string name="help_password_enter">Masukkan kata laluan akaun Ring anda</string>
+  <string name="help_pin_enter">Masukkan PIN daripada akaun Ring lain yang telah dijalankan. Gunakan fungsi \"eksport akaun ke Ring\" untuk mendapatkan PIN.</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Profil saya</string>
+  <string name="open_the_gallery">Buka galeri</string>
+  <string name="take_a_photo">Ambil gambar</string>
+  <string name="unknown">Tidak diketahui</string>
+  <!--Share fragment-->
+  <string name="share_message">Imbas kod QR ini dengan pemgibas terbina dalam dari aplikasi Ring lain yang ingin berkomunikasi dengan anda.</string>
+  <string name="share_your_account_information">Sila pilih akaun untuk dikongsi</string>
+  <string name="generic_error_migration">Gagal</string>
+  <!--Pending contact requests-->
+  <string name="accept">Terima</string>
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ms/strings_account.xml b/ring-android/androidtv/src/main/res/values-ms/strings_account.xml
new file mode 100644
index 0000000..7e06d07
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ms/strings_account.xml
@@ -0,0 +1,152 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Hapus</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Nama panggilan</string>
+  <string name="prompt_hostname">Alamat server</string>
+  <string name="prompt_username">Nama pengguna</string>
+  <string name="prompt_password">Kara laluan</string>
+  <string name="action_create">Cipta akaun</string>
+  <string name="action_create_short">Daftar</string>
+  <string name="error_field_required">Maklumat ini diperlukan</string>
+  <string name="dialog_wait_create">Mencipta akaun</string>
+  <string name="dialog_wait_create_details">Sila tunggu ketika akaun anda sedang dicipta…</string>
+  <string name="dialog_wait_update">Kemaskini akaun</string>
+  <string name="dialog_wait_update_details">Sila tunggu ketika akaun baharu anda sedang dikemaskini…</string>
+  <string name="dialog_warn_ip2ip_account_title">Cipta akaun SIP kosong ?</string>
+  <string name="dialog_warn_ip2ip_account_message">Anda sedang mencuba untuk mencipta akaun SIP tanpa alamat server yang sah.
+Anda hanya akan dapat menerima panggilan masuk secara terus sahaja.
+Anda masih akan dapat mengubah maklumat akaun anda pada masa hadapan</string>
+  <string name="help_ring">Akaun Ring membolehkan anda untuk menghubungi orang lain secara selamat dan sembunyi, melalui rangkaian teragih.</string>
+  <string name="help_sip_title">Tambah akaun SIP anda</string>
+  <string name="help_sip">Tetapkan maklumat akaun SIP yang telah sedia ada.</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Hapus akaun ?</string>
+  <string name="account_delete_dialog_message">Aksi ini tidak akan dapat dibuat ulang.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Tiada akaun didaftarkan</string>
+  <string name="normal_accounts_titles">Akaun</string>
+  <string name="normal_devices_titles">Perangkat dikenali yang telah disambungkan dengan akaun Ring ini</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Utama</string>
+  <string name="account_basic_category">Aturan Asas</string>
+  <string name="account_alias_label">Nama akaun</string>
+  <string name="account_hostname_label">Alamat server</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Nama pengguna</string>
+  <string name="account_password_label">Kara laluan</string>
+  <string name="account_optionnal_category">Aturan pilihan</string>
+  <string name="account_useragent_label">User Agent</string>
+  <string name="account_autoanswer_label">Jawab panggilan secara automatik</string>
+  <string name="account_upnp_label">Aktifkan UPnP</string>
+  <string name="account_proxy_field">Proksi</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Bunyi</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Nada dering</string>
+  <string name="account_ringtone_enabled_label">Aktifkan nada dering</string>
+  <string name="account_ringtone_path_label">Nada dering</string>
+  <string name="account_ringtone_custom_label">Gunakan nada dering yang lain</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Aktifkan panggilan video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Lanjut</string>
+  <string name="account_registration_exp_label">Pendafataran luput</string>
+  <string name="account_local_interface_label">Antaramuka lokal</string>
+  <string name="account_local_port_label">Port lokal</string>
+  <string name="account_stun_enable_label">Guna Stun</string>
+  <string name="account_stun_server_label">Server Stun</string>
+  <string name="account_turn_enable_label">Guna TURN</string>
+  <string name="account_turn_server_label">Server TURN</string>
+  <string name="account_turn_username_label">Nama pengguna TURN</string>
+  <string name="account_turn_password_label">Kata laluan TURN</string>
+  <string name="account_published_same_as_local_label">Alamat pengagihan sama dengan lokal</string>
+  <string name="account_published_port_label">Port pengagihan</string>
+  <string name="account_published_address_label">Alamat server pengagihan</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Maklumat</string>
+  <string name="account_credentials_edit">Ubah maklumat</string>
+  <string name="account_credentials_add">Tambah maklumat</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Penyulitan</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Guna TLS Transport</string>
+  <string name="account_tls_port_label">Port TLS Listener</string>
+  <string name="account_tls_certificate_list_label">Certification Authorities</string>
+  <string name="account_tls_certificate_file_label">Fail Certificate</string>
+  <string name="account_tls_private_key_file_label">Fail Private Key</string>
+  <string name="account_tls_password_label">Kata laluan untuk fail Private Key</string>
+  <string name="account_tls_method_label">TLS Method</string>
+  <string name="account_tls_ciphers_label">TLS Ciphers</string>
+  <string name="account_tls_server_name_label">Nama Server</string>
+  <string name="account_tls_verify_server_label">Sahkan Server</string>
+  <string name="account_tls_verify_client_label">Sahkan Client</string>
+  <string name="account_tls_negotiation_timeout_sec">Tempoh luput rundingan penyambungan (saat)</string>
+  <string name="account_rtp_max_port">Maksimum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Jarak Port Bunyi RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Import akaun</string>
+  <string name="account_restore_message">Masukkan kata laluan untuk menyahsulitkan fail.</string>
+  <string name="account_restore_decryption_password">Kata laluan penyahsulit</string>
+  <string name="account_new_device_password">Masukkan kata laluan utama untuk menyahsulitkan akaun</string>
+  <string name="restore_dialog_title">Mengimport</string>
+  <string name="restore_backup_wait">Sila tunggu...</string>
+  <string name="error_password_char_count">Minimum 6 aksara</string>
+  <string name="error_passwords_not_equals">Kata laluan tidak sepadan</string>
+  <string name="restore_failed_dialog_title">Import gagal</string>
+  <string name="restore_failed_dialog_msg">Kegagalan telah terjadi</string>
+  <string name="export_account_wait_title">Sila tunggu...</string>
+  <string name="export_account_wait_message">Mengagihkan maklumat akaun baharu</string>
+  <string name="account_export_end_decryption_message">Tidak dapat menyahsulitkan akaun anda dengan kata laluan yang diberikan.</string>
+  <string name="account_export_end_network_title">Rangkaian gagal</string>
+  <string name="account_export_end_network_message">Tidak dapat mengeksport akaun anda kepada rangkaian agihan. Sila periksa jaringan rangkaian anda.</string>
+  <string name="account_export_end_error_title">Gagal</string>
+  <string name="account_export_end_error_message">Tidak dapat mengeksport akaun. Kegagalan yang tidak diketahui telah berlaku.</string>
+  <string name="account_enter_password">Masukkan kata laluan</string>
+  <string name="account_contact_me">Hubungi saya di Ring !</string>
+  <string name="update_account">Kemaskini akaun</string>
+  <string name="ring_account">Akaun Ring</string>
+  <string name="account_migration_title_dialog">Permindahan akaun</string>
+  <string name="account_update_needed">Kemaskini diperlukan</string>
+  <string name="account_creation_file_too_big">Saiz fail adalah terlalu besar</string>
+  <string name="account_cannot_read">Tidak dapt membaca %1$s</string>
+  <string name="account_cannot_be_found_title">Akaun tidak ditemui</string>
+  <string name="account_cannot_be_found_message">Akaun tidak ditemui pada rangkaian Ring.\nPastikan anda telah mengeksport akaun Ring daripada perangkat anda yang sedia ada, dan maklumat yang diberikan adalah tepat.</string>
+  <string name="account_no_network_title">Tidak dapat berhubung dengan rangkaian</string>
+  <string name="account_no_network_message">Tidak dapat menambah akaun kerana tidak dapat berhubung dengan rangkaian agihan. Sila periksa kesambungan rangkaian perangkat anda.</string>
+  <string name="account_device_added_title">Berjaya menambah perangkat akaun</string>
+  <string name="account_device_added_message">Anda telah berjaya menyambungkan akaun Ring anda dengan perangkat ini.</string>
+  <string name="account_device_updated_title">Akaun perangkat telah dikemaskinikan</string>
+  <string name="account_device_updated_message">Anda telah berjaya mengemaskini akaun Ring anda.</string>
+  <string name="account_link_button">Sambungkan perangkat ini dengan akaun</string>
+  <string name="account_import_title">Sambung dengan akaun yang telah sedia ada</string>
+  <string name="account_link_prompt_pin">Masukkan PIN</string>
+  <string name="account_new_button">Cipta akaun Ring</string>
+  <string name="account_link_export_button">Sambungkan perangkat lain dengan akaun ini</string>
+  <string name="account_link_export_info">Untuk menggunakan akaun ini diperangkat lain, ada mestilah terlebih dahulu mengeksport akaun Ring kerangkaian agihan. Ini akan menciptakan kod PIN yang anda mesti masukkan pada perangkat tersebut. PIN tersebut sah selama 10 minit. \n\nSila berikan kata laluan utama akaun anda untuk memulakan:</string>
+  <string name="account_start_export_button">Ciptakan PIN</string>
+  <string name="account_end_export_button">tutup</string>
+  <string name="account_end_export_infos">PIN anda adalah:\n\n%%\n\nUntuk menyelesaikan proses menyambung, anda mestilah membuka aplikasi Ring pada perangkat baharu. Cipta akaun baharu dengan \\"Sambungkan perangkat ini dengan akaun yang telah sedia ada\\". PIN ini sah selama 10 minit.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Tidak dapat mendaftar nama: kata laluan akaun salah.</string>
+  <string name="register_name_invalid">Tidak dapat mendaftar nama: nama tidak sah.</string>
+  <string name="register_name_already_taken">Tidak dapat mendaftar nama: nama telah digunakan pengguna lain.</string>
+  <string name="register_name_network_error">Tidak dapat mendaftar nama: rangkaian atau server gagal.</string>
+  <string name="error_username_empty">Masukkan nama pengguna</string>
+  <string name="no_registered_name_for_account">Tiada nama berdaftar dengan akaun ini ditemui</string>
+  <string name="register_name">Daftarkan nama</string>
+  <string name="trying_to_register_name">Sedang mencuba untuk mendaftarkan nama</string>
+  <string name="registered_username">Nama telah didaftarkan</string>
+  <string name="username_already_taken">Nama pengguna telah digunakan pengguna lain</string>
+  <string name="invalid_username">Nama pengguna tidak sah</string>
+  <string name="account_status_connecting">Menyambung</string>
+  <string name="account_status_unknown">Tidak diketahui</string>
+  <!--Create account-->
+  <!--Devices-->
+  <string name="enter_password">Masukkan kata laluan</string>
+  <string name="revoke_device_wait_title">Sila tunggu...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ms/strings_call.xml b/ring-android/androidtv/src/main/res/values-ms/strings_call.xml
new file mode 100644
index 0000000..86cb127
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ms/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Berdering</string>
+    <string name="call_human_state_connecting">Menyambung</string>
+    <string name="call_human_state_ringing">Memanggil</string>
+    <string name="call_human_state_current">Bercakap</string>
+    <string name="call_human_state_hungup">Selesai</string>
+    <string name="call_human_state_busy">Sibuk</string>
+    <string name="call_human_state_failure">Gagal</string>
+    <string name="call_human_state_hold">Tangguh</string>
+    <string name="call_human_state_unhold">Nyahtangguh</string>
+    <string name="call_human_state_over">Selesai</string>
+    <string name="call_human_state_none">Tiada</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Aktif tersambung</string>
+    <string name="conference_human_state_active_detached">Aktif terputus</string>
+    <string name="conference_human_state_active_attached_rec">Rakam aktif tersambung</string>
+    <string name="conference_human_state_active_detached_rec">Rakam aktif terputus</string>
+    <string name="conference_human_state_hold">Tangguh</string>
+    <string name="conference_human_state_hold_rec">Tangguh rakam</string>
+    <string name="conference_human_state_default">Tiada</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-ms/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-ms/strings_content_description.xml
new file mode 100644
index 0000000..200b0ad
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ms/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Panggilan Pantas</string>
+  <string name="contact_picture_description">Gambar Kenalan</string>
+  <string name="dial_numeric_pad">Pad dail bernombor</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ms/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-ms/strings_preferences.xml
new file mode 100644
index 0000000..fcdab20
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ms/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Rangkaian</string>
+  <string name="pref_category_contacts">Kenalan</string>
+  <string name="pref_category_system">Sistem</string>
+  <string name="pref_category_privacy">Privasi</string>
+  <string name="pref_mobileData_title">Jaringan data</string>
+  <string name="pref_mobileData_summary">Benarkan Ring pada jaringan 3G/LTE selain dari WI-Fi</string>
+  <string name="pref_systemContacts_title">Gunakan buku kenalan sistem</string>
+  <string name="pref_systemContacts_summary">Gunakan buku kenalan sistem untuk memaparkan maklumat pemanggil</string>
+  <string name="pref_systemDialer_title">Gunakan Ring untuk membuat panggilan dari sistem</string>
+  <string name="pref_systemDialer_summary">Gunakan Ring untuk membuat panggilan dari sistem apabila sesuai</string>
+  <string name="pref_startOnBoot_title">Jalankan Ring selepas perangkat dihidupkan</string>
+  <string name="pref_startOnBoot_summary">Jalankan Ring dibelakang secara automatik selepas perangkat dihidupkan</string>
+  <string name="pref_clearHistory_title">Padamkan sejarah</string>
+  <string name="pref_clearHistory_summary">Padamkan semua sejarah perbualan. Aksi ini tidak akan dapat dibuat ulang.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nb/strings.xml b/ring-android/androidtv/src/main/res/values-nb/strings.xml
new file mode 100644
index 0000000..5828c31
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nb/strings.xml
@@ -0,0 +1,113 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring er fri programvare utviklet og støttet av</string>
+  <string name="copyright_section">Opphavsrett</string>
+  <string name="contribute_section">Bidra</string>
+  <string name="version_section">Versjon</string>
+  <string name="no_email_app_installed">Fant ingen epost-app.  Installer en for å sende oss en rapport</string>
+  <string name="email_chooser_title">Send epost vha...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Mangler nettverksforbindelse</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Ny konto</string>
+  <string name="ab_action_chat">Tekstmelding</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Åpne navigasjonsskuff</string>
+  <string name="drawer_close">Lukk navigasjonsskuff</string>
+  <!--Sections-->
+  <string name="menu_item_home">Hjem</string>
+  <string name="menu_item_accounts">Styr kontoer</string>
+  <string name="menu_item_settings">Innstillinger</string>
+  <string name="menu_item_about">Om Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Slå et nummer</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button_stop">Stopp</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d samtale</item>
+    <item quantity="other">%d samtaler</item>
+  </plurals>
+  <string name="home_transfer_complet">Overføring er ferdig</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Fant ingen kontakter</string>
+  <string name="starred_contacts_title">Favoritter</string>
+  <string name="searchbar_hint">Skriv inn navn eller telefonnummer...</string>
+  <string name="choose_number">Velg et nummer</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Overfør til en annen pågående samtale:</string>
+  <string name="transfer_no_other_call">Ingen andre samtaler som venter</string>
+  <string name="transfer_type_number">Type nummer å overføre til:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Innkommende samtale fra %1$s</string>
+  <string name="notif_incoming_call">Innkommende samtale</string>
+  <string name="notif_outgoing_call_title">Utgående samtale til %1$s</string>
+  <string name="notif_outgoing_call">Utgående samtale</string>
+  <string name="notif_current_call_title">Pågående samtale med %1$s</string>
+  <string name="notif_current_call">Pågående samtale</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Deg:</string>
+  <string name="action_call_attended_transfer">Deltagende overføring</string>
+  <string name="action_call_conference">Konferanse</string>
+  <string name="action_call_hangup">Legg på</string>
+  <string name="ongoing_call">Pågående samtale</string>
+  <string name="hist_in_call">Innkommende samtale med %1$s</string>
+  <string name="hist_out_call">Utgående samtale med %1$s</string>
+  <string name="start_error_title">Klarer ikke starte Ring!</string>
+  <string name="start_error_mic_required">Ring krever tilgang til mikrofonen for å virke.</string>
+  <string name="action_call_accept">Ta samtale</string>
+  <string name="action_call_decline">Avslå</string>
+  <string name="ab_action_speakerphone">Aktiver høytaler</string>
+  <string name="ab_action_contact_add">Legg til kontakter</string>
+  <string name="ab_action_contact_add_question">Legg til kontakter?</string>
+  <string name="ab_action_audio_call">Talesamtale</string>
+  <string name="ab_action_video_call">Videosamtale</string>
+  <string name="share_via">Del via</string>
+  <string name="write_a_message">Skriv en melding</string>
+  <string name="scan_qr">Scan QR-kode</string>
+  <string name="ab_action_flipcamera">Snu kamera</string>
+  <!--Text messages-->
+  <string name="send_message">Send melding</string>
+  <string name="message_sending">Sender melding...</string>
+  <string name="time_just_now">Akkurat nå</string>
+  <string name="permission_read_denied">Denne app-en fikk ikke lov til å lese fra lagringsområdet ditt.  Dermed kan den ikke fungere som det skal.  Vær så snill å vurder om den kan få lov til dette.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kamerarettigheter</string>
+  <string name="permission_dialog_camera_message">Videosamtaler krever tilgang til kameraet for å virke.  Vurder å aktivere det.</string>
+  <string name="ringtone_error_title">Feil</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring trenger tillatelsen \"Lese kontakter\" for å aktivere denne egenskapet.  Vær så snill å tillat dette.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring trenger tillatelsen \"Skriv i samtalelogg\" for å aktivere denne egenskapen. Vær så snill å tillat dette.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Les av QR-koden for kontoen du ønsker å legge til.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Nullstill historikk?</string>
+  <string name="clear_history_dialog_message">Denne handlingen kan ikke gjøres om.</string>
+  <string name="clear_history_completed">Historikken har blitt nullstilt.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Slett denne samtalen</string>
+  <string name="conversation_action_delete_this_title">Slett denne samtalen?</string>
+  <string name="conversation_action_delete_this_message">Denne handlingen kan ikke gjøres om.</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Legg til %1$s?</string>
+  <string name="prompt_new_password">Nytt passord</string>
+  <string name="account_create_title">Opprett en Ring-konto</string>
+  <string name="wizard_next">Neste</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">Ukjent</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">Feil</string>
+  <!--Pending contact requests-->
+  <string name="accept">Aksepter</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Send</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nb/strings_account.xml b/ring-android/androidtv/src/main/res/values-nb/strings_account.xml
new file mode 100644
index 0000000..952138e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nb/strings_account.xml
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Slett</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Vertsnavn</string>
+  <string name="prompt_username">Brukernavn</string>
+  <string name="prompt_password">Passord</string>
+  <string name="action_create_short">Registrer</string>
+  <string name="error_field_required">Dette feltet er påkrevd</string>
+  <string name="dialog_wait_create">Legger til konto</string>
+  <string name="dialog_wait_create_details">Vent litt mens din nye konto blir lagt til...</string>
+  <string name="dialog_warn_ip2ip_account_title">Lag tom SIP-konto?</string>
+  <string name="dialog_warn_ip2ip_account_message">Du er igang med å lage en SIP-konto uten et gyldig vertsnavn.
+Du vil kun være i stand til å gjennomføre direkte IP-samtaler.
+Du kan endre kontoen din senere</string>
+  <string name="help_ring">En Ring-konto lar deg na folk på sikkert via mellom likemenn via et fullstendig distribuert nettverk.</string>
+  <string name="help_sip_title">Legg til SIP-kontoen din</string>
+  <string name="help_sip">Sett opp en eksisterende SIP-konto.</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Slett konto?</string>
+  <string name="account_delete_dialog_message">Denne handlingen kan ikke gjøres om.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Ingen konto registrert</string>
+  <string name="normal_accounts_titles">Kontoer</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Generell</string>
+  <string name="account_basic_category">Grunnleggende oppsett</string>
+  <string name="account_alias_label">Kontonavn</string>
+  <string name="account_hostname_label">Vertsnavn</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Brukernavn</string>
+  <string name="account_password_label">Passord</string>
+  <string name="account_optionnal_category">Valgfritt oppsett</string>
+  <string name="account_useragent_label">Brukeragent</string>
+  <string name="account_autoanswer_label">Autosvar</string>
+  <string name="account_upnp_label">Aktiver UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Lyd</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Ringetoner</string>
+  <string name="account_ringtone_enabled_label">Aktiver ringetoner</string>
+  <string name="account_ringtone_path_label">Ringetonesti</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Aktiver video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avansert</string>
+  <string name="account_registration_exp_label">Registreringstidsgrense</string>
+  <string name="account_local_interface_label">Lokalt grensesnitt</string>
+  <string name="account_local_port_label">Lokal port</string>
+  <string name="account_stun_enable_label">Bruk Stun</string>
+  <string name="account_stun_server_label">Stun-tjener</string>
+  <string name="account_turn_enable_label">Bruk TURN</string>
+  <string name="account_turn_server_label">TURN-tjener</string>
+  <string name="account_turn_username_label">TURN-brukernavn</string>
+  <string name="account_turn_password_label">TURN-passord</string>
+  <string name="account_published_same_as_local_label">Publisert lik den lokale</string>
+  <string name="account_published_port_label">Publisert port</string>
+  <string name="account_published_address_label">Publisert adresse</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Sikkerhet</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Bruk TLS-transport</string>
+  <string name="account_tls_port_label">TLS-lytteport</string>
+  <string name="account_tls_certificate_list_label">Sertifikatautoriteter</string>
+  <string name="account_tls_certificate_file_label">Sertifikatfil</string>
+  <string name="account_tls_private_key_file_label">Privat nøkkelfil</string>
+  <string name="account_tls_password_label">Privat nøkkel-passord</string>
+  <string name="account_tls_method_label">TLS-metoder</string>
+  <string name="account_tls_ciphers_label">TLS-sifer</string>
+  <string name="account_tls_server_name_label">Tjenernavn</string>
+  <string name="account_tls_verify_server_label">Kontroller tjener</string>
+  <string name="account_tls_verify_client_label">Kontroller klient</string>
+  <string name="account_tls_negotiation_timeout_sec">Tidsbegresning på forhandling (sek)</string>
+  <string name="account_rtp_max_port">Maksimum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">RTP-portintervall for tale</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Skriv inn passord for å dekryptere filen.</string>
+  <string name="account_restore_decryption_password">Dekrypteringspassord</string>
+  <string name="restore_backup_wait">Vennligst vent...</string>
+  <string name="error_password_char_count">minimum 6 tegn</string>
+  <string name="error_passwords_not_equals">Passordene stemmer ikke</string>
+  <string name="restore_failed_dialog_msg">Det skjedde en feil</string>
+  <string name="export_account_wait_title">Vennligst vent...</string>
+  <string name="account_export_end_error_title">Feil</string>
+  <string name="account_new_button">Opprett en Ring-konto</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">Kobler opp</string>
+  <string name="account_status_unknown">Ukjent</string>
+  <!--Create account-->
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Vennligst vent...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nb/strings_call.xml b/ring-android/androidtv/src/main/res/values-nb/strings_call.xml
new file mode 100644
index 0000000..951623c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nb/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Ringer</string>
+    <string name="call_human_state_connecting">Kobler opp</string>
+    <string name="call_human_state_ringing">Kaller opp</string>
+    <string name="call_human_state_current">Snakker</string>
+    <string name="call_human_state_hungup">Over</string>
+    <string name="call_human_state_busy">Opptatt</string>
+    <string name="call_human_state_failure">Feilet</string>
+    <string name="call_human_state_hold">Parker</string>
+    <string name="call_human_state_unhold">Gjenoppta parkert</string>
+    <string name="call_human_state_over">Over</string>
+    <string name="call_human_state_none">Ingen</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Aktive tilkoblet</string>
+    <string name="conference_human_state_active_detached">Aktive frakoblet</string>
+    <string name="conference_human_state_active_attached_rec">Aktive tilkoblet oppt</string>
+    <string name="conference_human_state_active_detached_rec">Aktive frakoblet oppt</string>
+    <string name="conference_human_state_hold">Parker</string>
+    <string name="conference_human_state_hold_rec">Parker oppt</string>
+    <string name="conference_human_state_default">Ingen</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-nb/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-nb/strings_content_description.xml
new file mode 100644
index 0000000..3a3dd8c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nb/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Kjapp samtale</string>
+  <string name="contact_picture_description">Kontaktbilde</string>
+  <string name="dial_numeric_pad">Numerisk tasteflate</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nb/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-nb/strings_preferences.xml
new file mode 100644
index 0000000..dff36ee
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nb/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Nettverk</string>
+  <string name="pref_category_contacts">Kontakter</string>
+  <string name="pref_category_system">System</string>
+  <string name="pref_category_privacy">Privatliv</string>
+  <string name="pref_mobileData_title">Mobildata</string>
+  <string name="pref_mobileData_summary">Tillat Ring på 3G/LTE-nettverk i tillegg til Wi-Fi</string>
+  <string name="pref_systemContacts_title">Bruk systemkontakter</string>
+  <string name="pref_systemContacts_summary">Bruk systemkontakter for å vise innringerdetaljer</string>
+  <string name="pref_systemDialer_title">Gjennomfør systemsamtaler ved hjelp av Ring</string>
+  <string name="pref_systemDialer_summary">Bruk Ring til å gjennomføre systemsamtaler når det er mulig.</string>
+  <string name="pref_startOnBoot_title">Start Ring under oppstart</string>
+  <string name="pref_startOnBoot_summary">Kjør Ring i bakgrunnen når systemet starter.</string>
+  <string name="pref_clearHistory_title">Slett historikk</string>
+  <string name="pref_clearHistory_summary">Slett all konversasjonshistorikk.  Dette kan ikke endres tilbake.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nl-rNL/strings.xml b/ring-android/androidtv/src/main/res/values-nl-rNL/strings.xml
new file mode 100644
index 0000000..4ccf597
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nl-rNL/strings.xml
@@ -0,0 +1,57 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring is vrije software ontwikkeld en ondersteund door</string>
+  <string name="contribute_section">Bijdragen</string>
+  <string name="version_section">Versie</string>
+  <string name="no_email_app_installed">Geen emailapplicatie gevonden. Installeer deze om ons een rapportage toe te zenden</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Bellen</string>
+  <string name="error_no_network">Geen netwerkverbinding</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nieuw account</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_accounts">Accounts beheren</string>
+  <string name="menu_item_settings">Instellingen</string>
+  <string name="menu_item_about">Over Ring</string>
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <string name="hist_replay_button">Opnieuw afspelen</string>
+  <string name="hist_replay_button_stop">Stoppen</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Geen contact gevonden</string>
+  <string name="starred_contacts_title">Favorieten</string>
+  <string name="searchbar_hint">Voer een naam of telefoonnummer in...</string>
+  <string name="choose_number">Kies een nummer</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_no_other_call">Geen andere gesprekken in de wacht</string>
+  <!--Notifications-->
+  <!--Call Fragment-->
+  <string name="action_call_hangup">Ophangen</string>
+  <string name="ab_action_contact_add">Voeg toe aan contacten</string>
+  <!--Text messages-->
+  <!--MediaPreferenceFragment-->
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <string name="clear_history_dialog_message">Deze actie kan niet ongedaan worden</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this_title">Dit gesprek verwijderen?</string>
+  <string name="conversation_action_delete_this_message">Deze actie kan niet ongedaan worden</string>
+  <string name="conversation_action_copy_peer_number">Kopieër nummer</string>
+  <string name="conversation_action_select_peer_number">Selecteer een nummer</string>
+  <!--Contacts-->
+  <!--MenuHeaderView-->
+  <!--Share fragment-->
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nl-rNL/strings_account.xml b/ring-android/androidtv/src/main/res/values-nl-rNL/strings_account.xml
new file mode 100644
index 0000000..071745b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nl-rNL/strings_account.xml
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Verwijderen</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_username">Gebruikersnaam</string>
+  <string name="prompt_password">Wachtwoord</string>
+  <string name="action_create_short">Registreren</string>
+  <string name="error_field_required">Dit invulveld is vereist</string>
+  <string name="dialog_wait_create">Account aan het toevoegen</string>
+  <string name="help_sip_title">Voeg je SIP account toe</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Account verwijderen?</string>
+  <string name="account_delete_dialog_message">Deze actie kan niet ongedaan worden</string>
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Accounts</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Algemeen</string>
+  <string name="account_alias_label">Naam account</string>
+  <string name="account_username_label">Gebruikersnaam</string>
+  <string name="account_password_label">Wachtwoord</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Geluid</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Ringtones</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Gevorderd</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Beveiliging</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <!--Name registration-->
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nl/strings.xml b/ring-android/androidtv/src/main/res/values-nl/strings.xml
new file mode 100644
index 0000000..4dd0db8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nl/strings.xml
@@ -0,0 +1,165 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Feedback</string>
+  <string name="report">&lt;u&gt;Stuur ons een e-mail&lt;/u&gt;</string>
+  <string name="section_license">Licentie</string>
+  <string name="sponsor_section">Ring is vrije software ontwikkeld en ondersteund door</string>
+  <string name="copyright_section">Auteursrecht</string>
+  <string name="contribute_section">Bijdragen</string>
+  <string name="version_section">Versie</string>
+  <string name="no_email_app_installed">Geen e-mailapplicatie gevonden, installeer er een om ons een rapport te kunnen sturen</string>
+  <string name="no_browser_app_installed">Geen webbrowsertoepassing gevonden, installeer er een om deze pagina te bekijken</string>
+  <string name="email_chooser_title">E-mail versturen met...</string>
+  <string name="website_chooser_title">Website bekijken met...</string>
+  <string name="license">Deze software wordt \"als zodanig\" aangeboden zonder enige garantie. Bekijk voor meer informatie
+&lt;u&gt;GNU General Public License versie 3 of later&lt;/u&gt;</string>
+  <string name="description">Ring is vrije software voor universele communicatie, die de vrijheden en privacy van haar gebruikers eerbiedigt.</string>
+  <string name="credits">Credits</string>
+  <!--About dialog-->
+  <string name="developed_by">Ontwikkeld door</string>
+  <string name="designed_by">Ontworpen door</string>
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Geen netwerkverbinding</string>
+  <string name="error_mobile_network_available_but_disabled">Geef toegang tot mobiel netwerk in de instellingen.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Account aanmaken</string>
+  <string name="ab_action_chat">Tekstberichten</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Navigatielade openen</string>
+  <string name="drawer_close">Navigatielade sluiten</string>
+  <!--Sections-->
+  <string name="menu_item_home">Thuis</string>
+  <string name="menu_item_contact_request">Contactverzoeken</string>
+  <string name="menu_item_accounts">Accounts beheren</string>
+  <string name="menu_item_settings">Instellingen</string>
+  <string name="menu_item_share">Deel mijn contact</string>
+  <string name="menu_item_blacklist">Geblokkeerde contacten</string>
+  <string name="menu_item_about">Over Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Kies een nummer</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Opnieuw afspelen</string>
+  <string name="hist_replay_button_stop">Stoppen</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d gesprek</item>
+    <item quantity="other">%d gesprekken</item>
+  </plurals>
+  <string name="home_transfering">%1$s wordt verstuurd naar %2$s</string>
+  <string name="home_transfer_complet">Overdracht compleet</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Geen contacten gevonden</string>
+  <string name="starred_contacts_title">Favorieten</string>
+  <string name="searchbar_hint">Geef een naam of telefoonnummer in...</string>
+  <string name="choose_number">Kies een nummer</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Versturen naar een andere lopende oproep:</string>
+  <string name="transfer_no_other_call">Geen verdere oproepen in behandeling</string>
+  <string name="transfer_type_number">Nummer ingeven om naar te versturen:</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">Gemiste inkomende oproep</string>
+  <string name="notif_missed_outgoing_call">Gemiste uitgaande oproep</string>
+  <string name="notif_incoming_call_title">Inkomende oproep van %1$s</string>
+  <string name="notif_incoming_call">Inkomende oproep</string>
+  <string name="notif_outgoing_call_title">Uitgaande oproep naar %1$s</string>
+  <string name="notif_outgoing_call">Uitgaande oproep</string>
+  <string name="notif_current_call_title">Huidige oproep met %1$s</string>
+  <string name="notif_current_call">Huidige oproep</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Jij:</string>
+  <string name="action_call_attended_transfer">Bijgewoonde overdracht</string>
+  <string name="action_call_conference">Vergadering</string>
+  <string name="action_call_hangup">Ophangen</string>
+  <string name="ongoing_call">Lopende oproep</string>
+  <string name="hist_in_call">Inkomende oproep van %1$s</string>
+  <string name="hist_out_call">Uitgaande oproep van %1$s</string>
+  <string name="start_error_title">Ring kan niet opgestart worden!</string>
+  <string name="start_error_mic_required">Ring vereist toestemming om de microfoon te kunnen gebruiken.</string>
+  <string name="action_call_accept">Oproep aannemen</string>
+  <string name="action_call_decline">Weigeren</string>
+  <string name="ab_action_speakerphone">Luidspreker inschakelen</string>
+  <string name="ab_action_contact_add">Aan contacten toevoegen</string>
+  <string name="ab_action_contact_add_question">Aan contacten toevoegen?</string>
+  <string name="ab_action_audio_call">Audiogesprek</string>
+  <string name="ab_action_video_call">Videogesprek</string>
+  <string name="ab_action_change_screen_orientation">Schermoriëntatie aanpassen</string>
+  <string name="share_via">Delen via</string>
+  <string name="write_a_message">Schrijf een bericht</string>
+  <string name="scan_qr">QR-code scannen</string>
+  <string name="ab_action_flipcamera">Camera draaien</string>
+  <!--Text messages-->
+  <string name="send_message">Bericht versturen</string>
+  <string name="message_sending">Bericht wordt verstuurd...</string>
+  <string name="time_just_now">Zojuist</string>
+  <string name="permission_read_denied">De applicatie heeft geen machtiging om je opslag te lezen en kan daardoor niet correct functioneren. Gelieve te overwegen deze machtiging toch toe te kennen</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Cameramachtiging</string>
+  <string name="permission_dialog_camera_message">Videogesprekken vereisen machtiging voor gebruik van de camera. Gelieve te overwegen deze machtiging alsnog toe te kennen.</string>
+  <string name="ringtone_error_title">Fout</string>
+  <string name="ringtone_error_format_not_supported">Dit formaat wordt niet ondersteund.</string>
+  <string name="ringtone_error_size_too_big">Dit bestand is te groot. De maximale grootte is %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring vereist de \"Contacten\"-machtiging voor deze functie. Gelieve deze machtiging toe te kennen.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring vereist de \"Oproepgeschiedenis\"-machtiging voor deze functie. Gelieve deze machtiging toe te kennen.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Scan de QR-code van de toe te voegen account.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Geschiedenis wissen?</string>
+  <string name="clear_history_dialog_message">Handeling kan niet ongedaan gemaakt worden.</string>
+  <string name="clear_history_completed">Geschiedenis is gewist.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Dit gesprek verwijderen</string>
+  <string name="conversation_action_delete_this_title">Dit gesprek verwijderen?</string>
+  <string name="conversation_action_delete_this_message">Handeling kan niet ongedaan gemaakt worden.</string>
+  <string name="conversation_action_copy_peer_number">Nummer kopiëren</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s gekopieerd naar klembord</string>
+  <string name="conversation_action_select_peer_number">Kies een nummer</string>
+  <string name="conversation_action_block_this">Contact blokkeren</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">%1$s toevoegen?</string>
+  <string name="prompt_new_password">Nieuw wachtwoord</string>
+  <string name="prompt_new_password_repeat">Herhaal nieuw wachtwoord</string>
+  <string name="account_create_title">Een Ring-account aanmaken</string>
+  <string name="prompt_new_username">Voer nieuwe gebruikersnaam in</string>
+  <string name="help_password_choose">Kies een sterk wachtwoord om je Ring-account te beschermen.</string>
+  <string name="help_password_enter">Voer hoofdwachtwoord van je Ring-account in</string>
+  <string name="help_pin_enter">Voer de PIN-code van een andere geconfigureerde Ring-account in. Gebruik de \"account exporteren op Ring\"-functie om een PIN-code te verkrijgen.</string>
+  <string name="wizard_next">Volgende</string>
+  <string name="wizard_back">Terug</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Mijn profiel</string>
+  <string name="profile_message_warning">Je profiel wordt enkel gedeeld met je contacten</string>
+  <string name="open_the_gallery">Galerij openen</string>
+  <string name="take_a_photo">Foto nemen</string>
+  <string name="profile_name_hint">Voer je naam in (optioneel)</string>
+  <string name="unknown">Onbekend</string>
+  <!--Share fragment-->
+  <string name="share_message">Scan deze QR-code met de ingebouwde scanner van de Ring-toepassing die met je wil communiceren.</string>
+  <string name="share_message_no_account">Selecteer een account om te delen.</string>
+  <string name="share_your_account_information">Deel mijn contactinformatie</string>
+  <string name="generic_error_migration">Fout</string>
+  <string name="generic_error_migration_message">Er is een fout opgetreden tijdens het migratieproces</string>
+  <!--Pending contact requests-->
+  <string name="accept">Aanvaarden</string>
+  <string name="refuse">Afwijzen</string>
+  <string name="block">Blokkeren</string>
+  <string name="contact_request_title">Contactverzoek in afwachting</string>
+  <string name="contact_request_msg">Je hebt %1$s verzoeken in afwachting</string>
+  <string name="contact_request_account">Voor %1$s</string>
+  <string name="no_requests">0 contactverzoeken</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Versturen</string>
+  <string name="send_request_title">Contactverzoek verzenden</string>
+  <string name="send_request_msg">Je moet een contactverzoek verzenden om met deze gebruiker te communiceren. Zolang je contact het verzoek niet aanvaardt zal deze de berichten die je stuurt niet kunnen lezen.</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 geblokkeerde contacten</string>
+  <!--Smartlist-->
+  <string name="no_contact_request">Geen contactverzoek verzonden</string>
+  <string name="contact_request_sent">Contactverzoek verzonden</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nl/strings_account.xml b/ring-android/androidtv/src/main/res/values-nl/strings_account.xml
new file mode 100644
index 0000000..754c410
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nl/strings_account.xml
@@ -0,0 +1,199 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Verwijderen</string>
+  <string name="ic_advanced_menu">Geavanceerde instellingen</string>
+  <string name="ic_blacklist_menu">Geblokkeerde contacten</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Ring-account toevoegen</string>
+  <string name="add_sip_account_title">SIP-account toevoegen</string>
+  <string name="ring_account_default_name">Ring-account %1$s</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Hostnaam</string>
+  <string name="prompt_username">Gebruikersnaam</string>
+  <string name="prompt_password">Wachtwoord</string>
+  <string name="action_create">Account aanmaken</string>
+  <string name="action_create_short">Registreren</string>
+  <string name="error_field_required">Dit veld is verplicht</string>
+  <string name="dialog_wait_create">Account wordt toegevoegd</string>
+  <string name="dialog_wait_create_details">Je nieuwe account wordt toegevoegd, even geduld...</string>
+  <string name="dialog_wait_update">Account wordt bijgewerkt</string>
+  <string name="dialog_wait_update_details">Je account wordt bijgewerkt, even geduld...</string>
+  <string name="dialog_warn_ip2ip_account_title">Lege SIP-account aanmaken?</string>
+  <string name="dialog_warn_ip2ip_account_message">Je staat op het punt een SIP-account zonder geldige hostnaam toe te voegen.
+Je zal er enkel directe IP-oproepen mee kunnen maken en ontvangen.
+Je kan je account later bewerken</string>
+  <string name="account_type_ip2ip">IP-account</string>
+  <string name="help_ring">Een Ring-account stelt je in staat andere mensen veilig te bereiken in peer-to-peer middels een volledig gedistribueerd netwerk.</string>
+  <string name="help_sip_title">Je SIP-account toevoegen</string>
+  <string name="help_sip">Een bestaande SIP-account configureren</string>
+  <string name="create_sip_account">SIP-account toevoegen</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Account verwijderen?</string>
+  <string name="account_delete_dialog_message">Handeling kan niet ongedaan gemaakt worden.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Geen account geregistreerd</string>
+  <string name="normal_accounts_titles">Accounts</string>
+  <string name="normal_devices_titles">Bekende apparaten gekoppeld aan deze Ring-account</string>
+  <string name="account_device_revoke">Apparaat terugtrekken</string>
+  <string name="account_device_revocation_success_title">Klaar</string>
+  <string name="account_device_revocation_success">Het apparaat is nu teruggetrokken!</string>
+  <string name="account_device_revocation_error_title">Kan apparaat niet terugtrekken</string>
+  <string name="account_device_revocation_wrong_password">Verkeerd wachtwoord.</string>
+  <string name="account_device_revocation_unknown_device">Onbekend apparaat.</string>
+  <string name="account_device_revocation_error_unknown">Onbekende fout.</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Algemeen</string>
+  <string name="account_basic_category">Basisinstellingen</string>
+  <string name="account_alias_label">Accountnaam</string>
+  <string name="account_hostname_label">Hostnaam</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Gebruikersnaam</string>
+  <string name="account_password_label">Wachtwoord</string>
+  <string name="account_optionnal_category">Optionele instellingen</string>
+  <string name="account_useragent_label">Gebruikersagent</string>
+  <string name="account_autoanswer_label">Automatisch beantwoorden</string>
+  <string name="account_upnp_label">UPnP inschakelen</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Geluid</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Beltonen</string>
+  <string name="account_ringtone_enabled_label">Beltonen inschakelen</string>
+  <string name="account_ringtone_path_label">Beltoonpad</string>
+  <string name="account_ringtone_custom_label">Eigen beltoon gebruiken</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Video inschakelen</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Geavanceerd</string>
+  <string name="account_dht_public_in_calls_label">Alle oproepen/berichten toestaan</string>
+  <string name="account_registration_exp_label">Verval registratie</string>
+  <string name="account_local_interface_label">Lokale interface</string>
+  <string name="account_local_port_label">Lokale poort</string>
+  <string name="account_stun_enable_label">Stun gebruiken</string>
+  <string name="account_stun_server_label">Stunserver</string>
+  <string name="account_turn_enable_label">TURN gebruiken</string>
+  <string name="account_turn_server_label">TURN-server</string>
+  <string name="account_turn_username_label">TURN-gebruikersnaam</string>
+  <string name="account_turn_password_label">TURN-wachtwoord</string>
+  <string name="account_published_same_as_local_label">Gepubliceerd gelijk aan lokaal</string>
+  <string name="account_published_port_label">Gepubliceerde poort</string>
+  <string name="account_published_address_label">Gepubliceerd adres</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Legitimatie</string>
+  <string name="account_credentials_edit">Legitimatie wijzigen</string>
+  <string name="account_credentials_add">Legitimatie toevoegen</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Beveiliging</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">TLS-transport gebruiken</string>
+  <string name="account_tls_port_label">TLS-luisterpoort</string>
+  <string name="account_tls_certificate_list_label">Certificeringsinstanties</string>
+  <string name="account_tls_certificate_file_label">Certificaatbestand</string>
+  <string name="account_tls_private_key_file_label">Bestand met persoonlijke sleutel</string>
+  <string name="account_tls_password_label">Wachtwoord persoonlijke sleutel</string>
+  <string name="account_tls_method_label">TLS-methode</string>
+  <string name="account_tls_ciphers_label">TLS-sleutels</string>
+  <string name="account_tls_server_name_label">Servernaam</string>
+  <string name="account_tls_verify_server_label">Server verifiëren</string>
+  <string name="account_tls_verify_client_label">Cliënt verifiëren</string>
+  <string name="account_tls_negotiation_timeout_sec">Tijdslimiet onderhandeling (sec)</string>
+  <string name="account_rtp_max_port">Maximum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Audio RTP-poortenreeks</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Een account herstellen</string>
+  <string name="account_restore_message">Voer wachtwoord in om het bestand te ontsleutelen.</string>
+  <string name="account_restore_decryption_password">Ontsleutelingswachtwoord</string>
+  <string name="account_new_device_password">Voer hoofdwachtwoord in om account te ontgrendelen</string>
+  <string name="restore_dialog_title">Herstellen</string>
+  <string name="restore_backup_wait">Even geduld...</string>
+  <string name="error_password_char_count">Minimaal 6 tekens</string>
+  <string name="error_passwords_not_equals">Wachtwoorden komen niet overeen</string>
+  <string name="restore_failed_dialog_title">Herstellen mislukt</string>
+  <string name="restore_failed_dialog_msg">Er is een fout opgetreden</string>
+  <string name="export_account_wait_title">Even geduld...</string>
+  <string name="export_account_wait_message">Nieuwe accountinformatie wordt gepubliceerd</string>
+  <string name="account_export_end_decryption_message">Kon je account niet ontgrendelen met het opgegeven wachtwoord.</string>
+  <string name="account_export_end_network_title">Netwerkfout</string>
+  <string name="account_export_end_network_message">Kon account niet exporteren over het netwerk. Controleer je netwerkverbinding.</string>
+  <string name="account_export_end_error_title">Fout</string>
+  <string name="account_export_end_error_message">Kon account niet exporteren. Er is een onbekende fout opgetreden.</string>
+  <string name="account_enter_password">Voer wachtwoord in</string>
+  <string name="account_share_body">Contacteer mij met %1$s op Ring, het gedistribueerde communicatieplatform: http://ring.cx</string>
+  <string name="account_share_body_with_username">Contacteer mij met %1$s of mijn publieke gebruikersnaam %2$s op Ring, het gedistribueerde communicatieplatform: http://ring.cx</string>
+  <string name="account_contact_me">Contacteer mij op Ring!</string>
+  <string name="update_account">Account bijwerken</string>
+  <string name="account_migration">Je Ring-account kan bijgewerkt worden.\nVoer je wachtwoord in.</string>
+  <string name="ring_account">Ring-account</string>
+  <string name="ring_account_identity">Identiteit</string>
+  <string name="account_migration_title_dialog">Accountmigratie</string>
+  <string name="account_migration_message_dialog">Je account moeten bijgewerkt worden. Wil je naar het accountbeheerscherm gaan om deze handeling uit te voeren?</string>
+  <string name="account_update_needed">Update vereist</string>
+  <string name="account_creation_file_too_big">Bestand is te groot</string>
+  <string name="account_cannot_read">Kan %1$s niet lezen</string>
+  <string name="account_cannot_be_found_title">Account kan niet gevonden worden</string>
+  <string name="account_cannot_be_found_message">Account kon niet gevonden worden op het Ring-netwerk.\nControleer of de account geëxporteerd is van een bestaand apparaat en dat de ingevoerde gebruikersreferenties correct zijn</string>
+  <string name="account_sip_cannot_be_registered_message">Je kan doorgaan met het aanmaken van je account of je gegevens hier aanpassen. Aanpassen is later ook mogelijk vanuit de accountinstellingen.</string>
+  <string name="account_no_network_title">Kan geen verbinding maken met het netwerk</string>
+  <string name="account_no_network_message">Kon de account niet toevoegen omdat Ring geen verbinding kon maken met het gedistribueerde netwerk. Controleer de netwerkverbinding van je apparaat.</string>
+  <string name="account_device_added_title">Accountapparaat toegevoegd</string>
+  <string name="account_device_added_message">Je Ring-account is met succes op dit apparaat ingesteld.</string>
+  <string name="account_device_updated_title">Accountapparaat bijgewerkt</string>
+  <string name="account_device_updated_message">Je Ring-account is met succes bijgewerkt.</string>
+  <string name="account_cannot_be_updated_message">Accountapparaat kon niet bijgewerkt worden. Controleer je wachtwoord.</string>
+  <string name="account_sip_success_title">SIP-account geregistreerd</string>
+  <string name="account_sip_success_message">Je SIP-account is met succes geregistreerd.</string>
+  <string name="account_sip_register_anyway">Toch registreren</string>
+  <string name="account_link_button">Dit apparaat aan een account koppelen</string>
+  <string name="account_import_title">Koppelen aan een bestaande account</string>
+  <string name="account_link_prompt_pin">Voer PIN-code in</string>
+  <string name="account_wizard_title">Welkom bij</string>
+  <string name="account_new_button">Een Ring-account aanmaken</string>
+  <string name="account_link_export_button">Een ander apparaat aan deze account koppelen</string>
+  <string name="account_link_export_info">Om deze account op andere apparaten te gebruiken moet je deze eerst op Ring blootstellen. Er zal een PIN-code gegenereerd worden die je op het nieuwe apparaat invoert om de account in te stellen. De PIN-code is 10 minuten geldig. \n\nVoer je wachtwoord in om te beginnen:</string>
+  <string name="account_start_export_button">PIN-code genereren</string>
+  <string name="account_end_export_button">sluiten</string>
+  <string name="account_end_export_infos">Je PIN-code is:\n\n%%\n\nOm het proces te voltooien open je Ring op het nieuwe apparaat. Maak een account aan met \"Dit apparaat aan een account koppelen\". De PIN-code is 10 minuten geldig.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Kan naam niet registreren: verkeerd accountwachtwoord.</string>
+  <string name="register_name_invalid">Kan naam niet registreren: ongeldige naam.</string>
+  <string name="register_name_already_taken">Kan naam niet registreren: naam reeds in gebruik.</string>
+  <string name="register_name_network_error">Kan naam niet registreren: netwerk- of serverfout.</string>
+  <string name="error_username_empty">Voer een gebruikersnaam in</string>
+  <string name="no_registered_name_for_account">Geen geregistreerde naam gevonden voor deze account</string>
+  <string name="register_name">Naam registreren</string>
+  <string name="trying_to_register_name">Naam wordt geregistreerd</string>
+  <string name="registered_username">Geregistreerde gebruikersnaam</string>
+  <string name="register_username">Registreer een publieke gebruikersnaam (experimenteel)</string>
+  <string name="username_already_taken">Gebruikersnaam reeds in gebruik</string>
+  <string name="invalid_username">Ongeldige gebruikersnaam</string>
+  <string name="looking_for_username_availability">Beschikbaarheid van gebruikersnaam wordt gecontroleerd…</string>
+  <string name="account_status_connecting">Verbinden</string>
+  <string name="account_status_connection_error">Verbindingsfout</string>
+  <string name="account_status_online">Online</string>
+  <string name="account_status_unknown">Onbekend</string>
+  <string name="account_status_offline">Offline</string>
+  <!--Create account-->
+  <string name="account_creation_home">Welkom bij Ring</string>
+  <string name="account_creation_profile">Maak je profiel aan</string>
+  <string name="account_creation_ring">Je Ring-account aanmaken</string>
+  <string name="account_link_title">Dit apparaat koppelen</string>
+  <string name="account_sip_cannot_be_registered">Account kan niet geregistreerd worden</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">Voer wachtwoord in om te bevestigen</string>
+  <string name="enter_password">Voer wachtwoord in</string>
+  <string name="revoke_device_title">Apparaat terugtrekken</string>
+  <string name="revoke_device_message">Weet je zeker dat je %1$s wil terugtrekken?</string>
+  <string name="revoke_device_wait_title">Even geduld...</string>
+  <string name="revoke_device_wait_message">Apparaat wordt teruggetrokken</string>
+  <string name="rename_device_title">Dit apparaat hernoemen</string>
+  <string name="rename_device_message">Kies een nieuwe naam om dit apparaat te identificeren in je Ring-account</string>
+  <string name="rename_device_button">Apparaat hernoemen</string>
+  <string name="account_rename_device_hint">Kies een nieuwe apparaatnaam</string>
+  <string name="account_device_name_empty">Apparaatnaam kan niet leeg zijn</string>
+  <string name="account_device_this_indicator">dit apparaat</string>
+  <string name="account_disabled_indicator">uitgeschakeld</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nl/strings_call.xml b/ring-android/androidtv/src/main/res/values-nl/strings_call.xml
new file mode 100644
index 0000000..085ee90
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nl/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Gaat over</string>
+    <string name="call_human_state_connecting">Verbinden</string>
+    <string name="call_human_state_ringing">Bellen</string>
+    <string name="call_human_state_current">Praten</string>
+    <string name="call_human_state_hungup">Over</string>
+    <string name="call_human_state_busy">Bezig</string>
+    <string name="call_human_state_failure">Mislukt</string>
+    <string name="call_human_state_hold">In wacht zetten</string>
+    <string name="call_human_state_unhold">Uit wacht halen</string>
+    <string name="call_human_state_over">Over</string>
+    <string name="call_human_state_none">Geen</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Actief aangesloten</string>
+    <string name="conference_human_state_active_detached">Actief losgekoppeld</string>
+    <string name="conference_human_state_active_attached_rec">Actief aangesloten rec</string>
+    <string name="conference_human_state_active_detached_rec">Actief losgekoppeld rec</string>
+    <string name="conference_human_state_hold">In wacht zetten</string>
+    <string name="conference_human_state_hold_rec">In wacht zetten rec</string>
+    <string name="conference_human_state_default">Geen</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-nl/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-nl/strings_content_description.xml
new file mode 100644
index 0000000..247c917
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nl/strings_content_description.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Snel bellen</string>
+  <string name="contact_picture_description">Contactfoto</string>
+  <string name="dial_numeric_pad">Numeriek toetsenbord</string>
+  <string name="contact_unblock">Deblokkeren</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-nl/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-nl/strings_preferences.xml
new file mode 100644
index 0000000..e8aafe2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-nl/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Netwerk</string>
+  <string name="pref_category_contacts">Contacten</string>
+  <string name="pref_category_system">Systeem</string>
+  <string name="pref_category_privacy">Privacy</string>
+  <string name="pref_mobileData_title">Mobiele data</string>
+  <string name="pref_mobileData_summary">Ring toestaan om 3G/LTE-netwerken te gebruiken naast Wi-Fi</string>
+  <string name="pref_systemContacts_title">Systeemcontacten gebruiken</string>
+  <string name="pref_systemContacts_summary">Systeemcontacten gebruiken om details beller te tonen</string>
+  <string name="pref_systemDialer_title">Systeemoproepen plaatsen met Ring</string>
+  <string name="pref_systemDialer_summary">Ring gebruiken voor systeemoproepen wanneer mogelijk</string>
+  <string name="pref_startOnBoot_title">Ring automatisch starten</string>
+  <string name="pref_startOnBoot_summary">Ring in achtergrond uitvoeren wanneer apparaat ingeschakeld wordt.</string>
+  <string name="pref_clearHistory_title">Geschiedenis wissen</string>
+  <string name="pref_clearHistory_summary">Geschiedenis van alle gesprekken wissen. Deze handeling kan niet ongedaan gemaakt worden.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pa/strings.xml b/ring-android/androidtv/src/main/res/values-pa/strings.xml
new file mode 100644
index 0000000..50db5e3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pa/strings.xml
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">ਰਿੰਗ</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">ਨਵਾਂ ਖਾਤਾ</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_settings">ਸੈਟਿੰਗ</string>
+  <string name="menu_item_about">ਰਿੰਗ ਬਾਰੇ</string>
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <!--ContactList Fragment-->
+  <string name="choose_number">ਨੰਬਰ ਚੁਣੋ</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <!--Call Fragment-->
+  <!--Text messages-->
+  <!--MediaPreferenceFragment-->
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <!--Conversation-->
+  <!--Contacts-->
+  <!--MenuHeaderView-->
+  <!--Share fragment-->
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pl-rPL/strings.xml b/ring-android/androidtv/src/main/res/values-pl-rPL/strings.xml
new file mode 100644
index 0000000..39bd977
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pl-rPL/strings.xml
@@ -0,0 +1,35 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <!--AB menus-->
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_about">O Ringu</string>
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <!--ContactList Fragment-->
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <!--Call Fragment-->
+  <!--Text messages-->
+  <!--MediaPreferenceFragment-->
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <!--Conversation-->
+  <!--Contacts-->
+  <!--MenuHeaderView-->
+  <!--Share fragment-->
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pl/strings.xml b/ring-android/androidtv/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000..a02232a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pl/strings.xml
@@ -0,0 +1,122 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring jest wolnym oprogramowaniem stworzonym przez</string>
+  <string name="copyright_section">Prawa autorskie</string>
+  <string name="contribute_section">Współpracuj</string>
+  <string name="version_section">Wersja</string>
+  <string name="no_email_app_installed">Nie znaleziono aplikacji e-mail. Zainstaluj jedną aby wysłać nam raport.</string>
+  <string name="email_chooser_title">Wyślij e-mail używając...</string>
+  <string name="credits">Podziękowania</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Brak połączenia z siecią</string>
+  <string name="error_mobile_network_available_but_disabled">Proszę w ustawieniach udzielić dostępu do sieci komórkowej.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nowe konto</string>
+  <string name="ab_action_chat">Tekstowe powiadamiania</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Otwórz szufladę nawigacyjną</string>
+  <string name="drawer_close">Zamknij szufladę nawigacyjną</string>
+  <!--Sections-->
+  <string name="menu_item_home">Ekran główny</string>
+  <string name="menu_item_accounts">Ustawienia kont</string>
+  <string name="menu_item_settings">Ustawienia</string>
+  <string name="menu_item_about">o Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Wykręć numer</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Powtórz</string>
+  <string name="hist_replay_button_stop">Zatrzymaj</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Rozmowa</item>
+    <item quantity="few">%d Rozmowy</item>
+    <item quantity="many">%d Rozmowy</item>
+    <item quantity="other">%d Rozmowy</item>
+  </plurals>
+  <string name="home_transfer_complet">Przełaczanie skończone</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Brak kontaktu</string>
+  <string name="starred_contacts_title">Ulubione kontakty</string>
+  <string name="searchbar_hint">Wpisz nazwisko albo numer telefonu...</string>
+  <string name="choose_number">Wybierz numer</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Przełaczenie do innego bieżącego połączenia:</string>
+  <string name="transfer_no_other_call">Żadne inne połączenia nie są oczekiwane</string>
+  <string name="transfer_type_number">Wpisz numer do którego chcesz się przełączyć</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Połączenie przychodzące od %1$s</string>
+  <string name="notif_incoming_call">Połączenie przychodzące</string>
+  <string name="notif_outgoing_call_title">Połączenie wychodzące do %1$s</string>
+  <string name="notif_outgoing_call">Połączenie wychodzące</string>
+  <string name="notif_current_call_title">Aktualna rozmowa z %1$s</string>
+  <string name="notif_current_call">Aktualna rozmowa</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Ty:</string>
+  <string name="action_call_attended_transfer">Ogłoszone przełaczenie</string>
+  <string name="action_call_conference">Konferencja</string>
+  <string name="action_call_hangup">Odłoż słuchawkę</string>
+  <string name="ongoing_call">Trwa połączenie</string>
+  <string name="hist_in_call">Czas przychodzączego połączenia: %1$s</string>
+  <string name="hist_out_call">Czas wychodzączego połączenia: %1$s</string>
+  <string name="start_error_title">Ring nie może się uruchomić!</string>
+  <string name="start_error_mic_required">Do działania Ring potrzebuje zezwolenia na wykorzystanie mikrofonu.</string>
+  <string name="action_call_accept">Odbierz</string>
+  <string name="action_call_decline">Odrzuć</string>
+  <string name="ab_action_speakerphone">Włącz głośnik</string>
+  <string name="ab_action_contact_add">Dodaj do kontaków</string>
+  <string name="ab_action_contact_add_question">Czy dodać do kontkatów?</string>
+  <string name="ab_action_audio_call">Połączenie głosowe</string>
+  <string name="ab_action_video_call">Połączenie wideo</string>
+  <string name="share_via">Wyślij przez</string>
+  <string name="write_a_message">Napisz wiadomość</string>
+  <string name="scan_qr">Zeskanuj kod QR</string>
+  <string name="ab_action_flipcamera">Zamień kamerę</string>
+  <!--Text messages-->
+  <string name="send_message">Wyślij wiadomość</string>
+  <string name="message_sending">Trwa wysyłanie wiadomości...</string>
+  <string name="time_just_now">W tej chwili</string>
+  <string name="permission_read_denied">Aplikacja nie może odczytać pamięci. Stąd, nie może funkcjonować prawidłowo. Proszę rozważyć przydzielenie jej uprawnień</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Uprawnienia do aparatu</string>
+  <string name="permission_dialog_camera_message">Wideorozmowa wymaga przyznania uprawnień dla aparatu. Proszę rozważyć odblokowanie jej.</string>
+  <string name="ringtone_error_title">Błąd</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring potrzebuje pozwolenia \"Kontakty\" żeby odblokować tą funkcję. Proszę udzielić go.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring potrzebuje pozwolenie \"Zapisywanie dziennika połączeń\" żeby odblokować tą funkcję. Proszę udzielić go.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Zeskanuj kod QR konta, które chcesz dodać.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Wyczyścić historię?</string>
+  <string name="clear_history_dialog_message">Tego działania nie można cofnąć.</string>
+  <string name="clear_history_completed">Historia została wyczyszczona.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Usuń tę rozmowę</string>
+  <string name="conversation_action_delete_this_title">Czy usunąć tę rozmowę?</string>
+  <string name="conversation_action_delete_this_message">Tego działania nie można cofnąć.</string>
+  <string name="conversation_action_copy_peer_number">Skopiuj numer</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s skopiowany do schowka</string>
+  <string name="conversation_action_select_peer_number">Wybierz numer</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Dodać %1$s ?</string>
+  <string name="prompt_new_password">Nowe hasło</string>
+  <string name="account_create_title">Stwórz konto Ring</string>
+  <string name="wizard_next">Następne</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">Nieznane</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">Błąd</string>
+  <!--Pending contact requests-->
+  <string name="accept">Akceptuj</string>
+  <string name="refuse">Odmów</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Wyślij</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pl/strings_account.xml b/ring-android/androidtv/src/main/res/values-pl/strings_account.xml
new file mode 100644
index 0000000..49540e1
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pl/strings_account.xml
@@ -0,0 +1,103 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Usuń</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Nazwa konta</string>
+  <string name="prompt_hostname">Nazwa hosta</string>
+  <string name="prompt_username">Nazwa użytkownika</string>
+  <string name="prompt_password">Hasło</string>
+  <string name="action_create_short">Zarejestruj</string>
+  <string name="error_field_required">To pole jest wymagane</string>
+  <string name="dialog_wait_create">Dodawanie konta</string>
+  <string name="dialog_wait_create_details">Proszę poczekaj aż twoje nowe konto jest dodane...</string>
+  <string name="dialog_warn_ip2ip_account_title">Utworzyć puste konto SIP?</string>
+  <string name="dialog_warn_ip2ip_account_message">Zamierzasz założyć konto SIP bez prawidłowego hosta.
+Będziesz mógł nawiązywać i odbierać połączenia wyłącznie od bezpośrednich adresów IP.
+Możesz edytować swoje konto później</string>
+  <string name="help_ring">Konto Ring pozwala Ci na dotarcie do ludzi bezpośrednio za pomocą sieci peer to peer w sieci całkowicie rozdzielonej.</string>
+  <string name="help_sip_title">Dodaj twoje konto SIP</string>
+  <string name="help_sip">Skonfiguruj istniejące konto SIP.</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Usuń konto ?</string>
+  <string name="account_delete_dialog_message">Tego działania nie można cofnąć.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Nie masz zarejestrowanego konta</string>
+  <string name="normal_accounts_titles">Konta</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Generalne</string>
+  <string name="account_basic_category">Ustawienia Podstawowe</string>
+  <string name="account_alias_label">Nazwa Konta</string>
+  <string name="account_hostname_label">Nazwa hosta</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Nazwa użytkownika</string>
+  <string name="account_password_label">Hasło</string>
+  <string name="account_optionnal_category">Ustawienia Opcjonalne</string>
+  <string name="account_useragent_label">User Agent</string>
+  <string name="account_autoanswer_label">Automatyczna Odpowiedź</string>
+  <string name="account_upnp_label">Włącz UPnP</string>
+  <string name="account_proxy_field">Pełnomocnik</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Multimedia</string>
+  <string name="account_ringtone_label">Dzwonki</string>
+  <string name="account_ringtone_enabled_label">Aktywuj dzwonki</string>
+  <string name="account_ringtone_path_label">Ścieżka do dzwonka</string>
+  <!--Video Details-->
+  <string name="account_video_label">Wideo</string>
+  <string name="account_video_enable">Włącz video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Zaawansowane</string>
+  <string name="account_registration_exp_label">Rejestracja Wygasła</string>
+  <string name="account_local_interface_label">Lokalny Interfejs</string>
+  <string name="account_local_port_label">Port Lokalny</string>
+  <string name="account_stun_enable_label">Użyj Stun</string>
+  <string name="account_stun_server_label">Serwer Stun</string>
+  <string name="account_turn_enable_label">Użyj TURN</string>
+  <string name="account_turn_server_label">Serwer TURN</string>
+  <string name="account_turn_username_label">Nazwa użytkownika TURN</string>
+  <string name="account_turn_password_label">Hasło TURN</string>
+  <string name="account_published_same_as_local_label">Opublikowano tak samo jak lokalny</string>
+  <string name="account_published_port_label">Opublikowany Port</string>
+  <string name="account_published_address_label">Opublikowany Adres</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Detale</string>
+  <string name="account_credentials_edit">Edytuj detale</string>
+  <string name="account_credentials_add">Dodaj detale</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Zabezpieczenia</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Korzystaj z transportu TLS</string>
+  <string name="account_tls_port_label">TLS Port Słuchujący</string>
+  <string name="account_tls_certificate_list_label">Autorytety Certyfikatów</string>
+  <string name="account_tls_certificate_file_label">Plik Certyfikatu</string>
+  <string name="account_tls_private_key_file_label">Plik Klucza Prywatnego</string>
+  <string name="account_tls_password_label">Hasło Klucza Prywatnego</string>
+  <string name="account_tls_method_label">Metoda TLS</string>
+  <string name="account_tls_ciphers_label">Szyfry TLS</string>
+  <string name="account_tls_server_name_label">Nazwa Serwera</string>
+  <string name="account_tls_verify_server_label">Zweryfikuj Serwer</string>
+  <string name="account_tls_verify_client_label">Zweryfikuj Klient</string>
+  <string name="account_tls_negotiation_timeout_sec">Limit czasu do negocjacji (w sekundach)</string>
+  <string name="account_rtp_max_port">Maksimum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Zakres Portów Audio RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Wprowadź hasło, aby odszyfrować plik.</string>
+  <string name="account_restore_decryption_password">Hasło rozszyfrowania</string>
+  <string name="restore_backup_wait">Proszę czekać…</string>
+  <string name="error_password_char_count">minimum 6 znaków</string>
+  <string name="error_passwords_not_equals">Hasła nie pasują do siebie</string>
+  <string name="restore_failed_dialog_msg">Wystąpił błąd</string>
+  <string name="export_account_wait_title">Proszę czekać…</string>
+  <string name="account_export_end_error_title">Błąd</string>
+  <string name="account_new_button">Stwórz konto Ring</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">Łączenie</string>
+  <string name="account_status_unknown">Nieznane</string>
+  <!--Create account-->
+  <string name="account_creation_home">Witamy w Ring</string>
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Proszę czekać…</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pl/strings_call.xml b/ring-android/androidtv/src/main/res/values-pl/strings_call.xml
new file mode 100644
index 0000000..d80ea3a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pl/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Dzwonienie</string>
+    <string name="call_human_state_connecting">Łączenie</string>
+    <string name="call_human_state_ringing">Dzwonienie</string>
+    <string name="call_human_state_current">Rozmawianie</string>
+    <string name="call_human_state_hungup">Koniec</string>
+    <string name="call_human_state_busy">Zajęty</string>
+    <string name="call_human_state_failure">Nie powiodła się</string>
+    <string name="call_human_state_hold">Czekanie</string>
+    <string name="call_human_state_unhold">Wznów</string>
+    <string name="call_human_state_over">Koniec</string>
+    <string name="call_human_state_none">Nic</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Aktywny załącznik</string>
+    <string name="conference_human_state_active_detached">Aktywnie oderwany</string>
+    <string name="conference_human_state_active_attached_rec">Aktywnie podłączony nagrywanie</string>
+    <string name="conference_human_state_active_detached_rec">Aktywnie oderwany nagrywanie</string>
+    <string name="conference_human_state_hold">Czekanie</string>
+    <string name="conference_human_state_hold_rec">Przytrzymaj rec</string>
+    <string name="conference_human_state_default">Nic</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-pl/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-pl/strings_content_description.xml
new file mode 100644
index 0000000..c596ee8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pl/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Szybkie Połączenie</string>
+  <string name="contact_picture_description">Zdjęcie Kontaktu</string>
+  <string name="dial_numeric_pad">Klawiatura numeryczna</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pl/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-pl/strings_preferences.xml
new file mode 100644
index 0000000..d347d38
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pl/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Sieć</string>
+  <string name="pref_category_contacts">Kontakty</string>
+  <string name="pref_category_system">System</string>
+  <string name="pref_category_privacy">Prywatność</string>
+  <string name="pref_mobileData_title">Dane mobilne</string>
+  <string name="pref_mobileData_summary">Pozwól Ring na sieciach 3G / LTE poza Wi-Fi</string>
+  <string name="pref_systemContacts_title">Użyj kontakty z systemu</string>
+  <string name="pref_systemContacts_summary">Użyj kontakty z systemu aby pokazać detale tego który dzwoni</string>
+  <string name="pref_systemDialer_title">Użyj Ring jako zastępstwo dla rozmow które zazwyczaj idą przez system </string>
+  <string name="pref_systemDialer_summary">Użyj Ring żeby zastąpić rozmowy które zazwyczaj idą przez system kiedy mozliwe</string>
+  <string name="pref_startOnBoot_title">Uruchom Ring przy Starcie</string>
+  <string name="pref_startOnBoot_summary">Uruchom Ring w tle podczas uruchomienia systemu.</string>
+  <string name="pref_clearHistory_title">Wyczyść historię</string>
+  <string name="pref_clearHistory_summary">Wyczyść całą historię konwersacji. Ta czynność nie może być cofnięta.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pt-rBR/strings.xml b/ring-android/androidtv/src/main/res/values-pt-rBR/strings.xml
new file mode 100644
index 0000000..b2f7fd3
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt-rBR/strings.xml
@@ -0,0 +1,161 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Feedback</string>
+  <string name="report">&lt;u&gt;Envie-nos um email&lt;/u&gt;</string>
+  <string name="section_license">Licença</string>
+  <string name="sponsor_section">Ring é um software livre desenvolvido e mantido por</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Contribua</string>
+  <string name="version_section">Versão</string>
+  <string name="no_email_app_installed">Aplicação de e-mail não encontrada. Instale uma para nos enviar um relatório de erros.</string>
+  <string name="no_browser_app_installed">Nenhum Navegador de Internet encontrado, instale um para ver esta página</string>
+  <string name="email_chooser_title">Enviar e-mail usando...</string>
+  <string name="website_chooser_title">Ver site utilizando...</string>
+  <string name="license">Este software é disponibilizado \"no estado\", sem garantia de qualquer tipo. 
+Para maiores detalhes, consulte a &lt;u&gt;Licença GPL versão 3 ou mais recente&lt;/u&gt;</string>
+  <string name="description">Ring é um software livre para comunicação universal que respeita as liberdades e privacidade de seus usuários.</string>
+  <string name="credits">Créditos</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Sem conectividade</string>
+  <string name="error_mobile_network_available_but_disabled">Por favor, conceda acesso a rede do celular na tela de configurações .</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nova conta</string>
+  <string name="ab_action_chat">Mensagens de texto</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Abrir navegação</string>
+  <string name="drawer_close">Fechar navegação</string>
+  <!--Sections-->
+  <string name="menu_item_home">Início</string>
+  <string name="menu_item_contact_request">Solicitações de contatos</string>
+  <string name="menu_item_accounts">Gerenciar contas</string>
+  <string name="menu_item_settings">Configurações</string>
+  <string name="menu_item_share">Compartilhar meu contato</string>
+  <string name="menu_item_blacklist">Contatos bloqueados</string>
+  <string name="menu_item_about">Sobre o Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Disque um número</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Repetir</string>
+  <string name="hist_replay_button_stop">Parar</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversa</item>
+    <item quantity="other">%d Conversas</item>
+  </plurals>
+  <string name="home_transfering">Transferindo %1$s para %2$s</string>
+  <string name="home_transfer_complet">Transferência completa</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Nenhum contato encontrado</string>
+  <string name="starred_contacts_title">Favoritos</string>
+  <string name="searchbar_hint">Digite nome ou número de telefone</string>
+  <string name="choose_number">Escolhe um número</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transferir para outra chamada atual:</string>
+  <string name="transfer_no_other_call">Nenhuma outra chamada pendente</string>
+  <string name="transfer_type_number">Digite o número para transferir:</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">Chamadas recebidas perdidas</string>
+  <string name="notif_missed_outgoing_call">Chamadas efetuadas perdidas</string>
+  <string name="notif_incoming_call_title">Chamada recebida de %1$s</string>
+  <string name="notif_incoming_call">Chamada recebida</string>
+  <string name="notif_outgoing_call_title">Chamada efetuada para %1$s</string>
+  <string name="notif_outgoing_call">Chamada efetuada</string>
+  <string name="notif_current_call_title">Chamada atual com %1$s</string>
+  <string name="notif_current_call">Chamada atual</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Você:</string>
+  <string name="action_call_attended_transfer">Transferência atendida</string>
+  <string name="action_call_conference">Conferência</string>
+  <string name="action_call_hangup">Desligar</string>
+  <string name="ongoing_call">Chamada em andamento</string>
+  <string name="hist_in_call">Recebimento de chamada %1$s</string>
+  <string name="hist_out_call">Chamada de saída %1$s</string>
+  <string name="start_error_title">Não é possível iniciar o Ring!</string>
+  <string name="start_error_mic_required">Ring requer permissão para uso do microfone para funcionar</string>
+  <string name="action_call_accept">Atender chamada</string>
+  <string name="action_call_decline">Rejeitar</string>
+  <string name="ab_action_speakerphone">Habilitar viva-voz</string>
+  <string name="ab_action_contact_add">Adicionar aos contatos</string>
+  <string name="ab_action_contact_add_question">Adicionar aos contatos?</string>
+  <string name="ab_action_audio_call">Voz da chamada</string>
+  <string name="ab_action_video_call">Chamada de Vídeo</string>
+  <string name="ab_action_change_screen_orientation">Mudar orientação de tela</string>
+  <string name="share_via">Compartilhar via</string>
+  <string name="write_a_message">Escrever uma mensagem</string>
+  <string name="scan_qr">Escanear QR Code</string>
+  <string name="ab_action_flipcamera">Virar câmera</string>
+  <!--Text messages-->
+  <string name="send_message">Enviar mensagem</string>
+  <string name="message_sending">Enviando mensagem...</string>
+  <string name="time_just_now">Agora há pouco</string>
+  <string name="permission_read_denied">Não foi permitido acessar o armazenamento. Por isso, o aplicativo não pôde funcionar corretamente. Considere permitir este acesso.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Permissão de câmera</string>
+  <string name="permission_dialog_camera_message">Conversas de vídeo requerem permissão para acesso à câmera. Considere habilitá-la.</string>
+  <string name="ringtone_error_title">Erro</string>
+  <string name="ringtone_error_format_not_supported">Este formato não é suportado.</string>
+  <string name="ringtone_error_size_too_big">Este arquivo é muito grande. O tamanho máximo é %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">O Ring precisa de permissão para \"Acessar contatos\" para habilitar esta função. Permita, por favor.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring precisa de permissão para \'Escrever registro de chamadas\' para ativar esse recurso. Por favor, conceda-o.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Escanear o QR Code da conta que deseja adicionar.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Limpar histórico?</string>
+  <string name="clear_history_dialog_message">Esta ação não pode ser revista.</string>
+  <string name="clear_history_completed">O histórico foi apagado.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Deletar conversa</string>
+  <string name="conversation_action_delete_this_title">Deletar esta conversa ?</string>
+  <string name="conversation_action_delete_this_message">Esta ação não pode ser revista.</string>
+  <string name="conversation_action_copy_peer_number">Copiar número</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s copiado para área de transferência</string>
+  <string name="conversation_action_select_peer_number">Selecione um numero</string>
+  <string name="conversation_action_block_this">Bloquear este contato</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Adicionar %1$s ?</string>
+  <string name="prompt_new_password">Nova senha</string>
+  <string name="prompt_new_password_repeat">Repita a nova senha</string>
+  <string name="account_create_title">Criar uma conta no Ring</string>
+  <string name="prompt_new_username">Entre novo nome de usuário</string>
+  <string name="help_password_choose">Utilize uma senha segura de sua preferência para proteger sua conta Ring</string>
+  <string name="help_password_enter">Entre com a senha da sua conta Ring principal</string>
+  <string name="help_pin_enter">Entre com o PIN de uma outra conta Ring já configurada. Utilize a opção \"exportar conta no Ring\" para obter um novo PIN.</string>
+  <string name="wizard_next">Próximo</string>
+  <string name="wizard_back">Voltar</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Meu perfil</string>
+  <string name="profile_message_warning">Seu perfil é compartilhado apenas com seus contatos</string>
+  <string name="open_the_gallery">Abrir a galeria</string>
+  <string name="take_a_photo">Tirar uma foto</string>
+  <string name="profile_name_hint">Insira o seu nome (opcional)</string>
+  <string name="unknown">Desconhecido</string>
+  <!--Share fragment-->
+  <string name="share_message">Escaneie o QRCode com o escaner embutido da aplicação Ring que deseja se comunicar com você.</string>
+  <string name="share_message_no_account">Por favor selecione uma conta para compartilhar.</string>
+  <string name="share_your_account_information">Compartilhar meus dados de contato</string>
+  <string name="generic_error_migration">Erro</string>
+  <string name="generic_error_migration_message">Um erro ocorreu durante a migração</string>
+  <!--Pending contact requests-->
+  <string name="accept">Aceitar</string>
+  <string name="refuse">Recusar</string>
+  <string name="block">Bloquear</string>
+  <string name="contact_request_title">Solicitação de contato pendente</string>
+  <string name="contact_request_msg">Você tem %1$s solicitação pendentes</string>
+  <string name="contact_request_account">para %1$s</string>
+  <string name="no_requests">0 solicitações de contato</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Enviar</string>
+  <string name="send_request_title">Enviar uma solicitação de contato</string>
+  <string name="send_request_msg">Você deve enviar uma solicitação de contato para se comunicar com este usuário. Enquanto o contato não aceitar seu pedido, você pode enviar mensagens, mas ele não ira as ler.</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 contatos bloqueados</string>
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pt-rBR/strings_account.xml b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_account.xml
new file mode 100644
index 0000000..1f87308
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_account.xml
@@ -0,0 +1,198 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Deletar</string>
+  <string name="ic_advanced_menu">Configurações avançadas</string>
+  <string name="ic_blacklist_menu">Contatos bloqueados</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Adicionar conta Ring</string>
+  <string name="add_sip_account_title">Adicionar conta SIP</string>
+  <string name="ring_account_default_name">Conta Ring %1$s</string>
+  <string name="prompt_alias">Apelido</string>
+  <string name="prompt_hostname">Servidor</string>
+  <string name="prompt_username">Nome de usuário</string>
+  <string name="prompt_password">Senha</string>
+  <string name="action_create">Criar conta</string>
+  <string name="action_create_short">Registrar</string>
+  <string name="error_field_required">Este campo é obrigatório</string>
+  <string name="dialog_wait_create">Adicionando conta</string>
+  <string name="dialog_wait_create_details">Por favor, aguarde enquanto sua nova conta é adicionada...</string>
+  <string name="dialog_wait_update">Atualizando conta</string>
+  <string name="dialog_wait_update_details">Por favor, aguarde enquanto sua nova conta é atualizada...</string>
+  <string name="dialog_warn_ip2ip_account_title">Criar uma conta SIP vazia?</string>
+  <string name="dialog_warn_ip2ip_account_message">Você está prestes a criar uma conta SIP com nenhum nome de host válido.
+Você só será capaz de fazer e receber chamadas IP diretos.
+Você pode editar sua conta depois.</string>
+  <string name="account_type_ip2ip">IP da conta</string>
+  <string name="help_ring">Uma conta do Ring permite que você entre em contato com pessoas de forma segura em uma rede peer-to-peer totalmente distribuída.</string>
+  <string name="help_sip_title">Adicionar sua conta SIP</string>
+  <string name="help_sip">Configurar uma conta SIP existente.</string>
+  <string name="create_sip_account">Adicionar conta SIP</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Deletar conta?</string>
+  <string name="account_delete_dialog_message">Esta ação não pode ser revista.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Nenhuma conta registrada</string>
+  <string name="normal_accounts_titles">Contas</string>
+  <string name="normal_devices_titles">Dispositivos conhecidos conectados à esta conta Ring</string>
+  <string name="account_device_revoke">Revogar dispositivo</string>
+  <string name="account_device_revocation_success_title">Sucesso</string>
+  <string name="account_device_revocation_success">Dispositivo foi revogado!</string>
+  <string name="account_device_revocation_error_title">Não é possível revogar dispositivo</string>
+  <string name="account_device_revocation_wrong_password">Senha Incorreta.</string>
+  <string name="account_device_revocation_unknown_device">Dispositivo desconhecido.</string>
+  <string name="account_device_revocation_error_unknown">Erro desconhecido.</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Geral</string>
+  <string name="account_basic_category">Configurações básicas</string>
+  <string name="account_alias_label">Nome da conta</string>
+  <string name="account_hostname_label">Servidor</string>
+  <string name="account_bootstrap_label">Inicialização</string>
+  <string name="account_username_label">Nome de usuário</string>
+  <string name="account_password_label">Senha</string>
+  <string name="account_optionnal_category">Configurações opcionais</string>
+  <string name="account_useragent_label">Agente de usuário</string>
+  <string name="account_autoanswer_label">Resposta automática</string>
+  <string name="account_upnp_label">Habilitar UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Mídia</string>
+  <string name="account_ringtone_label">Toque de chamada</string>
+  <string name="account_ringtone_enabled_label">Ativar toques de chamada</string>
+  <string name="account_ringtone_path_label">Caminho do toque de chamada</string>
+  <string name="account_ringtone_custom_label">Usar toque personalizado</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vídeo</string>
+  <string name="account_video_enable">Habilitar Vídeo</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avançado</string>
+  <string name="account_dht_public_in_calls_label">Permitir todas as chamadas/mensagens</string>
+  <string name="account_registration_exp_label">Registro expirou</string>
+  <string name="account_local_interface_label">Interface local</string>
+  <string name="account_local_port_label">Portal Local</string>
+  <string name="account_stun_enable_label">Usar Stun</string>
+  <string name="account_stun_server_label">Server Stun</string>
+  <string name="account_turn_enable_label">Usar TURN</string>
+  <string name="account_turn_server_label">Servidor TURN</string>
+  <string name="account_turn_username_label">Nome de usuário TURN</string>
+  <string name="account_turn_password_label">Senha TURN</string>
+  <string name="account_published_same_as_local_label">Publicado como local</string>
+  <string name="account_published_port_label">Porta publicada</string>
+  <string name="account_published_address_label">Endereço publicado</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Credenciais</string>
+  <string name="account_credentials_edit">Editar credenciais</string>
+  <string name="account_credentials_add">Adicionar credenciais</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Segurança</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Use transporte TLS</string>
+  <string name="account_tls_port_label">Ouvinte da porta TLS</string>
+  <string name="account_tls_certificate_list_label">Autoridades de Certificação</string>
+  <string name="account_tls_certificate_file_label">Arquivo de certificado</string>
+  <string name="account_tls_private_key_file_label">Arquivo chave privada</string>
+  <string name="account_tls_password_label">Senha chave privada</string>
+  <string name="account_tls_method_label">Método TLS</string>
+  <string name="account_tls_ciphers_label">Cifras TLS</string>
+  <string name="account_tls_server_name_label">Nome do servidor</string>
+  <string name="account_tls_verify_server_label">Verificar Servidor</string>
+  <string name="account_tls_verify_client_label">Verificar Cliente</string>
+  <string name="account_tls_negotiation_timeout_sec">Tempo espera negociação(sec)</string>
+  <string name="account_rtp_max_port">Máximo</string>
+  <string name="account_rtp_min_port">Mínimo</string>
+  <string name="account_rtp_port_range">Variação de portas de audio RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Restaurar uma conta</string>
+  <string name="account_restore_message">Digite a senha para descriptografar o arquivo.</string>
+  <string name="account_restore_decryption_password">Senha de descriptografia</string>
+  <string name="account_new_device_password">Entre com a senha principal para desbloquear conta</string>
+  <string name="restore_dialog_title">Restaurando</string>
+  <string name="restore_backup_wait">Por favor, aguarde...</string>
+  <string name="error_password_char_count">Pelo menos 6 caracteres</string>
+  <string name="error_passwords_not_equals">Senhas não correspondem</string>
+  <string name="restore_failed_dialog_title">Falha na restauração</string>
+  <string name="restore_failed_dialog_msg">Um erro ocorreu</string>
+  <string name="export_account_wait_title">Por favor, aguarde...</string>
+  <string name="export_account_wait_message">Propagando informação da nova conta</string>
+  <string name="account_export_end_decryption_message">Não foi possível desbloquear sua conta utilizando a senha fornecida.</string>
+  <string name="account_export_end_network_title">Erro de rede</string>
+  <string name="account_export_end_network_message">Não foi possível exportar a conta na rede. Verifique sua conexão.</string>
+  <string name="account_export_end_error_title">Erro</string>
+  <string name="account_export_end_error_message">Não foi possível exportar a conta. Um erro desconhecido ocorreu.</string>
+  <string name="account_enter_password">Entre a senha</string>
+  <string name="account_share_body">Contacte-me usando \'%1$s\' na plataforma de comunicação distribuída Ring: http://ring.cx</string>
+  <string name="account_share_body_with_username">Contacte-me usando  \'%1$s\' ou meu usuário público \'%2$s\' na plataforma de comunicação distribuída Ring: http://ring.cx</string>
+  <string name="account_contact_me">Encontre-me no Ring !</string>
+  <string name="update_account">Atualize a conta</string>
+  <string name="account_migration">Sua conta no Ring pode ser atualizada.\nPor favor insira sua senha.</string>
+  <string name="ring_account">Conta Ring</string>
+  <string name="ring_account_identity">Identificação</string>
+  <string name="account_migration_title_dialog">Migração de conta</string>
+  <string name="account_migration_message_dialog">Sua conta precisa ser atualizada. Você deseja ir na tela de administração da conta para fazer isto?</string>
+  <string name="account_update_needed">Atualização necessária</string>
+  <string name="account_creation_file_too_big">Arquivo muito grande</string>
+  <string name="account_cannot_read">Não foi possível ler %1$s</string>
+  <string name="account_cannot_be_found_title">Não foi possível localizar conta</string>
+  <string name="account_cannot_be_found_message">Não foi possível localizar a conta na rede Ring.\nCertifique-se de que foi exportada no Ring de um dispositivo existente, e que as informações fornecidas estão corretas.</string>
+  <string name="account_sip_cannot_be_registered_message">Você pode continuar com o processo de criação de conta ou editar suas informações aqui. A edição também é possível mais tarde nas configurações de conta.</string>
+  <string name="account_no_network_title">Não foi possível conectar-se à rede.</string>
+  <string name="account_no_network_message">Não foi possível adicionar a conta porque o Ring não pôde conectar-se à rede distribuída. Verifique a conexão do seu dispositivo.</string>
+  <string name="account_device_added_title">Dispositivo adicionado à conta</string>
+  <string name="account_device_added_message">Você configurou sua conta Ring neste dispositivo com sucesso.</string>
+  <string name="account_device_updated_title">Dispositivo da conta atualizado</string>
+  <string name="account_device_updated_message">Você atualizou sua conta Ring com sucesso.</string>
+  <string name="account_cannot_be_updated_message">Conta do dispositivo não pode ser atualizada. Por favor cheque sua senha.</string>
+  <string name="account_sip_success_title">Conta SIP registrada</string>
+  <string name="account_sip_success_message">Você registrou sua conta SIP com sucesso.</string>
+  <string name="account_sip_register_anyway">Registrar mesmo assim</string>
+  <string name="account_link_button">Associar este dispositivo a uma conta</string>
+  <string name="account_import_title">Associar à uma conta existente</string>
+  <string name="account_link_prompt_pin">Entre o PIN</string>
+  <string name="account_wizard_title">Bem Vindo a</string>
+  <string name="account_new_button">Criar uma conta no Ring</string>
+  <string name="account_link_export_button">Associar outro dispositivo à esta conta.</string>
+  <string name="account_link_export_info">Para usar esta conta em outros dispositivos, você deve antes expô-la no Ring. Isso gerará um código PIN que você deverá entrar no novo dispositivo para configurar a conta. Este PIN é válido por 10 minutos. \n\n Por favor, forneça sua senha para iniciar:</string>
+  <string name="account_start_export_button">Gerar PIN</string>
+  <string name="account_end_export_button">fechar</string>
+  <string name="account_end_export_infos">Seu PIN é:\n\n%%\n\nPara completar o processo, você deve abrir o Ring no novo dispositivo. Crie uma nova conta com \"Associar este dispositivo à uma conta\". Seu PIN é válido por 10 minutos.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Não foi possível registrar nome: senha da conta errada.</string>
+  <string name="register_name_invalid">Não foi possível registrar nome: nome inválido.</string>
+  <string name="register_name_already_taken">Não foi possível registrar nome: nome já utilizado.</string>
+  <string name="register_name_network_error">Não foi possível registrar nome: erro de rede ou servidor.</string>
+  <string name="error_username_empty">Entre um nome de usuário</string>
+  <string name="no_registered_name_for_account">Nenhum nome registrado encontrado para esta conta</string>
+  <string name="register_name">Registrar nome</string>
+  <string name="trying_to_register_name">Tentando registrar nome</string>
+  <string name="registered_username">Nome de usuário registrado</string>
+  <string name="register_username">Registrar usuário público (experimental)</string>
+  <string name="username_already_taken">Nome de usuário já em uso</string>
+  <string name="invalid_username">Nome de usuário inválido</string>
+  <string name="looking_for_username_availability">Buscando disponibilidade de usuário...</string>
+  <string name="account_status_connecting">Conectando</string>
+  <string name="account_status_connection_error">Erro de conexão</string>
+  <string name="account_status_online">Online</string>
+  <string name="account_status_unknown">Desconhecido</string>
+  <string name="account_status_offline">Offline</string>
+  <!--Create account-->
+  <string name="account_creation_home">Bem-vindo ao Ring</string>
+  <string name="account_creation_profile">Criar um Perfil</string>
+  <string name="account_creation_ring">Criar sua conta Ring</string>
+  <string name="account_link_title">Conectar este dispositivo</string>
+  <string name="account_sip_cannot_be_registered">Impossível registrar conta.</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">Digite senha para confirmar</string>
+  <string name="enter_password">Entre a senha</string>
+  <string name="revoke_device_title">Revogar dispositivo</string>
+  <string name="revoke_device_message">Tem certeza que você deseja revogar %1$s ?</string>
+  <string name="revoke_device_wait_title">Por favor, aguarde...</string>
+  <string name="revoke_device_wait_message">Revogando dispositivo</string>
+  <string name="rename_device_title">Renomear este dispositivo</string>
+  <string name="rename_device_message">Escolha um novo nome para identificar este dispositivo na sua conta Ring</string>
+  <string name="rename_device_button">Renomear dispositivo</string>
+  <string name="account_rename_device_hint">Escolher novo nome de dispositivo</string>
+  <string name="account_device_name_empty">Nome do dispositivo não pode estar vazio</string>
+  <string name="account_device_this_indicator">este dispositivo</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pt-rBR/strings_call.xml b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_call.xml
new file mode 100644
index 0000000..21d8dc0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Tocando</string>
+    <string name="call_human_state_connecting">Conectando</string>
+    <string name="call_human_state_ringing">Chamando</string>
+    <string name="call_human_state_current">Falando</string>
+    <string name="call_human_state_hungup">Sobre</string>
+    <string name="call_human_state_busy">Ocupado</string>
+    <string name="call_human_state_failure">Falhou</string>
+    <string name="call_human_state_hold">Modo de espera</string>
+    <string name="call_human_state_unhold">Soltar</string>
+    <string name="call_human_state_over">Sobre</string>
+    <string name="call_human_state_none">Nenhum</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Ativo anexado</string>
+    <string name="conference_human_state_active_detached">Ativo individual</string>
+    <string name="conference_human_state_active_attached_rec">Gravação ativa anexada</string>
+    <string name="conference_human_state_active_detached_rec">Gravação ativa individual</string>
+    <string name="conference_human_state_hold">Modo de espera</string>
+    <string name="conference_human_state_hold_rec">Gravação de espera</string>
+    <string name="conference_human_state_default">Nenhum</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-pt-rBR/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_content_description.xml
new file mode 100644
index 0000000..aff85b5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_content_description.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Chamada Rápida</string>
+  <string name="contact_picture_description">Imagem de Contato</string>
+  <string name="dial_numeric_pad">Teclado de discagem Numérico</string>
+  <string name="contact_unblock">Desbloquear</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pt-rBR/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_preferences.xml
new file mode 100644
index 0000000..c1dd1b5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt-rBR/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Rede</string>
+  <string name="pref_category_contacts">Contatos</string>
+  <string name="pref_category_system">Sistema</string>
+  <string name="pref_category_privacy">Privacidade</string>
+  <string name="pref_mobileData_title">Dados do Celular</string>
+  <string name="pref_mobileData_summary">Permitir tocar em redes 3G/LTE junto ao Wi-Fi</string>
+  <string name="pref_systemContacts_title">Usar contatos do sistema</string>
+  <string name="pref_systemContacts_summary">Usar contatos do sistema para mostrar detalhes da chamada</string>
+  <string name="pref_systemDialer_title">Sistema de chamadas usando Ring</string>
+  <string name="pref_systemDialer_summary">Usar Ring para chamadas do sistema sempre que possível.</string>
+  <string name="pref_startOnBoot_title">Inicializar o Ring automaticamente</string>
+  <string name="pref_startOnBoot_summary">Executar o Ring em segundo plano ao inicializar o sistema.</string>
+  <string name="pref_clearHistory_title">Limpar histórico</string>
+  <string name="pref_clearHistory_summary">Limpar todo o histórico de conversas. Esta ação não pode ser revista.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pt/strings.xml b/ring-android/androidtv/src/main/res/values-pt/strings.xml
new file mode 100644
index 0000000..dba8a62
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt/strings.xml
@@ -0,0 +1,121 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring é um software livre desenvolvido e mantido por</string>
+  <string name="copyright_section">Direitos de autor</string>
+  <string name="contribute_section">Contribuir</string>
+  <string name="version_section">Versão</string>
+  <string name="no_email_app_installed">Nenhuma aplicação de email encontrada no dispositivo. Instale uma para que nos possa enviar um relatório.</string>
+  <string name="email_chooser_title">Enviar email utilizando...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="error_no_network">Sem conexão de rede</string>
+  <string name="error_mobile_network_available_but_disabled">Por favor, permita o acesso à rede móvel nas definições do dispositivo.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Criar conta</string>
+  <string name="ab_action_chat">Mensagem de texto</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_home">Início</string>
+  <string name="menu_item_accounts">Gerir contas</string>
+  <string name="menu_item_settings">Configurações</string>
+  <string name="menu_item_share">Partilhar o meu contacto</string>
+  <string name="menu_item_about">Sobre Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Marcar um número</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Reproduzir novamente</string>
+  <string name="hist_replay_button_stop">Parar</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Conversa</item>
+    <item quantity="other">%d Conversas</item>
+  </plurals>
+  <string name="home_transfer_complet">Transferência completa</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Contacto não encontrado</string>
+  <string name="starred_contacts_title">Favoritos</string>
+  <string name="searchbar_hint">Introduza um nome ou número de telemóvel...</string>
+  <string name="choose_number">Escolha um número</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Transferir para outra chamada em curso:</string>
+  <string name="transfer_no_other_call">Sem chamadas pendentes</string>
+  <string name="transfer_type_number">Insira o número para onde pretende transferir:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">A receber chamada de %1$s</string>
+  <string name="notif_incoming_call">A receber chamada</string>
+  <string name="notif_current_call_title">Em chamada com %1$s</string>
+  <string name="notif_current_call">Chamada atual</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Tu:</string>
+  <string name="action_call_conference">Conferência</string>
+  <string name="action_call_hangup">Desligar</string>
+  <string name="ongoing_call">Chamada em curso</string>
+  <string name="hist_in_call">A receber chamada de %1$s</string>
+  <string name="start_error_title">Não foi possível iniciar o Ring !</string>
+  <string name="start_error_mic_required">Ring necessita da permissão de microfone para funcionar.</string>
+  <string name="action_call_accept">Atender chamada</string>
+  <string name="action_call_decline">Recusar</string>
+  <string name="ab_action_speakerphone">Ligar altifalante</string>
+  <string name="ab_action_contact_add">Adicionar aos contactos</string>
+  <string name="ab_action_contact_add_question">Adicionar aos contactos ?</string>
+  <string name="ab_action_audio_call">Chamada de áudio</string>
+  <string name="ab_action_video_call">Chamada de vídeo</string>
+  <string name="share_via">Partilhar via</string>
+  <string name="write_a_message">Escrever mensagem</string>
+  <string name="scan_qr">Digitalizar código QR</string>
+  <string name="ab_action_flipcamera">Alterar câmara</string>
+  <!--Text messages-->
+  <string name="send_message">Enviar mensagem</string>
+  <string name="message_sending">Enviando a mensagem...</string>
+  <string name="time_just_now">Agora mesmo</string>
+  <string name="permission_read_denied">A aplicação não está autorizada a consultar o armazenamento do dispositivo, pelo que poderá não funcionar adequadamente. Por favor, considere garantir esta permissão.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Permissão de câmara</string>
+  <string name="permission_dialog_camera_message">As conversações por vídeo requerem a permissão da câmara. Por favor, considere garanti-la. </string>
+  <string name="ringtone_error_title">Erro</string>
+  <string name="ringtone_error_format_not_supported">Este formato não é suportado.</string>
+  <string name="ringtone_error_size_too_big">Ficheiro demasiado grande. O tamanho máximo permitido é de %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring precisa da permissão \"Ler contactos\" para ativar esta funcionalidade. Por favor, garanta-a.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring precisa da permissão \"Escrever no registo de chamadas\" para ativar esta funcionalidade. Por favor, garanta-a.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Digitalize o código QR da conta que pretende adicionar.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Limpar histórico?</string>
+  <string name="clear_history_dialog_message">Esta ação não pode ser reposta.</string>
+  <string name="clear_history_completed">Histórico limpo.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Eliminar conversa</string>
+  <string name="conversation_action_delete_this_title">Eliminar conversa ?</string>
+  <string name="conversation_action_delete_this_message">Esta ação não pode ser reposta.</string>
+  <string name="conversation_action_copy_peer_number">Copiar número</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s copiado para a área de transferência</string>
+  <string name="conversation_action_select_peer_number">Selecione um número</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Adicionar %1$s ?</string>
+  <string name="prompt_new_password">Nova password</string>
+  <string name="prompt_new_password_repeat">Repetir nova password</string>
+  <string name="account_create_title">Criar uma conta Ring</string>
+  <string name="prompt_new_username">Introduza um nome de utilizador</string>
+  <string name="help_password_choose">Escolha uma password forte para proteger a sua conta Ring.</string>
+  <string name="help_password_enter">Introduza a sua password principal do Ring</string>
+  <string name="wizard_next">Próximo</string>
+  <!--MenuHeaderView-->
+  <string name="profile">O meu perfil</string>
+  <string name="open_the_gallery">Abrir galeria</string>
+  <string name="take_a_photo">Capturar fotografia</string>
+  <string name="unknown">Desconhecido</string>
+  <!--Share fragment-->
+  <string name="share_your_account_information">Partilhar a minha informação de contacto</string>
+  <string name="generic_error_migration">Erro</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <string name="send_request_button">Enviar</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pt/strings_account.xml b/ring-android/androidtv/src/main/res/values-pt/strings_account.xml
new file mode 100644
index 0000000..89b2004
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt/strings_account.xml
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Eliminar</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Pseudônimo</string>
+  <string name="prompt_hostname">Nome do host</string>
+  <string name="prompt_username">Usuário</string>
+  <string name="prompt_password">Senha</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_message">Esta ação não pode ser reposta.</string>
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Contas</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Geral</string>
+  <string name="account_hostname_label">Nome do host</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Usuário</string>
+  <string name="account_password_label">Senha</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Áudio</string>
+  <string name="account_preferences_media_tab">Mídia</string>
+  <!--Video Details-->
+  <string name="account_video_label">Vídeo</string>
+  <string name="account_video_enable">Ativar Vídeo</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avançado</string>
+  <string name="account_turn_enable_label">Usar TURN</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Segurança</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">Erro</string>
+  <string name="account_device_updated_message">Conta Ring atualizada com sucesso.</string>
+  <string name="account_new_button">Criar uma conta Ring</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">Desconhecido</string>
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-pt/strings_call.xml b/ring-android/androidtv/src/main/res/values-pt/strings_call.xml
new file mode 100644
index 0000000..6038be5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt/strings_call.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_hold">Espera</string>
+    <string name="conference_human_state_hold">Espera</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-pt/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-pt/strings_preferences.xml
new file mode 100644
index 0000000..63298a5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-pt/strings_preferences.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_contacts">Contatos</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ro/strings.xml b/ring-android/androidtv/src/main/res/values-ro/strings.xml
new file mode 100644
index 0000000..6046e79
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ro/strings.xml
@@ -0,0 +1,84 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring este un program tip freeware, dezvoltat si sustinut de catre</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Contribuie</string>
+  <string name="version_section">Versiune</string>
+  <string name="no_email_app_installed">Nu a fost gasita o aplicatie de email. Va rugam sa o instalati pentru a ne putea trimite un raport.</string>
+  <string name="email_chooser_title">Trimite email folosind...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Suna</string>
+  <string name="error_no_network">Nu exista conectivitate la retea</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Cont nou</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_home">Acasă</string>
+  <string name="menu_item_accounts">Gestionează conturile</string>
+  <string name="menu_item_settings">Setari</string>
+  <string name="menu_item_about">Despre Ring</string>
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <string name="hist_replay_button_stop">Stop</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <string name="home_transfer_complet">Transfer Complet</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Nici un  contact găsit</string>
+  <string name="starred_contacts_title">Favoriți</string>
+  <string name="searchbar_hint">Introdu numele sau numărul de telefon</string>
+  <string name="choose_number">Alege un număr</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Apel pierdut de la %1$s</string>
+  <string name="notif_incoming_call">Apel de intrare</string>
+  <string name="notif_current_call_title">Apelul curent cu %1$s</string>
+  <string name="notif_current_call">Apelul curent</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Tu:</string>
+  <string name="action_call_conference">Conferință</string>
+  <string name="action_call_hangup">Închide</string>
+  <string name="start_error_title">Ring nu a putut starta!</string>
+  <string name="action_call_decline">Refuză</string>
+  <string name="ab_action_contact_add">Adaugă la contacte</string>
+  <string name="ab_action_contact_add_question">Adaugă la contacte ?</string>
+  <string name="ab_action_audio_call">Apel audio</string>
+  <string name="ab_action_video_call">Apel video</string>
+  <string name="share_via">Distribuie prin</string>
+  <string name="write_a_message">Scrie un mesaj</string>
+  <string name="scan_qr">Scanați Codul QR</string>
+  <string name="ab_action_flipcamera">Întoarce camera</string>
+  <!--Text messages-->
+  <string name="send_message">Trimite messajul</string>
+  <string name="message_sending">Se transmite mesajul...</string>
+  <!--MediaPreferenceFragment-->
+  <string name="ringtone_error_title">Eroare</string>
+  <string name="ringtone_error_format_not_supported">Formatul acesta nu este suportat</string>
+  <string name="ringtone_error_size_too_big">Acest fișier este prea mare. Marimea maxima este %1$ikB.</string>
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Ștergeți istoria ?</string>
+  <string name="clear_history_completed">Istoria a fost ștearsă</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Ștergeți aceasta istorie</string>
+  <!--Contacts-->
+  <string name="prompt_new_password">Parolă nouă</string>
+  <string name="account_create_title">Creați un cont Ring</string>
+  <string name="prompt_new_username">Introdu un nume de utilizator</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Profilul meu</string>
+  <string name="open_the_gallery">Deschide galeria</string>
+  <string name="unknown">Necunoscut</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">Eroare</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ro/strings_account.xml b/ring-android/androidtv/src/main/res/values-ro/strings_account.xml
new file mode 100644
index 0000000..337c0ec
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ro/strings_account.xml
@@ -0,0 +1,47 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Șterge</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_username">Nume de utilizator</string>
+  <string name="prompt_password">Parola</string>
+  <string name="action_create_short">Registrare</string>
+  <string name="dialog_wait_create_details">Vă rugăm așteptați în timp ce contul dumneavoastră este adăugat...</string>
+  <string name="dialog_wait_update">Actualizând contul</string>
+  <string name="dialog_wait_update_details">Vă rugăm așteptați în timp ce contul dumneavoastră este actualizat...</string>
+  <!--Strings related to account deletion-->
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Conturi</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">General</string>
+  <string name="account_alias_label">Nnumele contului</string>
+  <string name="account_username_label">Nume de utilizator</string>
+  <string name="account_password_label">Parola</string>
+  <string name="account_optionnal_category">Setari opționale</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_ringtone_label">Tonuri de apel</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Activează video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avansat</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Seuritate</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_rtp_max_port">Maximal</string>
+  <string name="account_rtp_min_port">Minimal</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Restabiliți contul</string>
+  <string name="restore_backup_wait">Așteptați vă rog...</string>
+  <string name="export_account_wait_title">Așteptați vă rog...</string>
+  <string name="account_export_end_error_title">Eroare</string>
+  <string name="account_new_button">Creați un cont Ring</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">Necunoscut</string>
+  <!--Create account-->
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Așteptați vă rog...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru-rRU/strings.xml b/ring-android/androidtv/src/main/res/values-ru-rRU/strings.xml
new file mode 100644
index 0000000..426767c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru-rRU/strings.xml
@@ -0,0 +1,121 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring является свободным ПО, которое разрабатывается и поддерживается</string>
+  <string name="copyright_section">Авторское право</string>
+  <string name="contribute_section">Помочь проекту</string>
+  <string name="version_section">Версия</string>
+  <string name="no_email_app_installed">Не найдено приложение электронной почты. Пожалуйста, установите его для отправки нам отчета.</string>
+  <string name="email_chooser_title">Отправить почту, используя...</string>
+  <string name="credits">Кредиты</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Звонок</string>
+  <string name="error_no_network">Отсутствует сетевое подключение</string>
+  <string name="error_mobile_network_available_but_disabled">Пожалуйста, разрешите доступ к мобильной сети в настройках</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Новая учетная запись</string>
+  <string name="ab_action_chat">Тестовое сообщение</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Открыть навигацию</string>
+  <string name="drawer_close">Закрыть навигацию</string>
+  <!--Sections-->
+  <string name="menu_item_home">Домой</string>
+  <string name="menu_item_accounts">Управление учетными записями</string>
+  <string name="menu_item_settings">Настройки</string>
+  <string name="menu_item_about">О Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Набрать номер</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Ответ</string>
+  <string name="hist_replay_button_stop">Стоп</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Беседа</item>
+    <item quantity="few">%d Бесед</item>
+    <item quantity="many">%d Бесед</item>
+    <item quantity="other">%d беседы</item>
+  </plurals>
+  <string name="home_transfer_complet">Перевод завершен</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Контакт не обнаружен</string>
+  <string name="starred_contacts_title">Избранное</string>
+  <string name="searchbar_hint">Введите имя или номер телефона</string>
+  <string name="choose_number">Выбор номера</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Переход к другому текущему вызову:</string>
+  <string name="transfer_no_other_call">Отсутствуют ожидающие вызовы</string>
+  <string name="transfer_type_number">Укажите  номер для перевода:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Входящий вызов от %1$s</string>
+  <string name="notif_incoming_call">Входящий вызов</string>
+  <string name="notif_outgoing_call_title">Исходящий вызов на %1$s</string>
+  <string name="notif_outgoing_call">Исходящий вызов</string>
+  <string name="notif_current_call_title">Текущий вызов от %1$s</string>
+  <string name="notif_current_call">Текущий вызов</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Вы</string>
+  <string name="action_call_attended_transfer">Ручной перевод</string>
+  <string name="action_call_conference">Конференция</string>
+  <string name="action_call_hangup">Завершить</string>
+  <string name="ongoing_call">Текущий вызов</string>
+  <string name="hist_in_call">Входящий вызов от %1$s</string>
+  <string name="hist_out_call">Исходящий вызов от %1$s</string>
+  <string name="start_error_title">Невозможно запустить \"Ring\"</string>
+  <string name="start_error_mic_required">Приложению необходим доступ у микрофону для работы</string>
+  <string name="action_call_accept">Совершить звонок</string>
+  <string name="action_call_decline">Отказаться</string>
+  <string name="ab_action_speakerphone">Включить звук</string>
+  <string name="ab_action_contact_add">Добавить контакт</string>
+  <string name="ab_action_contact_add_question">Добавить в контакты?</string>
+  <string name="ab_action_audio_call">Аудиовызов</string>
+  <string name="ab_action_video_call">Видеозвонок</string>
+  <string name="share_via">Поделится</string>
+  <string name="write_a_message">Написать сообщение</string>
+  <string name="scan_qr">Сканировать QR код</string>
+  <string name="ab_action_flipcamera">Перевернуть камеру</string>
+  <!--Text messages-->
+  <string name="send_message">Отправить сообщение</string>
+  <string name="message_sending">Отправка сообщения...</string>
+  <string name="time_just_now">В данный момент</string>
+  <string name="permission_read_denied">Приложение не имеет прав чтения с накопителя, потому не может функционировать правильно. Пожалуйста, добавьте права доступа к хранилищу данных.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Разрешение на использование камеры</string>
+  <string name="permission_dialog_camera_message">Необходимо доступ к камере для работы с видеозвонками. Пожалуйста, предоставьте их.</string>
+  <string name="ringtone_error_title">Ошибка</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Приложению необходимы права на чтение контактов для включения данной опции</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Приложению необходимы права на запись истории звонков для включения данной функции</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Сканировать QR код аккаунта, который хотите добавить</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Очистить историю?</string>
+  <string name="clear_history_dialog_message">Это действие не может быть отменено</string>
+  <string name="clear_history_completed">История очищена.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Удалить беседу</string>
+  <string name="conversation_action_delete_this_title">Удалить беседу?</string>
+  <string name="conversation_action_delete_this_message">Это действие не может быть отменено</string>
+  <string name="conversation_action_copy_peer_number">Скопировать номер</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s скопировано в буфер обмена</string>
+  <string name="conversation_action_select_peer_number">Выберите номер</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Добавить %1$s ?</string>
+  <string name="prompt_new_password">Новый пароль</string>
+  <string name="account_create_title">Создать Ring аккаунт</string>
+  <string name="wizard_next">Далее</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">Неизвестно</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">Ошибка</string>
+  <!--Pending contact requests-->
+  <string name="accept">Принять</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Отправть</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru-rRU/strings_account.xml b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_account.xml
new file mode 100644
index 0000000..21ddbb2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_account.xml
@@ -0,0 +1,101 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Удалить</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Псевдоним</string>
+  <string name="prompt_hostname">Узел</string>
+  <string name="prompt_username">Пользователь</string>
+  <string name="prompt_password">Пароль</string>
+  <string name="action_create_short">Зарегистрировать</string>
+  <string name="error_field_required">Это обязательное поле</string>
+  <string name="dialog_wait_create">Добавление аккаунта</string>
+  <string name="dialog_wait_create_details">Пожалуйста, подождите, пока Ваш новый аккаунт будет добавлен...</string>
+  <string name="dialog_warn_ip2ip_account_title">Создать пустой SIP аккаунт?</string>
+  <string name="help_ring">Ring аккаунт позволяет безопасно связываться между людьми через полностью распределенную сеть.</string>
+  <string name="help_sip_title">Добавить SIP аккаунт</string>
+  <string name="help_sip">Настройка существующего SIP аккаунта</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Удалить аккаунт?</string>
+  <string name="account_delete_dialog_message">Это действие не может быть отменено</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Аккаунт не зарегистрирован</string>
+  <string name="normal_accounts_titles">Учетные записи</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Основные</string>
+  <string name="account_basic_category">Основные настройки</string>
+  <string name="account_alias_label">Имя аккаунта</string>
+  <string name="account_hostname_label">Узел</string>
+  <string name="account_bootstrap_label">Начальная загрузка</string>
+  <string name="account_username_label">Пользователь</string>
+  <string name="account_password_label">Пароль</string>
+  <string name="account_optionnal_category">Дополнительные настройки</string>
+  <string name="account_useragent_label">Агент пользователя</string>
+  <string name="account_autoanswer_label">Автоматический ответ</string>
+  <string name="account_upnp_label">Включить UPnP</string>
+  <string name="account_proxy_field">Прокси</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Звук</string>
+  <string name="account_preferences_media_tab">Медиа</string>
+  <string name="account_ringtone_label">Рингтоны</string>
+  <string name="account_ringtone_enabled_label">Активировать мелодии</string>
+  <string name="account_ringtone_path_label">Пусть до мелодий</string>
+  <!--Video Details-->
+  <string name="account_video_label">Видео</string>
+  <string name="account_video_enable">Включить видео</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Дополнительно</string>
+  <string name="account_registration_exp_label">Регистрация истекает</string>
+  <string name="account_local_interface_label">Локальный интерфейс</string>
+  <string name="account_local_port_label">Локальный порт</string>
+  <string name="account_stun_enable_label">Использовать STUN</string>
+  <string name="account_stun_server_label">Сервер STUN</string>
+  <string name="account_turn_enable_label">Использовать TURN</string>
+  <string name="account_turn_server_label">Сервер TURN</string>
+  <string name="account_turn_username_label">Имя пользователя</string>
+  <string name="account_turn_password_label">Пароль</string>
+  <string name="account_published_same_as_local_label">Опубликовать локально</string>
+  <string name="account_published_port_label">Публичный порт</string>
+  <string name="account_published_address_label">Публичный адрес</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Учетные данные</string>
+  <string name="account_credentials_edit">Редактировать учетные данные</string>
+  <string name="account_credentials_add">Добавить учетные данные</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Безопасность</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Использовать TLS</string>
+  <string name="account_tls_port_label">Порт для TLS</string>
+  <string name="account_tls_certificate_list_label">Сертифицирующая организация</string>
+  <string name="account_tls_certificate_file_label">Файл сертификата</string>
+  <string name="account_tls_private_key_file_label">Файл закрытого ключа</string>
+  <string name="account_tls_password_label">Пароль закрытого ключа</string>
+  <string name="account_tls_method_label">Метод TLS</string>
+  <string name="account_tls_ciphers_label">Шифры TLS</string>
+  <string name="account_tls_server_name_label">Имя сервера</string>
+  <string name="account_tls_verify_server_label">Проверка сервера</string>
+  <string name="account_tls_verify_client_label">Проверка клиента</string>
+  <string name="account_tls_negotiation_timeout_sec">Тайм-аут (сек)</string>
+  <string name="account_rtp_max_port">Максимум</string>
+  <string name="account_rtp_min_port">Минимум</string>
+  <string name="account_rtp_port_range">Диапазон портов RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Введите пароль для расшифровки файла.</string>
+  <string name="account_restore_decryption_password">Дешифрование паролья</string>
+  <string name="restore_backup_wait">Пожалуйста, подождите...</string>
+  <string name="error_password_char_count">Минимум 6 символов</string>
+  <string name="error_passwords_not_equals">Пароли не совпадают</string>
+  <string name="restore_failed_dialog_msg">Произошла ошибка</string>
+  <string name="export_account_wait_title">Пожалуйста, подождите...</string>
+  <string name="account_export_end_error_title">Ошибка</string>
+  <string name="account_wizard_title">Добро пожаловать в</string>
+  <string name="account_new_button">Создать Ring аккаунт</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">Подключение</string>
+  <string name="account_status_unknown">Неизвестно</string>
+  <!--Create account-->
+  <string name="account_creation_home">Добро пожаловать в Ring</string>
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Пожалуйста, подождите...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru-rRU/strings_call.xml b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_call.xml
new file mode 100644
index 0000000..6b2b709
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_call.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Вызов</string>
+    <string name="call_human_state_connecting">Подключение</string>
+    <string name="call_human_state_ringing">звонящий</string>
+    <string name="call_human_state_current">Говорить</string>
+    <string name="call_human_state_hungup">Окончен</string>
+    <string name="call_human_state_busy">Занят</string>
+    <string name="call_human_state_failure">Сбой</string>
+    <string name="call_human_state_hold">Удержать</string>
+    <string name="call_human_state_unhold">Возврат</string>
+    <string name="call_human_state_over">Окончен</string>
+    <string name="call_human_state_none">Никто</string>
+    <string name="conference_human_state_hold">Удержать</string>
+    <string name="conference_human_state_hold_rec">Удержать запись</string>
+    <string name="conference_human_state_default">Никто</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-ru-rRU/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_content_description.xml
new file mode 100644
index 0000000..93657ec
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_content_description.xml
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Быстрый вызов</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru-rRU/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_preferences.xml
new file mode 100644
index 0000000..8e893ed
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru-rRU/strings_preferences.xml
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Сеть</string>
+  <string name="pref_category_contacts">Контакты</string>
+  <string name="pref_category_system">Система</string>
+  <string name="pref_mobileData_title">Мобильные данные</string>
+  <string name="pref_mobileData_summary">Разрешить использовать 3G/LTE дополнительно к Wi-Fi</string>
+  <string name="pref_systemContacts_title">Использовать системные контакты</string>
+  <string name="pref_systemContacts_summary">Использовать системные контакты для входящих.</string>
+  <string name="pref_systemDialer_title">Системные вызовы используют Ring</string>
+  <string name="pref_startOnBoot_title">Запускать Ring при старте системы</string>
+  <string name="pref_startOnBoot_summary">Запускать Ring в фоное при запуске системы.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru/strings.xml b/ring-android/androidtv/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000..a566b6c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru/strings.xml
@@ -0,0 +1,146 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Обратная связь</string>
+  <string name="report">&lt;u&gt;Отправить нам письмо&lt;/u&gt;</string>
+  <string name="section_license">Лицензия</string>
+  <string name="sponsor_section">Ring — свободное программное обеспечение, разработанное и поддерживаемое</string>
+  <string name="copyright_section">Авторское право</string>
+  <string name="contribute_section">Внести вклад</string>
+  <string name="version_section">Версия</string>
+  <string name="no_email_app_installed">Не найден почтовый клиент; установите его, чтобы отправить нам сообщение</string>
+  <string name="no_browser_app_installed">Не найден веб-браузер, установите его, чтобы просмотреть эту страницу</string>
+  <string name="email_chooser_title">Отправить письмо используя…</string>
+  <string name="website_chooser_title">Просмотреть веб-сайт с помощью…</string>
+  <string name="license">Это программное обеспечение предоставляется \"как есть\", без каких либо гарантий. Для получения дополнительной информации смотрите
+&lt;u&gt; Лицензию GNU General Public 3 или более поздней версии&lt;/u&gt;</string>
+  <string name="description">Ring — это свободная программа для всеобщей связи, уважающая свободы и конфиденциальность ее пользователей.</string>
+  <string name="credits">Благодарности</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Нет подключения к сети</string>
+  <string name="error_mobile_network_available_but_disabled">Пожалуйста, предоставьте доступ к сотовой сети в настройках.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Новый аккаунт</string>
+  <string name="ab_action_chat">Сообщения</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Открыть панель навигации</string>
+  <string name="drawer_close">Закрыть панель навигации</string>
+  <!--Sections-->
+  <string name="menu_item_home">Домой</string>
+  <string name="menu_item_accounts">Управление аккаунтами</string>
+  <string name="menu_item_settings">Настройки</string>
+  <string name="menu_item_share">Поделиться моим контактом</string>
+  <string name="menu_item_about">О программе</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Набрать номер</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Повторить</string>
+  <string name="hist_replay_button_stop">Стоп</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d диалог</item>
+    <item quantity="few">%d диалога</item>
+    <item quantity="many">%d диалогов</item>
+    <item quantity="other">%d диалогов</item>
+  </plurals>
+  <string name="home_transfer_complet">Передача завершена</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Контактов не найдено</string>
+  <string name="starred_contacts_title">Избранное</string>
+  <string name="searchbar_hint">Введите имя или номер телефона...</string>
+  <string name="choose_number">Выберите номер</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Переключение на другой вызов</string>
+  <string name="transfer_no_other_call">Нет ожидающих вызовов</string>
+  <string name="transfer_type_number">Тип номера для передачи:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Входящий вызов от %1$s</string>
+  <string name="notif_incoming_call">Входящий вызов</string>
+  <string name="notif_outgoing_call_title">Исходящий вызов к %1$s</string>
+  <string name="notif_outgoing_call">Исходящий вызов</string>
+  <string name="notif_current_call_title">Текущий вызов с %1$s</string>
+  <string name="notif_current_call">Текущий вызов</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Вы:</string>
+  <string name="action_call_attended_transfer">Условная переадресация</string>
+  <string name="action_call_conference">Конференция</string>
+  <string name="action_call_hangup">Повесить трубку</string>
+  <string name="ongoing_call">Исходящий вызов</string>
+  <string name="hist_in_call">Входящий звонок %1$s</string>
+  <string name="hist_out_call">Исходящий звонок %1$s</string>
+  <string name="start_error_title">Невозможно запустить Ring!</string>
+  <string name="start_error_mic_required">Приложению Ring необходимо разрешение на использование микрофона.</string>
+  <string name="action_call_accept">Принять вызов</string>
+  <string name="action_call_decline">Отклонить</string>
+  <string name="ab_action_speakerphone">Включить громкоговоритель</string>
+  <string name="ab_action_contact_add">Добавить в контакты</string>
+  <string name="ab_action_contact_add_question">Добавить в контакты?</string>
+  <string name="ab_action_audio_call">Голосовой вызов</string>
+  <string name="ab_action_video_call">Видео звонок</string>
+  <string name="share_via">Отправить с помощью</string>
+  <string name="write_a_message">Написать сообщение</string>
+  <string name="scan_qr">Сканировать QR код</string>
+  <string name="ab_action_flipcamera">Перевернуть камеру</string>
+  <!--Text messages-->
+  <string name="send_message">Отправить сообщение</string>
+  <string name="message_sending">Отправка сообщения...</string>
+  <string name="time_just_now">Только сейчас</string>
+  <string name="permission_read_denied">Приложению не было разрешено чтение данных из памяти, поэтому оно не может работать должным образом. Пожалуйста, предоставьте  ему это разрешение.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Разрешение на доступ к камере</string>
+  <string name="permission_dialog_camera_message">Видеосвязь требует для работы разрешения на доступ к камере. Пожалуйста, предоставьте его.</string>
+  <string name="ringtone_error_title">Ошибка</string>
+  <string name="ringtone_error_format_not_supported">Этот формат не поддерживается</string>
+  <string name="ringtone_error_size_too_big">Файл слишком большой. Максимальный размер — %1$i кБ.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Приложению требуется разрешение «Чтение контактов», чтобы включить эту функцию. Пожалуйста, предоставьте его.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Приложению требуется разрешение «Запись в журнал звонков», чтобы включить эту функцию. Пожалуйста, предоставьте его.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Отсканируйте QR-код аккаунта, который вы хотите добавить.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Очистить историю ?</string>
+  <string name="clear_history_dialog_message">Это действие нельзя отменить.</string>
+  <string name="clear_history_completed">История была очищена.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Удалить этот разговор</string>
+  <string name="conversation_action_delete_this_title">Удалить этот разговор?</string>
+  <string name="conversation_action_delete_this_message">Это действие нельзя отменить.</string>
+  <string name="conversation_action_copy_peer_number">Копировать номер</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s скопировано в буфер обмена</string>
+  <string name="conversation_action_select_peer_number">Выбрать номер</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Добавить %1$s?</string>
+  <string name="prompt_new_password">Новый пароль</string>
+  <string name="prompt_new_password_repeat">Повторите новый пароль</string>
+  <string name="account_create_title">Создать аккаунт Ring</string>
+  <string name="prompt_new_username">Введите новое имя пользователя</string>
+  <string name="help_password_choose">Выберите надёжный пароль, который вы запомните, чтобы защитить ваш аккаунт RIng.</string>
+  <string name="help_password_enter">Введите пароль от вашего основного аккаунта Ring</string>
+  <string name="help_pin_enter">Введите PIN от настроенного аккаунта Ring. Используйте функцию «экспортировать аккаунт в Ring», чтобы получить PIN.</string>
+  <string name="wizard_next">Далее</string>
+  <string name="wizard_back">Назад</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Мой профиль</string>
+  <string name="open_the_gallery">Открыть галерею</string>
+  <string name="take_a_photo">Сделать фото</string>
+  <string name="unknown">Неизвестно</string>
+  <!--Share fragment-->
+  <string name="share_message">Отсканируйте этот QR-код встроенным сканером приложения Ring, которое хочет с вами связаться.</string>
+  <string name="share_message_no_account">Выберите аккаунт, которым хотите поделиться.</string>
+  <string name="share_your_account_information">Поделиться моей контактной информацией</string>
+  <string name="generic_error_migration">Ошибка</string>
+  <string name="generic_error_migration_message">В процессе переноса произошла ошибка</string>
+  <!--Pending contact requests-->
+  <string name="accept">Принять</string>
+  <string name="refuse">Отклонить</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Отправить</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru/strings_account.xml b/ring-android/androidtv/src/main/res/values-ru/strings_account.xml
new file mode 100644
index 0000000..4a9a83f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru/strings_account.xml
@@ -0,0 +1,176 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Удалить</string>
+  <string name="ic_advanced_menu">Дополнительные настройки</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Добавить аккаунт Ring</string>
+  <string name="add_sip_account_title">Добавить аккаунт SIP </string>
+  <string name="prompt_alias">Псевдоним</string>
+  <string name="prompt_hostname">Имя узла</string>
+  <string name="prompt_username">Имя пользователя</string>
+  <string name="prompt_password">Пароль</string>
+  <string name="action_create">Создать аккаунт</string>
+  <string name="action_create_short">Регистрация</string>
+  <string name="error_field_required">Это поле обязательно для заполнения</string>
+  <string name="dialog_wait_create">Добавление аккаунта</string>
+  <string name="dialog_wait_create_details">Пожалуйста, подождите, пока ваш новый аккаунт добавляется…</string>
+  <string name="dialog_wait_update">Обновление аккаунта</string>
+  <string name="dialog_wait_update_details">Пожалуйста, подождите, пока ваш новый аккаунт обновляется…</string>
+  <string name="dialog_warn_ip2ip_account_title">Создать пустой аккаунт SIP?</string>
+  <string name="dialog_warn_ip2ip_account_message">Вы собираетесь создать аккаунт SIP без допустимого имени сервера.
+Вы сможете совершать и принимать звонки только напрямую по IP.
+Можно будет изменить аккаунт позднее.</string>
+  <string name="account_type_ip2ip">IP-аккаунт</string>
+  <string name="help_ring">Аккаунт Ring позволяет безопасно связываться с людьми напрямую через полностью распределённую сеть.</string>
+  <string name="help_sip_title">Добавить ваш SIP-аккаунт</string>
+  <string name="help_sip">Настроить существующий SIP-аккаунт</string>
+  <string name="create_sip_account">Добавить аккаунт SIP </string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Удалить аккаунт?</string>
+  <string name="account_delete_dialog_message">Это действие нельзя отменить.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Нет зарегистрированных аккаунтов</string>
+  <string name="normal_accounts_titles">Аккаунты</string>
+  <string name="normal_devices_titles">Устройства, привязанные к этому аккаунту Ring</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Общее</string>
+  <string name="account_basic_category">Основные настройки</string>
+  <string name="account_alias_label">Имя аккаунта</string>
+  <string name="account_hostname_label">Имя узла</string>
+  <string name="account_bootstrap_label">Инициализация</string>
+  <string name="account_username_label">Имя пользователя</string>
+  <string name="account_password_label">Пароль</string>
+  <string name="account_optionnal_category">Дополнительные настройки</string>
+  <string name="account_useragent_label">User Agent</string>
+  <string name="account_autoanswer_label">Автоответ</string>
+  <string name="account_upnp_label">Включить UPnP</string>
+  <string name="account_proxy_field">Прокси</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Звук</string>
+  <string name="account_preferences_media_tab">Медиа</string>
+  <string name="account_ringtone_label">Мелодии звонка</string>
+  <string name="account_ringtone_enabled_label">Активировать мелодии звонка</string>
+  <string name="account_ringtone_path_label">Путь к мелодиям звонка</string>
+  <string name="account_ringtone_custom_label">Использовать другую мелодию звонка</string>
+  <!--Video Details-->
+  <string name="account_video_label">Видео</string>
+  <string name="account_video_enable">Включить видео</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Дополнительно</string>
+  <string name="account_registration_exp_label">Срок регистрации истекает</string>
+  <string name="account_local_interface_label">Локальный интерфейс</string>
+  <string name="account_local_port_label">Локальный порт</string>
+  <string name="account_stun_enable_label">Использовать STUN</string>
+  <string name="account_stun_server_label">Сервер STUN</string>
+  <string name="account_turn_enable_label">Использовать TURN </string>
+  <string name="account_turn_server_label">Сервер TURN</string>
+  <string name="account_turn_username_label">Имя пользователя TURN</string>
+  <string name="account_turn_password_label">Пароль TURN</string>
+  <string name="account_published_same_as_local_label">Публикуемый аналогично локальному</string>
+  <string name="account_published_port_label">Публикуемый порт</string>
+  <string name="account_published_address_label">Публикуемый адрес</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Идентификационные данные</string>
+  <string name="account_credentials_edit">Изменить идентификационные данные</string>
+  <string name="account_credentials_add">Добавить идентификационные данные</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Безопасность</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Использовать TLS</string>
+  <string name="account_tls_port_label">Порт TLS</string>
+  <string name="account_tls_certificate_list_label">Удостоверяющие центры</string>
+  <string name="account_tls_certificate_file_label">Файл сертификата</string>
+  <string name="account_tls_private_key_file_label">Файл закрытого ключа</string>
+  <string name="account_tls_password_label">Пароль закрытого ключа</string>
+  <string name="account_tls_method_label">Метод TLS</string>
+  <string name="account_tls_ciphers_label">Шифры TLS</string>
+  <string name="account_tls_server_name_label">Имя сервера</string>
+  <string name="account_tls_verify_server_label">Проверка сервера</string>
+  <string name="account_tls_verify_client_label">Проверка клиента</string>
+  <string name="account_tls_negotiation_timeout_sec">Тайм-аут согласования (сек)</string>
+  <string name="account_rtp_max_port">Максимум</string>
+  <string name="account_rtp_min_port">Минимум</string>
+  <string name="account_rtp_port_range">Диапазон портов для RTP-аудио</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Восстановить аккаунт</string>
+  <string name="account_restore_message">Введите пароль для расшифровки файла.</string>
+  <string name="account_restore_decryption_password">Пароль расшифровки</string>
+  <string name="account_new_device_password">Введите основной пароль, чтобы разблокировать аккаунт</string>
+  <string name="restore_dialog_title">Восстановление</string>
+  <string name="restore_backup_wait">Пожалуйста, подождите…</string>
+  <string name="error_password_char_count">Минимум 6 символов</string>
+  <string name="error_passwords_not_equals">Пароли не совпадают</string>
+  <string name="restore_failed_dialog_title">Восстановление не удалось</string>
+  <string name="restore_failed_dialog_msg">Произошла ошибка</string>
+  <string name="export_account_wait_title">Пожалуйста, подождите…</string>
+  <string name="export_account_wait_message">Публикация информации о новом аккаунте</string>
+  <string name="account_export_end_decryption_message">Не удалось разблокировать аккаунт указанным паролем.</string>
+  <string name="account_export_end_network_title">Ошибка сети</string>
+  <string name="account_export_end_network_message">Не удалось экспортировать аккаунт по сети. Проверьте ваше сетевое соединение.</string>
+  <string name="account_export_end_error_title">Ошибка</string>
+  <string name="account_export_end_error_message">Не удалось экспортировать аккаунт. Произошла неизвестная ошибка.</string>
+  <string name="account_enter_password">Введите пароль</string>
+  <string name="account_share_body">Свяжитесь со мной, используя \'%1$s\' в распределённой платформе общения Ring: http://ring.cx</string>
+  <string name="account_share_body_with_username">Свяжитесь со мной, используя \'%1$s\' или моё публичное им пользователя \'%2$s\' в распределённой платформе общения Ring: http://ring.cx</string>
+  <string name="account_contact_me">Свяжитесь со мной в Ring!</string>
+  <string name="update_account">Обновить аккаунт</string>
+  <string name="account_migration">Ваш аккаунт Ring может быть обновлен.\nПожалуйста, введите ваш пароль.</string>
+  <string name="ring_account">Аккаунт Ring</string>
+  <string name="ring_account_identity">Идентификатор</string>
+  <string name="account_migration_title_dialog">Перенос аккаунта</string>
+  <string name="account_migration_message_dialog">Ваш аккаунт требуется обновить. Хотите перейти на экран управления аккаунтом для выполнения этой операции?</string>
+  <string name="account_update_needed">Необходимо обновление</string>
+  <string name="account_creation_file_too_big">Файл слишком большой</string>
+  <string name="account_cannot_read">Не удалось прочитать %1$s</string>
+  <string name="account_cannot_be_found_title">Не удалось найти аккаунт</string>
+  <string name="account_cannot_be_found_message">Не удалось найти аккаунт в сети Ring.\nУдостоверьтесь, что он был экспортирован в сеть Ring с существующего устройства, и что предоставленные идентификационные данные верны.</string>
+  <string name="account_sip_cannot_be_registered_message">Можно продолжить создание учетной записи или изменить информацию здесь. Редактирование будет возможно и позже в настройках аккаунта.</string>
+  <string name="account_no_network_title">Не удаётся подключиться к сети</string>
+  <string name="account_no_network_message">Не удалось добавить аккаунт, потому что Ring не смог подключиться к распределённой сети. Проверьте сетевое соединение вашего устройства.</string>
+  <string name="account_device_added_title">Устройство аккаунта добавлено</string>
+  <string name="account_device_added_message">Вы успешно настроили аккаунт Ring на этом устройстве.</string>
+  <string name="account_device_updated_title">Устройство аккаунта обновлено</string>
+  <string name="account_device_updated_message">Вы успешно обновили ваш аккаунт Ring.</string>
+  <string name="account_sip_success_title">SIP-аккаунт зарегистрирован</string>
+  <string name="account_sip_success_message">Вы успешно зарегистрировали свой SIP-аккаунт.</string>
+  <string name="account_sip_register_anyway">Всё равно зарегистроваться</string>
+  <string name="account_link_button">Привязать это устройство к аккаунту</string>
+  <string name="account_import_title">Привязать к существующему аккаунту</string>
+  <string name="account_link_prompt_pin">Введите PIN</string>
+  <string name="account_wizard_title">Добро пожаловать в </string>
+  <string name="account_new_button">Создать аккаунт Ring</string>
+  <string name="account_link_export_button">Привязать другое устройство к этому аккаунту</string>
+  <string name="account_link_export_info">Для использования этого аккаунта на других устройствах нужно сначала выставить его в сеть Ring. Это сгенерирует PIN-код, который потребуется ввести на новом устройстве для настройки аккаунта. PIN-код действителен в течение 10 минут.\n\nПожалуйста, укажите ваш пароль, чтобы начать:</string>
+  <string name="account_start_export_button">Сгенерировать PIN</string>
+  <string name="account_end_export_button">закрыть</string>
+  <string name="account_end_export_infos">Ваш PIN:\n\n%%\n\nДля завершения процесса нужно открыть Ring на новом устройстве и выбрать \"Привязать это устройство к аккаунту\". Ваш PIN действителен в течение 10 минут.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Не удалось зарегистрировать имя: неверный пароль аккаунта.</string>
+  <string name="register_name_invalid">Не удалось зарегистрировать имя: недопустимое имя.</string>
+  <string name="register_name_already_taken">Не удалось зарегистрировать имя: имя уже занято.</string>
+  <string name="register_name_network_error">Не удалось зарегистрировать имя: ошибка сети или сервера.</string>
+  <string name="error_username_empty">Введите имя пользователя</string>
+  <string name="no_registered_name_for_account">Не найдено зарегистрированного имени для этого аккаунта</string>
+  <string name="register_name">Зарегистрировать имя</string>
+  <string name="trying_to_register_name">Попытка зарегистрировать имя</string>
+  <string name="registered_username">Зарегистрированное имя пользователя</string>
+  <string name="register_username">Зарегистрировать публичное имя (экспериментальная функция)</string>
+  <string name="username_already_taken">Имя пользователя уже занято</string>
+  <string name="invalid_username">Недопустимое имя пользователя</string>
+  <string name="account_status_connecting">Подключение</string>
+  <string name="account_status_connection_error">Ошибка подключения</string>
+  <string name="account_status_online">В сети</string>
+  <string name="account_status_unknown">Неизвестно</string>
+  <string name="account_status_offline">Не в сети</string>
+  <!--Create account-->
+  <string name="account_creation_home">Добро пожаловать в Ring</string>
+  <string name="account_creation_profile">Создайте свой профиль</string>
+  <string name="account_creation_ring">Создать свой аккаунт Ring</string>
+  <string name="account_link_title">Привязать это устройство</string>
+  <string name="account_sip_cannot_be_registered">Не удалось зарегистрировать аккаунт</string>
+  <!--Devices-->
+  <string name="enter_password">Введите пароль</string>
+  <string name="revoke_device_wait_title">Пожалуйста, подождите…</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru/strings_call.xml b/ring-android/androidtv/src/main/res/values-ru/strings_call.xml
new file mode 100644
index 0000000..89f2794
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Звонок</string>
+    <string name="call_human_state_connecting">Подключение</string>
+    <string name="call_human_state_ringing">Вызов</string>
+    <string name="call_human_state_current">Разговор</string>
+    <string name="call_human_state_hungup">Окончен</string>
+    <string name="call_human_state_busy">Занято</string>
+    <string name="call_human_state_failure">Сбой</string>
+    <string name="call_human_state_hold">Удержать</string>
+    <string name="call_human_state_unhold">Отменить удержание</string>
+    <string name="call_human_state_over">Окончен</string>
+    <string name="call_human_state_none">Нет</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Активный прикреплен</string>
+    <string name="conference_human_state_active_detached">Активный откреплен</string>
+    <string name="conference_human_state_active_attached_rec">Активный прикреплен запись</string>
+    <string name="conference_human_state_active_detached_rec">Активный откреплен запись</string>
+    <string name="conference_human_state_hold">Удержать</string>
+    <string name="conference_human_state_hold_rec">Удержать запись</string>
+    <string name="conference_human_state_default">Нет</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-ru/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-ru/strings_content_description.xml
new file mode 100644
index 0000000..57127b2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Быстрый вызов</string>
+  <string name="contact_picture_description">Фото контакта</string>
+  <string name="dial_numeric_pad">Цифровая клавиатура</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-ru/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-ru/strings_preferences.xml
new file mode 100644
index 0000000..281b7a6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-ru/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Сеть</string>
+  <string name="pref_category_contacts">Контакты</string>
+  <string name="pref_category_system">Система</string>
+  <string name="pref_category_privacy">Конфиденциальность</string>
+  <string name="pref_mobileData_title">Мобильные данные</string>
+  <string name="pref_mobileData_summary">Разрешить Ring использовать 3G/LTE сети в дополнение к Wi-Fi</string>
+  <string name="pref_systemContacts_title">Использовать контакты из адресной книги</string>
+  <string name="pref_systemContacts_summary">Использовать данные из адресной книги для отображения информации о звонящем.</string>
+  <string name="pref_systemDialer_title">Совершать системные звонки с помощью Ring</string>
+  <string name="pref_systemDialer_summary">Использовать Ring для системных звонков, если возможно.</string>
+  <string name="pref_startOnBoot_title">Запускать Ring при старте системы</string>
+  <string name="pref_startOnBoot_summary">Запускать Ring в фоновом режиме во время старта системы.</string>
+  <string name="pref_clearHistory_title">Очистить историю</string>
+  <string name="pref_clearHistory_summary">Очистить всю историю разговоров. Это действие нельзя отменить.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sk-rSK/strings.xml b/ring-android/androidtv/src/main/res/values-sk-rSK/strings.xml
new file mode 100644
index 0000000..3a78af5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sk-rSK/strings.xml
@@ -0,0 +1,62 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="version_section">Verzia</string>
+  <string name="no_email_app_installed">Nainštaluj emailovú aplikáciu, aby si nám poslal správu.</string>
+  <string name="email_chooser_title">Email </string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Žiadne sieťové pripojenie</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nový účet</string>
+  <string name="ab_action_chat">Textová správa</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_home">Domov</string>
+  <string name="menu_item_accounts">Nastavenie účtov</string>
+  <string name="menu_item_settings">Nastavenie</string>
+  <string name="menu_item_share">Zdieľaj moje kontakty</string>
+  <string name="menu_item_about">O programe Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Vytoč číslo</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button_stop">Stop</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <!--ContactList Fragment-->
+  <string name="starred_contacts_title">Obľubené</string>
+  <string name="choose_number">Vyberte číslo</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <!--Call Fragment-->
+  <string name="action_call_hangup">Zlož</string>
+  <string name="action_call_accept">Zdvihni hovor</string>
+  <string name="ab_action_flipcamera">Otoč kameru</string>
+  <!--Text messages-->
+  <string name="send_message">Vyšli správu</string>
+  <!--MediaPreferenceFragment-->
+  <string name="ringtone_error_title">Chyba</string>
+  <string name="ringtone_error_format_not_supported">Tento formát nie je podporovaný.</string>
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <!--Conversation-->
+  <!--Contacts-->
+  <string name="wizard_next">Ďalej</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Môj profil</string>
+  <string name="open_the_gallery">Otvor galériu</string>
+  <string name="take_a_photo">Sprav fotografiu</string>
+  <string name="unknown">Neznámy</string>
+  <!--Share fragment-->
+  <string name="share_your_account_information">Zdielaj </string>
+  <string name="generic_error_migration">Chyba</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sk-rSK/strings_account.xml b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_account.xml
new file mode 100644
index 0000000..0c76620
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_account.xml
@@ -0,0 +1,31 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Vymaž</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Alias</string>
+  <!--Strings related to account deletion-->
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">Účet</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Všeobecné</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Zvuk</string>
+  <string name="account_ringtone_label">Vyzváňacie tóny</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Zapnúť video</string>
+  <!--Advanced Details-->
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_method_label">TLS Metóda</string>
+  <string name="account_tls_server_name_label">Názov servera</string>
+  <!--restore/backup-->
+  <string name="account_export_end_error_title">Chyba</string>
+  <!--Name registration-->
+  <string name="account_status_unknown">Neznámy</string>
+  <!--Create account-->
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sk-rSK/strings_call.xml b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_call.xml
new file mode 100644
index 0000000..841b011
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_call.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Vyzváňanie</string>
+    <string name="call_human_state_busy">Zaneprazdnený</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-sk-rSK/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_content_description.xml
new file mode 100644
index 0000000..0376ab6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_content_description.xml
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Rýchly hovor</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sk-rSK/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_preferences.xml
new file mode 100644
index 0000000..c3a9b9a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sk-rSK/strings_preferences.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Sieť</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sl/strings.xml b/ring-android/androidtv/src/main/res/values-sl/strings.xml
new file mode 100644
index 0000000..3086d12
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sl/strings.xml
@@ -0,0 +1,38 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring je prosto programje, ki ga razvija in podpira</string>
+  <string name="copyright_section">Avtorske pravice</string>
+  <string name="contribute_section">Prispevaj</string>
+  <string name="version_section">Različica</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <!--AB menus-->
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <!--ContactList Fragment-->
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <!--Call Fragment-->
+  <!--Text messages-->
+  <!--MediaPreferenceFragment-->
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <!--Conversation-->
+  <!--Contacts-->
+  <!--MenuHeaderView-->
+  <!--Share fragment-->
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sq-rAL/strings.xml b/ring-android/androidtv/src/main/res/values-sq-rAL/strings.xml
new file mode 100644
index 0000000..7000652
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sq-rAL/strings.xml
@@ -0,0 +1,140 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Përshtypje</string>
+  <string name="report">&lt;u&gt;Dërgonani një email&lt;/u&gt;</string>
+  <string name="section_license">Licencë</string>
+  <string name="sponsor_section">Ring-u është software i lirë i zhvilluar dhe i mbuluar nga</string>
+  <string name="copyright_section">Të drejta kopjimi</string>
+  <string name="contribute_section">Kontribuoni</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">S’u gjet aplikacion email-esh, instaloni një të tillë që të na dërgoni një raport</string>
+  <string name="no_browser_app_installed">S’u gjet aplikacion shfletuesi web, që të shihni këtë faqe, instaloni një të tillë </string>
+  <string name="email_chooser_title">Dërgojeni mesazhi duke përdorur…</string>
+  <string name="website_chooser_title">Shiheni sajtin duke përdorur…</string>
+  <string name="license">Ky software jepet \"siç është\", pa asnjë garanci të çfaërdo lloji. Për hollësi, shihni &lt;u&gt;GNU General Public License, version 3 ose më të re&lt;/u&gt;</string>
+  <string name="description">Ring është software i lirë për komunikim universal që respekton privatësinë e përdoruesve të tij.</string>
+  <string name="credits">Kredite</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Pa lidhje në rrjet</string>
+  <string name="error_mobile_network_available_but_disabled">Ju lutemi, akordojini hyrje rrjetit celular te skena e rregullimeve.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Llogari e re</string>
+  <string name="ab_action_chat">Shkëmbim mesazhesh tekst</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Hap sirtarin e lëvizjes</string>
+  <string name="drawer_close">Mbylle sirtarin e lëvizjes</string>
+  <!--Sections-->
+  <string name="menu_item_home">Kreu</string>
+  <string name="menu_item_accounts">Administroni llogari</string>
+  <string name="menu_item_settings">Rregullime</string>
+  <string name="menu_item_share">Ndaji kontaktet e mia me të tjerët</string>
+  <string name="menu_item_about">Mbi Ring-un</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Thirrni një numër</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Riluaje</string>
+  <string name="hist_replay_button_stop">Ndale</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Bisedë</item>
+    <item quantity="other">%d Biseda</item>
+  </plurals>
+  <string name="home_transfer_complet">Shpërngulje e plotësuar</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">S’u gjet kontakt</string>
+  <string name="starred_contacts_title">Të parapëlqyer</string>
+  <string name="searchbar_hint">Jepni një emër ose një numër telefoni…</string>
+  <string name="choose_number">Zgjidhni një numër</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Shpërngule te një tjetër thirrje e tanishme:</string>
+  <string name="transfer_no_other_call">S’ka thirrje të tjera pezull</string>
+  <string name="transfer_type_number">Shtypni numrin te i cili të shpërngulet:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Thirrje ardhëse nga %1$s</string>
+  <string name="notif_incoming_call">Thirrje ardhëse</string>
+  <string name="notif_outgoing_call_title">Thirrje për %1$s</string>
+  <string name="notif_outgoing_call">Thirrje për</string>
+  <string name="notif_current_call_title">Thirrje e tanishme me %1$s</string>
+  <string name="notif_current_call">Thirrja e tanishme</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Ju:</string>
+  <string name="action_call_conference">Konferencë</string>
+  <string name="action_call_hangup">Mbylle thirrjen</string>
+  <string name="ongoing_call">Thirrje në kryerje e sipër</string>
+  <string name="hist_in_call">Thirrje nga %1$s</string>
+  <string name="hist_out_call">Thirrje për %1$s</string>
+  <string name="start_error_title">S’niset dot Ring-u!</string>
+  <string name="start_error_mic_required">Që të funksionojë, Ring-u lyp leje për mikrofonin</string>
+  <string name="action_call_accept">Pranoje thirrjen</string>
+  <string name="action_call_decline">Hidhe tej</string>
+  <string name="ab_action_speakerphone">Aktivizoni altoparlantin</string>
+  <string name="ab_action_contact_add">Shtoje te kontaktet</string>
+  <string name="ab_action_contact_add_question">Të shtohet te kontaktet?</string>
+  <string name="ab_action_audio_call">Thirrje audio</string>
+  <string name="ab_action_video_call">Thirrje video</string>
+  <string name="share_via">Ndajeni përmes</string>
+  <string name="write_a_message">Shkruani një mesazh</string>
+  <string name="scan_qr">Skanoni Kodin QR</string>
+  <string name="ab_action_flipcamera">Rrotulloni kamerën</string>
+  <!--Text messages-->
+  <string name="send_message">Dërgoje mesazhin</string>
+  <string name="message_sending">Po dërgohet mesazhi…</string>
+  <string name="time_just_now">Mu tani</string>
+  <string name="permission_read_denied">Aplikacioni s’u lejua të lexonte te depozita juaj. Ndaj, s’mund të funksionojë si duhet. Ju lutemi, shihni mundësinë e akordimit për të kësaj lejeje</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Leje për kamerën</string>
+  <string name="permission_dialog_camera_message">Që të funksionojnë, bisedat me video lypin doemos leje për kamerën Ju lutemi, shihni mundësinë e akordimit të saj.</string>
+  <string name="ringtone_error_title">Gabim</string>
+  <string name="ringtone_error_format_not_supported">Ky format nuk mbulohet.</string>
+  <string name="ringtone_error_size_too_big">Kjo kartelë është shumë e madhe. Madhësia maksimum është %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring-ut i duhet leja \"Lexo në kontakte\" që të aktivizojë këtë veçori. Ju lutemi, akordojani.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring-ut i duhet leja \"Shkruaj në regjistër thirrjesh\" që të aktivizojë këtë veçori. Ju lutemi, akordojani.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Skanoni kodin QR të llogarisë që doni të shtoni.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Të pastrohet historiku?</string>
+  <string name="clear_history_dialog_message">Ky veprim s’mund të zhbëhet.</string>
+  <string name="clear_history_completed">Historiku u pastrua.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Fshije këtë bisedë</string>
+  <string name="conversation_action_delete_this_title">Të fshihet kjo bisedë?</string>
+  <string name="conversation_action_delete_this_message">Ky veprim s’mund të zhbëhet.</string>
+  <string name="conversation_action_copy_peer_number">Kopjoje numrin</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s u kopjua te e papastra</string>
+  <string name="conversation_action_select_peer_number">Përzgjidhni një numër</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Të shtohet %1$s ?</string>
+  <string name="prompt_new_password">Fjalëkalim i ri</string>
+  <string name="prompt_new_password_repeat">Përsëriteni fjalëkalimin e ri</string>
+  <string name="account_create_title">Krijoni një llogari Ring</string>
+  <string name="prompt_new_username">Jepni emër përdoruesi të ri</string>
+  <string name="help_password_choose">Zgjidhni një fjalëkalim të fuqishëm që do ta mbani mend për të mbrojtur llogarinë tuaj Ring.</string>
+  <string name="help_password_enter">Jepni fjalëkalimin e llogarisë suaj kryesore Ring</string>
+  <string name="help_pin_enter">Jepni PIN-in prej një llogarie tjetër Ring të formësuar. Përdorni veçorinë \"eksportoje llogarinë në Ring\" që të merrni një PIN.</string>
+  <string name="wizard_next">Pasuesi</string>
+  <string name="wizard_back">Mbrapsht</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Profili im</string>
+  <string name="open_the_gallery">Hape galerinë</string>
+  <string name="take_a_photo">Bëni një foto</string>
+  <string name="unknown">E panjohur</string>
+  <!--Share fragment-->
+  <string name="share_message_no_account">Ju lutemi, përzgjidhni një llogari për ndarje me të.</string>
+  <string name="share_your_account_information">Ndaji me të tjerët të dhënat e mia të kontaktit</string>
+  <string name="generic_error_migration">Gabim</string>
+  <string name="generic_error_migration_message">Ndodhi një gabim gjatë migrimit</string>
+  <!--Pending contact requests-->
+  <string name="accept">Pranoje</string>
+  <string name="refuse">Hidhe tej</string>
+  <!--Send contact requests-->
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sq-rAL/strings_account.xml b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_account.xml
new file mode 100644
index 0000000..59db22f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_account.xml
@@ -0,0 +1,155 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Fshije</string>
+  <string name="ic_advanced_menu">Rregullime të mëtejshme</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Shtoni llogari Ring</string>
+  <string name="add_sip_account_title">Shtoni llogari SIP</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Strehëemër</string>
+  <string name="prompt_username">Emër përdoruesi</string>
+  <string name="prompt_password">Fjalëkalim</string>
+  <string name="action_create">Krijoni llogari</string>
+  <string name="action_create_short">Regjistrohuni</string>
+  <string name="error_field_required">Kjo fushë është e domosdoshme</string>
+  <string name="dialog_wait_create">Po shtohet llogaria</string>
+  <string name="dialog_wait_create_details">Ju lutemi, pritni teksa shtohet llogaria juaj e re…</string>
+  <string name="dialog_wait_update">Po përditësohet llogaria</string>
+  <string name="dialog_wait_update_details">Ju lutemi, pritni teksa përditësohet llogaria juaj e re…</string>
+  <string name="dialog_warn_ip2ip_account_title">Të krijohet llogari SIP e zbrazët?</string>
+  <string name="dialog_warn_ip2ip_account_message">Ju ndan një hap nga krijimi i një llogarie SIP pa strehëemër të vlefshëm.
+        Do të jeni në gjendje vetëm të bëni dhe të merrni thirrje ip të drejtpërdrejta.
+        Llogarinë tuaj mund ta përpunoni më vonë</string>
+  <string name="account_type_ip2ip">Llogari IP</string>
+  <string name="help_ring">Një llogari Ring ju lejon të lidheni në mënyrë të sigurt me njerëz, sipas modelit tek për te, përmes një rrjeti tërësisht të shpërndarë.</string>
+  <string name="help_sip_title">Shtoni llogarinë tuaj SIP</string>
+  <string name="help_sip">Formësoni një llogari SIP ekzistuese.</string>
+  <string name="create_sip_account">Shtoni llogari SIP</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Të fshihet llogaria?</string>
+  <string name="account_delete_dialog_message">Ky veprim s’mund të zhbëhet.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">S’ka llogari të regjistruar</string>
+  <string name="normal_accounts_titles">Llogari</string>
+  <string name="normal_devices_titles">Pajisje të njohura që lidhen te kjo llogari Ring</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Të përgjithshme</string>
+  <string name="account_basic_category">Rregullime Bazë</string>
+  <string name="account_alias_label">Emër llogarie</string>
+  <string name="account_hostname_label">Strehëemër</string>
+  <string name="account_username_label">Emër përdoruesi</string>
+  <string name="account_password_label">Fjalëkalim</string>
+  <string name="account_optionnal_category">Rregullime Opsionale</string>
+  <string name="account_useragent_label">Agjent Përdoruesi</string>
+  <string name="account_autoanswer_label">Vetëpërgjigje</string>
+  <string name="account_upnp_label">Aktivizo UPnP</string>
+  <string name="account_proxy_field">Ndërmjetës</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Audio</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Zile</string>
+  <string name="account_ringtone_enabled_label">Aktivizo zilen</string>
+  <string name="account_ringtone_path_label">Shteg zileje</string>
+  <string name="account_ringtone_custom_label">Përdor zile vetjake</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Aktivizo Video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Të mëtejshme</string>
+  <string name="account_registration_exp_label">Skadim Regjistrimi</string>
+  <string name="account_local_interface_label">Ndërfaqe Vendore</string>
+  <string name="account_local_port_label">Portë Vendore</string>
+  <string name="account_stun_enable_label">Përdor Stun</string>
+  <string name="account_stun_server_label">Shërbyes Stun</string>
+  <string name="account_turn_enable_label">Përdor TURN</string>
+  <string name="account_turn_server_label">Shërbyes TURN</string>
+  <string name="account_turn_username_label">Emër përdoruesi TURN</string>
+  <string name="account_turn_password_label">Fjalëkalim TURN</string>
+  <string name="account_published_address_label">Adresë e Publikuar</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Kredenciale</string>
+  <string name="account_credentials_edit">Përpunoni kredenciale</string>
+  <string name="account_credentials_add">Shtoni kredenciale</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Siguri</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Përdor Bartje TLS</string>
+  <string name="account_tls_port_label">Portë Përgjuesi TLS</string>
+  <string name="account_tls_certificate_list_label">Autoritete Dëshmish</string>
+  <string name="account_tls_certificate_file_label">Kartelë Dëshmie</string>
+  <string name="account_tls_private_key_file_label">Kartelë Kyçi Privat</string>
+  <string name="account_tls_password_label">Fjalëkalim Kyçi Privat</string>
+  <string name="account_tls_method_label">Metodë TLS</string>
+  <string name="account_tls_ciphers_label">Shifra TLS</string>
+  <string name="account_tls_server_name_label">Emër Shërbyesi</string>
+  <string name="account_tls_verify_server_label">Veirifkoni Shërbyes</string>
+  <string name="account_tls_verify_client_label">Verifikoni Klient</string>
+  <string name="account_tls_negotiation_timeout_sec">Skadim Tratative (s)</string>
+  <string name="account_rtp_max_port">Maksimum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Riktheni një llogari</string>
+  <string name="account_restore_message">Jepni fjalëkalimin për çfshehtëzim kartele.</string>
+  <string name="account_restore_decryption_password">Fjalëkalim çfeshhtëzimesh</string>
+  <string name="account_new_device_password">Që të zhbllokohet llogaria, jepni fjalëkalimin e përgjithshëm</string>
+  <string name="restore_backup_wait">Ju lutemi, pritni…</string>
+  <string name="error_password_char_count">Minimumi 6 shenja</string>
+  <string name="error_passwords_not_equals">Fjalëkalimet nuk përputhen</string>
+  <string name="restore_failed_dialog_title">Rikthimi dështoi</string>
+  <string name="restore_failed_dialog_msg">Ndodhi një gabim</string>
+  <string name="export_account_wait_title">Ju lutemi, pritni…</string>
+  <string name="account_export_end_decryption_message">S’u zhbllokua dot llogaria juaj duke përdorur fjalëkalimin e dhënë.</string>
+  <string name="account_export_end_network_title">Gabim rrjeti</string>
+  <string name="account_export_end_network_message">S’u eksportua dot llogari te rrjeti. Kontrolloni lidhjen tuaj në rrjet.</string>
+  <string name="account_export_end_error_title">Gabim</string>
+  <string name="account_export_end_error_message">S’u eksportua dot llogaria. Ndodhi një gabim i panjohur.</string>
+  <string name="account_enter_password">Jepni fjalëkalimin</string>
+  <string name="account_share_body">Kontaktomëni duke përdorur \'%1$s\' në platformën Ring për komunikime të shpërndarë: http://ring.cx</string>
+  <string name="account_share_body_with_username">Kontaktomëni duke përdorur \'%1$s\' ose emrin tim publik \'%2$s\' në platformën Ring për komunikime të shpërndarë: http://ring.cx</string>
+  <string name="account_contact_me">Lidhuni me mua në Ring!</string>
+  <string name="update_account">Përditësoje llogarinë</string>
+  <string name="account_migration">Llogaria juaj Ring mund të përditësohet.\nJu lutemi, jepni fjalëkalimin tuaj.</string>
+  <string name="ring_account">Llogari Ring</string>
+  <string name="ring_account_identity">Identitet</string>
+  <string name="account_migration_title_dialog">Migrim llogarie</string>
+  <string name="account_migration_message_dialog">Llogaritë tuaja lypset të përditësohen. Doni të kalohet te skena e administrimit të Llogarive që të kryeni këtë veprim?</string>
+  <string name="account_update_needed">Lypset përditësim</string>
+  <string name="account_creation_file_too_big">Kartela është shumë e madhe</string>
+  <string name="account_cannot_read">S’lexohet dot %1$s</string>
+  <string name="account_cannot_be_found_title">S’gjendet dot llogari</string>
+  <string name="account_sip_cannot_be_registered_message">Mund të vazhdoni me procesin e krijimit të llogarisë ose të përpunoni këtu të dhënat tuaja. Përpunimi është i mundshëm edhe më vonë, që nga rregullimet llogarie.</string>
+  <string name="account_no_network_title">S’lidhet dot te rrjeti</string>
+  <string name="account_device_added_message">E keni rregulluar me sukses llogarinë tuaj Ring në këtë pajisje.</string>
+  <string name="account_device_updated_message">E përditësuat me sukses llogarinë tuaj Ring.</string>
+  <string name="account_sip_success_title">Llogaria SIP u regjistrua</string>
+  <string name="account_sip_success_message">E regjistruat me sukses llogarinë tuaj SIP</string>
+  <string name="account_sip_register_anyway">Regjistroje sido qoftë</string>
+  <string name="account_link_button">Lidheni këtë pajisje me një llogari</string>
+  <string name="account_import_title">Lidheni me një llogari ekzistuese</string>
+  <string name="account_link_prompt_pin">Jepni PIN-in</string>
+  <string name="account_new_button">Krijoni një llogari Ring</string>
+  <string name="account_link_export_button">Lidhni te kjo llogari një pajisje tjetër</string>
+  <string name="account_end_export_button">mbylle</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">S’regjistrohet dot emri: fjalëkalim llogarie i gabuar.</string>
+  <string name="register_name_invalid">S’regjistrohet dot emri: emër i pavlefshëm.</string>
+  <string name="register_name_already_taken">S’regjistrohet dot emri: emër tashmë i zënë.</string>
+  <string name="register_name_network_error">S’regjistrohet dot emri: gabim rrjeti ose shërbyesi.</string>
+  <string name="error_username_empty">Jepni një emër përdoruesi</string>
+  <string name="no_registered_name_for_account">S’u gjet emër i regjistruar për këtë llogari</string>
+  <string name="register_name">Regjistroni emër</string>
+  <string name="trying_to_register_name">Po provohet të regjistrohet emri</string>
+  <string name="registered_username">Emër përdoruesi i regjistruar</string>
+  <string name="register_username">Regjistroni emër përdoruesi publik (eksperimentale)</string>
+  <string name="username_already_taken">Emër përdoruesi tashmë i zënë</string>
+  <string name="invalid_username">Emër përdoruesi i pavlefshëm</string>
+  <string name="account_status_unknown">E panjohur</string>
+  <!--Create account-->
+  <string name="account_creation_home">Mirë se vini te Ring</string>
+  <string name="account_creation_profile">Krijoni profilin tuaj</string>
+  <!--Devices-->
+  <string name="enter_password">Jepni fjalëkalimin</string>
+  <string name="revoke_device_wait_title">Ju lutemi, pritni…</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sq-rAL/strings_call.xml b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_call.xml
new file mode 100644
index 0000000..c3cfec5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_call.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_busy">I zënë</string>
+    <string name="call_human_state_failure">Dështoi</string>
+    <string name="call_human_state_hold">Mbaje</string>
+    <string name="call_human_state_none">Asnjë</string>
+    <string name="conference_human_state_hold">Mbaje</string>
+    <string name="conference_human_state_default">Asnjë</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-sq-rAL/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_content_description.xml
new file mode 100644
index 0000000..6e1ac5a
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Thirrje e Shpejtë</string>
+  <string name="contact_picture_description">Foto Kontakti</string>
+  <string name="dial_numeric_pad">Numërator me shifra</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sq-rAL/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_preferences.xml
new file mode 100644
index 0000000..1a35fd2
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sq-rAL/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Rrjet</string>
+  <string name="pref_category_contacts">Kontakte</string>
+  <string name="pref_category_system">Sistem</string>
+  <string name="pref_category_privacy">Privatësi</string>
+  <string name="pref_mobileData_title">Të dhëna celulare</string>
+  <string name="pref_mobileData_summary">Lejojeni Ring-un edhe në rrjete 3G/LTE, përveç se te Wi-Fi</string>
+  <string name="pref_systemContacts_title">Përdor kontakte sistemi</string>
+  <string name="pref_systemContacts_summary">Për shfaqjen e hollësive të thirrësit përdor kontakte sistemi.</string>
+  <string name="pref_systemDialer_title">Kryej thirrje sistemi duke përdoru Ring-un</string>
+  <string name="pref_systemDialer_summary">Kur është e mundur, përdor Ring-un për të kryer thirrje sistemi.</string>
+  <string name="pref_startOnBoot_title">Nise Ring-un kur niset sistemi</string>
+  <string name="pref_startOnBoot_summary">Xhirojeni Ring-un në prapaskenë kur niset sistemi.</string>
+  <string name="pref_clearHistory_title">Pastroje historikun</string>
+  <string name="pref_clearHistory_summary">Pastroni krejt historikun e bisedave, Ky veprim nuk mund të zhbëhet.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sv/strings.xml b/ring-android/androidtv/src/main/res/values-sv/strings.xml
new file mode 100644
index 0000000..591ff0e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sv/strings.xml
@@ -0,0 +1,165 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Återkoppling</string>
+  <string name="report">&lt;u&gt;Skicka e-post till oss&lt;/u&gt;</string>
+  <string name="section_license">Licens</string>
+  <string name="sponsor_section">Ring är fri mjukvara, utvecklad och understödd av</string>
+  <string name="copyright_section">Copyright</string>
+  <string name="contribute_section">Bidra</string>
+  <string name="version_section">Version</string>
+  <string name="no_email_app_installed">Inget e-postprogram hittades, installera ett och skicka en rapport</string>
+  <string name="no_browser_app_installed">Ingen webbläsare hittades, installera en för att visa den här sidan</string>
+  <string name="email_chooser_title">Skicka e-post med...</string>
+  <string name="website_chooser_title">Visa webbsidan med...</string>
+  <string name="license">Denna app tillhandahålles i \"befintligt skick\", utan några som helst garantier. För detaljerad info, se
+&lt;u&gt;GNU General Public License version 3 eller senare&lt;/u&gt;</string>
+  <string name="description">Ring är fri mjukvara för universell kommunikation, med respekt för användarens frihet och integritet.</string>
+  <string name="credits">Tack till</string>
+  <!--About dialog-->
+  <string name="developed_by">Utvecklad av</string>
+  <string name="designed_by">Designad av</string>
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Ingen nätverksanslutning</string>
+  <string name="error_mobile_network_available_but_disabled">Bevilja tillgång till mobilnätet på inställningssidan.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Nytt konto</string>
+  <string name="ab_action_chat">Textmeddelande</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Öppna navigeringspanelen</string>
+  <string name="drawer_close">Stäng navigeringspanelen</string>
+  <!--Sections-->
+  <string name="menu_item_home">Hem</string>
+  <string name="menu_item_contact_request">Kontaktförfrågningar</string>
+  <string name="menu_item_accounts">Hantera konton</string>
+  <string name="menu_item_settings">Inställningar</string>
+  <string name="menu_item_share">Dela min kontakt</string>
+  <string name="menu_item_blacklist">Blockerade kontakter</string>
+  <string name="menu_item_about">Om Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Slå ett nummer</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Svara</string>
+  <string name="hist_replay_button_stop">Stopp</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d konversation</item>
+    <item quantity="other">%d konversationer</item>
+  </plurals>
+  <string name="home_transfering">Överför %1$s till %2$s</string>
+  <string name="home_transfer_complet">Överföring slutförd</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Ingen kontakt hittades</string>
+  <string name="starred_contacts_title">Favoriter</string>
+  <string name="searchbar_hint">Ange namn eller telefonnummer...</string>
+  <string name="choose_number">Välj ett nummer</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Överför till ett annat aktuellt samtal:</string>
+  <string name="transfer_no_other_call">Inga andra samtal väntar</string>
+  <string name="transfer_type_number">Ange nummer att överföra till:</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">Missat inkommande samtal</string>
+  <string name="notif_missed_outgoing_call">Missat utgående samtal</string>
+  <string name="notif_incoming_call_title">Inkommande samtal från %1$s</string>
+  <string name="notif_incoming_call">Inkommande samtal</string>
+  <string name="notif_outgoing_call_title">Utgående samtal till %1$s</string>
+  <string name="notif_outgoing_call">Utgående samtal</string>
+  <string name="notif_current_call_title">Aktuellt samtal med %1$s</string>
+  <string name="notif_current_call">Aktuellt samtal</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Du:</string>
+  <string name="action_call_attended_transfer">Bevakad överföring</string>
+  <string name="action_call_conference">Konferens</string>
+  <string name="action_call_hangup">Lägg på</string>
+  <string name="ongoing_call">Pågående samtal</string>
+  <string name="hist_in_call">Inkommande samtal av %1$s</string>
+  <string name="hist_out_call">Utgående samtal av %1$s</string>
+  <string name="start_error_title">Kan inte starta Ring!</string>
+  <string name="start_error_mic_required">Ring behöver mikrofonbehörighet för att fungera.</string>
+  <string name="action_call_accept">Svara</string>
+  <string name="action_call_decline">Avslå</string>
+  <string name="ab_action_speakerphone">Aktivera högtalare</string>
+  <string name="ab_action_contact_add">Lägg till i kontakter</string>
+  <string name="ab_action_contact_add_question">Vill du lägga till i kontakter?</string>
+  <string name="ab_action_audio_call">Ljudsamtal</string>
+  <string name="ab_action_video_call">Videosamtal</string>
+  <string name="ab_action_change_screen_orientation">Ändra skärmorientering</string>
+  <string name="share_via">Dela via</string>
+  <string name="write_a_message">Skriv ett meddelande</string>
+  <string name="scan_qr">Skanna QR-kod</string>
+  <string name="ab_action_flipcamera">Vänd kameran</string>
+  <!--Text messages-->
+  <string name="send_message">Skicka meddelande</string>
+  <string name="message_sending">Skickar meddelande...</string>
+  <string name="time_just_now">Just nu</string>
+  <string name="permission_read_denied">Appen nekas att läsa från din lagringsplats. Överväg att tilldela appen läsrättigheter, annars kommer den inte att fungera korrekt.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kamerarättighet</string>
+  <string name="permission_dialog_camera_message">Videokonversationer kräver kamerarättigheter. Överväg att aktivera det.</string>
+  <string name="ringtone_error_title">Fel</string>
+  <string name="ringtone_error_format_not_supported">Detta format saknar stöd.</string>
+  <string name="ringtone_error_size_too_big">Denna fil är för stor. Maximal storlek är %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring behöver rättighet att läsa kontakter för att aktivera den här funktionen. Överväg att tilldela rättigheter.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring behöver rättighet att skriva till samtalskoggen för att aktivera den här funktionen. Överväg att tilldela rättigheter.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Scanna in QR-koden för det konto du vill lägga till.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Vill du rensa historiken?</string>
+  <string name="clear_history_dialog_message">Denna åtgärd kan inte ångras.</string>
+  <string name="clear_history_completed">Historiken har rensats bort.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Ta bort den här konversationen</string>
+  <string name="conversation_action_delete_this_title">Vill du ta bort den här konversationen?</string>
+  <string name="conversation_action_delete_this_message">Denna åtgärd kan inte ångras.</string>
+  <string name="conversation_action_copy_peer_number">Kopiera nummer</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s kopierat till urklipp</string>
+  <string name="conversation_action_select_peer_number">Välj ett nummer</string>
+  <string name="conversation_action_block_this">Blockera den här kontakten</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Vill du lägga till %1$s ?</string>
+  <string name="prompt_new_password">Nytt lösenord</string>
+  <string name="prompt_new_password_repeat">Upprepa nytt lösenord</string>
+  <string name="account_create_title">Skapa ett Ring-konto</string>
+  <string name="prompt_new_username">Ange nytt användarnamn</string>
+  <string name="help_password_choose">Ange ett starkt lösenord, som du kommer ihåg, för att skydda ditt Ring-konto.</string>
+  <string name="help_password_enter">Ange ditt huvudsakliga Ring-kontos lösenord</string>
+  <string name="help_pin_enter">Ange PIN-koden från ett annat konfigurerat Ring-konto. Använd \"Exportera konto på Ring\", för att få din PIN-kod.</string>
+  <string name="wizard_next">Nästa</string>
+  <string name="wizard_back">Tillbaka</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Min profil</string>
+  <string name="profile_message_warning">Din profil delas endast med dina kontakter</string>
+  <string name="open_the_gallery">Öppna galleriet</string>
+  <string name="take_a_photo">Ta ett foto</string>
+  <string name="profile_name_hint">Ange ditt namn (frivilligt)</string>
+  <string name="unknown">Okänd</string>
+  <!--Share fragment-->
+  <string name="share_message">Skanna denna QR-kod med den inbyggda skanner som finns i det Ring-program som vill kommunicera med dig.</string>
+  <string name="share_message_no_account">Välj ett konto att dela.</string>
+  <string name="share_your_account_information">Dela min kontaktinformation</string>
+  <string name="generic_error_migration">Fel</string>
+  <string name="generic_error_migration_message">Ett fel inträffade vid migrering</string>
+  <!--Pending contact requests-->
+  <string name="accept">Acceptera</string>
+  <string name="refuse">Neka</string>
+  <string name="block">Blockera</string>
+  <string name="contact_request_title">Väntande kontaktförfrågan</string>
+  <string name="contact_request_msg">Du har %1$s väntande förfrågningar</string>
+  <string name="contact_request_account">För %1$s</string>
+  <string name="no_requests">0 kontaktförfrågningar</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Skicka</string>
+  <string name="send_request_title">Skicka en kontaktförfrågan</string>
+  <string name="send_request_msg">Du måste skicka en kontaktförfrågan för att kommunicera med den här användaren. Så länge din kontakt inte har accepterat förfrågan, kan du skicka meddelanden, men din kontakt kan inte läsa dem.</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 blockerade kontakter</string>
+  <!--Smartlist-->
+  <string name="no_contact_request">Ingen kontaktförfrågan skickad</string>
+  <string name="contact_request_sent">Kontaktförfrågan skickad</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sv/strings_account.xml b/ring-android/androidtv/src/main/res/values-sv/strings_account.xml
new file mode 100644
index 0000000..d3cd3ea
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sv/strings_account.xml
@@ -0,0 +1,199 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Ta bort</string>
+  <string name="ic_advanced_menu">Avancerade inställningar</string>
+  <string name="ic_blacklist_menu">Blockerade kontakter</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Lägg till Ring-konto</string>
+  <string name="add_sip_account_title">Lägg till SIP-konto</string>
+  <string name="ring_account_default_name">Ring-konto %1$s</string>
+  <string name="prompt_alias">Alias</string>
+  <string name="prompt_hostname">Värdnamn</string>
+  <string name="prompt_username">Användarnamn</string>
+  <string name="prompt_password">Lösenord</string>
+  <string name="action_create">Skapa konto</string>
+  <string name="action_create_short">Registrera</string>
+  <string name="error_field_required">Det här fältet är obligatoriskt</string>
+  <string name="dialog_wait_create">Lägger till konto</string>
+  <string name="dialog_wait_create_details">Vänta medan ditt nya konto läggs till...</string>
+  <string name="dialog_wait_update">Uppdaterar konto</string>
+  <string name="dialog_wait_update_details">Vänta medan ditt nya konto uppdateras...</string>
+  <string name="dialog_warn_ip2ip_account_title">Vill du skapa ett tomt SIP-konto?</string>
+  <string name="dialog_warn_ip2ip_account_message">Du håller på att skapa ett SIP-konto utan giltigt värdnamn.
+Du kommer bara att kunna ringa och ta emot direkta IP-samtal.
+Du kan ändra kontot senare.</string>
+  <string name="account_type_ip2ip">IP-konto</string>
+  <string name="help_ring">Ett Ring-konto låter dig nå folk säkert via P2P, i ett fullständigt distribuerat närverk.</string>
+  <string name="help_sip_title">Lägg till ditt SIP-konto</string>
+  <string name="help_sip">Konfigurera ett befintligt SIP-konto.</string>
+  <string name="create_sip_account">Lägg till SIP-konto</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Vill du ta bort kontot?</string>
+  <string name="account_delete_dialog_message">Denna åtgärd kan inte ångras.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Inget konto registrerat</string>
+  <string name="normal_accounts_titles">Konton</string>
+  <string name="normal_devices_titles">Kända enheter, länkade till detta Ring-konto</string>
+  <string name="account_device_revoke">Återkalla enhet</string>
+  <string name="account_device_revocation_success_title">Slutfört</string>
+  <string name="account_device_revocation_success">Enheten är inte återkallad!</string>
+  <string name="account_device_revocation_error_title">Kan inte återkalla enheten</string>
+  <string name="account_device_revocation_wrong_password">Fel lösenord.</string>
+  <string name="account_device_revocation_unknown_device">Okänd enhet.</string>
+  <string name="account_device_revocation_error_unknown">Okänt fel.</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Allmänt</string>
+  <string name="account_basic_category">Grundläggande inställningar</string>
+  <string name="account_alias_label">Kontonamn</string>
+  <string name="account_hostname_label">Värdnamn</string>
+  <string name="account_bootstrap_label">Bootstrap</string>
+  <string name="account_username_label">Användarnamn</string>
+  <string name="account_password_label">Lösenord</string>
+  <string name="account_optionnal_category">Extra inställningar</string>
+  <string name="account_useragent_label">Användaragent</string>
+  <string name="account_autoanswer_label">Autosvar</string>
+  <string name="account_upnp_label">Aktivera UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Ljud</string>
+  <string name="account_preferences_media_tab">Media</string>
+  <string name="account_ringtone_label">Ringsignaler</string>
+  <string name="account_ringtone_enabled_label">Aktivera ringsignaler</string>
+  <string name="account_ringtone_path_label">Sökväg till ringsignal</string>
+  <string name="account_ringtone_custom_label">Använd anpassad ringsignal</string>
+  <!--Video Details-->
+  <string name="account_video_label">Video</string>
+  <string name="account_video_enable">Aktivera video</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Avancerat</string>
+  <string name="account_dht_public_in_calls_label">Tillåt alla samtal/meddelanden</string>
+  <string name="account_registration_exp_label">Registreringen löper ut</string>
+  <string name="account_local_interface_label">Lokalt gränssnitt</string>
+  <string name="account_local_port_label">Lokal port</string>
+  <string name="account_stun_enable_label">Använd STUN</string>
+  <string name="account_stun_server_label">STUN-server</string>
+  <string name="account_turn_enable_label">Använd TURN</string>
+  <string name="account_turn_server_label">TURN-server</string>
+  <string name="account_turn_username_label">TURN-användarnamn</string>
+  <string name="account_turn_password_label">TURN-lösenord</string>
+  <string name="account_published_same_as_local_label">Publicerad samma som lokal</string>
+  <string name="account_published_port_label">Publicerad port</string>
+  <string name="account_published_address_label">Publiserad adress</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Inloggningsuppgifter</string>
+  <string name="account_credentials_edit">Redigera inloggningsuppgifter</string>
+  <string name="account_credentials_add">Lägg till inloggningsuppgifter</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Säkerhet</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Använd TLS-transport</string>
+  <string name="account_tls_port_label">TLS lyssningsport</string>
+  <string name="account_tls_certificate_list_label">Certifikatutfärdare</string>
+  <string name="account_tls_certificate_file_label">Certifikatfil</string>
+  <string name="account_tls_private_key_file_label">Privat nyckelfil</string>
+  <string name="account_tls_password_label">Privat nyckellösenord</string>
+  <string name="account_tls_method_label">TLS-metod</string>
+  <string name="account_tls_ciphers_label">TLS-chiffer</string>
+  <string name="account_tls_server_name_label">Servernamn</string>
+  <string name="account_tls_verify_server_label">Verifiera server</string>
+  <string name="account_tls_verify_client_label">Verifiera klient</string>
+  <string name="account_tls_negotiation_timeout_sec">Tidsgräns för förhandling (sek)</string>
+  <string name="account_rtp_max_port">Maximum</string>
+  <string name="account_rtp_min_port">Minimum</string>
+  <string name="account_rtp_port_range">Audio RTP portintervall</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Återställ ett konto</string>
+  <string name="account_restore_message">Ange lösenord för att dekryptera filen</string>
+  <string name="account_restore_decryption_password">Dekrypteringslösenord</string>
+  <string name="account_new_device_password">Ange huvudlösenordet för att låsa upp kontot</string>
+  <string name="restore_dialog_title">Återställer</string>
+  <string name="restore_backup_wait">Vänta...</string>
+  <string name="error_password_char_count">6 tecken minimum</string>
+  <string name="error_passwords_not_equals">Lösenorden stämmer inte</string>
+  <string name="restore_failed_dialog_title">Återställning misslyckades</string>
+  <string name="restore_failed_dialog_msg">Et fel inträffade</string>
+  <string name="export_account_wait_title">Vänta...</string>
+  <string name="export_account_wait_message">Publicerar ny kontoinformation</string>
+  <string name="account_export_end_decryption_message">Kunde inte låsa upp ditt konto med det givna lösenordet.</string>
+  <string name="account_export_end_network_title">Nätverksfel</string>
+  <string name="account_export_end_network_message">Kunde inte exportera kontot över nätverket. Kontrollera din uppkoppling.</string>
+  <string name="account_export_end_error_title">Fel</string>
+  <string name="account_export_end_error_message">Kunde inte exportera kontot. Ett okänt fel har inträffat.</string>
+  <string name="account_enter_password">Ange lösenord</string>
+  <string name="account_share_body">Kontakta mig med hjälp av \"%1$s\" på kommunikationsplattformen Ring: http://ring.cx</string>
+  <string name="account_share_body_with_username">Kontakta mig med hjälp av \"%1$s\" eller mitt officiella användarnamn \"%2$s\" på kommunikationsplattformen Ring: http://ring.cx</string>
+  <string name="account_contact_me">Kontakta mig på Ring !</string>
+  <string name="update_account">Uppdatera konto</string>
+  <string name="account_migration">Ditt Ring-konto kan uppdateras.\nAnge ditt lösenord.</string>
+  <string name="ring_account">Ring-konto</string>
+  <string name="ring_account_identity">Identitet</string>
+  <string name="account_migration_title_dialog">Kontodelning</string>
+  <string name="account_migration_message_dialog">Dina konton behöver uppdateras. Vill du gå till kontohanteringsfönstret för att uppdatera?</string>
+  <string name="account_update_needed">Uppdatering behövs</string>
+  <string name="account_creation_file_too_big">Filen är för stor</string>
+  <string name="account_cannot_read">Kan inte läsa %1$s</string>
+  <string name="account_cannot_be_found_title">Kan inte hitta kontot</string>
+  <string name="account_cannot_be_found_message">Kontot kunde inte hittas i Ring-nätverket.\nTillse att det har exporterats från en befintlig enhet och att angivna kontouppgifter är korrekt.</string>
+  <string name="account_sip_cannot_be_registered_message">Du kan fortsätta med kontoskapandet eller redigera din information här. Redigering är fortfarande möjlig i kontoinställningarna, vid ett senare tillfälle.</string>
+  <string name="account_no_network_title">Kan inte ansluta till nätverket</string>
+  <string name="account_no_network_message">Kunde inte lägga till kontot, eftersom Ring inte kunde ansluta till det distribuerade nätverket. Kontrollera enhetens anslutning.</string>
+  <string name="account_device_added_title">Kontoenhet tillagd</string>
+  <string name="account_device_added_message">Du har lyckats konfigurera ditt Ring-konto på denna enhet.</string>
+  <string name="account_device_updated_title">Kontoenhet uppdaterad</string>
+  <string name="account_device_updated_message">Du har lyckats uppdatera ditt Ring-konto.</string>
+  <string name="account_cannot_be_updated_message">Kontoenheten kunde inte uppdateras. Kontrollera ditt lösenord.</string>
+  <string name="account_sip_success_title">SIP-konto registrerat</string>
+  <string name="account_sip_success_message">Du har registrerat ditt SIP-konto.</string>
+  <string name="account_sip_register_anyway">Registrera i alla fall</string>
+  <string name="account_link_button">Koppla denna enhet till ett konto</string>
+  <string name="account_import_title">Koppla ett befintligt konto</string>
+  <string name="account_link_prompt_pin">Ange PIN-kod</string>
+  <string name="account_wizard_title">Välkommen till</string>
+  <string name="account_new_button">Skapa ett Ring-konto</string>
+  <string name="account_link_export_button">Koppla en annan enhet till detta konto</string>
+  <string name="account_link_export_info">För att använda detta konto på en annan enhet, måste du först exponera det på Ring. Detta genererar en PIN-kod som du måste ange på den nya enheten för att öppna kontot. Pin-koden är giltig i 10 minuter.\n\nAnge ditt lösenord för att starta:</string>
+  <string name="account_start_export_button">Generera PIN-kod</string>
+  <string name="account_end_export_button">stäng</string>
+  <string name="account_end_export_infos">Din PIN-kod är:\n\n%%\n\nFör att slutföra åtgärden, måste du nu öppna Ring på den nya enheten. Skapa ett nytt konto med \"Koppla den här enheten till ett konto\". PIN-koden är giltig i 10 minuter.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Kan inte registrera namnet. Fel kontolösenord.</string>
+  <string name="register_name_invalid">Kan inte registrera namnet. Ogiltigt namn.</string>
+  <string name="register_name_already_taken">Kan inte registrera namnet. Namnet finns redan.</string>
+  <string name="register_name_network_error">Kan inte registrera namnet. Nätverks- eller serverfel.</string>
+  <string name="error_username_empty">Ange ett användarnamn</string>
+  <string name="no_registered_name_for_account">Inget registrerat namn hittades för detta konto</string>
+  <string name="register_name">Registrera namn</string>
+  <string name="trying_to_register_name">Försöker registrera namnet</string>
+  <string name="registered_username">Registrerat namn</string>
+  <string name="register_username">Registrera ett offentligt namn (experimentellt)</string>
+  <string name="username_already_taken">Användarnamnet finns redan</string>
+  <string name="invalid_username">Ogiltigt användarnamn</string>
+  <string name="looking_for_username_availability">Söker efter användarnamnets tillgänglighet...</string>
+  <string name="account_status_connecting">Ansluter</string>
+  <string name="account_status_connection_error">Anslutningsfel</string>
+  <string name="account_status_online">Uppkopplad</string>
+  <string name="account_status_unknown">Okänd</string>
+  <string name="account_status_offline">Nerkopplad</string>
+  <!--Create account-->
+  <string name="account_creation_home">Välkommen till ring</string>
+  <string name="account_creation_profile">Skapa din profil</string>
+  <string name="account_creation_ring">Skapa ditt Ring-konto</string>
+  <string name="account_link_title">Länka den här enheten</string>
+  <string name="account_sip_cannot_be_registered">Kan inte registrera konto</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">Ange lösenord för att bekräfta</string>
+  <string name="enter_password">Ange lösenord</string>
+  <string name="revoke_device_title">Återkalla enhet</string>
+  <string name="revoke_device_message">Vill du verkligen återkalla %1$s?</string>
+  <string name="revoke_device_wait_title">Vänta...</string>
+  <string name="revoke_device_wait_message">Återkallar enheten</string>
+  <string name="rename_device_title">Byt namn på enheten</string>
+  <string name="rename_device_message">Välj ett namn för att identifiera denna enhet på ditt Ring-konto</string>
+  <string name="rename_device_button">Byt namn på enhet</string>
+  <string name="account_rename_device_hint">Välj nytt enhetsnamn</string>
+  <string name="account_device_name_empty">Enhetsnamnet kan inte lämnas tomt</string>
+  <string name="account_device_this_indicator">denna enhet</string>
+  <string name="account_disabled_indicator">inaktiverad</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sv/strings_call.xml b/ring-android/androidtv/src/main/res/values-sv/strings_call.xml
new file mode 100644
index 0000000..8faf417
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sv/strings_call.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Ringer</string>
+    <string name="call_human_state_connecting">Ansluter</string>
+    <string name="call_human_state_ringing">Ringer</string>
+    <string name="call_human_state_current">Talar</string>
+    <string name="call_human_state_hungup">Över</string>
+    <string name="call_human_state_busy">Upptagen</string>
+    <string name="call_human_state_failure">Misslyckades</string>
+    <string name="call_human_state_hold">Parkera</string>
+    <string name="call_human_state_unhold">Återuppta</string>
+    <string name="call_human_state_over">Över</string>
+    <string name="call_human_state_none">Ingen</string>
+    <string name="conference_human_state_hold">Parkera</string>
+    <string name="conference_human_state_hold_rec">Parkera insp.</string>
+    <string name="conference_human_state_default">Ingen</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-sv/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-sv/strings_content_description.xml
new file mode 100644
index 0000000..517a232
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sv/strings_content_description.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Snabbsamtal</string>
+  <string name="contact_picture_description">Kontaktbild</string>
+  <string name="dial_numeric_pad">Numerisk knappsats</string>
+  <string name="contact_unblock">Ta bort blockering</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sv/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-sv/strings_preferences.xml
new file mode 100644
index 0000000..d7a5a12
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sv/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Nätverk</string>
+  <string name="pref_category_contacts">Kontakter</string>
+  <string name="pref_category_system">System</string>
+  <string name="pref_category_privacy">Sekretess</string>
+  <string name="pref_mobileData_title">Mobildata</string>
+  <string name="pref_mobileData_summary">Tillåt Ring på 3G/LTE-nätverk, som tillägg till WiFi</string>
+  <string name="pref_systemContacts_title">Använd systemkontakter</string>
+  <string name="pref_systemContacts_summary">Använd systemkontakter för att visa uppringaren info</string>
+  <string name="pref_systemDialer_title">Använd Ring till systemsamtal</string>
+  <string name="pref_systemDialer_summary">Använd om möjligt Ring för systemsamtal.</string>
+  <string name="pref_startOnBoot_title">Starta Ring vid systemstart</string>
+  <string name="pref_startOnBoot_summary">Kör Ring i bakgrunden när systemet startas</string>
+  <string name="pref_clearHistory_title">Rensa historik</string>
+  <string name="pref_clearHistory_summary">Ta bort all samtalshistorik. Denna åtgärd kan inte ångras.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-sw600dp-xhdpi/dimens.xml b/ring-android/androidtv/src/main/res/values-sw600dp-xhdpi/dimens.xml
new file mode 100644
index 0000000..d500d1b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sw600dp-xhdpi/dimens.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+                                                                    
+Author: Alexandre Lision <alexandre.lision@gmail.com>                     
+                                                                    
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or   
+(at your option) any later version.                                 
+                                                                    
+This program is distributed in the hope that it will be useful,     
+but WITHOUT ANY WARRANTY; without even the implied warranty of      
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       
+GNU General Public License for more details.                        
+                                                                    
+You should have received a copy of the GNU General Public License   
+along with this program; if not, write to the Free Software         
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
+ -->
+ 
+  <!--
+         Customize dimensions originally defined in res/values/dimens.xml (such as
+         screen margins) for sw600dp devices (e.g. 7" tablets) here.
+    -->
+
+<resources>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-sw600dp/dimens.xml b/ring-android/androidtv/src/main/res/values-sw600dp/dimens.xml
new file mode 100644
index 0000000..e323d34
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-sw600dp/dimens.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+                                                                    
+Author: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
+                                                                    
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or   
+(at your option) any later version.
+                                                                    
+This program is distributed in the hope that it will be useful,     
+but WITHOUT ANY WARRANTY; without even the implied warranty of      
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       
+GNU General Public License for more details.                        
+                                                                    
+You should have received a copy of the GNU General Public License   
+along with this program; if not, write to the Free Software         
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
+-->
+<resources>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-tr/strings.xml b/ring-android/androidtv/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000..2aa6f3c
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-tr/strings.xml
@@ -0,0 +1,159 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">Geri bildirim</string>
+  <string name="report">&lt;u&gt;Bize e-posta gönder&lt;/u&gt;</string>
+  <string name="section_license">Lisans</string>
+  <string name="sponsor_section">Ring bir özgür yazılımdır ve şunun tarafından desteklenir</string>
+  <string name="copyright_section">Telif Hakkı</string>
+  <string name="contribute_section">Katkı Yap</string>
+  <string name="version_section">Sürüm</string>
+  <string name="no_email_app_installed">E-posta uygulaması bulunamadı, bize rapor gönderebilmek için bir tane yükleyin</string>
+  <string name="no_browser_app_installed">Web tarayıcı uygulaması bulunmadı, bu sayfayı görmek için bir tane yükleyin</string>
+  <string name="email_chooser_title">Şunu kullanarak posta gönder...</string>
+  <string name="website_chooser_title">Şunu kullanarak web sitesini gör...</string>
+  <string name="license">Bu program HERHANGİ BİR TEMİNAT OLMADAN sağlanmıştır. Ayrıntılar için şuna bakın
+&lt;u&gt;GNU Genel Kamu Lisansı sürüm 3 ya da sonrası&lt;/u&gt;</string>
+  <string name="description">Ring; kullanıcılarının özgürlüklerine ve gizliliğine önem veren, evrensel iletişim için özgür yazılımdır.</string>
+  <string name="credits">Krediler</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Ağ bağlantısı yok</string>
+  <string name="error_mobile_network_available_but_disabled">Lütfen ayarlar ekranında hücre ağına erişim verin.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Yeni hesap</string>
+  <string name="ab_action_chat">Metin ileti</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Gezinti çekmecesini aç</string>
+  <string name="drawer_close">Gezinti çekmecesini kapat</string>
+  <!--Sections-->
+  <string name="menu_item_home">Ev</string>
+  <string name="menu_item_contact_request">İletişim istekleri</string>
+  <string name="menu_item_accounts">Hesapları yönet</string>
+  <string name="menu_item_settings">Ayarlar</string>
+  <string name="menu_item_share">Bilgimi paylaş</string>
+  <string name="menu_item_blacklist">Engellenmiş kişiler</string>
+  <string name="menu_item_about">Ring Hakkında</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Bir numara çevir</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Yeniden oynat</string>
+  <string name="hist_replay_button_stop">Durdur</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d Konuşma</item>
+    <item quantity="other">%d Konuşma</item>
+  </plurals>
+  <string name="home_transfering">%1$s den %2$s ye aktarılıyor</string>
+  <string name="home_transfer_complet">Aktarım tamamlandı</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Kişi bulunamadı</string>
+  <string name="starred_contacts_title">Sık Kullanılanlar</string>
+  <string name="searchbar_hint">Ad ya da telefon numarası girin...</string>
+  <string name="choose_number">Numara seçin</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Başka bir geçerli aramaya aktar:</string>
+  <string name="transfer_no_other_call">Bekleyen başka arama yok</string>
+  <string name="transfer_type_number">Aktarılacak numarayı girin:</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">Yanıtsız gelen arama</string>
+  <string name="notif_missed_outgoing_call">Yanıtsız giden arama</string>
+  <string name="notif_incoming_call_title">%1$s\'dan gelen arama</string>
+  <string name="notif_incoming_call">Gelen arama</string>
+  <string name="notif_outgoing_call_title">%1$s\'a giden arama</string>
+  <string name="notif_outgoing_call">Giden arama</string>
+  <string name="notif_current_call_title">%1$s ile şimdiki arama</string>
+  <string name="notif_current_call">Şimdiki arama</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Sen:</string>
+  <string name="action_call_attended_transfer">Katılınmış Aktarma</string>
+  <string name="action_call_conference">Toplantı</string>
+  <string name="action_call_hangup">Kapat</string>
+  <string name="ongoing_call">Giden arama</string>
+  <string name="hist_in_call">%1$s gelen arama</string>
+  <string name="hist_out_call">%1$s giden arama</string>
+  <string name="start_error_title">Ring başlatılamıyor !</string>
+  <string name="start_error_mic_required">Ring çalışmak için mikrofon iznine ihtiyaç duyuyor.</string>
+  <string name="action_call_accept">Aramayı yanıtla</string>
+  <string name="action_call_decline">Reddet</string>
+  <string name="ab_action_speakerphone">Hoparlörü etkinleştir</string>
+  <string name="ab_action_contact_add">Kişilere ekle</string>
+  <string name="ab_action_contact_add_question">Kişilere eklensin mi?</string>
+  <string name="ab_action_audio_call">Sesli arama</string>
+  <string name="ab_action_video_call">Görüntülü arama</string>
+  <string name="ab_action_change_screen_orientation">Ekran Yönünü değiştir</string>
+  <string name="share_via">Paylaş</string>
+  <string name="write_a_message">Bir ileti yaz</string>
+  <string name="scan_qr">Kare Kod Tara</string>
+  <string name="ab_action_flipcamera">Kamerayı ters çevir</string>
+  <!--Text messages-->
+  <string name="send_message">İleti gönder</string>
+  <string name="message_sending">İleti gönderiliyor...</string>
+  <string name="time_just_now">Şimdi</string>
+  <string name="permission_read_denied">Uygulamaya deponuzu okuma izni verilmedi. Bu yüzden düzgün işleyemez. Lütfen bu izni vermeyi göz ardı etmeyin.</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Kamera izni</string>
+  <string name="permission_dialog_camera_message">Görüntülü görüşmelerin çalışması için kamera izni gerekir. Lütfen etkinleştirmeyi göz ardı etmeyin.</string>
+  <string name="ringtone_error_title">Hata</string>
+  <string name="ringtone_error_format_not_supported">Bu biçim desteklenmiyor.</string>
+  <string name="ringtone_error_size_too_big">Bu dosya çok büyük. En büyük boyut %1$ikB.</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring bu özelliği etkinleştirmek için \"Kişileri okuma\" iznine gereksiniyor. Lütfen verin.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring bu özelliği etkinleştirmek için \"Çağrı kaydına yazma\" iznine gereksiniyor. Lütfen verin.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Eklemek istediğiniz hesabın QR kodunu tarayın.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Geçmişi temizle ?</string>
+  <string name="clear_history_dialog_message">Bu eylem geri alınamaz.</string>
+  <string name="clear_history_completed">Geçmiş temizlenmiş.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Bu konuşmayı sil</string>
+  <string name="conversation_action_delete_this_title">Bu konuşmayı sil ?</string>
+  <string name="conversation_action_delete_this_message">Bu eylem geri alınamaz.</string>
+  <string name="conversation_action_copy_peer_number">Numarayı kopyala</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s panoya kopyalandı</string>
+  <string name="conversation_action_select_peer_number">Bir numara seçin</string>
+  <string name="conversation_action_block_this">Bu kişiyi engelle</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">%1$s eklensin mi ?</string>
+  <string name="prompt_new_password">Yeni parola</string>
+  <string name="prompt_new_password_repeat">Yeni parola tekrar</string>
+  <string name="account_create_title">Bir Ring hesabı oluştur</string>
+  <string name="prompt_new_username">Yeni kullanıcı adı gir</string>
+  <string name="help_password_choose">Ring hesabınızı korumak için anımsayacağınız güçlü bir parola seçin.</string>
+  <string name="help_password_enter">Ana Ring hesap parolanızı girin</string>
+  <string name="help_pin_enter">Başka yapılandırılmış Ring hesabından PIN\'i gir. PIN edinmek için \"Ring\'de hesabı dışa aktarma\" özelliğini kullan.</string>
+  <string name="wizard_next">İleri</string>
+  <string name="wizard_back">Geri</string>
+  <!--MenuHeaderView-->
+  <string name="profile">Profilim</string>
+  <string name="profile_message_warning">Profiliniz sadece kayıtlı kişilerinizle paylaşılıyor</string>
+  <string name="open_the_gallery">Galeriyi aç</string>
+  <string name="take_a_photo">Fotoğraf çek</string>
+  <string name="profile_name_hint">Adınızı girin (isteğe bağlı)</string>
+  <string name="unknown">Bilinmeyen</string>
+  <!--Share fragment-->
+  <string name="share_message">Sizinle iletişime geçmek isteyenin Ring uygulamasının gömülü tarayıcısıyla bu QR kodu tarayın.</string>
+  <string name="share_message_no_account">Lütfen paylaşmak için bir hesap seçin.</string>
+  <string name="share_your_account_information">İletişim bilgimi paylaş</string>
+  <string name="generic_error_migration">Hata</string>
+  <string name="generic_error_migration_message">Göç sırasında bir hata oluştu</string>
+  <!--Pending contact requests-->
+  <string name="accept">Kabul et</string>
+  <string name="refuse">Geri Çevir</string>
+  <string name="block">Engelleme</string>
+  <string name="contact_request_title">Bekleyen iletişim isteği</string>
+  <string name="contact_request_account">%1$s için</string>
+  <string name="no_requests">0 iletişim isteği</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Gönder</string>
+  <string name="send_request_title">Bir ileteşem isteği gönder</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0 engellenmiş kişi</string>
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-tr/strings_account.xml b/ring-android/androidtv/src/main/res/values-tr/strings_account.xml
new file mode 100644
index 0000000..0824a7d
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-tr/strings_account.xml
@@ -0,0 +1,196 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Sil</string>
+  <string name="ic_advanced_menu">Gelişmiş ayarlar</string>
+  <string name="ic_blacklist_menu">Engellenmiş kişiler</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">Ring hesabı ekle</string>
+  <string name="add_sip_account_title">SIP hesabı ekle</string>
+  <string name="prompt_alias">Takma ad</string>
+  <string name="prompt_hostname">Sunucu adı</string>
+  <string name="prompt_username">Kullanıcı adı</string>
+  <string name="prompt_password">Parola</string>
+  <string name="action_create">Hesap oluştur</string>
+  <string name="action_create_short">Kaydol</string>
+  <string name="error_field_required">Bu alan gerekli</string>
+  <string name="dialog_wait_create">Hesap ekleniyor</string>
+  <string name="dialog_wait_create_details">Yeni hesabınız eklenirken lütfen bekleyin...</string>
+  <string name="dialog_wait_update">Hesap güncelleniyor</string>
+  <string name="dialog_wait_update_details">Yeni hesabınız güncellenirken lütfen bekleyin...</string>
+  <string name="dialog_warn_ip2ip_account_title">Boş SIP hesabı oluşturulsun mu?</string>
+  <string name="dialog_warn_ip2ip_account_message">Bir SIP hesabı oluşturabilmeniz için makine adınız geçersiz.
+Yalnızca doğrudan ip çağrıları alabilirsiniz.
+Hesabınızı daha sonra düzenleyebilirsiniz</string>
+  <string name="account_type_ip2ip">IP hesabı</string>
+  <string name="help_ring">Bir Ring hesabı tümüyle dağıtık ağ üzerinden insanlara uçtan uca güvenle ulaşmanızı sağlar.</string>
+  <string name="help_sip_title">SIP hesabınızı ekleyin</string>
+  <string name="help_sip">Var olan SIP hesabını yapılandır</string>
+  <string name="create_sip_account">SIP hesabı ekle</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Hesabı silinsin mi ?</string>
+  <string name="account_delete_dialog_message">Bu eylem geri alınamaz.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Kayıtlı hesap yok</string>
+  <string name="normal_accounts_titles">Hesaplar</string>
+  <string name="normal_devices_titles">Bu Ring hesabına bağlı bilinen aygıtlar</string>
+  <string name="account_device_revoke">Aygıtı iptal et</string>
+  <string name="account_device_revocation_success_title">Başarılı</string>
+  <string name="account_device_revocation_success">Aygıt şimdi iptal edildi!</string>
+  <string name="account_device_revocation_error_title">Aygıt iptal edilemiyor</string>
+  <string name="account_device_revocation_wrong_password">Yanlış parola</string>
+  <string name="account_device_revocation_unknown_device">Bilinmeyen aygıt.</string>
+  <string name="account_device_revocation_error_unknown">Bilinmeyen hata.</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Genel</string>
+  <string name="account_basic_category">Temel Ayarlar</string>
+  <string name="account_alias_label">Hesap adı</string>
+  <string name="account_hostname_label">Sunucu adı</string>
+  <string name="account_bootstrap_label">Önyükleme</string>
+  <string name="account_username_label">Kullanıcı adı</string>
+  <string name="account_password_label">Parola</string>
+  <string name="account_optionnal_category">İsteğe Bağlı Ayarlar</string>
+  <string name="account_useragent_label">Kullanıcı Kimliği</string>
+  <string name="account_autoanswer_label">Kendiliğinden Yanıtla</string>
+  <string name="account_upnp_label">UPnP\'yi etkinleştir</string>
+  <string name="account_proxy_field">Vekil</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Ses</string>
+  <string name="account_preferences_media_tab">Ortam</string>
+  <string name="account_ringtone_label">Zil sesleri</string>
+  <string name="account_ringtone_enabled_label">Zil seslerini etkinleştir</string>
+  <string name="account_ringtone_path_label">Zil sesi yolu</string>
+  <string name="account_ringtone_custom_label">Özel zil sesi kullan</string>
+  <!--Video Details-->
+  <string name="account_video_label">Görüntü</string>
+  <string name="account_video_enable">Görüntüyü Etkinleştir</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Gelişmiş</string>
+  <string name="account_dht_public_in_calls_label">Tüm arama ve iletilere izin ver</string>
+  <string name="account_registration_exp_label">Kaydolma Bitimi</string>
+  <string name="account_local_interface_label">Yerel Arayüz</string>
+  <string name="account_local_port_label">Yerel Delik</string>
+  <string name="account_stun_enable_label">Stun Kullan</string>
+  <string name="account_stun_server_label">Stun Sunucusu</string>
+  <string name="account_turn_enable_label">TURN kullan</string>
+  <string name="account_turn_server_label">TURN sunucusu</string>
+  <string name="account_turn_username_label">TURN kullanıcı adı</string>
+  <string name="account_turn_password_label">TURN parolası</string>
+  <string name="account_published_same_as_local_label">Yayımlanan yerel ile aynı</string>
+  <string name="account_published_port_label">Yayımlanan Delik</string>
+  <string name="account_published_address_label">Yayımlanan Yer</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Kimlik Bilgileri</string>
+  <string name="account_credentials_edit">Kimlik bilgilerini düzenle</string>
+  <string name="account_credentials_add">Kimlik bilgisi ekle</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Güvenlik</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">TLS Taşıyıcı kullan</string>
+  <string name="account_tls_port_label">TLS Dinleyici Deliği</string>
+  <string name="account_tls_certificate_list_label">Onay Kurumları</string>
+  <string name="account_tls_certificate_file_label">Sertifika Dosyası</string>
+  <string name="account_tls_private_key_file_label">Özel Anahtar Dosyası</string>
+  <string name="account_tls_password_label">Özel Anahtar Parolası</string>
+  <string name="account_tls_method_label">TLS Yöntemi</string>
+  <string name="account_tls_ciphers_label">TLS Şifreleri</string>
+  <string name="account_tls_server_name_label">Sunucu Adı</string>
+  <string name="account_tls_verify_server_label">Sunucu Doğrula</string>
+  <string name="account_tls_verify_client_label">İstemciyi Doğrula</string>
+  <string name="account_tls_negotiation_timeout_sec">Görüşme Zaman Aşımı (saniye)</string>
+  <string name="account_rtp_max_port">Azami</string>
+  <string name="account_rtp_min_port">Asgari</string>
+  <string name="account_rtp_port_range">Ses RTP Delik Aralığı</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">Hesabı geri yükle</string>
+  <string name="account_restore_message">Dosya şifresini çözmek için parolayı girin.</string>
+  <string name="account_restore_decryption_password">Şifre çözme parolası</string>
+  <string name="account_new_device_password">Hesabın kilidini açmak için ana parolayı gir</string>
+  <string name="restore_dialog_title">Geri yükleniyor</string>
+  <string name="restore_backup_wait">Lütfen bekleyin...</string>
+  <string name="error_password_char_count">En az 6 karakter</string>
+  <string name="error_passwords_not_equals">Parolalar eşleşmedi</string>
+  <string name="restore_failed_dialog_title">Geri yükleme başarısız</string>
+  <string name="restore_failed_dialog_msg">Bir hata oluştu</string>
+  <string name="export_account_wait_title">Lütfen bekleyin...</string>
+  <string name="export_account_wait_message">Yeni hesap bilgisi yayımlanıyor</string>
+  <string name="account_export_end_decryption_message">Sağlanan parola kullanılarak hesabınızın kilidi açılamıyor.</string>
+  <string name="account_export_end_network_title">Ağ hatası</string>
+  <string name="account_export_end_network_message">Hesap ağda dışa aktarılamadı. Bağlanabilirliğinizi denetleyin.</string>
+  <string name="account_export_end_error_title">Hata</string>
+  <string name="account_export_end_error_message">Hesap dışa aktarılamadı. Bilinmeyen bir hata oluştu.</string>
+  <string name="account_enter_password">Parolayı gir</string>
+  <string name="account_share_body">Ring dağıtık iletişim platformunda \'%1$s\' kullanarak benimle bağlantı kur: http://ring.cx</string>
+  <string name="account_share_body_with_username">Ring dağıtık iletişim platformunda \'%1$s\' ya da herkese açık kullanıcı adım \'%2$s\' kullanarak benimle iletişim kur: http://ring.cx</string>
+  <string name="account_contact_me">Benimle Ring üzerinden iletişime geç</string>
+  <string name="update_account">Hesabı güncelle</string>
+  <string name="account_migration">Ring hesabınız güncellenebilir.\nParolanızı girin.</string>
+  <string name="ring_account">Ring Hesabı</string>
+  <string name="ring_account_identity">Kimlik</string>
+  <string name="account_migration_title_dialog">Hesap taşıma</string>
+  <string name="account_migration_message_dialog">Hesaplarınızın güncellenmesi gerekli.Hesap yönetim ekranından bu süreci yürütmek ister misiniz?</string>
+  <string name="account_update_needed">Güncelleme gerekli</string>
+  <string name="account_creation_file_too_big">Dosya çok büyük</string>
+  <string name="account_cannot_read">%1$s okunamıyor</string>
+  <string name="account_cannot_be_found_title">Hesap bulunamadı</string>
+  <string name="account_cannot_be_found_message">Hesap Ring ağı üzerinde bulunamadı.\nVar olan bir aygıttan Ring üzerinde dışa aktarıldığından ve sağladığı bilgilerin doğru olduğundan emin olun.</string>
+  <string name="account_sip_cannot_be_registered_message">Hesap oluşturma süreciyle devam edebilir ya da bilginizi burada düzenleyebilirsiniz. Düzenleme daha sonra hesap ayarlarında yapılabilir.</string>
+  <string name="account_no_network_title">Ağa bağlanılamıyor</string>
+  <string name="account_no_network_message">Hesap eklenemiyor çünkü Ring dağıtık ağa bağlanamıyor. Bağlanabilirliğinizi denetleyin.</string>
+  <string name="account_device_added_title">Hesap aygıtı eklendi</string>
+  <string name="account_device_added_message">Bu aygıttaki Ring hesabınızı başarıyla kurdunuz.</string>
+  <string name="account_device_updated_title">Hesap aygıtı güncellendi</string>
+  <string name="account_device_updated_message">Ring hesabınızı başarıyla güncellediniz.</string>
+  <string name="account_cannot_be_updated_message">Hesap aygıtı güncellenemedi. Lütfen parolanızı kontrol edin</string>
+  <string name="account_sip_success_title">Sip hesabı kayıtlı</string>
+  <string name="account_sip_success_message">Sip hesabınızı başarıyla kaydettiniz.</string>
+  <string name="account_sip_register_anyway">Her koşulda kaydol</string>
+  <string name="account_link_button">Bu aygıtı bir hesaba bağla</string>
+  <string name="account_import_title">Var olan bir hesaba bağla</string>
+  <string name="account_link_prompt_pin">PIN\'i gir</string>
+  <string name="account_wizard_title">Hoş geldiniz</string>
+  <string name="account_new_button">Bir Ring hesabı oluştur</string>
+  <string name="account_link_export_button">Başka aygıtı bu hesaba bağla</string>
+  <string name="account_link_export_info">Bu hesabı başka aygıtlarda kullanmak için ilk olarak Ring\'de açığa çıkarmalısınız. Bu, hesabı kurmak için yeni aygıtta girmeniz gereken bir PIN kodu oluşturacak. PIN 10 dakikalığıa geçerlidir.\n\nLütfen başlamak için parolanızı sağlayın:</string>
+  <string name="account_start_export_button">Pin Oluştur</string>
+  <string name="account_end_export_button">kapat</string>
+  <string name="account_end_export_infos">Pin\'iniz:\n\n%%\n\nSüreci tamamlamak için yeni aygıtta Ring\'i açmanız gerekiyor. \"Bu aygıtı bir hesaba bağla\" ile yeni hesap oluşturun. Pin\'iniz 10 dakikalığına geçerlidir.</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">Ad kaydedilemiyor: yanlış hesap parolası.</string>
+  <string name="register_name_invalid">Ad kaydedilemiyor: geçersiz ad.</string>
+  <string name="register_name_already_taken">Ad kaydedilemiyor: ad önceden alınmış.</string>
+  <string name="register_name_network_error">Ad kaydedilemiyor: ağ ya da sunucu hatası.</string>
+  <string name="error_username_empty">Bir kullanıcı adı gir</string>
+  <string name="no_registered_name_for_account">Bu hesap için kaydedilmiş ad bulunamadı</string>
+  <string name="register_name">Adı kaydet</string>
+  <string name="trying_to_register_name">Ad kaydedilmeye çalışılıyor</string>
+  <string name="registered_username">Kaydedilen kullanıcı adı</string>
+  <string name="register_username">Halka açık kullanıcı adı kaydet (deneysel)</string>
+  <string name="username_already_taken">Kullanıcı adı önceden alınmış</string>
+  <string name="invalid_username">Geçersiz kullanıcı adı</string>
+  <string name="looking_for_username_availability">Kullanıcı adının uygunluğuna bakılıyor...</string>
+  <string name="account_status_connecting">Bağlanılıyor</string>
+  <string name="account_status_connection_error">Bağlantı hatası</string>
+  <string name="account_status_online">Çevrimiçi</string>
+  <string name="account_status_unknown">Bilinmeyen</string>
+  <string name="account_status_offline">Çevrimdışı</string>
+  <!--Create account-->
+  <string name="account_creation_home">Ring\'e Hoşgeldiniz</string>
+  <string name="account_creation_profile">Profilinizi oluşturun</string>
+  <string name="account_creation_ring">Ring hesabınızı oluşturun</string>
+  <string name="account_link_title">Bu aygıtı bağla</string>
+  <string name="account_sip_cannot_be_registered">Hesap kaydedilemiyor</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">Onaylamak için parolayı girin</string>
+  <string name="enter_password">Parolayı gir</string>
+  <string name="revoke_device_title">Aygıtı feshet </string>
+  <string name="revoke_device_message">%1$s iptal etmek istediğinizden emin misiniz?</string>
+  <string name="revoke_device_wait_title">Lütfen bekleyin...</string>
+  <string name="revoke_device_wait_message">Aygıt iptal ediliyor</string>
+  <string name="rename_device_title">Bu aygıtı yeniden adlandır</string>
+  <string name="rename_device_message">Ring hesabınızı bu aygıtta tanımlamak için yeni bir ad seçin</string>
+  <string name="rename_device_button">Aygıtı yeniden adlandır</string>
+  <string name="account_rename_device_hint">Yeni aygıt adı seç</string>
+  <string name="account_device_this_indicator">bu aygıt</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-tr/strings_call.xml b/ring-android/androidtv/src/main/res/values-tr/strings_call.xml
new file mode 100644
index 0000000..63661d1
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-tr/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Çalıyor</string>
+    <string name="call_human_state_connecting">Bağlanılıyor</string>
+    <string name="call_human_state_ringing">Aranıyor</string>
+    <string name="call_human_state_current">Konuşuyor</string>
+    <string name="call_human_state_hungup">Bitti</string>
+    <string name="call_human_state_busy">Meşgul</string>
+    <string name="call_human_state_failure">Başarısız</string>
+    <string name="call_human_state_hold">Beklet</string>
+    <string name="call_human_state_unhold">Bekletmeyi kaldır</string>
+    <string name="call_human_state_over">Bitti</string>
+    <string name="call_human_state_none">Hiçbiri</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Eklenmiş etkin</string>
+    <string name="conference_human_state_active_detached">Ayrılmış etkin</string>
+    <string name="conference_human_state_active_attached_rec">Eklenmiş kayıt etkin</string>
+    <string name="conference_human_state_active_detached_rec">Ayrılmış kayıt etkin</string>
+    <string name="conference_human_state_hold">Beklet</string>
+    <string name="conference_human_state_hold_rec">Kayda ara ver</string>
+    <string name="conference_human_state_default">Hiçbiri</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-tr/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-tr/strings_content_description.xml
new file mode 100644
index 0000000..9d4b9c8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-tr/strings_content_description.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Hızlı Ara</string>
+  <string name="contact_picture_description">Kişi Resmi</string>
+  <string name="dial_numeric_pad">Sayısal Tuşlar</string>
+  <string name="contact_unblock">Engeli kaldır</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-tr/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-tr/strings_preferences.xml
new file mode 100644
index 0000000..ac28c07
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-tr/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Ağ</string>
+  <string name="pref_category_contacts">Kişiler</string>
+  <string name="pref_category_system">Düzen</string>
+  <string name="pref_category_privacy">Gizlilik</string>
+  <string name="pref_mobileData_title">Hücresel veri</string>
+  <string name="pref_mobileData_summary">Ring\'i Wi-Fi\'ye ek olarak 3G/LTE ağlarında da çalıştır</string>
+  <string name="pref_systemContacts_title">Sistem bağlantılarını kullan</string>
+  <string name="pref_systemContacts_summary">Arayan detaylarını göstermek için sistem bağlantılarını kullan</string>
+  <string name="pref_systemDialer_title">Ring kullanarak sistem aramalarını yerleştirin.</string>
+  <string name="pref_systemDialer_summary">Mümkün olduğunda Sistem aramalarını yerleştirmek için Ring\'i kullanın.</string>
+  <string name="pref_startOnBoot_title">Ring\'i başlangıçta çalıştır</string>
+  <string name="pref_startOnBoot_summary">Düzen başladığında arka planda Ring\'i çalıştır.</string>
+  <string name="pref_clearHistory_title">Geçmişi temizle</string>
+  <string name="pref_clearHistory_summary">Konuşma geçmişini temizle. Bu eylem geri alınamaz.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-uk/strings.xml b/ring-android/androidtv/src/main/res/values-uk/strings.xml
new file mode 100644
index 0000000..aabdbab
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-uk/strings.xml
@@ -0,0 +1,121 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring є безкоштовним програмним забезпеченням, що розроблене та пдітримується</string>
+  <string name="copyright_section">Авторське право</string>
+  <string name="contribute_section">Співробітничати</string>
+  <string name="version_section">Версія</string>
+  <string name="no_email_app_installed">Не знайдено жодного поштового додатку, будь ласка встановіть хоча б один поштовий додаток щоб надіслати нам повідомлення</string>
+  <string name="email_chooser_title">Надіслати повідомлення за допомогою...</string>
+  <string name="credits">Подяки</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">Відсутнє з’єднання з мережею</string>
+  <string name="error_mobile_network_available_but_disabled">Будь ласка надайте права доступу для стільникової мережі у меню налаштувань.</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">Новий аккаунт</string>
+  <string name="ab_action_chat">Текстова переписка</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">Відкрити панель навігації</string>
+  <string name="drawer_close">Закрити панель навігації</string>
+  <!--Sections-->
+  <string name="menu_item_home">Домівка</string>
+  <string name="menu_item_accounts">Керувати аккаунтами</string>
+  <string name="menu_item_settings">Налаштування</string>
+  <string name="menu_item_about">Про Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">Набрати номер</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">Повторити</string>
+  <string name="hist_replay_button_stop">Стоп</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="one">%d груповий чат</item>
+    <item quantity="few">%d групових чатів</item>
+    <item quantity="other">%d групові чати</item>
+  </plurals>
+  <string name="home_transfer_complet">Відправлення закінчено</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">Контакт не знайдено</string>
+  <string name="starred_contacts_title">Улюблені</string>
+  <string name="searchbar_hint">Введіть ім’я або телефонний номер...</string>
+  <string name="choose_number">Оберіть номер</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">Перейти до іншого активного виклику</string>
+  <string name="transfer_no_other_call">Немає викликів, які очікуть</string>
+  <string name="transfer_type_number">Введіть номер отримувача:</string>
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">Вхідний виклик від %1$s</string>
+  <string name="notif_incoming_call">Вхідний виклик</string>
+  <string name="notif_outgoing_call_title">Вихідний виклик до %1$s</string>
+  <string name="notif_outgoing_call">Вихідний виклик</string>
+  <string name="notif_current_call_title">Діючий виклик з %1$s</string>
+  <string name="notif_current_call">Діючий виклик</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">Ви:</string>
+  <string name="action_call_attended_transfer">Прийняті обміни</string>
+  <string name="action_call_conference">Конференція</string>
+  <string name="action_call_hangup">Скинути</string>
+  <string name="ongoing_call">Поточний дзвінок</string>
+  <string name="hist_in_call">Вхідний виклик тривалістю %1$s</string>
+  <string name="hist_out_call">Вихідний виклик тривалістю %1$s</string>
+  <string name="start_error_title">Неможливо запустити Ring!</string>
+  <string name="start_error_mic_required">Ring потребує доступ до мікрофону для роботи</string>
+  <string name="action_call_accept">Здійснити виклик</string>
+  <string name="action_call_decline">Відмовитися</string>
+  <string name="ab_action_speakerphone">Увімкнути гучномовець</string>
+  <string name="ab_action_contact_add">Додати контакти</string>
+  <string name="ab_action_contact_add_question">Додати до контактів?</string>
+  <string name="ab_action_audio_call">Голосовий виклик</string>
+  <string name="ab_action_video_call">Відео виклик</string>
+  <string name="share_via">Поділитися за допомогою</string>
+  <string name="write_a_message">Написати повідомлення</string>
+  <string name="scan_qr">Сканувати QR код</string>
+  <string name="ab_action_flipcamera">Фліп камера</string>
+  <!--Text messages-->
+  <string name="send_message">Відправити повідомлення</string>
+  <string name="message_sending">ВІдправка повідомлення</string>
+  <string name="time_just_now">Прямо зараз</string>
+  <string name="permission_read_denied">Додатоку не було дозволено зчитувати фали з вашого пристрою. Отже, він не може функціонувати належним чином. Будь ласка, розгляньте питання про надання йому такого дозволу</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">Дозволи для камери</string>
+  <string name="permission_dialog_camera_message">Для здійснення відерозмови необхідно надати дозвіл на роботу камери. Будь ласка, розглянути можливість її увімкнення.</string>
+  <string name="ringtone_error_title">Помилка</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">Ring потребує права \"Зчитування контактів\" для включення цього функціоналу. Будь ласка надайте це право.</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">Ring потребує права \"Запис журналу викликів \" для включення цього функціоналу. Будь ласка надайте це право.</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">Сканування QR-коду облікового запису який ви хочете додати.</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">Очистити історію?</string>
+  <string name="clear_history_dialog_message">Ця дія не може бути скасована.</string>
+  <string name="clear_history_completed">Історія була очищена.</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">Видалити цю розмову</string>
+  <string name="conversation_action_delete_this_title">Видалити цю розмову?</string>
+  <string name="conversation_action_delete_this_message">Ця дія не може бути скасована.</string>
+  <string name="conversation_action_copy_peer_number">Копіювати номер</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s збережено у буфер</string>
+  <string name="conversation_action_select_peer_number">Виберіть номер</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">Додати %1$s ?</string>
+  <string name="prompt_new_password">Новий пароль</string>
+  <string name="account_create_title">Створити обліковий запис Ring</string>
+  <string name="wizard_next">Наступний</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">Невідомий</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">Помилка</string>
+  <!--Pending contact requests-->
+  <string name="accept">Прийняти</string>
+  <string name="refuse">Скидання</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">Відправити</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-uk/strings_account.xml b/ring-android/androidtv/src/main/res/values-uk/strings_account.xml
new file mode 100644
index 0000000..2699ac8
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-uk/strings_account.xml
@@ -0,0 +1,103 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">Видалити</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">Додаткове ім’я</string>
+  <string name="prompt_hostname">Ім\'я хоста</string>
+  <string name="prompt_username">Ім’я</string>
+  <string name="prompt_password">Пароль</string>
+  <string name="action_create_short">Зареєструватися</string>
+  <string name="error_field_required">Це поле обов’язкове</string>
+  <string name="dialog_wait_create">Додання аккаунту</string>
+  <string name="dialog_wait_create_details">Почекайте пока ваш аккаунт створюється.</string>
+  <string name="dialog_warn_ip2ip_account_title">Створити порожній SIP аккаунт?</string>
+  <string name="dialog_warn_ip2ip_account_message">Ви збираєтесь створити обліковий запис SIP без імені хоста.
+Вам будуть доступні лише прямі IP дзвінки. 
+Ви зможете відредагувати цей обліковий запис пізніше</string>
+  <string name="help_ring">Акаунт Ring дозволяє досягати людей безпечно у рівноправній та повністю розподіленій мережі.</string>
+  <string name="help_sip_title">Додати Ваш обліковий запис SIP</string>
+  <string name="help_sip">Налаштувати існуючий обліковий запис SIP</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">Видалити акаунт?</string>
+  <string name="account_delete_dialog_message">Ця дія не може бути скасована.</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">Немає зареєстрованного аккаунту</string>
+  <string name="normal_accounts_titles">Аккаунти</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">Головні</string>
+  <string name="account_basic_category">Базові налаштування</string>
+  <string name="account_alias_label">Назва облікового запису</string>
+  <string name="account_hostname_label">Ім\'я хоста</string>
+  <string name="account_bootstrap_label">Початкове завантаження</string>
+  <string name="account_username_label">Ім’я</string>
+  <string name="account_password_label">Пароль</string>
+  <string name="account_optionnal_category">Додаткові параметри</string>
+  <string name="account_useragent_label">Ідентифікація клієнта</string>
+  <string name="account_autoanswer_label">Автоматична Відповідь</string>
+  <string name="account_upnp_label">Включити UPnP</string>
+  <string name="account_proxy_field">Проксі</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">Звук</string>
+  <string name="account_preferences_media_tab">Медіа</string>
+  <string name="account_ringtone_label">Рингтони</string>
+  <string name="account_ringtone_enabled_label">Увімкнути рингтони</string>
+  <string name="account_ringtone_path_label">Шлях до рингтону</string>
+  <!--Video Details-->
+  <string name="account_video_label">Відео</string>
+  <string name="account_video_enable">Увімкнути відео</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">Продвинуті</string>
+  <string name="account_registration_exp_label">Реєстрація спливла</string>
+  <string name="account_local_interface_label">Локальний інтерфейс</string>
+  <string name="account_local_port_label">Локальний порт</string>
+  <string name="account_stun_enable_label">Використовувати STUN</string>
+  <string name="account_stun_server_label">Призупинити сервер</string>
+  <string name="account_turn_enable_label">Використовувати TURN</string>
+  <string name="account_turn_server_label">Обрати сервер</string>
+  <string name="account_turn_username_label">Обрати ім\'я</string>
+  <string name="account_turn_password_label">Обрати пароль</string>
+  <string name="account_published_same_as_local_label">Опубліковано такий же як і локальний</string>
+  <string name="account_published_port_label">Публічний порт</string>
+  <string name="account_published_address_label">Опублікована адреса</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">Облікові дані</string>
+  <string name="account_credentials_edit">Змінити облікові дані</string>
+  <string name="account_credentials_add">Додати облікові дані</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">Безпека</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">Використовувати TLS</string>
+  <string name="account_tls_port_label">TLS слухаючий порт</string>
+  <string name="account_tls_certificate_list_label">Центри сертифікації</string>
+  <string name="account_tls_certificate_file_label">Файл сертифікату</string>
+  <string name="account_tls_private_key_file_label">Приватний ключ</string>
+  <string name="account_tls_password_label">Пароль від приватного ключа</string>
+  <string name="account_tls_method_label">Метод TLS</string>
+  <string name="account_tls_ciphers_label">TLS шифрування</string>
+  <string name="account_tls_server_name_label">Ім’я сервера</string>
+  <string name="account_tls_verify_server_label">Перевірка сервера</string>
+  <string name="account_tls_verify_client_label">Перевірка клієнта</string>
+  <string name="account_tls_negotiation_timeout_sec">Таймаут з’єднання (в секундах)</string>
+  <string name="account_rtp_max_port">Максимум</string>
+  <string name="account_rtp_min_port">Мінімум</string>
+  <string name="account_rtp_port_range">Порти для передачі аудіо по RTP</string>
+  <!--restore/backup-->
+  <string name="account_restore_message">Введіть пароль для розшифрування файлу.</string>
+  <string name="account_restore_decryption_password">Розшифрування паролю</string>
+  <string name="restore_backup_wait">Будь ласка зачекайте</string>
+  <string name="error_password_char_count">мінімум 6 символів</string>
+  <string name="error_passwords_not_equals">Паролі не збігаються</string>
+  <string name="restore_failed_dialog_msg">Виникла помилка</string>
+  <string name="export_account_wait_title">Будь ласка зачекайте</string>
+  <string name="account_export_end_error_title">Помилка</string>
+  <string name="account_new_button">Створити обліковий запис Ring</string>
+  <!--Name registration-->
+  <string name="account_status_connecting">З\'єднання</string>
+  <string name="account_status_unknown">Невідомий</string>
+  <!--Create account-->
+  <string name="account_creation_home">Вітаємо у Ring</string>
+  <!--Devices-->
+  <string name="revoke_device_wait_title">Будь ласка зачекайте</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-uk/strings_call.xml b/ring-android/androidtv/src/main/res/values-uk/strings_call.xml
new file mode 100644
index 0000000..2fe8732
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-uk/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Дзвінок</string>
+    <string name="call_human_state_connecting">З\'єднання</string>
+    <string name="call_human_state_ringing">Дзвінок</string>
+    <string name="call_human_state_current">Розмовляє</string>
+    <string name="call_human_state_hungup">Завершено</string>
+    <string name="call_human_state_busy">Зайнятий</string>
+    <string name="call_human_state_failure">Невдало</string>
+    <string name="call_human_state_hold">Режим очікування</string>
+    <string name="call_human_state_unhold">Зняти з утримування</string>
+    <string name="call_human_state_over">Понад</string>
+    <string name="call_human_state_none">Нічого</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Активний приєднаний</string>
+    <string name="conference_human_state_active_detached">Активний від\'єднаний</string>
+    <string name="conference_human_state_active_attached_rec">Активний приєднаний запис</string>
+    <string name="conference_human_state_active_detached_rec">Активний від\'єднаний запис</string>
+    <string name="conference_human_state_hold">Режим очікування</string>
+    <string name="conference_human_state_hold_rec">Утримання запис</string>
+    <string name="conference_human_state_default">Нічого</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-uk/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-uk/strings_content_description.xml
new file mode 100644
index 0000000..b3b80a5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-uk/strings_content_description.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">Швидкий дзвінок</string>
+  <string name="contact_picture_description">Аватар контакту</string>
+  <string name="dial_numeric_pad">Цифровий набір</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-uk/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-uk/strings_preferences.xml
new file mode 100644
index 0000000..19c8bc5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-uk/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">Мережа</string>
+  <string name="pref_category_contacts">Контакти</string>
+  <string name="pref_category_system">Система</string>
+  <string name="pref_category_privacy">Приватність</string>
+  <string name="pref_mobileData_title">Мобільні дані</string>
+  <string name="pref_mobileData_summary">Дозволити Ring використовувати 3G/LTE мережі в доповнення Wi-Fi</string>
+  <string name="pref_systemContacts_title">Використовувати контакти з адресної книги</string>
+  <string name="pref_systemContacts_summary">Використовувати данні з адресної книги для показу деталей абоненту.</string>
+  <string name="pref_systemDialer_title">Використовувати Ring для системних викликів</string>
+  <string name="pref_systemDialer_summary">Використовувати Ring для системних викликів коли це можливо</string>
+  <string name="pref_startOnBoot_title">Запускати Ring після заупску системи</string>
+  <string name="pref_startOnBoot_summary">Запуск Ring у фоновому режимі під час запуску системи.</string>
+  <string name="pref_clearHistory_title">Видалити історію</string>
+  <string name="pref_clearHistory_summary">Видалити всю історію розмов. Ця дія не може бути скасована.</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-v21/dimens.xml b/ring-android/androidtv/src/main/res/values-v21/dimens.xml
new file mode 100644
index 0000000..f796a41
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-v21/dimens.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+                                                                    
+Author: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
+                                                                    
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or   
+(at your option) any later version.
+                                                                    
+This program is distributed in the hope that it will be useful,     
+but WITHOUT ANY WARRANTY; without even the implied warranty of      
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       
+GNU General Public License for more details.                        
+                                                                    
+You should have received a copy of the GNU General Public License   
+along with this program; if not, write to the Free Software         
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
+                                                                    
+Additional permission under GNU GPL version 3 section 7:            
+                                                                    
+If you modify this program, or any covered work, by linking or      
+combining it with the OpenSSL project's OpenSSL library (or a       
+modified version of that library), containing parts covered by the  
+terms of the OpenSSL or SSLeay licenses, Savoir-faire Linux Inc.
+grants you additional permission to convey the resulting work.      
+Corresponding Source for a non-source form of such a combination    
+shall include the source code for the parts of OpenSSL used as well 
+as that of the covered work.
+-->
+<resources>
+
+    <dimen name="action_button_lpadding">16dp</dimen>
+    <dimen name="action_button_bpadding">-20dp</dimen>
+    <dimen name="fab_compat_margin">16dp</dimen>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-v21/styles.xml b/ring-android/androidtv/src/main/res/values-v21/styles.xml
new file mode 100644
index 0000000..9b4155b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-v21/styles.xml
@@ -0,0 +1,13 @@
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <style name="AppTheme.ActionBar.Transparent" parent="style/Theme.AppCompat">
+        <item name="android:windowTranslucentStatus">true</item>
+        <item name="android:windowTranslucentNavigation">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowActionBarOverlay">true</item>
+        <item name="windowActionBarOverlay">true</item>
+        <item name="android:actionBarStyle">@style/ActionBar.Transparent</item>
+        <item name="actionBarStyle">@style/ActionBar.Transparent</item>
+    </style>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-w720dp-land/dimens.xml b/ring-android/androidtv/src/main/res/values-w720dp-land/dimens.xml
new file mode 100644
index 0000000..3700c3f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-w720dp-land/dimens.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="drawer_content_padding">320dp</dimen>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-w820dp/dimens.xml b/ring-android/androidtv/src/main/res/values-w820dp/dimens.xml
new file mode 100644
index 0000000..63fc816
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-w820dp/dimens.xml
@@ -0,0 +1,6 @@
+<resources>
+    <!-- Example customization of dimensions originally defined in res/values/dimens.xml
+         (such as screen margins) for screens with more than 820dp of available width. This
+         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
+    <dimen name="activity_horizontal_margin">64dp</dimen>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh-rCN/strings.xml b/ring-android/androidtv/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..4cca707
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,157 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="feedback_section">反馈</string>
+  <string name="report">&lt;u&gt;给我们发邮件&lt;/u&gt;</string>
+  <string name="section_license">许可</string>
+  <string name="sponsor_section">Ring是一个自由软件,开发者与维护者是</string>
+  <string name="copyright_section">版权所有</string>
+  <string name="contribute_section">贡献</string>
+  <string name="version_section">版本</string>
+  <string name="no_email_app_installed">未找到电子邮件客户端,请安装后再重试发送报告。</string>
+  <string name="no_browser_app_installed">未找到浏览器,请安装后再重试浏览该网页。</string>
+  <string name="email_chooser_title">使用…发送邮件</string>
+  <string name="website_chooser_title">用…浏览网站</string>
+  <string name="license">本软件由版权持有人及其他责任者“按原样”提供,不担保任何责任。详细信息请参见&lt;u&gt;GNU通用公共许可证,版本3或更新&lt;/u&gt;</string>
+  <string name="description">Ring是自由软件,尊重用户的通讯自由与隐私。</string>
+  <string name="credits">致谢</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">无网络连接</string>
+  <string name="error_mobile_network_available_but_disabled">请前往“设置”界面开启移动数据使用权限。</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">新账户</string>
+  <string name="ab_action_chat">文字消息</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <string name="drawer_open">打开导航</string>
+  <string name="drawer_close">收起导航</string>
+  <!--Sections-->
+  <string name="menu_item_home">主页</string>
+  <string name="menu_item_contact_request">联系人请求</string>
+  <string name="menu_item_accounts">管理帐户</string>
+  <string name="menu_item_settings">设置</string>
+  <string name="menu_item_share">共享我的通讯录</string>
+  <string name="menu_item_blacklist">已屏蔽的联系人</string>
+  <string name="menu_item_about">关于Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">拨号</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button">重放</string>
+  <string name="hist_replay_button_stop">停止</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="other">%d个会话</item>
+  </plurals>
+  <string name="home_transfering">正在传输从%1$s到%2$s</string>
+  <string name="home_transfer_complet">传输完成</string>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">未找到联系人</string>
+  <string name="starred_contacts_title">收藏夹</string>
+  <string name="searchbar_hint">输入姓名或电话号码…</string>
+  <string name="choose_number">选择一个数字</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <string name="transfer_to_another_call">切换至另一个当前通话</string>
+  <string name="transfer_no_other_call">无通话</string>
+  <string name="transfer_type_number">输入要切换至的号码:</string>
+  <!--Notifications-->
+  <string name="notif_missed_incoming_call">未接来电</string>
+  <string name="notif_incoming_call_title">来电:%1$s</string>
+  <string name="notif_incoming_call">来电</string>
+  <string name="notif_outgoing_call_title">去电:%1$s</string>
+  <string name="notif_outgoing_call">去电</string>
+  <string name="notif_current_call_title">当前通话:%1$s</string>
+  <string name="notif_current_call">当前通话</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">你:</string>
+  <string name="action_call_attended_transfer">转接</string>
+  <string name="action_call_conference">会议</string>
+  <string name="action_call_hangup">挂断</string>
+  <string name="ongoing_call">正在通话</string>
+  <string name="hist_in_call">来电:%1$s</string>
+  <string name="hist_out_call">去电:%1$s</string>
+  <string name="start_error_title">无法启动Ring!</string>
+  <string name="start_error_mic_required">Ring需要开启麦克风使用权限。</string>
+  <string name="action_call_accept">接听</string>
+  <string name="action_call_decline">拒接</string>
+  <string name="ab_action_speakerphone">开启扬声器</string>
+  <string name="ab_action_contact_add">加入通讯录</string>
+  <string name="ab_action_contact_add_question">添加至通讯录吗?</string>
+  <string name="ab_action_audio_call">语音通话</string>
+  <string name="ab_action_video_call">视频通话</string>
+  <string name="ab_action_change_screen_orientation">切换屏幕方向</string>
+  <string name="share_via">通过…共享</string>
+  <string name="write_a_message">写消息</string>
+  <string name="scan_qr">扫描二维码</string>
+  <string name="ab_action_flipcamera">翻转摄像头</string>
+  <!--Text messages-->
+  <string name="send_message">发消息</string>
+  <string name="message_sending">正在发送消息…</string>
+  <string name="time_just_now">刚才</string>
+  <string name="permission_read_denied">该应用程序无法读取您的手机存储,无法正常工作。请设置相应权限。</string>
+  <!--MediaPreferenceFragment-->
+  <string name="permission_dialog_camera_title">摄像头使用权限</string>
+  <string name="permission_dialog_camera_message">视频会话需要使用摄像头,请设置相应权限。</string>
+  <string name="ringtone_error_title">错误</string>
+  <string name="ringtone_error_format_not_supported">不支持的文件格式。</string>
+  <string name="ringtone_error_size_too_big">文件过大:上限为%1$ikB</string>
+  <!--Read contacts permission-->
+  <string name="permission_dialog_read_contacts_message">要开启此功能,Ring需要能够读取您的通讯录,请设置相应权限。</string>
+  <!--Write call log permission-->
+  <string name="permission_dialog_write_call_log_message">要开启此功能,Ring需要能够写入您的通话记录,请设置相应权限。</string>
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">扫描您想添加帐户的二维码。</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">清除历史记录吗?</string>
+  <string name="clear_history_dialog_message">该操作不可撤销。</string>
+  <string name="clear_history_completed">已清除历史记录。</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">删除该会话</string>
+  <string name="conversation_action_delete_this_title">删除该会话吗?</string>
+  <string name="conversation_action_delete_this_message">该操作不可撤销。</string>
+  <string name="conversation_action_copy_peer_number">复制号码</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s已复制至剪贴板</string>
+  <string name="conversation_action_select_peer_number">选择一个数字</string>
+  <string name="conversation_action_block_this">屏蔽该联系人</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">添加%1$s吗?</string>
+  <string name="prompt_new_password">新密码</string>
+  <string name="prompt_new_password_repeat">确认新密码</string>
+  <string name="account_create_title">创建Ring帐户</string>
+  <string name="prompt_new_username">输入新用户名</string>
+  <string name="help_password_choose">为了保护您的Ring帐户,请使用一个强密码并牢记</string>
+  <string name="help_password_enter">输入您的Ring主帐户密码</string>
+  <string name="help_pin_enter">输入另一个Ring帐户的PIN(使用“导出Ring帐户”功能获取)。</string>
+  <string name="wizard_next">下一步</string>
+  <string name="wizard_back">上一步</string>
+  <!--MenuHeaderView-->
+  <string name="profile">我的帐户资料</string>
+  <string name="profile_message_warning">您的帐户资料仅与您的通讯录共享</string>
+  <string name="open_the_gallery">打开照片库</string>
+  <string name="take_a_photo">拍照</string>
+  <string name="profile_name_hint">输入您的名字(可选)</string>
+  <string name="unknown">未知</string>
+  <!--Share fragment-->
+  <string name="share_message">使用Ring扫描此二维码以建立连接。</string>
+  <string name="share_message_no_account">请选择要共享的帐户。</string>
+  <string name="share_your_account_information">共享我的通讯信息</string>
+  <string name="generic_error_migration">错误</string>
+  <string name="generic_error_migration_message">帐户迁移时发生错误</string>
+  <!--Pending contact requests-->
+  <string name="accept">接听</string>
+  <string name="refuse">拒接</string>
+  <string name="block">屏蔽</string>
+  <string name="contact_request_title">未处理的联系人请求</string>
+  <string name="contact_request_msg">您有%1$s个未处理的请求</string>
+  <string name="no_requests">0个联系人请求</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">发送</string>
+  <string name="send_request_title">发送联系人请求</string>
+  <string name="send_request_msg">要与该用户通信,您必须先发送联系人请求。如果您的请求未被通过,您发送的消息将无法被对方阅读。</string>
+  <!--Blacklist-->
+  <string name="no_blocked_contact">0个屏蔽的联系人</string>
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh-rCN/strings_account.xml b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_account.xml
new file mode 100644
index 0000000..beaa4e5
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_account.xml
@@ -0,0 +1,198 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">删除</string>
+  <string name="ic_advanced_menu">高级设置</string>
+  <string name="ic_blacklist_menu">已屏蔽的联系人</string>
+  <!--Strings related to account creation-->
+  <string name="add_ring_account_title">添加Ring帐户</string>
+  <string name="add_sip_account_title">添加SIP帐户</string>
+  <string name="ring_account_default_name">Ring帐户%1$s</string>
+  <string name="prompt_alias">别名</string>
+  <string name="prompt_hostname">主机名</string>
+  <string name="prompt_username">用户名</string>
+  <string name="prompt_password">密码</string>
+  <string name="action_create">创建帐户</string>
+  <string name="action_create_short">注册</string>
+  <string name="error_field_required">该字段必填</string>
+  <string name="dialog_wait_create">添加帐户</string>
+  <string name="dialog_wait_create_details">正在创建您的帐户,请稍等…</string>
+  <string name="dialog_wait_update">更新帐户</string>
+  <string name="dialog_wait_update_details">正在更新您的帐户,请稍等…</string>
+  <string name="dialog_warn_ip2ip_account_title">要创建空的SIP帐户吗?</string>
+  <string name="dialog_warn_ip2ip_account_message">您正在创建一个主机名非法的SIP帐户。
+该帐户拨出或接听通话将只能直接通过IP地址。
+您可以稍后修改该帐户。</string>
+  <string name="account_type_ip2ip">IP帐户</string>
+  <string name="help_ring">Ring帐户使您在一个完全分布式的网络中,与他人进行安全的点对点通信。</string>
+  <string name="help_sip_title">添加您的SIP帐户</string>
+  <string name="help_sip">配置已有的SIP帐户。</string>
+  <string name="create_sip_account">添加SIP帐户</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">删除帐户吗?</string>
+  <string name="account_delete_dialog_message">该操作不可撤销。</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">没有已注册账户</string>
+  <string name="normal_accounts_titles">帐户</string>
+  <string name="normal_devices_titles">与该Ring帐户连接的已知设备</string>
+  <string name="account_device_revoke">吊销设备</string>
+  <string name="account_device_revocation_success_title">成功</string>
+  <string name="account_device_revocation_success">设备已吊销!</string>
+  <string name="account_device_revocation_error_title">无法吊销设备</string>
+  <string name="account_device_revocation_wrong_password">密码错误。</string>
+  <string name="account_device_revocation_unknown_device">未知设备。</string>
+  <string name="account_device_revocation_error_unknown">未知错误。</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">通用</string>
+  <string name="account_basic_category">基本设置</string>
+  <string name="account_alias_label">帐户名称</string>
+  <string name="account_hostname_label">主机名</string>
+  <string name="account_bootstrap_label">初始服务器</string>
+  <string name="account_username_label">用户名</string>
+  <string name="account_password_label">密码</string>
+  <string name="account_optionnal_category">可选设置</string>
+  <string name="account_useragent_label">用户代理</string>
+  <string name="account_autoanswer_label">自动应答</string>
+  <string name="account_upnp_label">启用UPnP</string>
+  <string name="account_proxy_field">代理</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">音频</string>
+  <string name="account_preferences_media_tab">媒体</string>
+  <string name="account_ringtone_label">铃声</string>
+  <string name="account_ringtone_enabled_label">启用铃声</string>
+  <string name="account_ringtone_path_label">铃声目录</string>
+  <string name="account_ringtone_custom_label">使用自定义铃声</string>
+  <!--Video Details-->
+  <string name="account_video_label">视频</string>
+  <string name="account_video_enable">启用视频</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">高级</string>
+  <string name="account_dht_public_in_calls_label">允许所有通话/信息</string>
+  <string name="account_registration_exp_label">录音过期</string>
+  <string name="account_local_interface_label">本地接口</string>
+  <string name="account_local_port_label">本地端口</string>
+  <string name="account_stun_enable_label">使用STUN</string>
+  <string name="account_stun_server_label">STUN服务器</string>
+  <string name="account_turn_enable_label">使用TURN</string>
+  <string name="account_turn_server_label">TURN服务器</string>
+  <string name="account_turn_username_label">TURN用户名</string>
+  <string name="account_turn_password_label">TURN密码</string>
+  <string name="account_published_same_as_local_label">公开参数与本地相同</string>
+  <string name="account_published_port_label">公开端口</string>
+  <string name="account_published_address_label">公开地址</string>
+  <!--Security Details-->
+  <string name="account_credentials_label">密钥</string>
+  <string name="account_credentials_edit">编辑密钥</string>
+  <string name="account_credentials_add">添加密钥</string>
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">安全</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_transport_switch_label">使用TLS通讯</string>
+  <string name="account_tls_port_label">TLS监听端口</string>
+  <string name="account_tls_certificate_list_label">证书颁发机构</string>
+  <string name="account_tls_certificate_file_label">证书文件</string>
+  <string name="account_tls_private_key_file_label">私钥文件</string>
+  <string name="account_tls_password_label">私钥密码</string>
+  <string name="account_tls_method_label">TLS方法</string>
+  <string name="account_tls_ciphers_label">TLS加密</string>
+  <string name="account_tls_server_name_label">服务器名</string>
+  <string name="account_tls_verify_server_label">TLS验证服务器</string>
+  <string name="account_tls_verify_client_label">TLS验证客户端</string>
+  <string name="account_tls_negotiation_timeout_sec">握手超时(秒)</string>
+  <string name="account_rtp_max_port">最大</string>
+  <string name="account_rtp_min_port">最小</string>
+  <string name="account_rtp_port_range">音频RTP端口范围</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">恢复帐户</string>
+  <string name="account_restore_message">请输入密码以解密该文件。</string>
+  <string name="account_restore_decryption_password">解密密码</string>
+  <string name="account_new_device_password">输入主密码以解锁帐户</string>
+  <string name="restore_dialog_title">正在恢复</string>
+  <string name="restore_backup_wait">请稍等…</string>
+  <string name="error_password_char_count">最少6字符</string>
+  <string name="error_passwords_not_equals">密码不匹配</string>
+  <string name="restore_failed_dialog_title">恢复失败</string>
+  <string name="restore_failed_dialog_msg">发生错误</string>
+  <string name="export_account_wait_title">请稍等…</string>
+  <string name="export_account_wait_message">提交新帐户信息</string>
+  <string name="account_export_end_decryption_message">使用该密码无法解锁您的帐户。</string>
+  <string name="account_export_end_network_title">网络错误</string>
+  <string name="account_export_end_network_message">无法进行帐户在线导出。请检查您的网络连接。</string>
+  <string name="account_export_end_error_title">错误</string>
+  <string name="account_export_end_error_message">无法导出帐户,发生未知错误。</string>
+  <string name="account_enter_password">输入密码</string>
+  <string name="account_share_body">使用\'%1$s\'在Ring分布式通讯平台上联系我:http://ring.cx</string>
+  <string name="account_share_body_with_username">使用\'%1$s\'或我的公共用户名\'%2$s\',在Ring分布式通讯平台上联系我:http://ring.cx</string>
+  <string name="account_contact_me">在Ring上联系我!</string>
+  <string name="update_account">更新帐户</string>
+  <string name="account_migration">您的Ring帐户可以被更新。\n请输入您的密码。</string>
+  <string name="ring_account">Ring帐户</string>
+  <string name="ring_account_identity">身份</string>
+  <string name="account_migration_title_dialog">帐户迁移</string>
+  <string name="account_migration_message_dialog">您的帐户需要被更新。您想前往帐户管理界面进行该操作吗?</string>
+  <string name="account_update_needed">需要更新</string>
+  <string name="account_creation_file_too_big">文件过大</string>
+  <string name="account_cannot_read">无法读取%1$s</string>
+  <string name="account_cannot_be_found_title">无法找到帐户</string>
+  <string name="account_cannot_be_found_message">无法在Ring网络中找到帐户。\n请确认该帐户已从其他设备中导出,并且您提供了正确的认证信息。</string>
+  <string name="account_sip_cannot_be_registered_message">您可以前往下一步或在这里编辑您的信息。帐户创建后,您仍可在帐户设置中进行编辑。</string>
+  <string name="account_no_network_title">无法连接至网络</string>
+  <string name="account_no_network_message">无法添加帐户,因为Ring未连接到网络。请检查您的网络连接。</string>
+  <string name="account_device_added_title">帐户设备已添加</string>
+  <string name="account_device_added_message">已在这台设备成功设置了您的Ring帐户。</string>
+  <string name="account_device_updated_title">帐户设备已更新</string>
+  <string name="account_device_updated_message">您的Ring帐户已更新。</string>
+  <string name="account_cannot_be_updated_message">无法更新帐户设备。请检查您的密码。</string>
+  <string name="account_sip_success_title">SIP帐户已注册</string>
+  <string name="account_sip_success_message">您已成功注册了您的SIP帐户。</string>
+  <string name="account_sip_register_anyway">仍然注册</string>
+  <string name="account_link_button">将此设备与一个帐户进行连接</string>
+  <string name="account_import_title">与已有帐户进行连接</string>
+  <string name="account_link_prompt_pin">输入PIN</string>
+  <string name="account_wizard_title">欢迎来到</string>
+  <string name="account_new_button">创建Ring帐户</string>
+  <string name="account_link_export_button">将另一设备与该帐户进行连接</string>
+  <string name="account_link_export_info">要在其他设备上使用该帐户,您需要将其连接至Ring,在此过程中您会得到一个PIN,在10分钟内有效。请将其输入您的新设备以设置该帐户。\n\n首先,请输入您的密码:</string>
+  <string name="account_start_export_button">生成PIN</string>
+  <string name="account_end_export_button">关闭</string>
+  <string name="account_end_export_infos">您的PIN是:\n\n%%\n\n要继续,请在新设备上打开Ring,点击“将此设备与一个帐户进行连接”。您的PIN将在10分钟内有效。</string>
+  <!--Name registration-->
+  <string name="register_name_wrong_password">无法注册用户名:帐户密码错误。</string>
+  <string name="register_name_invalid">无法注册用户名:该用户名非法。</string>
+  <string name="register_name_already_taken">无法注册用户名:该名称已被占用。</string>
+  <string name="register_name_network_error">无法注册用户名:网络或服务器错误。</string>
+  <string name="error_username_empty">输入用户名</string>
+  <string name="no_registered_name_for_account">该帐户尚未注册用户名</string>
+  <string name="register_name">注册名称</string>
+  <string name="trying_to_register_name">正在尝试注册用户名</string>
+  <string name="registered_username">已注册的用户名</string>
+  <string name="register_username">注册公共用户名(试验性)</string>
+  <string name="username_already_taken">用户名已被占用</string>
+  <string name="invalid_username">非法用户名</string>
+  <string name="looking_for_username_availability">正在检测用户名是否可用…</string>
+  <string name="account_status_connecting">正在连接</string>
+  <string name="account_status_connection_error">连接错误</string>
+  <string name="account_status_online">在线</string>
+  <string name="account_status_unknown">未知</string>
+  <string name="account_status_offline">离线</string>
+  <!--Create account-->
+  <string name="account_creation_home">欢迎来到Ring</string>
+  <string name="account_creation_profile">创建您的帐户资料</string>
+  <string name="account_creation_ring">创建您的Ring帐户</string>
+  <string name="account_link_title">连接此设备</string>
+  <string name="account_sip_cannot_be_registered">无法注册帐户</string>
+  <!--Devices-->
+  <string name="account_revoke_device_hint">输入密码以确认</string>
+  <string name="enter_password">输入密码</string>
+  <string name="revoke_device_title">吊销设备</string>
+  <string name="revoke_device_message">确定吊销设备%1$s吗?</string>
+  <string name="revoke_device_wait_title">请稍等…</string>
+  <string name="revoke_device_wait_message">正在吊销设备</string>
+  <string name="rename_device_title">重命名该设备</string>
+  <string name="rename_device_message">为该设备取名,以在您的Ring帐户中识别该设备</string>
+  <string name="rename_device_button">重命名设备</string>
+  <string name="account_rename_device_hint">输入新的设备名</string>
+  <string name="account_device_name_empty">设备名不可为空</string>
+  <string name="account_device_this_indicator">该设备</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh-rCN/strings_call.xml b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_call.xml
new file mode 100644
index 0000000..addfd00
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">正在呼叫</string>
+    <string name="call_human_state_connecting">正在连接</string>
+    <string name="call_human_state_ringing">正在通话</string>
+    <string name="call_human_state_current">正在通话</string>
+    <string name="call_human_state_hungup">结束</string>
+    <string name="call_human_state_busy">忙碌</string>
+    <string name="call_human_state_failure">失败</string>
+    <string name="call_human_state_hold">等待</string>
+    <string name="call_human_state_unhold">取消等待</string>
+    <string name="call_human_state_over">已结束</string>
+    <string name="call_human_state_none">无</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">已连接并在线</string>
+    <string name="conference_human_state_active_detached">已连接但离开</string>
+    <string name="conference_human_state_active_attached_rec">已连接并在线,录音</string>
+    <string name="conference_human_state_active_detached_rec">已连接但离开,录音</string>
+    <string name="conference_human_state_hold">等待</string>
+    <string name="conference_human_state_hold_rec">暂停录音</string>
+    <string name="conference_human_state_default">无</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-zh-rCN/strings_content_description.xml b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_content_description.xml
new file mode 100644
index 0000000..9262361
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_content_description.xml
@@ -0,0 +1,8 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings for xml content description of images-->
+  <string name="contact_quick_call_description">快速拨号</string>
+  <string name="contact_picture_description">联系人头像</string>
+  <string name="dial_numeric_pad">数字拨号盘</string>
+  <string name="contact_unblock">取消屏蔽</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh-rCN/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_preferences.xml
new file mode 100644
index 0000000..4eccd31
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rCN/strings_preferences.xml
@@ -0,0 +1,17 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">网络</string>
+  <string name="pref_category_contacts">通讯录</string>
+  <string name="pref_category_system">系统</string>
+  <string name="pref_category_privacy">隐私</string>
+  <string name="pref_mobileData_title">移动数据</string>
+  <string name="pref_mobileData_summary">允许Ring使用3G/LTE网络</string>
+  <string name="pref_systemContacts_title">使用系统通讯录</string>
+  <string name="pref_systemContacts_summary">使用系统通讯录显示呼叫者信息。</string>
+  <string name="pref_systemDialer_title">使用Ring拨打系统通话</string>
+  <string name="pref_systemDialer_summary">使用Ring作为拨打系统通话的首选方式。</string>
+  <string name="pref_startOnBoot_title">启动时运行Ring</string>
+  <string name="pref_startOnBoot_summary">系统启动时在后台启动Ring</string>
+  <string name="pref_clearHistory_title">清除历史记录</string>
+  <string name="pref_clearHistory_summary">清除所有会话历史记录。该操作无法撤销。</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh-rTW/strings.xml b/ring-android/androidtv/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..ce1003f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,94 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <string name="sponsor_section">Ring 是一個自由軟體開發並支援由</string>
+  <string name="copyright_section">版權</string>
+  <string name="contribute_section">貢獻</string>
+  <string name="version_section">版本</string>
+  <string name="no_email_app_installed">沒有找到電子郵件應用程式,請安裝一個來傳送報告給我們</string>
+  <string name="email_chooser_title">傳送郵件藉由...</string>
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <string name="error_no_network">沒有網路連接</string>
+  <!--AB menus-->
+  <string name="ab_account_creation">新增帳號</string>
+  <string name="ab_action_chat">文字訊息</string>
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_home">首頁</string>
+  <string name="menu_item_accounts">管理帳號</string>
+  <string name="menu_item_settings">設定</string>
+  <string name="menu_item_about">關於 Ring</string>
+  <!--Dialing Fragment-->
+  <string name="dial_number">播打一個號碼</string>
+  <!--History Fragment-->
+  <string name="hist_replay_button_stop">停止</string>
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <plurals name="home_conferences_title">
+    <item quantity="other">%d 個對話</item>
+  </plurals>
+  <!--ContactList Fragment-->
+  <string name="no_contact_found">沒有找到聯絡人</string>
+  <string name="starred_contacts_title">我的最愛</string>
+  <string name="searchbar_hint">輸入名稱或電話號碼</string>
+  <string name="choose_number">選擇號碼</string>
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <string name="notif_incoming_call_title">來電從 %1$s</string>
+  <string name="notif_incoming_call">來電</string>
+  <string name="notif_outgoing_call_title">撥出電話到 %1$s</string>
+  <string name="notif_outgoing_call">撥出電話</string>
+  <string name="notif_current_call_title">目前通話和 %1$s</string>
+  <string name="notif_current_call">目前通話</string>
+  <!--Call Fragment-->
+  <string name="you_txt_prefix">你:</string>
+  <string name="action_call_conference">會議</string>
+  <string name="action_call_hangup">掛斷</string>
+  <string name="start_error_title">無法啟動 Ring !</string>
+  <string name="action_call_decline">拒絕</string>
+  <string name="ab_action_contact_add">加到聯絡人</string>
+  <string name="ab_action_contact_add_question">加到聯絡人?</string>
+  <string name="ab_action_audio_call">音訊通話</string>
+  <string name="ab_action_video_call">視訊通話</string>
+  <string name="share_via">分享經由</string>
+  <string name="write_a_message">寫訊息</string>
+  <string name="scan_qr">掃描 QR Code</string>
+  <!--Text messages-->
+  <string name="send_message">傳送訊息</string>
+  <string name="message_sending">正在傳送訊息...</string>
+  <string name="time_just_now">剛剛</string>
+  <!--MediaPreferenceFragment-->
+  <string name="ringtone_error_title">錯誤</string>
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <string name="scan_qr_account_message">掃描你想要加入的帳號的 QR Code 。</string>
+  <!--Settings-->
+  <string name="clear_history_dialog_title">清除記錄嗎?</string>
+  <string name="clear_history_dialog_message">這個動作無法被復原。</string>
+  <string name="clear_history_completed">記錄已經被清除。</string>
+  <!--Conversation-->
+  <string name="conversation_action_delete_this">刪除此對話</string>
+  <string name="conversation_action_delete_this_title">刪除此對話嗎?</string>
+  <string name="conversation_action_delete_this_message">這個動作無法被復原。</string>
+  <string name="conversation_action_copy_peer_number">複製號碼</string>
+  <string name="conversation_action_copied_peer_number_clipboard">%1$s 複製到剪貼簿</string>
+  <string name="conversation_action_select_peer_number">選擇號碼</string>
+  <!--Contacts-->
+  <string name="add_call_contact_number_to_contacts">加入 %1$s 嗎?</string>
+  <string name="prompt_new_password">新密碼</string>
+  <string name="account_create_title">建立一個 Ring 帳號</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">未知</string>
+  <!--Share fragment-->
+  <string name="generic_error_migration">錯誤</string>
+  <!--Pending contact requests-->
+  <!--Send contact requests-->
+  <string name="send_request_button">傳送</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh-rTW/strings_account.xml b/ring-android/androidtv/src/main/res/values-zh-rTW/strings_account.xml
new file mode 100644
index 0000000..d95f3b6
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rTW/strings_account.xml
@@ -0,0 +1,99 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">刪除</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">別名</string>
+  <string name="prompt_hostname">主機名稱</string>
+  <string name="prompt_username">使用者名稱</string>
+  <string name="prompt_password">密碼</string>
+  <string name="action_create">建立帳號</string>
+  <string name="action_create_short">註冊</string>
+  <string name="error_field_required">這是必填欄位</string>
+  <string name="dialog_wait_create">正在加入帳號</string>
+  <string name="dialog_wait_create_details">正在加入你的新帳號,請稍等...</string>
+  <string name="dialog_wait_update">正在更新帳號</string>
+  <string name="dialog_wait_update_details">正在更新你的新帳號,請稍等...</string>
+  <string name="dialog_warn_ip2ip_account_title">建立空的 SIP 帳號嗎?</string>
+  <string name="help_sip_title">加入你的 SIP 帳號</string>
+  <string name="help_sip">配製一個存在的 SIP 帳號。</string>
+  <!--Strings related to account deletion-->
+  <string name="account_delete_dialog_title">刪除帳號嗎?</string>
+  <string name="account_delete_dialog_message">這個動作無法被復原。</string>
+  <!--AccountManagementFragment-->
+  <string name="empty_account_list">沒有註冊的帳號</string>
+  <string name="normal_accounts_titles">帳號</string>
+  <string name="normal_devices_titles">連結到這個 Ring 帳號的已知裝置</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">一般</string>
+  <string name="account_basic_category">基本設定</string>
+  <string name="account_alias_label">帳號名稱</string>
+  <string name="account_hostname_label">主機名稱</string>
+  <string name="account_username_label">使用者名稱</string>
+  <string name="account_password_label">密碼</string>
+  <string name="account_optionnal_category">選擇性的設定</string>
+  <string name="account_upnp_label">啟用 UPnP</string>
+  <string name="account_proxy_field">Proxy</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">音訊</string>
+  <string name="account_preferences_media_tab">媒體</string>
+  <string name="account_ringtone_label">鈴聲</string>
+  <string name="account_ringtone_enabled_label">啟用鈴聲</string>
+  <string name="account_ringtone_path_label">鈴聲路徑</string>
+  <string name="account_ringtone_custom_label">使用自訂鈴聲</string>
+  <!--Video Details-->
+  <string name="account_video_label">視訊</string>
+  <string name="account_video_enable">啟用視訊</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">進階</string>
+  <string name="account_stun_enable_label">使用 Stun</string>
+  <string name="account_stun_server_label">Stun 伺服器</string>
+  <string name="account_turn_enable_label">使用 TURN</string>
+  <string name="account_turn_server_label">TURN 伺服器</string>
+  <string name="account_turn_username_label">TURN 使用者名稱</string>
+  <string name="account_turn_password_label">TURN 密碼</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">安全性</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <string name="account_tls_server_name_label">伺服器名稱</string>
+  <string name="account_rtp_max_port">最大值</string>
+  <string name="account_rtp_min_port">最小值</string>
+  <string name="account_rtp_port_range">音訊 RTP 連接埠範圍</string>
+  <!--restore/backup-->
+  <string name="account_restore_account">還原帳號</string>
+  <string name="account_restore_message">輸入密碼來解密檔案。</string>
+  <string name="account_restore_decryption_password">解密密碼</string>
+  <string name="restore_dialog_title">還原中...</string>
+  <string name="restore_backup_wait">請等待...</string>
+  <string name="error_password_char_count">最小6個字元</string>
+  <string name="error_passwords_not_equals">密碼不相符</string>
+  <string name="restore_failed_dialog_title">還原失敗</string>
+  <string name="restore_failed_dialog_msg">發生錯誤</string>
+  <string name="export_account_wait_title">請等待...</string>
+  <string name="account_export_end_network_title">網路錯誤</string>
+  <string name="account_export_end_error_title">錯誤</string>
+  <string name="account_enter_password">輸入密碼</string>
+  <string name="update_account">更新帳號</string>
+  <string name="ring_account">Ring 帳號</string>
+  <string name="account_update_needed">需要更新</string>
+  <string name="account_creation_file_too_big">檔案太大</string>
+  <string name="account_cannot_read">無法讀取 %1$s</string>
+  <string name="account_cannot_be_found_title">找不到帳號</string>
+  <string name="account_no_network_title">無法連接到網路</string>
+  <string name="account_device_added_message">你已經在這個裝置上成功設定你的 Ring 帳號。</string>
+  <string name="account_link_button">連結這個裝置到一個帳號</string>
+  <string name="account_import_title">連結到一個已存在的帳號</string>
+  <string name="account_new_button">建立一個 Ring 帳號</string>
+  <string name="account_end_export_button">關閉</string>
+  <!--Name registration-->
+  <string name="error_username_empty">輸入使用者名稱</string>
+  <string name="invalid_username">無效的使用者名稱</string>
+  <string name="account_status_connecting">連接中</string>
+  <string name="account_status_unknown">未知</string>
+  <!--Create account-->
+  <!--Devices-->
+  <string name="enter_password">輸入密碼</string>
+  <string name="revoke_device_wait_title">請等待...</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh-rTW/strings_call.xml b/ring-android/androidtv/src/main/res/values-zh-rTW/strings_call.xml
new file mode 100644
index 0000000..1bdc904
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rTW/strings_call.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">響鈴中</string>
+    <string name="call_human_state_connecting">連接中</string>
+    <string name="call_human_state_current">通話中</string>
+    <string name="call_human_state_hungup">結束</string>
+    <string name="call_human_state_busy">忙碌</string>
+    <string name="call_human_state_failure">失敗</string>
+    <string name="call_human_state_over">結束</string>
+    <string name="call_human_state_none">無</string>
+    <string name="conference_human_state_default">無</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-zh-rTW/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-zh-rTW/strings_preferences.xml
new file mode 100644
index 0000000..dc2ad69
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh-rTW/strings_preferences.xml
@@ -0,0 +1,13 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_network">網路</string>
+  <string name="pref_category_contacts">聯絡人</string>
+  <string name="pref_category_system">系統</string>
+  <string name="pref_category_privacy">隱私</string>
+  <string name="pref_mobileData_title">行動數據</string>
+  <string name="pref_mobileData_summary">除了 Wi-Fi 之外,允許 Ring 在 3G/LTE 網路上使用</string>
+  <string name="pref_systemContacts_title">使用系統聯絡人</string>
+  <string name="pref_startOnBoot_title">開機時啟動 Ring</string>
+  <string name="pref_startOnBoot_summary">開機時在背景啟動 Ring</string>
+  <string name="pref_clearHistory_title">清除記錄</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh/strings.xml b/ring-android/androidtv/src/main/res/values-zh/strings.xml
new file mode 100644
index 0000000..d16bd27
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh/strings.xml
@@ -0,0 +1,43 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--About-->
+  <!--About dialog-->
+  <!--RingActivity-->
+  <string name="title_activity_sflphone_home">Ring</string>
+  <!--AB menus-->
+  <!--Left Drawer-->
+  <!--Accessibility-->
+  <!--Sections-->
+  <string name="menu_item_settings">設定</string>
+  <string name="menu_item_about">關於Ring</string>
+  <!--Dialing Fragment-->
+  <!--History Fragment-->
+  <!--DetailsHistory Fragment-->
+  <!--Home Fragment-->
+  <!--ContactList Fragment-->
+  <!--FileExplorerDFragement-->
+  <!--TransferDFragment-->
+  <!--Notifications-->
+  <string name="notif_incoming_call">來電</string>
+  <!--Call Fragment-->
+  <string name="ab_action_contact_add">加到聯絡人</string>
+  <!--Text messages-->
+  <!--MediaPreferenceFragment-->
+  <!--Read contacts permission-->
+  <!--Write call log permission-->
+  <!--QRCode Scan-->
+  <!--Settings-->
+  <!--Conversation-->
+  <string name="conversation_action_copy_peer_number">複製號碼</string>
+  <!--Contacts-->
+  <string name="wizard_next">下一步</string>
+  <!--MenuHeaderView-->
+  <string name="unknown">未知</string>
+  <!--Share fragment-->
+  <!--Pending contact requests-->
+  <string name="refuse">拒絕</string>
+  <!--Send contact requests-->
+  <string name="send_request_button">發送</string>
+  <!--Blacklist-->
+  <!--Smartlist-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh/strings_account.xml b/ring-android/androidtv/src/main/res/values-zh/strings_account.xml
new file mode 100644
index 0000000..f8c847e
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh/strings_account.xml
@@ -0,0 +1,42 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <!--Strings related to account edition screen-->
+  <string name="ic_delete_menu">刪除</string>
+  <!--Strings related to account creation-->
+  <string name="prompt_alias">別名</string>
+  <string name="prompt_hostname">主機名稱</string>
+  <string name="prompt_username">使用者名</string>
+  <string name="prompt_password">密码</string>
+  <!--Strings related to account deletion-->
+  <!--AccountManagementFragment-->
+  <string name="normal_accounts_titles">帳號</string>
+  <!--Basic Details-->
+  <string name="account_preferences_basic_tab">通用</string>
+  <string name="account_hostname_label">主機名稱</string>
+  <string name="account_bootstrap_label">引導</string>
+  <string name="account_username_label">使用者名</string>
+  <string name="account_password_label">密码</string>
+  <string name="account_proxy_field">代理</string>
+  <!--Audio Details-->
+  <string name="account_audio_label">語音</string>
+  <string name="account_preferences_media_tab">媒體</string>
+  <string name="account_ringtone_label">鈴聲</string>
+  <!--Video Details-->
+  <string name="account_video_label">影像</string>
+  <string name="account_video_enable">啟用視訊</string>
+  <!--Advanced Details-->
+  <string name="account_preferences_advanced_tab">進階</string>
+  <string name="account_turn_enable_label">使用</string>
+  <string name="account_published_address_label">公開發佈地址</string>
+  <!--Security Details-->
+  <!--SRTP Details-->
+  <string name="account_preferences_security_tab">安全</string>
+  <!--SIP-->
+  <!--TLS Details-->
+  <!--restore/backup-->
+  <!--Name registration-->
+  <string name="account_status_unknown">未知</string>
+  <!--Create account-->
+  <string name="account_creation_home">歡迎使用Ring</string>
+  <!--Devices-->
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values-zh/strings_call.xml b/ring-android/androidtv/src/main/res/values-zh/strings_call.xml
new file mode 100644
index 0000000..4632fed
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh/strings_call.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <string name="call_human_state_ringing">撥打</string>
+    <string name="call_human_state_hold">保持通話</string>
+    <string name="conference_human_state_hold">保持通話</string>
+    </resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values-zh/strings_preferences.xml b/ring-android/androidtv/src/main/res/values-zh/strings_preferences.xml
new file mode 100644
index 0000000..b94821b
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values-zh/strings_preferences.xml
@@ -0,0 +1,4 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+  <string name="pref_category_contacts">聯絡人</string>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/arrays.xml b/ring-android/androidtv/src/main/res/values/arrays.xml
new file mode 100644
index 0000000..2527780
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/arrays.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+                                                                    
+Author: Alexandre Savard <alexandre.savard@savoirfairelinux.com>                     
+                                                                    
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or   
+(at your option) any later version.                                 
+                                                                    
+This program is distributed in the hope that it will be useful,     
+but WITHOUT ANY WARRANTY; without even the implied warranty of      
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       
+GNU General Public License for more details.                        
+                                                                    
+You should have received a copy of the GNU General Public License   
+along with this program; if not, write to the Free Software         
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
+-->
+<resources>
+
+    <string-array name="drop_actions">
+        <item>@string/action_call_attended_transfer</item>
+        <item>@string/action_call_conference</item>
+    </string-array>
+
+    <string-array name="conversation_actions">
+        <item>@string/conversation_action_copy_peer_number</item>
+        <item>@string/conversation_action_delete_this</item>
+        <item>@string/conversation_action_block_this</item>
+    </string-array>
+
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/attrs.xml b/ring-android/androidtv/src/main/res/values/attrs.xml
new file mode 100644
index 0000000..fe95528
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/attrs.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <!-- <declare-styleable name="PagerSlidingTabStrip">
+         <attr name="indicatorColor" format="color" />
+         <attr name="underlineColor" format="color" />
+         <attr name="shouldExpand" format="boolean" />
+      <attr name="dividerColor" format="color" />
+      <attr name="indicatorHeight" format="dimension" />
+      <attr name="underlineHeight" format="dimension" />
+      <attr name="dividerPadding" format="dimension" />
+      <attr name="tabPaddingLeftRight" format="dimension" />
+      <attr name="scrollOffset" format="dimension" />
+      <attr name="tabBackground" format="reference" />
+      <attr name="textAllCaps" format="boolean" />
+ </declare-styleable>-->
+    <declare-styleable name="StickyListHeadersListView">
+
+        <attr name="android:clipToPadding" />
+        <attr name="android:padding" />
+        <attr name="android:paddingLeft" />
+        <attr name="android:paddingTop" />
+        <attr name="android:paddingRight" />
+        <attr name="android:paddingBottom" />
+        <attr name="android:fadingEdgeLength" />
+        <attr name="android:requiresFadingEdge" />
+        <attr name="android:cacheColorHint" />
+        <attr name="android:choiceMode" />
+        <attr name="android:drawSelectorOnTop" />
+        <attr name="android:fastScrollEnabled" />
+        <attr name="android:fastScrollAlwaysVisible" />
+        <attr name="android:listSelector" />
+        <attr name="android:scrollingCache" />
+        <attr name="android:scrollbarStyle" />
+        <attr name="android:divider" />
+        <attr name="android:dividerHeight" />
+
+        <!-- StickyListHeaders attributes -->
+        <attr name="hasStickyHeaders" format="boolean" />
+        <attr name="isDrawingListUnderStickyHeader" format="boolean" />
+    </declare-styleable>
+    <declare-styleable name="ParallaxScrollView">
+
+        <!-- gravity -->
+        <attr name="parallexOffset" format="float" />
+    </declare-styleable>
+    <declare-styleable name="DragSortListView">
+        <attr name="collapsed_height" format="dimension" />
+        <attr name="drag_scroll_start" format="float" />
+        <attr name="max_drag_scroll_speed" format="float" />
+        <attr name="float_background_color" format="color" />
+        <attr name="remove_mode">
+            <enum name="clickRemove" value="0" />
+            <enum name="flingRemove" value="1" />
+        </attr>
+        <attr name="track_drag_sort" format="boolean" />
+        <attr name="float_alpha" format="float" />
+        <attr name="slide_shuffle_speed" format="float" />
+        <attr name="remove_animation_duration" format="integer" />
+        <attr name="drop_animation_duration" format="integer" />
+        <attr name="drag_enabled" format="boolean" />
+        <attr name="sort_enabled" format="boolean" />
+        <attr name="remove_enabled" format="boolean" />
+        <attr name="drag_start_mode">
+            <enum name="onDown" value="0" />
+            <enum name="onMove" value="1" />
+            <enum name="onLongPress" value="2" />
+        </attr>
+        <attr name="drag_handle_id" format="integer" />
+        <attr name="fling_handle_id" format="integer" />
+        <attr name="click_remove_id" format="integer" />
+        <attr name="use_default_controller" format="boolean" />
+    </declare-styleable>
+
+    <declare-styleable name="BoundedView">
+        <attr name="bounded_width" format="dimension" />
+        <attr name="bounded_height" format="dimension" />
+    </declare-styleable>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values/colors.xml b/ring-android/androidtv/src/main/res/values/colors.xml
new file mode 100644
index 0000000..b9323fa
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/colors.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <color name="color_primary_light">#3ac0d2</color>
+    <color name="color_primary_dark">#004C60</color>
+
+    <color name="action_blue">#004C60</color>
+
+    <!-- SFL colors-->
+    <color name="sfl_blue_lines">#0a90ce</color>
+
+    <color name="darker_gray">#aaaaaa</color>
+    <color name="light">#eee</color>
+
+    <color name="white">#FFF</color>
+    <color name="black">#000000</color>
+    <color name="error_red">#f44336</color>
+
+    <color name="error_pane">#e57373</color>
+
+    <color name="background_tab_pressed">#6633b5e5</color>
+
+    <color name="transparent_light">#AAFFFFFF</color>
+
+    <!-- A light Holo shade of blue -->
+    <color name="holo_blue_light">#ff33b5e5</color>
+    <!-- A light Holo shade of green -->
+    <color name="holo_green_light">#ff99cc00</color>
+    <!-- A light Holo shade of red -->
+    <color name="holo_red_light">#ffff4444</color>
+    <!-- A dark Holo shade of blue -->
+    <color name="holo_blue_dark">#ff0099cc</color>
+    <!-- A dark Holo shade of green -->
+    <color name="holo_green_dark">#ff669900</color>
+    <!-- A dark Holo shade of red -->
+    <color name="holo_red_dark">#ffcc0000</color>
+    <!-- A Holo shade of purple -->
+    <color name="holo_purple">#ffaa66cc</color>
+    <!-- A light Holo shade of orange -->
+    <color name="holo_orange_light">#ffffbb33</color>
+    <!-- A dark Holo shade of orange -->
+    <color name="holo_orange_dark">#ffff8800</color>
+    <!-- A really bright Holo shade of blue -->
+    <color name="holo_blue_bright">#ff00ddff</color>
+
+    <color name="transparent_grey">#AACCCCCC</color>
+    <color name="transparent_dark_grey">#88424242</color>
+
+    <color name="text_color_primary">@color/abc_primary_text_material_light</color>
+    <color name="text_color_secondary">@color/abc_secondary_text_material_light</color>
+    <color name="text_color_primary_dark">@color/abc_primary_text_material_dark</color>
+    <color name="text_color_secondary_dark">@color/abc_secondary_text_material_dark</color>
+    <color name="background_gradient_start">#000000</color>
+    <color name="background_gradient_end">#DDDDDD</color>
+    <color name="fastlane_background">#0096a6</color>
+    <color name="search_opaque">#ffaa3f</color>
+    <color name="selected_background">#ffaa3f</color>
+    <color name="detail_background">#0096a6</color>
+    <color name="soft_opaque">#30000000</color>
+    <color name="img_soft_opaque">#30FF0000</color>
+    <color name="img_full_opaque">#00000000</color>
+    <color name="black_opaque">#AA000000</color>
+    <color name="orange_transparent">#AAFADCA7</color>
+    <color name="orange">#FADCA7</color>
+    <color name="yellow">#EEFF41</color>
+    <color name="default_background">#3d3d3d</color>
+
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/dimens.xml b/ring-android/androidtv/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..985e0f1
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/dimens.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Adrien Beraud <adrien.beraud@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+
+    <dimen name="padding_small">8dp</dimen>
+    <dimen name="padding_medium">8dp</dimen>
+    <dimen name="padding_large">16dp</dimen>
+
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+
+    <dimen name="contact_vertical_spacing">16dp</dimen>
+
+    <dimen name="header_history_detail">200dp</dimen>
+
+    <dimen name="action_button_lpadding">0dp</dimen>
+    <dimen name="action_button_bpadding">-45dp</dimen>
+    <dimen name="fab_compat_margin">0dp</dimen>
+
+    <dimen name="alert_dialog_side_padding_list_view">16dp</dimen>
+
+    <dimen name="toolbar_content_inset">72dp</dimen>
+    <dimen name="toolbar_elevation">4dp</dimen>
+
+    <dimen name="drawer_content_padding">0dp</dimen>
+    <dimen name="drawer_size">320dp</dimen>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values/ids.xml b/ring-android/androidtv/src/main/res/values/ids.xml
new file mode 100644
index 0000000..0224e03
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/ids.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <item type="id" name="drag_handle" />
+    <item type="id" name="click_remove" />
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/integers.xml b/ring-android/androidtv/src/main/res/values/integers.xml
new file mode 100644
index 0000000..353c4cf
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/integers.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <integer name="register_sip_account_actionid">1000</integer>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values/strings.xml b/ring-android/androidtv/src/main/res/values/strings.xml
new file mode 100644
index 0000000..8245d04
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/strings.xml
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="utf-8"?><!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+                                                                    
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>                     
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or   
+(at your option) any later version.                                 
+                                                                    
+This program is distributed in the hope that it will be useful,     
+but WITHOUT ANY WARRANTY; without even the implied warranty of      
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the       
+GNU General Public License for more details.                        
+                                                                    
+You should have received a copy of the GNU General Public License   
+along with this program; if not, write to the Free Software         
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.          
+-->
+<resources>
+
+    <!-- About -->
+    <string name="app_name" translatable="false">Ring</string>
+    <string name="app_author" translatable="false">Savoir-faire Linux Inc.</string>
+    <string name="app_release" translatable="false">Gaston Miron Beta 2 - %1$s</string>
+    <string name="app_website_contribute" translatable="false">&lt;u>https://ring.cx/contribute&lt;/u></string>
+    <string name="gnu_license_website" translatable="false">http://www.gnu.org/licenses/gpl.html</string>
+    <string name="ring_contribute_website" translatable="false">https://ring.cx/contribute</string>
+
+    <string name="copyright" translatable="false">2004&#8211;2017 Savoir-faire Linux Inc.</string>
+    <string name="feedback_section">Feedback</string>
+    <string name="report">&lt;u>Send us an email&lt;/u></string>
+    <string name="section_license">License</string>
+    <string name="sponsor_section">Ring is a free software developed and supported by</string>
+    <string name="copyright_section">Copyright</string>
+    <string name="contribute_section">Contribute</string>
+    <string name="version_section">Version</string>
+    <string name="no_email_app_installed">No email app found, install one to send us a report</string>
+    <string name="no_browser_app_installed">No web browser app found, install one to view this page</string>
+    <string name="email_chooser_title">Send mail using…</string>
+    <string name="website_chooser_title">View website using…</string>
+    <string name="license">This software is provided \"as is\", without warranty of any kind. For details, see
+&lt;u>GNU General Public License version 3 or later&lt;/u></string>
+    <string name="description">Ring is free software for universal communication which respects the freedoms and privacy of its users.</string>
+    <string name="credits">Credits</string>
+
+    <!-- About dialog -->
+    <string name="developed_by">Developed by</string>
+    <string name="designed_by">Designed by</string>
+    <string name="credits_developer" translatable="false">Adrien Béraud\nAlexandr Sergheev\nAlexandre Lision\nAlexandre Viau\nAline Bonnet\nAndreas Traczyk\nAnthony Léonard\nCyrille Béraud\nEdric Milaret\nÉloi Bail\nEmmanuel Lepage-Vallée\nFrédéric Guimont\nGuillaume Roguez\nJulien Grossholtz\nLoïc Siret\nNicolas Jäger\nNicolas Reynaud\nOlivier Gregoire\nOlivier Soldano\nPatrick Keroulas\nPhilippe Gorley\nRomain Bertozzi\nSeva Ivanov\nSimon Désaulniers\nStepan Salenikovich\nSimon Zeni\nThibault Wittemberg\nBased on the SFLPhone project</string>
+    <string name="credits_designer" translatable="false">Marianne Forget</string>
+
+    <!-- RingActivity -->
+    <string name="title_activity_sflphone_home">Ring</string>
+    <string name="error_no_network">No network connectivity</string>
+    <string name="error_mobile_network_available_but_disabled">Please grant access to cellular network in the settings screen.</string>
+
+    <!-- AB menus -->
+    <string name="ab_account_creation">New account</string>
+    <string name="ab_action_chat">Text messaging</string>
+
+    <!-- Left Drawer -->
+    <!-- Accessibility -->
+    <string name="drawer_open">Open navigation drawer</string>
+    <string name="drawer_close">Close navigation drawer</string>
+    <!-- Sections -->
+    <string name="menu_item_home">Home</string>
+    <string name="menu_item_contact_request">Contact requests</string>
+    <string name="menu_item_accounts">Manage accounts</string>
+    <string name="menu_item_settings">Settings</string>
+    <string name="menu_item_share">Share my contact</string>
+    <string name="menu_item_blacklist">Blocked contacts</string>
+    <string name="menu_item_about">About Ring</string>
+
+    <!-- Dialing Fragment -->
+    <string name="dial_number">Dial a number</string>
+
+    <!-- History Fragment -->
+    <string name="hist_replay_button">Replay</string>
+    <string name="hist_replay_button_stop">Stop</string>
+
+
+    <!-- DetailsHistory Fragment -->
+
+    <!-- Home Fragment -->
+    <plurals name="home_conferences_title">
+        <item quantity="one">%d Conversation</item>
+        <item quantity="other">%d Conversations</item>
+    </plurals>
+    <string name="home_transfering">Transferring %1$s to %2$s</string>
+    <string name="home_transfer_complet">Transfer complete</string>
+
+    <!-- ContactList Fragment -->
+    <string name="no_contact_found">No contact found</string>
+    <string name="starred_contacts_title">Favorites</string>
+    <string name="searchbar_hint">Enter name or phone number&#8230;</string>
+    <string name="choose_number">Choose a number</string>
+
+    <!-- FileExplorerDFragement -->
+
+    <!-- TransferDFragment -->
+    <string name="transfer_to_another_call">Transfer to another current call:</string>
+    <string name="transfer_no_other_call">No other calls pending</string>
+    <string name="transfer_type_number">Type number to transfer to:</string>
+
+    <!-- Notifications -->
+    <string name="notif_missed_incoming_call">Missed incoming call</string>
+    <string name="notif_missed_outgoing_call">Missed outgoing call</string>
+    <string name="notif_incoming_call_title">Incoming call from %1$s</string>
+    <string name="notif_incoming_call">Incoming call</string>
+    <string name="notif_outgoing_call_title">Outgoing call to %1$s</string>
+    <string name="notif_outgoing_call">Outgoing call</string>
+    <string name="notif_current_call_title">Current call with %1$s</string>
+    <string name="notif_current_call">Current call</string>
+
+    <!-- Call Fragment -->
+    <string name="you_txt_prefix">You:</string>
+    <string name="action_call_attended_transfer">Attended Transfer</string>
+    <string name="action_call_conference">Conference</string>
+    <string name="action_call_hangup">Hang up</string>
+    <string name="ongoing_call">Ongoing call</string>
+    <string name="hist_in_call">Incoming call of %1$s</string>
+    <string name="hist_out_call">Outgoing call of %1$s</string>
+    <string name="start_error_title">Can\'t start Ring !</string>
+    <string name="start_error_mic_required">Ring requires the microphone permission to work.</string>
+    <string name="action_call_accept">Take call</string>
+    <string name="action_call_decline">Decline</string>
+    <string name="ab_action_speakerphone">Enable speaker</string>
+    <string name="ab_action_contact_add">Add to contacts</string>
+    <string name="ab_action_contact_add_question">Add to contacts ?</string>
+    <string name="ab_action_audio_call">Audio call</string>
+    <string name="ab_action_video_call">Video call</string>
+    <string name="ab_action_change_screen_orientation">Change screen orientation</string>
+    <string name="share_via">Share via</string>
+    <string name="write_a_message">Write a message</string>
+    <string name="scan_qr">Scan QR Code</string>
+    <string name="ab_action_flipcamera">Flip camera</string>
+
+    <!-- Text messages -->
+    <string name="send_message">Send message</string>
+    <string name="message_sending">Sending message…</string>
+    <string name="time_just_now">Just now</string>
+    <string name="permission_read_denied">The app was not allowed to read to your storage. Hence, it cannot function properly. Please consider granting it this permission</string>
+
+    <!-- MediaPreferenceFragment -->
+    <string name="permission_dialog_camera_title">Camera permission</string>
+    <string name="permission_dialog_camera_message">Video conversations require the camera permission to work. Please consider enabling it.</string>
+    <string name="ringtone_error_title">Error</string>
+    <string name="ringtone_error_format_not_supported">This format is not supported.</string>
+    <string name="ringtone_error_size_too_big">This file is too big. The maximum size is %1$ikB.</string>
+
+    <!-- Read contacts permission -->
+    <string name="permission_dialog_read_contacts_message">Ring needs the "Read contacts" permission to enable this feature. Please grant it.</string>
+
+    <!-- Write call log permission -->
+    <string name="permission_dialog_write_call_log_message">Ring needs the "Write call log" permission to enable this feature. Please grant it.</string>
+
+    <!-- QRCode Scan -->
+    <string name="scan_qr_account_message">Scan the QR Code of the account you want to add.</string>
+
+    <!-- Settings -->
+    <string name="clear_history_dialog_title">Clear history ?</string>
+    <string name="clear_history_dialog_message">This action can not be undone.</string>
+    <string name="clear_history_completed">History has been cleared.</string>
+
+    <!-- Conversation -->
+    <string name="conversation_action_delete_this">Delete this conversation</string>
+    <string name="conversation_action_delete_this_title">Delete this conversation ?</string>
+    <string name="conversation_action_delete_this_message">This action can not be undone.</string>
+    <string name="conversation_action_copy_peer_number">Copy number</string>
+    <string name="conversation_action_copied_peer_number_clipboard">%1$s copied to clipboard</string>
+    <string name="conversation_action_select_peer_number">Select a number</string>
+    <string name="conversation_action_block_this">Block this contact</string>
+
+    <!-- Contacts -->
+    <string name="add_call_contact_number_to_contacts">Add %1$s ?</string>
+    <string name="prompt_new_password">New password</string>
+    <string name="prompt_new_password_repeat">Repeat new password</string>
+    <string name="account_create_title">Create a Ring account</string>
+    <string name="prompt_new_username">Enter new username</string>
+    <string name="help_password_choose">Choose a strong password you will remember to protect your Ring account.</string>
+    <string name="help_password_enter">Enter your main Ring account password</string>
+    <string name="help_pin_enter">Enter the PIN from another configured Ring account. Use the \"export account on Ring\" feature to obtain a PIN.</string>
+    <string name="wizard_next">Next</string>
+    <string name="wizard_back">Back</string>
+
+    <!-- MenuHeaderView -->
+    <string name="profile">My profile</string>
+    <string name="profile_message_warning">Your profile is only shared with your contacts</string>
+    <string name="open_the_gallery">Open the gallery</string>
+    <string name="take_a_photo">Take a photo</string>
+    <string name="profile_name_hint">Enter your name (optional)</string>
+    <string name="unknown">Unknown</string>
+
+    <!-- Share fragment -->
+    <string name="share_message">Scan this QRCode with the embedded scanner of the Ring application that wants to communicate with you.</string>
+    <string name="share_message_no_account">Please select an account to share.</string>
+    <string name="share_your_account_information">Share my contact information</string>
+    <string name="generic_error_migration">Error</string>
+    <string name="generic_error_migration_message">An error occurred during migration</string>
+
+    <!-- Pending contact requests -->
+    <string name="accept">Accept</string>
+    <string name="refuse">Refuse</string>
+    <string name="block">Block</string>
+    <string name="contact_request_title">Pending contact request</string>
+    <string name="contact_request_msg">You have %1$s pending requests</string>
+    <string name="contact_request_account">For %1$s</string>
+    <string name="no_requests">0 contact requests</string>
+
+    <!-- Send contact requests -->
+    <string name="send_request_button">Send</string>
+    <string name="send_request_title">Send a contact request</string>
+    <string name="send_request_msg">You must send a contact request to communicate with this user. As long as your contact has not accepted the request, you can send messages but your contact can\'t read them.</string>
+
+    <!-- Blacklist -->
+    <string name="no_blocked_contact">0 blocked contacts</string>
+
+    <!-- Smartlist -->
+    <string name="no_contact_request">No contact request sent</string>
+    <string name="contact_request_sent">Contact request sent</string>
+    <string name="title_activity_home">Leanback HomeActivity Title</string>
+    <string name="browse_title"><![CDATA[Videos by Your Company]]></string>
+    <string name="related_movies">Related Videos</string>
+    <string name="vertical_grid_title"><![CDATA[Vertical Video Grid]]></string>
+    <string name="error">Error</string>
+    <string name="ok">OK</string>
+    <string name="pause">Pause</string>
+    <string name="play">Play</string>
+    <string name="stop">Stop</string>
+    <string name="init_text">00:00</string>
+    <string name="play_pause_description">Play Pause Button</string>
+    <string name="loading">Loading&#8230;</string>
+    <string name="no_video_found">No video was found</string>
+    <string name="about_app">About DemoCast Player</string>
+    <string name="version">Version: %1$s</string>
+    <string name="popular_header">Popular Videos</string>
+    <string name="preferences">PREFERENCES</string>
+    <string name="grid_view">Grid View</string>
+    <string name="error_fragment">Error Fragment</string>
+    <string name="personal_settings">Personal Settings</string>
+    <string name="watch_trailer_1">Watch trailer</string>
+    <string name="watch_trailer_2">FREE</string>
+    <string name="rent_1">Rent By Day</string>
+    <string name="rent_2">From $1.99</string>
+    <string name="buy_1">Buy and Own</string>
+    <string name="buy_2">AT $9.99</string>
+    <string name="movie">Movie</string>
+    <string name="should_start">shouldStart</string>
+    <string name="start_position">startPosition</string>
+    <string name="search_results">Search Results</string>
+
+    <!-- Error messages -->
+    <string name="video_error_media_load_timeout">Media loading timed out</string>
+    <string name="video_error_server_inaccessible">Media server was not reachable</string>
+    <string name="video_error_unknown_error">Failed to load video</string>
+    <string name="error_fragment_message">An error occurred</string>
+    <string name="dismiss_error">Dismiss</string>
+    <string name="oops">Oops</string>
+
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/strings_account.xml b/ring-android/androidtv/src/main/res/values/strings_account.xml
new file mode 100644
index 0000000..01e5e42
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/strings_account.xml
@@ -0,0 +1,244 @@
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+
+<resources>
+
+    <!-- Strings related to account edition screen -->
+    <string name="ic_delete_menu">Delete</string>
+    <string name="ic_advanced_menu">Advanced settings</string>
+    <string name="ic_blacklist_menu">Blocked contacts</string>
+
+    <!-- Strings related to account creation -->
+    <string name="add_ring_account_title">Add Ring account</string>
+    <string name="add_sip_account_title">Add SIP account</string>
+    <string name="ring_account_default_name">Ring account %1$s</string>
+
+    <string name="prompt_alias">Alias</string>
+    <string name="prompt_hostname">Hostname</string>
+    <string name="prompt_username">Username</string>
+    <string name="prompt_password">Password</string>
+    <string name="action_create">Create account</string>
+    <string name="action_create_short">Register</string>
+    <string name="error_field_required">This field is required</string>
+    <string name="dialog_wait_create">Adding account</string>
+    <string name="dialog_wait_create_details">Please wait while your new account is added…</string>
+    <string name="dialog_wait_update">Updating account</string>
+    <string name="dialog_wait_update_details">Please wait while your new account is updated…</string>
+
+    <string name="dialog_warn_ip2ip_account_title">Create empty SIP account ?</string>
+    <string name="dialog_warn_ip2ip_account_message">You are about to create a SIP account with no valid hostname.
+        You will only be able to make and receive direct ip calls.
+        You can edit your account later</string>
+
+    <string name="account_type_ip2ip">IP account</string>
+    <string name="help_ring">A Ring account allows you to reach people securely in peer to peer through a fully distributed network.</string>
+
+    <string name="help_sip_title">Add your SIP account</string>
+    <string name="help_sip">Configure an existing SIP account.</string>
+    <string name="create_sip_account">Add SIP account</string>
+
+    <!-- Strings related to account deletion -->
+    <string name="account_delete_dialog_title">Delete account ?</string>
+    <string name="account_delete_dialog_message">This action can not be undone.</string>
+
+    <!-- AccountManagementFragment -->
+    <string name="empty_account_list">No account registered</string>
+    <string name="normal_accounts_titles">Accounts</string>
+    <string name="normal_devices_titles">Known devices linked to this Ring account</string>
+    <string name="account_device_revoke">Revoke device</string>
+    <string name="account_device_revocation_success_title">Success</string>
+    <string name="account_device_revocation_success">Device is now revoked!</string>
+    <string name="account_device_revocation_error_title">Can\'t revoke device</string>
+    <string name="account_device_revocation_wrong_password">Wrong password.</string>
+    <string name="account_device_revocation_unknown_device">Unknown device.</string>
+    <string name="account_device_revocation_error_unknown">Unknown error.</string>
+
+    <!-- Basic Details -->
+    <string name="account_preferences_basic_tab">General</string>
+    <string name="account_basic_category">Basic Settings</string>
+    <string name="account_alias_label">Account name</string>
+    <string name="account_hostname_label">Hostname</string>
+    <string name="account_bootstrap_label">Bootstrap</string>
+    <string name="account_username_label">Username</string>
+    <string name="account_password_label">Password</string>
+    <string name="account_optionnal_category">Optional Settings</string>
+    <string name="account_useragent_label">User Agent</string>
+    <string name="account_autoanswer_label">Auto Answer</string>
+    <string name="account_upnp_label">Enable UPnP</string>
+    <string name="account_proxy_field">Proxy</string>
+
+    <!-- Audio Details -->
+    <string name="account_audio_label">Audio</string>
+    <string name="account_preferences_media_tab">Media</string>
+    <string name="account_ringtone_label">Ringtones</string>
+    <string name="account_ringtone_enabled_label">Activate ringtones</string>
+    <string name="account_ringtone_path_label">Ringtone path</string>
+    <string name="account_ringtone_custom_label">Use custom ringtone</string>
+
+    <!-- Video Details -->
+    <string name="account_video_label">Video</string>
+    <string name="account_video_enable">Enable Video</string>
+
+    <!-- Advanced Details -->
+    <string name="account_preferences_advanced_tab">Advanced</string>
+    <string name="account_dht_public_in_calls_label">Allow all calls/messages</string>
+    <string name="account_registration_exp_label">Registration Expire</string>
+    <string name="account_local_interface_label">Local Interface</string>
+    <string name="account_local_port_label">Local Port</string>
+    <string name="account_stun_enable_label">Use Stun</string>
+    <string name="account_stun_server_label">Stun Server</string>
+
+    <string name="account_turn_enable_label">Use TURN</string>
+    <string name="account_turn_server_label">TURN server</string>
+    <string name="account_turn_username_label">TURN username</string>
+    <string name="account_turn_password_label">TURN password</string>
+
+    <string name="account_published_same_as_local_label">Published same as local</string>
+    <string name="account_published_port_label">Published Port</string>
+    <string name="account_published_address_label">Published Address</string>
+
+    <!-- Security Details -->
+    <string name="account_credentials_label">Credentials</string>
+    <string name="account_credentials_edit">Edit credentials</string>
+    <string name="account_credentials_add">Add credentials</string>
+
+    <!-- SRTP Details -->
+    <string name="account_preferences_security_tab">Security</string>
+
+    <!-- SIP -->
+    <string name="account_sip_dtmf_type_sipinfo" translatable="false">sipinfo</string>
+
+    <!-- TLS Details -->
+    <string name="account_tls_transport_switch_label">Use TLS Transport</string>
+    <string name="account_tls_port_label">TLS Listener Port</string>
+    <string name="account_tls_certificate_list_label">Certification Authorities</string>
+    <string name="account_tls_certificate_file_label">Certificate File</string>
+    <string name="account_tls_private_key_file_label">Private Key File</string>
+    <string name="account_tls_password_label">Private Key Password</string>
+    <string name="account_tls_method_label">TLS Method</string>
+    <string name="account_tls_ciphers_label">TLS Ciphers</string>
+    <string name="account_tls_server_name_label">Server Name</string>
+    <string name="account_tls_verify_server_label">Verify Server</string>
+    <string name="account_tls_verify_client_label">Verify Client</string>
+    <string name="account_tls_negotiation_timeout_sec">Negotiation Timeout (sec)</string>
+    <string name="account_rtp_max_port">Maximum</string>
+    <string name="account_rtp_min_port">Minimum</string>
+    <string name="account_rtp_port_range">Audio RTP Port Range</string>
+
+    <!-- restore/backup -->
+    <string name="account_restore_account">Restore an account</string>
+    <string name="account_restore_message">Enter password to decrypt the file.</string>
+    <string name="account_restore_decryption_password">Decryption password</string>
+    <string name="account_new_device_password">Enter main password to unlock account</string>
+
+    <string name="restore_dialog_title">Restoring</string>
+    <string name="restore_backup_wait">Please wait…</string>
+    <string name="error_password_char_count">6 characters minimum</string>
+    <string name="error_passwords_not_equals">Passwords do not match</string>
+    <string name="restore_failed_dialog_title">Restore failed</string>
+    <string name="restore_failed_dialog_msg">An error occurred</string>
+    <string name="export_account_wait_title">Please wait…</string>
+    <string name="export_account_wait_message">Publishing new account information</string>
+    <string name="account_export_end_decryption_message">Couldn\'t unlock your account using the provided password.</string>
+    <string name="account_export_end_network_title">Network error</string>
+    <string name="account_export_end_network_message">Couldn\'t export account on the network. Check your connectivity.</string>
+    <string name="account_export_end_error_title">Error</string>
+    <string name="account_export_end_error_message">Couldn\'t export account. An unknown error occurred.</string>
+    <string name="account_enter_password">Enter password</string>
+    <string name="account_share_body">Contact me using \'%1$s\' on the Ring distributed communication platform: http://ring.cx</string>
+    <string name="account_share_body_with_username">Contact me using \'%1$s\' or my public username \'%2$s\' on the Ring distributed communication platform: http://ring.cx</string>
+    <string name="account_contact_me">Contact me on Ring !</string>
+    <string name="update_account">Update account</string>
+    <string name="account_migration">Your Ring account can be updated.\nPlease enter your password.</string>
+    <string name="ring_account">Ring account</string>
+    <string name="ring_account_identity">Identity</string>
+    <string name="account_migration_title_dialog">Account migration</string>
+    <string name="account_migration_message_dialog">Your accounts need to be updated. Do you want to go the Account management screen to perform this operation ?</string>
+    <string name="account_update_needed">Update needed</string>
+    <string name="account_creation_file_too_big">File is too big</string>
+    <string name="account_cannot_read">Can\'t read %1$s</string>
+    <string name="account_cannot_be_found_title">Can\'t find account</string>
+    <string name="account_cannot_be_found_message">Account couldn\'t be found on the Ring network.\nMake sure it was exported on Ring from an existing device, and that provided credentials are correct.</string>
+    <string name="account_sip_cannot_be_registered_message">You can continue with the account creation process or edit your information here. Edition is still possible later in the account settings.</string>
+    <string name="account_no_network_title">Can\'t connect to the network</string>
+    <string name="account_no_network_message">Could not add account because Ring coudn\'t connect to the distributed network. Check your device connectivity.</string>
+    <string name="account_device_added_title">Account device added</string>
+    <string name="account_device_added_message">You have successfully setup your Ring account on this device.</string>
+    <string name="account_device_updated_title">Account device updated</string>
+    <string name="account_device_updated_message">You have successfully updated your Ring account.</string>
+    <string name="account_cannot_be_updated_message">Account device couldn\'t be update. Please check your password.</string>
+    <string name="account_sip_success_title">Sip account registered</string>
+    <string name="account_sip_success_message">You have successfully registered your Sip account.</string>
+    <string name="account_sip_register_anyway">Register anyway</string>
+
+    <string name="account_link_button">Link this device to an account</string>
+    <string name="account_import_title">Link to an existing account</string>
+    <string name="account_link_prompt_pin">Enter PIN</string>
+    <string name="account_wizard_title">Welcome to </string>
+    <string name="account_new_button">Create a Ring account</string>
+    <string name="account_link_export_button">Link another device to this account</string>
+    <string name="account_link_export_info">To use this account on other devices, you must first expose it on Ring. This will generate a PIN code that you must enter on the new device to set up the account. The PIN is valid for 10 minutes. \n\nPlease provide your password to start:</string>
+    <string name="account_start_export_button">Generate Pin</string>
+    <string name="account_end_export_button">close</string>
+    <string name="account_end_export_infos">Your Pin is:\n\n%%\n\nTo complete the process, you need to open Ring on the new device. Create a new account with \"Link this device to an account\". Your pin is valid for 10 minutes.</string>
+
+    <!-- Name registration -->
+    <string name="register_name_wrong_password">Can\'t register name: wrong account password.</string>
+    <string name="register_name_invalid">Can\'t register name: invalid name.</string>
+    <string name="register_name_already_taken">Can\'t register name: name already taken.</string>
+    <string name="register_name_network_error">Can\'t register name: network or server error.</string>
+    <string name="error_username_empty">Enter a username</string>
+    <string name="no_registered_name_for_account">No registered name found for this account</string>
+    <string name="register_name">Register name</string>
+    <string name="trying_to_register_name">Trying to register name</string>
+    <string name="registered_username">Registered username</string>
+    <string name="register_username">Register public username (experimental)</string>
+    <string name="username_already_taken">Username already taken</string>
+    <string name="invalid_username">Invalid username</string>
+    <string name="looking_for_username_availability">Looking for username availability…</string>
+    <string name="account_status_connecting">Connecting</string>
+    <string name="account_status_connection_error">Connection error</string>
+    <string name="account_status_online">Online</string>
+    <string name="account_status_unknown">Unknown</string>
+    <string name="account_status_offline">Offline</string>
+
+    <!-- Create account -->
+    <string name="account_creation_home">Welcome to Ring</string>
+    <string name="account_creation_profile">Create your profile</string>
+    <string name="account_creation_ring">Create your Ring account</string>
+    <string name="account_link_title">Link this device</string>
+    <string name="account_sip_cannot_be_registered">Can\'t register account</string>
+
+    <!-- Devices -->
+    <string name="account_revoke_device_hint">Enter password to confirm</string>
+    <string name="enter_password">Enter password</string>
+    <string name="revoke_device_title">Revoke device</string>
+    <string name="revoke_device_message">Are you sure you want to revoke %1$s ?</string>
+    <string name="revoke_device_wait_title">Please wait…</string>
+    <string name="revoke_device_wait_message">Revoking device</string>
+    <string name="rename_device_title">Rename this device</string>
+    <string name="rename_device_message">Choose a new name to identify this device in your Ring account</string>
+    <string name="rename_device_button">Rename device</string>
+    <string name="account_rename_device_hint">Choose new device name</string>
+    <string name="account_device_name_empty">Device name can\'t be empty</string>
+    <string name="account_device_this_indicator">this device</string>
+    <string name="account_disabled_indicator">disabled</string>
+
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/strings_call.xml b/ring-android/androidtv/src/main/res/values/strings_call.xml
new file mode 100644
index 0000000..b591eb0
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/strings_call.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+Copyright (C) 2004-2016 Savoir-faire Linux Inc.
+
+Author: Alexandre Lision <alexandre.lision@savoirfairelinux.com>
+Author: Adrien Béraud <adrien.beraud@savoirfairelinux.com>
+Author: Romain Bertozzi <romain.bertozzi@savoirfairelinux.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+-->
+<resources>
+    <!-- SipCalls -->
+    <string name="call_human_state_incoming">Ringing</string>
+    <string name="call_human_state_connecting">Connecting</string>
+    <string name="call_human_state_ringing">Calling</string>
+    <string name="call_human_state_current">Talking</string>
+    <string name="call_human_state_hungup">Over</string>
+    <string name="call_human_state_busy">Busy</string>
+    <string name="call_human_state_failure">Failed</string>
+    <string name="call_human_state_hold">Hold</string>
+    <string name="call_human_state_unhold">Unhold</string>
+    <string name="call_human_state_over">Over</string>
+    <string name="call_human_state_none">None</string>
+    <!-- Conferences -->
+    <string name="conference_human_state_active_attached">Active attached</string>
+    <string name="conference_human_state_active_detached">Active detached</string>
+    <string name="conference_human_state_active_attached_rec">Active attached rec</string>
+    <string name="conference_human_state_active_detached_rec">Active detached rec</string>
+    <string name="conference_human_state_hold">Hold</string>
+    <string name="conference_human_state_hold_rec">Hold rec</string>
+    <string name="conference_human_state_default">None</string>
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values/strings_content_description.xml b/ring-android/androidtv/src/main/res/values/strings_content_description.xml
new file mode 100644
index 0000000..d45dc74
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/strings_content_description.xml
@@ -0,0 +1,9 @@
+<resources>
+
+    <!-- Strings for xml content description of images -->
+    <string name="contact_quick_call_description">Quick Call</string>
+    <string name="contact_picture_description">Contact Picture</string>
+    <string name="dial_numeric_pad">Numeric dialpad</string>
+    <string name="contact_unblock">Unblock</string>
+
+</resources>
\ No newline at end of file
diff --git a/ring-android/androidtv/src/main/res/values/strings_preferences.xml b/ring-android/androidtv/src/main/res/values/strings_preferences.xml
new file mode 100644
index 0000000..1b79c5f
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/strings_preferences.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="pref_category_network">Network</string>
+    <string name="pref_category_contacts">Contacts</string>
+    <string name="pref_category_system">System</string>
+    <string name="pref_category_privacy">Privacy</string>
+
+    <string name="pref_mobileData_title">Mobile data</string>
+    <string name="pref_mobileData_summary">Allow Ring on 3G/LTE networks additionally to Wi-Fi</string>
+
+    <string name="pref_systemContacts_key" translatable="false">pref_systemContacts</string>
+    <string name="pref_systemContacts_title">Use system contacts</string>
+    <string name="pref_systemContacts_summary">Use system contacts to show caller details.</string>
+
+    <string name="pref_systemCamera_key" translatable="false">pref_systemCamera</string>
+
+    <string name="pref_systemDialer_key" translatable="false">pref_systemDialer</string>
+    <string name="pref_systemDialer_title">Place system calls using Ring</string>
+    <string name="pref_systemDialer_summary">Use Ring to place system calls when possible.</string>
+
+    <string name="pref_startOnBoot_title">Start Ring on startup</string>
+    <string name="pref_startOnBoot_summary">Run Ring in the background when the system starts.</string>
+
+    <string name="pref_clearHistory_title">Clear history</string>
+    <string name="pref_clearHistory_summary">Clear all the conversations history. This action can not be undone.</string>
+
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/styles.xml b/ring-android/androidtv/src/main/res/values/styles.xml
new file mode 100644
index 0000000..2fa7671
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/styles.xml
@@ -0,0 +1,84 @@
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <style name="AppThemeBase" parent="@style/Theme.AppCompat.Light.NoActionBar">
+        <item name="colorAccent">@color/color_primary_dark</item>
+        <item name="colorPrimary">@color/color_primary_light</item>
+        <item name="colorPrimaryDark">@color/color_primary_dark</item>
+    </style>
+
+    <style name="AppTheme.ActionBar.Transparent" parent="style/Theme.AppCompat.Light">
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowActionBarOverlay">true</item>
+        <item name="android:actionBarStyle">@style/ActionBar.Transparent</item>
+        <item name="actionBarStyle">@style/ActionBar.Transparent</item>
+    </style>
+
+    <style name="ActionBar.Transparent" parent="@android:style/Widget.DeviceDefault.Light.ActionBar.Solid.Inverse">
+        <item name="android:background">@color/transparent_dark_grey</item>
+        <item name="android:height">@dimen/abc_action_bar_default_height_material</item>
+        <item name="background">@color/transparent_dark_grey</item>
+    </style>
+
+    <style name="ToolbarTitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
+        <item name="android:textSize">20sp</item>
+    </style>
+
+    <style name="MenuHeader" parent="Theme.AppCompat.Light.NoActionBar">
+        <item name="android:textColorPrimary">@color/text_color_primary_dark</item>
+        <item name="android:textColorSecondary">@color/text_color_secondary_dark</item>
+    </style>
+
+    <style name="AccountFormContainer">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:padding">16dp</item>
+    </style>
+
+    <style name="Subheader">
+        <item name="android:textSize">14sp</item>
+        <item name="android:typeface">normal</item>
+        <item name="android:textColor">@color/text_color_secondary</item>
+    </style>
+
+    <style name="ListPrimary">
+        <item name="android:textSize">16sp</item>
+        <item name="android:typeface">normal</item>
+        <item name="android:textColor">@color/text_color_primary</item>
+    </style>
+
+    <style name="ListSecondary">
+        <item name="android:textSize">14sp</item>
+        <item name="android:typeface">normal</item>
+        <item name="android:textColor">@color/text_color_secondary</item>
+    </style>
+    <style name="ActionEditText" parent="Theme.AppCompat.Light.DarkActionBar">
+        <item name="colorControlNormal">@color/color_primary_light</item>
+        <item name="colorControlActivated">@color/color_primary_light</item>
+        <item name="colorControlHighlight">@color/color_primary_light</item>
+    </style>
+    <style name="Wizard" parent="Theme.AppCompat">
+        <item name="colorAccent">@color/color_primary_light</item>
+        <item name="colorPrimary">@color/color_primary_dark</item>
+        <item name="colorPrimaryDark">@color/color_primary_light</item>
+    </style>
+    <style name="WizardNavButton" parent="Widget.AppCompat.Button.Borderless.Colored">
+        <item name="android:paddingLeft">20dp</item>
+        <item name="android:paddingStart">20dp</item>
+        <item name="android:paddingRight">20dp</item>
+        <item name="android:paddingEnd">20dp</item>
+        <item name="android:textAppearance">@style/TextAppearance.AppCompat.Widget.Button</item>
+        <item name="android:textColor">@color/white</item>
+    </style>
+    <style name="ButtonColoredInverse" parent="Widget.AppCompat.Button.Colored">
+        <item name="colorButtonNormal">@color/color_primary_light</item>
+        <item name="android:textColor">@color/text_color_primary_dark</item>
+        <item name="android:paddingLeft">20dp</item>
+        <item name="android:paddingStart">20dp</item>
+        <item name="android:paddingRight">20dp</item>
+        <item name="android:paddingEnd">20dp</item>
+    </style>
+    <style name="ButtonColored" parent="Widget.AppCompat.Button.Colored">
+        <item name="colorButtonNormal">@color/color_primary_dark</item>
+        <item name="android:textColor">@color/text_color_primary_dark</item>
+    </style>
+</resources>
diff --git a/ring-android/androidtv/src/main/res/values/themes.xml b/ring-android/androidtv/src/main/res/values/themes.xml
new file mode 100644
index 0000000..90c0f86
--- /dev/null
+++ b/ring-android/androidtv/src/main/res/values/themes.xml
@@ -0,0 +1,14 @@
+<resources>
+
+    <style name="Theme.Example.Leanback" parent="Theme.Leanback">
+        <item name="android:windowEnterTransition">@android:transition/fade</item>
+        <item name="android:windowExitTransition">@android:transition/fade</item>
+        <item name="android:windowSharedElementExitTransition">@android:transition/move</item>
+        <item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
+        <item name="android:windowAllowReturnTransitionOverlap">true</item>
+        <item name="android:windowAllowEnterTransitionOverlap">true</item>
+        <item name="android:windowContentTransitions">true</item>
+        <item name="android:colorPrimary">@color/search_opaque</item>
+
+    </style>
+</resources>