130 lines
4.7 KiB
Java
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: ");
|
|
}
|
|
});
|
|
}
|
|
}
|