diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb68289f..5d1998103 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/app.iml b/app/app.iml
index 243fbdbfa..cf9c27cba 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -36,13 +36,13 @@
-
+
-
+
@@ -71,8 +71,9 @@
-
-
+
+
+
@@ -88,12 +89,13 @@
-
+
-
-
+
-
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 98cea98df..5662b2efc 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,13 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 22
- buildToolsVersion "22.0.1"
+ compileSdkVersion 23
+ buildToolsVersion "23.0.1"
defaultConfig {
applicationId "org.schabi.newpipe"
- minSdkVersion 16
- targetSdkVersion 22
+ minSdkVersion 15
+ targetSdkVersion 23
versionCode 2
versionName "0.3.5"
}
@@ -21,8 +21,9 @@ android {
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
- compile 'com.android.support:appcompat-v7:22.2.1'
- compile 'com.android.support:support-v4:22.2.1'
+ compile 'com.android.support:appcompat-v7:23.0.1'
+ compile 'com.android.support:support-v4:23.0.1'
compile 'org.jsoup:jsoup:1.8.3'
compile 'org.mozilla:rhino:1.7.7'
+ compile 'com.android.support:design:23.0.1'
}
diff --git a/app/src/main/java/org/schabi/newpipe/PlayVideoActivity.java b/app/src/main/java/org/schabi/newpipe/PlayVideoActivity.java
index db7d09691..4ec9afbd6 100644
--- a/app/src/main/java/org/schabi/newpipe/PlayVideoActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/PlayVideoActivity.java
@@ -2,12 +2,16 @@ package org.schabi.newpipe;
import android.content.Intent;
import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
+import android.content.res.Resources;
import android.media.MediaPlayer;
import android.net.Uri;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Display;
import android.view.Menu;
@@ -17,8 +21,11 @@ import android.view.Surface;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.LinearLayout;
import android.widget.MediaController;
import android.widget.ProgressBar;
+import android.widget.SeekBar;
import android.widget.VideoView;
/**
@@ -50,6 +57,7 @@ public class PlayVideoActivity extends AppCompatActivity {
private static final String POSITION = "position";
private static final long HIDING_DELAY = 3000;
+ private static final long TAB_HIDING_DELAY = 100;
private String videoUrl = "";
@@ -61,6 +69,8 @@ public class PlayVideoActivity extends AppCompatActivity {
private View decorView;
private boolean uiIsHidden = false;
private static long lastUiShowTime = 0;
+ private boolean isLandscape = true;
+ private boolean hasSoftKeys = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -68,6 +78,9 @@ public class PlayVideoActivity extends AppCompatActivity {
setContentView(R.layout.activity_play_video);
+ isLandscape = checkIfLandscape();
+ hasSoftKeys = checkIfhasSoftKeys();
+
actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
Intent intent = getIntent();
@@ -91,6 +104,7 @@ public class PlayVideoActivity extends AppCompatActivity {
videoView.seekTo(position);
if (position == 0) {
videoView.start();
+ showUi();
} else {
videoView.pause();
}
@@ -113,16 +127,21 @@ public class PlayVideoActivity extends AppCompatActivity {
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
- if((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
- uiIsHidden = false;
+ if (visibility == View.VISIBLE && uiIsHidden) {
showUi();
- } else {
- uiIsHidden = true;
- hideUi();
}
}
});
- showUi();
+
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+ }
+
+ @Override
+ protected void onPostCreate(Bundle savedInstanceState) {
+ super.onPostCreate(savedInstanceState);
+
}
@Override
@@ -166,8 +185,16 @@ public class PlayVideoActivity extends AppCompatActivity {
}
@Override
- protected void onPostCreate(Bundle savedInstanceState) {
- super.onPostCreate(savedInstanceState);
+ public void onConfigurationChanged(Configuration config) {
+ super.onConfigurationChanged(config);
+
+ if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
+ isLandscape = true;
+ adjustMediaControllMetrics();
+ } else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
+ isLandscape = false;
+ adjustMediaControllMetrics();
+ }
}
@Override
@@ -187,15 +214,15 @@ public class PlayVideoActivity extends AppCompatActivity {
private void showUi() {
try {
uiIsHidden = false;
- mediaController.show();
+ mediaController.show(100000);
actionBar.show();
- //decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
- //| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
+ adjustMediaControllMetrics();
+ getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
- if ((System.currentTimeMillis() - lastUiShowTime) > HIDING_DELAY) {
+ if ((System.currentTimeMillis() - lastUiShowTime) >= HIDING_DELAY) {
hideUi();
}
}
@@ -210,8 +237,75 @@ public class PlayVideoActivity extends AppCompatActivity {
uiIsHidden = true;
actionBar.hide();
mediaController.hide();
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
- //decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
- //| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
+ decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_FULLSCREEN
+ | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
+ | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
+ getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+ WindowManager.LayoutParams.FLAG_FULLSCREEN);
+ }
+
+ private void adjustMediaControllMetrics() {
+ MediaController.LayoutParams mediaControllerLayout
+ = new MediaController.LayoutParams(MediaController.LayoutParams.MATCH_PARENT,
+ MediaController.LayoutParams.WRAP_CONTENT);
+
+ if(!hasSoftKeys) {
+ mediaControllerLayout.setMargins(20, 0, 20, 20);
+ } else {
+ int width = getNavigationBarWidth();
+ int height = getNavigationBarHeight();
+ mediaControllerLayout.setMargins(width + 20, 0, width + 20, height + 20);
+ }
+ mediaController.setLayoutParams(mediaControllerLayout);
+ }
+
+ private boolean checkIfhasSoftKeys(){
+ if(Build.VERSION.SDK_INT >= 17) {
+ return getNavigationBarHeight() != 0 || getNavigationBarWidth() != 0;
+ } else {
+ return true;
+ }
+ }
+
+ private int getNavigationBarHeight() {
+ if(Build.VERSION.SDK_INT >= 17) {
+ Display d = getWindowManager().getDefaultDisplay();
+
+ DisplayMetrics realDisplayMetrics = new DisplayMetrics();
+ d.getRealMetrics(realDisplayMetrics);
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ d.getMetrics(displayMetrics);
+
+ int realHeight = realDisplayMetrics.heightPixels;
+ int displayHeight = displayMetrics.heightPixels;
+ return (realHeight - displayHeight);
+ } else {
+ return 50;
+ }
+ }
+
+ private int getNavigationBarWidth() {
+ if(Build.VERSION.SDK_INT >= 17) {
+ Display d = getWindowManager().getDefaultDisplay();
+
+ DisplayMetrics realDisplayMetrics = new DisplayMetrics();
+ d.getRealMetrics(realDisplayMetrics);
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ d.getMetrics(displayMetrics);
+
+ int realWidth = realDisplayMetrics.widthPixels;
+ int displayWidth = displayMetrics.widthPixels;
+ return (realWidth - displayWidth);
+ } else {
+ return 50;
+ }
+ }
+
+ public boolean checkIfLandscape() {
+ DisplayMetrics displayMetrics = new DisplayMetrics();
+ getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
+ return displayMetrics.heightPixels < displayMetrics.widthPixels;
}
}
diff --git a/app/src/main/java/org/schabi/newpipe/VideoInfoItem.java b/app/src/main/java/org/schabi/newpipe/VideoInfoItem.java
index ed0904a0b..30d304bd7 100644
--- a/app/src/main/java/org/schabi/newpipe/VideoInfoItem.java
+++ b/app/src/main/java/org/schabi/newpipe/VideoInfoItem.java
@@ -30,4 +30,5 @@ public class VideoInfoItem {
public String thumbnail_url = "";
public Bitmap thumbnail = null;
public String webpage_url = "";
+ public String upload_date = "";
}
\ No newline at end of file
diff --git a/app/src/main/java/org/schabi/newpipe/VideoItemDetailActivity.java b/app/src/main/java/org/schabi/newpipe/VideoItemDetailActivity.java
index cc9287796..cc0c95edf 100644
--- a/app/src/main/java/org/schabi/newpipe/VideoItemDetailActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/VideoItemDetailActivity.java
@@ -1,16 +1,20 @@
package org.schabi.newpipe;
import android.content.ContentProviderOperation;
+import android.content.res.Configuration;
+import android.os.Build;
import android.preference.PreferenceManager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.view.WindowManager;
import org.schabi.newpipe.youtube.YoutubeExtractor;
@@ -39,12 +43,12 @@ public class VideoItemDetailActivity extends AppCompatActivity {
private String videoUrl;
private int currentStreamingService = -1;
+ private boolean isLandscape;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_videoitem_detail);
-
// Show the Up button in the action bar.
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ActionBarHandler.getHandler().setupNavMenu(this);
diff --git a/app/src/main/java/org/schabi/newpipe/VideoItemDetailFragment.java b/app/src/main/java/org/schabi/newpipe/VideoItemDetailFragment.java
index 23ca053f8..558bd2569 100644
--- a/app/src/main/java/org/schabi/newpipe/VideoItemDetailFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/VideoItemDetailFragment.java
@@ -6,6 +6,8 @@ import android.graphics.BitmapFactory;
import android.media.Image;
import android.os.Bundle;
import android.os.Handler;
+import android.preference.PreferenceManager;
+import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBar;
import android.text.Html;
@@ -14,8 +16,11 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.GridLayout;
import android.widget.ImageView;
+import android.widget.ListView;
import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
import android.widget.TextView;
@@ -158,6 +163,7 @@ public class VideoItemDetailFragment extends Fragment {
ImageView thumbsDownPic = (ImageView) a.findViewById(R.id.detailThumbsDownImgView);
View textSeperationLine = a.findViewById(R.id.textSeperationLine);
+
if(textSeperationLine != null) {
textSeperationLine.setVisibility(View.VISIBLE);
}
@@ -201,7 +207,7 @@ public class VideoItemDetailFragment extends Fragment {
}
ActionBarHandler.getHandler().setStreams(streamList);
}
- break;
+ break;
case VideoInfo.VIDEO_UNAVAILABLE_GEMA:
thumbnailView.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.gruese_die_gema_unangebracht));
break;
@@ -256,7 +262,31 @@ public class VideoItemDetailFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_videoitem_detail, container, false);
-
return rootView;
}
-}
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceBundle) {
+ super.onActivityCreated(savedInstanceBundle);
+ FloatingActionButton playVideoButton = (FloatingActionButton) getActivity().findViewById(R.id.playVideoButton);
+
+ if(PreferenceManager.getDefaultSharedPreferences(getActivity())
+ .getBoolean(getString(R.string.leftHandLayout), false)) {
+ RelativeLayout.LayoutParams oldLayout = (RelativeLayout.LayoutParams) playVideoButton.getLayoutParams();
+ RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
+ RelativeLayout.LayoutParams.WRAP_CONTENT,
+ RelativeLayout.LayoutParams.WRAP_CONTENT);
+ layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
+ layoutParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
+ layoutParams.setMargins(oldLayout.leftMargin, oldLayout.topMargin, oldLayout.rightMargin, oldLayout.rightMargin);
+ playVideoButton.setLayoutParams(layoutParams);
+ }
+
+ playVideoButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ActionBarHandler.getHandler().playVideo();
+ }
+ });
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java b/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java
index 827f5e8e1..0a46ac10e 100644
--- a/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java
@@ -2,15 +2,19 @@ package org.schabi.newpipe;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Configuration;
+import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
+import android.util.DisplayMetrics;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.support.v7.widget.SearchView;
import android.widget.ImageView;
diff --git a/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java b/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java
index c3f7b46f6..c924aa227 100644
--- a/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java
@@ -13,6 +13,7 @@ import android.widget.ListView;
import android.widget.Toast;
import java.net.URL;
+import java.util.List;
import java.util.Vector;
diff --git a/app/src/main/java/org/schabi/newpipe/VideoListAdapter.java b/app/src/main/java/org/schabi/newpipe/VideoListAdapter.java
index 51ca76044..6edda8736 100644
--- a/app/src/main/java/org/schabi/newpipe/VideoListAdapter.java
+++ b/app/src/main/java/org/schabi/newpipe/VideoListAdapter.java
@@ -104,6 +104,7 @@ public class VideoListAdapter extends BaseAdapter {
holder.itemVideoTitleView = (TextView) convertView.findViewById(R.id.itemVideoTitleView);
holder.itemUploaderView = (TextView) convertView.findViewById(R.id.itemUploaderView);
holder.itemDurationView = (TextView) convertView.findViewById(R.id.itemDurationView);
+ holder.itemUploadDateView = (TextView) convertView.findViewById(R.id.itemUploadDateView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
@@ -118,6 +119,7 @@ public class VideoListAdapter extends BaseAdapter {
holder.itemVideoTitleView.setText(videoList.get(position).title);
holder.itemUploaderView.setText(videoList.get(position).uploader);
holder.itemDurationView.setText(videoList.get(position).duration);
+ holder.itemUploadDateView.setText(videoList.get(position).upload_date);
if(listView.isItemChecked(position)) {
convertView.setBackgroundColor(context.getResources().getColor(R.color.primaryColorYoutube));
@@ -130,6 +132,6 @@ public class VideoListAdapter extends BaseAdapter {
private class ViewHolder {
public ImageView itemThumbnailView;
- public TextView itemVideoTitleView, itemUploaderView, itemDurationView;
+ public TextView itemVideoTitleView, itemUploaderView, itemDurationView, itemUploadDateView;
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/org/schabi/newpipe/youtube/YoutubeSearchEngine.java b/app/src/main/java/org/schabi/newpipe/youtube/YoutubeSearchEngine.java
index 2f66ea2ac..395a3d768 100644
--- a/app/src/main/java/org/schabi/newpipe/youtube/YoutubeSearchEngine.java
+++ b/app/src/main/java/org/schabi/newpipe/youtube/YoutubeSearchEngine.java
@@ -97,6 +97,9 @@ public class YoutubeSearchEngine implements SearchEngine {
resultItem.uploader = item.select("div[class=\"yt-lockup-byline\"]").first()
.select("a").first()
.text();
+ resultItem.upload_date = item.select("div[class=\"yt-lockup-meta\"]").first()
+ .select("li").first()
+ .text();
Element te = item.select("div[class=\"yt-thumb video-thumb\"]").first()
.select("img").first();
resultItem.thumbnail_url = te.attr("abs:src");
diff --git a/app/src/main/res/layout-land/fragment_videoitem_detail.xml b/app/src/main/res/layout-land/fragment_videoitem_detail.xml
index 2f8eb35dc..b420f96c6 100644
--- a/app/src/main/res/layout-land/fragment_videoitem_detail.xml
+++ b/app/src/main/res/layout-land/fragment_videoitem_detail.xml
@@ -1,139 +1,159 @@
-
+ android:layout_height="match_parent">
-
+ android:textIsSelectable="true">
-
+ android:padding="16dp">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
\ No newline at end of file
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_play_video.xml b/app/src/main/res/layout/activity_play_video.xml
index b2721fd07..433930f71 100644
--- a/app/src/main/res/layout/activity_play_video.xml
+++ b/app/src/main/res/layout/activity_play_video.xml
@@ -9,17 +9,20 @@
+ android:layout_gravity="center"
+ android:focusable="false"/>
+ android:background="@null"
+ android:focusable="false"/>
+ android:layout_gravity="center"
+ android:focusable="false"/>
diff --git a/app/src/main/res/layout/activity_videoitem_list.xml b/app/src/main/res/layout/activity_videoitem_list.xml
index bc674f6d0..ef35fc763 100644
--- a/app/src/main/res/layout/activity_videoitem_list.xml
+++ b/app/src/main/res/layout/activity_videoitem_list.xml
@@ -1,7 +1,7 @@
+ android:orientation="vertical">
+ tools:layout="@android:layout/list_content"/>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_videoitem_detail.xml b/app/src/main/res/layout/fragment_videoitem_detail.xml
index 84a9a659a..d58c52b10 100644
--- a/app/src/main/res/layout/fragment_videoitem_detail.xml
+++ b/app/src/main/res/layout/fragment_videoitem_detail.xml
@@ -1,133 +1,151 @@
-
+ android:layout_height="match_parent">
-
-
-
+ android:layout_height="match_parent">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
\ No newline at end of file
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/video_item.xml b/app/src/main/res/layout/video_item.xml
index 61988eefa..02b0f5cdb 100644
--- a/app/src/main/res/layout/video_item.xml
+++ b/app/src/main/res/layout/video_item.xml
@@ -22,6 +22,7 @@
android:paddingTop="4dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="@dimen/text_search_title_size"
+ android:text="title"
/>
+ android:textSize="@dimen/text_search_uploader_size"
+ android:text="uploader"/>
-
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
index 5aabdded8..8bfefc069 100644
Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
index 1c3f19389..81af60d57 100644
Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
index 6b1f2d867..afa6f9943 100644
Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 451be5ae2..f13e59ccb 100644
Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index da39d8f3b..0b05a450d 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -1,3 +1,4 @@
+
NewPipe
NewPipe
@@ -34,4 +35,5 @@
https://f-droid.org/repository/browse/?fdfilter=Kore&fdid=org.xbmc.kore
Zeige \"Mit Kodi abspielen\" Option
Zeigt eine Option an, über die man Videos mit dem Kodi Mediacenter abspielen kann.
+ Linkshänder freundliches Layout.
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index dc09bbf93..c40c0538a 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -1,3 +1,4 @@
+
NewPipe
NewPipe
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
new file mode 100644
index 000000000..b31061b0e
--- /dev/null
+++ b/app/src/main/res/values-fr/strings.xml
@@ -0,0 +1,38 @@
+
+
+ NewPipe
+ Démarrer automatiquement la vidéo si elle a été appellée à partir d\'une autre application.
+ Annuler
+ Choisir un navigateur:
+ Résolution par défaut:
+ S\'agirait-il de:
+ Télécharger
+ Emplacement des téléchargements
+ Entrez l\'emplacement du téléchargement
+ Emplacement des vidéos téléchargées.
+ https://f-droid.org/repository/browse/?fdfilter=Kore&fdid=org.xbmc.kore
+ https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc
+ Installer
+ Installer Kore
+ L\'application Kore est introuvable. Kore est nécessaire afin de lire des vidéos dans Kodi media center.
+ Aucun lecteur de streaming détecté. Vous devriez en installer un.
+ Aucun résultat.
+ Ouvrir dans le navigateur
+ Lire
+ Lecture automatique via Intent.
+ Lire avec Kodi
+ rotation
+ Chercher
+ Chercher dans la page:
+ Envoyer avec
+ Paramètres
+ Partager
+ Partager avec:
+ Afficher une option pour lire la vidéo avec Kodi media center.
+ Afficher l\'option \"Lire avec Kodi\"
+ Paramètres
+ NewPipe
+ Envoyé le:
+ Utiliser un lecteur externe
+ vues
+
\ No newline at end of file
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
new file mode 100644
index 000000000..bbc194006
--- /dev/null
+++ b/app/src/main/res/values-hu/strings.xml
@@ -0,0 +1,38 @@
+
+
+ NewPipe
+ NewPipe
+ Nincs találat
+ megtekintés
+ Feltöltve:
+ Nem található lejátszó. Telepítsen egyet!
+ Telepítsen egyet
+ Mégse
+ https://f-droid.org/repository/browse/?fdfilter=vlc&fdid=org.videolan.vlc
+ Megnyitás böngészőben
+ Megosztás
+ Lejátszás
+ Letöltés
+ Keresés
+ Beállítások
+ Küldés ezzel:
+ Erre gondolt:
+ Keresési lap:
+ Megosztás ezzel:
+ Válasszon böngészőt:
+ forgatás
+ Beállítások
+ Külső lejátszó használata
+ Letöltések helye
+ Útvonal a letöltött videók tárolásához
+ Adja meg a letöltési útvonalat
+ Automatikus lejátszás Intent-en keresztül
+ Automatikusan elindítja a videót, ha az külső alkalmazásból volt hívva
+ Alapértelmezett felbontás
+ Lejátszás Kodi-val
+ A Kore alkalmazás nem található. A Kore szükséges a videók Kodi médiaközponttal való lejátszásához.
+ Kore telepítése
+ https://f-droid.org/repository/browse/?fdfilter=Kore&fdid=org.xbmc.kore
+ \"Lejátszás Kodi-val\" opció mutatása
+ Mutat egy opciót a videók Kodi médiaközponttal való lejátszására
+
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index f0e40b832..3bcde793a 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -1,3 +1,4 @@
+
Јутјуб цев
Јутјуб цев
diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml
index e0b443174..7a7d2adb6 100644
--- a/app/src/main/res/values-v21/styles.xml
+++ b/app/src/main/res/values-v21/styles.xml
@@ -1,11 +1,12 @@
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index eaf1f6c18..b444b0725 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -2,5 +2,6 @@
#dd0000
#bb0000
+ #000000
#66000000
\ No newline at end of file
diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml
index 5ad6be083..0b104a97c 100644
--- a/app/src/main/res/values/settings_keys.xml
+++ b/app/src/main/res/values/settings_keys.xml
@@ -12,4 +12,5 @@
360p
show_play_with_kodi_preference
+ left_hand_layout
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0a971eb68..89b944448 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,4 @@
+
NewPipe
NewPipe
@@ -34,4 +35,5 @@
https://f-droid.org/repository/browse/?fdfilter=Kore&fdid=org.xbmc.kore
Show \"Play with Kodi\" option
Displays an option to play a video via Kodi media center.
-
+ Left hand friendly layout.
+
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 454286d7f..3789b6867 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -1,11 +1,11 @@
-
-
+
\ No newline at end of file
diff --git a/app/src/main/res/xml/settings_screen.xml b/app/src/main/res/xml/settings_screen.xml
index a20d21711..82b50ef38 100644
--- a/app/src/main/res/xml/settings_screen.xml
+++ b/app/src/main/res/xml/settings_screen.xml
@@ -34,4 +34,9 @@
android:summary="@string/showPlayWithKodiSummary"
android:defaultValue="false" />
+
+
\ No newline at end of file
diff --git a/assets/new_newpipe_icon.svg b/assets/new_newpipe_icon.svg
new file mode 100644
index 000000000..93ce928d0
--- /dev/null
+++ b/assets/new_newpipe_icon.svg
@@ -0,0 +1,188 @@
+
+
+
+
diff --git a/build.gradle b/build.gradle
index 9405f3fd1..1b7886d14 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:1.2.3'
+ classpath 'com.android.tools.build:gradle:1.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files