- added preference for "next video" item

- display if a url is supported or nod
This commit is contained in:
Christian Schabesberger 2015-10-27 18:13:04 +01:00
parent d9e690f62c
commit 080159849e
9 changed files with 184 additions and 141 deletions

View File

@ -8,6 +8,7 @@ import android.support.v7.app.AppCompatActivity;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.widget.Toast;
/** /**
@ -74,6 +75,10 @@ public class VideoItemDetailActivity extends AppCompatActivity {
break; break;
} }
} }
if(extractor == null) {
Toast.makeText(this, R.string.urlNotSupportedText, Toast.LENGTH_LONG)
.show();
}
arguments.putString(VideoItemDetailFragment.VIDEO_URL, arguments.putString(VideoItemDetailFragment.VIDEO_URL,
extractor.getVideoUrl(extractor.getVideoId(videoUrl))); extractor.getVideoUrl(extractor.getVideoId(videoUrl)));
arguments.putBoolean(VideoItemDetailFragment.AUTO_PLAY, arguments.putBoolean(VideoItemDetailFragment.AUTO_PLAY,

View File

@ -23,6 +23,7 @@ import android.widget.ProgressBar;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.ScrollView; import android.widget.ScrollView;
import android.widget.TextView; import android.widget.TextView;
import android.content.Context;
import java.net.URL; import java.net.URL;
import java.util.Vector; import java.util.Vector;
@ -63,6 +64,8 @@ public class VideoItemDetailFragment extends Fragment {
private Thread extractorThread = null; private Thread extractorThread = null;
private VideoInfo currentVideoInfo = null; private VideoInfo currentVideoInfo = null;
private boolean showNextVideoItem = false;
private class ExtractorRunnable implements Runnable { private class ExtractorRunnable implements Runnable {
private Handler h = new Handler(); private Handler h = new Handler();
private Class extractorClass; private Class extractorClass;
@ -88,12 +91,14 @@ public class VideoItemDetailFragment extends Fragment {
new URL(videoInfo.uploader_thumbnail_url) new URL(videoInfo.uploader_thumbnail_url)
.openConnection() .openConnection()
.getInputStream()), SetThumbnailRunnable.CHANNEL_THUMBNAIL)); .getInputStream()), SetThumbnailRunnable.CHANNEL_THUMBNAIL));
if(showNextVideoItem) {
h.post(new SetThumbnailRunnable( h.post(new SetThumbnailRunnable(
BitmapFactory.decodeStream( BitmapFactory.decodeStream(
new URL(videoInfo.nextVideo.thumbnail_url) new URL(videoInfo.nextVideo.thumbnail_url)
.openConnection() .openConnection()
.getInputStream()), SetThumbnailRunnable.NEXT_VIDEO_THUMBNAIL)); .getInputStream()), SetThumbnailRunnable.NEXT_VIDEO_THUMBNAIL));
} }
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -177,6 +182,8 @@ public class VideoItemDetailFragment extends Fragment {
TextView descriptionView = (TextView) a.findViewById(R.id.detailDescriptionView); TextView descriptionView = (TextView) a.findViewById(R.id.detailDescriptionView);
ImageView thumbnailView = (ImageView) a.findViewById(R.id.detailThumbnailView); ImageView thumbnailView = (ImageView) a.findViewById(R.id.detailThumbnailView);
FrameLayout nextVideoFrame = (FrameLayout) a.findViewById(R.id.detailNextVideoFrame); FrameLayout nextVideoFrame = (FrameLayout) a.findViewById(R.id.detailNextVideoFrame);
RelativeLayout nextVideoRootFrame =
(RelativeLayout) a.findViewById(R.id.detailNextVideoRootLayout);
View nextVideoView = videoItemViewCreator View nextVideoView = videoItemViewCreator
.getViewByVideoInfoItem(null, nextVideoFrame, info.nextVideo); .getViewByVideoInfoItem(null, nextVideoFrame, info.nextVideo);
nextVideoFrame.addView(nextVideoView); nextVideoFrame.addView(nextVideoView);
@ -184,6 +191,9 @@ public class VideoItemDetailFragment extends Fragment {
contentMainView.setVisibility(View.VISIBLE); contentMainView.setVisibility(View.VISIBLE);
progressBar.setVisibility(View.GONE); progressBar.setVisibility(View.GONE);
if(!showNextVideoItem) {
nextVideoRootFrame.setVisibility(View.GONE);
}
switch (info.videoAvailableStatus) { switch (info.videoAvailableStatus) {
case VideoInfo.VIDEO_AVAILABLE: { case VideoInfo.VIDEO_AVAILABLE: {
@ -262,6 +272,9 @@ public class VideoItemDetailFragment extends Fragment {
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
Context context = getActivity();
showNextVideoItem = PreferenceManager.getDefaultSharedPreferences(getActivity())
.getBoolean(context.getString(R.string.showNextVideo), true);
} }
@Override @Override

View File

@ -134,10 +134,14 @@
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: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. "
/> />
<RelativeLayout android:id="@+id/detailNextVideoRootLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/detailDescriptionView" >
<TextView android:id="@+id/detailNextVideoTitle" <TextView android:id="@+id/detailNextVideoTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailDescriptionView"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:paddingLeft="6dp" android:paddingLeft="6dp"
android:paddingRight="6dp" android:paddingRight="6dp"
@ -182,6 +186,7 @@
android:background="@android:color/darker_gray" android:background="@android:color/darker_gray"
android:layout_below="@id/detailNextVidButtonAndContantLayout" android:layout_below="@id/detailNextVidButtonAndContantLayout"
android:layout_alignParentLeft="true" /> android:layout_alignParentLeft="true" />
</RelativeLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -134,10 +134,14 @@
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: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. "
/> />
<RelativeLayout android:id="@+id/detailNextVideoRootLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/detailDescriptionView" >
<TextView android:id="@+id/detailNextVideoTitle" <TextView android:id="@+id/detailNextVideoTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailDescriptionView"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:paddingLeft="6dp" android:paddingLeft="6dp"
android:paddingRight="6dp" android:paddingRight="6dp"
@ -182,6 +186,7 @@
android:background="@android:color/darker_gray" android:background="@android:color/darker_gray"
android:layout_below="@id/detailNextVidButtonAndContantLayout" android:layout_below="@id/detailNextVidButtonAndContantLayout"
android:layout_alignParentLeft="true" /> android:layout_alignParentLeft="true" />
</RelativeLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -131,10 +131,14 @@
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: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. "
/> />
<RelativeLayout android:id="@+id/detailNextVideoRootLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/detailDescriptionView" >
<TextView android:id="@+id/detailNextVideoTitle" <TextView android:id="@+id/detailNextVideoTitle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@id/detailDescriptionView"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:paddingLeft="6dp" android:paddingLeft="6dp"
android:paddingRight="6dp" android:paddingRight="6dp"
@ -179,11 +183,12 @@
android:background="@android:color/darker_gray" android:background="@android:color/darker_gray"
android:layout_below="@id/detailNextVidButtonAndContantLayout" android:layout_below="@id/detailNextVidButtonAndContantLayout"
android:layout_alignParentLeft="true" /> android:layout_alignParentLeft="true" />
</RelativeLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="100dip" android:layout_height="100dip"
android:layout_below="@id/detailNextVideoSeperationLineEnd"/> android:layout_below="@id/detailNextVideoRootLayout"/>
</RelativeLayout> </RelativeLayout>
</ScrollView> </ScrollView>

View File

@ -46,4 +46,6 @@
<item>Audio</item> <item>Audio</item>
</string-array> </string-array>
<string name="nextVideoTitle">Nächstes Video</string> <string name="nextVideoTitle">Nächstes Video</string>
<string name="showNextVideoTitle">Zeige \"Nächstes Video\" Auswahl.</string>
<string name="urlNotSupportedText">Url wird nicht unterstützt.</string>
</resources> </resources>

View File

@ -23,4 +23,5 @@
<item>m4a</item> <item>m4a</item>
</string-array> </string-array>
<string name="defaultAudioFormat">m4a</string> <string name="defaultAudioFormat">m4a</string>
<string name="showNextVideo">show_next_video</string>
</resources> </resources>

View File

@ -46,4 +46,6 @@
<item>Audio</item> <item>Audio</item>
</string-array> </string-array>
<string name="nextVideoTitle">Next Video</string> <string name="nextVideoTitle">Next Video</string>
<string name="showNextVideoTitle">Show \"Next video\" item.</string>
<string name="urlNotSupportedText">Url not Supported.</string>
</resources> </resources>

View File

@ -46,4 +46,9 @@
android:entryValues="@array/audioFormatList" android:entryValues="@array/audioFormatList"
android:defaultValue="@string/defaultAudioFormat"/> android:defaultValue="@string/defaultAudioFormat"/>
<CheckBoxPreference
android:key="@string/showNextVideo"
android:title="@string/showNextVideoTitle"
android:defaultValue="true" />
</PreferenceScreen> </PreferenceScreen>