This commit is contained in:
stom79 2019-01-18 14:48:42 +01:00
parent 6e83958e0c
commit 8201b49343
45 changed files with 45 additions and 190 deletions

View File

@ -59,7 +59,7 @@ ext.photoViewLibraryVersion = '2.0.0'
ext.swipebackLibraryVersion = '1.0.3'
ext.ratethisappLibraryVersion = '1.2.0'
ext.uploadServiceVersion = "3.4.2"
ext.torrentstreamVersion = "2.6.1"
ext.torrentstreamVersion = "2.5.0"
dependencies {
@ -88,11 +88,10 @@ dependencies {
implementation 'com.github.GrenderG:Toasty:1.3.1'
implementation 'com.elconfidencial.bubbleshowcase:bubbleshowcase:1.3.1'
implementation 'com.android.support:multidex:1.0.3'
implementation 'com.google.android.exoplayer:exoplayer-core:2.9.3'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.9.3'
implementation "com.github.TorrentStream:TorrentStream-Android:$torrentstreamVersion"
implementation 'com.google.android.exoplayer:exoplayer:2.9.3'
implementation 'com.github.stom79:android-upload-service:3.4.2-Mastalab'
implementation 'com.github.mabbas007:TagsEditText:1.0.5'
implementation 'com.jaredrummler:material-spinner:1.3.1'
implementation 'org.webrtc:google-webrtc:1.0.+'
playstoreImplementation "io.github.kobakei:ratethisapp:$ratethisappLibraryVersion"
}

View File

@ -31,7 +31,6 @@ import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.widget.AppCompatImageView;
@ -56,22 +55,14 @@ import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.Toast;
import com.github.se_bastiaan.torrentstream.StreamStatus;
import com.github.se_bastiaan.torrentstream.Torrent;
import com.github.se_bastiaan.torrentstream.TorrentOptions;
import com.github.se_bastiaan.torrentstream.TorrentStream;
import com.github.se_bastiaan.torrentstream.listeners.TorrentListener;
import com.google.android.exoplayer2.ExoPlayerFactory;
import com.google.android.exoplayer2.SimpleExoPlayer;
import com.google.android.exoplayer2.source.ExtractorMediaSource;
import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection;
import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
import com.google.android.exoplayer2.trackselection.TrackSelection;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.PlaybackControlView;
import com.google.android.exoplayer2.ui.SimpleExoPlayerView;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.util.Util;
@ -130,8 +121,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
private Peertube peertube;
private TextView toolbar_title;
public static String video_id;
private TorrentStream torrentStream;
private TorrentListener torrentListener;
private SimpleExoPlayerView playerView;
private SimpleExoPlayer player;
private boolean fullScreenMode;
@ -206,6 +195,8 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
mode = sharedpreferences.getInt(Helper.SET_VIDEO_MODE, Helper.VIDEO_MODE_DIRECT);
if( mode != Helper.VIDEO_MODE_WEBVIEW && mode != Helper.VIDEO_MODE_DIRECT)
mode = VIDEO_MODE_DIRECT;
if( mode == Helper.VIDEO_MODE_WEBVIEW){
webview_video.setVisibility(View.VISIBLE);
playerView.setVisibility(View.GONE);
@ -238,7 +229,13 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
}
}
});
webview_video.getSettings().setAllowFileAccess(true);
webview_video.setWebChromeClient(mastalabWebChromeClient);
webview_video.getSettings().setDomStorageEnabled(true);
webview_video.getSettings().setAppCacheEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
webview_video.getSettings().setMediaPlaybackRequiresUserGesture(false);
}
webview_video.setWebViewClient(new MastalabWebViewClient(PeertubeActivity.this));
webview_video.loadUrl("https://" + peertubeInstance + "/videos/embed/" + videoId);
}else {
@ -451,69 +448,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
e.printStackTrace();
}
if( mode == Helper.VIDEO_MODE_TORRENT){
TorrentOptions torrentOptions = new TorrentOptions.Builder()
.saveLocation(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS))
.removeFilesAfterStop(true)
.build();
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),
Util.getUserAgent(getApplicationContext(), "Mastalab"), null);
ExtractorMediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.parse(apiResponse.getPeertubes().get(0).getTorrentUrl(null)));
player = ExoPlayerFactory.newSimpleInstance(PeertubeActivity.this, trackSelector);
playerView.setPlayer(player);
torrentStream = TorrentStream.init(torrentOptions);
player.prepare(videoSource);
torrentStream.startStream(apiResponse.getPeertubes().get(0).getTorrentUrl(null));
torrentListener = new TorrentListener() {
@Override
public void onStreamPrepared(Torrent torrent) {
}
@Override
public void onStreamStarted(Torrent torrent) {
}
@Override
public void onStreamError(Torrent torrent, Exception e) {
e.printStackTrace();
}
@Override
public void onStreamReady(Torrent torrent) {
loader.setVisibility(View.GONE);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),
Util.getUserAgent(getApplicationContext(), "Mastalab"), bandwidthMeter);
ExtractorMediaSource extractorMediaSource = new ExtractorMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.fromFile(torrent.getVideoFile()));
player.prepare(extractorMediaSource);
player.setPlayWhenReady(true);
}
@Override
public void onStreamProgress(Torrent torrent, StreamStatus status) {
}
@Override
public void onStreamStopped() {
loader.setVisibility(View.GONE);
player.release();
}
};
torrentStream.addListener(torrentListener);
}else if( mode == Helper.VIDEO_MODE_DIRECT){
if( mode == Helper.VIDEO_MODE_DIRECT){
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),
Util.getUserAgent(getApplicationContext(), "Mastalab"), null);
@ -670,8 +605,6 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
@Override
public void onDestroy() {
super.onDestroy();
if( torrentStream != null && torrentStream.isStreaming())
torrentStream.stopStream();
}
@Override
@ -724,71 +657,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
PlaybackControlView controlView = playerView.findViewById(R.id.exo_controller);
resolution = controlView.findViewById(R.id.resolution);
resolution.setText(String.format("%sp",res));
if (mode == Helper.VIDEO_MODE_TORRENT) {
torrentStream.stopStream();
torrentStream.removeListener(torrentListener);
TorrentOptions torrentOptions = new TorrentOptions.Builder()
.saveLocation(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS))
.removeFilesAfterStop(true)
.build();
DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter);
trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),
Util.getUserAgent(getApplicationContext(), "Mastalab"), null);
ExtractorMediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.parse(peertube.getTorrentUrl(res)));
player = ExoPlayerFactory.newSimpleInstance(PeertubeActivity.this, trackSelector);
playerView.setPlayer(player);
torrentStream = TorrentStream.init(torrentOptions);
torrentStream.startStream(peertube.getTorrentUrl(res));
torrentListener = new TorrentListener() {
@Override
public void onStreamPrepared(Torrent torrent) {
resolution.setText(res);
}
@Override
public void onStreamStarted(Torrent torrent) {
}
@Override
public void onStreamError(Torrent torrent, Exception e) {
}
@Override
public void onStreamReady(Torrent torrent) {
loader.setVisibility(View.GONE);
resolution.setText(res);
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(getApplicationContext(),
Util.getUserAgent(getApplicationContext(), "Mastalab"), null);
ExtractorMediaSource videoSource = new ExtractorMediaSource.Factory(dataSourceFactory)
.createMediaSource(Uri.fromFile(torrent.getVideoFile()));
player.prepare(videoSource);
player.seekTo(0, position);
player.setPlayWhenReady(true);
}
@Override
public void onStreamProgress(Torrent torrent, StreamStatus status) {
}
@Override
public void onStreamStopped() {
loader.setVisibility(View.GONE);
}
};
torrentStream.addListener(torrentListener);
}else if( mode == VIDEO_MODE_DIRECT){
if( mode == VIDEO_MODE_DIRECT){
player = ExoPlayerFactory.newSimpleInstance(PeertubeActivity.this);
playerView.setPlayer(player);

View File

@ -59,7 +59,8 @@ public class SettingsPeertubeFragment extends Fragment {
ArrayAdapter<CharSequence> video_mode_spinnerAdapter = ArrayAdapter.createFromResource(getContext(),
R.array.settings_video_mode, android.R.layout.simple_spinner_item);
video_mode_spinner.setAdapter(video_mode_spinnerAdapter);
if (videoMode == Helper.VIDEO_MODE_TORRENT)
videoMode = 2;
video_mode_spinner.setSelection(videoMode);
video_mode_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
@ -67,10 +68,10 @@ public class SettingsPeertubeFragment extends Fragment {
if( count1 > 0 ) {
SharedPreferences.Editor editor = sharedpreferences.edit();
switch (position) {
case 0:
/*case 0:
editor.putInt(Helper.SET_VIDEO_MODE, Helper.VIDEO_MODE_TORRENT);
editor.apply();
break;
break;*/
case 1:
editor.putInt(Helper.SET_VIDEO_MODE, Helper.VIDEO_MODE_WEBVIEW);
editor.apply();

View File

@ -727,7 +727,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -741,7 +741,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>تورنت</item>
<item>Webview</item>
<item>تدفق مباشر</item>
</string-array>

View File

@ -727,7 +727,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -731,7 +731,6 @@ Začněte psát první znaky pro návrh.\n\n
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -742,7 +742,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -717,7 +717,6 @@ Durch das Löschen der Anwendung werden diese Daten sofort entfernt.\n
<string name="my_pictures">Meine Bilder</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webansicht</item>
<item>Direkter Datenstrom</item>
</string-array>

View File

@ -727,7 +727,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -722,7 +722,6 @@ https://yandex.ru/legal/confidential/?lang=en </string>
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -725,7 +725,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Web ikuspegia</item>
<item>Zuzeneko streaming-a</item>
</string-array>

View File

@ -727,7 +727,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,6 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -724,7 +724,6 @@ Le bouton de connexion sactivera une fois quun domaine valide sera renseig
<string name="my_pictures">Mes images</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Flux direct</item>
</string-array>

View File

@ -728,7 +728,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Vista web</item>
<item>Fluxo directo</item>
</string-array>

View File

@ -735,7 +735,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -716,7 +716,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -726,7 +726,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -725,7 +725,7 @@ https://yandex.ru/legal/confidential/?lang=en
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">Le mie immagini</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Flusso diretto</item>
</string-array>

View File

@ -715,7 +715,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -723,7 +723,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -724,7 +724,7 @@ Je kunt beginnen met typen en er zullen namen gesuggereerd worden.\n\n
<string name="my_pictures">Mijn foto\'s</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Directe stream</item>
</string-array>

View File

@ -715,7 +715,7 @@ Adresser vil bli foreslått når du begynner å skrive.\n\n
<string name="my_pictures">Mine bilder</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webvisning</item>
<item>Direktestrøm</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -729,7 +729,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Widok sieci Web</item>
<item>Transmisja bezpośrednia</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -728,7 +728,7 @@ Aceste date sunt strict confidențiale și pot fi folosite doar de aplicație.
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -735,7 +735,7 @@
<string name="my_pictures">Мои изображения</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Прямой поток</item>
</string-array>

View File

@ -726,7 +726,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -735,7 +735,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -731,7 +731,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -727,7 +727,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -720,7 +720,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -725,7 +725,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -721,7 +721,7 @@ và %d toots khác để khám phá</item>
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -723,7 +723,7 @@
<string name="my_pictures">My pictures</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>

View File

@ -723,7 +723,7 @@
<string name="my_pictures">我的圖片</string>
<!-- end languages -->
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>直接串流</item>
</string-array>

View File

@ -833,7 +833,6 @@
<string-array name="settings_video_mode">
<item>Torrent</item>
<item>Webview</item>
<item>Direct stream</item>
</string-array>