add logo
@ -10,8 +10,8 @@ android {
|
|||||||
applicationId "it.purser.stream"
|
applicationId "it.purser.stream"
|
||||||
minSdkVersion 25
|
minSdkVersion 25
|
||||||
targetSdkVersion 29
|
targetSdkVersion 29
|
||||||
versionCode 106
|
versionCode 107
|
||||||
versionName "106.0"
|
versionName "107.0"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
BIN
app/app/src/main/ic_launcher-playstore.png
Normal file
After Width: | Height: | Size: 12 KiB |
@ -4,16 +4,25 @@ import android.app.Activity;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import java.util.HashSet;
|
import java.util.TreeMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
public class ShareActivity extends Activity {
|
public class ShareActivity extends Activity {
|
||||||
private Uri getSharedLink() {
|
private class Upstream {
|
||||||
HashSet<String> domains = new HashSet<>();
|
private Uri uri = null;
|
||||||
domains.add("youtu.be");
|
private String provider = null;
|
||||||
domains.add("youtube.com");
|
private Upstream(Uri uri, String provider) {
|
||||||
domains.add("www.youtube.com");
|
this.uri = uri;
|
||||||
domains.add("tv.nrk.no");
|
this.provider = provider;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private Upstream getSharedLink() {
|
||||||
|
TreeMap<String,String> domains = new TreeMap<>();
|
||||||
|
domains.put("youtu.be", "youtube");
|
||||||
|
domains.put("youtube.com", "youtube");
|
||||||
|
domains.put("www.youtube.com", "youtube");
|
||||||
|
domains.put("tv.nrk.no", "nrk");
|
||||||
|
domains.put("nx12210.your-storageshare.de", "nextcloud");
|
||||||
|
|
||||||
Intent intent = getIntent();
|
Intent intent = getIntent();
|
||||||
Bundle bundle = intent.getExtras();
|
Bundle bundle = intent.getExtras();
|
||||||
@ -22,7 +31,7 @@ public class ShareActivity extends Activity {
|
|||||||
String txt = (String) bundle.get(key);
|
String txt = (String) bundle.get(key);
|
||||||
Uri uri = Uri.parse(txt);
|
Uri uri = Uri.parse(txt);
|
||||||
String host = uri.getHost().toLowerCase(Locale.ROOT);
|
String host = uri.getHost().toLowerCase(Locale.ROOT);
|
||||||
if(domains.contains(host)) {
|
if(domains.containsKey(host)) {
|
||||||
if(host.contains("youtube.com")) {
|
if(host.contains("youtube.com")) {
|
||||||
Uri.Builder builder = new Uri.Builder();
|
Uri.Builder builder = new Uri.Builder();
|
||||||
builder.authority(host);
|
builder.authority(host);
|
||||||
@ -30,10 +39,10 @@ public class ShareActivity extends Activity {
|
|||||||
String path = uri.getQueryParameter("v");
|
String path = uri.getQueryParameter("v");
|
||||||
if(path != null) {
|
if(path != null) {
|
||||||
builder.path(path);
|
builder.path(path);
|
||||||
return builder.build();
|
return new Upstream(builder.build(), domains.get(host));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return uri;
|
return new Upstream(uri, domains.get(host));
|
||||||
}
|
}
|
||||||
} catch(Exception e) {}
|
} catch(Exception e) {}
|
||||||
}
|
}
|
||||||
@ -42,13 +51,13 @@ public class ShareActivity extends Activity {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
Uri uri = getSharedLink();
|
Upstream upstream = getSharedLink();
|
||||||
if(uri != null) {
|
if(upstream != null) {
|
||||||
Uri.Builder builder = new Uri.Builder();
|
Uri.Builder builder = new Uri.Builder();
|
||||||
builder.authority("stream.purser.it");
|
builder.authority("stream.purser.it");
|
||||||
builder.scheme("https");
|
builder.scheme("https");
|
||||||
builder.path(uri.getPath());
|
builder.path(upstream.uri.getPath());
|
||||||
builder.appendQueryParameter("provider", "youtube");
|
builder.appendQueryParameter("provider", upstream.provider);
|
||||||
builder.appendQueryParameter("render", "true");
|
builder.appendQueryParameter("render", "true");
|
||||||
Intent launch = new Intent(Intent.ACTION_VIEW, builder.build());
|
Intent launch = new Intent(Intent.ACTION_VIEW, builder.build());
|
||||||
launch.setPackage("com.android.chrome");
|
launch.setPackage("com.android.chrome");
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<vector
|
<vector
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:height="108dp"
|
android:height="108dp"
|
||||||
android:width="108dp"
|
android:width="108dp"
|
||||||
android:viewportHeight="108"
|
android:viewportHeight="108"
|
||||||
android:viewportWidth="108">
|
android:viewportWidth="108"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<path android:fillColor="#3DDC84"
|
<path android:fillColor="#3DDC84"
|
||||||
android:pathData="M0,0h108v108h-108z"/>
|
android:pathData="M0,0h108v108h-108z"/>
|
||||||
<path android:fillColor="#00000000" android:pathData="M9,0L9,108"
|
<path android:fillColor="#00000000" android:pathData="M9,0L9,108"
|
||||||
|
15
app/app/src/main/res/drawable/ic_launcher_foreground.xml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="108dp"
|
||||||
|
android:height="108dp"
|
||||||
|
android:viewportWidth="108"
|
||||||
|
android:viewportHeight="108">
|
||||||
|
<group android:scaleX="1.08"
|
||||||
|
android:scaleY="1.08">
|
||||||
|
<path
|
||||||
|
android:pathData="M50,50m-50,0a50,50 0,1 1,100 0a50,50 0,1 1,-100 0"
|
||||||
|
android:fillColor="#000000"/>
|
||||||
|
<path
|
||||||
|
android:pathData="M30,20l0,60l55,-30z"
|
||||||
|
android:fillColor="#32cd32"/>
|
||||||
|
</group>
|
||||||
|
</vector>
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 992 B |
Before Width: | Height: | Size: 5.2 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 775 B |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 8.5 KiB |