version:4.9

fix:
update:更新下单流程,增加备注,增加桌面图标
This commit is contained in:
2024-03-13 18:13:33 +08:00
parent 7cb6eecb3d
commit 5e9b850d6b
41 changed files with 945 additions and 124 deletions

View File

@@ -0,0 +1,108 @@
package com.uiuios.aios.activity;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.View;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.R;
import com.uiuios.aios.adapter.AddressAdapter;
import com.uiuios.aios.base.BaseDataBindingActivity;
import com.uiuios.aios.bean.AddressInfo;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.databinding.ActivityAddressBinding;
import com.uiuios.aios.gson.GsonUtils;
import com.uiuios.aios.network.NetInterfaceManager;
import java.util.List;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class AddressActivity extends BaseDataBindingActivity {
private ActivityAddressBinding mBinding;
private AddressAdapter mAddressAdapter;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
/**
* 初始化视图
*/
@Override
public void initView() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_address);
mBinding.setListener(new Listener());
mAddressAdapter = new AddressAdapter();
mAddressAdapter.setClickListener(new AddressAdapter.ClickListener() {
@Override
public void onClickListener(AddressInfo addressInfo) {
if (addressInfo != null) {
Intent intent = new Intent();
intent.putExtra("AddressInfo", addressInfo);
setResult(Activity.RESULT_OK, intent);
finish();
}
}
});
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
mBinding.recyclerView.setLayoutManager(linearLayoutManager);
mBinding.recyclerView.setAdapter(mAddressAdapter);
}
/**
* 初始化数据
*/
@Override
public void initData() {
NetInterfaceManager.getInstance().getAddressIndexObservable()
.subscribe(new Observer<BaseResponse<List<AddressInfo>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getAddressIndexObservable", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<List<AddressInfo>> listBaseResponse) {
Log.e("getAddressIndexObservable", "onNext: " + listBaseResponse);
if (listBaseResponse.code == 200) {
List<AddressInfo> addressInfos = listBaseResponse.data;
if (addressInfos != null && addressInfos.size() != 0) {
AddressInfo defaultAddressInfo = addressInfos.get(0);
mMMKV.encode(CommonConfig.MAP_DEFAULT_ADDRESS_ID_KEY, defaultAddressInfo.getId());
mMMKV.encode(CommonConfig.MAP_DEFAULT_ADDRESS_JSON_KEY, GsonUtils.toJSONString(defaultAddressInfo));
mAddressAdapter.setAddressInfoList(addressInfos);
} else {
mAddressAdapter.setAddressInfoList(null);
}
} else {
mAddressAdapter.setAddressInfoList(null);
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getAddressIndexObservable", "onError: ");
}
@Override
public void onComplete() {
Log.e("getAddressIndexObservable", "onComplete: ");
}
});
}
public class Listener {
public void back(View view) {
finish();
}
}
}

View File

@@ -105,23 +105,23 @@ public class EmergencyActivity extends AppCompatActivity {
.subscribe(new Observer<BaseResponse>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("SOSRecordApi", "onSubscribe: ");
Log.e("SosRecordApi", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse baseResponse) {
Log.e("SOSRecordApi", "onNext: " + baseResponse);
Log.e("SosRecordApi", "onNext: " + baseResponse);
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("SOSRecordApi", "onError: " + e.getMessage());
Log.e("SosRecordApi", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("SOSRecordApi", "onComplete: ");
Log.e("SosRecordApi", "onComplete: ");
}
});
needDial = true;

View File

@@ -1,31 +1,44 @@
package com.uiuios.aios.activity;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.databinding.DataBindingUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiuios.aios.BuildConfig;
import com.uiuios.aios.R;
import com.uiuios.aios.base.BaseDataBindingActivity;
import com.uiuios.aios.bean.AddressInfo;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.GoodsInfo;
import com.uiuios.aios.bean.OrderBean;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.databinding.ActivityOrderBinding;
import com.uiuios.aios.gson.GsonUtils;
import com.uiuios.aios.manager.RemoteManager;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.utils.ToastUtil;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.reactivex.rxjava3.annotations.NonNull;
@@ -42,12 +55,47 @@ public class OrderActivity extends BaseDataBindingActivity {
private int mStock;
private int mNumer = 1;
private int mAddressId = 0;
private AddressInfo mAddressInfo;
private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
ActivityResultLauncher<Intent> launcher;
/**
* 初始化视图
*/
@Override
public void initView() {
mBinding = DataBindingUtil.setContentView(this, R.layout.activity_order);
launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
//此处是跳转的result回调方法
Log.e(TAG, "onActivityResult");
if (result.getData() != null && result.getResultCode() == Activity.RESULT_OK) {
// 数据在此处理
AddressInfo addressInfo = (AddressInfo) result.getData().getSerializableExtra("AddressInfo");
Log.e("initView", "onActivityResult: addressInfo = " + addressInfo);
if (addressInfo != null) {
mAddressInfo = addressInfo;
mBinding.setAddressInfo(mAddressInfo);
mAddressId = addressInfo.getId();
Log.e(TAG, "onActivityResult: mAddressId = " + mAddressId);
mMMKV.encode(CommonConfig.MAP_DEFAULT_ADDRESS_ID_KEY, mAddressId);
mMMKV.encode(CommonConfig.MAP_DEFAULT_ADDRESS_JSON_KEY, GsonUtils.toJSONString(mAddressInfo));
} else {
Log.e("initView", "onActivityResult: addressInfo is null");
}
}
}
});
mBinding.clAddress.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
launcher.launch(new Intent(OrderActivity.this, AddressActivity.class));
}
});
mBinding.ivReduce.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -121,6 +169,20 @@ public class OrderActivity extends BaseDataBindingActivity {
if (intent == null) return;
GoodsInfo goodsInfo = (GoodsInfo) intent.getSerializableExtra("GoodsInfo");
if (goodsInfo == null) return;
mAddressId = mMMKV.decodeInt(CommonConfig.MAP_DEFAULT_ADDRESS_ID_KEY, -1);
Log.e(TAG, "initData: mAddressId = " + mAddressId);
String addressJson = mMMKV.decodeString(CommonConfig.MAP_DEFAULT_ADDRESS_JSON_KEY, "");
Gson gson = new Gson();
Type type = new TypeToken<AddressInfo>() {
}.getType();
mAddressInfo = gson.fromJson(addressJson, type);
if (mAddressInfo != null) {
mBinding.setAddressInfo(mAddressInfo);
String area = mAddressInfo.getArea();
List<String> areaList = new ArrayList<>(Arrays.asList(area.split(",")));
mBinding.tvAddress.setText(String.join(" ", areaList) + " " + mAddressInfo.getAddress());
}
mGoodsInfo = goodsInfo;
mBinding.setGoodsInfo(mGoodsInfo);
mBinding.tvPrice.setText("券后¥" + mGoodsInfo.getBuying_price());
@@ -141,7 +203,11 @@ public class OrderActivity extends BaseDataBindingActivity {
params.put("goods_id", NetInterfaceManager.convertToRequestBody(mGoodsInfo.getId()));
params.put("num", NetInterfaceManager.convertToRequestBody(mBinding.editText.getText().toString()));
params.put("sn", NetInterfaceManager.convertToRequestBody(RemoteManager.getInstance().getSerial()));
if (!TextUtils.isEmpty(mBinding.etRemark.getText())) {
params.put("remark", NetInterfaceManager.convertToRequestBody(mBinding.etRemark.getText().toString()));
}
params.put("desktop_app_package", NetInterfaceManager.convertToRequestBody(BuildConfig.APPLICATION_ID));
params.put("address_id", NetInterfaceManager.convertToRequestBody(mAddressId));
NetInterfaceManager.getInstance().getGoodsBuyObservable(params)
.compose(RxLifecycle.bindUntilEvent(lifecycleSubject, ActivityEvent.DESTROY))
.subscribe(new Observer<BaseResponse<OrderBean>>() {

View File

@@ -8,6 +8,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutManager;
import android.content.res.Configuration;
import android.graphics.Color;
import android.os.Build;
@@ -161,6 +162,8 @@ public abstract class BaseMainActivity extends BaseActivity implements MainConta
// 隐藏导航栏
hideNavigationBar();
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
Log.e(TAG, "isRequestPinShortcutSupported: " + shortcutManager.isRequestPinShortcutSupported());
}
private View.OnSystemUiVisibilityChangeListener mOnSystemUiVisibilityChangeListener =