diff --git a/app/build.gradle b/app/build.gradle
index 7321fda..b93cc1f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -15,8 +15,8 @@ android {
applicationId "com.uiuios.aios"
minSdkVersion 24
targetSdkVersion 29
- versionCode 51
- versionName "6.0"
+ versionCode 52
+ versionName "6.1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 312b64e..50a6e00 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -192,6 +192,10 @@
android:name=".activity.contact.AddContactActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
+
phoneListSet;
- private CacheHelper mCacheHelper;
+// private List phoneListSet;
+// private CacheHelper mCacheHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.e(TAG, "onCreate: ");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_emergency);
- mCacheHelper = new CacheHelper(this);
+// mCacheHelper = new CacheHelper(this);
ButterKnife.bind(this);
//发送紧急广播
@@ -75,20 +83,22 @@ public class EmergencyActivity extends AppCompatActivity {
// return;
// }
- String jsonString = mCacheHelper.getAsString(UrlAddress.GET_MAIL_LIST);
- //为 "" 是已经请求成功的
- if (jsonString == null) {
- return;
- }
- Gson gson = new Gson();
- Type type = new TypeToken>() {
- }.getType();
- List contactList = gson.fromJson(jsonString, type);
- if (contactList == null || contactList.size() == 0) {
- return;
- }
- phoneListSet = contactList.stream().filter(contact -> contact.getIs_urgent() == 1).collect(Collectors.toList());
- Log.e(TAG, "onCreate: " + phoneListSet);
+// String jsonString = mCacheHelper.getAsString(UrlAddress.GET_MAIL_LIST);
+// //为 "" 是已经请求成功的
+// if (jsonString == null) {
+// return;
+// }
+// Gson gson = new Gson();
+// Type type = new TypeToken>() {
+// }.getType();
+// List contactList = gson.fromJson(jsonString, type);
+// if (contactList == null || contactList.size() == 0) {
+// return;
+// }
+ String phone = mMMKV.decodeString(CommonConfig.EMERGENCY_CONTACT_KEY, "");
+
+// phoneListSet = new ArrayList();
+// Log.e(TAG, "onCreate: " + phoneListSet);
final Long time = 3L;
subscribe = Observable.interval(1, TimeUnit.SECONDS)
@@ -100,10 +110,9 @@ public class EmergencyActivity extends AppCompatActivity {
tv_countdown.setText("倒计时(" + (time - aLong - 1) + ")秒");
Log.e(TAG, "accept: " + (time - aLong - 1));
} else {
- MMKV mmkv = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
- String longitude = mCacheHelper.getAsString(CommonConfig.MAP_LONGITUDE_KEY);
- String latitude = mCacheHelper.getAsString(CommonConfig.MAP_LATITUDE_KEY);
- String address = mCacheHelper.getAsString(CommonConfig.MAP_ADDRESS_KEY);
+ String longitude = mMMKV.decodeString(CommonConfig.MAP_LONGITUDE_KEY, "");
+ String latitude = mMMKV.decodeString(CommonConfig.MAP_LATITUDE_KEY, "");
+ String address = mMMKV.decodeString(CommonConfig.MAP_ADDRESS_KEY, "");
NetInterfaceManager.getInstance()
.getSOSRecordObservable(longitude, latitude, address)
.subscribe(new Observer() {
@@ -128,15 +137,21 @@ public class EmergencyActivity extends AppCompatActivity {
Log.e("SosRecordApi", "onComplete: ");
}
});
+
needDial = true;
+ if (TextUtils.isEmpty(phone)) {
+ Toaster.show("没有设置紧急联系人");
+ finish();
+ }
Intent intent1 = new Intent(Intent.ACTION_CALL);
- Uri data = Uri.parse("tel:" + phoneListSet.get(0).getMobile());
+ Uri data = Uri.parse("tel:" + phone);
intent1.setData(data);
startActivity(intent1);
isCalling = true;
- phoneListSet.remove(0);
-// finish();
+
+// phoneListSet.remove(0);
subscribe.dispose();
+ finish();
}
});
iv_finish.setOnClickListener(new View.OnClickListener() {
@@ -166,36 +181,36 @@ public class EmergencyActivity extends AppCompatActivity {
protected void onStart() {
super.onStart();
Log.e(TAG, "onResume: ");
- Log.e(TAG, "onResume: " + phoneListSet);
- if (needDial) {
- if (phoneListSet == null || phoneListSet.size() == 0) {
- return;
- }
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- Intent intent1 = new Intent(Intent.ACTION_CALL);
- String phone = phoneListSet.get(0).getMobile();
- Uri data = Uri.parse("tel:" + phone);
- intent1.setData(data);
- startActivity(intent1);
- isCalling = true;
- phoneListSet.remove(0);
- }
- }, 2000);
- } else {
- if (phoneListSet == null) {
- Toaster.show("没有设置紧急联系人");
- finish();
- }
- }
+// Log.e(TAG, "onResume: " + phoneListSet);
+// if (needDial) {
+// if (phoneListSet == null || phoneListSet.size() == 0) {
+// return;
+// }
+// new Handler().postDelayed(new Runnable() {
+// @Override
+// public void run() {
+// Intent intent1 = new Intent(Intent.ACTION_CALL);
+// String phone = phoneListSet.get(0).getMobile();
+// Uri data = Uri.parse("tel:" + phone);
+// intent1.setData(data);
+// startActivity(intent1);
+// isCalling = true;
+// phoneListSet.remove(0);
+// }
+// }, 2000);
+// } else {
+// if (phoneListSet == null) {
+// Toaster.show("没有设置紧急联系人");
+// finish();
+// }
+// }
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e(TAG, "onDestroy: ");
- if (subscribe != null) {
+ if (subscribe != null && !subscribe.isDisposed()) {
subscribe.dispose();
subscribe = null;
}
diff --git a/app/src/main/java/com/uiuios/aios/activity/InformationActivity.java b/app/src/main/java/com/uiuios/aios/activity/InformationActivity.java
deleted file mode 100644
index ca3b016..0000000
--- a/app/src/main/java/com/uiuios/aios/activity/InformationActivity.java
+++ /dev/null
@@ -1,208 +0,0 @@
-package com.uiuios.aios.activity;
-
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.View;
-
-import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.databinding.DataBindingUtil;
-import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
-
-import com.google.android.material.tabs.TabLayout;
-import com.trello.rxlifecycle4.RxLifecycle;
-import com.trello.rxlifecycle4.android.ActivityEvent;
-import com.uiuios.aios.R;
-import com.uiuios.aios.adapter.InformationAdapter;
-import com.uiuios.aios.base.BaseDataBindingActivity;
-import com.uiuios.aios.bean.ArticleInfo;
-import com.uiuios.aios.bean.ArticleList;
-import com.uiuios.aios.bean.BaseResponse;
-import com.uiuios.aios.bean.CategoryBean;
-import com.uiuios.aios.databinding.ActivityInformationBinding;
-import com.uiuios.aios.network.NetInterfaceManager;
-import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
-import io.reactivex.rxjava3.annotations.NonNull;
-import io.reactivex.rxjava3.core.Observer;
-import io.reactivex.rxjava3.disposables.Disposable;
-
-public class InformationActivity extends BaseDataBindingActivity {
- private static final String TAG = InformationActivity.class.getSimpleName();
-
- @BindView(R.id.tabLayout)
- TabLayout tabLayout;
- @BindView(R.id.cl_bar)
- ConstraintLayout cl_bar;
- @BindView(R.id.rv_video)
- RecyclerView rv_video;
- @BindView(R.id.cl_nodata)
- ConstraintLayout cl_nodata;
-
- private ActivityInformationBinding mBinding;
- private InformationAdapter mInformationAdapter;
-
- private HashMap mCategoryMap;
-
- @Override
- public boolean setNightMode() {
- return true;
- }
-
- @Override
- protected void initDataBinding() {
- mBinding = DataBindingUtil.setContentView(this, R.layout.activity_information);
- }
-
- @Override
- public void initView() {
- ButterKnife.bind(this);
-// UltimateBarX.statusBarOnly(this)
-// .transparent()
-// .apply();
- UltimateBarX.addStatusBarTopPadding(cl_bar);
-
- mInformationAdapter = new InformationAdapter();
- LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(this);
- linearLayoutManager1.setOrientation(LinearLayoutManager.VERTICAL);
- rv_video.setLayoutManager(linearLayoutManager1);
- rv_video.setAdapter(mInformationAdapter);
-
- mBinding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
- @Override
- public void onTabSelected(TabLayout.Tab tab) {
- Log.e(TAG, "onTabSelected: " + tab.getText());
- if (tab.getText() != null && !TextUtils.isEmpty(tab.getText())) {
- String text = tab.getText().toString();
- if (mCategoryMap.get(text) != null) {
- getArticleList(mCategoryMap.get(text).getId());
- }
- }
- }
-
- @Override
- public void onTabUnselected(TabLayout.Tab tab) {
- Log.e(TAG, "onTabUnselected: " + tab.getText());
- }
-
- @Override
- public void onTabReselected(TabLayout.Tab tab) {
- Log.e(TAG, "onTabReselected: " + tab.getText());
- }
- });
- }
-
- @Override
- public void initData() {
- getCategorys();
- }
-
- private void getCategorys() {
- NetInterfaceManager.getInstance().getCategorysObservable()
- .compose(RxLifecycle.bindUntilEvent(getLifecycleSubject(), ActivityEvent.DESTROY))
- .subscribe(new Observer>>() {
- @Override
- public void onSubscribe(@NonNull Disposable d) {
- Log.e("getCategorys", "onSubscribe: ");
- }
-
- @Override
- public void onNext(@NonNull BaseResponse> listBaseResponse) {
- Log.e("getCategorys", "onNext: " + listBaseResponse);
- if (listBaseResponse.code == 200) {
- mBinding.tabLayout.setVisibility(View.VISIBLE);
- List categoryList = listBaseResponse.data;
- List typeString = categoryList.stream().map(CategoryBean::getName).collect(Collectors.toList());
- String[] type = new String[categoryList.size()];
- type = typeString.toArray(type);
- mCategoryMap = new HashMap<>();
- for (int i = 0; i < type.length; i++) {
- mCategoryMap.put(type[i], categoryList.get(i));
- TabLayout.Tab tab = mBinding.tabLayout.newTab();//关键的创建一个Tab,注意这里使用的是已经实例的mTablayout创建的Tab,很容易疏忽使用new Tablayout().new Tab()的方式创建,这个是会报错的.
- tab.setText(type[i]);
- if (i == 0) {
- mBinding.tabLayout.addTab(tab, 0, true);//设置选择的item
- } else {
- mBinding.tabLayout.addTab(tab);
- }
- }
- getArticleList(categoryList.get(0).getId());
- } else {
- mBinding.tabLayout.setVisibility(View.GONE);
- getArticleList();
- }
- }
-
- @Override
- public void onError(@NonNull Throwable e) {
- Log.e("getCategorys", "onError: " + e.getMessage());
- }
-
- @Override
- public void onComplete() {
- Log.e("getCategorys", "onComplete: ");
- }
- });
-
- }
-
- private void getArticleList() {
- NetInterfaceManager.getInstance()
- .getArticleListObservable()
- .compose(RxLifecycle.bindUntilEvent(getLifecycleSubject(), ActivityEvent.DESTROY))
- .subscribe(getArticleListObserver());
- }
-
- private void getArticleList(int id) {
- NetInterfaceManager.getInstance()
- .getArticleListObservable(id)
- .compose(RxLifecycle.bindUntilEvent(getLifecycleSubject(), ActivityEvent.DESTROY))
- .subscribe(getArticleListObserver());
- }
-
- private Observer> getArticleListObserver() {
- return new Observer>() {
- @Override
- public void onSubscribe(@NonNull Disposable d) {
- Log.e("getArticle", "onSubscribe: ");
- }
-
- @Override
- public void onNext(@NonNull BaseResponse listBaseResponse) {
- Log.e("getArticle", "onNext: " + listBaseResponse);
- if (listBaseResponse.code == 200) {
- ArticleList articleList = listBaseResponse.data;
- List articleInfoList = articleList.getData();
- if (articleInfoList != null && articleInfoList.size() != 0) {
- articleInfoList.sort((o1, o2) -> Integer.compare(o2.getWeight(), o1.getWeight()));
- mInformationAdapter.setArticleInfos(articleInfoList);
- rv_video.setVisibility(View.VISIBLE);
- cl_nodata.setVisibility(android.view.View.GONE);
- } else {
- rv_video.setVisibility(android.view.View.GONE);
- cl_nodata.setVisibility(android.view.View.VISIBLE);
- }
- } else {
- rv_video.setVisibility(android.view.View.GONE);
- cl_nodata.setVisibility(android.view.View.VISIBLE);
- }
- }
-
- @Override
- public void onError(@NonNull Throwable e) {
- Log.e("getArticle", "onError: " + e.getMessage());
- }
-
- @Override
- public void onComplete() {
- Log.e("getArticle", "onComplete: ");
- }
- };
- }
-}
diff --git a/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceActivity.java b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceActivity.java
index be9294c..b08de80 100644
--- a/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceActivity.java
@@ -4,65 +4,71 @@ import android.graphics.Color;
import android.view.View;
import android.widget.ImageView;
-import androidx.databinding.DataBindingUtil;
-import androidx.viewpager.widget.ViewPager;
+import androidx.lifecycle.Observer;
import com.bumptech.glide.Glide;
import com.hjq.toast.Toaster;
import com.uiuios.aios.R;
import com.uiuios.aios.adapter.HealthCodeAdapter;
-import com.uiuios.aios.base.BaseDataBindingActivity;
+import com.uiuios.aios.base.mvvm.BaseMvvmActivity;
import com.uiuios.aios.bean.HealthCode;
+import com.uiuios.aios.databinding.ActivityFamilySpaceBinding;
import com.uiuios.aios.view.ScaleCircleNavigator;
-import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
import java.util.ArrayList;
import java.util.List;
-import butterknife.BindView;
import butterknife.ButterKnife;
-public class FamilySpaceActivity extends BaseDataBindingActivity implements FamilySpaceContact.CodeView {
+public class FamilySpaceActivity extends BaseMvvmActivity {
- @BindView(R.id.iv_back)
- ImageView iv_back;
- @BindView(R.id.viewPager)
- ViewPager mViewPager;
- @BindView(R.id.magicIndicator)
- MagicIndicator mMagicIndicator;
- @BindView(R.id.iv_nodata)
- ImageView iv_nodata;
-
- private FamilySpacePresenter mPresenter;
private HealthCodeAdapter mHealthCodeAdapter;
private ScaleCircleNavigator scaleCircleNavigator;
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_family_space;
+ }
+
@Override
protected void initDataBinding() {
- DataBindingUtil.setContentView(this, R.layout.activity_family_space);
+ mViewModel.setCtx(this);
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewDataBinding.setClick(new Click());
}
@Override
public void initView() {
- ButterKnife.bind(this);
- mPresenter = new FamilySpacePresenter(this);
- mPresenter.attachView(this);
- mPresenter.setLifecycle(getLifecycleSubject());
- iv_back.setOnClickListener(view -> finish());
mHealthCodeAdapter = new HealthCodeAdapter();
- mViewPager.setAdapter(mHealthCodeAdapter);
+ mViewDataBinding.viewPager.setAdapter(mHealthCodeAdapter);
scaleCircleNavigator = new ScaleCircleNavigator(this);
}
@Override
public void initData() {
- mPresenter.getHealthCode();
+ mViewModel.getHealthCodeListData().observe(this, new Observer>() {
+ @Override
+ public void onChanged(List healthCodes) {
+ if (healthCodes==null||healthCodes.isEmpty()){
+ mViewDataBinding.viewPager.setVisibility(View.GONE);
+ mViewDataBinding.magicIndicator.setVisibility(View.GONE);
+ mViewDataBinding.ivNodata.setVisibility(View.VISIBLE);
+ }else {
+ setImageViews(healthCodes);
+ mViewDataBinding.viewPager.setVisibility(View.VISIBLE);
+ mViewDataBinding.magicIndicator.setVisibility(View.VISIBLE);
+ mViewDataBinding.ivNodata.setVisibility(View.GONE);
+ }
+ }
+ });
+ mViewModel.getHealthCode();
}
private void setImageViews(List healthCodes) {
- mMagicIndicator.setNavigator(scaleCircleNavigator);
+ mViewDataBinding.magicIndicator.setNavigator(scaleCircleNavigator);
scaleCircleNavigator.setCircleCount(healthCodes.size());
scaleCircleNavigator.setNormalCircleColor(Color.DKGRAY);
scaleCircleNavigator.setSelectedCircleColor(Color.LTGRAY);
@@ -72,7 +78,7 @@ public class FamilySpaceActivity extends BaseDataBindingActivity implements Fami
}
});
- ViewPagerHelper.bind(mMagicIndicator, mViewPager);
+ ViewPagerHelper.bind(mViewDataBinding.magicIndicator, mViewDataBinding.viewPager);
List imageViews = new ArrayList<>();
for (HealthCode healthCode : healthCodes) {
ImageView image = new ImageView(this);
@@ -85,23 +91,10 @@ public class FamilySpaceActivity extends BaseDataBindingActivity implements Fami
mHealthCodeAdapter.notifyDataSetChanged();
}
- @Override
- public void setHealthCode(List codeList) {
- setImageViews(codeList);
- mViewPager.setVisibility(View.VISIBLE);
- mMagicIndicator.setVisibility(View.VISIBLE);
- iv_nodata.setVisibility(View.GONE);
- }
+ public class Click {
+ public void exit(View view) {
+ finish();
+ }
- @Override
- public void setHealthCodeNodata() {
- mViewPager.setVisibility(View.GONE);
- mMagicIndicator.setVisibility(View.GONE);
- iv_nodata.setVisibility(View.VISIBLE);
- }
-
- @Override
- public void onError() {
- Toaster.show("连接服务器失败,请检查网络连接");
}
}
diff --git a/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceContact.java b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceContact.java
deleted file mode 100644
index 6c952f4..0000000
--- a/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceContact.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.uiuios.aios.activity.code;
-
-import com.uiuios.aios.base.mvp.BasePresenter;
-import com.uiuios.aios.base.mvp.BaseView;
-import com.uiuios.aios.bean.HealthCode;
-
-import java.util.List;
-
-public class FamilySpaceContact {
- public interface Presenter extends BasePresenter {
- void getHealthCode();
- }
-
- public interface CodeView extends BaseView {
- void setHealthCode(List codeList);
- void setHealthCodeNodata();
- void onError();
- }
-}
diff --git a/app/src/main/java/com/uiuios/aios/activity/code/FamilySpacePresenter.java b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpacePresenter.java
deleted file mode 100644
index 24275d7..0000000
--- a/app/src/main/java/com/uiuios/aios/activity/code/FamilySpacePresenter.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.uiuios.aios.activity.code;
-
-import android.content.Context;
-import android.util.Log;
-
-import androidx.annotation.NonNull;
-
-import com.trello.rxlifecycle4.android.ActivityEvent;
-import com.uiuios.aios.bean.HealthCode;
-import com.uiuios.aios.network.NetInterfaceManager;
-
-import java.util.List;
-
-import io.reactivex.rxjava3.subjects.BehaviorSubject;
-
-public class FamilySpacePresenter implements FamilySpaceContact.Presenter {
- private static final String TAG = FamilySpacePresenter.class.getSimpleName();
- private FamilySpaceContact.CodeView mView;
-
- private Context mContext;
-
- private BehaviorSubject lifecycle;
-
- void setLifecycle(BehaviorSubject lifecycle) {
- this.lifecycle = lifecycle;
- }
-
- public BehaviorSubject getLifecycle() {
- return lifecycle;
- }
-
- FamilySpacePresenter(Context context) {
- this.mContext = context;
- Log.e(TAG, "MainPresenter: " + context.getClass());
- }
-
-
- @Override
- public void attachView(@NonNull FamilySpaceContact.CodeView view) {
- this.mView = view;
- }
-
- @Override
- public void detachView() {
- this.mView = null;
- }
-
-
- @Override
- public void getHealthCode() {
- NetInterfaceManager.getInstance().getHealthCode(true, getLifecycle(), new NetInterfaceManager.HealthCodeCallback() {
- @Override
- public void setHealthCode(List healthCode) {
- mView.setHealthCode(healthCode);
- }
-
- @Override
- public void noData() {
- mView.setHealthCodeNodata();
- }
-
- @Override
- public void onError() {
- mView.onError();
- }
- });
- }
-}
diff --git a/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceViewModel.java b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceViewModel.java
new file mode 100644
index 0000000..7220bd4
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/activity/code/FamilySpaceViewModel.java
@@ -0,0 +1,50 @@
+package com.uiuios.aios.activity.code;
+
+import androidx.lifecycle.MutableLiveData;
+
+import com.hjq.toast.Toaster;
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.uiuios.aios.base.mvvm.BaseViewModel;
+import com.uiuios.aios.bean.HealthCode;
+import com.uiuios.aios.databinding.ActivityFamilySpaceBinding;
+import com.uiuios.aios.network.NetInterfaceManager;
+
+import java.util.List;
+
+public class FamilySpaceViewModel extends BaseViewModel {
+
+ @Override
+ public ActivityFamilySpaceBinding getVDBinding() {
+ return binding;
+ }
+
+ @Override
+ public void onDestroy() {
+
+ }
+
+ private MutableLiveData> mHealthCodeListData = new MutableLiveData<>();
+
+ public MutableLiveData> getHealthCodeListData() {
+ return mHealthCodeListData;
+ }
+
+ public void getHealthCode() {
+ NetInterfaceManager.getInstance().getHealthCode(true, getLifecycle(), new NetInterfaceManager.HealthCodeCallback() {
+ @Override
+ public void setHealthCode(List healthCode) {
+ mHealthCodeListData.setValue(healthCode);
+ }
+
+ @Override
+ public void noData() {
+ mHealthCodeListData.setValue(null);
+ }
+
+ @Override
+ public void onError() {
+ Toaster.show("连接服务器失败,请检查网络连接");
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/activity/contact/AddWechatContactActivity.java b/app/src/main/java/com/uiuios/aios/activity/contact/AddWechatContactActivity.java
index 8166a74..9ecf5d7 100644
--- a/app/src/main/java/com/uiuios/aios/activity/contact/AddWechatContactActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/contact/AddWechatContactActivity.java
@@ -181,7 +181,7 @@ public class AddWechatContactActivity extends BaseMvvmActivity {
+ private static final String TAG = EditContactActivity.class.getSimpleName();
+
+ private LoadingDialog mLoadingDialog;
+ private String mPictrueFilePath;
+ private Contact mContact;
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_edit_contact;
+ }
+
+ @Override
+ protected void initDataBinding() {
+ mViewModel.setCtx(this);
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewDataBinding.setClick(new BtnClick());
+ }
+
+ @Override
+ protected void initView() {
+ mLoadingDialog = new LoadingDialog(this);
+ mLoadingDialog.setLoadingText("正在上传")
+ .setSuccessText("添加成功")
+ .setFailedText("添加失败")
+ .setInterceptBack(true)
+ .setLoadSpeed(LoadingDialog.Speed.SPEED_TWO)
+ .closeSuccessAnim()
+ .closeFailedAnim();
+ }
+
+ @Override
+ protected void initData() {
+ mViewModel.getBaseResponseMutableLiveData().observe(this, new Observer() {
+ @Override
+ public void onChanged(BaseResponse baseResponse) {
+ if (baseResponse.code == 200) {
+ mLoadingDialog.loadSuccess();
+ mLoadingDialog.close();
+ finish();
+ } else {
+ mLoadingDialog.setFailedText(baseResponse.msg);
+ mLoadingDialog.loadFailed();
+ mLoadingDialog.close();
+ }
+ }
+ });
+
+ getContactData();
+ }
+
+ private void getContactData() {
+ Intent intent = getIntent();
+ if (intent == null) {
+ return;
+ }
+ mContact = (Contact) intent.getSerializableExtra("Contact");
+ if (mContact == null) {
+ return;
+ }
+ if (mContact.getIs_urgent() == 1) {
+ mViewDataBinding.toggleButton.setToggleOn(false);
+ } else {
+ mViewDataBinding.toggleButton.setToggleOff(false);
+ }
+ Glide.with(this).asBitmap().load(mContact.getAvatar()).error(R.drawable.default_avatar).into(new SimpleTarget() {
+ @Override
+ public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition super Bitmap> transition) {
+ mPictrueFilePath = bitmapToFile(resource, "avatar").getAbsolutePath();
+ Log.e(TAG, "onResourceReady: " + mPictrueFilePath);
+ }
+ });
+ mViewDataBinding.setContact(mContact);
+ }
+
+ /**
+ * bitmap
+ *
+ * @param bitmap bitmap
+ * @param fileName 转换后的文件名
+ * @return
+ */
+ public File bitmapToFile(Bitmap bitmap, String fileName) {
+ String defaultPath = getFilesDir().getAbsolutePath() + "/defaultGoodInfo";
+ File file = new File(defaultPath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ String defaultImgPath = defaultPath + "/" + fileName;
+ file = new File(defaultImgPath);
+ try {
+ file.createNewFile();
+ FileOutputStream fOut = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
+// is.close();
+ fOut.flush();
+ fOut.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file;
+ }
+
+
+ private void openSelector() {
+ PictureSelector.create(EditContactActivity.this)
+ .openGallery(SelectMimeType.ofAll())
+ .setSelectionMode(1)
+ .setImageEngine(GlideEngine.createGlideEngine())
+ .forResult(new OnResultCallbackListener() {
+ @Override
+ public void onResult(ArrayList result) {
+ mPictrueFilePath = result.get(0).getRealPath();
+ File file = new File(mPictrueFilePath);
+ if (file.exists()) {
+ RequestOptions options = new RequestOptions().transform(new RoundedCorners(ScreenUtil.dip2px(EditContactActivity.this, 8F)));
+ Glide.with(mViewDataBinding.nvAvatar).load(file).apply(options).into(mViewDataBinding.nvAvatar);
+ } else {
+ mPictrueFilePath = "";
+ }
+ }
+
+ @Override
+ public void onCancel() {
+ Log.e(TAG, "onCancel: ");
+ }
+ });
+ }
+
+ private void checkContact() {
+ String name = mViewDataBinding.etName.getText().toString();
+ if (TextUtils.isEmpty(name)) {
+ Toaster.show("请输入联系人姓名");
+ return;
+ }
+ String phone = mViewDataBinding.etPhone.getText().toString();
+ if (TextUtils.isEmpty(phone)) {
+ Toaster.show("请输入手机号码");
+ return;
+ }
+ String groupTag = mViewDataBinding.etGroup.getText().toString();
+ if (TextUtils.isEmpty(groupTag)) {
+ Toaster.show("请输入微信群组标签");
+ return;
+ }
+ File avatarFile;
+ Log.e("checkContact", "mPictrueFilePath: " + mPictrueFilePath);
+ if (TextUtils.isEmpty(mPictrueFilePath)) {
+ avatarFile = drawableToFile(R.drawable.default_avatar, "avatar");
+ } else {
+ Uri uri = Uri.parse(mPictrueFilePath);
+ avatarFile = uriToFile(uri, EditContactActivity.this);
+ }
+ MediaType mediaType = MediaType.Companion.parse("image/png");
+ RequestBody requestBody = RequestBody.Companion.create(avatarFile, mediaType);
+ MultipartBody.Part body = MultipartBody.Part.createFormData("avatar", avatarFile.getName(), requestBody);
+ Map params = new HashMap<>();
+ params.put("sn", RemoteManager.getInstance().getSerial());
+ params.put("id", mContact.getId());
+ params.put("name", name);
+ params.put("mobile", phone);
+ params.put("tag", groupTag);
+ params.put("is_urgent", String.valueOf(mViewDataBinding.toggleButton.isToggleOn()));
+ mViewModel.editContact(params, body);
+ mLoadingDialog.show();
+ }
+
+ /**
+ * drawable转为file
+ *
+ * @param drawableId drawable的ID
+ * @param fileName 转换后的文件名
+ * @return
+ */
+ public File drawableToFile(int drawableId, String fileName) {
+// InputStream is = view.getContext().getResources().openRawResource(R.drawable.logo);
+ Bitmap bitmap = BitmapFactory.decodeResource(getResources(), drawableId);
+// Bitmap bitmap = BitmapFactory.decodeStream(is);
+ String defaultPath = getFilesDir().getAbsolutePath() + "/defaultGoodInfo";
+ File file = new File(defaultPath);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ String defaultImgPath = defaultPath + "/" + fileName;
+ file = new File(defaultImgPath);
+ try {
+ file.createNewFile();
+ FileOutputStream fOut = new FileOutputStream(file);
+ bitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);
+// is.close();
+ fOut.flush();
+ fOut.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return file;
+ }
+
+ public static File uriToFile(Uri uri, Context context) {
+ String path = null;
+ if ("file".equals(uri.getScheme())) {
+ path = uri.getEncodedPath();
+ if (path != null) {
+ path = Uri.decode(path);
+ ContentResolver cr = context.getContentResolver();
+ StringBuffer buff = new StringBuffer();
+ buff.append("(").append(MediaStore.Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")");
+ Cursor cur = cr.query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, new String[]{MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA}, buff.toString(), null, null);
+ int index = 0;
+ int dataIdx = 0;
+ for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {
+ index = cur.getColumnIndex(MediaStore.Images.ImageColumns._ID);
+ index = cur.getInt(index);
+ dataIdx = cur.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
+ path = cur.getString(dataIdx);
+ }
+ cur.close();
+ if (index == 0) {
+ } else {
+ Uri u = Uri.parse("content://media/external/images/media/" + index);
+ System.out.println("temp uri is :" + u);
+ }
+ }
+ if (path != null) {
+ return new File(path);
+ }
+ } else if ("content".equals(uri.getScheme())) {
+ // 4.2.2以后
+ String[] proj = {MediaStore.Images.Media.DATA};
+ Cursor cursor = context.getContentResolver().query(uri, proj, null, null, null);
+ if (cursor.moveToFirst()) {
+ int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
+ path = cursor.getString(columnIndex);
+ }
+ cursor.close();
+
+ return new File(path);
+ } else {
+ Log.e(TAG, "uriToFile uriString:" + uri.toString());
+ return new File(uri.toString());
+ }
+ return null;
+ }
+
+ public class BtnClick {
+ public void exit(View view) {
+ finish();
+ }
+
+ public void selectPic(View v) {
+ openSelector();
+ }
+
+ public void confirm(View v) {
+ checkContact();
+ }
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/activity/contact/EditContactViewModel.java b/app/src/main/java/com/uiuios/aios/activity/contact/EditContactViewModel.java
new file mode 100644
index 0000000..474cb73
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/activity/contact/EditContactViewModel.java
@@ -0,0 +1,70 @@
+package com.uiuios.aios.activity.contact;
+
+import android.util.Log;
+
+import androidx.lifecycle.MutableLiveData;
+
+import com.trello.rxlifecycle4.RxLifecycle;
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.uiuios.aios.base.mvvm.BaseViewModel;
+import com.uiuios.aios.bean.BaseResponse;
+import com.uiuios.aios.databinding.ActivityEditContactBinding;
+import com.uiuios.aios.network.NetInterfaceManager;
+
+import java.util.Map;
+
+import io.reactivex.rxjava3.annotations.NonNull;
+import io.reactivex.rxjava3.core.Observer;
+import io.reactivex.rxjava3.disposables.Disposable;
+import okhttp3.MultipartBody;
+
+public class EditContactViewModel extends BaseViewModel {
+
+ @Override
+ public ActivityEditContactBinding getVDBinding() {
+ return binding;
+ }
+
+ @Override
+ public void onDestroy() {
+
+ }
+
+ private MutableLiveData mBaseResponseMutableLiveData = new MutableLiveData<>();
+
+ public MutableLiveData getBaseResponseMutableLiveData() {
+ return mBaseResponseMutableLiveData;
+ }
+
+ public void editContact(Map params, MultipartBody.Part body) {
+ NetInterfaceManager.getInstance()
+ .getMailListEditObservable(params, body)
+ .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ Log.e("editContact", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(@NonNull BaseResponse baseResponse) {
+ Log.e("editContact", "onNext: " + baseResponse);
+ mBaseResponseMutableLiveData.setValue(baseResponse);
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("editContact", "onError: " + e.getMessage());
+ BaseResponse baseResponse = new BaseResponse();
+ baseResponse.code = 404;
+ baseResponse.msg = "网络连接失败";
+ mBaseResponseMutableLiveData.setValue(baseResponse);
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("editContact", "onComplete: ");
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/activity/information/InformationActivity.java b/app/src/main/java/com/uiuios/aios/activity/information/InformationActivity.java
new file mode 100644
index 0000000..cfa99f7
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/activity/information/InformationActivity.java
@@ -0,0 +1,160 @@
+package com.uiuios.aios.activity.information;
+
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.databinding.DataBindingUtil;
+import androidx.lifecycle.Observer;
+import androidx.recyclerview.widget.LinearLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.google.android.material.tabs.TabLayout;
+import com.trello.rxlifecycle4.RxLifecycle;
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.uiuios.aios.R;
+import com.uiuios.aios.adapter.InformationAdapter;
+import com.uiuios.aios.base.BaseDataBindingActivity;
+import com.uiuios.aios.base.mvvm.BaseMvvmActivity;
+import com.uiuios.aios.bean.ArticleInfo;
+import com.uiuios.aios.bean.ArticleList;
+import com.uiuios.aios.bean.BaseResponse;
+import com.uiuios.aios.bean.CategoryBean;
+import com.uiuios.aios.databinding.ActivityInformationBinding;
+import com.uiuios.aios.network.NetInterfaceManager;
+import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import io.reactivex.rxjava3.annotations.NonNull;
+import io.reactivex.rxjava3.disposables.Disposable;
+
+public class InformationActivity extends BaseMvvmActivity {
+ private static final String TAG = InformationActivity.class.getSimpleName();
+
+
+ private InformationAdapter mInformationAdapter;
+
+ private HashMap mCategoryMap;
+
+ @Override
+ public boolean setNightMode() {
+ return true;
+ }
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_information;
+ }
+
+ @Override
+ protected void initDataBinding() {
+ mViewModel.setCtx(this);
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewDataBinding.setClick(new Click());
+ }
+
+ @Override
+ public void initView() {
+// UltimateBarX.statusBarOnly(this)
+// .transparent()
+// .apply();
+ UltimateBarX.addStatusBarTopPadding(mViewDataBinding.clBar);
+
+ mInformationAdapter = new InformationAdapter();
+ LinearLayoutManager linearLayoutManager1 = new LinearLayoutManager(this);
+ linearLayoutManager1.setOrientation(LinearLayoutManager.VERTICAL);
+ mViewDataBinding.rvVideo.setLayoutManager(linearLayoutManager1);
+ mViewDataBinding.rvVideo.setAdapter(mInformationAdapter);
+
+ mViewDataBinding.tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
+ @Override
+ public void onTabSelected(TabLayout.Tab tab) {
+ Log.e(TAG, "onTabSelected: " + tab.getText());
+ if (tab.getText() != null && !TextUtils.isEmpty(tab.getText())) {
+ String text = tab.getText().toString();
+ if (mCategoryMap.get(text) != null) {
+ mViewModel.getArticleList(mCategoryMap.get(text).getId());
+ }
+ }
+ }
+
+ @Override
+ public void onTabUnselected(TabLayout.Tab tab) {
+ Log.e(TAG, "onTabUnselected: " + tab.getText());
+ }
+
+ @Override
+ public void onTabReselected(TabLayout.Tab tab) {
+ Log.e(TAG, "onTabReselected: " + tab.getText());
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+ mViewModel.getCategoryBeanListData().observe(this, new Observer>() {
+ @Override
+ public void onChanged(List categoryBeans) {
+ if (categoryBeans != null && !categoryBeans.isEmpty()) {
+ mViewDataBinding.tabLayout.setVisibility(View.VISIBLE);
+ List typeString = categoryBeans.stream().map(CategoryBean::getName).collect(Collectors.toList());
+ String[] type = new String[categoryBeans.size()];
+ type = typeString.toArray(type);
+ mCategoryMap = new HashMap<>();
+ for (int i = 0; i < type.length; i++) {
+ mCategoryMap.put(type[i], categoryBeans.get(i));
+ TabLayout.Tab tab = mViewDataBinding.tabLayout.newTab();//关键的创建一个Tab,注意这里使用的是已经实例的mTablayout创建的Tab,很容易疏忽使用new Tablayout().new Tab()的方式创建,这个是会报错的.
+ tab.setText(type[i]);
+ if (i == 0) {
+ mViewDataBinding.tabLayout.addTab(tab, 0, true);//设置选择的item
+ } else {
+ mViewDataBinding.tabLayout.addTab(tab);
+ }
+ }
+ mViewModel.getArticleList(categoryBeans.get(0).getId());
+ } else {
+ mViewDataBinding.tabLayout.setVisibility(View.GONE);
+ mViewModel. getArticleList();
+ }
+ }
+ });
+
+ mViewModel.getArticleListData().observe(this, new Observer() {
+ @Override
+ public void onChanged(ArticleList articleList) {
+ if (articleList!=null) {
+ List articleInfoList = articleList.getData();
+ if (articleInfoList != null && articleInfoList.size() != 0) {
+ articleInfoList.sort((o1, o2) -> Integer.compare(o2.getWeight(), o1.getWeight()));
+ mInformationAdapter.setArticleInfos(articleInfoList);
+ mViewDataBinding.rvVideo.setVisibility(View.VISIBLE);
+ mViewDataBinding.clNodata.setVisibility(android.view.View.GONE);
+ } else {
+ mViewDataBinding.rvVideo.setVisibility(android.view.View.GONE);
+ mViewDataBinding.clNodata.setVisibility(android.view.View.VISIBLE);
+ }
+ } else {
+ mViewDataBinding.rvVideo.setVisibility(android.view.View.GONE);
+ mViewDataBinding.clNodata.setVisibility(android.view.View.VISIBLE);
+ }
+ }
+ });
+
+ mViewModel.getCategorys();
+ }
+
+
+ public class Click {
+ public void exit(View view) {
+ finish();
+ }
+
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/activity/information/InformationViewModel.java b/app/src/main/java/com/uiuios/aios/activity/information/InformationViewModel.java
new file mode 100644
index 0000000..042fd4c
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/activity/information/InformationViewModel.java
@@ -0,0 +1,122 @@
+package com.uiuios.aios.activity.information;
+
+import android.util.Log;
+
+import androidx.lifecycle.MutableLiveData;
+
+import com.trello.rxlifecycle4.RxLifecycle;
+import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.uiuios.aios.base.mvvm.BaseViewModel;
+import com.uiuios.aios.bean.ArticleList;
+import com.uiuios.aios.bean.BaseResponse;
+import com.uiuios.aios.bean.CategoryBean;
+import com.uiuios.aios.databinding.ActivityInformationBinding;
+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 InformationViewModel extends BaseViewModel {
+
+ @Override
+ public ActivityInformationBinding getVDBinding() {
+ return binding;
+ }
+
+ @Override
+ public void onDestroy() {
+
+ }
+
+ private MutableLiveData> mCategoryBeanListData = new MutableLiveData<>();
+
+ public MutableLiveData> getCategoryBeanListData() {
+ return mCategoryBeanListData;
+ }
+
+ public void getCategorys() {
+ NetInterfaceManager.getInstance().getCategorysObservable()
+ .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
+ .subscribe(new Observer>>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ Log.e("getCategorys", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(@NonNull BaseResponse> listBaseResponse) {
+ Log.e("getCategorys", "onNext: " + listBaseResponse);
+ if (listBaseResponse.code == 200) {
+ List categoryList = listBaseResponse.data;
+ mCategoryBeanListData.setValue(categoryList);
+ } else {
+ mCategoryBeanListData.setValue(null);
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("getCategorys", "onError: " + e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("getCategorys", "onComplete: ");
+ }
+ });
+
+ }
+
+ public void getArticleList() {
+ NetInterfaceManager.getInstance()
+ .getArticleListObservable()
+ .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
+ .subscribe(getArticleListObserver());
+ }
+
+ public void getArticleList(int id) {
+ NetInterfaceManager.getInstance()
+ .getArticleListObservable(id)
+ .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
+ .subscribe(getArticleListObserver());
+ }
+
+ private MutableLiveData mArticleListData = new MutableLiveData<>();
+
+ public MutableLiveData getArticleListData() {
+ return mArticleListData;
+ }
+
+ private Observer> getArticleListObserver() {
+ return new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ Log.e("getArticleListObserver", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(@NonNull BaseResponse listBaseResponse) {
+ Log.e("getArticleListObserver", "onNext: " + listBaseResponse);
+ if (listBaseResponse.code == 200) {
+ ArticleList articleList = listBaseResponse.data;
+ mArticleListData.setValue(articleList);
+ } else {
+ mArticleListData.setValue(null);
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("getArticleListObserver", "onError: " + e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("getArticleListObserver", "onComplete: ");
+ }
+ };
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java b/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java
index b8e6473..f7f562a 100644
--- a/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/location/LocationAcivity.java
@@ -11,20 +11,18 @@ import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
-import android.widget.EditText;
import android.widget.TextView;
-import androidx.constraintlayout.widget.ConstraintLayout;
-import androidx.databinding.DataBindingUtil;
+import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
-import androidx.recyclerview.widget.RecyclerView;
import com.uiuios.aios.R;
import com.uiuios.aios.adapter.CityAdapter;
import com.uiuios.aios.adapter.DistrictAdapter;
-import com.uiuios.aios.base.BaseDataBindingActivity;
+import com.uiuios.aios.base.mvvm.BaseMvvmActivity;
import com.uiuios.aios.bean.AddressBean;
+import com.uiuios.aios.databinding.ActivityLocationBinding;
import com.uiuios.aios.manager.AmapManager;
import com.uiuios.aios.view.RecyclerViewSpacesItemDecoration;
@@ -34,24 +32,7 @@ import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
-public class LocationAcivity extends BaseDataBindingActivity implements LocationContact.LocationView, CityAdapter.CityCallback, DistrictAdapter.DistrictCallback {
-
- @BindView(R.id.bg)
- ConstraintLayout bg;
- @BindView(R.id.root)
- ConstraintLayout root;
- @BindView(R.id.rv_area)
- RecyclerView rv_area;
-
- @BindView(R.id.edit_search)
- EditText edit_search;
- @BindView(R.id.rv_city)
- RecyclerView rv_city;
- @BindView(R.id.cl_location)
- ConstraintLayout cl_location;
+public class LocationAcivity extends BaseMvvmActivity implements CityAdapter.CityCallback, DistrictAdapter.DistrictCallback {
private List popularCities = new ArrayList() {{
this.add(new AddressBean("北京"));
@@ -73,16 +54,24 @@ public class LocationAcivity extends BaseDataBindingActivity implements Location
this.add(new AddressBean("厦门"));
}};
- private LocationPresenter mPresenter;
private CityAdapter mCityAdapter;
private DistrictAdapter mDistrictAdapter;
private List mDistrict;
private AddressBean mAddressBean;
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.activity_location;
+ }
+
@Override
protected void initDataBinding() {
- DataBindingUtil.setContentView(this, R.layout.activity_location);
+ mViewModel.setCtx(this);
+ mViewModel.setVDBinding(mViewDataBinding);
+ mViewModel.setLifecycle(getLifecycleSubject());
+ mViewDataBinding.setClick(new Click());
}
/**
@@ -90,32 +79,9 @@ public class LocationAcivity extends BaseDataBindingActivity implements Location
*/
@Override
public void initView() {
- ButterKnife.bind(this);
- mPresenter = new LocationPresenter(this);
- mPresenter.attachView(this);
- mPresenter.setLifecycle(getLifecycleSubject());
- bg.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- finish();
- }
- });
- root.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- rv_area.setVisibility(View.GONE);
- }
- });
- cl_location.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- mAddressBean = new AddressBean(AmapManager.getInstance().getDistrict());
- setIntent();
- }
- });
- edit_search.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
- edit_search.setInputType(EditorInfo.TYPE_CLASS_TEXT);
- edit_search.setOnEditorActionListener(new TextView.OnEditorActionListener() {
+ mViewDataBinding.editSearch.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
+ mViewDataBinding.editSearch.setInputType(EditorInfo.TYPE_CLASS_TEXT);
+ mViewDataBinding.editSearch.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEND ||
@@ -128,7 +94,7 @@ public class LocationAcivity extends BaseDataBindingActivity implements Location
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(LocationAcivity.this.getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
- String text = edit_search.getText().toString();
+ String text = mViewDataBinding.editSearch.getText().toString();
checkContent(text);
}
return true;
@@ -139,13 +105,36 @@ public class LocationAcivity extends BaseDataBindingActivity implements Location
return false;
}
});
+
+ HashMap stringIntegerHashMap = new HashMap<>();
+ WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
+ DisplayMetrics dm = new DisplayMetrics();
+ wm.getDefaultDisplay().getRealMetrics(dm);
+ float density = dm.density; // 屏幕密度(0.75 / 1.0 / 1.5)
+ stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.TOP_DECORATION, (int) (density * 4));//top间距
+ stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 4));//底部间距
+ stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 4));//左间距
+ stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 4));//右间距
+ mViewDataBinding.rvCity.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
+ mCityAdapter = new CityAdapter();
+ mCityAdapter.setCityList(popularCities);
+ mCityAdapter.setCityCallback(this::onCitySelected);
+ mViewDataBinding.rvCity.setLayoutManager(new GridLayoutManager(this, 3));
+ mViewDataBinding.rvCity.setAdapter(mCityAdapter);
+
+ mDistrictAdapter = new DistrictAdapter();
+ mDistrictAdapter.setDistrictCallback(this::onDistrictSelected);
+ LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
+ linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
+ mViewDataBinding.rvArea.setLayoutManager(linearLayoutManager);
+ mViewDataBinding.rvArea.setAdapter(mDistrictAdapter);
}
private void checkContent(String text) {
if (TextUtils.isEmpty(text)) {
- rv_area.setVisibility(View.GONE);
+ mViewDataBinding.rvArea.setVisibility(View.GONE);
} else {
- rv_area.setVisibility(View.VISIBLE);
+ mViewDataBinding.rvArea.setVisibility(View.VISIBLE);
List area = mDistrict.stream().filter(new Predicate() {
@Override
public boolean test(AddressBean addressBean) {
@@ -161,42 +150,19 @@ public class LocationAcivity extends BaseDataBindingActivity implements Location
*/
@Override
public void initData() {
- HashMap stringIntegerHashMap = new HashMap<>();
- WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
- DisplayMetrics dm = new DisplayMetrics();
- wm.getDefaultDisplay().getRealMetrics(dm);
- float density = dm.density; // 屏幕密度(0.75 / 1.0 / 1.5)
- stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.TOP_DECORATION, (int) (density * 4));//top间距
- stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.BOTTOM_DECORATION, (int) (density * 4));//底部间距
- stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.LEFT_DECORATION, (int) (density * 4));//左间距
- stringIntegerHashMap.put(RecyclerViewSpacesItemDecoration.RIGHT_DECORATION, (int) (density * 4));//右间距
- rv_city.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
- mCityAdapter = new CityAdapter();
- mCityAdapter.setCityList(popularCities);
- mCityAdapter.setCityCallback(this::onCitySelected);
- rv_city.setLayoutManager(new GridLayoutManager(this, 3));
- rv_city.setAdapter(mCityAdapter);
-
- mDistrictAdapter = new DistrictAdapter();
- mDistrictAdapter.setDistrictCallback(this::onDistrictSelected);
- LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
- linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
- rv_area.setLayoutManager(linearLayoutManager);
- rv_area.setAdapter(mDistrictAdapter);
-
- mPresenter.initJsonData();
+ mViewModel.getAddressBeanListData().observe(this, new Observer>() {
+ @Override
+ public void onChanged(List addressBeans) {
+ mDistrict = addressBeans;
+ mDistrictAdapter.setDistrict(addressBeans);
+ }
+ });
+ mViewModel.initJsonData();
}
@Override
protected void onDestroy() {
super.onDestroy();
- mPresenter.detachView();
- }
-
- @Override
- public void setJsonData(List area) {
- this.mDistrict = area;
- mDistrictAdapter.setDistrict(area);
}
@Override
@@ -222,4 +188,21 @@ public class LocationAcivity extends BaseDataBindingActivity implements Location
// 结束当前页面
finish();
}
+
+
+ public class Click {
+ public void exit(View view) {
+ finish();
+ }
+
+ public void hideArea(View view){
+ mViewDataBinding.rvArea.setVisibility(View.GONE);
+ }
+
+ public void setLocal(View view){
+ mAddressBean = new AddressBean(AmapManager.getInstance().getDistrict());
+ setIntent();
+ }
+ }
+
}
diff --git a/app/src/main/java/com/uiuios/aios/activity/location/LocationContact.java b/app/src/main/java/com/uiuios/aios/activity/location/LocationContact.java
deleted file mode 100644
index 7c69e30..0000000
--- a/app/src/main/java/com/uiuios/aios/activity/location/LocationContact.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.uiuios.aios.activity.location;
-
-import com.uiuios.aios.base.mvp.BasePresenter;
-import com.uiuios.aios.base.mvp.BaseView;
-import com.uiuios.aios.bean.AddressBean;
-
-import java.util.List;
-
-public class LocationContact {
- interface Presenter extends BasePresenter {
- void initJsonData();
- }
-
- public interface LocationView extends BaseView {
- void setJsonData(List area);
- }
-}
diff --git a/app/src/main/java/com/uiuios/aios/activity/location/LocationPresenter.java b/app/src/main/java/com/uiuios/aios/activity/location/LocationViewModel.java
similarity index 79%
rename from app/src/main/java/com/uiuios/aios/activity/location/LocationPresenter.java
rename to app/src/main/java/com/uiuios/aios/activity/location/LocationViewModel.java
index 52e9820..13f26d4 100644
--- a/app/src/main/java/com/uiuios/aios/activity/location/LocationPresenter.java
+++ b/app/src/main/java/com/uiuios/aios/activity/location/LocationViewModel.java
@@ -1,12 +1,15 @@
package com.uiuios.aios.activity.location;
-import android.content.Context;
import android.util.Log;
+import androidx.lifecycle.MutableLiveData;
+
import com.google.gson.Gson;
import com.trello.rxlifecycle4.android.ActivityEvent;
+import com.uiuios.aios.base.mvvm.BaseViewModel;
import com.uiuios.aios.bean.AddressBean;
import com.uiuios.aios.bean.JsonBean;
+import com.uiuios.aios.databinding.ActivityLocationBinding;
import com.uiuios.aios.gson.GetJsonDataUtil;
import org.json.JSONArray;
@@ -22,54 +25,40 @@ import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
-import io.reactivex.rxjava3.subjects.BehaviorSubject;
-public class LocationPresenter implements LocationContact.Presenter {
- private Context mContext;
+public class LocationViewModel extends BaseViewModel {
-
- LocationPresenter(Context context) {
- this.mContext = context;
- }
-
- private LocationContact.LocationView mView;
-
- private BehaviorSubject lifecycle;
-
- public void setLifecycle(BehaviorSubject lifecycle) {
- this.lifecycle = lifecycle;
- }
-
- public BehaviorSubject getLifecycle() {
- return lifecycle;
+ @Override
+ public ActivityLocationBinding getVDBinding() {
+ return binding;
}
@Override
- public void attachView(LocationContact.LocationView view) {
- this.mView = view;
+ public void onDestroy() {
+
}
- @Override
- public void detachView() {
- this.mView = null;
+ private MutableLiveData> mAddressBeanListData =new MutableLiveData<>();
+
+ public MutableLiveData> getAddressBeanListData() {
+ return mAddressBeanListData;
}
-
- @Override
public void initJsonData() {
+ if (getCtx() == null) return;
long time = System.currentTimeMillis();
Observable.create(new ObservableOnSubscribe>() {
@Override
public void subscribe(@NonNull ObservableEmitter> emitter) throws Throwable {
List areaList = new ArrayList<>();
- String JsonData = new GetJsonDataUtil().getJson(mContext, "province.json");//获取assets目录下的json文件数据
+ String JsonData = new GetJsonDataUtil().getJson(getCtx(), "province.json");//获取assets目录下的json文件数据
ArrayList jsonBeanList = parseData(JsonData);//用Gson 转成实体
for (JsonBean jsonBean : jsonBeanList) {//遍历省份
String province = jsonBean.getName();
for (JsonBean.CityBean cityBean : jsonBean.getCityList()) {//遍历该省份的所有城市
String city = cityBean.getName();
for (String district : cityBean.getArea()) {//遍历该省份的所有城市
- areaList.add(new AddressBean(province , city , district));
+ areaList.add(new AddressBean(province, city, district));
}
}
}
@@ -87,7 +76,7 @@ public class LocationPresenter implements LocationContact.Presenter {
public void onNext(List s) {
Log.e("initJsonData", "onNext: ");
Log.e("initJsonData", "initdatetime = " + (System.currentTimeMillis() - time) + "ms");
- mView.setJsonData(s);
+ mAddressBeanListData.setValue(s);
}
@Override
diff --git a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
index f2ad5fa..afee0ee 100644
--- a/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/main/MainActivity.java
@@ -28,6 +28,7 @@ import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.Observer;
import com.alarmclock.uiui.IAlarmAidlInterface;
+import com.blankj.utilcode.util.NetworkUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.hjq.permissions.OnPermissionCallback;
@@ -81,7 +82,7 @@ public class MainActivity extends BaseMvvmActivity(desktopIcons.subList(x, i)));
mFragments.add(appListFragment);
x = i;
- } else if (i == desktopIcons.size()) {
+ } else if (i != 0 &&i == desktopIcons.size()) {
AppListFragment appListFragment = new AppListFragment();
- mFragments.add(appListFragment);
appListFragment.setAppList(new ArrayList<>(desktopIcons.subList(x, i)));
+ mFragments.add(appListFragment);
}
}
@@ -217,10 +219,10 @@ public class MainActivity extends BaseMvvmActivity(desktopIcons.subList(x, i)));
mFragments.add(appListFragment);
x = i;
- } else if (i == desktopIcons.size()) {
+ } else if (i != 0 &&i == desktopIcons.size()) {
AppListFragment appListFragment = new AppListFragment();
- mFragments.add(appListFragment);
appListFragment.setAppList(new ArrayList<>(desktopIcons.subList(x, i)));
+ mFragments.add(appListFragment);
}
}
}
@@ -310,7 +312,7 @@ public class MainActivity extends BaseMvvmActivity(applicationInfoList.subList(x, i)));
fragmentList.add(appListFragment);
x = i;
- } else if (i == applicationInfoList.size()) {
+ } else if (i != 0 &&i == applicationInfoList.size()) {
Log.e(TAG, "addData: i == size");
AppListFragment appListFragment = new AppListFragment();
appListFragment.setAppList(new ArrayList<>(applicationInfoList.subList(x, i)));
diff --git a/app/src/main/java/com/uiuios/aios/activity/main/MainViewModel.java b/app/src/main/java/com/uiuios/aios/activity/main/MainViewModel.java
index b685a4a..f0a6d3f 100644
--- a/app/src/main/java/com/uiuios/aios/activity/main/MainViewModel.java
+++ b/app/src/main/java/com/uiuios/aios/activity/main/MainViewModel.java
@@ -6,6 +6,7 @@ import android.util.Log;
import androidx.lifecycle.MutableLiveData;
import com.google.gson.JsonObject;
+import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiuios.aios.BuildConfig;
@@ -13,6 +14,8 @@ import com.uiuios.aios.base.mvvm.BaseViewModel;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.DesktopIcon;
import com.uiuios.aios.bean.NetDesktopIcon;
+import com.uiuios.aios.bean.SnInfo;
+import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.databinding.PhoneActivityMainBinding;
import com.uiuios.aios.manager.AppManager;
import com.uiuios.aios.manager.RemoteManager;
@@ -35,6 +38,8 @@ import io.reactivex.rxjava3.schedulers.Schedulers;
public class MainViewModel extends BaseViewModel {
private static final String TAG = MainViewModel.class.getSimpleName();
+ private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
+
@Override
public PhoneActivityMainBinding getVDBinding() {
return binding;
@@ -45,6 +50,44 @@ public class MainViewModel extends BaseViewModel mSnInfoData = new MutableLiveData<>();
+
+ public MutableLiveData getSnInfoData() {
+ return mSnInfoData;
+ }
+
+ public void getSnInfo() {
+ NetInterfaceManager.getInstance().getSnInfoControl()
+ .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ Log.e("getSnInfo", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(@NonNull BaseResponse snInfoBaseResponse) {
+ Log.e("getSnInfo", "onNext: " + snInfoBaseResponse);
+ if (snInfoBaseResponse.code == 200) {
+ SnInfo snInfo = snInfoBaseResponse.data;
+ mMMKV.encode(CommonConfig.EMERGENCY_CONTACT_KEY, snInfo.getMobile());
+ }
+ mSnInfoData.setValue(snInfoBaseResponse.data);
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("getSnInfo", "onError: ");
+ onComplete();
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("getSnInfo", "onComplete: ");
+ }
+ });
+ }
+
private MutableLiveData> mDesktopIconData = new MutableLiveData<>();
public MutableLiveData> getDesktopIconData() {
diff --git a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java
index f100819..2e99fdf 100644
--- a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java
+++ b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherActivity.java
@@ -32,6 +32,7 @@ import com.uiuios.aios.adapter.WeatherDayApdapterPort;
import com.uiuios.aios.base.mvvm.BaseMvvmActivity;
import com.uiuios.aios.bean.JsonBean;
import com.uiuios.aios.bean.MapGeoResult;
+import com.uiuios.aios.bean.QweatherLocation;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.databinding.ActivityWeatherBinding;
import com.uiuios.aios.manager.AmapManager;
@@ -72,7 +73,7 @@ public class WeatherActivity extends BaseMvvmActivity() {
+// mViewModel.getGeoResultData().observe(this, new Observer() {
+// @Override
+// public void onChanged(MapGeoResult mapGeoResult) {
+// if (mapGeoResult != null) {
+// mMMKV.encode(CommonConfig.MANUALLY_SELECT_LOCATION_TUDE, mapGeoResult.getLocation().toString());
+// mViewModel.getWeather(mapGeoResult.getLocation().toString());
+// } else {
+// Toaster.show("获取位置信息失败");
+// }
+// }
+// });
+ mViewModel.getQweatherLocationData().observe(this, new Observer() {
@Override
- public void onChanged(MapGeoResult mapGeoResult) {
- if (mapGeoResult != null) {
- mMMKV.encode(CommonConfig.MANUALLY_SELECT_LOCATION_TUDE, mapGeoResult.getLocation().toString());
- mViewModel.getWeather(mapGeoResult.getLocation().toString());
+ public void onChanged(QweatherLocation qweatherLocation) {
+ if (qweatherLocation != null) {
+ String tude = qweatherLocation.getLon() + "," + qweatherLocation.getLat();
+ mMMKV.encode(CommonConfig.MANUALLY_SELECT_LOCATION_TUDE, tude);
+ mViewModel.getWeather(tude);
} else {
Toaster.show("获取位置信息失败");
}
@@ -153,7 +166,7 @@ public class WeatherActivity extends BaseMvvmActivity() {
diff --git a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherViewModel.java b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherViewModel.java
index c3d9f45..c5ce470 100644
--- a/app/src/main/java/com/uiuios/aios/activity/weather/WeatherViewModel.java
+++ b/app/src/main/java/com/uiuios/aios/activity/weather/WeatherViewModel.java
@@ -16,31 +16,22 @@ import com.tencent.mmkv.MMKV;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiuios.aios.base.mvvm.BaseViewModel;
-import com.uiuios.aios.bean.JsonBean;
-import com.uiuios.aios.bean.MapGeoBean;
+import com.uiuios.aios.bean.BaiduMapGeoBean;
import com.uiuios.aios.bean.MapGeoResult;
+import com.uiuios.aios.bean.QweatherLocation;
+import com.uiuios.aios.bean.QweatherLookup;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.databinding.ActivityWeatherBinding;
-import com.uiuios.aios.gson.GetJsonDataUtil;
import com.uiuios.aios.manager.AmapManager;
-import com.uiuios.aios.manager.RemoteManager;
import com.uiuios.aios.network.NetInterfaceManager;
import com.uiuios.aios.utils.ActivationUtil;
-import org.json.JSONArray;
-
import java.lang.reflect.Type;
-import java.util.ArrayList;
import java.util.List;
-import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
-import io.reactivex.rxjava3.core.Observable;
-import io.reactivex.rxjava3.core.ObservableEmitter;
-import io.reactivex.rxjava3.core.ObservableOnSubscribe;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
-import io.reactivex.rxjava3.schedulers.Schedulers;
public class WeatherViewModel extends BaseViewModel {
private static final String TAG = WeatherViewModel.class.getSimpleName();
@@ -59,62 +50,87 @@ public class WeatherViewModel extends BaseViewModel mGeoResultData = new MutableLiveData<>();
- private MutableLiveData mLocationData = new MutableLiveData<>();
- private MutableLiveData mWeatherNowData = new MutableLiveData<>();
- private MutableLiveData mWeatherDailyData = new MutableLiveData<>();
-
public MutableLiveData getGeoResultData() {
return mGeoResultData;
}
- public MutableLiveData getLocationData() {
- return mLocationData;
- }
-
- public MutableLiveData getWeatherNowData() {
- return mWeatherNowData;
- }
-
- public MutableLiveData getWeatherDailyData() {
- return mWeatherDailyData;
- }
-
+ @Deprecated
public void decodeGeo(String address) {
Log.e(TAG, "decodeGeo: " + address);
- NetInterfaceManager.getInstance().getGeoObservable(address)
+// NetInterfaceManager.getInstance().getGeoObservable(address)
+// .compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
+// .subscribe(new Observer() {
+// @Override
+// public void onSubscribe(@NonNull Disposable d) {
+// Log.e("decodeGeo", "onSubscribe: ");
+// }
+//
+// @Override
+// public void onNext(@NonNull BaiduMapGeoBean baiduMapGeoBean) {
+// Log.e("decodeGeo", "onNext: " + baiduMapGeoBean);
+// if (baiduMapGeoBean.getStatus() == 0) {
+// mGeoResultData.setValue(baiduMapGeoBean.getResult());
+// } else {
+// mGeoResultData.setValue(null);
+// }
+// }
+//
+// @Override
+// public void onError(@NonNull Throwable e) {
+// Log.e("decodeGeo", "onError: " + e.getMessage());
+// mGeoResultData.setValue(null);
+// onComplete();
+// }
+//
+// @Override
+// public void onComplete() {
+// Log.e("decodeGeo", "onComplete: ");
+// }
+// });
+
+ }
+
+ private MutableLiveData mQweatherLocationData = new MutableLiveData<>();
+
+ public MutableLiveData getQweatherLocationData() {
+ return mQweatherLocationData;
+ }
+
+ public void cityLookup(String city) {
+ NetInterfaceManager.getInstance().getLookupObservable(city)
.compose(RxLifecycle.bindUntilEvent(getLifecycle(), ActivityEvent.DESTROY))
- .subscribe(new Observer() {
+ .subscribe(new Observer() {
@Override
public void onSubscribe(@NonNull Disposable d) {
- Log.e("decodeGeo", "onSubscribe: ");
+ Log.e("cityLookup", "onSubscribe: ");
}
@Override
- public void onNext(@NonNull MapGeoBean mapGeoBean) {
- Log.e("decodeGeo", "onNext: " + mapGeoBean);
- if (mapGeoBean.getStatus() == 0) {
- mGeoResultData.setValue(mapGeoBean.getResult());
- } else {
- mGeoResultData.setValue(null);
+ public void onNext(@NonNull QweatherLookup qweatherLookup) {
+ Log.e("cityLookup", "onNext: " + qweatherLookup);
+ if (qweatherLookup.getCode() == 200) {
+ List qweatherLocationList = qweatherLookup.getLocation();
+ if (qweatherLocationList == null || qweatherLocationList.isEmpty()) {
+ mQweatherLocationData.setValue(null);
+ } else {
+ mQweatherLocationData.setValue(qweatherLocationList.get(0));
+ }
}
}
@Override
public void onError(@NonNull Throwable e) {
- Log.e("decodeGeo", "onError: " + e.getMessage());
- mGeoResultData.setValue(null);
- onComplete();
+ Log.e("cityLookup", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
- Log.e("decodeGeo", "onComplete: ");
+ Log.e("cityLookup", "onComplete: ");
}
});
}
-
public void getWeatherCache() {
Log.e(TAG, "getWeatherCache: ");
String nowJsonString = mMMKV.decodeString(CommonConfig.WEATHER_NOW_KEY, "");
@@ -127,7 +143,6 @@ public class WeatherViewModel extends BaseViewModel() {
}.getType();
@@ -139,6 +154,12 @@ public class WeatherViewModel extends BaseViewModel mLocationData = new MutableLiveData<>();
+
+ public MutableLiveData getLocationData() {
+ return mLocationData;
+ }
+
public void getLocation() {
String location = AmapManager.getInstance().getDistrict();
mLocationData.setValue(location);
@@ -158,6 +179,12 @@ public class WeatherViewModel extends BaseViewModel mWeatherNowData = new MutableLiveData<>();
+
+ public MutableLiveData getWeatherNowData() {
+ return mWeatherNowData;
+ }
+
public void getWeatherNow(String locationTude) {
Log.e(TAG, "getweather: " + locationTude);
/**
@@ -185,6 +212,12 @@ public class WeatherViewModel extends BaseViewModel mWeatherDailyData = new MutableLiveData<>();
+
+ public MutableLiveData getWeatherDailyData() {
+ return mWeatherDailyData;
+ }
+
public void getWeather7D(String locationTude) {
QWeather.getWeather7D(getCtx(), locationTude, new QWeather.OnResultWeatherDailyListener() {
@Override
diff --git a/app/src/main/java/com/uiuios/aios/adapter/ContactAdapter.java b/app/src/main/java/com/uiuios/aios/adapter/ContactAdapter.java
index a77ef76..0e92664 100644
--- a/app/src/main/java/com/uiuios/aios/adapter/ContactAdapter.java
+++ b/app/src/main/java/com/uiuios/aios/adapter/ContactAdapter.java
@@ -36,6 +36,16 @@ public class ContactAdapter extends RecyclerView.Adapter location;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public List getLocation() {
+ return location;
+ }
+
+ public void setLocation(List location) {
+ this.location = location;
+ }
+
+
+ @NonNull
+ @Override
+ public String toString() {
+ return JsonParser.parseString(new Gson().toJson(this)).getAsJsonObject().toString();
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/config/CommonConfig.java b/app/src/main/java/com/uiuios/aios/config/CommonConfig.java
index fd0373f..f00867f 100644
--- a/app/src/main/java/com/uiuios/aios/config/CommonConfig.java
+++ b/app/src/main/java/com/uiuios/aios/config/CommonConfig.java
@@ -70,4 +70,8 @@ public class CommonConfig {
public static final String SETTING_CALL_TYPE_KEY = "setting_call_type_key";
public static final String SETTING_AUTOMATIC_ANSWER_KEY = "setting_automatic_answer_key";
+
+ public static final String EMERGENCY_CONTACT_KEY = "emergency_contact_phone";
+ public static final String FAMILY_ADDRESS_KEY = "Family_Address";
+
}
diff --git a/app/src/main/java/com/uiuios/aios/dialog/EditContactDialog.java b/app/src/main/java/com/uiuios/aios/dialog/EditContactDialog.java
new file mode 100644
index 0000000..0f8b0c0
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/dialog/EditContactDialog.java
@@ -0,0 +1,140 @@
+package com.uiuios.aios.dialog;
+
+
+import android.content.Context;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+import android.widget.TextView;
+
+import androidx.appcompat.app.AlertDialog;
+import androidx.constraintlayout.widget.ConstraintLayout;
+
+import com.uiuios.aios.R;
+
+
+/**
+ * description:自定义dialog
+ */
+
+public class EditContactDialog extends AlertDialog {
+
+ private TextView tvPhoneNumber;
+ private ConstraintLayout clEdit, clDelete, clCancel;
+
+ private String mPhoneNumber;
+
+ private Context mContext;
+
+ public EditContactDialog(Context context) {
+ super(context, R.style.CustomDialog);
+ this.mContext = context;
+ }
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.dialog_edit_contact);
+ //按空白处不能取消动画
+ setCanceledOnTouchOutside(true);
+ //初始化界面控件
+ initView();
+ //初始化界面数据
+ refreshView();
+ //初始化界面控件的事件
+ initEvent();
+ }
+
+ /**
+ * 初始化界面的确定和取消监听器
+ */
+ private void initEvent() {
+ //编辑按钮被点击后,向外界提供监听
+ clEdit.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (onClickBottomListener != null) {
+ onClickBottomListener.onEditClick();
+ }
+ }
+ });
+ //删除按钮被点击后,向外界提供监听
+ clDelete.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (onClickBottomListener != null) {
+ onClickBottomListener.onDeleteClick();
+ }
+ }
+ });
+ //取消按钮被点击后,向外界提供监听
+ clCancel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (onClickBottomListener != null) {
+ onClickBottomListener.onCancelClick();
+ }
+ }
+ });
+ }
+
+ /**
+ * 初始化界面控件的显示数据
+ */
+ private void refreshView() {
+ //如果用户自定了title和message
+ if (!TextUtils.isEmpty(mPhoneNumber)) {
+ tvPhoneNumber.setText(mPhoneNumber);
+ } else {
+
+ }
+ }
+
+ @Override
+ public void show() {
+ super.show();
+ refreshView();
+ }
+
+ /**
+ * 初始化界面控件
+ */
+ private void initView() {
+ tvPhoneNumber = findViewById(R.id.tv_phone_number);
+ clEdit = findViewById(R.id.cl_edit);
+ clDelete = findViewById(R.id.cl_delete);
+ clCancel = findViewById(R.id.cl_cancel);
+ }
+
+ /**
+ * 设置确定取消按钮的回调
+ */
+ private OnClickBottomListener onClickBottomListener;
+
+ public void setOnClickBottomListener(OnClickBottomListener onClickBottomListener) {
+ this.onClickBottomListener = onClickBottomListener;
+ }
+
+ public interface OnClickBottomListener {
+ /**
+ * 点击编辑按钮事件
+ */
+ void onEditClick();
+
+ /**
+ * 点击删除按钮事件
+ */
+ void onDeleteClick();
+
+ /**
+ * 点击取消按钮事件
+ */
+ void onCancelClick();
+ }
+
+ public EditContactDialog setPhoneNumber(String phoneNumber) {
+ mPhoneNumber = phoneNumber;
+ return this;
+ }
+}
diff --git a/app/src/main/java/com/uiuios/aios/fragment/contact/ContactFragment.java b/app/src/main/java/com/uiuios/aios/fragment/contact/ContactFragment.java
index 12608c5..14c8a66 100644
--- a/app/src/main/java/com/uiuios/aios/fragment/contact/ContactFragment.java
+++ b/app/src/main/java/com/uiuios/aios/fragment/contact/ContactFragment.java
@@ -4,7 +4,9 @@ import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.util.Log;
+import android.view.Gravity;
import android.view.View;
+import android.view.Window;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.GridLayoutManager;
@@ -12,6 +14,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import com.hjq.toast.Toaster;
import com.uiuios.aios.R;
import com.uiuios.aios.activity.contact.AddWechatContactActivity;
+import com.uiuios.aios.activity.contact.EditContactActivity;
import com.uiuios.aios.adapter.WechatContactAdapter;
import com.uiuios.aios.base.mvvm.fragment.BaseMvvmFragment;
import com.uiuios.aios.bean.BaseResponse;
@@ -20,6 +23,7 @@ import com.uiuios.aios.bean.WechatInfo;
import com.uiuios.aios.databinding.FragmentContactHomeBinding;
import com.uiuios.aios.db.ContactManager;
import com.uiuios.aios.dialog.DeleteContactDialog;
+import com.uiuios.aios.dialog.EditContactDialog;
import java.util.List;
@@ -48,7 +52,7 @@ public class ContactFragment extends BaseMvvmFragment() {
diff --git a/app/src/main/java/com/uiuios/aios/fragment/control/ControlFragment.java b/app/src/main/java/com/uiuios/aios/fragment/control/ControlFragment.java
index 99cea07..8f4b20c 100644
--- a/app/src/main/java/com/uiuios/aios/fragment/control/ControlFragment.java
+++ b/app/src/main/java/com/uiuios/aios/fragment/control/ControlFragment.java
@@ -41,6 +41,7 @@ import com.jeremyliao.liveeventbus.LiveEventBus;
import com.tencent.mmkv.MMKV;
import com.uiuios.aios.R;
import com.uiuios.aios.base.mvvm.fragment.BaseMvvmFragment;
+import com.uiuios.aios.bean.FamilyAddress;
import com.uiuios.aios.bean.MapBean;
import com.uiuios.aios.config.CommonConfig;
import com.uiuios.aios.databinding.PhoneFragmentControlBinding;
@@ -63,6 +64,8 @@ import java.util.Set;
public class ControlFragment extends BaseMvvmFragment {
private static final String TAG = ControlFragment.class.getSimpleName();
+ private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
+
private Context mContext;
private ContentResolver mCRv;
@@ -197,18 +200,32 @@ public class ControlFragment extends BaseMvvmFragment() {
- @Override
- public void onChanged(@Nullable MapBean mapBean) {
- Toaster.showShort("刷新成功");
- mViewDataBinding.tvLocation.setText(mapBean.getAddress());
- }
- });
+ mViewModel.getFamilyAddressData().observe(this, new Observer() {
+ @Override
+ public void onChanged(FamilyAddress familyAddress) {
+ if (familyAddress == null || TextUtils.isEmpty(familyAddress.getAddress())) {
+ mViewDataBinding.tvLocation.setText("未设置地址");
+ } else {
+ mViewDataBinding.tvLocation.setText(familyAddress.getAddress());
+ }
+ }
+ });
+// LiveEventBus.get("MapBean", MapBean.class)
+// .observe(this, new Observer() {
+// @Override
+// public void onChanged(@Nullable MapBean mapBean) {
+// Toaster.showShort("刷新成功");
+// mViewDataBinding.tvLocation.setText(mapBean.getAddress());
+// }
+// });
+
+ mViewModel.getFamilyAddress();
+
}
private void getWifi() {
@@ -789,7 +806,7 @@ public class ControlFragment extends BaseMvvmFragment {
+
+ private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
+
@Override
public PhoneFragmentControlBinding getVDBinding() {
return binding;
@@ -15,6 +33,40 @@ public class ControlViewModel extends BaseViewModel mFamilyAddressData = new MutableLiveData<>();
+ public MutableLiveData getFamilyAddressData() {
+ return mFamilyAddressData;
+ }
+
+ public void getFamilyAddress() {
+ NetInterfaceManager.getInstance().getFamilyAddressControl()
+ .compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY))
+ .subscribe(new Observer>() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ Log.e("getFamilyAddress", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(@NonNull BaseResponse baseResponse) {
+ Log.e("getFamilyAddress", "onNext: " + baseResponse);
+ FamilyAddress familyAddress = baseResponse.data;
+ if (familyAddress != null) {
+ mMMKV.encode(CommonConfig.FAMILY_ADDRESS_KEY, familyAddress.getAddress());
+ }
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("getFamilyAddress", "onError: " + e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("getFamilyAddress", "onComplete: ");
+ }
+ });
+ }
}
diff --git a/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java b/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java
index cf58b5d..26b94d4 100644
--- a/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java
+++ b/app/src/main/java/com/uiuios/aios/fragment/home/HomeFragment.java
@@ -17,6 +17,7 @@ import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.Observer;
import androidx.recyclerview.widget.GridLayoutManager;
+import com.blankj.utilcode.util.NetworkUtils;
import com.hjq.toast.Toaster;
import com.jeremyliao.liveeventbus.LiveEventBus;
import com.qweather.sdk.bean.weather.WeatherDailyBean;
@@ -61,7 +62,7 @@ import java.util.List;
* Use the {@link HomeFragment#newInstance} factory method to
* create an instance of this fragment.
*/
-public class HomeFragment extends BaseMvvmFragment {
+public class HomeFragment extends BaseMvvmFragment implements NetworkUtils.OnNetworkStatusChangedListener {
private static final String TAG = HomeFragment.class.getSimpleName();
@@ -115,8 +116,20 @@ public class HomeFragment extends BaseMvvmFragment>() {
@Override
public void onChanged(List contacts) {
@@ -79,10 +96,18 @@ public class ContactFragment extends BaseMvvmFragment() {
+ @Override
+ public void onChanged(BaseResponse baseResponse) {
+ if (baseResponse.code == 200) {
+ Toaster.show("删除成功");
+ } else {
+ Toaster.show("删除失败:" + baseResponse.msg);
+ }
+ mViewModel.getContact();
+ }
+ });
mViewModel.getContact();
}
@@ -123,6 +148,39 @@ public class ContactFragment extends BaseMvvmFragment mDeleteData =new MutableLiveData<>();
+
+ public MutableLiveData getDeleteData() {
+ return mDeleteData;
+ }
+
+ public void deleteContact(String id) {
+ NetInterfaceManager.getInstance().getMailListDeleteObservable(id)
+ .compose(RxLifecycle.bindUntilEvent(getLifecycle(), FragmentEvent.DESTROY))
+ .subscribe(new Observer() {
+ @Override
+ public void onSubscribe(@NonNull Disposable d) {
+ Log.e("deleteContact", "onSubscribe: ");
+ }
+
+ @Override
+ public void onNext(@NonNull BaseResponse baseResponse) {
+ Log.e("deleteContact", "onNext: " + baseResponse);
+ mDeleteData.setValue(baseResponse);
+ }
+
+ @Override
+ public void onError(@NonNull Throwable e) {
+ Log.e("deleteContact", "onError: " + e.getMessage());
+ }
+
+ @Override
+ public void onComplete() {
+ Log.e("deleteContact", "onComplete: ");
+ }
+ });
+ }
}
diff --git a/app/src/main/java/com/uiuios/aios/manager/AmapManager.java b/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
index 3eaafa7..131da95 100644
--- a/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
+++ b/app/src/main/java/com/uiuios/aios/manager/AmapManager.java
@@ -106,7 +106,7 @@ public class AmapManager {
public void startLocation() {
boolean activation = ActivationUtil.isActivation(mContext);
if (!activation) {
- Log.e(TAG, "startLocation: 未激活" );
+ Log.e(TAG, "startLocation: 未激活");
return;
}
mAMapLocationClient.stopLocation();
@@ -121,6 +121,9 @@ public class AmapManager {
//errCode等于0代表定位成功,其他的为定位失败,具体的可以参照官网定位错误码说明
if (aMapLocation.getErrorCode() == 0) {
Log.e(TAG, "onLocationChanged: " + "定位成功");
+ mMMKV.encode(CommonConfig.MAP_LONGITUDE_KEY, String.valueOf(aMapLocation.getLongitude()));
+ mMMKV.encode(CommonConfig.MAP_LATITUDE_KEY, String.valueOf(aMapLocation.getLatitude()));
+ mMMKV.encode(CommonConfig.MAP_ADDRESS_KEY, aMapLocation.getAddress());
updateAddress(aMapLocation);
mMapBean = getMapBean(aMapLocation);
saveMapResult(mMapBean);
diff --git a/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
index 6156c25..82029e0 100644
--- a/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
+++ b/app/src/main/java/com/uiuios/aios/manager/RemoteManager.java
@@ -11,9 +11,7 @@ import android.util.Log;
import com.tencent.bugly.crashreport.CrashReport;
import com.tencent.mmkv.MMKV;
-import com.uiuios.aios.BuildConfig;
import com.uiuios.aios.config.CommonConfig;
-import com.uiuios.aios.disklrucache.CacheHelper;
import com.uiuios.sn.IGetInfoInterface;
import java.util.Set;
@@ -45,7 +43,7 @@ public class RemoteManager {
mServiceConnected = true;
for (ConnectedListener listener : mListeners) {
if (listener != null) {
- listener.onConnected();
+ listener.onRemoteConnected();
}
}
try {
@@ -88,7 +86,7 @@ public class RemoteManager {
}
public interface ConnectedListener {
- void onConnected();
+ void onRemoteConnected();
}
private static Set mListeners = new CopyOnWriteArraySet<>();
@@ -96,7 +94,7 @@ public class RemoteManager {
public static void setListener(ConnectedListener listener) {
mListeners.add(listener);
if (mServiceConnected) {
- listener.onConnected();
+ listener.onRemoteConnected();
}
}
diff --git a/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java b/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java
index c4cb936..321f041 100644
--- a/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java
+++ b/app/src/main/java/com/uiuios/aios/network/NetInterfaceManager.java
@@ -19,18 +19,20 @@ import com.uiuios.aios.bean.ActivityBean;
import com.uiuios.aios.bean.AddressInfo;
import com.uiuios.aios.bean.AlarmClockId;
import com.uiuios.aios.bean.ArticleList;
+import com.uiuios.aios.bean.BaiduMapGeoBean;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.CategoryBean;
import com.uiuios.aios.bean.Contact;
import com.uiuios.aios.bean.DemandBean;
import com.uiuios.aios.bean.ExpressData;
+import com.uiuios.aios.bean.FamilyAddress;
import com.uiuios.aios.bean.GoodsList;
import com.uiuios.aios.bean.GoodsType;
import com.uiuios.aios.bean.HealthCode;
-import com.uiuios.aios.bean.MapGeoBean;
import com.uiuios.aios.bean.NetDesktopIcon;
import com.uiuios.aios.bean.OrderBean;
import com.uiuios.aios.bean.OrderIndexData;
+import com.uiuios.aios.bean.QweatherLookup;
import com.uiuios.aios.bean.RegionInfo;
import com.uiuios.aios.bean.ServeBean;
import com.uiuios.aios.bean.SnInfo;
@@ -44,50 +46,53 @@ import com.uiuios.aios.gson.GsonUtils;
import com.uiuios.aios.manager.ConnectManager;
import com.uiuios.aios.manager.ConnectMode;
import com.uiuios.aios.manager.RemoteManager;
-import com.uiuios.aios.network.api.ActivityListApi;
-import com.uiuios.aios.network.api.AddressIndexApi;
-import com.uiuios.aios.network.api.MailListDeleteApi;
-import com.uiuios.aios.network.api.ServeApi;
-import com.uiuios.aios.network.api.alarmclock.AlarmClockAddApi;
-import com.uiuios.aios.network.api.alarmclock.AlarmClockApi;
-import com.uiuios.aios.network.api.alarmclock.AlarmClockDeleteApi;
-import com.uiuios.aios.network.api.alarmclock.AlarmClockEditApi;
-import com.uiuios.aios.network.api.alarmclock.AlarmClockQueryApi;
-import com.uiuios.aios.network.api.AppUsageRecordApi;
-import com.uiuios.aios.network.api.ArticleCategorysListApi;
-import com.uiuios.aios.network.api.ArticleListApi;
-import com.uiuios.aios.network.api.CategorysApi;
-import com.uiuios.aios.network.api.DemandListApi;
-import com.uiuios.aios.network.api.GetAdminSnSettingApi;
-import com.uiuios.aios.network.api.desktop.GetDesktopApi;
-import com.uiuios.aios.network.api.GetMailList;
-import com.uiuios.aios.network.api.GetUserIDApi;
-import com.uiuios.aios.network.api.pay.GoodsBuyApi;
-import com.uiuios.aios.network.api.GoodsListApi;
-import com.uiuios.aios.network.api.GoodsTypeApi;
-import com.uiuios.aios.network.api.GoodsTypeListApi;
-import com.uiuios.aios.network.api.HealthCodeApi;
-import com.uiuios.aios.network.api.KnowledgeVideoListApi;
-import com.uiuios.aios.network.api.liven.LivenVideoListApi;
-import com.uiuios.aios.network.api.MailListAddApi;
-import com.uiuios.aios.network.api.pay.OrderPayApi;
-import com.uiuios.aios.network.api.pay.OrderPayCheckApi;
-import com.uiuios.aios.network.api.RegionListApi;
-import com.uiuios.aios.network.api.RegionListCall;
-import com.uiuios.aios.network.api.app.RunNewApp;
-import com.uiuios.aios.network.api.sn.SnInfoApi;
-import com.uiuios.aios.network.api.sn.SosRecordApi;
-import com.uiuios.aios.network.api.sn.SendScreenshotApi;
-import com.uiuios.aios.network.api.sn.SettingApi;
-import com.uiuios.aios.network.api.sn.UpdateAddressApi;
-import com.uiuios.aios.network.api.sn.UpdateAlarmClockApi;
-import com.uiuios.aios.network.api.UpdateAppIconApi;
-import com.uiuios.aios.network.api.desktop.UpdateDesktopApi;
-import com.uiuios.aios.network.api.UserInfoControl;
import com.uiuios.aios.network.api.amap.GeocodingApi;
-import com.uiuios.aios.network.api.order.AllOrderApi;
-import com.uiuios.aios.network.api.order.OrderExpressApi;
-import com.uiuios.aios.network.api.order.OrderIndexApi;
+import com.uiuios.aios.network.api.qweather.LookupApi;
+import com.uiuios.aios.network.api.uiui.ActivityListApi;
+import com.uiuios.aios.network.api.uiui.AddressIndexApi;
+import com.uiuios.aios.network.api.uiui.AppUsageRecordApi;
+import com.uiuios.aios.network.api.uiui.ArticleCategorysListApi;
+import com.uiuios.aios.network.api.uiui.ArticleListApi;
+import com.uiuios.aios.network.api.uiui.CategorysApi;
+import com.uiuios.aios.network.api.uiui.DemandListApi;
+import com.uiuios.aios.network.api.uiui.GetAdminSnSettingApi;
+import com.uiuios.aios.network.api.uiui.GetMailList;
+import com.uiuios.aios.network.api.uiui.GetUserIDApi;
+import com.uiuios.aios.network.api.uiui.GoodsListApi;
+import com.uiuios.aios.network.api.uiui.GoodsTypeApi;
+import com.uiuios.aios.network.api.uiui.GoodsTypeListApi;
+import com.uiuios.aios.network.api.uiui.HealthCodeApi;
+import com.uiuios.aios.network.api.uiui.KnowledgeVideoListApi;
+import com.uiuios.aios.network.api.uiui.contact.MailListAddApi;
+import com.uiuios.aios.network.api.uiui.contact.MailListDeleteApi;
+import com.uiuios.aios.network.api.uiui.RegionListApi;
+import com.uiuios.aios.network.api.uiui.RegionListCall;
+import com.uiuios.aios.network.api.uiui.ServeApi;
+import com.uiuios.aios.network.api.uiui.UpdateAppIconApi;
+import com.uiuios.aios.network.api.uiui.UserInfoControl;
+import com.uiuios.aios.network.api.uiui.alarmclock.AlarmClockAddApi;
+import com.uiuios.aios.network.api.uiui.alarmclock.AlarmClockApi;
+import com.uiuios.aios.network.api.uiui.alarmclock.AlarmClockDeleteApi;
+import com.uiuios.aios.network.api.uiui.alarmclock.AlarmClockEditApi;
+import com.uiuios.aios.network.api.uiui.alarmclock.AlarmClockQueryApi;
+import com.uiuios.aios.network.api.uiui.app.RunNewApp;
+import com.uiuios.aios.network.api.uiui.contact.MailListEditApi;
+import com.uiuios.aios.network.api.uiui.desktop.GetDesktopApi;
+import com.uiuios.aios.network.api.uiui.desktop.UpdateDesktopApi;
+import com.uiuios.aios.network.api.uiui.liven.LivenVideoListApi;
+import com.uiuios.aios.network.api.uiui.order.AllOrderApi;
+import com.uiuios.aios.network.api.uiui.order.OrderExpressApi;
+import com.uiuios.aios.network.api.uiui.order.OrderIndexApi;
+import com.uiuios.aios.network.api.uiui.pay.GoodsBuyApi;
+import com.uiuios.aios.network.api.uiui.pay.OrderPayApi;
+import com.uiuios.aios.network.api.uiui.pay.OrderPayCheckApi;
+import com.uiuios.aios.network.api.uiui.sn.FamilyAddressApi;
+import com.uiuios.aios.network.api.uiui.sn.SendScreenshotApi;
+import com.uiuios.aios.network.api.uiui.sn.SettingApi;
+import com.uiuios.aios.network.api.uiui.sn.SnInfoApi;
+import com.uiuios.aios.network.api.uiui.sn.SosRecordApi;
+import com.uiuios.aios.network.api.uiui.sn.UpdateAddressApi;
+import com.uiuios.aios.network.api.uiui.sn.UpdateAlarmClockApi;
import com.uiuios.aios.network.interceptor.RepeatRequestInterceptor;
import java.io.File;
@@ -122,18 +127,22 @@ public class NetInterfaceManager {
private static NetInterfaceManager INSTANCE;
private Context mContext;
private CacheHelper mCacheHelper;
+ private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
private Retrofit mRetrofit;
private OkHttpClient okHttpClient;
+
private Retrofit mAmapRetrofit;
private OkHttpClient mAmapOkHttpClient;
- private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE);
+
+ private Retrofit mQweatherRetrofit;
+ private OkHttpClient mQweatherOkHttpClient;
private final ConcurrentHashMap requestIdsMap = new ConcurrentHashMap<>();
//超时时间
- private static int timeOut = 30;
+ private static final int TIME_OUT = 8;
// 缓存文件最大限制大小20M
- private static long cacheSize = 1024 * 1024 * 64;
+ private static final long CACHE_SIZE = 1024 * 1024 * 64;
public static final String HTTP_KEY = "YTM3YTAxNTJmMmZmNzkyM2E2YzIwZjlhZTc0NzNmMGI=";
public static final String CUSTOM_REPEAT_REQ_PROTOCOL = "MY_CUSTOM_REPEAT_REQ_PROTOCOL";
@@ -142,18 +151,17 @@ public class NetInterfaceManager {
this.mContext = context;
this.mCacheHelper = new CacheHelper(context);
if (okHttpClient == null) {
-
//如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了
OkHttpClient.Builder builder = new OkHttpClient.Builder();
- builder.connectTimeout(timeOut, TimeUnit.SECONDS); // 设置连接超时时间
- builder.writeTimeout(timeOut, TimeUnit.SECONDS);// 设置写入超时时间
- builder.readTimeout(timeOut, TimeUnit.SECONDS);// 设置读取数据超时时间
+ builder.connectTimeout(TIME_OUT, TimeUnit.SECONDS); // 设置连接超时时间
+ builder.writeTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置写入超时时间
+ builder.readTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置读取数据超时时间
builder.retryOnConnectionFailure(true);// 设置进行连接失败重试
builder.addInterceptor(new RepeatRequestInterceptor());
// 设置缓存文件路径
String cacheDirectory = mContext.getExternalCacheDir().getAbsolutePath() + "/OkHttpCache";
- Cache cache = new Cache(new File(cacheDirectory), cacheSize);
+ Cache cache = new Cache(new File(cacheDirectory), CACHE_SIZE);
builder.cache(cache);// 设置缓存
okHttpClient = builder.build();
}
@@ -170,15 +178,15 @@ public class NetInterfaceManager {
if (mAmapOkHttpClient == null) {
//如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了
OkHttpClient.Builder builder = new OkHttpClient.Builder();
- builder.connectTimeout(timeOut, TimeUnit.SECONDS); // 设置连接超时时间
- builder.writeTimeout(timeOut, TimeUnit.SECONDS);// 设置写入超时时间
- builder.readTimeout(timeOut, TimeUnit.SECONDS);// 设置读取数据超时时间
+ builder.connectTimeout(TIME_OUT, TimeUnit.SECONDS); // 设置连接超时时间
+ builder.writeTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置写入超时时间
+ builder.readTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置读取数据超时时间
builder.retryOnConnectionFailure(true);// 设置进行连接失败重试
builder.addInterceptor(new RepeatRequestInterceptor());
// 设置缓存文件路径
String cacheDirectory = mContext.getExternalCacheDir().getAbsolutePath() + "/OkHttpCache";
- Cache cache = new Cache(new File(cacheDirectory), cacheSize);
+ Cache cache = new Cache(new File(cacheDirectory), CACHE_SIZE);
builder.cache(cache);// 设置缓存
mAmapOkHttpClient = builder.build();
}
@@ -191,6 +199,31 @@ public class NetInterfaceManager {
.addCallAdapterFactory(RxJava3CallAdapterFactory.create())
.build();
}
+
+ if (mQweatherOkHttpClient == null) {
+ //如果无法生存缓存文件目录,检测权限使用已经加上,检测手机是否把文件读写权限禁止了
+ OkHttpClient.Builder builder = new OkHttpClient.Builder();
+ builder.connectTimeout(TIME_OUT, TimeUnit.SECONDS); // 设置连接超时时间
+ builder.writeTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置写入超时时间
+ builder.readTimeout(TIME_OUT, TimeUnit.SECONDS);// 设置读取数据超时时间
+ builder.retryOnConnectionFailure(true);// 设置进行连接失败重试
+ builder.addInterceptor(new RepeatRequestInterceptor());
+
+ // 设置缓存文件路径
+ String cacheDirectory = mContext.getExternalCacheDir().getAbsolutePath() + "/OkHttpCache";
+ Cache cache = new Cache(new File(cacheDirectory), CACHE_SIZE);
+ builder.cache(cache);// 设置缓存
+ mQweatherOkHttpClient = builder.build();
+ }
+
+ if (mQweatherRetrofit == null) {
+ mQweatherRetrofit = new Retrofit.Builder()
+ .client(mQweatherOkHttpClient)
+ .baseUrl(UrlAddress.QWEATHER_ROOT_URL)
+ .addConverterFactory(GsonConverterFactory.create())
+ .addCallAdapterFactory(RxJava3CallAdapterFactory.create())
+ .build();
+ }
}
/**
@@ -247,13 +280,22 @@ public class NetInterfaceManager {
return okHttpClient;
}
- public Observable getGeoObservable(String address) {
+ @Deprecated
+ public Observable getGeoObservable(String address) {
return mAmapRetrofit.create(GeocodingApi.class)
.geocoding(address, "json", "RGAsG7hN9gbDxeruqF4Lsf0ro6pp362O")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
+ public Observable getLookupObservable(String address) {
+ return mQweatherRetrofit.create(LookupApi.class)
+ .lookup(address, "c5928a6a274c4a1cb80957a293b27898")
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread());
+ }
+
+
public static RequestBody convertToRequestBody(String param) {
RequestBody requestBody = RequestBody.create(MediaType.parse("text/plain"), param);
return requestBody;
@@ -279,13 +321,20 @@ public class NetInterfaceManager {
*
* @return
*/
- public Observable> getsnInfoControl() {
+ public Observable> getSnInfoControl() {
return mRetrofit.create(SnInfoApi.class)
.getSninfo(RemoteManager.getInstance().getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
+ public Observable> getFamilyAddressControl() {
+ return mRetrofit.create(FamilyAddressApi.class)
+ .getFamilyAddress(RemoteManager.getInstance().getSerial())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread());
+ }
+
public Observable> getUserAvatarInfoControl() {
return mRetrofit.create(UserInfoControl.class)
.getUserAvatarInfo(RemoteManager.getInstance().getSerial())
@@ -398,8 +447,14 @@ public class NetInterfaceManager {
.observeOn(AndroidSchedulers.mainThread());
}
+ public Observable getMailListEditObservable(Map params, MultipartBody.Part body) {
+ return mRetrofit.create(MailListEditApi.class)
+ .editContact(params, body)
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread());
+ }
- public Observable getMailListDeleteObservable(int id) {
+ public Observable getMailListDeleteObservable(String id) {
return mRetrofit.create(MailListDeleteApi.class)
.deleteMailList(RemoteManager.getInstance().getSerial(), id)
.subscribeOn(Schedulers.io())
@@ -1086,7 +1141,7 @@ public class NetInterfaceManager {
}
public void getSnInfo(SnInfoCallback callback) {
- getsnInfoControl()
+ getSnInfoControl()
.subscribe(new Observer>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
diff --git a/app/src/main/java/com/uiuios/aios/network/UrlAddress.java b/app/src/main/java/com/uiuios/aios/network/UrlAddress.java
index 2135c45..b40fed9 100644
--- a/app/src/main/java/com/uiuios/aios/network/UrlAddress.java
+++ b/app/src/main/java/com/uiuios/aios/network/UrlAddress.java
@@ -2,7 +2,12 @@ package com.uiuios.aios.network;
public class UrlAddress {
public static final String ROOT_URL = "https://led.zuoyepad.com/android/";
+ /*百度地图*/
+ @Deprecated
public static final String AMAP_ROOT_URL = "https://api.map.baidu.com/";
+ /*和风天气*/
+ public static final String QWEATHER_ROOT_URL = "https://geoapi.qweather.com/";
+
/**
* 旧接口
@@ -26,6 +31,9 @@ public class UrlAddress {
public static final String SOS_RECORD = "sosRecord";
/*上传地址信息*/
public static final String UPDATE_ADDRESS = "sn/update-address";
+ /*获取设备家庭地址*/
+ public static final String FAMILY_ADDRESS = "sn/family-address";
+
/*获取抢购列表*/
public static final String GET_GOODS_LIST = "getGoodsList";
@@ -153,7 +161,15 @@ public class UrlAddress {
+
+
/*逆地理编码*/
+ @Deprecated
public static final String GEOCODING = "geocoding/v3/";
+ /*城市搜索*/
+ public static final String CITY_LOOKUP = "v2/city/lookup";
+
+
+
}
diff --git a/app/src/main/java/com/uiuios/aios/network/api/amap/GeocodingApi.java b/app/src/main/java/com/uiuios/aios/network/api/amap/GeocodingApi.java
index 2e5c87b..da39790 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/amap/GeocodingApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/amap/GeocodingApi.java
@@ -1,6 +1,6 @@
package com.uiuios.aios.network.api.amap;
-import com.uiuios.aios.bean.MapGeoBean;
+import com.uiuios.aios.bean.BaiduMapGeoBean;
import com.uiuios.aios.network.UrlAddress;
import io.reactivex.rxjava3.core.Observable;
@@ -9,7 +9,7 @@ import retrofit2.http.Query;
public interface GeocodingApi {
@GET(UrlAddress.GEOCODING)
- Observable geocoding(
+ Observable geocoding(
@Query("address") String address,
@Query("output") String output,
@Query("ak") String key
diff --git a/app/src/main/java/com/uiuios/aios/network/api/qweather/LookupApi.java b/app/src/main/java/com/uiuios/aios/network/api/qweather/LookupApi.java
new file mode 100644
index 0000000..ba60365
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/network/api/qweather/LookupApi.java
@@ -0,0 +1,17 @@
+package com.uiuios.aios.network.api.qweather;
+
+import com.uiuios.aios.bean.BaiduMapGeoBean;
+import com.uiuios.aios.bean.QweatherLookup;
+import com.uiuios.aios.network.UrlAddress;
+
+import io.reactivex.rxjava3.core.Observable;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+public interface LookupApi {
+ @GET(UrlAddress.CITY_LOOKUP)
+ Observable lookup(
+ @Query("location") String location,
+ @Query("key") String key
+ );
+}
diff --git a/app/src/main/java/com/uiuios/aios/network/api/ActivityListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/ActivityListApi.java
similarity index 93%
rename from app/src/main/java/com/uiuios/aios/network/api/ActivityListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/ActivityListApi.java
index 0799df4..7342917 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/ActivityListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/ActivityListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.ActivityBean;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/AddressIndexApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/AddressIndexApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/AddressIndexApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/AddressIndexApi.java
index b2c312a..e89b840 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/AddressIndexApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/AddressIndexApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.AddressInfo;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/AppUsageRecordApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/AppUsageRecordApi.java
similarity index 93%
rename from app/src/main/java/com/uiuios/aios/network/api/AppUsageRecordApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/AppUsageRecordApi.java
index 1e24617..00165f3 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/AppUsageRecordApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/AppUsageRecordApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/ArticleCategorysListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleCategorysListApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/ArticleCategorysListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleCategorysListApi.java
index 8711b08..0fb31f7 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/ArticleCategorysListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleCategorysListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.ArticleList;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/ArticleDetailsApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleDetailsApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/ArticleDetailsApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleDetailsApi.java
index a7cc634..66283e2 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/ArticleDetailsApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleDetailsApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.ArticleDetails;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/ArticleListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleListApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/ArticleListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleListApi.java
index 9a10059..e1bd03e 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/ArticleListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/ArticleListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.ArticleInfo;
import com.uiuios.aios.bean.ArticleList;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/CategorysApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/CategorysApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/CategorysApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/CategorysApi.java
index a80a5e6..22f5313 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/CategorysApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/CategorysApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.CategoryBean;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/DemandListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/DemandListApi.java
similarity index 93%
rename from app/src/main/java/com/uiuios/aios/network/api/DemandListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/DemandListApi.java
index 6c86f19..e253320 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/DemandListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/DemandListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.DemandBean;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/GetAdminSnSettingApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/GetAdminSnSettingApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/GetAdminSnSettingApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/GetAdminSnSettingApi.java
index 9d8a90a..d483041 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/GetAdminSnSettingApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/GetAdminSnSettingApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/GetMailList.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/GetMailList.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/GetMailList.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/GetMailList.java
index bbbc3c6..62072d8 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/GetMailList.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/GetMailList.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.Contact;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/GetUserIDApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/GetUserIDApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/GetUserIDApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/GetUserIDApi.java
index d845005..22c19c8 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/GetUserIDApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/GetUserIDApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.UserId;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/GoodsDetailsApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsDetailsApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/GoodsDetailsApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsDetailsApi.java
index 3e8d241..19d296f 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/GoodsDetailsApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsDetailsApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.GoodsDetails;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/GoodsListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsListApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/GoodsListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsListApi.java
index 7215be1..8309f90 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/GoodsListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.GoodsList;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/GoodsTypeApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsTypeApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/GoodsTypeApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsTypeApi.java
index b1461b4..7bb37f0 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/GoodsTypeApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsTypeApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.GoodsType;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/GoodsTypeListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsTypeListApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/GoodsTypeListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsTypeListApi.java
index eaddbb9..beebe2d 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/GoodsTypeListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/GoodsTypeListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.GoodsList;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/HealthCodeApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/HealthCodeApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/HealthCodeApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/HealthCodeApi.java
index a6ccaf1..be7c675 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/HealthCodeApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/HealthCodeApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.HealthCode;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/KnowledgeVideoListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/KnowledgeVideoListApi.java
similarity index 92%
rename from app/src/main/java/com/uiuios/aios/network/api/KnowledgeVideoListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/KnowledgeVideoListApi.java
index c49450c..5d53d64 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/KnowledgeVideoListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/KnowledgeVideoListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiui.video.bean.VideoInfo;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/RegionListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/RegionListApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/RegionListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/RegionListApi.java
index 3ca5a88..b6d8a73 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/RegionListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/RegionListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.RegionInfo;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/RegionListCall.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/RegionListCall.java
similarity index 92%
rename from app/src/main/java/com/uiuios/aios/network/api/RegionListCall.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/RegionListCall.java
index 158567b..fa09b99 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/RegionListCall.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/RegionListCall.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.RegionInfo;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/ServeApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/ServeApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/ServeApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/ServeApi.java
index 177af68..abce02e 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/ServeApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/ServeApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.RegionInfo;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/UpdateAppIconApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/UpdateAppIconApi.java
similarity index 93%
rename from app/src/main/java/com/uiuios/aios/network/api/UpdateAppIconApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/UpdateAppIconApi.java
index 3257b45..1f23027 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/UpdateAppIconApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/UpdateAppIconApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/UserInfoControl.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/UserInfoControl.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/UserInfoControl.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/UserInfoControl.java
index 77c0e3d..9bc7e25 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/UserInfoControl.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/UserInfoControl.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockAddApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockAddApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockAddApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockAddApi.java
index fef5c3b..5916dec 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockAddApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockAddApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.alarmclock;
+package com.uiuios.aios.network.api.uiui.alarmclock;
import com.uiuios.aios.bean.AlarmClockId;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockApi.java
index 1cfd02c..1b22389 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.alarmclock;
+package com.uiuios.aios.network.api.uiui.alarmclock;
import com.uiuios.aios.alarm.AlarmClockData;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockDeleteApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockDeleteApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockDeleteApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockDeleteApi.java
index 6aca5de..6604427 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockDeleteApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockDeleteApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.alarmclock;
+package com.uiuios.aios.network.api.uiui.alarmclock;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockEditApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockEditApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockEditApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockEditApi.java
index c051d50..8ffa137 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockEditApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockEditApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.alarmclock;
+package com.uiuios.aios.network.api.uiui.alarmclock;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockQueryApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockQueryApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockQueryApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockQueryApi.java
index 81155a4..df0851f 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/alarmclock/AlarmClockQueryApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/alarmclock/AlarmClockQueryApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.alarmclock;
+package com.uiuios.aios.network.api.uiui.alarmclock;
import com.uiuios.aios.alarm.AlarmClockData;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/app/RunNewApp.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/app/RunNewApp.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/app/RunNewApp.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/app/RunNewApp.java
index 929952a..949ca5a 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/app/RunNewApp.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/app/RunNewApp.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.app;
+package com.uiuios.aios.network.api.uiui.app;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/MailListAddApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListAddApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/MailListAddApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListAddApi.java
index 10bade2..89319a2 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/MailListAddApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListAddApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui.contact;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/MailListDeleteApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListDeleteApi.java
similarity index 82%
rename from app/src/main/java/com/uiuios/aios/network/api/MailListDeleteApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListDeleteApi.java
index 7dd6da1..f694c40 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/MailListDeleteApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListDeleteApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api;
+package com.uiuios.aios.network.api.uiui.contact;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
@@ -13,6 +13,6 @@ public interface MailListDeleteApi {
@POST(UrlAddress.MAIL_LIST_DELETE)
Observable deleteMailList(
@Field("sn") String sn,
- @Field("id") int id
+ @Field("id") String id
);
}
diff --git a/app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListEditApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListEditApi.java
new file mode 100644
index 0000000..11cfb6f
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/contact/MailListEditApi.java
@@ -0,0 +1,24 @@
+package com.uiuios.aios.network.api.uiui.contact;
+
+import com.uiuios.aios.bean.BaseResponse;
+import com.uiuios.aios.network.UrlAddress;
+
+import java.util.Map;
+
+import io.reactivex.rxjava3.core.Observable;
+import okhttp3.MultipartBody;
+import retrofit2.http.Field;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.Multipart;
+import retrofit2.http.POST;
+import retrofit2.http.Part;
+import retrofit2.http.QueryMap;
+
+public interface MailListEditApi {
+ @Multipart
+ @POST(UrlAddress.MAIL_LIST_EDIT)
+ Observable editContact(
+ @QueryMap Map params,
+ @Part MultipartBody.Part body
+ );
+}
diff --git a/app/src/main/java/com/uiuios/aios/network/api/desktop/GetDesktopApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/desktop/GetDesktopApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/desktop/GetDesktopApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/desktop/GetDesktopApi.java
index 2d8e175..a77c202 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/desktop/GetDesktopApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/desktop/GetDesktopApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.desktop;
+package com.uiuios.aios.network.api.uiui.desktop;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.NetDesktopIcon;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/desktop/UpdateDesktopApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/desktop/UpdateDesktopApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/desktop/UpdateDesktopApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/desktop/UpdateDesktopApi.java
index 922e27e..d3153d5 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/desktop/UpdateDesktopApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/desktop/UpdateDesktopApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.desktop;
+package com.uiuios.aios.network.api.uiui.desktop;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/liven/LivenVideoListApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/liven/LivenVideoListApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/liven/LivenVideoListApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/liven/LivenVideoListApi.java
index 96c9f7c..724ef32 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/liven/LivenVideoListApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/liven/LivenVideoListApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.liven;
+package com.uiuios.aios.network.api.uiui.liven;
import com.uiui.video.bean.VideoInfo;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/order/AllOrderApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/order/AllOrderApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/order/AllOrderApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/order/AllOrderApi.java
index f7643a2..c2811f3 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/order/AllOrderApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/order/AllOrderApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.order;
+package com.uiuios.aios.network.api.uiui.order;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.OrderIndexData;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/order/OrderExpressApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/order/OrderExpressApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/order/OrderExpressApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/order/OrderExpressApi.java
index 4f16e12..2e51dbb 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/order/OrderExpressApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/order/OrderExpressApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.order;
+package com.uiuios.aios.network.api.uiui.order;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.ExpressData;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/order/OrderIndexApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/order/OrderIndexApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/order/OrderIndexApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/order/OrderIndexApi.java
index 287ceb8..7d9d2d0 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/order/OrderIndexApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/order/OrderIndexApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.order;
+package com.uiuios.aios.network.api.uiui.order;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.OrderIndexData;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/pay/GoodsBuyApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/pay/GoodsBuyApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/pay/GoodsBuyApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/pay/GoodsBuyApi.java
index 66d1a53..8047e19 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/pay/GoodsBuyApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/pay/GoodsBuyApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.pay;
+package com.uiuios.aios.network.api.uiui.pay;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.OrderBean;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/pay/OrderPayApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/pay/OrderPayApi.java
similarity index 92%
rename from app/src/main/java/com/uiuios/aios/network/api/pay/OrderPayApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/pay/OrderPayApi.java
index 9fe910b..4f32505 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/pay/OrderPayApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/pay/OrderPayApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.pay;
+package com.uiuios.aios.network.api.uiui.pay;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.WxpayBean;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/pay/OrderPayCheckApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/pay/OrderPayCheckApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/pay/OrderPayCheckApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/pay/OrderPayCheckApi.java
index 150ba77..c79c4a5 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/pay/OrderPayCheckApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/pay/OrderPayCheckApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.pay;
+package com.uiuios.aios.network.api.uiui.pay;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/FamilyAddressApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/FamilyAddressApi.java
new file mode 100644
index 0000000..bd35ed4
--- /dev/null
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/FamilyAddressApi.java
@@ -0,0 +1,16 @@
+package com.uiuios.aios.network.api.uiui.sn;
+
+import com.uiuios.aios.bean.BaseResponse;
+import com.uiuios.aios.bean.FamilyAddress;
+import com.uiuios.aios.network.UrlAddress;
+
+import io.reactivex.rxjava3.core.Observable;
+import retrofit2.http.GET;
+import retrofit2.http.Query;
+
+public interface FamilyAddressApi {
+ @GET(UrlAddress.FAMILY_ADDRESS)
+ Observable> getFamilyAddress(
+ @Query("sn") String sn
+ );
+}
diff --git a/app/src/main/java/com/uiuios/aios/network/api/sn/SendScreenshotApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SendScreenshotApi.java
similarity index 91%
rename from app/src/main/java/com/uiuios/aios/network/api/sn/SendScreenshotApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SendScreenshotApi.java
index 887fe12..03804d0 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/sn/SendScreenshotApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SendScreenshotApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.sn;
+package com.uiuios.aios.network.api.uiui.sn;
import com.uiuios.aios.bean.BaseResponse;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/sn/SettingApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SettingApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/sn/SettingApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SettingApi.java
index 78e3975..d070835 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/sn/SettingApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SettingApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.sn;
+package com.uiuios.aios.network.api.uiui.sn;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.SystemSettings;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/sn/SnInfoApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SnInfoApi.java
similarity index 89%
rename from app/src/main/java/com/uiuios/aios/network/api/sn/SnInfoApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SnInfoApi.java
index 7d3c8cf..e29f080 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/sn/SnInfoApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SnInfoApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.sn;
+package com.uiuios.aios.network.api.uiui.sn;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.bean.SnInfo;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/sn/SosRecordApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SosRecordApi.java
similarity index 92%
rename from app/src/main/java/com/uiuios/aios/network/api/sn/SosRecordApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SosRecordApi.java
index ade844c..5f74d05 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/sn/SosRecordApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/SosRecordApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.sn;
+package com.uiuios.aios.network.api.uiui.sn;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAddressApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/UpdateAddressApi.java
similarity index 92%
rename from app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAddressApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/sn/UpdateAddressApi.java
index 5a1f6d9..a06a9c1 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAddressApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/UpdateAddressApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.sn;
+package com.uiuios.aios.network.api.uiui.sn;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAlarmClockApi.java b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/UpdateAlarmClockApi.java
similarity index 90%
rename from app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAlarmClockApi.java
rename to app/src/main/java/com/uiuios/aios/network/api/uiui/sn/UpdateAlarmClockApi.java
index 139fb20..a9c7c0f 100644
--- a/app/src/main/java/com/uiuios/aios/network/api/sn/UpdateAlarmClockApi.java
+++ b/app/src/main/java/com/uiuios/aios/network/api/uiui/sn/UpdateAlarmClockApi.java
@@ -1,4 +1,4 @@
-package com.uiuios.aios.network.api.sn;
+package com.uiuios.aios.network.api.uiui.sn;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.UrlAddress;
diff --git a/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java b/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
index 25a644b..c16d0e8 100644
--- a/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
+++ b/app/src/main/java/com/uiuios/aios/utils/ApkUtils.java
@@ -165,6 +165,10 @@ public class ApkUtils {
private static List hideApp = new ArrayList() {{
this.add("com.uiuios.aios");
this.add("com.uiuios.appstore");
+ this.add("com.android.quicksearchbox");
+ this.add("com.android.stk");
+ this.add("com.debug.loggerui");
+ this.add("com.mediatek.gnss.nonframeworklbs");
}};
/**
@@ -359,6 +363,10 @@ public class ApkUtils {
Log.e(TAG, "getAppstoreAppInfo: hided = " + pkg);
continue;
}
+ if (hideApp.contains(pkg)) {
+ Log.e(TAG, "getAppstoreAppInfo: hideApp = " + pkg);
+ continue;
+ }
if (frist == 0) {
if (pkgSet.contains(pkg)) {
if (allPackages.contains(pkg) && !excludePackageName.contains(pkg)) {
diff --git a/app/src/main/java/com/uiuios/aios/utils/FileUtil.java b/app/src/main/java/com/uiuios/aios/utils/FileUtil.java
index a01f4f1..0ed838f 100644
--- a/app/src/main/java/com/uiuios/aios/utils/FileUtil.java
+++ b/app/src/main/java/com/uiuios/aios/utils/FileUtil.java
@@ -56,4 +56,5 @@ public class FileUtil {
}
}
+
}
diff --git a/app/src/main/res/drawable-hdpi/control_background.png b/app/src/main/res/drawable-hdpi/control_background.png
index 3d58cdf..cff3206 100644
Binary files a/app/src/main/res/drawable-hdpi/control_background.png and b/app/src/main/res/drawable-hdpi/control_background.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_delete_contact.png b/app/src/main/res/drawable-hdpi/icon_delete_contact.png
new file mode 100644
index 0000000..22f1528
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_delete_contact.png differ
diff --git a/app/src/main/res/drawable-hdpi/icon_edit_contact.png b/app/src/main/res/drawable-hdpi/icon_edit_contact.png
new file mode 100644
index 0000000..13c3c76
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_edit_contact.png differ
diff --git a/app/src/main/res/drawable/control_background_item_dis.xml b/app/src/main/res/drawable/control_background_item_dis.xml
index 824f480..34a33ee 100644
--- a/app/src/main/res/drawable/control_background_item_dis.xml
+++ b/app/src/main/res/drawable/control_background_item_dis.xml
@@ -2,7 +2,7 @@
-
+
-
+
+
+
+
+
+ android:layout_height="match_parent">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-land/activity_phone.xml b/app/src/main/res/layout-land/activity_phone.xml
index 44e9815..5c0dd45 100644
--- a/app/src/main/res/layout-land/activity_phone.xml
+++ b/app/src/main/res/layout-land/activity_phone.xml
@@ -27,10 +27,10 @@
app:tl_indicator_color="#FFFFFF"
app:tl_indicator_style="TRIANGLE"
app:tl_indicator_width_equal_title="true"
- app:tl_selectTextSize="@dimen/sp_18"
+ app:tl_selectTextSize="@dimen/sp_22"
app:tl_tab_space_equal="true"
app:tl_textBold="SELECT"
- app:tl_textsize="@dimen/sp_16" />
+ app:tl_textsize="@dimen/sp_20" />
-
+
+
+
+
+
+ android:layout_height="match_parent">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout-port/activity_phone.xml b/app/src/main/res/layout-port/activity_phone.xml
index 2f902ab..40d0a33 100644
--- a/app/src/main/res/layout-port/activity_phone.xml
+++ b/app/src/main/res/layout-port/activity_phone.xml
@@ -27,10 +27,10 @@
app:tl_indicator_color="#FFFFFF"
app:tl_indicator_style="TRIANGLE"
app:tl_indicator_width_equal_title="true"
- app:tl_selectTextSize="@dimen/sp_18"
+ app:tl_selectTextSize="@dimen/sp_22"
app:tl_tab_space_equal="true"
app:tl_textBold="SELECT"
- app:tl_textsize="@dimen/sp_16" />
+ app:tl_textsize="@dimen/sp_20" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_information.xml b/app/src/main/res/layout/activity_information.xml
index c823f82..063154e 100644
--- a/app/src/main/res/layout/activity_information.xml
+++ b/app/src/main/res/layout/activity_information.xml
@@ -2,10 +2,12 @@
+ tools:context=".activity.information.InformationActivity">
-
+
-
+ tools:context=".activity.location.LocationAcivity">
+
+
+
+
-
-
+ android:id="@+id/bg"
+ android:onClick="@{click::exit}"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_weather.xml b/app/src/main/res/layout/activity_weather.xml
index 7d4820b..29ea4f6 100644
--- a/app/src/main/res/layout/activity_weather.xml
+++ b/app/src/main/res/layout/activity_weather.xml
@@ -76,7 +76,7 @@
android:scaleType="centerCrop"
android:text="刷新"
android:textColor="@color/white"
- android:textSize="@dimen/sp_18"
+ android:textSize="@dimen/sp_16"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout/dialog_edit_contact.xml b/app/src/main/res/layout/dialog_edit_contact.xml
new file mode 100644
index 0000000..5de1a90
--- /dev/null
+++ b/app/src/main/res/layout/dialog_edit_contact.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_weather_port.xml b/app/src/main/res/layout/item_weather_port.xml
index 7930c90..5cae6df 100644
--- a/app/src/main/res/layout/item_weather_port.xml
+++ b/app/src/main/res/layout/item_weather_port.xml
@@ -61,7 +61,8 @@
0.85-->
- 1.0
- 1.15
- - 1.30
+ - 1.3
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 33ebe22..cf208b4 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -7,6 +7,7 @@
- @color/colorPrimaryDark
- @color/colorAccent
- @color/colorPrimary
+ - ?attr/colorPrimary
- true