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 boolean setNightMode() { return true; } @Override protected void initDataBinding() { mBinding = DataBindingUtil.setContentView(this, R.layout.activity_address); } /** * 初始化视图 */ @Override public void initView() { 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>>() { @Override public void onSubscribe(@NonNull Disposable d) { Log.e("getAddressIndexObservable", "onSubscribe: "); } @Override public void onNext(@NonNull BaseResponse> listBaseResponse) { Log.e("getAddressIndexObservable", "onNext: " + listBaseResponse); if (listBaseResponse.code == 200) { List 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(); } } }