diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml
index 5cc2fa66a54..3ec89484ace 100644
--- a/app/src/debug/AndroidManifest.xml
+++ b/app/src/debug/AndroidManifest.xml
@@ -6,5 +6,6 @@
+ tools:replace="android:name"
+ android:supportsRtl="true" />
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 28cdbf02038..17b4282de2e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -23,6 +23,7 @@
android:label="@string/app_name"
android:logo="@mipmap/ic_launcher"
android:theme="@style/OpeningTheme"
+ android:supportsRtl="true"
android:resizeableActivity="true"
tools:ignore="AllowBackup">
internalTabsList;
+ private boolean isRTL;
private SelectedTabsPagerAdapter(final Context context,
final FragmentManager fragmentManager,
- final List tabsList) {
+ final List tabsList,
+ final boolean isRTL) {
super(fragmentManager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
this.context = context;
this.internalTabsList = new ArrayList<>(tabsList);
+ this.isRTL = isRTL;
}
@NonNull
@Override
public Fragment getItem(final int position) {
- final Tab tab = internalTabsList.get(position);
+ final Tab tab = internalTabsList.get(
+ LocalizeLayoutUtils.getLayoutPosition(
+ isRTL,
+ internalTabsList.size(),
+ position)
+ );
final Fragment fragment;
try {
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdapter.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdapter.java
index 1a11836d48b..c1370dade34 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdapter.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/TabAdapter.java
@@ -8,6 +8,8 @@
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
+import org.schabi.newpipe.util.LocalizeLayoutUtils;
+
import java.util.ArrayList;
import java.util.List;
@@ -15,19 +17,21 @@ public class TabAdapter extends FragmentPagerAdapter {
private final List mFragmentList = new ArrayList<>();
private final List mFragmentTitleList = new ArrayList<>();
private final FragmentManager fragmentManager;
+ private boolean isRTL;
- public TabAdapter(final FragmentManager fm) {
+ public TabAdapter(final FragmentManager fm, final boolean isRTL) {
// if changed to BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT => crash if enqueueing stream in
// the background and then clicking on it to open VideoDetailFragment:
// "Cannot setMaxLifecycle for Fragment not attached to FragmentManager"
super(fm, BEHAVIOR_SET_USER_VISIBLE_HINT);
this.fragmentManager = fm;
+ this.isRTL = isRTL;
}
@NonNull
@Override
public Fragment getItem(final int position) {
- return mFragmentList.get(position);
+ return mFragmentList.get(getLayoutPosition(position));
}
@Override
@@ -46,16 +50,18 @@ public void clearAllItems() {
}
public void removeItem(final int position) {
- mFragmentList.remove(position == 0 ? 0 : position - 1);
- mFragmentTitleList.remove(position == 0 ? 0 : position - 1);
+ final int newPosition = getLayoutPosition(position);
+
+ mFragmentList.remove(newPosition == 0 ? 0 : newPosition - 1);
+ mFragmentTitleList.remove(newPosition == 0 ? 0 : newPosition - 1);
}
public void updateItem(final int position, final Fragment fragment) {
- mFragmentList.set(position, fragment);
+ mFragmentList.set(getLayoutPosition(position), fragment);
}
public void updateItem(final String title, final Fragment fragment) {
- final int index = mFragmentTitleList.indexOf(title);
+ final int index = getLayoutPosition(mFragmentTitleList.indexOf(title));
if (index != -1) {
updateItem(index, fragment);
}
@@ -64,14 +70,14 @@ public void updateItem(final String title, final Fragment fragment) {
@Override
public int getItemPosition(@NonNull final Object object) {
if (mFragmentList.contains(object)) {
- return mFragmentList.indexOf(object);
+ return getLayoutPosition(mFragmentList.indexOf(object));
} else {
return POSITION_NONE;
}
}
public int getItemPositionByTitle(final String title) {
- return mFragmentTitleList.indexOf(title);
+ return getLayoutPosition(mFragmentTitleList.indexOf(title));
}
@Nullable
@@ -79,7 +85,8 @@ public String getItemTitle(final int position) {
if (position < 0 || position >= mFragmentTitleList.size()) {
return null;
}
- return mFragmentTitleList.get(position);
+
+ return mFragmentTitleList.get(getLayoutPosition(position));
}
public void notifyDataSetUpdate() {
@@ -93,4 +100,7 @@ public void destroyItem(@NonNull final ViewGroup container,
fragmentManager.beginTransaction().remove((Fragment) object).commitNowAllowingStateLoss();
}
+ private int getLayoutPosition(final int position) {
+ return LocalizeLayoutUtils.getLayoutPosition(isRTL, mFragmentList.size(), position);
+ }
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
index 05630ef793a..6bcaf88cb60 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
@@ -91,6 +91,7 @@
import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.ListHelper;
import org.schabi.newpipe.util.Localization;
+import org.schabi.newpipe.util.LocalizeLayoutUtils;
import org.schabi.newpipe.util.NavigationHelper;
import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.PicassoHelper;
@@ -603,10 +604,6 @@ public void onViewCreated(@NonNull final View rootView, final Bundle savedInstan
protected void initViews(final View rootView, final Bundle savedInstanceState) {
super.initViews(rootView, savedInstanceState);
- pageAdapter = new TabAdapter(getChildFragmentManager());
- binding.viewPager.setAdapter(pageAdapter);
- binding.tabLayout.setupWithViewPager(binding.viewPager);
-
binding.detailThumbnailRootLayout.requestFocus();
binding.detailControlsPlayWithKodi.setVisibility(
@@ -621,6 +618,13 @@ protected void initViews(final View rootView, final Bundle savedInstanceState) {
: View.GONE
);
+ pageAdapter = new TabAdapter(
+ getChildFragmentManager(),
+ LocalizeLayoutUtils.isRTL(getContext())
+ );
+ binding.viewPager.setAdapter(pageAdapter);
+ binding.tabLayout.setupWithViewPager(binding.viewPager);
+
if (DeviceUtils.isTv(getContext())) {
// remove ripple effects from detail controls
final int transparent = ContextCompat.getColor(requireContext(),
@@ -985,8 +989,12 @@ private void initTabs() {
* {@link #tabContentDescriptions}, which are all set in {@link #initTabs()}.
*/
private void updateTabIconsAndContentDescriptions() {
+ final boolean isRTL = LocalizeLayoutUtils.isRTL(getContext());
+
for (int i = 0; i < tabIcons.size(); ++i) {
- final TabLayout.Tab tab = binding.tabLayout.getTabAt(i);
+ final TabLayout.Tab tab = binding.tabLayout.getTabAt(
+ LocalizeLayoutUtils.getLayoutPosition(
+ isRTL, tabIcons.size(), i));
if (tab != null) {
tab.setIcon(tabIcons.get(i));
tab.setContentDescription(tabContentDescriptions.get(i));
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
index 15424334d38..c0723bb4db9 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
@@ -1089,7 +1089,7 @@ public int getSuggestionMovementFlags(@NonNull final RecyclerView.ViewHolder vie
final SuggestionItem item = suggestionListAdapter.getItem(position);
return item.fromHistory ? makeMovementFlags(0,
- ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) : 0;
+ ItemTouchHelper.START | ItemTouchHelper.END) : 0;
}
public void onSuggestionItemSwiped(@NonNull final RecyclerView.ViewHolder viewHolder) {
diff --git a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
index 87d913b3b06..b4e30267979 100644
--- a/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/local/playlist/LocalPlaylistFragment.java
@@ -683,7 +683,7 @@ private void saveImmediate() {
private ItemTouchHelper.SimpleCallback getItemTouchCallback() {
int directions = ItemTouchHelper.UP | ItemTouchHelper.DOWN;
if (shouldUseGridLayout(requireContext())) {
- directions |= ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;
+ directions |= ItemTouchHelper.START | ItemTouchHelper.END;
}
return new ItemTouchHelper.SimpleCallback(directions,
ItemTouchHelper.ACTION_STATE_IDLE) {
diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/decoration/FeedGroupCarouselDecoration.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/decoration/FeedGroupCarouselDecoration.kt
index 7b7490eaa86..d03d057cf38 100644
--- a/app/src/main/java/org/schabi/newpipe/local/subscription/decoration/FeedGroupCarouselDecoration.kt
+++ b/app/src/main/java/org/schabi/newpipe/local/subscription/decoration/FeedGroupCarouselDecoration.kt
@@ -5,12 +5,14 @@ import android.graphics.Rect
import android.view.View
import androidx.recyclerview.widget.RecyclerView
import org.schabi.newpipe.R
+import org.schabi.newpipe.util.LocalizeLayoutUtils
class FeedGroupCarouselDecoration(context: Context) : RecyclerView.ItemDecoration() {
private val marginStartEnd: Int
private val marginTopBottom: Int
private val marginBetweenItems: Int
+ private val isRTL: Boolean
init {
with(context.resources) {
@@ -18,18 +20,32 @@ class FeedGroupCarouselDecoration(context: Context) : RecyclerView.ItemDecoratio
marginTopBottom = getDimensionPixelOffset(R.dimen.feed_group_carousel_top_bottom_margin)
marginBetweenItems = getDimensionPixelOffset(R.dimen.feed_group_carousel_between_items_margin)
}
+
+ isRTL = LocalizeLayoutUtils.isRTL(context)
}
override fun getItemOffsets(outRect: Rect, child: View, parent: RecyclerView, state: RecyclerView.State) {
val childAdapterPosition = parent.getChildAdapterPosition(child)
val childAdapterCount = parent.adapter?.itemCount ?: 0
- outRect.set(marginBetweenItems, marginTopBottom, 0, marginTopBottom)
+ outRect.set(0, marginTopBottom, 0, marginTopBottom)
+
+ if (isRTL) {
+ outRect.right = marginBetweenItems
+
+ if (childAdapterPosition == 0) {
+ outRect.right = marginStartEnd
+ } else if (childAdapterPosition == childAdapterCount - 1) {
+ outRect.left = marginStartEnd
+ }
+ } else {
+ outRect.left = marginBetweenItems
- if (childAdapterPosition == 0) {
- outRect.left = marginStartEnd
- } else if (childAdapterPosition == childAdapterCount - 1) {
- outRect.right = marginStartEnd
+ if (childAdapterPosition == 0) {
+ outRect.left = marginStartEnd
+ } else if (childAdapterPosition == childAdapterCount - 1) {
+ outRect.right = marginStartEnd
+ }
}
}
}
diff --git a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
index c51b6d5dde0..396e16fbe94 100644
--- a/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/player/helper/PlayerHelper.java
@@ -514,7 +514,7 @@ public static WindowManager.LayoutParams retrievePopupLayoutParamsFromPrefs(
popupLayoutParamType(),
IDLE_WINDOW_FLAGS,
PixelFormat.TRANSLUCENT);
- popupLayoutParams.gravity = Gravity.LEFT | Gravity.TOP;
+ popupLayoutParams.gravity = Gravity.START | Gravity.TOP;
popupLayoutParams.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
final int centerX = (int) (player.getScreenWidth() / 2f - popupWidth / 2f);
@@ -558,7 +558,7 @@ public static WindowManager.LayoutParams buildCloseOverlayLayoutParams() {
flags,
PixelFormat.TRANSLUCENT);
- closeOverlayLayoutParams.gravity = Gravity.LEFT | Gravity.TOP;
+ closeOverlayLayoutParams.gravity = Gravity.START | Gravity.TOP;
closeOverlayLayoutParams.softInputMode =
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE;
return closeOverlayLayoutParams;
diff --git a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItemTouchCallback.java b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItemTouchCallback.java
index b283e105ec6..6ad2e500487 100644
--- a/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItemTouchCallback.java
+++ b/app/src/main/java/org/schabi/newpipe/player/playqueue/PlayQueueItemTouchCallback.java
@@ -8,7 +8,7 @@ public abstract class PlayQueueItemTouchCallback extends ItemTouchHelper.SimpleC
private static final int MAXIMUM_INITIAL_DRAG_VELOCITY = 25;
public PlayQueueItemTouchCallback() {
- super(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT);
+ super(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.END);
}
public abstract void onMove(int sourceIndex, int targetIndex);
diff --git a/app/src/main/java/org/schabi/newpipe/util/CommentTextOnTouchListener.java b/app/src/main/java/org/schabi/newpipe/util/CommentTextOnTouchListener.java
index 7c87e664ba8..da0bdf0e663 100644
--- a/app/src/main/java/org/schabi/newpipe/util/CommentTextOnTouchListener.java
+++ b/app/src/main/java/org/schabi/newpipe/util/CommentTextOnTouchListener.java
@@ -35,7 +35,7 @@ public boolean onTouch(final View v, final MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
- x -= widget.getTotalPaddingLeft();
+ x -= widget.getTotalPaddingStart();
y -= widget.getTotalPaddingTop();
x += widget.getScrollX();
diff --git a/app/src/main/java/org/schabi/newpipe/util/LocalizeLayoutUtils.java b/app/src/main/java/org/schabi/newpipe/util/LocalizeLayoutUtils.java
new file mode 100644
index 00000000000..e55c230043b
--- /dev/null
+++ b/app/src/main/java/org/schabi/newpipe/util/LocalizeLayoutUtils.java
@@ -0,0 +1,29 @@
+package org.schabi.newpipe.util;
+
+import android.content.Context;
+import android.content.res.Configuration;
+import android.view.View;
+
+public final class LocalizeLayoutUtils {
+ private LocalizeLayoutUtils() { }
+
+ private static Boolean isRTL = null;
+
+ public static int getLayoutPosition(final boolean isRtl, final int count, final int position) {
+ return isRtl
+ ? count - 1 - position
+ : position;
+ }
+
+ public static boolean isRTL(final Context context) {
+ if (isRTL != null) {
+ return isRTL;
+ }
+
+ final Configuration config = context.getResources().getConfiguration();
+
+ isRTL = config.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL;
+
+ return isRTL;
+ }
+}
diff --git a/app/src/main/res/drawable/ic_play_arrow_shadow.xml b/app/src/main/res/drawable/ic_play_arrow_shadow.xml
index bf4b895b0ae..9a9a110b3e1 100644
--- a/app/src/main/res/drawable/ic_play_arrow_shadow.xml
+++ b/app/src/main/res/drawable/ic_play_arrow_shadow.xml
@@ -1,7 +1,6 @@
@@ -45,8 +44,7 @@
android:layout_height="match_parent"
android:layout_above="@id/progress_bar"
android:layout_below="@id/appbar"
- android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true">
+ android:layout_alignParentEnd="true">
+ android:paddingRight="16dp"
+ android:layoutDirection="ltr">
@@ -255,7 +255,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toStartOf="@id/details_panel"
- android:layout_toLeftOf="@id/details_panel"
android:background="?attr/selectableItemBackground"
android:focusable="true"
android:gravity="center_vertical"
@@ -277,7 +276,7 @@
android:id="@+id/detail_sub_channel_thumbnail_view"
android:layout_width="@dimen/video_item_detail_sub_channel_image_size"
android:layout_height="@dimen/video_item_detail_sub_channel_image_size"
- android:layout_gravity="bottom|right"
+ android:layout_gravity="bottom|end"
android:contentDescription="@string/detail_sub_channel_thumbnail_view_description"
android:src="@drawable/buddy"
android:visibility="gone"
@@ -295,7 +294,7 @@
android:id="@+id/detail_sub_channel_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="15dp"
+ android:layout_marginStart="15dp"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
@@ -311,7 +310,7 @@
android:id="@+id/detail_uploader_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="15dp"
+ android:layout_marginStart="15dp"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:marqueeRepeatLimit="marquee_forever"
@@ -328,12 +327,12 @@
android:id="@+id/detail_uploader_subscribe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_vertical|right"
- android:layout_marginRight="12dp"
+ android:layout_gravity="center_vertical|end"
+ android:layout_marginEnd="12dp"
android:text="@string/rss_button_title"
android:textSize="12sp"
android:theme="@style/RedButton"
- app:drawableLeftCompat="@drawable/ic_rss_feed"
+ app:drawableStartCompat="@drawable/ic_rss_feed"
tools:ignore="RtlHardcoded"
android:visibility="gone"/>-->
@@ -344,9 +343,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
- android:paddingLeft="6dp"
- android:paddingRight="6dp">
+ android:paddingStart="6dp"
+ android:paddingEnd="6dp">
@@ -399,8 +397,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/detail_view_count_view"
- android:layout_marginLeft="@dimen/video_item_detail_like_margin"
- android:layout_toRightOf="@id/detail_thumbs_down_img_view"
+ android:layout_marginStart="@dimen/video_item_detail_like_margin"
+ android:layout_toEndOf="@id/detail_thumbs_down_img_view"
android:gravity="center_vertical"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -413,8 +411,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/detail_view_count_view"
- android:layout_marginLeft="12dp"
- android:layout_toRightOf="@id/detail_thumbs_down_img_view"
+ android:layout_marginStart="12dp"
+ android:layout_toEndOf="@id/detail_thumbs_down_img_view"
android:gravity="center_vertical"
android:text="@string/disabled"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -585,8 +583,8 @@
android:id="@+id/detail_meta_info_separator"
android:layout_width="match_parent"
android:layout_height="1px"
- android:layout_marginLeft="8dp"
- android:layout_marginRight="8dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:background="?attr/separator_color" />
@@ -652,8 +650,8 @@
android:layout_alignParentStart="true"
android:background="@color/transparent_background_color"
android:gravity="center_vertical"
- android:paddingLeft="@dimen/video_item_search_padding"
- android:paddingRight="@dimen/video_item_search_padding"
+ android:paddingStart="@dimen/video_item_search_padding"
+ android:paddingEnd="@dimen/video_item_search_padding"
android:scaleType="fitCenter"
android:src="@drawable/dummy_thumbnail" />
@@ -704,8 +702,8 @@
android:layout_height="60dp"
android:layout_alignParentEnd="true"
android:gravity="center_vertical"
- android:paddingLeft="@dimen/video_item_search_padding"
- android:paddingRight="@dimen/video_item_search_padding"
+ android:paddingStart="@dimen/video_item_search_padding"
+ android:paddingEnd="@dimen/video_item_search_padding"
tools:ignore="RtlHardcoded">
+ android:paddingRight="@dimen/player_main_controls_padding"
+ android:layoutDirection="ltr">
+ android:weightSum="5.5"
+ android:layoutDirection="ltr">
+ android:paddingStart="16dp">
+ android:layout_height="wrap_content"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl" />
diff --git a/app/src/main/res/layout/activity_player_queue_control.xml b/app/src/main/res/layout/activity_player_queue_control.xml
index 24e06293226..a944ca1a9bb 100644
--- a/app/src/main/res/layout/activity_player_queue_control.xml
+++ b/app/src/main/res/layout/activity_player_queue_control.xml
@@ -44,9 +44,9 @@
android:layout_centerInParent="true"
android:layout_above="@id/metadata"
android:background="#c0000000"
- android:paddingLeft="30dp"
+ android:paddingStart="30dp"
android:paddingTop="5dp"
- android:paddingRight="30dp"
+ android:paddingEnd="30dp"
android:paddingBottom="5dp"
android:textColor="@android:color/white"
android:textSize="22sp"
@@ -102,7 +102,8 @@
android:orientation="horizontal"
android:paddingLeft="12dp"
android:paddingRight="12dp"
- android:layout_above="@+id/playback_controls">
+ android:layout_above="@+id/playback_controls"
+ android:layoutDirection="ltr">
diff --git a/app/src/main/res/layout/channel_header.xml b/app/src/main/res/layout/channel_header.xml
index 9366faf2c6e..d8d7c59146d 100644
--- a/app/src/main/res/layout/channel_header.xml
+++ b/app/src/main/res/layout/channel_header.xml
@@ -25,7 +25,7 @@
android:id="@+id/avatars_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp"
android:layout_marginTop="50dp">
+ android:paddingEnd="@dimen/video_item_search_padding">
@@ -179,9 +179,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- android:paddingLeft="12dp"
+ android:paddingStart="12dp"
android:paddingTop="4dp"
- android:paddingRight="12dp"
+ android:paddingEnd="12dp"
android:paddingBottom="4dp">
+ android:paddingEnd="@dimen/video_item_search_padding">
@@ -23,8 +23,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/file_name_text_view"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginBottom="6dp"
android:inputType="text"
android:maxLines="1" />
@@ -34,9 +34,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/file_name"
- android:layout_marginLeft="20dp"
+ android:layout_marginStart="20dp"
android:layout_marginBottom="6dp"
- android:gravity="left"
+ android:gravity="start"
android:orientation="horizontal"
tools:ignore="RtlHardcoded">
@@ -65,8 +65,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/video_audio_group"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginBottom="12dp"
android:minWidth="150dp"
tools:listitem="@layout/stream_quality_item" />
@@ -76,8 +76,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/quality_spinner"
- android:layout_marginLeft="24dp"
- android:layout_marginRight="24dp"
+ android:layout_marginStart="24dp"
+ android:layout_marginEnd="24dp"
android:layout_marginBottom="6dp"
android:text="@string/msg_threads" />
@@ -85,8 +85,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/threads_text_view"
- android:layout_marginLeft="24dp"
- android:layout_marginRight="24dp"
+ android:layout_marginStart="24dp"
+ android:layout_marginEnd="24dp"
android:orientation="horizontal"
android:paddingBottom="12dp">
@@ -95,7 +95,7 @@
android:layout_width="25dp"
android:layout_height="match_parent"
android:gravity="center_vertical"
- android:paddingLeft="2dp"
+ android:paddingStart="2dp"
tools:ignore="RtlHardcoded,RtlSymmetry"
tools:text="3" />
diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml
index 3069d0168ab..be0da4d8dae 100644
--- a/app/src/main/res/layout/drawer_header.xml
+++ b/app/src/main/res/layout/drawer_header.xml
@@ -29,8 +29,8 @@
@@ -67,8 +67,8 @@
android:background="@drawable/drawer_header_bottom_background"
android:gravity="center"
android:orientation="horizontal"
- android:paddingLeft="6dp"
- android:paddingRight="6dp">
+ android:paddingStart="6dp"
+ android:paddingEnd="6dp">
@@ -34,11 +34,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
- android:layout_marginLeft="16dp"
+ android:layout_marginStart="16dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
- android:layout_toLeftOf="@+id/handle"
- android:layout_toRightOf="@+id/group_icon"
+ android:layout_toStartOf="@+id/handle"
+ android:layout_toEndOf="@+id/group_icon"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="?textAppearanceListItem"
@@ -49,11 +49,11 @@
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
- android:paddingLeft="16dp"
+ android:paddingStart="16dp"
android:paddingTop="12dp"
- android:paddingRight="16dp"
+ android:paddingEnd="16dp"
android:paddingBottom="12dp"
app:srcCompat="@drawable/ic_drag_handle"
tools:ignore="ContentDescription,RtlHardcoded" />
diff --git a/app/src/main/res/layout/feed_import_export_group.xml b/app/src/main/res/layout/feed_import_export_group.xml
index e8232acc40d..4b1baa2acbd 100644
--- a/app/src/main/res/layout/feed_import_export_group.xml
+++ b/app/src/main/res/layout/feed_import_export_group.xml
@@ -37,9 +37,9 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:paddingLeft="16dp"
+ android:paddingStart="16dp"
android:paddingTop="8dp"
- android:paddingRight="16dp"
+ android:paddingEnd="16dp"
android:paddingBottom="8dp"
android:text="@string/tab_subscriptions"
android:textColor="?android:attr/textColorPrimary"
@@ -50,7 +50,7 @@
android:id="@+id/import_export_expand_icon"
android:layout_width="24dp"
android:layout_height="24dp"
- android:layout_marginRight="16dp"
+ android:layout_marginEnd="16dp"
app:srcCompat="@drawable/ic_expand_more"
tools:ignore="ContentDescription,RtlHardcoded" />
@@ -67,9 +67,9 @@
@@ -50,11 +52,15 @@
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:text="@string/contribution_title"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:textAppearance="@android:style/TextAppearance.Medium" />
@@ -109,12 +129,16 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:text="@string/privacy_policy_title"
android:textAppearance="@android:style/TextAppearance.Medium" />
diff --git a/app/src/main/res/layout/fragment_feed.xml b/app/src/main/res/layout/fragment_feed.xml
index ebe76af0c2d..06c7119cb7a 100644
--- a/app/src/main/res/layout/fragment_feed.xml
+++ b/app/src/main/res/layout/fragment_feed.xml
@@ -64,9 +64,9 @@
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@+id/refresh_info_container"
- android:layout_marginLeft="8dp"
+ android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
- android:layout_marginRight="8dp"
+ android:layout_marginEnd="8dp"
android:background="?attr/separator_color" />
diff --git a/app/src/main/res/layout/fragment_instance_list.xml b/app/src/main/res/layout/fragment_instance_list.xml
index aaf56fcc1ba..df17c8ed83b 100644
--- a/app/src/main/res/layout/fragment_instance_list.xml
+++ b/app/src/main/res/layout/fragment_instance_list.xml
@@ -37,10 +37,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginEnd="16dp"
- android:layout_marginRight="16dp"
android:layout_marginBottom="16dp"
android:clickable="true"
android:focusable="true"
diff --git a/app/src/main/res/layout/fragment_licenses.xml b/app/src/main/res/layout/fragment_licenses.xml
index c46d888ba75..9e609df2ea0 100644
--- a/app/src/main/res/layout/fragment_licenses.xml
+++ b/app/src/main/res/layout/fragment_licenses.xml
@@ -14,8 +14,8 @@
diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml
index ef25f8a898c..17b1cf34732 100644
--- a/app/src/main/res/layout/fragment_main.xml
+++ b/app/src/main/res/layout/fragment_main.xml
@@ -11,6 +11,7 @@
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:background="?attr/colorPrimary"
+ android:layoutDirection="ltr"
app:tabRippleColor="@color/white"
app:tabIconTint="@color/white"
app:tabIndicatorColor="@color/white"
diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml
index 15f45fd1a0d..1c02b369cc6 100644
--- a/app/src/main/res/layout/fragment_search.xml
+++ b/app/src/main/res/layout/fragment_search.xml
@@ -30,8 +30,8 @@
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_below="@id/search_meta_info_text_view"
- android:layout_marginLeft="8dp"
- android:layout_marginRight="8dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:background="?attr/separator_color" />
@@ -243,7 +243,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_toStartOf="@id/details_panel"
- android:layout_toLeftOf="@id/details_panel"
android:background="?attr/selectableItemBackground"
android:gravity="center_vertical"
android:orientation="horizontal"
@@ -264,7 +263,7 @@
android:id="@+id/detail_sub_channel_thumbnail_view"
android:layout_width="@dimen/video_item_detail_sub_channel_image_size"
android:layout_height="@dimen/video_item_detail_sub_channel_image_size"
- android:layout_gravity="bottom|right"
+ android:layout_gravity="bottom|end"
android:contentDescription="@string/detail_sub_channel_thumbnail_view_description"
android:src="@drawable/buddy"
android:visibility="gone"
@@ -276,7 +275,7 @@
@@ -316,12 +315,12 @@
android:id="@+id/detail_uploader_subscribe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="center_vertical|right"
- android:layout_marginRight="12dp"
+ android:layout_gravity="center_vertical|end"
+ android:layout_marginEnd="12dp"
android:text="@string/rss_button_title"
android:textSize="12sp"
android:theme="@style/RedButton"
- app:drawableLeftCompat="@drawable/ic_rss_feed"
+ app:drawableStartCompat="@drawable/ic_rss_feed"
tools:ignore="RtlHardcoded"
android:visibility="gone"/>-->
@@ -332,9 +331,8 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
- android:paddingLeft="6dp"
- android:paddingRight="6dp">
+ android:paddingStart="6dp"
+ android:paddingEnd="6dp">
@@ -387,8 +385,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/detail_view_count_view"
- android:layout_marginLeft="@dimen/video_item_detail_like_margin"
- android:layout_toRightOf="@id/detail_thumbs_down_img_view"
+ android:layout_marginStart="@dimen/video_item_detail_like_margin"
+ android:layout_toEndOf="@id/detail_thumbs_down_img_view"
android:gravity="center_vertical"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -401,8 +399,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/detail_view_count_view"
- android:layout_marginLeft="12dp"
- android:layout_toRightOf="@id/detail_thumbs_down_img_view"
+ android:layout_marginStart="12dp"
+ android:layout_toEndOf="@id/detail_thumbs_down_img_view"
android:gravity="center_vertical"
android:text="@string/disabled"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -569,8 +567,8 @@
android:id="@+id/detail_meta_info_separator"
android:layout_width="match_parent"
android:layout_height="1px"
- android:layout_marginLeft="8dp"
- android:layout_marginRight="8dp"
+ android:layout_marginStart="8dp"
+ android:layout_marginEnd="8dp"
android:background="?attr/separator_color" />
@@ -602,6 +600,7 @@
@@ -680,8 +679,8 @@
android:layout_height="60dp"
android:layout_alignParentEnd="true"
android:gravity="center_vertical"
- android:paddingLeft="@dimen/video_item_search_padding"
- android:paddingRight="@dimen/video_item_search_padding"
+ android:paddingStart="@dimen/video_item_search_padding"
+ android:paddingEnd="@dimen/video_item_search_padding"
android:theme="@style/ContrastTintTheme"
tools:ignore="RtlHardcoded">
diff --git a/app/src/main/res/layout/header_with_menu_item.xml b/app/src/main/res/layout/header_with_menu_item.xml
index fcf888ed53c..ddfa796ad6b 100644
--- a/app/src/main/res/layout/header_with_menu_item.xml
+++ b/app/src/main/res/layout/header_with_menu_item.xml
@@ -3,9 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingLeft="16dp"
+ android:paddingStart="16dp"
android:paddingTop="12dp"
- android:paddingRight="16dp"
+ android:paddingEnd="16dp"
android:paddingBottom="12dp">
@@ -32,10 +32,10 @@
android:id="@+id/instanceName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="10dp"
+ android:layout_marginStart="10dp"
android:layout_marginTop="6dp"
- android:layout_toLeftOf="@id/selectInstanceRB"
- android:layout_toRightOf="@+id/instanceIcon"
+ android:layout_toStartOf="@id/selectInstanceRB"
+ android:layout_toEndOf="@+id/instanceIcon"
android:ellipsize="marquee"
android:singleLine="true"
android:textAppearance="?textAppearanceListItem"
@@ -47,10 +47,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/instanceName"
- android:layout_marginLeft="10dp"
+ android:layout_marginStart="10dp"
android:layout_marginBottom="6dp"
- android:layout_toLeftOf="@id/selectInstanceRB"
- android:layout_toRightOf="@id/instanceIcon"
+ android:layout_toStartOf="@id/selectInstanceRB"
+ android:layout_toEndOf="@id/instanceIcon"
android:autoLink="web"
android:ellipsize="marquee"
android:singleLine="true"
@@ -63,17 +63,17 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
- android:layout_toLeftOf="@id/handle" />
+ android:layout_toStartOf="@id/handle" />
diff --git a/app/src/main/res/layout/item_search_suggestion.xml b/app/src/main/res/layout/item_search_suggestion.xml
index 4b1025fea7a..9cced5acfdf 100644
--- a/app/src/main/res/layout/item_search_suggestion.xml
+++ b/app/src/main/res/layout/item_search_suggestion.xml
@@ -12,10 +12,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_toStartOf="@id/suggestion_insert"
- android:layout_toLeftOf="@id/suggestion_insert"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
@@ -27,8 +25,8 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_vertical"
- android:layout_marginLeft="16dp"
- android:layout_marginRight="16dp"
+ android:layout_marginStart="16dp"
+ android:layout_marginEnd="16dp"
tools:ignore="ContentDescription,RtlHardcoded"
tools:src="@drawable/ic_history" />
@@ -50,14 +48,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
- android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:background="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
android:focusable="true"
- android:paddingLeft="16dp"
+ android:paddingStart="16dp"
android:paddingTop="10dp"
- android:paddingRight="16dp"
+ android:paddingEnd="16dp"
android:paddingBottom="8dp">
+ android:paddingStart="@dimen/activity_horizontal_margin"
+ android:paddingEnd="@dimen/activity_horizontal_margin">
@@ -62,7 +64,7 @@
android:id="@+id/itemThumbnailView"
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
- android:layout_marginRight="@dimen/video_item_search_image_right_margin"
+ android:layout_marginEnd="@dimen/video_item_search_image_right_margin"
android:src="@drawable/buddy"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/itemTitleView"
diff --git a/app/src/main/res/layout/list_channel_mini_item.xml b/app/src/main/res/layout/list_channel_mini_item.xml
index 650685d509c..0ac564fd19c 100644
--- a/app/src/main/res/layout/list_channel_mini_item.xml
+++ b/app/src/main/res/layout/list_channel_mini_item.xml
@@ -14,7 +14,7 @@
android:layout_width="48dp"
android:layout_height="42dp"
android:layout_centerVertical="true"
- android:layout_marginRight="12dp"
+ android:layout_marginEnd="12dp"
android:src="@drawable/buddy_channel_item"
tools:ignore="RtlHardcoded" />
@@ -25,7 +25,7 @@
android:layout_alignParentTop="true"
android:layout_marginTop="3dp"
android:layout_marginBottom="2dp"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:layout_toEndOf="@+id/itemThumbnailView"
android:ellipsize="end"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -38,7 +38,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/itemTitleView"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
+ android:layout_toEndOf="@+id/itemThumbnailView"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_upload_date_text_size"
diff --git a/app/src/main/res/layout/list_choose_tabs.xml b/app/src/main/res/layout/list_choose_tabs.xml
index e6cebda118e..fa57fd57c21 100644
--- a/app/src/main/res/layout/list_choose_tabs.xml
+++ b/app/src/main/res/layout/list_choose_tabs.xml
@@ -4,9 +4,9 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="5dp"
+ android:layout_marginStart="5dp"
android:layout_marginTop="3dp"
- android:layout_marginRight="5dp"
+ android:layout_marginEnd="5dp"
android:layout_marginBottom="3dp"
android:focusable="true"
android:minHeight="?listPreferredItemHeightSmall"
@@ -23,9 +23,9 @@
android:id="@+id/tabIcon"
android:layout_width="24dp"
android:layout_height="24dp"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:layout_centerVertical="true"
- android:layout_marginLeft="16dp"
+ android:layout_marginStart="16dp"
tools:ignore="ContentDescription,RtlHardcoded"
tools:src="@drawable/ic_kiosk_hot" />
@@ -34,11 +34,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
- android:layout_marginLeft="16dp"
+ android:layout_marginStart="16dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
- android:layout_toLeftOf="@+id/handle"
- android:layout_toRightOf="@+id/tabIcon"
+ android:layout_toStartOf="@+id/handle"
+ android:layout_toEndOf="@+id/tabIcon"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="?textAppearanceListItem"
@@ -49,11 +49,11 @@
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
- android:paddingLeft="16dp"
+ android:paddingStart="16dp"
android:paddingTop="12dp"
- android:paddingRight="16dp"
+ android:paddingEnd="16dp"
android:paddingBottom="12dp"
app:srcCompat="@drawable/ic_drag_handle"
tools:ignore="ContentDescription,RtlHardcoded" />
diff --git a/app/src/main/res/layout/list_choose_tabs_dialog.xml b/app/src/main/res/layout/list_choose_tabs_dialog.xml
index 2751371622e..a4c7bf3407f 100644
--- a/app/src/main/res/layout/list_choose_tabs_dialog.xml
+++ b/app/src/main/res/layout/list_choose_tabs_dialog.xml
@@ -10,9 +10,9 @@
android:id="@+id/tabIcon"
android:layout_width="24dp"
android:layout_height="24dp"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:layout_centerVertical="true"
- android:layout_marginLeft="?dialogPreferredPadding"
+ android:layout_marginStart="?dialogPreferredPadding"
tools:ignore="ContentDescription,RtlHardcoded"
tools:src="@drawable/ic_kiosk_hot" />
@@ -21,9 +21,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
- android:layout_marginLeft="?dialogPreferredPadding"
- android:layout_marginRight="?dialogPreferredPadding"
- android:layout_toRightOf="@+id/tabIcon"
+ android:layout_marginStart="?dialogPreferredPadding"
+ android:layout_marginEnd="?dialogPreferredPadding"
+ android:layout_toEndOf="@+id/tabIcon"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="?textAppearanceListItem"
diff --git a/app/src/main/res/layout/list_comments_item.xml b/app/src/main/res/layout/list_comments_item.xml
index 81f27aaca32..7bccfc17011 100644
--- a/app/src/main/res/layout/list_comments_item.xml
+++ b/app/src/main/res/layout/list_comments_item.xml
@@ -15,9 +15,8 @@
android:layout_width="48dp"
android:layout_height="42dp"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
- android:layout_marginRight="@dimen/video_item_search_image_right_margin"
+ android:layout_marginEnd="@dimen/video_item_search_image_right_margin"
android:focusable="false"
android:src="@drawable/buddy"
tools:ignore="RtlHardcoded" />
@@ -27,7 +26,7 @@
android:layout_width="@dimen/video_item_detail_pinned_image_width"
android:layout_height="@dimen/video_item_detail_pinned_image_height"
android:layout_alignParentTop="true"
- android:layout_marginRight="@dimen/video_item_detail_pinned_right_margin"
+ android:layout_marginEnd="@dimen/video_item_detail_pinned_right_margin"
android:layout_toEndOf="@+id/itemThumbnailView"
android:contentDescription="@string/detail_pinned_comment_view_description"
android:visibility="gone"
@@ -54,7 +53,6 @@
android:layout_below="@id/itemTitleView"
android:layout_marginBottom="@dimen/channel_item_description_to_details_margin"
android:layout_toEndOf="@+id/itemThumbnailView"
- android:layout_toRightOf="@+id/itemThumbnailView"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="@dimen/comment_item_content_text_size"
tools:text="Comment Content, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blandit" />
@@ -65,7 +63,7 @@
android:layout_width="@dimen/video_item_detail_like_image_width"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:layout_toEndOf="@+id/itemThumbnailView"
android:contentDescription="@string/detail_likes_img_view_description"
app:srcCompat="@drawable/ic_thumb_up" />
@@ -74,8 +72,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="@dimen/video_item_detail_like_margin"
- android:layout_toRightOf="@id/detail_thumbs_up_img_view"
+ android:layout_marginStart="@dimen/video_item_detail_like_margin"
+ android:layout_toEndOf="@id/detail_thumbs_up_img_view"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="@dimen/video_item_detail_likes_text_size"
@@ -87,8 +85,8 @@
android:layout_width="@dimen/video_item_detail_heart_image_size"
android:layout_height="@dimen/video_item_detail_heart_image_size"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="@dimen/video_item_detail_heart_margin"
- android:layout_toRightOf="@+id/detail_thumbs_up_count_view"
+ android:layout_marginStart="@dimen/video_item_detail_heart_margin"
+ android:layout_toEndOf="@+id/detail_thumbs_up_count_view"
android:contentDescription="@string/detail_heart_img_view_description"
android:visibility="gone"
tools:visibility="visible"
@@ -102,8 +100,8 @@
android:layout_width="@dimen/video_item_detail_like_image_width"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="12dp"
- android:layout_toRightOf="@id/detail_thumbs_up_count_view"
+ android:layout_marginStart="12dp"
+ android:layout_toEndOf="@id/detail_thumbs_up_count_view"
android:contentDescription="@string/detail_dislikes_img_view_description"
app:srcCompat="?attr/thumbs_down"
tools:ignore="RtlHardcoded" />
@@ -113,8 +111,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="@dimen/video_item_detail_like_margin"
- android:layout_toRightOf="@id/detail_thumbs_down_img_view"
+ android:layout_marginStart="@dimen/video_item_detail_like_margin"
+ android:layout_toEndOf="@id/detail_thumbs_down_img_view"
android:gravity="center_vertical"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -127,8 +125,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="12dp"
- android:layout_toRightOf="@id/detail_heart_image_view"
+ android:layout_marginStart="12dp"
+ android:layout_toEndOf="@id/detail_heart_image_view"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_upload_date_text_size"
diff --git a/app/src/main/res/layout/list_comments_mini_item.xml b/app/src/main/res/layout/list_comments_mini_item.xml
index 604854a39c7..7a55f0b3ad8 100644
--- a/app/src/main/res/layout/list_comments_mini_item.xml
+++ b/app/src/main/res/layout/list_comments_mini_item.xml
@@ -15,7 +15,7 @@
android:layout_width="48dp"
android:layout_height="42dp"
android:layout_centerVertical="true"
- android:layout_marginRight="12dp"
+ android:layout_marginEnd="12dp"
android:src="@drawable/buddy_channel_item"
tools:ignore="RtlHardcoded" />
@@ -25,7 +25,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/channel_item_description_to_details_margin"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:layout_toEndOf="@+id/itemThumbnailView"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/comment_item_content_text_size"
tools:text="Channel description, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blanditLorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tristique vitae sem vitae blandit" />
@@ -35,7 +35,7 @@
android:layout_width="@dimen/video_item_detail_like_image_width"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:layout_toEndOf="@+id/itemThumbnailView"
android:contentDescription="@string/detail_likes_img_view_description"
app:srcCompat="@drawable/ic_thumb_up" />
@@ -44,8 +44,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="@dimen/video_item_detail_like_margin"
- android:layout_toRightOf="@id/detail_thumbs_up_img_view"
+ android:layout_marginStart="@dimen/video_item_detail_like_margin"
+ android:layout_toEndOf="@id/detail_thumbs_up_img_view"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="@dimen/video_item_detail_likes_text_size"
@@ -59,8 +59,8 @@
android:layout_width="@dimen/video_item_detail_like_image_width"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="12dp"
- android:layout_toRightOf="@id/detail_thumbs_up_count_view"
+ android:layout_marginStart="12dp"
+ android:layout_toEndOf="@id/detail_thumbs_up_count_view"
android:contentDescription="@string/detail_dislikes_img_view_description"
app:srcCompat="?attr/thumbs_down"
tools:ignore="RtlHardcoded" />
@@ -70,8 +70,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/video_item_detail_like_image_height"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="@dimen/video_item_detail_like_margin"
- android:layout_toRightOf="@id/detail_thumbs_down_img_view"
+ android:layout_marginStart="@dimen/video_item_detail_like_margin"
+ android:layout_toEndOf="@id/detail_thumbs_down_img_view"
android:gravity="center_vertical"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceMedium"
@@ -84,8 +84,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/itemCommentContentView"
- android:layout_marginLeft="12dp"
- android:layout_toRightOf="@id/detail_thumbs_up_count_view"
+ android:layout_marginStart="12dp"
+ android:layout_toEndOf="@id/detail_thumbs_up_count_view"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_upload_date_text_size"
diff --git a/app/src/main/res/layout/list_playlist_grid_item.xml b/app/src/main/res/layout/list_playlist_grid_item.xml
index 270abbde8bb..1b6f711b207 100644
--- a/app/src/main/res/layout/list_playlist_grid_item.xml
+++ b/app/src/main/res/layout/list_playlist_grid_item.xml
@@ -16,7 +16,7 @@
android:layout_height="@dimen/video_item_grid_thumbnail_image_height"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
- android:layout_marginRight="@dimen/video_item_search_image_right_margin"
+ android:layout_marginEnd="@dimen/video_item_search_image_right_margin"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail_playlist"
tools:ignore="RtlHardcoded" />
@@ -26,7 +26,7 @@
android:layout_width="@dimen/playlist_item_thumbnail_stream_count_width"
android:layout_height="match_parent"
android:layout_alignTop="@id/itemThumbnailView"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:layout_alignBottom="@id/itemThumbnailView"
android:background="@color/playlist_stream_count_background_color"
android:gravity="center"
@@ -45,8 +45,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/itemThumbnailView"
- android:layout_alignLeft="@id/itemThumbnailView"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignStart="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:layout_marginTop="2dp"
android:ellipsize="end"
android:maxLines="2"
@@ -60,8 +60,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/itemTitleView"
- android:layout_alignLeft="@id/itemThumbnailView"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignStart="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_uploader_text_size"
diff --git a/app/src/main/res/layout/list_playlist_item.xml b/app/src/main/res/layout/list_playlist_item.xml
index 84cce839511..6c1fab87f18 100644
--- a/app/src/main/res/layout/list_playlist_item.xml
+++ b/app/src/main/res/layout/list_playlist_item.xml
@@ -15,9 +15,8 @@
android:layout_width="@dimen/video_item_search_thumbnail_image_width"
android:layout_height="@dimen/video_item_search_thumbnail_image_height"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
- android:layout_marginRight="@dimen/video_item_search_image_right_margin"
+ android:layout_marginEnd="@dimen/video_item_search_image_right_margin"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail_playlist"
tools:ignore="RtlHardcoded" />
@@ -27,7 +26,7 @@
android:layout_width="@dimen/playlist_item_thumbnail_stream_count_width"
android:layout_height="match_parent"
android:layout_alignTop="@id/itemThumbnailView"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:layout_alignBottom="@id/itemThumbnailView"
android:background="@color/playlist_stream_count_background_color"
android:gravity="center"
@@ -46,7 +45,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:layout_toEndOf="@+id/itemThumbnailView"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -59,7 +60,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/itemTitleView"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
+ android:layout_toEndOf="@+id/itemThumbnailView"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_uploader_text_size"
diff --git a/app/src/main/res/layout/list_playlist_mini_item.xml b/app/src/main/res/layout/list_playlist_mini_item.xml
index fe40449c63b..1b164cd8d95 100644
--- a/app/src/main/res/layout/list_playlist_mini_item.xml
+++ b/app/src/main/res/layout/list_playlist_mini_item.xml
@@ -15,9 +15,8 @@
android:layout_width="90dp"
android:layout_height="50dp"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
- android:layout_marginRight="@dimen/video_item_search_image_right_margin"
+ android:layout_marginEnd="@dimen/video_item_search_image_right_margin"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail_playlist"
tools:ignore="RtlHardcoded" />
@@ -27,7 +26,7 @@
android:layout_width="45dp"
android:layout_height="match_parent"
android:layout_alignTop="@id/itemThumbnailView"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:layout_alignBottom="@id/itemThumbnailView"
android:background="@color/playlist_stream_count_background_color"
android:gravity="center"
@@ -46,7 +45,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:layout_toEndOf="@+id/itemThumbnailView"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -58,8 +59,10 @@
android:id="@+id/itemUploaderView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:layout_below="@+id/itemTitleView"
- android:layout_toRightOf="@+id/itemThumbnailView"
+ android:layout_toEndOf="@+id/itemThumbnailView"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_uploader_text_size"
diff --git a/app/src/main/res/layout/list_radio_icon_item.xml b/app/src/main/res/layout/list_radio_icon_item.xml
index 46e7419ad00..ddfb5a9a6e5 100644
--- a/app/src/main/res/layout/list_radio_icon_item.xml
+++ b/app/src/main/res/layout/list_radio_icon_item.xml
@@ -13,5 +13,5 @@
android:paddingStart="?attr/listPreferredItemPaddingLeft"
android:paddingEnd="?attr/listPreferredItemPaddingRight"
android:textColor="?attr/textColorAlertDialogListItem"
- tools:drawableLeft="@drawable/ic_play_arrow"
+ tools:drawableStart="@drawable/ic_play_arrow"
tools:text="Lorem ipsum dolor sit amet" />
diff --git a/app/src/main/res/layout/list_stream_grid_item.xml b/app/src/main/res/layout/list_stream_grid_item.xml
index e770e661468..e12f8ed7cd6 100644
--- a/app/src/main/res/layout/list_stream_grid_item.xml
+++ b/app/src/main/res/layout/list_stream_grid_item.xml
@@ -27,9 +27,9 @@
android:layout_marginEnd="@dimen/video_item_search_duration_margin"
android:layout_marginBottom="@dimen/video_item_search_duration_margin"
android:background="@color/duration_background_color"
- android:paddingLeft="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingStart="@dimen/video_item_search_duration_horizontal_padding"
android:paddingTop="@dimen/video_item_search_duration_vertical_padding"
- android:paddingRight="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingEnd="@dimen/video_item_search_duration_horizontal_padding"
android:paddingBottom="@dimen/video_item_search_duration_vertical_padding"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
diff --git a/app/src/main/res/layout/list_stream_item.xml b/app/src/main/res/layout/list_stream_item.xml
index 5806ed96efa..8b9959c04fd 100644
--- a/app/src/main/res/layout/list_stream_item.xml
+++ b/app/src/main/res/layout/list_stream_item.xml
@@ -34,7 +34,7 @@
android:textColor="@color/duration_text_color"
android:textSize="@dimen/video_item_search_duration_text_size"
app:layout_constraintBottom_toBottomOf="@id/itemThumbnailView"
- app:layout_constraintRight_toRightOf="@id/itemThumbnailView"
+ app:layout_constraintEnd_toEndOf="@id/itemThumbnailView"
tools:text="1:09:10" />
@@ -25,14 +24,14 @@
android:id="@+id/itemDurationView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:layout_alignBottom="@id/itemThumbnailView"
- android:layout_marginRight="@dimen/video_item_search_duration_margin"
+ android:layout_marginEnd="@dimen/video_item_search_duration_margin"
android:layout_marginBottom="@dimen/video_item_search_duration_margin"
android:background="@color/duration_background_color"
- android:paddingLeft="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingStart="@dimen/video_item_search_duration_horizontal_padding"
android:paddingTop="@dimen/video_item_search_duration_vertical_padding"
- android:paddingRight="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingEnd="@dimen/video_item_search_duration_horizontal_padding"
android:paddingBottom="@dimen/video_item_search_duration_vertical_padding"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceSmall"
@@ -48,8 +47,9 @@
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/itemThumbnailView"
- android:layout_toRightOf="@+id/itemThumbnailView"
android:ellipsize="end"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:maxLines="2"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="@dimen/video_item_search_title_text_size"
@@ -61,8 +61,9 @@
android:layout_height="wrap_content"
android:layout_below="@+id/itemVideoTitleView"
android:layout_toEndOf="@+id/itemThumbnailView"
- android:layout_toRightOf="@+id/itemThumbnailView"
android:lines="1"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_uploader_text_size"
tools:text="Uploader" />
diff --git a/app/src/main/res/layout/list_stream_playlist_grid_item.xml b/app/src/main/res/layout/list_stream_playlist_grid_item.xml
index ac57ae378ef..09b6e72fd60 100644
--- a/app/src/main/res/layout/list_stream_playlist_grid_item.xml
+++ b/app/src/main/res/layout/list_stream_playlist_grid_item.xml
@@ -16,7 +16,7 @@
android:layout_height="@dimen/video_item_grid_thumbnail_image_height"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
- android:layout_marginRight="@dimen/video_item_search_image_right_margin"
+ android:layout_marginEnd="@dimen/video_item_search_image_right_margin"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
tools:ignore="RtlHardcoded" />
@@ -25,14 +25,14 @@
android:id="@+id/itemDurationView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:layout_alignBottom="@id/itemThumbnailView"
- android:layout_marginRight="@dimen/video_item_search_duration_margin"
+ android:layout_marginEnd="@dimen/video_item_search_duration_margin"
android:layout_marginBottom="@dimen/video_item_search_duration_margin"
android:background="@color/duration_background_color"
- android:paddingLeft="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingStart="@dimen/video_item_search_duration_horizontal_padding"
android:paddingTop="@dimen/video_item_search_duration_vertical_padding"
- android:paddingRight="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingEnd="@dimen/video_item_search_duration_horizontal_padding"
android:paddingBottom="@dimen/video_item_search_duration_vertical_padding"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/duration_text_color"
@@ -44,10 +44,10 @@
android:id="@+id/itemHandle"
android:layout_width="wrap_content"
android:layout_height="55dp"
- android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:contentDescription="@string/detail_drag_description"
- android:paddingLeft="@dimen/video_item_search_image_right_margin"
+ android:paddingStart="@dimen/video_item_search_image_right_margin"
android:scaleType="center"
app:srcCompat="@drawable/ic_drag_handle"
tools:ignore="RtlHardcoded,RtlSymmetry" />
@@ -58,9 +58,7 @@
android:layout_height="wrap_content"
android:layout_below="@id/itemThumbnailView"
android:layout_alignStart="@id/itemThumbnailView"
- android:layout_alignLeft="@id/itemThumbnailView"
android:layout_alignEnd="@id/itemThumbnailView"
- android:layout_alignRight="@id/itemThumbnailView"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -73,9 +71,7 @@
android:layout_height="wrap_content"
android:layout_below="@+id/itemVideoTitleView"
android:layout_alignStart="@id/itemThumbnailView"
- android:layout_alignLeft="@id/itemThumbnailView"
android:layout_alignEnd="@id/itemThumbnailView"
- android:layout_alignRight="@id/itemThumbnailView"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/video_item_search_uploader_text_size"
diff --git a/app/src/main/res/layout/list_stream_playlist_item.xml b/app/src/main/res/layout/list_stream_playlist_item.xml
index 9ac1045e20c..47145eb43ed 100644
--- a/app/src/main/res/layout/list_stream_playlist_item.xml
+++ b/app/src/main/res/layout/list_stream_playlist_item.xml
@@ -15,9 +15,8 @@
android:layout_width="98dp"
android:layout_height="55dp"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
- android:layout_marginRight="@dimen/video_item_search_image_right_margin"
+ android:layout_marginEnd="@dimen/video_item_search_image_right_margin"
android:scaleType="centerCrop"
android:src="@drawable/dummy_thumbnail"
tools:ignore="RtlHardcoded" />
@@ -26,14 +25,14 @@
android:id="@+id/itemDurationView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignRight="@id/itemThumbnailView"
+ android:layout_alignEnd="@id/itemThumbnailView"
android:layout_alignBottom="@id/itemThumbnailView"
- android:layout_marginRight="@dimen/video_item_search_duration_margin"
+ android:layout_marginEnd="@dimen/video_item_search_duration_margin"
android:layout_marginBottom="@dimen/video_item_search_duration_margin"
android:background="@color/duration_background_color"
- android:paddingLeft="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingStart="@dimen/video_item_search_duration_horizontal_padding"
android:paddingTop="@dimen/video_item_search_duration_vertical_padding"
- android:paddingRight="@dimen/video_item_search_duration_horizontal_padding"
+ android:paddingEnd="@dimen/video_item_search_duration_horizontal_padding"
android:paddingBottom="@dimen/video_item_search_duration_vertical_padding"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="@color/duration_text_color"
@@ -45,10 +44,10 @@
android:id="@+id/itemHandle"
android:layout_width="wrap_content"
android:layout_height="55dp"
- android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
android:layout_gravity="center_vertical"
android:contentDescription="@string/detail_drag_description"
- android:paddingLeft="@dimen/video_item_search_image_right_margin"
+ android:paddingStart="@dimen/video_item_search_image_right_margin"
android:scaleType="center"
app:srcCompat="@drawable/ic_drag_handle"
tools:ignore="RtlHardcoded,RtlSymmetry" />
@@ -59,9 +58,7 @@
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toStartOf="@id/itemHandle"
- android:layout_toLeftOf="@id/itemHandle"
android:layout_toEndOf="@+id/itemThumbnailView"
- android:layout_toRightOf="@+id/itemThumbnailView"
android:ellipsize="end"
android:maxLines="2"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -74,9 +71,7 @@
android:layout_height="wrap_content"
android:layout_below="@+id/itemVideoTitleView"
android:layout_toStartOf="@id/itemHandle"
- android:layout_toLeftOf="@id/itemHandle"
android:layout_toEndOf="@+id/itemThumbnailView"
- android:layout_toRightOf="@+id/itemThumbnailView"
android:ellipsize="end"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceSmall"
diff --git a/app/src/main/res/layout/local_playlist_header.xml b/app/src/main/res/layout/local_playlist_header.xml
index 389b93310be..bebfa2f4d3c 100644
--- a/app/src/main/res/layout/local_playlist_header.xml
+++ b/app/src/main/res/layout/local_playlist_header.xml
@@ -26,9 +26,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/playlist_title_view"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:ellipsize="end"
- android:gravity="right|center_vertical"
+ android:gravity="end|center_vertical"
android:maxLines="1"
android:paddingHorizontal="@dimen/video_item_search_padding"
android:textSize="@dimen/playlist_detail_subtext_size"
diff --git a/app/src/main/res/layout/mission_item.xml b/app/src/main/res/layout/mission_item.xml
index 445776beab0..22521300e0e 100644
--- a/app/src/main/res/layout/mission_item.xml
+++ b/app/src/main/res/layout/mission_item.xml
@@ -21,9 +21,9 @@
android:id="@+id/item_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:layout_centerVertical="true"
- android:layout_marginLeft="6dp"
+ android:layout_marginStart="6dp"
android:singleLine="true"
android:text="0%"
android:textColor="@color/white"
@@ -34,9 +34,9 @@
style="?attr/buttonBarButtonStyle"
android:layout_width="49dp"
android:layout_height="49dp"
- android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
- android:layout_marginRight="1dp"
+ android:layout_marginEnd="1dp"
android:contentDescription="TODO"
android:scaleType="center"
app:srcCompat="@drawable/ic_more_vert"
diff --git a/app/src/main/res/layout/mission_item_linear.xml b/app/src/main/res/layout/mission_item_linear.xml
index d7235fcaf73..fd2de5c0a16 100644
--- a/app/src/main/res/layout/mission_item_linear.xml
+++ b/app/src/main/res/layout/mission_item_linear.xml
@@ -25,8 +25,8 @@
android:id="@+id/item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_toLeftOf="@+id/item_more"
- android:layout_toRightOf="@id/item_icon"
+ android:layout_toStartOf="@+id/item_more"
+ android:layout_toEndOf="@id/item_icon"
android:ellipsize="end"
android:padding="6dp"
android:text="XXX.xx"
@@ -39,7 +39,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/item_name"
- android:layout_toRightOf="@id/item_icon"
+ android:layout_toEndOf="@id/item_icon"
android:padding="6dp"
android:singleLine="true"
android:text="100.00MB"
@@ -51,10 +51,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/item_name"
- android:layout_marginLeft="6dp"
- android:layout_marginRight="5dp"
- android:layout_toLeftOf="@+id/item_more"
- android:layout_toRightOf="@id/item_size"
+ android:layout_marginStart="6dp"
+ android:layout_marginEnd="5dp"
+ android:layout_toStartOf="@+id/item_more"
+ android:layout_toEndOf="@id/item_size"
android:padding="6dp"
android:singleLine="true"
android:text="0%"
@@ -67,9 +67,9 @@
style="?attr/buttonBarButtonStyle"
android:layout_width="49dp"
android:layout_height="49dp"
- android:layout_alignParentRight="true"
+ android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
- android:layout_marginRight="4dp"
+ android:layout_marginEnd="4dp"
android:contentDescription="TODO"
android:scaleType="centerInside"
app:srcCompat="@drawable/ic_more_vert"
diff --git a/app/src/main/res/layout/missions_header.xml b/app/src/main/res/layout/missions_header.xml
index e7fddd12c45..b3515728c72 100644
--- a/app/src/main/res/layout/missions_header.xml
+++ b/app/src/main/res/layout/missions_header.xml
@@ -4,10 +4,8 @@
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginStart="8dp"
- android:layout_marginLeft="8dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
- android:layout_marginRight="8dp"
android:orientation="vertical">
+ android:orientation="horizontal"
+ android:layoutDirection="ltr">
+ android:paddingRight="@dimen/player_main_controls_padding"
+ android:layoutDirection="ltr">
+ android:weightSum="5.5"
+ android:layoutDirection="ltr">
@@ -82,7 +81,6 @@
android:text="@string/controls_popup_title"
android:textColor="?attr/colorAccent"
android:textSize="@dimen/channel_rss_title_size"
- app:drawableLeftCompat="@drawable/ic_picture_in_picture"
app:drawableStartCompat="@drawable/ic_picture_in_picture" />
diff --git a/app/src/main/res/layout/playlist_header.xml b/app/src/main/res/layout/playlist_header.xml
index 715f8ab82ef..11267ec5353 100644
--- a/app/src/main/res/layout/playlist_header.xml
+++ b/app/src/main/res/layout/playlist_header.xml
@@ -31,9 +31,8 @@
android:layout_width="wrap_content"
android:layout_height="@dimen/playlist_detail_uploader_layout_height"
android:layout_toStartOf="@+id/playlist_stream_count"
- android:layout_toLeftOf="@+id/playlist_stream_count"
android:background="?attr/selectableItemBackground"
- android:gravity="left|center_vertical"
+ android:gravity="start|center_vertical"
android:visibility="gone"
tools:ignore="RtlHardcoded"
tools:visibility="visible">
@@ -42,7 +41,7 @@
android:id="@+id/uploader_avatar_view"
android:layout_width="@dimen/playlist_detail_uploader_image_size"
android:layout_height="@dimen/playlist_detail_uploader_image_size"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:src="@drawable/buddy"
app:civ_border_color="#ffffff"
@@ -52,9 +51,9 @@
android:id="@+id/uploader_name"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:layout_toRightOf="@+id/uploader_avatar_view"
+ android:layout_toEndOf="@+id/uploader_avatar_view"
android:ellipsize="end"
- android:gravity="left|center_vertical"
+ android:gravity="start|center_vertical"
android:maxLines="1"
android:paddingHorizontal="6dp"
android:textSize="@dimen/playlist_detail_subtext_size"
@@ -68,10 +67,10 @@
android:layout_height="wrap_content"
android:layout_alignTop="@+id/uploader_layout"
android:layout_alignBottom="@+id/uploader_layout"
- android:layout_alignParentRight="true"
- android:layout_marginLeft="6dp"
+ android:layout_alignParentEnd="true"
+ android:layout_marginStart="6dp"
android:ellipsize="end"
- android:gravity="right|center_vertical"
+ android:gravity="end|center_vertical"
android:maxLines="1"
android:textSize="@dimen/playlist_detail_subtext_size"
tools:ignore="RtlHardcoded"
diff --git a/app/src/main/res/layout/select_channel_fragment.xml b/app/src/main/res/layout/select_channel_fragment.xml
index bd62aefea57..eeb64a33539 100644
--- a/app/src/main/res/layout/select_channel_fragment.xml
+++ b/app/src/main/res/layout/select_channel_fragment.xml
@@ -10,10 +10,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
- android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
- android:layout_marginRight="5dp"
android:layout_marginBottom="10dp"
android:text="@string/select_a_channel"
android:textAppearance="?android:attr/textAppearanceLarge" />
diff --git a/app/src/main/res/layout/select_channel_item.xml b/app/src/main/res/layout/select_channel_item.xml
index df28a36ec17..64b25dce85f 100644
--- a/app/src/main/res/layout/select_channel_item.xml
+++ b/app/src/main/res/layout/select_channel_item.xml
@@ -14,20 +14,20 @@
android:layout_width="48dp"
android:layout_height="42dp"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
- android:layout_marginRight="5dp"
+ android:layout_marginEnd="5dp"
android:src="@drawable/buddy"
tools:ignore="RtlHardcoded" />
diff --git a/app/src/main/res/layout/select_kiosk_item.xml b/app/src/main/res/layout/select_kiosk_item.xml
index 680767bba0c..68046980f54 100644
--- a/app/src/main/res/layout/select_kiosk_item.xml
+++ b/app/src/main/res/layout/select_kiosk_item.xml
@@ -15,9 +15,8 @@
android:layout_width="48dp"
android:layout_height="42dp"
android:layout_alignParentStart="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
- android:layout_marginRight="5dp"
+ android:layout_marginEnd="5dp"
android:contentDescription="TODO"
app:tint="@color/contrastColor"
tools:ignore="RtlHardcoded" />
@@ -26,10 +25,11 @@
android:id="@+id/itemTitleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:layout_centerVertical="true"
android:layout_marginBottom="@dimen/video_item_search_image_right_margin"
android:layout_toEndOf="@+id/itemThumbnailView"
- android:layout_toRightOf="@+id/itemThumbnailView"
android:ellipsize="end"
android:lines="1"
android:textAppearance="?android:attr/textAppearanceListItem"
diff --git a/app/src/main/res/layout/select_playlist_fragment.xml b/app/src/main/res/layout/select_playlist_fragment.xml
index 61d91bbbfa4..5a5c1855bb6 100644
--- a/app/src/main/res/layout/select_playlist_fragment.xml
+++ b/app/src/main/res/layout/select_playlist_fragment.xml
@@ -10,10 +10,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
- android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="5dp"
- android:layout_marginRight="5dp"
android:layout_marginBottom="10dp"
android:text="@string/select_a_playlist"
android:textAppearance="?android:attr/textAppearanceLarge" />
diff --git a/app/src/main/res/layout/settings_category_header_title.xml b/app/src/main/res/layout/settings_category_header_title.xml
index c7d6920b049..3b4a38ec41a 100644
--- a/app/src/main/res/layout/settings_category_header_title.xml
+++ b/app/src/main/res/layout/settings_category_header_title.xml
@@ -5,9 +5,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start|center_vertical"
- android:paddingLeft="16dp"
+ android:paddingStart="16dp"
android:paddingTop="16dp"
- android:paddingRight="16dp"
+ android:paddingEnd="16dp"
android:textColor="?android:attr/textColorPrimary"
android:textSize="14sp"
android:textStyle="bold"
diff --git a/app/src/main/res/layout/single_choice_dialog_view.xml b/app/src/main/res/layout/single_choice_dialog_view.xml
index 7275fadd06e..9867fb3bdac 100644
--- a/app/src/main/res/layout/single_choice_dialog_view.xml
+++ b/app/src/main/res/layout/single_choice_dialog_view.xml
@@ -3,4 +3,4 @@
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingTop="?attr/listPreferredItemPaddingLeft" />
+ android:paddingTop="?attr/listPreferredItemPaddingStart" />
diff --git a/app/src/main/res/layout/statistic_playlist_control.xml b/app/src/main/res/layout/statistic_playlist_control.xml
index 577e94e4b4e..366f5c26d10 100644
--- a/app/src/main/res/layout/statistic_playlist_control.xml
+++ b/app/src/main/res/layout/statistic_playlist_control.xml
@@ -18,10 +18,10 @@
android:id="@+id/sortButtonIcon"
android:layout_width="48dp"
android:layout_height="28dp"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:layout_centerVertical="true"
- android:layout_marginLeft="12dp"
- android:layout_marginRight="12dp"
+ android:layout_marginStart="12dp"
+ android:layout_marginEnd="12dp"
app:srcCompat="@drawable/ic_filter_list"
tools:ignore="ContentDescription,RtlHardcoded" />
@@ -29,8 +29,8 @@
android:id="@+id/sortButtonText"
android:layout_width="match_parent"
android:layout_height="50dp"
- android:layout_toRightOf="@id/sortButtonIcon"
- android:gravity="left|center"
+ android:layout_toEndOf="@id/sortButtonIcon"
+ android:gravity="start|center"
android:text="@string/title_most_played"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="15sp"
diff --git a/app/src/main/res/layout/stream_quality_item.xml b/app/src/main/res/layout/stream_quality_item.xml
index 073b0b2213e..9f220fbd639 100644
--- a/app/src/main/res/layout/stream_quality_item.xml
+++ b/app/src/main/res/layout/stream_quality_item.xml
@@ -9,9 +9,9 @@
android:id="@+id/wo_sound_icon"
android:layout_width="20dp"
android:layout_height="match_parent"
- android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true"
android:layout_centerVertical="true"
- android:layout_marginLeft="6dp"
+ android:layout_marginStart="6dp"
android:scaleType="fitCenter"
app:srcCompat="@drawable/ic_volume_off"
tools:ignore="ContentDescription,RtlHardcoded" />
@@ -21,12 +21,12 @@
android:layout_width="wrap_content"
android:layout_height="22dp"
android:layout_alignParentTop="true"
- android:layout_toRightOf="@+id/wo_sound_icon"
+ android:layout_toEndOf="@+id/wo_sound_icon"
android:ellipsize="end"
- android:gravity="left|bottom"
+ android:gravity="start|bottom"
android:maxLines="1"
- android:paddingLeft="12dp"
- android:paddingRight="18dp"
+ android:paddingStart="12dp"
+ android:paddingEnd="18dp"
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
android:textSize="12sp"
tools:ignore="RtlHardcoded"
@@ -37,12 +37,12 @@
android:layout_width="wrap_content"
android:layout_height="26dp"
android:layout_alignParentBottom="true"
- android:layout_toRightOf="@+id/wo_sound_icon"
+ android:layout_toEndOf="@+id/wo_sound_icon"
android:ellipsize="end"
- android:gravity="left|top"
+ android:gravity="start|top"
android:maxLines="1"
- android:paddingLeft="12dp"
- android:paddingRight="18dp"
+ android:paddingStart="12dp"
+ android:paddingEnd="18dp"
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
android:textSize="14sp"
tools:ignore="RtlHardcoded"
@@ -52,11 +52,11 @@
android:id="@+id/stream_size"
android:layout_width="wrap_content"
android:layout_height="48dp"
- android:layout_alignParentRight="true"
- android:gravity="right|center_vertical"
+ android:layout_alignParentEnd="true"
+ android:gravity="end|center_vertical"
android:maxLines="1"
- android:paddingLeft="8dp"
- android:paddingRight="8dp"
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp"
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
android:textSize="12sp"
android:visibility="gone"
diff --git a/app/src/main/res/layout/subscription_import_export_item.xml b/app/src/main/res/layout/subscription_import_export_item.xml
index 8aadf5d8c55..93534374977 100644
--- a/app/src/main/res/layout/subscription_import_export_item.xml
+++ b/app/src/main/res/layout/subscription_import_export_item.xml
@@ -22,10 +22,12 @@
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="@dimen/subscription_import_export_item_height"
- android:gravity="center_vertical"
+ android:gravity="start|center_vertical"
android:maxLines="1"
- android:paddingLeft="6dp"
- android:paddingRight="6dp"
+ android:paddingStart="6dp"
+ android:paddingEnd="6dp"
+ android:textAlignment="viewStart"
+ android:textDirection="anyRtl"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="13sp"
tools:text="@string/youtube" />
diff --git a/app/src/main/res/layout/toolbar_search_layout.xml b/app/src/main/res/layout/toolbar_search_layout.xml
index 4fa40f31369..c68d7c6f9ef 100644
--- a/app/src/main/res/layout/toolbar_search_layout.xml
+++ b/app/src/main/res/layout/toolbar_search_layout.xml
@@ -12,7 +12,7 @@
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:layout_marginTop="4dp"
- android:layout_marginRight="48dp"
+ android:layout_marginEnd="48dp"
android:layout_marginBottom="4dp"
android:background="@null"
android:focusable="true"
@@ -30,7 +30,7 @@
android:id="@+id/toolbar_search_clear"
android:layout_width="48dp"
android:layout_height="48dp"
- android:layout_gravity="right|center_vertical"
+ android:layout_gravity="end|center_vertical"
android:contentDescription="@string/clear"
android:focusable="true"
tools:ignore="RtlHardcoded">