version:1.1.1

bugfixes:修复主页不用密码就可以进入的问题
update:
This commit is contained in:
2026-03-09 09:37:54 +08:00
parent af918d0f62
commit 6b093de6c2
6 changed files with 152 additions and 77 deletions

View File

@@ -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. //There are no CERT files because If the mini sdk version is 23+, the AGP will ignore the V1 scheme signature.
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 29 targetSdkVersion 29
versionCode 10 versionCode 12
versionName "1.0.9" versionName "1.1.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -1,6 +1,7 @@
package com.hainaos.vc.activity.category.local; package com.hainaos.vc.activity.category.local;
import android.content.Intent; import android.content.Intent;
import android.text.TextUtils;
import android.view.View; import android.view.View;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
@@ -10,14 +11,19 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import com.hainaos.vc.R; import com.hainaos.vc.R;
import com.hainaos.vc.adapter.VideoAdapter; import com.hainaos.vc.adapter.VideoAdapter;
import com.hainaos.vc.base.mvvm.BaseMvvmActivity; 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.LocalVideoInfo;
import com.hainaos.vc.bean.VideoListData;
import com.hainaos.vc.databinding.ActivityCategoryLocalBinding; import com.hainaos.vc.databinding.ActivityCategoryLocalBinding;
import com.hainaos.vc.fragment.passwd.PasswdDialogFragment;
import com.hainaos.vc.utils.FileUtils; import com.hainaos.vc.utils.FileUtils;
import com.hainaos.vc.utils.ScreenUtils; import com.hainaos.vc.utils.ScreenUtils;
import com.hainaos.vc.utils.ToastUtil; import com.hainaos.vc.utils.ToastUtil;
import com.hainaos.vc.view.CustomDialog; import com.hainaos.vc.view.CustomDialog;
import com.hainaos.vc.view.EquallyDividedItemDecoration; import com.hainaos.vc.view.EquallyDividedItemDecoration;
import com.hainaos.vc.view.RecycleGridLayoutManager; import com.hainaos.vc.view.RecycleGridLayoutManager;
import com.hjq.toast.Toaster;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
@@ -25,10 +31,12 @@ import java.util.ArrayList;
public class LocalCategoryActivity extends BaseMvvmActivity<LocalCategoryViewModel, ActivityCategoryLocalBinding> { public class LocalCategoryActivity extends BaseMvvmActivity<LocalCategoryViewModel, ActivityCategoryLocalBinding> {
private static final String TAG = "LocalCategoryActivity"; private static final String TAG = "LocalCategoryActivity";
private String mTitle; private CategoryInfo mCategoryInfo;
private String mDirName; private String mPasswd;
private VideoAdapter mVideoAdapter; private VideoAdapter mVideoAdapter;
private PasswdDialogFragment mPasswdDialogFragment;
private static final int SPAN_COUNT = 3; private static final int SPAN_COUNT = 3;
@@ -68,7 +76,7 @@ public class LocalCategoryActivity extends BaseMvvmActivity<LocalCategoryViewMod
@Override @Override
public void onRefresh() { public void onRefresh() {
mViewDataBinding.swipeRefreshLayout.setRefreshing(true); mViewDataBinding.swipeRefreshLayout.setRefreshing(true);
mViewModel.getViedoList(mDirName); mViewModel.getVideoList(mCategoryInfo.getFolder());
} }
}); });
} }
@@ -76,9 +84,13 @@ public class LocalCategoryActivity extends BaseMvvmActivity<LocalCategoryViewMod
@Override @Override
protected void initData() { protected void initData() {
Intent intent = getIntent(); Intent intent = getIntent();
mTitle = intent.getStringExtra("title"); mCategoryInfo = (CategoryInfo) intent.getSerializableExtra("CategoryInfo");
mDirName = intent.getStringExtra("dir"); mPasswd = intent.getStringExtra("passwd");
mViewDataBinding.setTitle(mTitle); if (mCategoryInfo == null) {
finish();
return;
}
mViewDataBinding.setTitle(mCategoryInfo.getCategory_name());
mViewModel.mLocalVideoInfosData.observe(this, new Observer<ArrayList<LocalVideoInfo>>() { mViewModel.mLocalVideoInfosData.observe(this, new Observer<ArrayList<LocalVideoInfo>>() {
@@ -95,10 +107,34 @@ public class LocalCategoryActivity extends BaseMvvmActivity<LocalCategoryViewMod
mViewDataBinding.swipeRefreshLayout.setRefreshing(false); mViewDataBinding.swipeRefreshLayout.setRefreshing(false);
} }
}); });
mViewModel.getViedoList(mDirName); mViewModel.mCategoryVideoInfoListData.observe(this, new Observer<BaseResponse<VideoListData>>() {
@Override
public void onChanged(BaseResponse<VideoListData> 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) { private void showDialog(String path, int position) {
CustomDialog dialog = new CustomDialog(LocalCategoryActivity.this); CustomDialog dialog = new CustomDialog(LocalCategoryActivity.this);
dialog.setTitle("删除文件") dialog.setTitle("删除文件")

View File

@@ -5,10 +5,14 @@ import android.util.Log;
import androidx.lifecycle.MutableLiveData; import androidx.lifecycle.MutableLiveData;
import com.hainaos.vc.base.mvvm.BaseViewModel; import com.hainaos.vc.base.mvvm.BaseViewModel;
import com.hainaos.vc.bean.BaseResponse;
import com.hainaos.vc.bean.LocalVideoInfo; import com.hainaos.vc.bean.LocalVideoInfo;
import com.hainaos.vc.bean.VideoListData;
import com.hainaos.vc.databinding.ActivityCategoryLocalBinding; import com.hainaos.vc.databinding.ActivityCategoryLocalBinding;
import com.hainaos.vc.network.NetInterfaceManager;
import com.hainaos.vc.utils.FileUtils; import com.hainaos.vc.utils.FileUtils;
import com.hainaos.vc.utils.VideoUtils; import com.hainaos.vc.utils.VideoUtils;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent; import com.trello.rxlifecycle4.android.ActivityEvent;
import java.io.File; import java.io.File;
@@ -42,16 +46,46 @@ public class LocalCategoryViewModel extends BaseViewModel<ActivityCategoryLocalB
} }
public MutableLiveData<BaseResponse<VideoListData>> mCategoryVideoInfoListData = new MutableLiveData<>();
public void getVideoList(String uuid, String password) {
NetInterfaceManager.getInstance().getVideoListObservable(uuid, password)
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
.subscribe(new Observer<BaseResponse<VideoListData>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getVideoList", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<VideoListData> 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<ArrayList<LocalVideoInfo>> mLocalVideoInfosData = new MutableLiveData<>(); public MutableLiveData<ArrayList<LocalVideoInfo>> mLocalVideoInfosData = new MutableLiveData<>();
public void getViedoList(String dir) { public void getVideoList(String dir) {
File file = new File(FileUtils.getHainaVideoPath(getCtx()) + dir); File file = new File(FileUtils.getHainaVideoPath(getCtx()) + dir);
Observable Observable
.fromCallable(new Callable<List<String>>() { .fromCallable(new Callable<List<String>>() {
@Override @Override
public List<String> call() throws Exception { public List<String> call() throws Exception {
String[] strings = file.list(); String[] strings = file.list();
Log.e(TAG, "getViedoList: " + Arrays.toString(strings)); Log.e(TAG, "getVideoList: " + Arrays.toString(strings));
if (strings != null) { if (strings != null) {
return new ArrayList<>(Arrays.asList(strings)); return new ArrayList<>(Arrays.asList(strings));
} else { } else {
@@ -103,25 +137,25 @@ public class LocalCategoryViewModel extends BaseViewModel<ActivityCategoryLocalB
.subscribe(new Observer<ArrayList<LocalVideoInfo>>() { .subscribe(new Observer<ArrayList<LocalVideoInfo>>() {
@Override @Override
public void onSubscribe(@NonNull Disposable d) { public void onSubscribe(@NonNull Disposable d) {
Log.e("getViedoList", "onSubscribe: "); Log.e("getVideoList", "onSubscribe: ");
} }
@Override @Override
public void onNext(@NonNull ArrayList<LocalVideoInfo> localVideoInfos) { public void onNext(@NonNull ArrayList<LocalVideoInfo> localVideoInfos) {
Log.e("getViedoList", "onNext: "); Log.e("getVideoList", "onNext: ");
mLocalVideoInfosData.setValue(localVideoInfos); mLocalVideoInfosData.setValue(localVideoInfos);
} }
@Override @Override
public void onError(@NonNull Throwable e) { public void onError(@NonNull Throwable e) {
Log.e("getViedoList", "onError: " + e.getMessage()); Log.e("getVideoList", "onError: " + e.getMessage());
mLocalVideoInfosData.setValue(null); mLocalVideoInfosData.setValue(null);
} }
@Override @Override
public void onComplete() { public void onComplete() {
Log.e("getViedoList", "onComplete: "); Log.e("getVideoList", "onComplete: ");
} }
}); });

View File

@@ -21,7 +21,6 @@ import androidx.lifecycle.Observer;
import com.hainaos.vc.BuildConfig; import com.hainaos.vc.BuildConfig;
import com.hainaos.vc.R; import com.hainaos.vc.R;
import com.hainaos.vc.activity.category.local.LocalCategoryActivity;
import com.hainaos.vc.activity.login.LoginActivity; import com.hainaos.vc.activity.login.LoginActivity;
import com.hainaos.vc.base.BaseFragmentPagerAdapter; import com.hainaos.vc.base.BaseFragmentPagerAdapter;
import com.hainaos.vc.base.mvvm.BaseMvvmActivity; import com.hainaos.vc.base.mvvm.BaseMvvmActivity;
@@ -356,12 +355,13 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
} }
} }
private void openCategory(String title, String dir) { // @Deprecated
Intent intent = new Intent(MainActivity.this, LocalCategoryActivity.class); // private void openCategory(String title, String dir) {
intent.putExtra("title", title); // Intent intent = new Intent(MainActivity.this, LocalCategoryActivity.class);
intent.putExtra("dir", dir); // intent.putExtra("title", title);
startActivity(intent); // intent.putExtra("dir", dir);
} // startActivity(intent);
// }
public class BtnClick { public class BtnClick {
public void exit(View view) { public void exit(View view) {
@@ -372,53 +372,53 @@ public class MainActivity extends BaseMvvmActivity<MainViewModel, ActivityMainBi
startActivity(new Intent(MainActivity.this, LoginActivity.class)); startActivity(new Intent(MainActivity.this, LoginActivity.class));
} }
public void open1(View view) { // public void open1(View view) {
openCategory("发型设计", "1"); // openCategory("发型设计", "1");
} // }
//
public void open2(View view) { // public void open2(View view) {
openCategory("化妆基础", "2"); // openCategory("化妆基础", "2");
} // }
//
public void open3(View view) { // public void open3(View view) {
openCategory("美甲技巧", "3"); // openCategory("美甲技巧", "3");
} // }
//
public void open4(View view) { // public void open4(View view) {
openCategory("皮肤管理", "4"); // openCategory("皮肤管理", "4");
} // }
//
public void open5(View view) { // public void open5(View view) {
openCategory("纹绣入门", "5"); // openCategory("纹绣入门", "5");
} // }
//
public void open6(View view) { // public void open6(View view) {
openCategory("美睫教程", "6"); // openCategory("美睫教程", "6");
} // }
//
public void open7(View view) { // public void open7(View view) {
openCategory("形象穿搭", "7"); // openCategory("形象穿搭", "7");
} // }
//
public void open8(View view) { // public void open8(View view) {
openCategory("门店营销", "8"); // openCategory("门店营销", "8");
} // }
//
public void open9(View view) { // public void open9(View view) {
openCategory("色彩搭配", "9"); // openCategory("色彩搭配", "9");
} // }
//
public void open10(View view) { // public void open10(View view) {
openCategory("工具消毒", "10"); // openCategory("工具消毒", "10");
} // }
//
public void open11(View view) { // public void open11(View view) {
//
} // }
//
public void open12(View view) { // public void open12(View view) {
//
} // }
} }
} }

View File

@@ -21,7 +21,6 @@ import androidx.recyclerview.widget.RecyclerView;
import com.hainaos.vc.R; import com.hainaos.vc.R;
import com.hainaos.vc.activity.category.list.CategoryListActivity; import com.hainaos.vc.activity.category.list.CategoryListActivity;
import com.hainaos.vc.activity.category.local.LocalCategoryActivity;
import com.hainaos.vc.activity.user.UserActivity; import com.hainaos.vc.activity.user.UserActivity;
import com.hainaos.vc.bean.HomeAppInfo; import com.hainaos.vc.bean.HomeAppInfo;
import com.hainaos.vc.utils.ApkUtils; import com.hainaos.vc.utils.ApkUtils;
@@ -95,10 +94,10 @@ public class HomeAppAdapter extends RecyclerView.Adapter<HomeAppAdapter.Holder>
mContext.startActivity(new Intent(mContext, CategoryListActivity.class)); mContext.startActivity(new Intent(mContext, CategoryListActivity.class));
break; break;
default: default:
Intent intent = new Intent(mContext, LocalCategoryActivity.class); // Intent intent = new Intent(mContext, LocalCategoryActivity.class);
intent.putExtra("title", name); // intent.putExtra("title", name);
intent.putExtra("dir", dirName); // intent.putExtra("dir", dirName);
mContext.startActivity(intent); // mContext.startActivity(intent);
break; break;
} }
} else { } else {

View File

@@ -99,7 +99,7 @@ public class HomeCategoryAdapter extends RecyclerView.Adapter<HomeCategoryAdapte
mPasswdDialogFragment.setConfimCallback(new PasswdDialogFragment.ConfimCallback() { mPasswdDialogFragment.setConfimCallback(new PasswdDialogFragment.ConfimCallback() {
@Override @Override
public void onConfig(String passwd) { public void onConfig(String passwd) {
openCategory(categoryInfo); openCategory(categoryInfo, passwd);
} }
}); });
mPasswdDialogFragment.show(mFragmentManager, "PasswdDialogFragment"); mPasswdDialogFragment.show(mFragmentManager, "PasswdDialogFragment");
@@ -112,8 +112,14 @@ public class HomeCategoryAdapter extends RecyclerView.Adapter<HomeCategoryAdapte
private void openCategory(CategoryInfo categoryInfo) { private void openCategory(CategoryInfo categoryInfo) {
Intent intent = new Intent(mContext, LocalCategoryActivity.class); Intent intent = new Intent(mContext, LocalCategoryActivity.class);
intent.putExtra("title", categoryInfo.getCategory_name()); intent.putExtra("CategoryInfo", categoryInfo);
intent.putExtra("dir", categoryInfo.getFolder()); mContext.startActivity(intent);
}
private void openCategory(CategoryInfo categoryInfo, String passwd) {
Intent intent = new Intent(mContext, LocalCategoryActivity.class);
intent.putExtra("CategoryInfo", categoryInfo);
intent.putExtra("passwd", passwd);
mContext.startActivity(intent); mContext.startActivity(intent);
} }