- added preference for "next video" item
- display if a url is supported or nod
This commit is contained in:
parent
d9e690f62c
commit
080159849e
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
Loading…
Reference in New Issue