Commit 0fcbf78a authored by 杨秀秀's avatar 杨秀秀

基础搭建

功能开发
申请修改
parent 19b6e2a1
This diff is collapsed.
......@@ -6,11 +6,11 @@ plugins {
def URL_DEBUG="\"http://49.232.201.130:8004/\""
def URL_RELEASE="\"https://hbhapp.cn/api/\""
def URL_RELEASE="\"https://www.hbhapp.cn/api/\""
def URL_DEBUG_H5="\"http://49.232.201.130:7005\""
def URL_RELEASE_H5="\"https://hbhapp.cn\""
def URL_RELEASE_H5="\"https://www.hbhapp.cn\""
android {
signingConfigs {
......
......@@ -121,7 +121,7 @@ public class AddProductViewModel extends BaseViewModel<AddProductRequest> {
}
startPhotoPage(true, max, new SelectCallback() {
startPhotoPage(true, max,"申请的是摄像头和照片视频读取权限,用于添加商品图片时读取和写入相册和文件内容", new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList=new ArrayList<>();
......
......@@ -203,7 +203,7 @@ public class AppealEditViewModel extends BaseViewModel<AppealRequest> {
}
startPhotoPage(true, max, new SelectCallback() {
startPhotoPage(true, max, "申请的是摄像头和照片视频读取权限,用于在诉求场景中读取和写入相册和文件内容",new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList = new ArrayList<>();
......
......@@ -138,7 +138,7 @@ public class AppealViewModel extends BaseViewModel<AppealRequest> {
}
startPhotoPage(true, max, new SelectCallback() {
startPhotoPage(true, max,"申请的是摄像头和照片视频读取权限,用于在添诉求场景中读取和写入相册和文件内容",new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList = new ArrayList<>();
......
......@@ -86,14 +86,14 @@ class LoginActivity() : BaseActivity<ActivityLoginBinding, LoginViewModel>() {
}
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
/* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
if (!Environment.isExternalStorageManager()) {
val intent = Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
intent.setData(Uri.parse("package:$packageName"))
startActivityForResult(intent, 1024)
}
}
}*/
if (viewModel.isAgree) {
binding.ivLoginAgreement.setImageDrawable(getDrawable(R.mipmap.login_icon_xuanze2))
} else {
......
......@@ -89,7 +89,7 @@ public class AddBrankViewModel extends BaseViewModel<MerchantEnterRequst> {
}
startPhotoPage(true, max, new SelectCallback() {
startPhotoPage(true, max,"申请的是摄像头和照片视频读取权限,用于在添加品牌时读取和写入相册和文件内容", new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList = new ArrayList<>();
......
......@@ -133,7 +133,7 @@ public class MerchantEnterViewModel extends BaseViewModel<MerchantEnterRequst> {
public BindingCommand getPhoto = new BindingCommand(new BindingAction() {
@Override
public void call() {
startPhotoPage(true, new SelectCallback() {
startPhotoPage(true, "申请的是摄像头和照片视频读取权限,用于商家信息维护中读取和写入相册和文件内容",new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
......@@ -438,7 +438,7 @@ public class MerchantEnterViewModel extends BaseViewModel<MerchantEnterRequst> {
public void uploadPic(View view)
{
//选择图片
startPhotoPage(true, new SelectCallback() {
startPhotoPage(true,"申请的是摄像头和照片视频读取权限,用于商家信息维护中读取和写入相册和文件内容", new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
model.upLoadFile(new File(photos.get(0).path)).compose(RxUtils.schedulersTransformer()) //线程调度
......
......@@ -81,7 +81,7 @@ public class MerchantInfoViewModel extends BaseViewModel<MerchantEnterRequst> {
public BindingCommand getPhoto = new BindingCommand(new BindingAction() {
@Override
public void call() {
startPhotoPage(true, new SelectCallback() {
startPhotoPage(true, "申请的是摄像头和照片视频读取权限,用于商家信息维护中读取和写入相册和文件内容",new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
......@@ -143,7 +143,7 @@ public class MerchantInfoViewModel extends BaseViewModel<MerchantEnterRequst> {
public void uploadPic(View view)
{
//选择图片
startPhotoPage(true, new SelectCallback() {
startPhotoPage(true,"申请的是摄像头和照片视频读取权限,用于商家信息维护中读取和写入相册和文件内容", new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
model.upLoadFile(new File(photos.get(0).path)).compose(RxUtils.schedulersTransformer()) //线程调度
......
......@@ -241,7 +241,7 @@
android:layout_width="106dp"
android:layout_height="80dp"
app:layout_constraintTop_toTopOf="parent"
android:onClick="@{viewModel.bigPic}"
android:onClick="@{viewModel.uploadPic}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
pic_url="@{viewModel.merchantInfo.businessLicense}"
......@@ -284,7 +284,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:onClick="@{viewModel.bigPic}"
android:onClick="@{viewModel.uploadPic}"
pic_url="@{viewModel.merchantInfo.operatingPermit}"
android:id="@+id/xup_frm_licence"
android:layout_marginLeft="129dp"
......
......@@ -6,11 +6,11 @@ plugins {
def URL_DEBUG="\"http://49.232.201.130:8004/\""
def URL_RELEASE="\"https://hbhapp.cn/api/\""
def URL_RELEASE="\"https://www.hbhapp.cn/api/\""
def URL_DEBUG_H5="\"http://49.232.201.130:7005\""
def URL_RELEASE_H5="\"https://hbhapp.cn\""
def URL_RELEASE_H5="\"https://www.hbhapp.cn\""
android {
signingConfigs {
......
......@@ -109,7 +109,7 @@ public class MineViewModel extends BaseViewModel<MineRequest> {
});
public void choosePhoto() {
startPhotoPage(true, new SelectCallback() {
startPhotoPage(true,"申请的是摄像头和照片视频读取权限,用于设置头像", new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
file = new File(photos.get(0).path);
......@@ -223,7 +223,7 @@ public class MineViewModel extends BaseViewModel<MineRequest> {
}
public void takePhoto() {
startPhotoPage(true, new SelectCallback() {
startPhotoPage(true, "申请的是摄像头和照片视频读取权限,用于个人头像维护中读取和写入相册和文件内容",new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
......
......@@ -101,6 +101,7 @@ public class RecruitDetailActivity extends BaseActivity<ActivityRecruitDetailBin
Manifest.permission.READ_EXTERNAL_STORAGE);//缺少什么权限就写什么权限
if (permission != PackageManager.PERMISSION_GRANTED) {
// We don't have permission so prompt the user
ToastUtils.showShort("申请的是文件读取权限,用于投递简历");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,}, 0);
}
int permission2 = ActivityCompat.checkSelfPermission(this,
......
......@@ -46,7 +46,7 @@
android:layout_marginLeft="17dp"
android:layout_marginTop="31dp"
android:lineSpacingExtra="10dp"
android:text="为你推荐"
android:text="精选商品"
android:textColor="#FF333333"
android:textSize="20sp"
android:textStyle="bold" />
......
......@@ -57,7 +57,7 @@
<string name="shop_navigation">店内导航</string>
<string name="shop_services">门店服务</string>
<string name="low_priced_goods">低价好物</string>
<string name="guess_like">猜你喜欢</string>
<string name="guess_like">每日精选</string>
<string name="more">更多</string>
<string name="coupon_collection">优惠券领取</string>
<!--首页模块 店员管理-->
......
......@@ -6,11 +6,11 @@ plugins {
def URL_DEBUG="\"http://49.232.201.130:8004/\""
def URL_RELEASE="\"https://hbhapp.cn/api/\""
def URL_RELEASE="\"https://www.hbhapp.cn/api/\""
def URL_DEBUG_H5="\"http://49.232.201.130:7005\""
def URL_RELEASE_H5="\"https://hbhapp.cn\""
def URL_RELEASE_H5="\"https://www.hbhapp.cn\""
android {
......
......@@ -206,7 +206,7 @@ public class AppealEditViewModel extends BaseViewModel<AppealRequest> {
}
startPhotoPage(true, max, new SelectCallback() {
startPhotoPage(true, max, "申请的是摄像头和照片视频读取权限,用于在添诉求场景中读取和写入相册和文件内容",new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList = new ArrayList<>();
......
......@@ -253,7 +253,7 @@ public class AppealHandleViewModel extends BaseViewModel<AppealRequest> {
}
startPhotoPage(true, max, new SelectCallback() {
startPhotoPage(true, max,"申请的是摄像头和照片视频读取权限,用于诉求场景中读取和写入相册和文件内容", new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList = new ArrayList<>();
......
......@@ -115,7 +115,7 @@ public class AppealViewModel extends BaseViewModel<AppealRequest> {
}
startPhotoPage(true, max, new SelectCallback() {
startPhotoPage(true, max,"申请的是摄像头和照片视频读取权限,用于在添诉求场景中读取和写入相册和文件内容", new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList = new ArrayList<>();
......
......@@ -540,7 +540,7 @@ public class QualityAuditInfoViewModel extends BaseViewModel<QualityAuditRequst>
public void changeLogo(View view )
{
startPhotoPage(false, new SelectCallback() {
startPhotoPage(false, "申请的是摄像头和照片视频读取权限,用于商家信息维护中读取和写入相册和文件内容",new SelectCallback() {
@Override
public void onResult(ArrayList<Photo> photos, boolean isOriginal) {
List<File> fList = new ArrayList<>();
......
......@@ -204,6 +204,16 @@ public abstract class BaseActivity<V extends ViewDataBinding, VM extends BaseVie
@Override
public void onChanged(Map<String, Object> o) {
if ( !rp.isGranted(Manifest.permission.CAMERA) || !rp.isGranted(Manifest.permission.READ_EXTERNAL_STORAGE))
{
ToastUtils.showLong(o.get("pMsg").toString());
}
rp.request(Manifest.permission.CAMERA,Manifest.permission.READ_EXTERNAL_STORAGE).subscribe(new io.reactivex.rxjava3.core.Observer<Boolean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
......
package me.goldze.mvvmhabit.base;
import android.Manifest;
import android.app.ActivityManager;
import android.app.DatePickerDialog;
import android.content.Context;
......@@ -21,6 +22,7 @@ import androidx.lifecycle.ViewModelProviders;
import com.afollestad.materialdialogs.MaterialDialog;
import com.huantansheng.easyphotos.EasyPhotos;
import com.huantansheng.easyphotos.callback.SelectCallback;
import com.tbruyelle.rxpermissions3.RxPermissions;
import com.trello.rxlifecycle4.components.support.RxFragment;
import java.lang.reflect.ParameterizedType;
......@@ -31,6 +33,8 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.disposables.Disposable;
import me.goldze.mvvmhabit.base.BaseViewModel.ParameterField;
import me.goldze.mvvmhabit.bus.Messenger;
......@@ -41,6 +45,7 @@ import com.xx.xxviewlibrary.utils.GlideEngine;
import me.goldze.mvvmhabit.utils.MaterialDialogUtils;
import me.goldze.mvvmhabit.utils.StringUtils;
import me.goldze.mvvmhabit.utils.ToastUtils;
/**
* Created by goldze on 2017/6/15.
......@@ -54,6 +59,7 @@ public abstract class BaseFragment<V extends ViewDataBinding, VM extends BaseVie
private NUllDialog nullDialog;
Fragment f = this;
RxPermissions rp;
@Override
public void onCreate(Bundle savedInstanceState) {
......@@ -89,6 +95,7 @@ public abstract class BaseFragment<V extends ViewDataBinding, VM extends BaseVie
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
rp =new RxPermissions(this);
//私有的初始化Databinding和ViewModel方法
initViewDataBinding(viewModelType());
//私有的ViewModel与View的契约事件回调逻辑
......@@ -192,9 +199,48 @@ public abstract class BaseFragment<V extends ViewDataBinding, VM extends BaseVie
viewModel.getUC().getStartPhotoEvent().observe(this, new Observer<Map<String, Object>>() {
@Override
public void onChanged(Map<String, Object> o) {
boolean hasCamera = (boolean) o.get("hasCamera");
SelectCallback callback = (SelectCallback) o.get("callBack");
startPhoto(hasCamera, callback);
if ( !rp.isGranted(Manifest.permission.CAMERA) || !rp.isGranted(Manifest.permission.READ_EXTERNAL_STORAGE))
{
ToastUtils.showShort(o.get("pMsg").toString());
}
rp.request(Manifest.permission.CAMERA,Manifest.permission.READ_EXTERNAL_STORAGE).subscribe(new io.reactivex.rxjava3.core.Observer<Boolean>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Boolean aBoolean) {
if (aBoolean)
{
boolean hasCamera = (boolean) o.get("hasCamera");
SelectCallback callback = (SelectCallback) o.get("callBack");
startPhoto(hasCamera, callback);
}else {
ToastUtils.showShort("请开启拍照,和文件读取权限,否则无法正常使用完整功能");
}
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
});
......
......@@ -188,11 +188,13 @@ public class BaseViewModel<M extends BaseModel> extends AndroidViewModel impleme
* @param hasCamera 是否有照相机功能
* @param callback
*/
public void startPhotoPage(boolean hasCamera, SelectCallback callback)
public void startPhotoPage(boolean hasCamera, String msg,SelectCallback callback)
{
Map<String, Object> photomap = new HashMap<>();
photomap.put("hasCamera", hasCamera);
photomap.put("maxCount", 1);
photomap.put("pMsg",msg);
if (callback != null) {
photomap.put("callBack", callback);
}
......@@ -205,11 +207,12 @@ public class BaseViewModel<M extends BaseModel> extends AndroidViewModel impleme
* @param maxCount 选则最大数量
* @param callback
*/
public void startPhotoPage(boolean hasCamera,int maxCount, SelectCallback callback)
public void startPhotoPage(boolean hasCamera,int maxCount, String msg,SelectCallback callback)
{
Map<String, Object> photomap = new HashMap<>();
photomap.put("hasCamera", hasCamera);
photomap.put("maxCount", maxCount);
photomap.put("pMsg",msg);
if (callback != null) {
photomap.put("callBack", callback);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment