diff --git a/app/build.gradle b/app/build.gradle index ef6cc79..f175b22 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -18,8 +18,8 @@ android { //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature. minSdkVersion 23 targetSdkVersion 29 - versionCode 10 - versionName "1.0.9" + versionCode 12 + versionName "1.1.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryActivity.java b/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryActivity.java index 4c90c09..089fae2 100644 --- a/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryActivity.java +++ b/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryActivity.java @@ -1,6 +1,7 @@ package com.hainaos.vc.activity.category.local; import android.content.Intent; +import android.text.TextUtils; import android.view.View; import androidx.lifecycle.Observer; @@ -10,14 +11,19 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.hainaos.vc.R; import com.hainaos.vc.adapter.VideoAdapter; import com.hainaos.vc.base.mvvm.BaseMvvmActivity; +import com.hainaos.vc.bean.BaseResponse; +import com.hainaos.vc.bean.CategoryInfo; import com.hainaos.vc.bean.LocalVideoInfo; +import com.hainaos.vc.bean.VideoListData; import com.hainaos.vc.databinding.ActivityCategoryLocalBinding; +import com.hainaos.vc.fragment.passwd.PasswdDialogFragment; import com.hainaos.vc.utils.FileUtils; import com.hainaos.vc.utils.ScreenUtils; import com.hainaos.vc.utils.ToastUtil; import com.hainaos.vc.view.CustomDialog; import com.hainaos.vc.view.EquallyDividedItemDecoration; import com.hainaos.vc.view.RecycleGridLayoutManager; +import com.hjq.toast.Toaster; import java.io.File; import java.util.ArrayList; @@ -25,10 +31,12 @@ import java.util.ArrayList; public class LocalCategoryActivity extends BaseMvvmActivity { private static final String TAG = "LocalCategoryActivity"; - private String mTitle; - private String mDirName; + private CategoryInfo mCategoryInfo; + private String mPasswd; private VideoAdapter mVideoAdapter; + private PasswdDialogFragment mPasswdDialogFragment; + private static final int SPAN_COUNT = 3; @@ -68,7 +76,7 @@ public class LocalCategoryActivity extends BaseMvvmActivity>() { @@ -95,10 +107,34 @@ public class LocalCategoryActivity extends BaseMvvmActivity>() { + @Override + public void onChanged(BaseResponse baseResponse) { + if (baseResponse.code == 200) { + mViewModel.getVideoList(mCategoryInfo.getFolder()); + } else { + Toaster.show("密码错误,请重新输入"); + mPasswdDialogFragment = new PasswdDialogFragment(mCategoryInfo); + mPasswdDialogFragment.setConfimCallback(new PasswdDialogFragment.ConfimCallback() { + @Override + public void onConfig(String passwd) { + mPasswd = passwd; + mViewModel.getVideoList(mCategoryInfo.getUuid(), passwd); + } + }); + mPasswdDialogFragment.show(getSupportFragmentManager(), "PasswdDialogFragment"); + } + } + }); + if (TextUtils.isEmpty(mPasswd)) { + mViewModel.getVideoList(mCategoryInfo.getFolder()); + } else { + mViewModel.getVideoList(mCategoryInfo.getUuid(), mPasswd); + } } + private void showDialog(String path, int position) { CustomDialog dialog = new CustomDialog(LocalCategoryActivity.this); dialog.setTitle("删除文件") diff --git a/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryViewModel.java b/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryViewModel.java index 331212f..71556f2 100644 --- a/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryViewModel.java +++ b/app/src/main/java/com/hainaos/vc/activity/category/local/LocalCategoryViewModel.java @@ -5,10 +5,14 @@ import android.util.Log; import androidx.lifecycle.MutableLiveData; import com.hainaos.vc.base.mvvm.BaseViewModel; +import com.hainaos.vc.bean.BaseResponse; import com.hainaos.vc.bean.LocalVideoInfo; +import com.hainaos.vc.bean.VideoListData; import com.hainaos.vc.databinding.ActivityCategoryLocalBinding; +import com.hainaos.vc.network.NetInterfaceManager; import com.hainaos.vc.utils.FileUtils; import com.hainaos.vc.utils.VideoUtils; +import com.trello.rxlifecycle4.RxLifecycle; import com.trello.rxlifecycle4.android.ActivityEvent; import java.io.File; @@ -42,16 +46,46 @@ public class LocalCategoryViewModel extends BaseViewModel> mCategoryVideoInfoListData = new MutableLiveData<>(); + + public void getVideoList(String uuid, String password) { + NetInterfaceManager.getInstance().getVideoListObservable(uuid, password) + .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY)) + .subscribe(new Observer>() { + @Override + public void onSubscribe(@NonNull Disposable d) { + Log.e("getVideoList", "onSubscribe: "); + } + + @Override + public void onNext(@NonNull BaseResponse listBaseResponse) { + Log.e("getVideoList", "onNext: "); + mCategoryVideoInfoListData.setValue(listBaseResponse); + + } + + @Override + public void onError(@NonNull Throwable e) { + Log.e("getVideoList", "onError: " + e.getMessage()); + } + + @Override + public void onComplete() { + Log.e("getVideoList", "onComplete: "); + } + }); + } + public MutableLiveData> mLocalVideoInfosData = new MutableLiveData<>(); - public void getViedoList(String dir) { + public void getVideoList(String dir) { File file = new File(FileUtils.getHainaVideoPath(getCtx()) + dir); Observable .fromCallable(new Callable>() { @Override public List call() throws Exception { String[] strings = file.list(); - Log.e(TAG, "getViedoList: " + Arrays.toString(strings)); + Log.e(TAG, "getVideoList: " + Arrays.toString(strings)); if (strings != null) { return new ArrayList<>(Arrays.asList(strings)); } else { @@ -103,25 +137,25 @@ public class LocalCategoryViewModel extends BaseViewModel>() { @Override public void onSubscribe(@NonNull Disposable d) { - Log.e("getViedoList", "onSubscribe: "); + Log.e("getVideoList", "onSubscribe: "); } @Override public void onNext(@NonNull ArrayList localVideoInfos) { - Log.e("getViedoList", "onNext: "); + Log.e("getVideoList", "onNext: "); mLocalVideoInfosData.setValue(localVideoInfos); } @Override public void onError(@NonNull Throwable e) { - Log.e("getViedoList", "onError: " + e.getMessage()); + Log.e("getVideoList", "onError: " + e.getMessage()); mLocalVideoInfosData.setValue(null); } @Override public void onComplete() { - Log.e("getViedoList", "onComplete: "); + Log.e("getVideoList", "onComplete: "); } }); 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 8d7df4f..941d4c6 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 @@ -21,7 +21,6 @@ import androidx.lifecycle.Observer; import com.hainaos.vc.BuildConfig; import com.hainaos.vc.R; -import com.hainaos.vc.activity.category.local.LocalCategoryActivity; import com.hainaos.vc.activity.login.LoginActivity; import com.hainaos.vc.base.BaseFragmentPagerAdapter; import com.hainaos.vc.base.mvvm.BaseMvvmActivity; @@ -356,12 +355,13 @@ public class MainActivity extends BaseMvvmActivity mContext.startActivity(new Intent(mContext, CategoryListActivity.class)); break; default: - Intent intent = new Intent(mContext, LocalCategoryActivity.class); - intent.putExtra("title", name); - intent.putExtra("dir", dirName); - mContext.startActivity(intent); +// Intent intent = new Intent(mContext, LocalCategoryActivity.class); +// intent.putExtra("title", name); +// intent.putExtra("dir", dirName); +// mContext.startActivity(intent); break; } } else { diff --git a/app/src/main/java/com/hainaos/vc/adapter/HomeCategoryAdapter.java b/app/src/main/java/com/hainaos/vc/adapter/HomeCategoryAdapter.java index 473762d..c65816d 100644 --- a/app/src/main/java/com/hainaos/vc/adapter/HomeCategoryAdapter.java +++ b/app/src/main/java/com/hainaos/vc/adapter/HomeCategoryAdapter.java @@ -99,7 +99,7 @@ public class HomeCategoryAdapter extends RecyclerView.Adapter