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/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/VideoItemDetailFragment.java b/app/src/main/java/org/schabi/newpipe/VideoItemDetailFragment.java
index 9b2afe39d..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,9 +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;
@@ -159,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);
}
@@ -202,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;
@@ -257,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/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/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/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-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index a74b6bd7f..bbc194006 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -1,3 +1,4 @@
+
NewPipe
NewPipe
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 be37c278f..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 8bfa3427f..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/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