basic pip function

This commit is contained in:
Page Asgardius 2022-10-09 12:09:30 -07:00
parent 4adc3c5a7a
commit 307e1253de
4 changed files with 73 additions and 41 deletions

View file

@ -7,7 +7,7 @@ android {
defaultConfig { defaultConfig {
applicationId "asgardius.page.s3manager" applicationId "asgardius.page.s3manager"
minSdk 24 minSdk 23
targetSdk 33 targetSdk 33
versionCode 27 versionCode 27
versionName "0.1.25" versionName "0.1.25"

View file

@ -86,9 +86,11 @@
android:label="@string/bucket_list" /> android:label="@string/bucket_list" />
<activity <activity
android:name=".VideoPlayer" android:name=".VideoPlayer"
android:configChanges="orientation|keyboardHidden|screenSize|uiMode|keyboardHidden" android:resizeableActivity="true"
android:supportsPictureInPicture="true"
android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize|uiMode|keyboardHidden"
android:exported="false" android:exported="false"
android:theme="@style/Theme.AsgardiusS3Manager.Fullscreen" /> android:theme="@style/Theme.AsgardiusS3Manager.NoActionBar" />
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize|uiMode|keyboardHidden" android:configChanges="orientation|keyboardHidden|screenSize|uiMode|keyboardHidden"

View file

@ -2,6 +2,7 @@ package asgardius.page.s3manager;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.view.View; import android.view.View;
import android.widget.EditText; import android.widget.EditText;
@ -31,50 +32,53 @@ public class TextViewer extends AppCompatActivity {
setContentView(R.layout.activity_text_viewer); setContentView(R.layout.activity_text_viewer);
filecontent = (EditText)findViewById(R.id.textShow); filecontent = (EditText)findViewById(R.id.textShow);
final ProgressBar simpleProgressBar = (ProgressBar) findViewById(R.id.simpleProgressBar); final ProgressBar simpleProgressBar = (ProgressBar) findViewById(R.id.simpleProgressBar);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
String videoURL = getIntent().getStringExtra("video_url");
Thread textread = new Thread(new Runnable() {
String videoURL = getIntent().getStringExtra("video_url"); @Override
Thread textread = new Thread(new Runnable() { public void run() {
try {
//Your code goes here
URL fileurl = new URL(videoURL);
@Override // Read all the text returned by the server
public void run() { BufferedReader in = new BufferedReader(new InputStreamReader(fileurl.openStream()));
try { String str = in.lines().collect(Collectors.joining());
//Your code goes here in.close();
URL fileurl = new URL(videoURL);
// Read all the text returned by the server runOnUiThread(new Runnable() {
BufferedReader in = new BufferedReader(new InputStreamReader(fileurl.openStream()));
String str = in.lines().collect(Collectors.joining());
in.close();
runOnUiThread(new Runnable() { @Override
public void run() {
// Sending reference and data to Adapter
simpleProgressBar.setVisibility(View.INVISIBLE);
filecontent.setText(str);
@Override }
public void run() { });
// Sending reference and data to Adapter //System.out.println("tree "+treelevel);
simpleProgressBar.setVisibility(View.INVISIBLE); //System.out.println("prefix "+prefix);
filecontent.setText(str);
} } catch (Exception e) {
}); e.printStackTrace();
//System.out.println("tree "+treelevel); runOnUiThread(new Runnable() {
//System.out.println("prefix "+prefix);
} catch (Exception e) { @Override
e.printStackTrace(); public void run() {
runOnUiThread(new Runnable() { Toast.makeText(getApplicationContext(),getResources().getString(R.string.media_list_fail), Toast.LENGTH_SHORT).show();
finish();
@Override }
public void run() { });
Toast.makeText(getApplicationContext(),getResources().getString(R.string.media_list_fail), Toast.LENGTH_SHORT).show(); //Toast.makeText(getApplicationContext(),getResources().getString(R.string.media_list_fail), Toast.LENGTH_SHORT).show();
finish(); finish();
} }
});
//Toast.makeText(getApplicationContext(),getResources().getString(R.string.media_list_fail), Toast.LENGTH_SHORT).show();
finish();
} }
} });
}); textread.start();
textread.start(); } else {
finish();
}
/*try { /*try {
// Create a URL for the desired page // Create a URL for the desired page

View file

@ -2,9 +2,12 @@ package asgardius.page.s3manager;
import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.app.AppCompatActivity;
import android.app.PictureInPictureParams;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.PowerManager; import android.os.PowerManager;
import android.view.View; import android.view.View;
@ -49,15 +52,16 @@ public class VideoPlayer extends AppCompatActivity {
DefaultLoadControl loadControl; DefaultLoadControl loadControl;
DefaultRenderersFactory renderersFactory; DefaultRenderersFactory renderersFactory;
ExoPlayer player; ExoPlayer player;
long videoPosition;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_player); setContentView(R.layout.activity_video_player);
// create Wifi and wake locks // create Wifi and wake locks
mWifiLock = ((WifiManager) this.getApplicationContext().getSystemService(Context.WIFI_SERVICE)).createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "Transistor:wifi_lock"); mWifiLock = ((WifiManager) this.getApplicationContext().getSystemService(Context.WIFI_SERVICE)).createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "S3Manager:wifi_lock");
powerManager = (PowerManager) getSystemService(POWER_SERVICE); powerManager = (PowerManager) getSystemService(POWER_SERVICE);
mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Transistor:wake_lock"); mWakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "S3Manager:wake_lock");
//Get media url //Get media url
String videoURL = getIntent().getStringExtra("video_url"); String videoURL = getIntent().getStringExtra("video_url");
videocache = getIntent().getIntExtra("videocache", 40); videocache = getIntent().getIntExtra("videocache", 40);
@ -163,6 +167,22 @@ public class VideoPlayer extends AppCompatActivity {
}); });
} }
protected void enterPIPMode() {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
&& this.getPackageManager()
.hasSystemFeature(
PackageManager.FEATURE_PICTURE_IN_PICTURE)) {
videoPosition = player.getCurrentPosition();
playerView.setUseController(false);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
PictureInPictureParams params = new PictureInPictureParams.Builder().build();
this.enterPictureInPictureMode(params);
}else {
this.enterPictureInPictureMode();
}
}
}
@Override @Override
public void onWindowFocusChanged(boolean hasFocus) { public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus); super.onWindowFocusChanged(hasFocus);
@ -181,11 +201,17 @@ public class VideoPlayer extends AppCompatActivity {
public void onDestroy() { public void onDestroy() {
simpleCache.release(); simpleCache.release();
playerView.setPlayer(null);
player.release(); player.release();
super.onDestroy(); super.onDestroy();
} }
public void onUserLeaveHint() {
super.onUserLeaveHint();
enterPIPMode();
}
/*public void onBackPressed() { /*public void onBackPressed() {
player.release(); player.release();
finish(); finish();