[mobile] support choose video file

pull/123/head
FongMi 3 years ago
parent 106addfa89
commit 7e020e9e1a
  1. 8
      app/src/mobile/AndroidManifest.xml
  2. 10
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  3. 9
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  4. 7
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java

@ -27,6 +27,14 @@
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="video/*" />
<data android:scheme="content" />
<data android:scheme="file" />
</intent-filter>
</activity>
<activity

@ -1,5 +1,6 @@
package com.fongmi.android.tv.ui.activity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
@ -17,6 +18,7 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.app.ShareCompat;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewbinding.ViewBinding;
@ -62,10 +64,12 @@ import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.Player;
import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ExecutorService;
@ -102,6 +106,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private String mKey;
private PiP mPiP;
public static void file(FragmentActivity activity, String url) {
String name = new File(url).getName();
if (Utils.hasPermission(activity)) start(activity, "push_agent", "file://" + url, name);
else PermissionX.init(activity).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> start(activity, "push_agent", "file://" + url, name));
}
public static void push(Activity activity, String url) {
start(activity, "push_agent", url, url);
}

@ -22,6 +22,7 @@ import com.fongmi.android.tv.ui.base.BaseActivity;
import com.fongmi.android.tv.ui.custom.FragmentStateManager;
import com.fongmi.android.tv.ui.fragment.SettingFragment;
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;
@ -57,8 +58,12 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
}
private void checkAction(Intent intent) {
boolean push = ApiConfig.hasPush() && intent.getAction() != null && intent.getAction().equals(Intent.ACTION_SEND) && intent.getType().equals("text/plain");
if (push) DetailActivity.push(this, intent.getStringExtra(Intent.EXTRA_TEXT));
boolean push = ApiConfig.hasPush() && intent.getAction() != null;
if (push && intent.getAction().equals(Intent.ACTION_SEND) && intent.getType().equals("text/plain")) {
DetailActivity.push(this, intent.getStringExtra(Intent.EXTRA_TEXT));
} else if (push && intent.getAction().equals(Intent.ACTION_VIEW)) {
DetailActivity.file(this, FileChooser.getPathFromUri(this, intent.getData()));
}
}
private void initFragment(Bundle savedInstanceState) {

@ -1,6 +1,5 @@
package com.fongmi.android.tv.ui.fragment;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.view.LayoutInflater;
@ -40,9 +39,7 @@ import com.fongmi.android.tv.ui.fragment.child.HomeFragment;
import com.fongmi.android.tv.ui.fragment.child.TypeFragment;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.Prefers;
import com.fongmi.android.tv.utils.Utils;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -235,9 +232,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
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;
String path = "file://" + FileChooser.getPathFromUri(getContext(), data.getData());
if (Utils.hasPermission(getActivity())) DetailActivity.push(getActivity(), path);
else PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> DetailActivity.push(getActivity(), path));
DetailActivity.file(getActivity(), FileChooser.getPathFromUri(getContext(), data.getData()));
}
@Override

Loading…
Cancel
Save