diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8dd111b..7d68b2a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -29,6 +29,10 @@ + + localVideoInfos) { mVideoAdapter.setData(localVideoInfos); + mViewDataBinding.swipeRefreshLayout.setRefreshing(false); } }); - mViewModel.getViedoList(); + mViewModel.getViedoList(mDirName); } diff --git a/app/src/main/java/com/hainaos/vc/activity/category/CategoryViewModel.java b/app/src/main/java/com/hainaos/vc/activity/category/CategoryViewModel.java index 5144cd8..6d8dea9 100644 --- a/app/src/main/java/com/hainaos/vc/activity/category/CategoryViewModel.java +++ b/app/src/main/java/com/hainaos/vc/activity/category/CategoryViewModel.java @@ -1,16 +1,27 @@ package com.hainaos.vc.activity.category; +import android.os.Environment; +import android.util.Log; + import androidx.lifecycle.MutableLiveData; import com.hainaos.vc.base.mvvm.BaseViewModel; import com.hainaos.vc.bean.LocalVideoInfo; import com.hainaos.vc.databinding.ActivityCategoryBinding; +import com.hainaos.vc.utils.VideoUtils; import com.trello.rxlifecycle4.android.ActivityEvent; +import java.io.File; import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.function.Function; +import java.util.stream.Collectors; public class CategoryViewModel extends BaseViewModel { + private static final String TAG = "CategoryViewModel"; + @Override public ActivityCategoryBinding getVDBinding() { return binding; @@ -23,22 +34,28 @@ public class CategoryViewModel extends BaseViewModel> mLocalVideoInfosData = new MutableLiveData<>(); - public void getViedoList() { - LocalVideoInfo localVideoInfo = new LocalVideoInfo(); - localVideoInfo.setFile_name("test_video_1"); - localVideoInfo.setLocalPath("/storage/emulated/0/Movies/test_video_1.mp4"); - ArrayList localVideoInfos = new ArrayList<>(); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - localVideoInfos.add(localVideoInfo); - - mLocalVideoInfosData.setValue(localVideoInfos); + public void getViedoList(String dir) { + File file = new File(Environment.getExternalStorageDirectory() + File.separator + "haina" + File.separator + dir); + if (file.exists()) { + String[] strings = file.list(); + Log.e(TAG, "getViedoList: " + Arrays.toString(strings)); + if (strings != null) { + List paths = new ArrayList<>(Arrays.asList(strings)); + ArrayList localVideoInfos = paths.stream().map(new Function() { + @Override + public LocalVideoInfo apply(String s) { + LocalVideoInfo localVideoInfo = new LocalVideoInfo(); + localVideoInfo.setFile_name(VideoUtils.getFileNameWithoutExtension(s)); + localVideoInfo.setLocalPath(new File(file.getAbsolutePath() + File.separator + s).getAbsolutePath()); + return localVideoInfo; + } + }).collect(Collectors.toCollection(ArrayList::new)); + mLocalVideoInfosData.setValue(localVideoInfos); + } else { + mLocalVideoInfosData.setValue(null); + } + } else { + mLocalVideoInfosData.setValue(null); + } } } diff --git a/app/src/main/java/com/hainaos/vc/activity/login/LoginActivity.java b/app/src/main/java/com/hainaos/vc/activity/login/LoginActivity.java new file mode 100644 index 0000000..43749da --- /dev/null +++ b/app/src/main/java/com/hainaos/vc/activity/login/LoginActivity.java @@ -0,0 +1,35 @@ +package com.hainaos.vc.activity.login; + +import com.hainaos.vc.R; +import com.hainaos.vc.base.mvvm.BaseMvvmActivity; +import com.hainaos.vc.databinding.ActivityLoginBinding; + +public class LoginActivity extends BaseMvvmActivity { + + @Override + protected int getLayoutId() { + return R.layout.activity_login; + } + + @Override + protected void initDataBinding() { + mViewModel.setCtx(this); + mViewModel.setVDBinding(mViewDataBinding); + mViewModel.setLifecycle(getLifecycleSubject()); + mViewDataBinding.setClick(new BtnClick()); + } + + @Override + protected void initView() { + + } + + @Override + protected void initData() { + + } + + public class BtnClick { + + } +} diff --git a/app/src/main/java/com/hainaos/vc/activity/login/LoginViewModel.java b/app/src/main/java/com/hainaos/vc/activity/login/LoginViewModel.java new file mode 100644 index 0000000..e990114 --- /dev/null +++ b/app/src/main/java/com/hainaos/vc/activity/login/LoginViewModel.java @@ -0,0 +1,18 @@ +package com.hainaos.vc.activity.login; + +import com.hainaos.vc.base.mvvm.BaseViewModel; +import com.hainaos.vc.databinding.ActivityLoginBinding; +import com.trello.rxlifecycle4.android.ActivityEvent; + +public class LoginViewModel extends BaseViewModel { + + @Override + public ActivityLoginBinding getVDBinding() { + return binding; + } + + @Override + public void onDestroy() { + + } +} diff --git a/app/src/main/java/com/hainaos/vc/activity/main/MainActivity.java b/app/src/main/java/com/hainaos/vc/activity/main/MainActivity.java index c66f134..9501392 100644 --- a/app/src/main/java/com/hainaos/vc/activity/main/MainActivity.java +++ b/app/src/main/java/com/hainaos/vc/activity/main/MainActivity.java @@ -18,6 +18,7 @@ import androidx.core.app.ActivityCompat; import com.hainaos.vc.R; import com.hainaos.vc.activity.category.CategoryActivity; +import com.hainaos.vc.activity.login.LoginActivity; import com.hainaos.vc.base.mvvm.BaseMvvmActivity; import com.hainaos.vc.config.CommonConfig; import com.hainaos.vc.databinding.ActivityMainBinding; @@ -316,9 +317,10 @@ public class MainActivity extends BaseMvvmActivity File file = new File(localPath); if (file.exists()) { holder.iv_status.setVisibility(View.GONE); - Glide.with(mContext).load(url + "?x-oss-process=video/snapshot,t_0,f_jpg").error(R.mipmap.ic_launcher).into(holder.video_image); + Glide.with(mContext).load(file).error(R.mipmap.ic_launcher).into(holder.video_image); holder.duration.setText(TimeUtils.TimeFormat(localVideoInfo.getDuration() * 1000)); // Observable.create(new ObservableOnSubscribe() { // @Override @@ -166,7 +166,7 @@ public class VideoAdapter extends RecyclerView.Adapter if (JgyUtils.getInstance().fileExists(url)) { Intent intent = new Intent(mContext, TikTokActivity.class); intent.putExtra("position", position); - intent.putParcelableArrayListExtra("list", mLocalVideoInfos); + intent.putExtra("list", mLocalVideoInfos); mContext.startActivity(intent); } else { JgyUtils.getInstance().ariaDownload(url, GsonUtils.getJsonObject(GsonUtils.toJSONString(localVideoInfo))); diff --git a/app/src/main/res/drawable/bg_login.xml b/app/src/main/res/drawable/bg_login.xml new file mode 100644 index 0000000..dbdac21 --- /dev/null +++ b/app/src/main/res/drawable/bg_login.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_login_button.xml b/app/src/main/res/drawable/bg_login_button.xml new file mode 100644 index 0000000..90d8e31 --- /dev/null +++ b/app/src/main/res/drawable/bg_login_button.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/edit_background.xml b/app/src/main/res/drawable/edit_background.xml new file mode 100644 index 0000000..9f30501 --- /dev/null +++ b/app/src/main/res/drawable/edit_background.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_category.xml b/app/src/main/res/layout/activity_category.xml index 8867b95..db8c15e 100644 --- a/app/src/main/res/layout/activity_category.xml +++ b/app/src/main/res/layout/activity_category.xml @@ -53,8 +53,8 @@ android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textColor="@color/white" android:text="@{title}" + android:textColor="@color/white" android:textSize="18sp" android:textStyle="bold" app:layout_constraintBottom_toBottomOf="parent" @@ -71,11 +71,17 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintTop_toBottomOf="@+id/cl_title"> - + android:layout_height="match_parent"> + + + diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml new file mode 100644 index 0000000..9d863bb --- /dev/null +++ b/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 75df650..135ec9f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -77,6 +77,7 @@ android:layout_height="32dp" android:layout_marginEnd="8dp" android:adjustViewBounds="true" + android:onClick="@{click::login}" android:scaleType="centerCrop" android:src="@drawable/icon_main_login" app:layout_constraintBottom_toBottomOf="parent"