Files
VscoolOS/app/src/main/java/com/uiui/aios/activity/CodeActivity.java
tongtongstudio dc5455926a version:2.3
fix:
update:更新应用卸载安装时桌面实时添加数据
2022-06-25 18:21:10 +08:00

130 lines
4.7 KiB
Java

package com.uiui.aios.activity;
import android.graphics.Color;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import androidx.viewpager.widget.ViewPager;
import com.bumptech.glide.Glide;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.uiui.aios.R;
import com.uiui.aios.adapter.HealthCodeAdapter;
import com.uiui.aios.base.BaseActivity;
import com.uiui.aios.bean.BaseResponse;
import com.uiui.aios.bean.HealthCode;
import com.uiui.aios.network.NetInterfaceManager;
import com.uiui.aios.utils.Utils;
import com.uiui.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;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.schedulers.Schedulers;
public class CodeActivity extends BaseActivity {
@BindView(R.id.viewPager)
ViewPager mViewPager;
@BindView(R.id.magicIndicator)
MagicIndicator mMagicIndicator;
@BindView(R.id.iv_nodata)
ImageView iv_nodata;
private HealthCodeAdapter mHealthCodeAdapter;
private ScaleCircleNavigator scaleCircleNavigator;
@Override
public int getLayoutId() {
return R.layout.activity_code;
}
@Override
public void initView() {
ButterKnife.bind(this);
mHealthCodeAdapter = new HealthCodeAdapter();
mViewPager.setAdapter(mHealthCodeAdapter);
scaleCircleNavigator = new ScaleCircleNavigator(this);
}
@Override
public void initData() {
getHealthCode();
}
private void setImageViews(List<HealthCode> healthCodes) {
mMagicIndicator.setNavigator(scaleCircleNavigator);
scaleCircleNavigator.setCircleCount(healthCodes.size());
scaleCircleNavigator.setNormalCircleColor(Color.DKGRAY);
scaleCircleNavigator.setSelectedCircleColor(Color.LTGRAY);
scaleCircleNavigator.setCircleClickListener(new ScaleCircleNavigator.OnCircleClickListener() {
@Override
public void onClick(int index) {
}
});
ViewPagerHelper.bind(mMagicIndicator, mViewPager);
List<ImageView> imageViews = new ArrayList<>();
for (HealthCode healthCode : healthCodes) {
ImageView image = new ImageView(this);
image.setAdjustViewBounds(true);
image.setScaleType(ImageView.ScaleType.FIT_CENTER);
Glide.with(this).load(healthCode.getImg()).into(image);
imageViews.add(image);
}
mHealthCodeAdapter.setImageViews(imageViews);
mHealthCodeAdapter.notifyDataSetChanged();
}
private void getHealthCode() {
NetInterfaceManager.getInstance().getHealthCodeApi()
.getArticleDetails(Utils.getSerial())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycle.bindUntilEvent(lifecycleSubject, ActivityEvent.DESTROY))
.subscribe(new Observer<BaseResponse<List<HealthCode>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getHealthCode", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<List<HealthCode>> listBaseResponse) {
Log.e("getHealthCode", "onNext: " + listBaseResponse);
if (listBaseResponse.code == 200) {
List<HealthCode> healthCodeList = listBaseResponse.data;
setImageViews(healthCodeList);
mViewPager.setVisibility(View.VISIBLE);
mMagicIndicator.setVisibility(View.VISIBLE);
iv_nodata.setVisibility(View.GONE);
} else {
mViewPager.setVisibility(View.GONE);
mMagicIndicator.setVisibility(View.GONE);
iv_nodata.setVisibility(View.VISIBLE);
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getHealthCode", "onError: ");
}
@Override
public void onComplete() {
Log.e("getHealthCode", "onComplete: ");
}
});
}
}