Some smaller UI changes and else:

- added play video button for better lefthand support
 - wrote codepart to darkon5s listitem improvements
 - set minimum api level to 15 (Android 4.0.3 support)
 - updated to sdk level 23 including the new support libs
This commit is contained in:
= 2015-09-21 01:10:11 +02:00
parent 30dcd3eef0
commit 2489c6c329
20 changed files with 347 additions and 252 deletions

View File

@ -36,13 +36,13 @@
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/debug" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/debug" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/r/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/aidl/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/rs/androidTest/debug" isTestSource="true" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/generated/androidTest/debug" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
@ -71,8 +71,9 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/22.2.1/jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.1/jars" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/design/23.0.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.0.1/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
@ -88,12 +89,13 @@
<excludeFolder url="file://$MODULE_DIR$/build/outputs" /> <excludeFolder url="file://$MODULE_DIR$/build/outputs" />
<excludeFolder url="file://$MODULE_DIR$/build/tmp" /> <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content> </content>
<orderEntry type="jdk" jdkName="Android API 22 Platform" jdkType="Android SDK" /> <orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="jsoup-1.8.3" level="project" /> <orderEntry type="library" exported="" name="jsoup-1.8.3" level="project" />
<orderEntry type="library" exported="" name="support-v4-22.2.1" level="project" /> <orderEntry type="library" exported="" name="support-v4-23.0.1" level="project" />
<orderEntry type="library" exported="" name="support-annotations-22.2.1" level="project" />
<orderEntry type="library" exported="" name="rhino-1.7.7" level="project" /> <orderEntry type="library" exported="" name="rhino-1.7.7" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-22.2.1" level="project" /> <orderEntry type="library" exported="" name="design-23.0.1" level="project" />
<orderEntry type="library" exported="" name="appcompat-v7-23.0.1" level="project" />
<orderEntry type="library" exported="" name="support-annotations-23.0.1" level="project" />
</component> </component>
</module> </module>

View File

@ -1,13 +1,13 @@
apply plugin: 'com.android.application' apply plugin: 'com.android.application'
android { android {
compileSdkVersion 22 compileSdkVersion 23
buildToolsVersion "22.0.1" buildToolsVersion "23.0.1"
defaultConfig { defaultConfig {
applicationId "org.schabi.newpipe" applicationId "org.schabi.newpipe"
minSdkVersion 16 minSdkVersion 15
targetSdkVersion 22 targetSdkVersion 23
versionCode 2 versionCode 2
versionName "0.3.5" versionName "0.3.5"
} }
@ -21,8 +21,9 @@ android {
dependencies { dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs') compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.1' compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:support-v4:22.2.1' compile 'com.android.support:support-v4:23.0.1'
compile 'org.jsoup:jsoup:1.8.3' compile 'org.jsoup:jsoup:1.8.3'
compile 'org.mozilla:rhino:1.7.7' compile 'org.mozilla:rhino:1.7.7'
compile 'com.android.support:design:23.0.1'
} }

View File

@ -30,4 +30,5 @@ public class VideoInfoItem {
public String thumbnail_url = ""; public String thumbnail_url = "";
public Bitmap thumbnail = null; public Bitmap thumbnail = null;
public String webpage_url = ""; public String webpage_url = "";
public String upload_date = "";
} }

View File

@ -6,6 +6,8 @@ import android.graphics.BitmapFactory;
import android.media.Image; import android.media.Image;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.preference.PreferenceManager;
import android.support.design.widget.FloatingActionButton;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar;
import android.text.Html; import android.text.Html;
@ -14,9 +16,11 @@ import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.GridLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.ListView; import android.widget.ListView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
@ -159,6 +163,7 @@ public class VideoItemDetailFragment extends Fragment {
ImageView thumbsDownPic = (ImageView) a.findViewById(R.id.detailThumbsDownImgView); ImageView thumbsDownPic = (ImageView) a.findViewById(R.id.detailThumbsDownImgView);
View textSeperationLine = a.findViewById(R.id.textSeperationLine); View textSeperationLine = a.findViewById(R.id.textSeperationLine);
if(textSeperationLine != null) { if(textSeperationLine != null) {
textSeperationLine.setVisibility(View.VISIBLE); textSeperationLine.setVisibility(View.VISIBLE);
} }
@ -202,7 +207,7 @@ public class VideoItemDetailFragment extends Fragment {
} }
ActionBarHandler.getHandler().setStreams(streamList); ActionBarHandler.getHandler().setStreams(streamList);
} }
break; break;
case VideoInfo.VIDEO_UNAVAILABLE_GEMA: case VideoInfo.VIDEO_UNAVAILABLE_GEMA:
thumbnailView.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.gruese_die_gema_unangebracht)); thumbnailView.setImageBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.gruese_die_gema_unangebracht));
break; break;
@ -257,7 +262,31 @@ public class VideoItemDetailFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_videoitem_detail, container, false); View rootView = inflater.inflate(R.layout.fragment_videoitem_detail, container, false);
return rootView; 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();
}
});
}
} }

View File

@ -104,6 +104,7 @@ public class VideoListAdapter extends BaseAdapter {
holder.itemVideoTitleView = (TextView) convertView.findViewById(R.id.itemVideoTitleView); holder.itemVideoTitleView = (TextView) convertView.findViewById(R.id.itemVideoTitleView);
holder.itemUploaderView = (TextView) convertView.findViewById(R.id.itemUploaderView); holder.itemUploaderView = (TextView) convertView.findViewById(R.id.itemUploaderView);
holder.itemDurationView = (TextView) convertView.findViewById(R.id.itemDurationView); holder.itemDurationView = (TextView) convertView.findViewById(R.id.itemDurationView);
holder.itemUploadDateView = (TextView) convertView.findViewById(R.id.itemUploadDateView);
convertView.setTag(holder); convertView.setTag(holder);
} else { } else {
holder = (ViewHolder) convertView.getTag(); holder = (ViewHolder) convertView.getTag();
@ -118,6 +119,7 @@ public class VideoListAdapter extends BaseAdapter {
holder.itemVideoTitleView.setText(videoList.get(position).title); holder.itemVideoTitleView.setText(videoList.get(position).title);
holder.itemUploaderView.setText(videoList.get(position).uploader); holder.itemUploaderView.setText(videoList.get(position).uploader);
holder.itemDurationView.setText(videoList.get(position).duration); holder.itemDurationView.setText(videoList.get(position).duration);
holder.itemUploadDateView.setText(videoList.get(position).upload_date);
if(listView.isItemChecked(position)) { if(listView.isItemChecked(position)) {
convertView.setBackgroundColor(context.getResources().getColor(R.color.primaryColorYoutube)); convertView.setBackgroundColor(context.getResources().getColor(R.color.primaryColorYoutube));
@ -130,6 +132,6 @@ public class VideoListAdapter extends BaseAdapter {
private class ViewHolder { private class ViewHolder {
public ImageView itemThumbnailView; public ImageView itemThumbnailView;
public TextView itemVideoTitleView, itemUploaderView, itemDurationView; public TextView itemVideoTitleView, itemUploaderView, itemDurationView, itemUploadDateView;
} }
} }

View File

@ -97,6 +97,9 @@ public class YoutubeSearchEngine implements SearchEngine {
resultItem.uploader = item.select("div[class=\"yt-lockup-byline\"]").first() resultItem.uploader = item.select("div[class=\"yt-lockup-byline\"]").first()
.select("a").first() .select("a").first()
.text(); .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() Element te = item.select("div[class=\"yt-thumb video-thumb\"]").first()
.select("img").first(); .select("img").first();
resultItem.thumbnail_url = te.attr("abs:src"); resultItem.thumbnail_url = te.attr("abs:src");

View File

@ -1,139 +1,159 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/videoitem_detail" xmlns:app="http://schemas.android.com/apk/res-auto"
style="?android:attr/textAppearanceLarge" style="?android:attr/textAppearanceLarge"
tools:context=".VideoItemDetailFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:textIsSelectable="true"
tools:context=".VideoItemDetailFragment">
<RelativeLayout <ScrollView
android:id="@+id/videoitem_detail"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:padding="16dp"> android:textIsSelectable="true">
<ProgressBar android:id="@+id/detailProgressBar" <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_gravity="center" android:padding="16dp">
android:indeterminate="true"/>
<ImageView android:id="@+id/detailThumbnailView" <ProgressBar android:id="@+id/detailProgressBar"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_alignParentLeft="true" android:layout_gravity="center"
android:layout_alignParentTop="true" android:indeterminate="true"/>
android:adjustViewBounds="true"
android:src="@drawable/dummi_thumbnail"
android:visibility="invisible"/>
<TextView android:id="@+id/detailVideoTitleView" <ImageView android:id="@+id/detailThumbnailView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailThumbnailView" android:layout_alignParentLeft="true"
android:layout_alignParentLeft="true" android:layout_alignParentTop="true"
android:paddingLeft="6dp" android:adjustViewBounds="true"
android:textAppearance="?android:attr/textAppearanceLarge" android:src="@drawable/dummi_thumbnail"
android:text="Bla blabla !!!" android:visibility="invisible"/>
android:visibility="invisible"/>
<ImageView android:id="@+id/detailUploaderThumbnailView" <TextView android:id="@+id/detailVideoTitleView"
android:layout_width="80dp" android:layout_width="wrap_content"
android:layout_height="100dp" android:layout_height="wrap_content"
android:paddingTop="25dp" android:layout_below="@id/detailThumbnailView"
android:paddingLeft="5dp" android:layout_alignParentLeft="true"
android:layout_below="@id/detailVideoTitleView" android:paddingLeft="6dp"
android:layout_alignParentLeft="true" android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="invisible" android:text="Bla blabla !!!"
android:src="@drawable/budy" /> android:visibility="invisible"/>
<TextView android:id="@+id/detailUploaderView" <ImageView android:id="@+id/detailUploaderThumbnailView"
android:layout_width="wrap_content" android:layout_width="80dp"
android:layout_height="wrap_content" android:layout_height="100dp"
android:layout_below="@id/detailUploaderThumbnailView" android:paddingTop="25dp"
android:layout_alignParentLeft="true" android:paddingLeft="5dp"
android:paddingLeft="6dp" android:layout_below="@id/detailVideoTitleView"
android:textAppearance="?android:attr/textAppearanceMedium" android:layout_alignParentLeft="true"
android:visibility="invisible" android:visibility="invisible"
android:text="Herr von Gurken" /> android:src="@drawable/budy" />
<View android:id="@+id/textSeperationLine" <TextView android:id="@+id/detailUploaderView"
android:layout_width="fill_parent" android:layout_width="wrap_content"
android:layout_height="1dp" android:layout_height="wrap_content"
android:background="@android:color/darker_gray" android:layout_below="@id/detailUploaderThumbnailView"
android:layout_below="@id/detailUploaderView" android:layout_alignParentLeft="true"
android:paddingTop="20dp" android:paddingLeft="6dp"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_alignParentLeft="true" /> android:visibility="invisible"
android:text="Herr von Gurken" />
<TextView android:id="@+id/detailViewCountView" <View android:id="@+id/textSeperationLine"
android:layout_width="wrap_content" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="1dp"
android:layout_below="@id/detailVideoTitleView" android:background="@android:color/darker_gray"
android:layout_alignParentRight="true" android:layout_below="@id/detailUploaderView"
android:paddingTop="70dp" android:paddingTop="20dp"
android:textAppearance="?android:attr/textAppearanceLarge" android:visibility="invisible"
android:visibility="invisible" android:layout_alignParentLeft="true" />
android:text="1.000.115 views" />
<TextView android:id="@+id/detailThumbsDownCountView" <TextView android:id="@+id/detailViewCountView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailViewCountView" android:layout_below="@id/detailVideoTitleView"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:textAppearance="?android:attr/textAppearanceMedium" android:paddingTop="70dp"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceLarge"
android:text="5.000" /> android:visibility="invisible"
android:text="1.000.115 views" />
<ImageView android:id="@+id/detailThumbsDownImgView" <TextView android:id="@+id/detailThumbsDownCountView"
android:layout_width="40dp" android:layout_width="wrap_content"
android:layout_height="20dp" android:layout_height="wrap_content"
android:layout_below="@id/detailViewCountView" android:layout_below="@id/detailViewCountView"
android:layout_toLeftOf="@id/detailThumbsDownCountView" android:layout_alignParentRight="true"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceMedium"
android:src="@drawable/thumbs_down" /> android:visibility="invisible"
android:text="5.000" />
<TextView android:id="@+id/detailThumbsUpCountView" <ImageView android:id="@+id/detailThumbsDownImgView"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_height="20dp"
android:layout_below="@id/detailViewCountView" android:layout_below="@id/detailViewCountView"
android:layout_toLeftOf="@id/detailThumbsDownImgView" android:layout_toLeftOf="@id/detailThumbsDownCountView"
android:textAppearance="?android:attr/textAppearanceMedium" android:visibility="invisible"
android:visibility="invisible" android:src="@drawable/thumbs_down" />
android:text="111.111" />
<ImageView android:id="@+id/detailThumbsUpImgView" <TextView android:id="@+id/detailThumbsUpCountView"
android:layout_width="40dp" android:layout_width="wrap_content"
android:layout_height="20dp" android:layout_height="wrap_content"
android:layout_below="@id/detailViewCountView" android:layout_below="@id/detailViewCountView"
android:layout_toLeftOf="@id/detailThumbsUpCountView" android:layout_toLeftOf="@id/detailThumbsDownImgView"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceMedium"
android:src="@drawable/thumbs_up" /> android:visibility="invisible"
android:text="111.111" />
<TextView android:id="@+id/detailUploadDateView" <ImageView android:id="@+id/detailThumbsUpImgView"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_height="20dp"
android:layout_below="@id/detailUploaderView" android:layout_below="@id/detailViewCountView"
android:layout_alignParentLeft="true" android:layout_toLeftOf="@id/detailThumbsUpCountView"
android:paddingLeft="6dp" android:visibility="invisible"
android:paddingTop="20dp" android:src="@drawable/thumbs_up" />
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="invisible"
android:text="Uploaded at: 45.64.1285" />
<TextView android:id="@+id/detailDescriptionView" <TextView android:id="@+id/detailUploadDateView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailUploadDateView" android:layout_below="@id/detailUploaderView"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:paddingLeft="6dp" android:paddingLeft="6dp"
android:textAppearance="?android:attr/textAppearanceMedium" android:paddingTop="20dp"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmodtempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. " android:visibility="invisible"
/> android:text="Uploaded at: 45.64.1285" />
</RelativeLayout> <TextView android:id="@+id/detailDescriptionView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/detailUploadDateView"
android:layout_alignParentLeft="true"
android:paddingLeft="6dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="invisible"
android:text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmodtempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. "
/>
</ScrollView> <View
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@id/detailDescriptionView"/>
</RelativeLayout>
</ScrollView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/playVideoButton"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/primaryColorYoutube"
android:src="@drawable/ic_play_arrow_black"
android:layout_margin="15pt"/>
</RelativeLayout>

View File

@ -1,133 +1,151 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/videoitem_detail" xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".VideoItemDetailFragment"
android:textIsSelectable="true"
style="?android:attr/textAppearanceLarge" style="?android:attr/textAppearanceLarge"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:textIsSelectable="true"
tools:context=".VideoItemDetailFragment">
<RelativeLayout <ScrollView
android:id="@+id/videoitem_detail"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<RelativeLayout
<ProgressBar android:id="@+id/detailProgressBar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
android:layout_gravity="center"
android:indeterminate="true"/>
<ImageView android:id="@+id/detailThumbnailView" <ProgressBar android:id="@+id/detailProgressBar"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:scaleType="centerInside" android:layout_gravity="center"
android:layout_alignParentLeft="true" android:indeterminate="true"/>
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:visibility="invisible"
android:src="@drawable/dummi_thumbnail"/>
<TextView android:id="@+id/detailVideoTitleView" <ImageView android:id="@+id/detailThumbnailView"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailThumbnailView" android:scaleType="centerInside"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:paddingLeft="6dp" android:layout_alignParentTop="true"
android:paddingBottom="20dp" android:adjustViewBounds="true"
android:textAppearance="?android:attr/textAppearanceLarge" android:visibility="invisible"
android:visibility="invisible" android:src="@drawable/dummi_thumbnail"/>
android:text="Bla blabla !!!"/>
<ImageView android:id="@+id/detailUploaderThumbnailView" <TextView android:id="@+id/detailVideoTitleView"
android:layout_width="85dp" android:layout_width="wrap_content"
android:layout_height="100dp" android:layout_height="wrap_content"
android:paddingTop="25dp" android:layout_below="@id/detailThumbnailView"
android:paddingLeft="2dp" android:layout_alignParentLeft="true"
android:layout_below="@id/detailVideoTitleView" android:paddingLeft="6dp"
android:layout_alignParentLeft="true" android:paddingBottom="20dp"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceLarge"
android:src="@drawable/budy" /> android:visibility="invisible"
android:text="Bla blabla !!!"/>
<TextView android:id="@+id/detailUploaderView" <ImageView android:id="@+id/detailUploaderThumbnailView"
android:layout_width="wrap_content" android:layout_width="85dp"
android:layout_height="wrap_content" android:layout_height="100dp"
android:layout_below="@id/detailUploaderThumbnailView" android:paddingTop="25dp"
android:layout_alignParentLeft="true" android:paddingLeft="2dp"
android:paddingLeft="6dp" android:layout_below="@id/detailVideoTitleView"
android:textAppearance="?android:attr/textAppearanceMedium" android:layout_alignParentLeft="true"
android:visibility="invisible" android:visibility="invisible"
android:text="Herr von Gurken" /> android:src="@drawable/budy" />
<TextView android:id="@+id/detailViewCountView" <TextView android:id="@+id/detailUploaderView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="25dp" android:layout_below="@id/detailUploaderThumbnailView"
android:layout_below="@id/detailVideoTitleView" android:layout_alignParentLeft="true"
android:layout_alignParentRight="true" android:paddingLeft="6dp"
android:paddingRight="16dp" android:textAppearance="?android:attr/textAppearanceMedium"
android:textAppearance="?android:attr/textAppearanceLarge" android:visibility="invisible"
android:visibility="invisible" android:text="Herr von Gurken" />
android:text="drölf views" />
<TextView android:id="@+id/detailThumbsDownCountView" <TextView android:id="@+id/detailViewCountView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailViewCountView" android:paddingTop="25dp"
android:layout_alignParentRight="true" android:layout_below="@id/detailVideoTitleView"
android:paddingRight="16dp" android:layout_alignParentRight="true"
android:textAppearance="?android:attr/textAppearanceMedium" android:paddingRight="16dp"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceLarge"
android:text="-5.000" /> android:visibility="invisible"
android:text="drölf views" />
<ImageView android:id="@+id/detailThumbsDownImgView" <TextView android:id="@+id/detailThumbsDownCountView"
android:layout_width="40dp" android:layout_width="wrap_content"
android:layout_height="20dp" android:layout_height="wrap_content"
android:layout_below="@id/detailViewCountView" android:layout_below="@id/detailViewCountView"
android:layout_toLeftOf="@id/detailThumbsDownCountView" android:layout_alignParentRight="true"
android:visibility="invisible" android:paddingRight="16dp"
android:src="@drawable/thumbs_down" /> android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="invisible"
android:text="-5.000" />
<TextView android:id="@+id/detailThumbsUpCountView" <ImageView android:id="@+id/detailThumbsDownImgView"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_height="20dp"
android:layout_below="@id/detailViewCountView" android:layout_below="@id/detailViewCountView"
android:layout_toLeftOf="@id/detailThumbsDownImgView" android:layout_toLeftOf="@id/detailThumbsDownCountView"
android:textAppearance="?android:attr/textAppearanceMedium" android:visibility="invisible"
android:visibility="invisible" android:src="@drawable/thumbs_down" />
android:text="∞" />
<ImageView android:id="@+id/detailThumbsUpImgView" <TextView android:id="@+id/detailThumbsUpCountView"
android:layout_width="40dp" android:layout_width="wrap_content"
android:layout_height="20dp" android:layout_height="wrap_content"
android:layout_below="@id/detailViewCountView" android:layout_below="@id/detailViewCountView"
android:layout_toLeftOf="@id/detailThumbsUpCountView" android:layout_toLeftOf="@id/detailThumbsDownImgView"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceMedium"
android:src="@drawable/thumbs_up" /> android:visibility="invisible"
android:text="∞" />
<TextView android:id="@+id/detailUploadDateView" <ImageView android:id="@+id/detailThumbsUpImgView"
android:layout_width="wrap_content" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_height="20dp"
android:layout_below="@id/detailUploaderView" android:layout_below="@id/detailViewCountView"
android:layout_alignParentLeft="true" android:layout_toLeftOf="@id/detailThumbsUpCountView"
android:paddingLeft="6dp" android:visibility="invisible"
android:paddingTop="20dp" android:src="@drawable/thumbs_up" />
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="invisible"
android:text="Uploaded at: 45.64.1285" />
<TextView android:id="@+id/detailDescriptionView" <TextView android:id="@+id/detailUploadDateView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailUploadDateView" android:layout_below="@id/detailUploaderView"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:paddingLeft="6dp" android:paddingLeft="6dp"
android:textAppearance="?android:attr/textAppearanceMedium" android:paddingTop="20dp"
android:visibility="invisible" android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmodtempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. " android:visibility="invisible"
/> android:text="Uploaded at: 45.64.1285" />
</RelativeLayout> <TextView android:id="@+id/detailDescriptionView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/detailUploadDateView"
android:layout_alignParentLeft="true"
android:paddingLeft="6dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:visibility="invisible"
android:text="Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmodtempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. "
/>
</ScrollView> <View
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@id/detailDescriptionView"/>
</RelativeLayout>
</ScrollView>
<android.support.design.widget.FloatingActionButton
android:id="@+id/playVideoButton"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:backgroundTint="@color/primaryColorYoutube"
android:src="@drawable/ic_play_arrow_black"
android:layout_margin="15pt"/>
</RelativeLayout>

View File

@ -22,6 +22,7 @@
android:paddingTop="4dp" android:paddingTop="4dp"
android:textAppearance="?android:attr/textAppearanceLarge" android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="@dimen/text_search_title_size" android:textSize="@dimen/text_search_title_size"
android:text="title"
/> />
<TextView android:id="@+id/itemUploaderView" <TextView android:id="@+id/itemUploaderView"
@ -31,9 +32,11 @@
android:layout_below="@id/itemVideoTitleView" android:layout_below="@id/itemVideoTitleView"
android:paddingLeft="6dp" android:paddingLeft="6dp"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
android:textSize="@dimen/text_search_uploader_size"/> android:textSize="@dimen/text_search_uploader_size"
android:text="uploader"/>
<TextView android:text="itemUploadDateView" <TextView android:id="@+id/itemUploadDateView"
android:text="itemUploadDateView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_toRightOf="@id/itemThumbnailView" android:layout_toRightOf="@id/itemThumbnailView"
@ -58,6 +61,7 @@
android:textSize="@dimen/text_search_duration_size" android:textSize="@dimen/text_search_duration_size"
android:background="@drawable/durationback" android:background="@drawable/durationback"
android:textColor="#f7f7f7" android:textColor="#f7f7f7"
android:text="duration"
/> />
</RelativeLayout> </RelativeLayout>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">NewPipe</string> <string name="app_name">NewPipe</string>
<string name="title_videoitem_detail">NewPipe</string> <string name="title_videoitem_detail">NewPipe</string>
@ -34,4 +35,5 @@
<string name="fdroidKoreUrl">https://f-droid.org/repository/browse/?fdfilter=Kore&amp;fdid=org.xbmc.kore</string> <string name="fdroidKoreUrl">https://f-droid.org/repository/browse/?fdfilter=Kore&amp;fdid=org.xbmc.kore</string>
<string name="showPlayWithKodiTitle">Zeige \"Mit Kodi abspielen\" Option</string> <string name="showPlayWithKodiTitle">Zeige \"Mit Kodi abspielen\" Option</string>
<string name="showPlayWithKodiSummary">Zeigt eine Option an, über die man Videos mit dem Kodi Mediacenter abspielen kann.</string> <string name="showPlayWithKodiSummary">Zeigt eine Option an, über die man Videos mit dem Kodi Mediacenter abspielen kann.</string>
<string name="leftHandLayoutTitle">Linkshänder freundliches Layout.</string>
</resources> </resources>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">NewPipe</string> <string name="app_name">NewPipe</string>
<string name="title_videoitem_detail">NewPipe</string> <string name="title_videoitem_detail">NewPipe</string>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">NewPipe</string> <string name="app_name">NewPipe</string>
<string name="title_videoitem_detail">NewPipe</string> <string name="title_videoitem_detail">NewPipe</string>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">Јутјуб цев</string> <string name="app_name">Јутјуб цев</string>
<string name="title_videoitem_detail">Јутјуб цев</string> <string name="title_videoitem_detail">Јутјуб цев</string>

View File

@ -1,11 +1,12 @@
<resources> <resources>
<!-- Base application theme. --> <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light"> <style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/NewPipeActionbarTheme</item> <item name="android:actionBarStyle">@style/NewPipeActionbarTheme</item>
<item name="actionBarStyle">@style/NewPipeActionbarTheme</item> <item name="actionBarStyle">@style/NewPipeActionbarTheme</item>
<item name="android:colorPrimary">@color/primaryColorYoutube</item> <item name="android:colorPrimary">@color/primaryColorYoutube</item>
<item name="android:colorPrimaryDark">@color/primaryColorDarkYoutube</item> <item name="android:colorPrimaryDark">@color/primaryColorDarkYoutube</item>
<item name="colorAccent">@color/accentColorYoutube</item>
<item name="android:colorAccent">@color/accentColorYoutube</item>
</style> </style>
<style name="NewPipeActionbarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid" > <style name="NewPipeActionbarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid" >

View File

@ -2,5 +2,6 @@
<resources> <resources>
<color name="primaryColorYoutube">#dd0000</color> <color name="primaryColorYoutube">#dd0000</color>
<color name="primaryColorDarkYoutube">#bb0000</color> <color name="primaryColorDarkYoutube">#bb0000</color>
<color name="accentColorYoutube">#000000</color>
<color name="black_overlay">#66000000</color> <color name="black_overlay">#66000000</color>
</resources> </resources>

View File

@ -12,4 +12,5 @@
</string-array> </string-array>
<string name="defaultResolutionListItem">360p</string> <string name="defaultResolutionListItem">360p</string>
<string name="showPlayWidthKodiPreference">show_play_with_kodi_preference</string> <string name="showPlayWidthKodiPreference">show_play_with_kodi_preference</string>
<string name="leftHandLayout">left_hand_layout</string>
</resources> </resources>

View File

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">NewPipe</string> <string name="app_name">NewPipe</string>
<string name="title_videoitem_detail">NewPipe</string> <string name="title_videoitem_detail">NewPipe</string>
@ -34,4 +35,5 @@
<string name="fdroidKoreUrl">https://f-droid.org/repository/browse/?fdfilter=Kore&amp;fdid=org.xbmc.kore</string> <string name="fdroidKoreUrl">https://f-droid.org/repository/browse/?fdfilter=Kore&amp;fdid=org.xbmc.kore</string>
<string name="showPlayWithKodiTitle">Show \"Play with Kodi\" option</string> <string name="showPlayWithKodiTitle">Show \"Play with Kodi\" option</string>
<string name="showPlayWithKodiSummary">Displays an option to play a video via Kodi media center.</string> <string name="showPlayWithKodiSummary">Displays an option to play a video via Kodi media center.</string>
<string name="leftHandLayoutTitle">Left hand friendly layout.</string>
</resources> </resources>

View File

@ -1,11 +1,11 @@
<resources> <resources>
<!-- Base application theme. --> <!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light"> <style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/NewPipeActionbarTheme</item> <item name="android:actionBarStyle">@style/NewPipeActionbarTheme</item>
<item name="actionBarStyle">@style/NewPipeActionbarTheme</item> <item name="actionBarStyle">@style/NewPipeActionbarTheme</item>
<item name="colorPrimary">@color/primaryColorYoutube</item> <item name="colorPrimary">@color/primaryColorYoutube</item>
<item name="colorPrimaryDark">@color/primaryColorDarkYoutube</item> <item name="colorPrimaryDark">@color/primaryColorDarkYoutube</item>
<item name="colorAccent">@color/accentColorYoutube</item>
</style> </style>
<style name="NewPipeActionbarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid" > <style name="NewPipeActionbarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid" >

View File

@ -34,4 +34,9 @@
android:summary="@string/showPlayWithKodiSummary" android:summary="@string/showPlayWithKodiSummary"
android:defaultValue="false" /> android:defaultValue="false" />
<CheckBoxPreference
android:key="@string/leftHandLayout"
android:title="@string/leftHandLayoutTitle"
android:defaultValue="false" />
</PreferenceScreen> </PreferenceScreen>

View File

@ -5,7 +5,7 @@ buildscript {
jcenter() jcenter()
} }
dependencies { 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 // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files