pull/137/head
FongMi 3 years ago
parent 908e152a3c
commit 47a00b87c2
  1. 2
      app/src/leanback/AndroidManifest.xml
  2. 17
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 3
      app/src/main/java/com/fongmi/android/tv/api/JarLoader.java
  4. 2
      app/src/mobile/AndroidManifest.xml
  5. 3
      app/src/mobile/java/com/fongmi/android/tv/cast/CastVideo.java
  6. 17
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  7. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/CastDialog.java
  8. 3
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  9. 4
      catvod/src/main/java/com/github/catvod/utils/Path.java

@ -30,6 +30,7 @@
android:name=".ui.activity.HomeActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="sensorLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@ -52,6 +53,7 @@
<data android:scheme="file" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/x-bittorrent" />
</intent-filter>
<intent-filter>

@ -22,6 +22,7 @@ import com.fongmi.android.tv.Updater;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.api.LiveConfig;
import com.fongmi.android.tv.api.WallConfig;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Func;
import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.bean.Result;
@ -46,6 +47,7 @@ import com.fongmi.android.tv.ui.presenter.HistoryPresenter;
import com.fongmi.android.tv.ui.presenter.ProgressPresenter;
import com.fongmi.android.tv.ui.presenter.VodPresenter;
import com.fongmi.android.tv.utils.Clock;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.Notify;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
@ -104,7 +106,11 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
if (Intent.ACTION_SEND.equals(intent.getAction())) {
DetailActivity.push(this, Uri.parse(intent.getStringExtra(Intent.EXTRA_TEXT)));
} else if (Intent.ACTION_VIEW.equals(intent.getAction()) && intent.getData() != null) {
DetailActivity.push(this, intent.getData());
if ("text/plain".equals(intent.getType()) || intent.getData().getPath().endsWith(".m3u")) {
loadLive("file:/" + FileChooser.getPathFromUri(this, intent.getData()));
} else {
DetailActivity.push(this, intent.getData());
}
}
}
@ -161,6 +167,15 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
};
}
private void loadLive(String url) {
LiveConfig.load(Config.find(url, 1), new Callback() {
@Override
public void success() {
LiveActivity.start(getActivity());
}
});
}
private void setFocus() {
mBinding.recycler.requestFocus();
App.post(() -> mBinding.title.setFocusable(true), 500);

@ -3,6 +3,7 @@ package com.fongmi.android.tv.api;
import android.content.Context;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.crawler.Spider;
import com.github.catvod.crawler.SpiderNull;
import com.github.catvod.net.OkHttp;
@ -91,7 +92,7 @@ public class JarLoader {
} else if (jar.startsWith("file")) {
load(key, Path.local(jar));
} else if (!jar.isEmpty()) {
parseJar(key, com.fongmi.android.tv.utils.Utils.convert(ApiConfig.getUrl(), jar));
parseJar(key, Utils.convert(ApiConfig.getUrl(), jar));
}
}

@ -16,6 +16,7 @@
android:name=".ui.activity.MainActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:exported="true"
android:launchMode="singleTask"
android:screenOrientation="fullUser"
android:windowSoftInputMode="adjustPan">
<intent-filter>
@ -37,6 +38,7 @@
<data android:scheme="file" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/plain" />
<data android:mimeType="application/x-bittorrent" />
</intent-filter>
<intent-filter>

@ -4,7 +4,6 @@ import androidx.annotation.NonNull;
import com.android.cast.dlna.core.ICast;
import com.fongmi.android.tv.server.Server;
import com.github.catvod.utils.Path;
import java.util.UUID;
@ -18,7 +17,7 @@ public class CastVideo implements ICast {
}
private CastVideo(String name, String url) {
if (url.startsWith("file")) url = Server.get().getAddress() + "/" + url.replace(Path.rootPath(), "");
if (url.startsWith("file")) url = Server.get().getAddress() + "/" + url;
if (url.contains("127.0.0.1")) url = url.replace("127.0.0.1", Server.get().getIP());
this.name = name;
this.url = url;

@ -16,6 +16,7 @@ import com.fongmi.android.tv.Updater;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.api.LiveConfig;
import com.fongmi.android.tv.api.WallConfig;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.databinding.ActivityMainBinding;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.event.ServerEvent;
@ -27,6 +28,7 @@ import com.fongmi.android.tv.ui.custom.FragmentStateManager;
import com.fongmi.android.tv.ui.fragment.SettingFragment;
import com.fongmi.android.tv.ui.fragment.SettingPlayerFragment;
import com.fongmi.android.tv.ui.fragment.VodFragment;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.Notify;
import com.google.android.material.navigation.NavigationBarView;
@ -67,7 +69,11 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
if (Intent.ACTION_SEND.equals(intent.getAction())) {
DetailActivity.push(this, Uri.parse(intent.getStringExtra(Intent.EXTRA_TEXT)));
} else if (Intent.ACTION_VIEW.equals(intent.getAction()) && intent.getData() != null) {
DetailActivity.push(this, intent.getData());
if ("text/plain".equals(intent.getType()) || intent.getData().getPath().endsWith(".m3u")) {
loadLive("file:/" + FileChooser.getPathFromUri(this, intent.getData()));
} else {
DetailActivity.push(this, intent.getData());
}
}
}
@ -108,6 +114,15 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
};
}
private void loadLive(String url) {
LiveConfig.load(Config.find(url, 1), new Callback() {
@Override
public void success() {
openLive();
}
});
}
private void setNavigation() {
mBinding.navigation.getMenu().findItem(R.id.vod).setVisible(true);
mBinding.navigation.getMenu().findItem(R.id.setting).setVisible(true);

@ -30,7 +30,6 @@ import com.fongmi.android.tv.ui.activity.ScanActivity;
import com.fongmi.android.tv.ui.adapter.DeviceAdapter;
import com.fongmi.android.tv.utils.Notify;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Path;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import org.greenrobot.eventbus.EventBus;
@ -68,7 +67,7 @@ public class CastDialog extends BaseDialog implements DeviceAdapter.OnClickListe
public CastDialog history(History history) {
String id = history.getVodId();
String fd = id.startsWith("file") ? Server.get().getAddress() + "/" + id.replace(Path.rootPath(), "") : id;
String fd = id.startsWith("file") ? Server.get().getAddress() + "/" + id : id;
if (fd.contains("127.0.0.1")) fd = fd.replace("127.0.0.1", Server.get().getIP());
body.add("history", history.toString().replace(id, fd));
return this;

@ -40,7 +40,6 @@ import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Utils;
import com.github.catvod.bean.Doh;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Path;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.permissionx.guolindev.PermissionX;
@ -343,6 +342,6 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE) return;
setConfig(Config.find("file:/" + FileChooser.getPathFromUri(getContext(), data.getData()).replace(Path.rootPath(), ""), type));
setConfig(Config.find("file:/" + FileChooser.getPathFromUri(getContext(), data.getData()), type));
}
}

@ -111,8 +111,8 @@ public class Path {
}
public static File local(String path) {
if (path.contains(rootPath())) return new File(path);
return new File(path.replace("file:/", rootPath()));
File file = new File(path.replace("file:/", root().getAbsolutePath()));
return file.exists() ? file : new File(path.replace("file:/", ""));
}
public static String asset(String fileName) {

Loading…
Cancel
Save