[Modify]移除部分无用代码和viewpager改造
This commit is contained in:
@@ -286,10 +286,6 @@
|
||||
android:name=".home.activity.CollectionRoomActivity"
|
||||
android:label="@string/main_androidmanifest_019"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.wallet.ExchangeGoldActivity"
|
||||
android:label="@string/main_androidmanifest_020"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.setting.SettingActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -299,9 +295,6 @@
|
||||
<activity
|
||||
android:name=".ui.relation.FansListActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.withdraw.WithdrawActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.withdraw.bankcard.BindWithdrawBankCardActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -317,18 +310,6 @@
|
||||
<activity
|
||||
android:name=".ui.user.activity.ShowPhotoActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.TotalBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.WithdrawBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.ChargeBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.ChatBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.setting.FeedbackActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -342,21 +323,6 @@
|
||||
<activity
|
||||
android:name=".ui.webview.SimpleWebViewActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.RedBagBillsActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.BillGiftExpendActivity"
|
||||
android:label="@string/main_androidmanifest_021"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.BillGiftInComeActivity"
|
||||
android:label="@string/main_androidmanifest_022"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".bills.activities.BillNobleActivity"
|
||||
android:label="@string/bill_noble_open"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".avroom.activity.RoomInviteActivity"
|
||||
android:label="@string/main_androidmanifest_023"
|
||||
@@ -399,42 +365,6 @@
|
||||
android:name=".friend.view.SelectFriendActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyPlazaActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyHomeActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilySearchActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyListActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyManageActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyCurrencyActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyMemberListActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyInfoActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyMemberSearchActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".team.view.NimTeamMessageActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -479,10 +409,6 @@
|
||||
android:name=".luckymoney.view.LuckyMoneyDetailActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" /> <!-- android:launchMode="singleTask" -->
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyMemberCurrencyActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".ErbanTakePhotoActivity"
|
||||
android:screenOrientation="portrait"
|
||||
@@ -491,18 +417,6 @@
|
||||
android:name=".team.view.UpdateTeamNameActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilySelectFriendActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyTextInputActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".family.view.activity.FamilyGameListActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".treasure_box.activity.TreasureBoxActivity"
|
||||
android:theme="@style/dialog_web_view_activity" />
|
||||
@@ -661,15 +575,6 @@
|
||||
android:name="com.yizhuan.tutu.room_chat.activity.NimHallTeamRoomMessageActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/room_message_activity" />
|
||||
<activity
|
||||
android:name=".bills.activities.BillGiftIncomeGroupActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".radish.activity.RadishRecordActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".radish.task.activity.TaskCenterActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
<activity
|
||||
android:name=".ui.patriarch.PatriarchModeActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
@@ -760,10 +665,6 @@
|
||||
<activity
|
||||
android:name="com.zhihu.matisse.internal.ui.SelectedPreviewActivity"
|
||||
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
|
||||
<activity
|
||||
android:name=".ui.wallet.sendgold.SendGoldActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||
<activity
|
||||
android:name=".pay.activity.GiveGoldActivity"
|
||||
android:screenOrientation="portrait"
|
||||
|
@@ -50,7 +50,6 @@ import com.yizhuan.erban.community.dynamic.view.DynamicDetailActivity;
|
||||
import com.yizhuan.erban.community.publish.view.PublishActivity;
|
||||
import com.yizhuan.erban.community.square.SquareFragment;
|
||||
import com.yizhuan.erban.event.AreaChangeEvent;
|
||||
import com.yizhuan.erban.family.view.activity.FamilyHomeActivity;
|
||||
import com.yizhuan.erban.home.HomeViewModel;
|
||||
import com.yizhuan.erban.home.dialog.NewUserHelloDialog;
|
||||
import com.yizhuan.erban.home.dialog.ProtocolUpdateDialog;
|
||||
@@ -221,8 +220,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
// 跳转
|
||||
if (!StringUtil.isEmpty(linkedInfo.getRoomUid()) && linkedInfo.getType().equals("2")) {
|
||||
AVRoomActivity.start(context, Long.parseLong(linkedInfo.getRoomUid()));
|
||||
} else if (!StringUtil.isEmpty(linkedInfo.getFamilyId()) && linkedInfo.getType().equals("4")) {
|
||||
FamilyHomeActivity.start(context, linkedInfo.getFamilyId());
|
||||
} else if (!TextUtils.isEmpty(linkedInfo.getUrl()) && linkedInfo.getType().equals("3")) {
|
||||
CommonWebViewActivity.start(context, UriProvider.getLinkUrl(linkedInfo.getUrl()));
|
||||
} else if (!TextUtils.isEmpty(linkedInfo.getWorldId()) && linkedInfo.getType().equals("5")) {
|
||||
|
@@ -49,7 +49,6 @@ import com.yizhuan.erban.common.app.ActivityStack;
|
||||
import com.yizhuan.erban.common.util.AppLifeCycleHelper;
|
||||
import com.yizhuan.erban.module_hall.HallDataManager;
|
||||
import com.yizhuan.erban.other.activity.SplashActivity;
|
||||
import com.yizhuan.erban.radish.wallet.RadishWalletManager;
|
||||
import com.yizhuan.erban.utils.PushMessageHandler;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
@@ -98,7 +97,6 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@@ -443,8 +441,6 @@ public class XChatApplication extends BaseApp {
|
||||
DynamicFaceModel.get().init();
|
||||
PayModel.get();
|
||||
UserModel.get();
|
||||
//ui层的萝卜钱包
|
||||
RadishWalletManager.get();
|
||||
//model层的
|
||||
RadishModel.get();
|
||||
|
||||
|
@@ -3,6 +3,7 @@ package com.yizhuan.erban.avroom.fragment;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
|
||||
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
|
||||
import com.yizhuan.erban.avroom.widget.RankNavigatorAdapter;
|
||||
import com.yizhuan.erban.base.BaseBindingFragment;
|
||||
@@ -26,7 +27,7 @@ public class RoomCharmListFragment extends BaseBindingFragment<FragmentRoomCharm
|
||||
ArrayList<Fragment> fragments = new ArrayList<>(2);
|
||||
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING));
|
||||
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_WEEK_RANKING));
|
||||
mBinding.vpCharmRankings.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragments));
|
||||
mBinding.vpCharmRankings.setAdapter(new CommonVPAdapter(getChildFragmentManager(), getLifecycle(), fragments));
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getActivity());
|
||||
commonNavigator.setAdjustMode(false);
|
||||
|
||||
|
@@ -2,8 +2,10 @@ package com.yizhuan.erban.avroom.fragment;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
import androidx.viewpager2.widget.ViewPager2;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
|
||||
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
|
||||
import com.yizhuan.erban.avroom.widget.RankNavigatorAdapter;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
@@ -21,7 +23,7 @@ import java.util.ArrayList;
|
||||
*/
|
||||
public class RoomContributeListFragment extends BaseMvpFragment implements IMvpBaseView {
|
||||
|
||||
private ViewPager viewPager;
|
||||
private ViewPager2 viewPager;
|
||||
private MagicIndicator viewIndicator;
|
||||
|
||||
@Override
|
||||
@@ -43,7 +45,7 @@ public class RoomContributeListFragment extends BaseMvpFragment implements IMvpB
|
||||
if (AvRoomDataManager.get().isDatingMode()) {
|
||||
fragments.add(RoomContributeFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING));
|
||||
}
|
||||
viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), fragments));
|
||||
viewPager.setAdapter(new CommonVPAdapter(getChildFragmentManager(), getLifecycle(), fragments));
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getActivity());
|
||||
commonNavigator.setAdjustMode(false);
|
||||
RankNavigatorAdapter indicator = new RankNavigatorAdapter(AvRoomDataManager.get().isDatingMode());
|
||||
|
@@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
|
||||
import com.yizhuan.erban.avroom.adapter.RoomRankFragmentPageAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@@ -5,6 +5,7 @@ import android.view.View;
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
|
||||
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
|
||||
import com.yizhuan.erban.avroom.widget.RoomRankNavigatorAdapter;
|
||||
import com.yizhuan.erban.base.BaseBindingFragment;
|
||||
@@ -29,7 +30,7 @@ public class RoomRankListFragment extends BaseBindingFragment<FragmentRoomRankLi
|
||||
List<Fragment> list = new ArrayList<>(2);
|
||||
list.add(new RoomContributeListFragment());
|
||||
list.add(RoomCharmListFragment.newInstance());
|
||||
mBinding.viewPager.setAdapter(new RoomContributeListAdapter(getChildFragmentManager(), list));
|
||||
mBinding.viewPager.setAdapter(new CommonVPAdapter(getChildFragmentManager(), getLifecycle(), list));
|
||||
|
||||
CommonNavigator commonNavigator = new CommonNavigator(getActivity());
|
||||
commonNavigator.setAdjustMode(true);
|
||||
|
@@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
|
||||
import com.yizhuan.erban.base.BaseViewBindingActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.databinding.ActivityMyRecommendCardBinding;
|
||||
@@ -49,7 +50,7 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
|
||||
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.HAS_USED));
|
||||
//已失效
|
||||
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.INVALID));
|
||||
binding.viewPager.setAdapter(new CardPagerAdapter(getSupportFragmentManager()));
|
||||
binding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(), getLifecycle(), fragmentList));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,20 +84,4 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
|
||||
|
||||
}
|
||||
|
||||
class CardPagerAdapter extends FragmentStatePagerAdapter {
|
||||
|
||||
public CardPagerAdapter(FragmentManager fm) {
|
||||
super(fm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
return fragmentList.get(position);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return fragmentList.size();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -927,11 +927,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
|
||||
case RoomEvent.RECHARGE:
|
||||
onNeedCharge();
|
||||
break;
|
||||
|
||||
case RoomEvent.RADISH_NOT_ENOUGH:
|
||||
DialogUiHelper.showRadishNotEnoughDialog(this, null);
|
||||
break;
|
||||
|
||||
case RoomEvent.GIFT_OUT_OF_DATE:
|
||||
SingleToastUtil.showToast(roomEvent.getMessage());
|
||||
break;
|
||||
|
@@ -1,185 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.databinding.ViewDataBinding;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.jzxiang.pickerview.TimePickerDialog;
|
||||
import com.jzxiang.pickerview.data.Type;
|
||||
import com.jzxiang.pickerview.listener.OnDateSetListener;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseBindingActivity;
|
||||
import com.yizhuan.erban.bills.adapter.BillBaseAdapter;
|
||||
import com.yizhuan.erban.common.NoDataFragment;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> 账单base activity </p>
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2017/11/6
|
||||
*/
|
||||
public abstract class BillBaseActivity<T extends ViewDataBinding> extends BaseBindingActivity<T>
|
||||
implements OnDateSetListener, View.OnClickListener {
|
||||
protected BillBaseActivity mActivity;
|
||||
private TextView mTvDate;
|
||||
private ImageView mIvSelectorDate;
|
||||
protected RecyclerView mRecyclerView;
|
||||
private ImageView mIvTodaySelect;
|
||||
protected SwipeRefreshLayout mRefreshLayout;
|
||||
protected BillBaseAdapter adapter;
|
||||
|
||||
protected int mCurrentCounter = Constants.PAGE_START;
|
||||
protected static final int PAGE_SIZE = Constants.BILL_PAGE_SIZE;
|
||||
protected TimePickerDialog.Builder mDialogYearMonthDayBuild;
|
||||
protected long time = System.currentTimeMillis();
|
||||
protected List<BillItemEntity> mBillItemEntityList = new ArrayList<>();
|
||||
|
||||
protected int getLayout() {
|
||||
return R.layout.activity_bills;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
mActivity = this;
|
||||
initView();
|
||||
initData();
|
||||
setListener();
|
||||
}
|
||||
|
||||
protected void initView() {
|
||||
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
|
||||
mRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
|
||||
mTvDate = (TextView) findViewById(R.id.tv_date);
|
||||
mIvTodaySelect = (ImageView) findViewById(R.id.iv_today_select);
|
||||
mIvSelectorDate = (ImageView) findViewById(R.id.tv_selector_date);
|
||||
|
||||
// mRecyclerView = mBinding.recyclerView;
|
||||
// mRefreshLayout = mBinding.swipeRefresh;
|
||||
// mTvDate = mBinding.tvDate;
|
||||
// mIvTodaySelect = mBinding.ivTodaySelect;
|
||||
// mIvSelectorDate = mBinding.tvSelectorDate;
|
||||
}
|
||||
|
||||
protected void initData() {
|
||||
setDate(System.currentTimeMillis());
|
||||
mDialogYearMonthDayBuild = new TimePickerDialog.Builder()
|
||||
.setType(Type.YEAR_MONTH_DAY)
|
||||
.setTitleStringId(ResUtil.getString(R.string.bills_activities_billbaseactivity_01))
|
||||
.setThemeColor(getResources().getColor(R.color.line_background))
|
||||
.setWheelItemTextNormalColor(getResources().getColor(R.color
|
||||
.timetimepicker_default_text_color))
|
||||
.setWheelItemTextSelectorColor(getResources().getColor(R.color.black))
|
||||
.setCallBack(mActivity);
|
||||
}
|
||||
|
||||
protected void setDate(long time) {
|
||||
mTvDate.setText(TimeUtils.getDateTimeString(time, "yyyy-MM-dd"));
|
||||
}
|
||||
|
||||
protected abstract void loadData();
|
||||
|
||||
protected void setListener() {
|
||||
mIvTodaySelect.setOnClickListener(this);
|
||||
mIvSelectorDate.setOnClickListener(this);
|
||||
mRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
// time = System.currentTimeMillis();
|
||||
loadData();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showNetworkErr() {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
super.showNetworkErr();
|
||||
}
|
||||
|
||||
public void onGetDataError(String error) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNetworkErr();
|
||||
} else {
|
||||
adapter.loadMoreFail();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.iv_today_select:
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
time = System.currentTimeMillis();
|
||||
setDate(time);
|
||||
showLoading();
|
||||
loadData();
|
||||
break;
|
||||
case R.id.tv_selector_date:
|
||||
mDialogYearMonthDayBuild.build().show(getSupportFragmentManager(), "year_month_day");
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDateSet(TimePickerDialog timePickerView, long millseconds) {
|
||||
this.time = millseconds;
|
||||
setDate(millseconds);
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showNoData(CharSequence charSequence) {
|
||||
this.showNoData(R.drawable.icon_common_failure, charSequence);
|
||||
}
|
||||
|
||||
@SuppressLint("ResourceType")
|
||||
@Override
|
||||
public void showNoData(int drawable, CharSequence charSequence) {
|
||||
if (!checkActivityValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
View status = findViewById(R.id.status_layout);
|
||||
if (status == null || status.getId() <= 0) {
|
||||
return;
|
||||
}
|
||||
NoDataFragment fragment = NoDataFragment.newInstance(R.layout.fragment_no_data_large_iv, drawable, charSequence);
|
||||
fragment.setListener(getLoadListener());
|
||||
getSupportFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public View.OnClickListener getLoadListener() {
|
||||
return v -> {
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
showLoading();
|
||||
loadData();
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mDialogYearMonthDayBuild != null) {
|
||||
mDialogYearMonthDayBuild.setCallBack(null);
|
||||
mDialogYearMonthDayBuild = null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -1,191 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.bills.adapter.GiftExpendAdapter;
|
||||
import com.yizhuan.erban.databinding.ActivityBillsGiftBinding;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendListInfo;
|
||||
import com.yizhuan.xchat_android_core.pay.PayModel;
|
||||
import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.common.util.DeviceUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>账单礼物支出界面 </p>
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2017/11/6
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_bills_gift)
|
||||
public class BillGiftExpendActivity extends BillBaseActivity<ActivityBillsGiftBinding> {
|
||||
// private GiftExpendAdapter adapter;
|
||||
private TextView mGoldNum;
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
mGoldNum = (TextView) findViewById(R.id.tv_gold_num);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
super.initData();
|
||||
initTitleBar(getString(R.string.bill_gift_expend));
|
||||
|
||||
adapter = new GiftExpendAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(() -> {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}, mRecyclerView);
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mActivity);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
showLoading();
|
||||
onLoadGoldNum();
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void onLoadGoldNum() {
|
||||
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||
if (null != walletInfo) {
|
||||
mGoldNum.setText(getString(R.string.bill_gift_gold_num, walletInfo.getDiamondNum()));
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void loadData() {
|
||||
BillModel.get()
|
||||
.getGiftExpendBills(mCurrentCounter, PAGE_SIZE, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((expendResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
BillGiftExpendActivity.this.onGetDataError(throwable.getMessage());
|
||||
} else if (expendResult != null && expendResult.isSuccess()) {
|
||||
BillGiftExpendActivity.this.onGetExpendBills(expendResult.getData());
|
||||
} else if (expendResult != null) {
|
||||
BillGiftExpendActivity.this.onGetDataError(expendResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onGetExpendBills(ExpendListInfo data) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
List<Map<String, List<ExpendInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
int size = mBillItemEntityList.size();
|
||||
BillItemEntity billItemEntity;
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<ExpendInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<ExpendInfo> expendInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(expendInfos)) continue;
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
//时间不一致才会添加标题
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (ExpendInfo temp : expendInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
//目的是为了比较
|
||||
billItemEntity.time = key;
|
||||
billItemEntity.mGiftExpendInfo = temp;
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNoData(R.drawable.icon_common_failure, ResUtil.getString(R.string.bills_activities_billgiftexpendactivity_01));
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// public void onGetExpendBillsError(String error) {
|
||||
// if (mCurrentCounter == Constants.PAGE_START) {
|
||||
// showNetworkErr();
|
||||
// } else {
|
||||
// adapter.loadMoreFail();
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void initTitleBar(String title) {
|
||||
mTitleBar = (TitleBar) findViewById(R.id.title_bar);
|
||||
if (mTitleBar != null) {
|
||||
mTitleBar.setTitle(title);
|
||||
mTitleBar.setImmersive(false);
|
||||
mTitleBar.setTitleColor(getResources().getColor(R.color.back_font));
|
||||
mTitleBar.setLeftImageResource(R.drawable.arrow_left);
|
||||
mTitleBar.setLeftClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
mTitleBar.setActionTextColor(getResources().getColor(R.color.text_tertiary));
|
||||
mTitleBar.addAction(new TitleBar.TextAction(ResUtil.getString(R.string.bills_activities_billgiftexpendactivity_02)) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
if(AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
ChargeActivity.start(mActivity);
|
||||
}else {
|
||||
CommonWebViewActivity.start(
|
||||
mActivity, UriProvider.getOfficialPay(
|
||||
4,
|
||||
DeviceUtil.getDeviceId(mActivity)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,218 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.bills.adapter.GiftIncomeAdapter;
|
||||
import com.yizhuan.erban.databinding.ActivityBillsGiftBinding;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeListInfo;
|
||||
import com.yizhuan.xchat_android_core.pay.PayModel;
|
||||
import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.common.util.DeviceUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p> 账单礼物收入界面 </p>
|
||||
*
|
||||
* @author Administrator
|
||||
* @date 2017/11/7
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_bills_gift)
|
||||
public class BillGiftInComeActivity extends BillBaseActivity<ActivityBillsGiftBinding> {
|
||||
// private GiftIncomeAdapter adapter;
|
||||
private TextView mGoldNum;
|
||||
private ImageView iv_goto_top;
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
super.init();
|
||||
initTitleBar(getString(R.string.bill_gift_income));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
mGoldNum = (TextView) findViewById(R.id.tv_gold_num);
|
||||
iv_goto_top = findViewById(R.id.iv_goto_top);
|
||||
iv_goto_top.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
super.initData();
|
||||
adapter = new GiftIncomeAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}
|
||||
}, mRecyclerView);
|
||||
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mActivity);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
|
||||
firstLoadDate();
|
||||
}
|
||||
|
||||
private void firstLoadDate() {
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
showLoading();
|
||||
onLoadGoldNum();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void loadData() {
|
||||
BillModel.get()
|
||||
.getGiftIncomeBills(mCurrentCounter, PAGE_SIZE, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((incomedResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onGetDataError(throwable.getMessage());
|
||||
} else if (incomedResult != null && incomedResult.isSuccess()) {
|
||||
onGetIncomeBills(incomedResult.getData());
|
||||
} else if (incomedResult != null) {
|
||||
onGetDataError(incomedResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void onLoadGoldNum() {
|
||||
WalletInfo walletInfo = PayModel.get().getCurrentWalletInfo();
|
||||
if (null != walletInfo) {
|
||||
mGoldNum.setText(getString(R.string.bill_gift_gold_num, walletInfo.getDiamondNum()));
|
||||
}
|
||||
}
|
||||
|
||||
public void onGetIncomeBills(IncomeListInfo data) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
List<Map<String, List<IncomeInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
BillItemEntity billItemEntity;
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<IncomeInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<IncomeInfo> incomeInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(incomeInfos)) continue;
|
||||
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
//时间不一致才会添加标题
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (IncomeInfo temp : incomeInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.mGiftInComeInfo = temp;
|
||||
//目的是为了比较
|
||||
billItemEntity.time = key;
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNoData(R.drawable.icon_common_failure, ResUtil.getString(R.string.bills_activities_billgiftincomeactivity_01));
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initTitleBar(String title) {
|
||||
TitleBar mTitleBar = (TitleBar) findViewById(R.id.title_bar);
|
||||
if (mTitleBar != null) {
|
||||
mTitleBar.setTitle(title);
|
||||
mTitleBar.setImmersive(false);
|
||||
mTitleBar.setTitleColor(getResources().getColor(R.color.back_font));
|
||||
mTitleBar.setLeftImageResource(R.drawable.arrow_left);
|
||||
mTitleBar.setLeftClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
mTitleBar.setActionTextColor(getResources().getColor(R.color.text_tertiary));
|
||||
mTitleBar.addAction(new TitleBar.TextAction(ResUtil.getString(R.string.bills_activities_billgiftincomeactivity_02)) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
if(AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
ChargeActivity.start(mActivity);
|
||||
}else {
|
||||
CommonWebViewActivity.start(
|
||||
mActivity, UriProvider.getOfficialPay(
|
||||
4,
|
||||
DeviceUtil.getDeviceId(mActivity)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadDate() {
|
||||
super.onReloadDate();
|
||||
firstLoadDate();
|
||||
}
|
||||
}
|
@@ -1,148 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import static com.yizhuan.erban.bills.fragmemt.RadishGiftFragment.TYPE_RADISH_EXPAND;
|
||||
import static com.yizhuan.erban.bills.fragmemt.RadishGiftFragment.TYPE_RADISH_INCOME;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.bills.fragmemt.GiftIncomeFragment;
|
||||
import com.yizhuan.erban.bills.fragmemt.GiftOutputFragment;
|
||||
import com.yizhuan.erban.bills.fragmemt.RadishGiftFragment;
|
||||
import com.yizhuan.erban.bills.presenter.BillGiftIncomeGroupPresenter;
|
||||
import com.yizhuan.erban.bills.view.IBillGiftIncomeGroupView;
|
||||
import com.yizhuan.erban.bills.view.ISmoothToTopView;
|
||||
import com.yizhuan.erban.bills.widget.BillGiftIncomeGroupNavigatorAdapter;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.common.util.DeviceUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@CreatePresenter(BillGiftIncomeGroupPresenter.class)
|
||||
public class BillGiftIncomeGroupActivity extends BaseMvpActivity<IBillGiftIncomeGroupView, BillGiftIncomeGroupPresenter>
|
||||
implements IBillGiftIncomeGroupView, CommonNavigator.NavigatorSelectedListener {
|
||||
|
||||
public static final byte TYPE_BILL_INCOME = 1;
|
||||
public static final byte TYPE_BILL_OUTPUT = 2;
|
||||
private static final String FLAG_TYPE_BILL = "type_bill";
|
||||
private byte mType = TYPE_BILL_INCOME;
|
||||
|
||||
private TextView mGoldNum;
|
||||
private ImageView iv_goto_top;
|
||||
private ViewPager mViewPager;
|
||||
|
||||
public static void startActivity(Context context, byte type) {
|
||||
Intent intent = new Intent(context, BillGiftIncomeGroupActivity.class);
|
||||
intent.putExtra(FLAG_TYPE_BILL, type);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
StatusBarLightModes(true);
|
||||
setContentView(R.layout.activity_bill_gift_income_group);
|
||||
|
||||
mType = getIntent().getByteExtra(FLAG_TYPE_BILL, TYPE_BILL_INCOME);
|
||||
|
||||
initTitleBar(mType == TYPE_BILL_INCOME ? ResUtil.getString(R.string.bills_activities_billgiftincomegroupactivity_01) : ResUtil.getString(R.string.bills_activities_billgiftincomegroupactivity_02));
|
||||
|
||||
mGoldNum = findViewById(R.id.tv_gold_num);
|
||||
iv_goto_top = findViewById(R.id.iv_goto_top);
|
||||
iv_goto_top.setOnClickListener(v -> smoothToTop());
|
||||
|
||||
mViewPager = findViewById(R.id.vp_bill_gift_income_group);
|
||||
MagicIndicator viewIndicator = findViewById(R.id.mi_bill);
|
||||
|
||||
ArrayList<Fragment> fragments = new ArrayList<>(2);
|
||||
|
||||
if (mType == TYPE_BILL_INCOME) {
|
||||
fragments.add(GiftIncomeFragment.newInstance());
|
||||
fragments.add(RadishGiftFragment.newInstance(TYPE_RADISH_INCOME));
|
||||
} else {
|
||||
fragments.add(GiftOutputFragment.newInstance());
|
||||
fragments.add(RadishGiftFragment.newInstance(TYPE_RADISH_EXPAND));
|
||||
}
|
||||
mViewPager.setAdapter(new RoomContributeListAdapter(getSupportFragmentManager(), fragments));
|
||||
|
||||
CommonNavigator commonNavigator = new CommonNavigator(this);
|
||||
commonNavigator.setAdjustMode(true);
|
||||
commonNavigator.setmNavigatorSelectedListener(this);
|
||||
|
||||
BillGiftIncomeGroupNavigatorAdapter indicator = new BillGiftIncomeGroupNavigatorAdapter();
|
||||
indicator.setOnItemSelectListener(position -> mViewPager.setCurrentItem(position));
|
||||
commonNavigator.setAdapter(indicator);
|
||||
viewIndicator.setNavigator(commonNavigator);
|
||||
ViewPagerHelper.bind(viewIndicator, mViewPager);
|
||||
}
|
||||
|
||||
private void smoothToTop() {
|
||||
try {
|
||||
|
||||
if (mViewPager != null) {
|
||||
int position = mViewPager.getCurrentItem();
|
||||
RoomContributeListAdapter roomConsumeListAdapter = (RoomContributeListAdapter) mViewPager.getAdapter();
|
||||
|
||||
if (roomConsumeListAdapter != null) {
|
||||
ISmoothToTopView iSmoothToTopView = (ISmoothToTopView) roomConsumeListAdapter.getItem(position);
|
||||
|
||||
if (iSmoothToTopView != null)
|
||||
iSmoothToTopView.smoothScrollToTop();
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
private void showRightOption(boolean show) {
|
||||
if (mTitleBar.getActionCount() > 0)
|
||||
mTitleBar.removeActionAt(0);
|
||||
|
||||
if (show) {
|
||||
mTitleBar.addAction(new TitleBar.TextAction(ResUtil.getString(R.string.bills_activities_billgiftincomegroupactivity_03)) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
if(AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
startActivity(new Intent(BillGiftIncomeGroupActivity.this, ChargeActivity.class));
|
||||
}else {
|
||||
CommonWebViewActivity.start(
|
||||
context, UriProvider.getOfficialPay(
|
||||
4,
|
||||
DeviceUtil.getDeviceId(context)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void navigatorSelected(int position) {
|
||||
showRightOption(position == 0); // 钻石礼物显示充值按钮
|
||||
}
|
||||
}
|
@@ -1,155 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.bills.adapter.NobleBillAdapter;
|
||||
import com.yizhuan.erban.databinding.ActivityBillsBinding;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.NobleBillListInfo;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p> 贵族开通记录 </p>
|
||||
*
|
||||
* @author jiahui
|
||||
* @date 2018/1/10
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_bills)
|
||||
public class BillNobleActivity extends BillBaseActivity<ActivityBillsBinding> {
|
||||
private NobleBillAdapter mNobleBillAdapter;
|
||||
|
||||
private ImageView iv_goto_top;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
initTitleBar(getString(R.string.bill_noble_open));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
iv_goto_top = findViewById(R.id.iv_goto_top);
|
||||
iv_goto_top.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
super.initData();
|
||||
mNobleBillAdapter = new NobleBillAdapter(mBillItemEntityList);
|
||||
mNobleBillAdapter.setOnLoadMoreListener(() -> {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}, mRecyclerView);
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mActivity);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(mNobleBillAdapter);
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void loadData() {
|
||||
BillModel.get()
|
||||
.loadNobleBillRecords(time, mCurrentCounter)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((nobleBillListInfo, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onGetDataError(throwable.getMessage());
|
||||
} else {
|
||||
onLoadNobleRecordSuccess(nobleBillListInfo);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// public void onLoadNobleRecordFail() {
|
||||
// if (mCurrentCounter == Constants.PAGE_START) {
|
||||
// showNetworkErr();
|
||||
// } else {
|
||||
// mNobleBillAdapter.loadMoreFail();
|
||||
// }
|
||||
// }
|
||||
|
||||
public void onLoadNobleRecordSuccess(NobleBillListInfo nobleBillListInfo) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != nobleBillListInfo) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
mNobleBillAdapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
mNobleBillAdapter.loadMoreComplete();
|
||||
}
|
||||
|
||||
List<Map<String, List<NobleBillListInfo.NobleBillInfo>>> billList = nobleBillListInfo.billList;
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
BillItemEntity billItemEntity;
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<NobleBillListInfo.NobleBillInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<NobleBillListInfo.NobleBillInfo> nobleBillInfoList = map.get(key);
|
||||
if (ListUtils.isListEmpty(nobleBillInfoList)) continue;
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = (BillItemEntity) mBillItemEntityList.get(size - 1);
|
||||
//时间不一致才会添加标题
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (NobleBillListInfo.NobleBillInfo temp : nobleBillInfoList) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.nobleBillInfo = temp;
|
||||
//目的是为了比较
|
||||
billItemEntity.time = key;
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
mNobleBillAdapter.setEnableLoadMore(false);
|
||||
}
|
||||
mNobleBillAdapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == 1) {
|
||||
showNoData(R.drawable.icon_common_failure, getResources().getString(R.string.bill_no_data_text));
|
||||
} else {
|
||||
mNobleBillAdapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,203 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.bills.adapter.ChargeBillsAdapter;
|
||||
import com.yizhuan.erban.databinding.ActivityBillsBinding;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendListInfo;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.common.util.DeviceUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 充值记录
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_bills)
|
||||
public class ChargeBillsActivity extends BillBaseActivity<ActivityBillsBinding> {
|
||||
private TitleBar mTitleBar;
|
||||
// private ChargeBillsAdapter adapter;
|
||||
|
||||
private ImageView iv_goto_top;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
initTitleBar(ResUtil.getString(R.string.bills_activities_chargebillsactivity_01));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
iv_goto_top = findViewById(R.id.iv_goto_top);
|
||||
iv_goto_top.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
super.initData();
|
||||
adapter = new ChargeBillsAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}
|
||||
}, mRecyclerView);
|
||||
adapter.addFooterView(View.inflate(context, R.layout.layout_bills_bottom, null));
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mActivity);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void loadData() {
|
||||
BillModel.get()
|
||||
.getChargeBills(mCurrentCounter, PAGE_SIZE, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((chargeResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onGetDataError(throwable.getMessage());
|
||||
} else if (chargeResult != null && chargeResult.isSuccess()) {
|
||||
onGetChargeBills(chargeResult.getData());
|
||||
} else if (chargeResult != null) {
|
||||
onGetDataError(chargeResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onGetChargeBills(ExpendListInfo data) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
|
||||
BillItemEntity billItemEntity;
|
||||
List<Map<String, List<ExpendInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<ExpendInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<ExpendInfo> expendInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(expendInfos)) {
|
||||
continue;
|
||||
}
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = (BillItemEntity) mBillItemEntityList.get(size - 1);
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) { //时间不一致才会添加标题
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (ExpendInfo temp : expendInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.mChargeExpendInfo = temp;
|
||||
billItemEntity.time = key; //目的是为了比较
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNoData(R.drawable.icon_common_failure, XChatConstants.EMPTY_RECORD_AND_THREE_MONTHS_TIPSS);
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void initTitleBar(String title) {
|
||||
mTitleBar = (TitleBar) findViewById(R.id.title_bar);
|
||||
if (mTitleBar != null) {
|
||||
mTitleBar.setTitle(title);
|
||||
mTitleBar.setImmersive(false);
|
||||
mTitleBar.setTitleColor(getResources().getColor(R.color.back_font));
|
||||
mTitleBar.setLeftImageResource(R.drawable.arrow_left);
|
||||
mTitleBar.setLeftClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
}
|
||||
mTitleBar.setActionTextColor(getResources().getColor(R.color.text_tertiary));
|
||||
mTitleBar.addAction(new TitleBar.TextAction(ResUtil.getString(R.string.bills_activities_chargebillsactivity_02)) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
if(AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
ChargeActivity.start(mActivity);
|
||||
}else {
|
||||
CommonWebViewActivity.start(
|
||||
mActivity, UriProvider.getOfficialPay(
|
||||
4,
|
||||
DeviceUtil.getDeviceId(mActivity)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// public void onGetChargeBillsError(String error) {
|
||||
// if (mCurrentCounter == Constants.PAGE_START) {
|
||||
// showNetworkErr();
|
||||
// } else {
|
||||
// adapter.loadMoreFail();
|
||||
// }
|
||||
// }
|
||||
}
|
@@ -1,161 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.bills.adapter.ChatBillsAdapter;
|
||||
import com.yizhuan.erban.databinding.ActivityBillsBinding;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeListInfo;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 竞拍记录
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_bills)
|
||||
public class ChatBillsActivity extends BillBaseActivity<ActivityBillsBinding> {
|
||||
// private ChatBillsAdapter adapter;
|
||||
|
||||
private ImageView iv_goto_top;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
initTitleBar(getString(R.string.menu_my_auction));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
iv_goto_top = findViewById(R.id.iv_goto_top);
|
||||
iv_goto_top.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
super.initData();
|
||||
adapter = new ChatBillsAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}
|
||||
}, mRecyclerView);
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mActivity);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void loadData() {
|
||||
BillModel.get()
|
||||
.getChatBills(mCurrentCounter, PAGE_SIZE, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((incomedResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onGetDataError(throwable.getMessage());
|
||||
} else if (incomedResult != null && incomedResult.isSuccess()) {
|
||||
onGetOrderIncomeBills(incomedResult.getData());
|
||||
} else if (incomedResult != null) {
|
||||
onGetDataError(incomedResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onGetOrderIncomeBills(IncomeListInfo data) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
|
||||
List<Map<String, List<IncomeInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
BillItemEntity billItemEntity;
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<IncomeInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<IncomeInfo> incomeInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(incomeInfos)) continue;
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
//时间不一致才会添加标题
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (IncomeInfo temp : incomeInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.mChatInComeInfo = temp;
|
||||
//目的是为了比较
|
||||
billItemEntity.time = key;
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == 1) {
|
||||
showNoData(getResources().getString(R.string.bill_no_data_text));
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// public void onGetOrderIncomeBillsError(String error) {
|
||||
// if (mCurrentCounter == Constants.PAGE_START) {
|
||||
// showNetworkErr();
|
||||
// } else {
|
||||
// adapter.loadMoreFail();
|
||||
// }
|
||||
// }
|
||||
}
|
@@ -1,190 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.bills.adapter.RedBagBillsAdapter;
|
||||
import com.yizhuan.erban.databinding.ActivityBillsBinding;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RedBagInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RedBagListInfo;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.common.util.DeviceUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 红包记录
|
||||
*
|
||||
* @author Administrator
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_bills)
|
||||
public class RedBagBillsActivity extends BillBaseActivity<ActivityBillsBinding> {
|
||||
|
||||
// private RedBagBillsAdapter adapter;
|
||||
|
||||
private ImageView iv_goto_top;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
initTitleBar(getString(R.string.bill_red));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initTitleBar(String title) {
|
||||
mTitleBar = mBinding.titleBar;
|
||||
if (mTitleBar != null) {
|
||||
mTitleBar.setTitle(title);
|
||||
mTitleBar.setImmersive(false);
|
||||
mTitleBar.setTitleColor(getResources().getColor(R.color.back_font));
|
||||
mTitleBar.setLeftImageResource(R.drawable.icon_user_back_black);
|
||||
mTitleBar.setLeftClickListener(v -> finish());
|
||||
}
|
||||
mTitleBar.setActionTextColor(getResources().getColor(R.color.text_tertiary));
|
||||
mTitleBar.addAction(new TitleBar.TextAction(ResUtil.getString(R.string.bills_activities_redbagbillsactivity_01)) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
if(AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
startActivity(new Intent(RedBagBillsActivity.this, ChargeActivity.class));
|
||||
}else {
|
||||
CommonWebViewActivity.start(
|
||||
context, UriProvider.getOfficialPay(
|
||||
4,
|
||||
DeviceUtil.getDeviceId(context)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
iv_goto_top = findViewById(R.id.iv_goto_top);
|
||||
iv_goto_top.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
try {
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
super.initData();
|
||||
adapter = new RedBagBillsAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(() -> {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}, mRecyclerView);
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mActivity);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
protected void loadData() {
|
||||
BillModel.get()
|
||||
.getRedBagBills(mCurrentCounter, PAGE_SIZE, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((redBagResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onGetDataError(throwable.getMessage());
|
||||
} else if (redBagResult != null && redBagResult.isSuccess()) {
|
||||
onGetRedBagBills(redBagResult.getData());
|
||||
} else if (redBagResult != null) {
|
||||
onGetDataError(redBagResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onGetRedBagBills(RedBagListInfo data) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
BillItemEntity billItemEntity;
|
||||
List<Map<String, List<RedBagInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<RedBagInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<RedBagInfo> redBagInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(redBagInfos)) continue;
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) { //时间不一致才会添加标题
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (RedBagInfo temp : redBagInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.mRedBagInfo = temp;
|
||||
billItemEntity.time = key; //目的是为了比较
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == 1) {
|
||||
showNoData(ResUtil.getString(R.string.bills_activities_redbagbillsactivity_02));
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// public void onGetRedBagBillsError(String error) {
|
||||
// if (mCurrentCounter == Constants.PAGE_START) {
|
||||
// showNetworkErr();
|
||||
// } else {
|
||||
// adapter.loadMoreFail();
|
||||
// }
|
||||
// }
|
||||
}
|
@@ -1,86 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseActivity;
|
||||
import com.yizhuan.erban.bills.widget.BillItemView;
|
||||
|
||||
/**
|
||||
* @author Administrator
|
||||
*/
|
||||
public class TotalBillsActivity extends BaseActivity implements View.OnClickListener {
|
||||
private BillItemView mBillGiftInCome, mBillGiftExpend;
|
||||
private BillItemView mBillChat;
|
||||
private BillItemView mBillCharge;
|
||||
private BillItemView mBillWithdraw;
|
||||
private BillItemView mBillRed;
|
||||
private BillItemView mBillNoble;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_total_bills);
|
||||
initTitleBar(getString(R.string.bill_title));
|
||||
initView();
|
||||
initData();
|
||||
setListener();
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
mBillGiftInCome = (BillItemView) findViewById(R.id.bill_item_income);
|
||||
mBillGiftExpend = (BillItemView) findViewById(R.id.bill_item_expend);
|
||||
mBillChat = (BillItemView) findViewById(R.id.bill_item_chat);
|
||||
mBillCharge = (BillItemView) findViewById(R.id.bill_item_charge);
|
||||
mBillWithdraw = (BillItemView) findViewById(R.id.bill_item_withdraw);
|
||||
mBillRed = (BillItemView) findViewById(R.id.bill_item_red);
|
||||
mBillNoble = (BillItemView) findViewById(R.id.bill_item_noble);
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void setListener() {
|
||||
mBillGiftInCome.setOnClickListener(this);
|
||||
mBillGiftExpend.setOnClickListener(this);
|
||||
mBillChat.setOnClickListener(this);
|
||||
mBillCharge.setOnClickListener(this);
|
||||
mBillWithdraw.setOnClickListener(this);
|
||||
mBillRed.setOnClickListener(this);
|
||||
mBillNoble.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.bill_item_income:
|
||||
// startActivity(new Intent(this, BillGiftInComeActivity.class));
|
||||
BillGiftIncomeGroupActivity.startActivity(this, BillGiftIncomeGroupActivity.TYPE_BILL_INCOME);
|
||||
break;
|
||||
case R.id.bill_item_expend:
|
||||
// startActivity(new Intent(this, BillGiftExpendActivity.class));
|
||||
BillGiftIncomeGroupActivity.startActivity(this, BillGiftIncomeGroupActivity.TYPE_BILL_OUTPUT);
|
||||
break;
|
||||
case R.id.bill_item_chat:
|
||||
startActivity(new Intent(this, ChatBillsActivity.class));
|
||||
break;
|
||||
case R.id.bill_item_charge:
|
||||
startActivity(new Intent(this, ChargeBillsActivity.class));
|
||||
break;
|
||||
case R.id.bill_item_withdraw:
|
||||
startActivity(new Intent(this, WithdrawBillsActivity.class));
|
||||
break;
|
||||
case R.id.bill_item_red:
|
||||
startActivity(new Intent(this, RedBagBillsActivity.class));
|
||||
break;
|
||||
case R.id.bill_item_noble:
|
||||
startActivity(new Intent(this, BillNobleActivity.class));
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,164 +0,0 @@
|
||||
package com.yizhuan.erban.bills.activities;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.util.SparseLongArray;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.jzxiang.pickerview.TimePickerDialog;
|
||||
import com.jzxiang.pickerview.data.Type;
|
||||
import com.jzxiang.pickerview.listener.OnDateSetListener;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseBindingActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.bills.event.DateInfoEvent;
|
||||
import com.yizhuan.erban.bills.event.TopEvent;
|
||||
import com.yizhuan.erban.bills.fragmemt.WithdrawBillsFragment;
|
||||
import com.yizhuan.erban.databinding.ActivityWithdrawBillsBinding;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.common.util.DeviceUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.AppMetaDataUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
/**
|
||||
* 提现账单记录
|
||||
*/
|
||||
@ActLayoutRes(R.layout.activity_withdraw_bills)
|
||||
public class WithdrawBillsActivity extends BaseBindingActivity<ActivityWithdrawBillsBinding>
|
||||
implements View.OnClickListener, OnDateSetListener {
|
||||
|
||||
private TitleBar mTitleBar;
|
||||
private FrameLayout fragmentContainer;
|
||||
|
||||
private TextView mTvDay;
|
||||
private ImageView mIvToday, mIvDay;
|
||||
private ImageView iv_goto_top;
|
||||
// private TimePickerDialog mDialogYearMonthDay;
|
||||
private TimePickerDialog.Builder mDialogYearMonthDayBuild;
|
||||
private int mPosition;
|
||||
private long time = System.currentTimeMillis();
|
||||
private SparseLongArray mTodayMap = new SparseLongArray(2);
|
||||
|
||||
@Override
|
||||
protected void init() {
|
||||
initView();
|
||||
initData();
|
||||
setListener();
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
fragmentContainer = (FrameLayout) findViewById(R.id.fragment_container);
|
||||
mTvDay = (TextView) findViewById(R.id.tv_date);
|
||||
mIvToday = (ImageView) findViewById(R.id.iv_today_select);
|
||||
mIvDay = (ImageView) findViewById(R.id.tv_selector_date);
|
||||
iv_goto_top = findViewById(R.id.iv_goto_top);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initTitleBar(String title) {
|
||||
mTitleBar = mBinding.titleBar;
|
||||
if (mTitleBar != null) {
|
||||
mTitleBar.setTitle(title);
|
||||
mTitleBar.setImmersive(false);
|
||||
mTitleBar.setTitleColor(getResources().getColor(R.color.back_font));
|
||||
mTitleBar.setLeftImageResource(R.drawable.icon_user_back_black);
|
||||
mTitleBar.setLeftClickListener(v -> finish());
|
||||
}
|
||||
mTitleBar.setActionTextColor(getResources().getColor(R.color.text_tertiary));
|
||||
mTitleBar.addAction(new TitleBar.TextAction(ResUtil.getString(R.string.bills_activities_withdrawbillsactivity_01)) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
if(AppMetaDataUtil.getChannelID().equals(Constants.GOOGLE)) {
|
||||
startActivity(new Intent(WithdrawBillsActivity.this, ChargeActivity.class));
|
||||
}else {
|
||||
CommonWebViewActivity.start(
|
||||
context, UriProvider.getOfficialPay(
|
||||
4,
|
||||
DeviceUtil.getDeviceId(context)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
initTitleBar(getString(R.string.bill_withdraw));
|
||||
WithdrawBillsFragment withdrawBillsFragment = new WithdrawBillsFragment();
|
||||
getSupportFragmentManager().beginTransaction()
|
||||
.add(R.id.fragment_container, withdrawBillsFragment, withdrawBillsFragment.getClass().getName())
|
||||
.commit();
|
||||
//初始化时间
|
||||
mTodayMap.put(0, time);
|
||||
mTodayMap.put(1, time);
|
||||
setDate();
|
||||
mDialogYearMonthDayBuild = new TimePickerDialog.Builder()
|
||||
.setType(Type.YEAR_MONTH_DAY)
|
||||
.setTitleStringId(ResUtil.getString(R.string.bills_activities_withdrawbillsactivity_02))
|
||||
.setThemeColor(getResources().getColor(R.color.line_background))
|
||||
.setWheelItemTextNormalColor(getResources().getColor(R.color
|
||||
.timetimepicker_default_text_color))
|
||||
.setWheelItemTextSelectorColor(getResources().getColor(R.color.black))
|
||||
.setCallBack(this)
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
private void setListener() {
|
||||
mIvDay.setOnClickListener(this);
|
||||
mIvToday.setOnClickListener(this);
|
||||
iv_goto_top.setOnClickListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.iv_today_select:
|
||||
time = System.currentTimeMillis();
|
||||
mTodayMap.put(mPosition, time);
|
||||
setDate();
|
||||
EventBus.getDefault().post(new DateInfoEvent(time, mPosition));
|
||||
break;
|
||||
case R.id.tv_selector_date:
|
||||
mDialogYearMonthDayBuild.build().show(getSupportFragmentManager(), "year_month_day");
|
||||
break;
|
||||
case R.id.iv_goto_top:
|
||||
EventBus.getDefault().post(new TopEvent(mPosition));
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void setDate() {
|
||||
mTvDay.setText(TimeUtils.getDateTimeString(mTodayMap.get(mPosition), "yyyy-MM-dd"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDateSet(TimePickerDialog timePickerView, long millseconds) {
|
||||
this.time = millseconds;
|
||||
mTodayMap.put(mPosition, time);
|
||||
setDate();
|
||||
EventBus.getDefault().post(new DateInfoEvent(millseconds, mPosition));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mDialogYearMonthDayBuild != null) {
|
||||
mDialogYearMonthDayBuild.setCallBack(null);
|
||||
mDialogYearMonthDayBuild = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,40 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> 账单adapter base</p>
|
||||
* Created by Administrator on 2017/11/6.
|
||||
*/
|
||||
public abstract class BillBaseAdapter extends BaseMultiItemQuickAdapter<BillItemEntity, BaseViewHolder> {
|
||||
|
||||
public BillBaseAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_DATE, R.layout.list_income_gift_title);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
if (billItemEntity == null) {
|
||||
return;
|
||||
}
|
||||
switch (billItemEntity.getItemType()) {
|
||||
case BillItemEntity.ITEM_DATE:
|
||||
baseViewHolder.setText(R.id.tv_date,
|
||||
TimeUtils.getDateTimeString(Long.parseLong(billItemEntity.time), "yyyy-MM-dd"));
|
||||
break;
|
||||
case BillItemEntity.ITEM_NORMAL:
|
||||
convertNormal(baseViewHolder, billItemEntity);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity);
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 充值记录 ExpendInfo
|
||||
* Created by ${Seven} on 2017/9/15.
|
||||
*/
|
||||
public class ChargeBillsAdapter extends BillBaseAdapter {
|
||||
|
||||
public ChargeBillsAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_charge_bills_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
ExpendInfo expendInfo = billItemEntity.mChargeExpendInfo;
|
||||
if (expendInfo == null) {
|
||||
return;
|
||||
}
|
||||
baseViewHolder.setText(R.id.tv_gold, ResUtil.getString(R.string.bills_adapter_chargebillsadapter_01) + expendInfo.getGoldNum() + ResUtil.getString(R.string.bills_adapter_chargebillsadapter_02))
|
||||
.setText(R.id.tv_money, expendInfo.getShowStr())
|
||||
.setText(R.id.tv_charge_time, TimeUtils.getYearMonthDayHourMinuteSecond(expendInfo.getRecordTime()));
|
||||
}
|
||||
}
|
@@ -1,41 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* IncomeInfo
|
||||
* Created by Seven on 2017/9/18.
|
||||
*/
|
||||
public class ChatBillsAdapter extends BillBaseAdapter {
|
||||
|
||||
public ChatBillsAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_order_bills_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
IncomeInfo incomeInfo = billItemEntity.mChatInComeInfo;
|
||||
if (incomeInfo == null) return;
|
||||
baseViewHolder.setVisible(R.id.rly_gold, true)
|
||||
.setText(R.id.tv_user_pro, incomeInfo.getTargetNick() + "&" + incomeInfo.getUserNick())
|
||||
.setText(R.id.tv_date, TimeUtils.getYearMonthDayHourMinuteSecond(incomeInfo.getRecordTime()))
|
||||
.setText(R.id.tv_gold, incomeInfo.getGoldNum() != 0
|
||||
? String.valueOf(incomeInfo.getGoldNum()) : "+" + incomeInfo.getDiamondNum())
|
||||
.setText(R.id.tv_bill_type, incomeInfo.getGoldNum() != 0
|
||||
? mContext.getString(R.string.gift_expend_gold) : mContext.getString(R.string.gift_income_gold));
|
||||
|
||||
CircleImageView userAvatar = baseViewHolder.getView(R.id.user_avatar);
|
||||
CircleImageView proAvatar = baseViewHolder.getView(R.id.pro_avatar);
|
||||
ImageLoadUtils.loadAvatar(mContext, incomeInfo.getUserAvatar(), userAvatar);
|
||||
ImageLoadUtils.loadAvatar(mContext, incomeInfo.getTargetAvatar(), proAvatar);
|
||||
}
|
||||
}
|
@@ -1,40 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* ExpendInfo
|
||||
* Created by Seven on 2017/9/10.
|
||||
*/
|
||||
public class GiftExpendAdapter extends BillBaseAdapter {
|
||||
|
||||
public GiftExpendAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_expend_gift_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
ExpendInfo expendInfo = billItemEntity.mGiftExpendInfo;
|
||||
if (expendInfo == null) return;
|
||||
baseViewHolder.setText(R.id.tv_gift_income,
|
||||
mContext.getString(R.string.gift_out_gold_number_format, expendInfo.getGoldNum()))
|
||||
.setText(R.id.tv_send_name, ResUtil.getString(R.string.bills_adapter_giftexpendadapter_01) + expendInfo.getTargetNick())
|
||||
.setText(R.id.tv_user_name, expendInfo.getGiftName())
|
||||
.setText(R.id.gift_date, TimeUtils.getDateTimeString(expendInfo.getRecordTime(), "HH:mm:ss"))
|
||||
.setText(R.id.gold, R.string.gift_expend_gold);
|
||||
|
||||
ImageView img_avatar = baseViewHolder.getView(R.id.img_avatar);
|
||||
ImageLoadUtils.loadImage(mContext, expendInfo.getGiftPic(), img_avatar);
|
||||
}
|
||||
}
|
@@ -1,39 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Created by Seven on 2017/9/11.
|
||||
*/
|
||||
|
||||
public class GiftIncomeAdapter extends BillBaseAdapter {
|
||||
|
||||
public GiftIncomeAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_expend_gift_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
IncomeInfo incomeInfo = billItemEntity.mGiftInComeInfo;
|
||||
if (incomeInfo == null) return;
|
||||
baseViewHolder.setText(R.id.tv_gift_income,
|
||||
mContext.getString(R.string.gift_in_gold_number_format, incomeInfo.getDiamondNum()))
|
||||
.setText(R.id.tv_send_name, ResUtil.getString(R.string.bills_adapter_giftincomeadapter_01) + incomeInfo.getTargetNick())
|
||||
.setText(R.id.tv_user_name, incomeInfo.getGiftName())
|
||||
.setText(R.id.gift_date, TimeUtils.getDateTimeString(incomeInfo.getRecordTime(), "HH:mm:ss"))
|
||||
.setText(R.id.gold, R.string.gift_income_gold);
|
||||
ImageView avatar = baseViewHolder.getView(R.id.img_avatar);
|
||||
ImageLoadUtils.loadImage(mContext, incomeInfo.getGiftPic(), avatar);
|
||||
}
|
||||
}
|
@@ -1,31 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.NobleBillListInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p> </p>
|
||||
*
|
||||
* @author jiahui
|
||||
* @date 2018/1/18
|
||||
*/
|
||||
public class NobleBillAdapter extends BillBaseAdapter {
|
||||
public NobleBillAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_charge_bills_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
NobleBillListInfo.NobleBillInfo nobleBillInfo = billItemEntity.nobleBillInfo;
|
||||
if (nobleBillInfo == null) return;
|
||||
baseViewHolder.setText(R.id.tv_gold, nobleBillInfo.getOptStr())
|
||||
.setText(R.id.tv_money, nobleBillInfo.getPayStr())
|
||||
.setText(R.id.tv_charge_time, TimeUtils.getYearMonthDayHourMinuteSecond(nobleBillInfo.getRecordTime()));
|
||||
}
|
||||
}
|
@@ -1,47 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.bills.fragmemt.RadishGiftFragment;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RadishGiftInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class RadishGiftAdapter extends BillBaseAdapter{
|
||||
private byte mType;
|
||||
|
||||
public RadishGiftAdapter(List<BillItemEntity> billItemEntityList, byte type) {
|
||||
super(billItemEntityList);
|
||||
mType = type;
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_expend_gift_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
|
||||
RadishGiftInfo radishGiftInfo = billItemEntity.mRadishGiftInfo;
|
||||
if (radishGiftInfo == null) return;
|
||||
|
||||
baseViewHolder.setText(R.id.tv_send_name, radishGiftInfo.getDescribeStr())
|
||||
.setText(R.id.tv_user_name, radishGiftInfo.getGiftName())
|
||||
.setText(R.id.gift_date, TimeUtils.getDateTimeString(radishGiftInfo.getCreateTime(), "HH:mm:ss"));
|
||||
|
||||
// 价格/数量
|
||||
int incomeColor = ContextCompat.getColor(mContext, R.color.appColor);
|
||||
int outputColor = ContextCompat.getColor(mContext, R.color.color_333333);
|
||||
baseViewHolder.setTextColor(R.id.tv_gift_income, mType == RadishGiftFragment.TYPE_RADISH_INCOME ? incomeColor : outputColor)
|
||||
.setText(R.id.tv_gift_income, mType == RadishGiftFragment.TYPE_RADISH_INCOME ? "x" + radishGiftInfo.getGiftNum() : radishGiftInfo.getAmountStr())
|
||||
.setText(R.id.gold, mType == RadishGiftFragment.TYPE_RADISH_INCOME ? "" : radishGiftInfo.getCurrencyStr());
|
||||
|
||||
ImageView avatar = baseViewHolder.getView(R.id.img_avatar);
|
||||
ImageLoadUtils.loadImage(mContext, radishGiftInfo.getGiftPicUrl(), avatar);
|
||||
}
|
||||
}
|
||||
|
@@ -1,30 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RedBagInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 红包记录 RedBagInfo
|
||||
* Created by ${Seven} on 2017/9/25.
|
||||
*/
|
||||
public class RedBagBillsAdapter extends BillBaseAdapter {
|
||||
public RedBagBillsAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_charge_bills_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
RedBagInfo redBagInfo = billItemEntity.mRedBagInfo;
|
||||
if (redBagInfo == null) return;
|
||||
baseViewHolder.setText(R.id.tv_gold, redBagInfo.getTypeStr())
|
||||
.setText(R.id.tv_money, "+" + redBagInfo.getPacketNum() + ResUtil.getString(R.string.bills_adapter_redbagbillsadapter_01))
|
||||
.setText(R.id.tv_charge_time, TimeUtils.getYearMonthDayHourMinuteSecond(redBagInfo.getCreateTime()));
|
||||
}
|
||||
}
|
@@ -1,32 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* IncomeInfo
|
||||
* Created by Seven on 2017/9/17.
|
||||
*/
|
||||
|
||||
public class WithdrawBillsAdapter extends BillBaseAdapter {
|
||||
|
||||
public WithdrawBillsAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_withdraw_bills_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
IncomeInfo incomeInfo = billItemEntity.mWithdrawInfo;
|
||||
if (incomeInfo == null) return;
|
||||
baseViewHolder.setText(R.id.tv_date, TimeUtils.getYearMonthDayHourMinuteSecond(incomeInfo.getRecordTime()))
|
||||
.setText(R.id.tv_diamondNum, ResUtil.getString(R.string.bills_adapter_withdrawbillsadapter_01) + incomeInfo.getDiamondNum() + ResUtil.getString(R.string.bills_adapter_withdrawbillsadapter_02))
|
||||
.setText(R.id.tv_money, "+" + incomeInfo.getMoney() + ResUtil.getString(R.string.bills_adapter_withdrawbillsadapter_03));
|
||||
}
|
||||
}
|
@@ -1,103 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
|
||||
import com.yizhuan.erban.common.util.Utils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/11/1
|
||||
*/
|
||||
public class WithdrawBillsIndicatorAdapter extends CommonNavigatorAdapter {
|
||||
private List<String> mTitleList;
|
||||
private Context mContext;
|
||||
|
||||
public WithdrawBillsIndicatorAdapter(Context mContext, List<String> mTitleList) {
|
||||
this.mTitleList = mTitleList;
|
||||
this.mContext = mContext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mTitleList == null ? 0 : mTitleList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerTitleView getTitleView(Context context, int index) {
|
||||
WithdrawBillsPagerTitleView categoryPagerTitleView = new WithdrawBillsPagerTitleView(context, mTitleList.get(index));
|
||||
categoryPagerTitleView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (null != mOnItemSelectListener) {
|
||||
mOnItemSelectListener.onItemSelect(index);
|
||||
}
|
||||
}
|
||||
});
|
||||
return categoryPagerTitleView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerIndicator getIndicator(Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private OnItemSelectListener mOnItemSelectListener;
|
||||
|
||||
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
|
||||
mOnItemSelectListener = onItemSelectListener;
|
||||
}
|
||||
|
||||
public interface OnItemSelectListener {
|
||||
void onItemSelect(int position);
|
||||
}
|
||||
|
||||
class WithdrawBillsPagerTitleView extends AppCompatTextView implements IPagerTitleView {
|
||||
|
||||
|
||||
public WithdrawBillsPagerTitleView(Context context, String tabInfo) {
|
||||
super(context);
|
||||
setWidth(Utils.dip2px(getContext(), 96));
|
||||
setHeight(Utils.dip2px(getContext(), 30));
|
||||
setTextSize(15);
|
||||
setText(tabInfo);
|
||||
setGravity(Gravity.CENTER);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onSelected(int index, int totalCount) {
|
||||
setBackgroundResource(R.drawable.shape_bg_contact_indicator_item);
|
||||
setTextColor(getResources().getColor(R.color.appColor));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDeselected(int index, int totalCount) {
|
||||
setBackgroundDrawable(null);
|
||||
setTextColor(getResources().getColor(R.color.color_999999));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLeave(int index, int totalCount, float leavePercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEnter(int index, int totalCount, float enterPercent, boolean leftToRight) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
package com.yizhuan.erban.bills.adapter;
|
||||
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RedBagInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 红包提现账单adapter RedBagInfo
|
||||
* Created by Seven on 2017/9/17.
|
||||
*/
|
||||
public class WithdrawRedBillsAdapter extends BillBaseAdapter {
|
||||
|
||||
|
||||
public WithdrawRedBillsAdapter(List<BillItemEntity> billItemEntityList) {
|
||||
super(billItemEntityList);
|
||||
addItemType(BillItemEntity.ITEM_NORMAL, R.layout.list_withdraw_bills_item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void convertNormal(BaseViewHolder baseViewHolder, BillItemEntity billItemEntity) {
|
||||
RedBagInfo redBagInfo = billItemEntity.mRedBagInfo;
|
||||
if (redBagInfo == null) return;
|
||||
baseViewHolder.setText(R.id.tv_diamondNum, ResUtil.getString(R.string.bills_adapter_withdrawredbillsadapter_01) + redBagInfo.getPacketNum() + ResUtil.getString(R.string.bills_adapter_withdrawredbillsadapter_02))
|
||||
.setText(R.id.tv_date, TimeUtils.getYearMonthDayHourMinuteSecond(redBagInfo.getCreateTime()))
|
||||
// .setText(R.id.tv_money, "+" + redBagInfo.getMoney() + ResUtil.getString(R.string.bills_adapter_withdrawredbillsadapter_03))
|
||||
;
|
||||
}
|
||||
}
|
@@ -1,15 +0,0 @@
|
||||
package com.yizhuan.erban.bills.event;
|
||||
|
||||
/**
|
||||
* <p> 事件日期 </p>
|
||||
* Created by Administrator on 2017/11/8.
|
||||
*/
|
||||
public class DateInfoEvent {
|
||||
public long millSeconds;
|
||||
public int position;
|
||||
|
||||
public DateInfoEvent(long millSeconds, int position) {
|
||||
this.millSeconds = millSeconds;
|
||||
this.position = position;
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
package com.yizhuan.erban.bills.event;
|
||||
|
||||
public class TopEvent {
|
||||
|
||||
public int position;
|
||||
|
||||
public TopEvent(int position) {
|
||||
this.position = position;
|
||||
}
|
||||
}
|
@@ -1,134 +0,0 @@
|
||||
package com.yizhuan.erban.bills.fragmemt;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.jzxiang.pickerview.TimePickerDialog;
|
||||
import com.jzxiang.pickerview.data.Type;
|
||||
import com.jzxiang.pickerview.listener.OnDateSetListener;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.radish.RadishModel;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
import com.yizhuan.xchat_android_library.base.factory.AbstractMvpPresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.TimeUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class BaseBillsFragment<V extends IMvpBaseView, P extends AbstractMvpPresenter<V>> extends BaseMvpFragment<V, P>
|
||||
implements View.OnClickListener, OnDateSetListener {
|
||||
protected RecyclerView mRecyclerView;
|
||||
protected SwipeRefreshLayout mRefreshLayout;
|
||||
protected int mCurrentCounter = Constants.PAGE_START;
|
||||
protected static final int PAGE_SIZE = Constants.BILL_PAGE_SIZE;
|
||||
protected long time = System.currentTimeMillis();
|
||||
protected List<BillItemEntity> mBillItemEntityList = new ArrayList<>();
|
||||
private TextView mTvDate;
|
||||
private ImageView mIvTodaySelect;
|
||||
private ImageView mIvSelectorDate;
|
||||
protected TimePickerDialog.Builder mDialogYearMonthDayBuild;
|
||||
private View mRlyDate;
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_gift_income ;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
mTvDate = mView.findViewById(R.id.tv_date);
|
||||
mRecyclerView = mView.findViewById(R.id.recyclerView);
|
||||
mRefreshLayout = mView.findViewById(R.id.swipe_refresh);
|
||||
mIvTodaySelect = mView.findViewById(R.id.iv_today_select);
|
||||
mIvSelectorDate = mView.findViewById(R.id.tv_selector_date);
|
||||
mRlyDate = mView.findViewById(R.id.rly_date);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
mIvTodaySelect.setOnClickListener(this);
|
||||
mIvSelectorDate.setOnClickListener(this);
|
||||
mRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
RadishModel.get().updateRadishWallet().subscribe();
|
||||
loadData();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
initData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDateSet(TimePickerDialog timePickerView, long millseconds) {
|
||||
this.time = millseconds;
|
||||
setDate(millseconds);
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
protected void initData() {
|
||||
setDate(System.currentTimeMillis());
|
||||
mDialogYearMonthDayBuild = new TimePickerDialog.Builder()
|
||||
.setType(Type.YEAR_MONTH_DAY)
|
||||
.setTitleStringId(ResUtil.getString(R.string.bills_fragmemt_basebillsfragment_01))
|
||||
.setThemeColor(getResources().getColor(R.color.line_background))
|
||||
.setWheelItemTextNormalColor(getResources().getColor(R.color
|
||||
.timetimepicker_default_text_color))
|
||||
.setWheelItemTextSelectorColor(getResources().getColor(R.color.black))
|
||||
.setCallBack(this);
|
||||
}
|
||||
|
||||
protected long mTime;
|
||||
protected void setDate(long time) {
|
||||
mTime = time;
|
||||
mTvDate.setText(TimeUtils.getDateTimeString(time, "yyyy-MM-dd"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
switch (v.getId()) {
|
||||
case R.id.iv_today_select:
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
time = System.currentTimeMillis();
|
||||
setDate(time);
|
||||
showLoading();
|
||||
loadData();
|
||||
break;
|
||||
case R.id.tv_selector_date:
|
||||
mDialogYearMonthDayBuild.build().show(getChildFragmentManager(), "year_month_day");
|
||||
break;
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mDialogYearMonthDayBuild != null) {
|
||||
mDialogYearMonthDayBuild.setCallBack(null);
|
||||
mDialogYearMonthDayBuild = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected void setRlyDateBackground(int color) {
|
||||
if (mRlyDate != null)
|
||||
mRlyDate.setBackgroundColor(color);
|
||||
}
|
||||
|
||||
public abstract void loadData();
|
||||
}
|
@@ -1,147 +0,0 @@
|
||||
package com.yizhuan.erban.bills.fragmemt;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.bills.adapter.BillBaseAdapter;
|
||||
import com.yizhuan.erban.bills.adapter.GiftIncomeAdapter;
|
||||
import com.yizhuan.erban.bills.presenter.GiftIncomePresenter;
|
||||
import com.yizhuan.erban.bills.view.IGiftIncomeView;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeListInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@CreatePresenter(GiftIncomePresenter.class)
|
||||
public class GiftIncomeFragment extends BaseBillsFragment<IGiftIncomeView, GiftIncomePresenter> implements IGiftIncomeView {
|
||||
private BillBaseAdapter adapter;
|
||||
|
||||
public static Fragment newInstance() {
|
||||
Fragment fragment = new GiftIncomeFragment();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return R.layout.fragment_gift_income;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate () {
|
||||
super.initiate();
|
||||
adapter = new GiftIncomeAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}
|
||||
}, mRecyclerView);
|
||||
adapter.addFooterView(View.inflate(getActivity(), R.layout.layout_bills_bottom, null));
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mContext);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
|
||||
firstLoadDate();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void loadData () {
|
||||
getMvpPresenter().getGiftIncomeBills(mCurrentCounter, PAGE_SIZE, time);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetDataError (String error){
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNetworkErr();
|
||||
} else {
|
||||
adapter.loadMoreFail();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetIncomeBills (IncomeListInfo data){
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
List<Map<String, List<IncomeInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
BillItemEntity billItemEntity;
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<IncomeInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<IncomeInfo> incomeInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(incomeInfos)) continue;
|
||||
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
//时间不一致才会添加标题
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (IncomeInfo temp : incomeInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.mGiftInComeInfo = temp;
|
||||
//目的是为了比较
|
||||
billItemEntity.time = key;
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNoData(R.drawable.icon_common_failure, XChatConstants.EMPTY_RECORD_AND_THREE_MONTHS_TIPSS);
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void smoothScrollToTop () {
|
||||
if (mRecyclerView != null)
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
}
|
||||
|
||||
private void firstLoadDate () {
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
}
|
@@ -1,141 +0,0 @@
|
||||
package com.yizhuan.erban.bills.fragmemt;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.bills.adapter.BillBaseAdapter;
|
||||
import com.yizhuan.erban.bills.adapter.GiftExpendAdapter;
|
||||
import com.yizhuan.erban.bills.presenter.GiftOutputPresenter;
|
||||
import com.yizhuan.erban.bills.view.IGiftOutputView;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendListInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@CreatePresenter(GiftOutputPresenter.class)
|
||||
public class GiftOutputFragment extends BaseBillsFragment<IGiftOutputView, GiftOutputPresenter> implements IGiftOutputView {
|
||||
private BillBaseAdapter adapter;
|
||||
|
||||
public static Fragment newInstance() {
|
||||
Fragment fragment = new GiftOutputFragment();
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
super.initiate();
|
||||
adapter = new GiftExpendAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}
|
||||
}, mRecyclerView);
|
||||
adapter.addFooterView(View.inflate(getActivity(), R.layout.layout_bills_bottom, null));
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mContext);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
|
||||
firstLoadDate();
|
||||
}
|
||||
|
||||
private void firstLoadDate() {
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void loadData() {
|
||||
getMvpPresenter().getetExpendBills(mCurrentCounter, PAGE_SIZE, time);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetDataError(String error) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNetworkErr();
|
||||
} else {
|
||||
adapter.loadMoreFail();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGetExpendBills(ExpendListInfo data) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
List<Map<String, List<ExpendInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
int size = mBillItemEntityList.size();
|
||||
BillItemEntity billItemEntity;
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<ExpendInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<ExpendInfo> expendInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(expendInfos)) continue;
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
//时间不一致才会添加标题
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (ExpendInfo temp : expendInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
//目的是为了比较
|
||||
billItemEntity.time = key;
|
||||
billItemEntity.mGiftExpendInfo = temp;
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNoData(R.drawable.icon_common_failure, XChatConstants.EMPTY_RECORD_AND_THREE_MONTHS_TIPSS);
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void smoothScrollToTop() {
|
||||
if (mRecyclerView != null)
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
}
|
||||
}
|
@@ -1,155 +0,0 @@
|
||||
package com.yizhuan.erban.bills.fragmemt;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.bills.adapter.BillBaseAdapter;
|
||||
import com.yizhuan.erban.bills.adapter.RadishGiftAdapter;
|
||||
import com.yizhuan.erban.bills.presenter.RadishGiftPresenter;
|
||||
import com.yizhuan.erban.bills.view.IRadishGiftView;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RadishGiftInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RadishGiftListInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@CreatePresenter(RadishGiftPresenter.class)
|
||||
public class RadishGiftFragment extends BaseBillsFragment<IRadishGiftView, RadishGiftPresenter> implements IRadishGiftView {
|
||||
|
||||
public static final byte TYPE_RADISH_EXPAND = 1;
|
||||
public static final byte TYPE_RADISH_INCOME= 2;
|
||||
private static final String TYPE = "type_radish";
|
||||
private BillBaseAdapter mAdapter;
|
||||
|
||||
private byte mType = TYPE_RADISH_INCOME;
|
||||
|
||||
public static Fragment newInstance(byte type) {
|
||||
Fragment fragment = new RadishGiftFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putByte(TYPE, type);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
@Override
|
||||
public void loadData() {
|
||||
getMvpPresenter().getRadishRecord(mCurrentCounter, PAGE_SIZE, mTime, mType);
|
||||
}
|
||||
|
||||
private void firstLoadDate() {
|
||||
mCurrentCounter = Constants.PAGE_START;
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
super.initiate();
|
||||
|
||||
Bundle bundle = getArguments();
|
||||
if (bundle != null) {
|
||||
mType = bundle.getByte(TYPE, TYPE_RADISH_INCOME);
|
||||
}
|
||||
|
||||
mAdapter = new RadishGiftAdapter(mBillItemEntityList, mType);
|
||||
mAdapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}
|
||||
}, mRecyclerView);
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mContext);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(mAdapter);
|
||||
|
||||
firstLoadDate();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRadishRecordSuccess(RadishGiftListInfo list) {
|
||||
mRefreshLayout.setRefreshing(false);
|
||||
if (null != list) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
mAdapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
mAdapter.loadMoreComplete();
|
||||
}
|
||||
List<Map<String, List<RadishGiftInfo>>> billList = list.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
BillItemEntity billItemEntity;
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<RadishGiftInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<RadishGiftInfo> incomeInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(incomeInfos)) continue;
|
||||
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
//时间不一致才会添加标题
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (RadishGiftInfo temp : incomeInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.mRadishGiftInfo = temp;
|
||||
//目的是为了比较
|
||||
billItemEntity.time = key;
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
mAdapter.setEnableLoadMore(false);
|
||||
}
|
||||
mAdapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNoData(R.drawable.icon_common_failure, ResUtil.getString(R.string.bills_fragmemt_radishgiftfragment_01));
|
||||
} else {
|
||||
mAdapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getRadishRecordFail(String message) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
showNetworkErr();
|
||||
} else {
|
||||
mAdapter.loadMoreFail();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void smoothScrollToTop () {
|
||||
if (mRecyclerView != null)
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
}
|
||||
}
|
@@ -1,241 +0,0 @@
|
||||
package com.yizhuan.erban.bills.fragmemt;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseBindingFragment;
|
||||
import com.yizhuan.erban.bills.adapter.WithdrawBillsAdapter;
|
||||
import com.yizhuan.erban.bills.event.DateInfoEvent;
|
||||
import com.yizhuan.erban.bills.event.TopEvent;
|
||||
import com.yizhuan.erban.common.NoDataFragment;
|
||||
import com.yizhuan.erban.databinding.FragmentXrexylerviewBinding;
|
||||
import com.yizhuan.erban.ui.widget.RecyclerViewNoBugLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.BillItemEntity;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeInfo;
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeListInfo;
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p> 提现账单(不包含红包) </p>
|
||||
* Created by Administrator on 2017/11/7.
|
||||
*/
|
||||
@ActLayoutRes(R.layout.fragment_xrexylerview)
|
||||
public class WithdrawBillsFragment extends BaseBindingFragment<FragmentXrexylerviewBinding> {
|
||||
private RecyclerView mRecyclerView;
|
||||
private SwipeRefreshLayout mSwipeRefreshLayout;
|
||||
private WithdrawBillsAdapter adapter;
|
||||
private List<BillItemEntity> mBillItemEntityList = new ArrayList<>();
|
||||
private Context mContext;
|
||||
|
||||
protected int mCurrentCounter = Constants.PAGE_START;//当前页
|
||||
protected static final int PAGE_SIZE = Constants.BILL_PAGE_SIZE;
|
||||
protected long time = System.currentTimeMillis();
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mContext = getContext();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFindViews() {
|
||||
mRecyclerView = mBinding.recyclerView;
|
||||
mSwipeRefreshLayout = mBinding.swipeRefresh;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSetListener() {
|
||||
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
mCurrentCounter = 1;
|
||||
loadData();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initiate() {
|
||||
adapter = new WithdrawBillsAdapter(mBillItemEntityList);
|
||||
adapter.setOnLoadMoreListener(new BaseQuickAdapter.RequestLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
mCurrentCounter++;
|
||||
loadData();
|
||||
}
|
||||
}, mRecyclerView);
|
||||
adapter.addFooterView(View.inflate(getActivity(), R.layout.layout_bills_bottom, null));
|
||||
RecyclerViewNoBugLinearLayoutManager manager = new RecyclerViewNoBugLinearLayoutManager(mContext);
|
||||
mRecyclerView.setLayoutManager(manager);
|
||||
mRecyclerView.setAdapter(adapter);
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void loadData() {
|
||||
BillModel.get()
|
||||
.getWithdrawBills(mCurrentCounter, PAGE_SIZE, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((incomedResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onGetWithdrawBillsError(throwable.getMessage());
|
||||
} else if (incomedResult != null && incomedResult.isSuccess()) {
|
||||
onGetWithdrawBills(incomedResult.getData());
|
||||
} else if (incomedResult != null) {
|
||||
onGetWithdrawBillsError(incomedResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void onGetWithdrawBills(IncomeListInfo data) {
|
||||
mSwipeRefreshLayout.setRefreshing(false);
|
||||
if (null != data) {
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
hideStatus();
|
||||
mBillItemEntityList.clear();
|
||||
adapter.setNewData(mBillItemEntityList);
|
||||
} else {
|
||||
adapter.loadMoreComplete();
|
||||
}
|
||||
BillItemEntity billItemEntity;
|
||||
List<Map<String, List<IncomeInfo>>> billList = data.getBillList();
|
||||
if (!billList.isEmpty()) {
|
||||
int size = mBillItemEntityList.size();
|
||||
List<BillItemEntity> billItemEntities = new ArrayList<>();
|
||||
for (int i = 0; i < billList.size(); i++) {
|
||||
Map<String, List<IncomeInfo>> map = billList.get(i);
|
||||
for (String key : map.keySet()) {
|
||||
// key ---日期 value:list集合记录
|
||||
List<IncomeInfo> incomeInfos = map.get(key);
|
||||
if (ListUtils.isListEmpty(incomeInfos)) continue;
|
||||
//标题
|
||||
if (size > 0) {
|
||||
BillItemEntity lastBillItem = mBillItemEntityList.get(size - 1);
|
||||
if (!TextUtils.equals(lastBillItem.time, key)) { //时间不一致才会添加标题
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
} else {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_DATE, key);
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
|
||||
//正常item
|
||||
for (IncomeInfo temp : incomeInfos) {
|
||||
billItemEntity = new BillItemEntity(BillItemEntity.ITEM_NORMAL);
|
||||
billItemEntity.mWithdrawInfo = temp;
|
||||
billItemEntity.time = key; //目的是为了比较
|
||||
billItemEntities.add(billItemEntity);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (billItemEntities.size() < Constants.BILL_PAGE_SIZE && mCurrentCounter == Constants.PAGE_START) {
|
||||
adapter.setEnableLoadMore(false);
|
||||
}
|
||||
adapter.addData(billItemEntities);
|
||||
} else {
|
||||
if (mCurrentCounter == 1) {
|
||||
showNoData(R.drawable.icon_common_failure, XChatConstants.EMPTY_RECORD_AND_THREE_MONTHS_TIPSS);
|
||||
} else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("ResourceType")
|
||||
@Override
|
||||
public void showNoData(View view, int drawable, CharSequence charSequence) {
|
||||
if (!checkActivityValid())
|
||||
return;
|
||||
|
||||
if (view == null) {
|
||||
return;
|
||||
}
|
||||
View status = view.findViewById(R.id.status_layout);
|
||||
if (status == null || status.getId() <= 0) {
|
||||
return;
|
||||
}
|
||||
NoDataFragment fragment = NoDataFragment.newInstance(R.layout.fragment_no_data_large_iv, drawable, charSequence);
|
||||
fragment.setListener(getLoadListener());
|
||||
getChildFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
public void onGetWithdrawBillsError(String error) {
|
||||
mSwipeRefreshLayout.setRefreshing(false);
|
||||
if (mCurrentCounter == Constants.PAGE_START) {
|
||||
mSwipeRefreshLayout.setRefreshing(false);
|
||||
showNetworkErr();
|
||||
} else {
|
||||
adapter.loadMoreFail();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
EventBus.getDefault().register(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
super.onStop();
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onDateInfoEvent(DateInfoEvent event) {
|
||||
if (event != null && event.position == 0) {
|
||||
time = event.millSeconds;
|
||||
mCurrentCounter = 1;
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onTopEvent(TopEvent event) {
|
||||
if (event != null && event.position == 0) {
|
||||
try {
|
||||
mRecyclerView.smoothScrollToPosition(0);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public View.OnClickListener getLoadListener() {
|
||||
return new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
mCurrentCounter = 1;
|
||||
showLoading();
|
||||
loadData();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
@@ -1,7 +0,0 @@
|
||||
package com.yizhuan.erban.bills.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.bills.view.IBillGiftIncomeGroupView;
|
||||
|
||||
public class BillGiftIncomeGroupPresenter extends BaseMvpPresenter<IBillGiftIncomeGroupView> {
|
||||
}
|
@@ -1,29 +0,0 @@
|
||||
package com.yizhuan.erban.bills.presenter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.bills.view.IGiftIncomeView;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
|
||||
public class GiftIncomePresenter extends BaseMvpPresenter<IGiftIncomeView> {
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void getGiftIncomeBills(int pageNo, int pageSize, long time) {
|
||||
BillModel.get()
|
||||
.getGiftIncomeBills(pageNo, pageSize, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((incomedResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.onGetDataError(throwable.getMessage());
|
||||
} else if (incomedResult != null && incomedResult.isSuccess()) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.onGetIncomeBills(incomedResult.getData());
|
||||
} else if (incomedResult != null) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.onGetDataError(incomedResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,26 +0,0 @@
|
||||
package com.yizhuan.erban.bills.presenter;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.bills.view.IGiftOutputView;
|
||||
import com.yizhuan.xchat_android_core.bills.BillModel;
|
||||
|
||||
public class GiftOutputPresenter extends BaseMvpPresenter<IGiftOutputView> {
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
public void getetExpendBills(int pageNo, int pageSize, long time) {
|
||||
BillModel.get()
|
||||
.getGiftExpendBills(pageNo, pageSize, time)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((expendResult, throwable) -> {
|
||||
if (throwable != null) {
|
||||
mMvpView.onGetDataError(throwable.getMessage());
|
||||
} else if (expendResult != null && expendResult.isSuccess()) {
|
||||
mMvpView.onGetExpendBills(expendResult.getData());
|
||||
} else if (expendResult != null) {
|
||||
mMvpView.onGetDataError(expendResult.getError());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,41 +0,0 @@
|
||||
package com.yizhuan.erban.bills.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.bills.view.IRadishGiftView;
|
||||
import com.yizhuan.xchat_android_core.bills.RadishGiftModel;
|
||||
import com.yizhuan.xchat_android_core.bills.result.RadishGiftResult;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class RadishGiftPresenter extends BaseMvpPresenter<IRadishGiftView> {
|
||||
|
||||
public void getRadishRecord(int page, int pageSize, long date, byte type) {
|
||||
RadishGiftModel.get().getRadishRecord(page, pageSize, date, type)
|
||||
.subscribe(new SingleObserver<RadishGiftResult>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(RadishGiftResult radishGiftResult) {
|
||||
if (radishGiftResult != null && radishGiftResult.isSuccess()) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getRadishRecordSuccess(radishGiftResult.getData());
|
||||
} else if (radishGiftResult != null){
|
||||
if (mMvpView != null)
|
||||
mMvpView.getRadishRecordFail(radishGiftResult.getError());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
if (mMvpView != null)
|
||||
mMvpView.getRadishRecordFail(e.getMessage());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
@@ -1,6 +0,0 @@
|
||||
package com.yizhuan.erban.bills.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
public interface IBillGiftIncomeGroupView extends IMvpBaseView {
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
package com.yizhuan.erban.bills.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.bills.bean.IncomeListInfo;
|
||||
|
||||
public interface IGiftIncomeView extends ISmoothToTopView {
|
||||
void onGetDataError(String message);
|
||||
void onGetIncomeBills(IncomeListInfo data);
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
package com.yizhuan.erban.bills.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.bills.bean.ExpendListInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
public interface IGiftOutputView extends IMvpBaseView {
|
||||
void smoothScrollToTop();
|
||||
void onGetDataError(String message);
|
||||
void onGetExpendBills(ExpendListInfo data);
|
||||
}
|
@@ -1,8 +0,0 @@
|
||||
package com.yizhuan.erban.bills.view;
|
||||
|
||||
import com.yizhuan.xchat_android_core.bills.bean.RadishGiftListInfo;
|
||||
|
||||
public interface IRadishGiftView extends ISmoothToTopView {
|
||||
void getRadishRecordSuccess(RadishGiftListInfo list);
|
||||
void getRadishRecordFail(String message);
|
||||
}
|
@@ -1,7 +0,0 @@
|
||||
package com.yizhuan.erban.bills.view;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
public interface ISmoothToTopView extends IMvpBaseView {
|
||||
void smoothScrollToTop();
|
||||
}
|
@@ -1,71 +0,0 @@
|
||||
package com.yizhuan.erban.bills.widget;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.widget.RankNavigatorAdapter;
|
||||
import com.yizhuan.erban.decoration.view.widgets.BadgeScaleTransitionPagerTitleView;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class BillGiftIncomeGroupNavigatorAdapter extends CommonNavigatorAdapter {
|
||||
|
||||
private List<String> mTitleList = new ArrayList<>();
|
||||
|
||||
public BillGiftIncomeGroupNavigatorAdapter() {
|
||||
mTitleList.add(ResUtil.getString(R.string.bills_widget_billgiftincomegroupnavigatoradapter_01));
|
||||
mTitleList.add(ResUtil.getString(R.string.bills_widget_billgiftincomegroupnavigatoradapter_02));
|
||||
}
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mTitleList.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerTitleView getTitleView(Context context, int index) {
|
||||
BadgeScaleTransitionPagerTitleView scaleTransitionPagerTitleView = new BadgeScaleTransitionPagerTitleView(context);
|
||||
scaleTransitionPagerTitleView.setNormalColor(ContextCompat.getColor(context, R.color.color_999999));
|
||||
scaleTransitionPagerTitleView.setSelectedColor(ContextCompat.getColor(context, R.color.color_333333));
|
||||
scaleTransitionPagerTitleView.setMinScale(1.0f);
|
||||
scaleTransitionPagerTitleView.setTextSize(15);
|
||||
scaleTransitionPagerTitleView.setText(mTitleList.get(index));
|
||||
|
||||
scaleTransitionPagerTitleView.setOnClickListener(view -> {
|
||||
if (mOnItemSelectListener != null) {
|
||||
mOnItemSelectListener.onItemSelect(index);
|
||||
}
|
||||
});
|
||||
return scaleTransitionPagerTitleView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPagerIndicator getIndicator(Context context) {
|
||||
LinePagerIndicator indicator = new LinePagerIndicator(context);
|
||||
indicator.setMode(LinePagerIndicator.MODE_EXACTLY);
|
||||
indicator.setLineHeight(UIUtil.dip2px(context, 4));
|
||||
indicator.setRoundRadius(UIUtil.dip2px(context, 2.0));
|
||||
indicator.setLineWidth(UIUtil.dip2px(context, 17));
|
||||
indicator.setColors(ContextCompat.getColor(context, R.color.appColor));
|
||||
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||
//lp.bottomMargin = 0;
|
||||
indicator.setLayoutParams(lp);
|
||||
return indicator;
|
||||
}
|
||||
|
||||
private RankNavigatorAdapter.OnItemSelectListener mOnItemSelectListener;
|
||||
|
||||
public void setOnItemSelectListener(RankNavigatorAdapter.OnItemSelectListener mOnItemSelectListener) {
|
||||
this.mOnItemSelectListener = mOnItemSelectListener;
|
||||
}
|
||||
}
|
@@ -1,67 +0,0 @@
|
||||
package com.yizhuan.erban.bills.widget;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
|
||||
/**
|
||||
* <p> 账单item </p>
|
||||
* Created by Administrator on 2017/11/6.
|
||||
*/
|
||||
public class BillItemView extends RelativeLayout {
|
||||
private ImageView mIvLeftIcon;
|
||||
private TextView mTvItemText;
|
||||
private View mViewLine;
|
||||
private Context mContext;
|
||||
|
||||
public BillItemView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
|
||||
public BillItemView(Context context, @Nullable AttributeSet attrs) {
|
||||
this(context, attrs, 0);
|
||||
}
|
||||
|
||||
public BillItemView(Context context, @Nullable AttributeSet attrs, int defStyle) {
|
||||
super(context, attrs, defStyle);
|
||||
init(context, attrs, defStyle);
|
||||
}
|
||||
|
||||
private void init(Context context, @Nullable AttributeSet attrs, int defStyle) {
|
||||
mContext = context;
|
||||
inflate(context, R.layout.layout_bill_item_view, this);
|
||||
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.BillItemView, defStyle, 0);
|
||||
int leftIcon = a.getResourceId(R.styleable.BillItemView_left_icon, -1);
|
||||
String itemText = a.getString(R.styleable.BillItemView_item_text);
|
||||
boolean isHide = a.getBoolean(R.styleable.BillItemView_hide_line, false);
|
||||
a.recycle();
|
||||
mIvLeftIcon = (ImageView) findViewById(R.id.iv_left_icon);
|
||||
mTvItemText = (TextView) findViewById(R.id.tv_item_text);
|
||||
mViewLine = findViewById(R.id.view_line);
|
||||
|
||||
setBackgroundResource(R.drawable.bg_common_touch_while);
|
||||
setData(leftIcon, itemText);
|
||||
setViewLine(isHide);
|
||||
}
|
||||
|
||||
public void setData(int leftIconResId, int itemTextResId) {
|
||||
setData(leftIconResId, mContext.getResources().getString(itemTextResId));
|
||||
}
|
||||
|
||||
public void setData(int leftIconResId, String itemText) {
|
||||
mIvLeftIcon.setImageResource(leftIconResId);
|
||||
mTvItemText.setText(itemText);
|
||||
}
|
||||
|
||||
public void setViewLine(boolean isHide) {
|
||||
mViewLine.setVisibility(!isHide ? VISIBLE : GONE);
|
||||
}
|
||||
}
|
@@ -5,7 +5,6 @@ import android.content.Context;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.application.IReportConstants;
|
||||
import com.yizhuan.erban.application.ReportManager;
|
||||
import com.yizhuan.erban.radish.task.activity.TaskCenterActivity;
|
||||
import com.yizhuan.erban.ui.pay.ChargeActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
@@ -27,25 +26,6 @@ public class DialogUiHelper {
|
||||
|
||||
public static String CHARGE_FROM = "";
|
||||
|
||||
/**
|
||||
* 萝卜不足统一弹框处理
|
||||
*/
|
||||
public static void showRadishNotEnoughDialog(Context context, DialogManager dialogManager) {
|
||||
if (!ActivityUtil.isValidContext(context)) {
|
||||
return;
|
||||
}
|
||||
if (dialogManager == null) {
|
||||
dialogManager = new DialogManager(context);
|
||||
}
|
||||
String[] messages = new String[]{ResUtil.getString(R.string.widget_dialog_dialoguihelper_01), ResUtil.getString(R.string.widget_dialog_dialoguihelper_02)};
|
||||
dialogManager.showOkCancelWithTitleDialog(messages, ResUtil.getString(R.string.widget_dialog_dialoguihelper_03), true, () -> {
|
||||
if (!ActivityUtil.isValidContext(context)) {
|
||||
return;
|
||||
}
|
||||
TaskCenterActivity.start(context, TaskCenterActivity.FromPage.RADISH_NOT_ENOUGH_DIALOG);
|
||||
});
|
||||
}
|
||||
|
||||
public static void showNeedCharge(Context context, DialogManager dialogManager) {
|
||||
if (!ActivityUtil.isValidContext(context)) {
|
||||
return;
|
||||
|
@@ -256,10 +256,7 @@ public class DecorationDialogHelper {
|
||||
} else {
|
||||
if (throwable instanceof BalanceNotEnoughExeption) {
|
||||
DialogUiHelper.showNeedCharge(context, dialogManager);
|
||||
} else if (throwable instanceof RadishNotEnoughException) {
|
||||
DialogUiHelper.showRadishNotEnoughDialog(context, dialogManager);
|
||||
} else {
|
||||
// Toast.makeText(context, throwable.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(throwable.getMessage());
|
||||
}
|
||||
}
|
||||
|
@@ -1,22 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_core.user.bean.AttentionInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public interface IFamilyAttentionFragmentView extends IMvpBaseView{
|
||||
void onRefreshData(List<AttentionInfo> attentionInfoList);
|
||||
|
||||
void onLoadMoreData(List<AttentionInfo> attentionInfoList);
|
||||
|
||||
void onRefreshDataFail(String error);
|
||||
|
||||
void onLoadMoreDataFail(String error);
|
||||
}
|
@@ -1,13 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/30
|
||||
*/
|
||||
|
||||
public interface IFamilyCurrencySearchView extends IMvpBaseView {
|
||||
|
||||
}
|
@@ -1,20 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_core.family.bean.VMBillItemInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public interface IFamilyCurrencyView extends IMvpBaseView {
|
||||
void onLoadData(List<VMBillItemInfo> billItemInfos, int page, int dataSize);
|
||||
|
||||
void showErrorView(String message);
|
||||
|
||||
void refreshData();
|
||||
}
|
@@ -1,20 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_core.user.bean.FansListInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public interface IFamilyFansListFragmentView extends IMvpBaseView {
|
||||
void onRefreshData(FansListInfo fansListInfo);
|
||||
|
||||
void onLoadMoreData(FansListInfo fansListInfo);
|
||||
|
||||
void onRefreshDataFail(String message);
|
||||
|
||||
void onLoadMoreDataFail(String message);
|
||||
}
|
@@ -1,23 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public interface IFamilyFriendListFragmentView extends IMvpBaseView {
|
||||
|
||||
void onRefreshData(List<UserInfo> userInfos);
|
||||
|
||||
void onLoadMoreData(List<UserInfo> userInfos);
|
||||
|
||||
void onRefreshDataFail(String message);
|
||||
|
||||
void onLoadMoreDataFail(String message);
|
||||
}
|
@@ -1,19 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGameInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/23
|
||||
*/
|
||||
|
||||
public interface IFamilyGameListActivityView extends IMvpBaseView {
|
||||
|
||||
void onLoadData(List<FamilyGameInfo> data, int page);
|
||||
|
||||
void onLoadDataFail(String error, int page);
|
||||
}
|
@@ -1,13 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public interface IFamilyInfoView extends IMvpBaseView {
|
||||
|
||||
}
|
@@ -1,13 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/25
|
||||
*/
|
||||
|
||||
public interface IFamilyManageActivityView extends IMvpBaseView {
|
||||
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public interface IFamilyMemberListView extends IMvpBaseView {
|
||||
void onLoadData(List<FamilyMemberInfo> memberInfoList);
|
||||
|
||||
void reloadFamilyMember();
|
||||
}
|
@@ -1,17 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public interface IFamilyMemberSearchView extends IMvpBaseView {
|
||||
|
||||
void update(List<FamilyMemberInfo> memberInfos);
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/23
|
||||
*/
|
||||
|
||||
public interface IFamilyPlazaActivityView extends IMvpBaseView {
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/2
|
||||
*/
|
||||
|
||||
public interface IFamilySearchView extends IMvpBaseView {
|
||||
}
|
@@ -1,12 +0,0 @@
|
||||
package com.yizhuan.erban.family.contract.viewinterface;
|
||||
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public interface IFamilySelectFriendActivityView extends IMvpBaseView {
|
||||
}
|
@@ -1,82 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyAttentionFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.user.AttentionModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.AttentionInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public class FamilyAttentionPresenter extends BaseMvpPresenter<IFamilyAttentionFragmentView> {
|
||||
private int mPage = Constants.PAGE_START;
|
||||
private boolean isLoading = false;
|
||||
|
||||
public void refreshData() {
|
||||
loadData(Constants.PAGE_START);
|
||||
}
|
||||
public void loadMoreData() {
|
||||
loadData(mPage + 1);
|
||||
}
|
||||
|
||||
private void loadData(int targetPage){
|
||||
if (isLoading){
|
||||
if (getMvpView() == null){
|
||||
return;
|
||||
}
|
||||
if (mPage == Constants.PAGE_START) {
|
||||
getMvpView().onRefreshDataFail(ResUtil.getString(R.string.family_presenter_familyattentionpresenter_01));
|
||||
} else {
|
||||
getMvpView().onLoadMoreDataFail(ResUtil.getString(R.string.family_presenter_familyattentionpresenter_02));
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.mPage = targetPage;
|
||||
isLoading = true;
|
||||
AttentionModel.get().getAttentionList(
|
||||
AuthModel.get().getCurrentUid(),
|
||||
mPage,
|
||||
Constants.PAGE_SIZE
|
||||
)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<List<AttentionInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<AttentionInfo> attentionInfos) {
|
||||
isLoading = false;
|
||||
if (mPage == Constants.PAGE_START){
|
||||
getMvpView().onRefreshData(attentionInfos);
|
||||
}else {
|
||||
getMvpView().onLoadMoreData(attentionInfos);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
isLoading = false;
|
||||
if (mPage == Constants.PAGE_START) {
|
||||
getMvpView().onRefreshDataFail(e.getMessage());
|
||||
} else {
|
||||
getMvpView().onLoadMoreDataFail(e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -1,284 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyCurrencyView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.family.bean.BillDateDivInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.TransactionRecordInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.VMBillItemInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.moneyManagement.FamilyMoneyManagementInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.moneyManagement.MonthlyRecord;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.moneyManagement.TradeMoneyRecord;
|
||||
import com.yizhuan.xchat_android_core.family.event.FamilyCurrencyUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBusHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public class FamilyCurrencyPresenter extends BaseMvpPresenter<IFamilyCurrencyView> {
|
||||
|
||||
private FamilyMoneyManagementInfo familyMoneyManagementInfo;
|
||||
private List<MonthlyRecord> monthlyRecordList = new ArrayList<>();
|
||||
private List<VMBillItemInfo> billItemInfos = new ArrayList<>();
|
||||
|
||||
private int page = Constants.PAGE_START;
|
||||
private boolean isLoading = false;
|
||||
|
||||
private SimpleDateFormat monthDateFormat = new SimpleDateFormat(ResUtil.getString(R.string.family_presenter_familycurrencypresenter_01), Locale.getDefault());
|
||||
private SimpleDateFormat dayDateFormat = new SimpleDateFormat(ResUtil.getString(R.string.family_presenter_familycurrencypresenter_02), Locale.getDefault());
|
||||
|
||||
private CompositeDisposable compositeDisposable;
|
||||
|
||||
public FamilyMoneyManagementInfo getFamilyMoneyManagementInfo() {
|
||||
return familyMoneyManagementInfo;
|
||||
}
|
||||
|
||||
public List<VMBillItemInfo> getBillItemInfos() {
|
||||
return billItemInfos;
|
||||
}
|
||||
|
||||
public FamilyCurrencyPresenter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
this.compositeDisposable = new CompositeDisposable();
|
||||
addRxEvent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyPresenter() {
|
||||
super.onDestroyPresenter();
|
||||
if (this.compositeDisposable != null) {
|
||||
this.compositeDisposable.dispose();
|
||||
this.compositeDisposable = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void addRxEvent() {
|
||||
/**
|
||||
* 转让或者贡献家族币后更新家族币信息
|
||||
*/
|
||||
RxBusHelper.doOnMainThread(FamilyCurrencyUpdateEvent.class, compositeDisposable, new Consumer<FamilyCurrencyUpdateEvent>() {
|
||||
@Override
|
||||
public void accept(FamilyCurrencyUpdateEvent familyCurrencyUpdateEvent) throws Exception {
|
||||
getMvpView().refreshData();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取家族币 头部卡片信息
|
||||
* @return
|
||||
*/
|
||||
public Single<FamilyMoneyManagementInfo> loadData() {
|
||||
|
||||
return FamilyModel.Instance().loadFamilyBillSummary()
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<FamilyMoneyManagementInfo, SingleSource<FamilyMoneyManagementInfo>>() {
|
||||
@Override
|
||||
public SingleSource<FamilyMoneyManagementInfo> apply(FamilyMoneyManagementInfo response) throws Exception {
|
||||
familyMoneyManagementInfo = response;
|
||||
return Single.just(familyMoneyManagementInfo);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void onRefreshRecordList(@NonNull String timeMillis){
|
||||
loadMemberRecordList(timeMillis,Constants.PAGE_START);
|
||||
}
|
||||
|
||||
public void onLoadMoreRecordList(@NonNull String timeMillis){
|
||||
loadMemberRecordList(timeMillis, this.page);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取某个成员家族币流水
|
||||
* @param timeMillis
|
||||
*/
|
||||
private void loadMemberRecordList(@NonNull String timeMillis, int targetPage){
|
||||
long uid = AuthModel.get().getCurrentUid();
|
||||
if (uid <= 0){
|
||||
if (getMvpView() == null){
|
||||
return;
|
||||
}
|
||||
getMvpView().showErrorView(ResUtil.getString(R.string.family_presenter_familycurrencypresenter_03));
|
||||
return;
|
||||
}
|
||||
if (isLoading){
|
||||
if (getMvpView() == null){
|
||||
return;
|
||||
}
|
||||
getMvpView().showErrorView(ResUtil.getString(R.string.family_presenter_familycurrencypresenter_04));
|
||||
return;
|
||||
}
|
||||
page = targetPage;
|
||||
isLoading = true;
|
||||
FamilyModel.Instance().loadFamilyMemberBillRecordList(
|
||||
String.valueOf(uid),
|
||||
String.valueOf(page),
|
||||
String.valueOf(Constants.PAGE_SIZE),
|
||||
timeMillis
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<TradeMoneyRecord>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(TradeMoneyRecord tradeMoneyRecord) {
|
||||
isLoading = false;
|
||||
if (page == Constants.PAGE_START){
|
||||
monthlyRecordList.clear();
|
||||
billItemInfos.clear();
|
||||
}
|
||||
if (tradeMoneyRecord.getRecordMonVos().size() > 0) {
|
||||
transferToViewModel(tradeMoneyRecord.getRecordMonVos());
|
||||
}
|
||||
int recordSize = 0;
|
||||
for (MonthlyRecord monthlyRecord : tradeMoneyRecord.getRecordMonVos()) {
|
||||
recordSize += monthlyRecord.getList().size();
|
||||
}
|
||||
if (page == Constants.PAGE_START && billItemInfos.isEmpty()) {
|
||||
showNoData(Long.parseLong(timeMillis));
|
||||
}
|
||||
getMvpView().onLoadData(billItemInfos, page, recordSize);
|
||||
page ++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
isLoading = false;
|
||||
getMvpView().showErrorView(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 整合月份数据,转换数据
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@NonNull
|
||||
private void transferToViewModel(List<MonthlyRecord> recordMonVos) {
|
||||
if (ListUtils.isListEmpty(recordMonVos)){
|
||||
return;
|
||||
}
|
||||
List<MonthlyRecord> recordList = new ArrayList<>(recordMonVos);
|
||||
if (monthlyRecordList.size() == 0){
|
||||
monthlyRecordList.addAll(recordList);
|
||||
}else{
|
||||
//分页的时候跨越月份了,整合起来
|
||||
MonthlyRecord monthlyRecord = monthlyRecordList.get(monthlyRecordList.size() - 1);
|
||||
if (monthlyRecord.getMonth() == recordList.get(0).getMonth()){
|
||||
MonthlyRecord monthlyRecord1 = recordList.remove(0);
|
||||
monthlyRecord.getList().addAll(monthlyRecord1.getList());
|
||||
for (MonthlyRecord.RecordItem recordItem : monthlyRecord1.getList()) {
|
||||
VMBillItemInfo<TransactionRecordInfo> item = new VMBillItemInfo<>(VMBillItemInfo.TYPE_TRANSACTION_RECORD);
|
||||
TransactionRecordInfo transactionRecordInfo = new TransactionRecordInfo();
|
||||
transactionRecordInfo.setAvatar(recordItem.getAvatar());
|
||||
transactionRecordInfo.setTitle(recordItem.getTitle());
|
||||
transactionRecordInfo.setData(recordItem.getAmount());
|
||||
transactionRecordInfo.setDate(dayDateFormat.format(new Date(recordItem.getTime())));
|
||||
transactionRecordInfo.setDesc("["+recordItem.getSource()+"]");
|
||||
transactionRecordInfo.setMoneyName(monthlyRecord.getMoneyName());
|
||||
transactionRecordInfo.setType(recordItem.getType());
|
||||
transactionRecordInfo.setUid(recordItem.getUid());
|
||||
item.setData(transactionRecordInfo);
|
||||
billItemInfos.add(item);
|
||||
}
|
||||
}
|
||||
monthlyRecordList.addAll(recordList);
|
||||
}
|
||||
|
||||
for (MonthlyRecord monthlyRecord : recordList) {
|
||||
VMBillItemInfo<BillDateDivInfo> dataItem = new VMBillItemInfo<>(VMBillItemInfo.TYPE_DATE_DIV);
|
||||
BillDateDivInfo billDateDivInfo = new BillDateDivInfo();
|
||||
billDateDivInfo.setMoneyName(monthlyRecord.getMoneyName());
|
||||
billDateDivInfo.setDate(monthDateFormat.format(new Date(monthlyRecord.getMonth())));
|
||||
billDateDivInfo.setIncome(monthlyRecord.getIncome());
|
||||
billDateDivInfo.setExpend(monthlyRecord.getCost());
|
||||
dataItem.setData(billDateDivInfo);
|
||||
billItemInfos.add(dataItem);
|
||||
for (MonthlyRecord.RecordItem recordItem : monthlyRecord.getList()) {
|
||||
VMBillItemInfo<TransactionRecordInfo> item = new VMBillItemInfo<>(VMBillItemInfo.TYPE_TRANSACTION_RECORD);
|
||||
TransactionRecordInfo transactionRecordInfo = new TransactionRecordInfo();
|
||||
transactionRecordInfo.setAvatar(recordItem.getAvatar());
|
||||
transactionRecordInfo.setTitle(recordItem.getTitle());
|
||||
transactionRecordInfo.setData(recordItem.getAmount());
|
||||
transactionRecordInfo.setDate(dayDateFormat.format(new Date(recordItem.getTime())));
|
||||
transactionRecordInfo.setDesc("["+recordItem.getSource()+"]");
|
||||
transactionRecordInfo.setMoneyName(monthlyRecord.getMoneyName());
|
||||
transactionRecordInfo.setType(recordItem.getType());
|
||||
transactionRecordInfo.setUid(recordItem.getUid());
|
||||
item.setData(transactionRecordInfo);
|
||||
billItemInfos.add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void showNoData(long timeMills){
|
||||
VMBillItemInfo<BillDateDivInfo> dataItem = new VMBillItemInfo<>(VMBillItemInfo.TYPE_DATE_DIV);
|
||||
// BillDateDivInfo billDateDivInfo = new BillDateDivInfo();
|
||||
// billDateDivInfo.setMoneyName(familyMoneyManagementInfo.getMoneyName());
|
||||
// billDateDivInfo.setDate(monthDateFormat.format(new Date(timeMills)));
|
||||
// billDateDivInfo.setIncome(0.0f);
|
||||
// billDateDivInfo.setExpend(0.0f);
|
||||
// dataItem.setData(billDateDivInfo);
|
||||
// billItemInfos.add(dataItem);
|
||||
VMBillItemInfo emptyTip = new VMBillItemInfo<>(VMBillItemInfo.TYPE_EMPTY_TIP);
|
||||
billItemInfos.add(emptyTip);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 贡献家族币
|
||||
* @param count
|
||||
*/
|
||||
public Single<String> contributionCurrency(double count) {
|
||||
return FamilyModel.Instance().contributeCurrency(
|
||||
count
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,81 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyFansListFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel;
|
||||
import com.yizhuan.xchat_android_core.user.AttentionModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.FansListInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public class FamilyFansListPresenter extends BaseMvpPresenter<IFamilyFansListFragmentView> {
|
||||
private int mPage = Constants.PAGE_START;
|
||||
private boolean isLoading = false;
|
||||
public void refreshData() {
|
||||
loadData(Constants.PAGE_START);
|
||||
}
|
||||
|
||||
public void loadMoreData() {
|
||||
loadData(mPage + 1);
|
||||
}
|
||||
|
||||
private void loadData(int targetPage){
|
||||
if (isLoading){
|
||||
if (getMvpView() == null){
|
||||
return;
|
||||
}
|
||||
if (mPage == Constants.PAGE_START){
|
||||
getMvpView().onRefreshDataFail(ResUtil.getString(R.string.family_presenter_familyfanslistpresenter_01));
|
||||
}else {
|
||||
getMvpView().onLoadMoreDataFail(ResUtil.getString(R.string.family_presenter_familyfanslistpresenter_02));
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.mPage = targetPage;
|
||||
isLoading = true;
|
||||
AttentionModel.get().getFansList(
|
||||
AuthModel.get().getCurrentUid(),
|
||||
this.mPage,
|
||||
Constants.PAGE_SIZE
|
||||
)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<FansListInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(FansListInfo fansListInfo) {
|
||||
isLoading = false;
|
||||
if (mPage == Constants.PAGE_START){
|
||||
getMvpView().onRefreshData(fansListInfo);
|
||||
}else {
|
||||
getMvpView().onLoadMoreData(fansListInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
isLoading = false;
|
||||
if (mPage == Constants.PAGE_START){
|
||||
getMvpView().onRefreshDataFail(e.getMessage());
|
||||
}else {
|
||||
getMvpView().onLoadMoreDataFail(e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,80 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyFriendListFragmentView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.im.friend.IMFriendModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public class FamilyFriendListPresenter extends BaseMvpPresenter<IFamilyFriendListFragmentView> {
|
||||
private int mPage = Constants.PAGE_START;
|
||||
private final int pageSize = Constants.PAGE_SIZE;
|
||||
private boolean isLoading = false;
|
||||
|
||||
public void refreshData() {
|
||||
loadData(Constants.PAGE_START);
|
||||
}
|
||||
|
||||
public void loadMoreData() {
|
||||
loadData(mPage + 1);
|
||||
}
|
||||
|
||||
private void loadData(int targetPage){
|
||||
if (isLoading){
|
||||
if (getMvpView() == null){
|
||||
return;
|
||||
}
|
||||
if (mPage == Constants.PAGE_START){
|
||||
getMvpView().onRefreshDataFail(ResUtil.getString(R.string.family_presenter_familyfriendlistpresenter_01));
|
||||
}else {
|
||||
getMvpView().onLoadMoreDataFail(ResUtil.getString(R.string.family_presenter_familyfriendlistpresenter_02));
|
||||
}
|
||||
return;
|
||||
}
|
||||
this.mPage = targetPage;
|
||||
isLoading = true;
|
||||
IMFriendModel.get().getMyFriendsUserInfos(mPage, pageSize)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(new SingleObserver<List<UserInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<UserInfo> userInfos) {
|
||||
isLoading = false;
|
||||
if (mPage == Constants.PAGE_START){
|
||||
getMvpView().onRefreshData(userInfos);
|
||||
}else {
|
||||
getMvpView().onLoadMoreData(userInfos);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
isLoading = false;
|
||||
if (mPage == Constants.PAGE_START){
|
||||
getMvpView().onRefreshDataFail(e.getMessage());
|
||||
}else {
|
||||
getMvpView().onLoadMoreDataFail(e.getMessage());
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,81 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyGameListActivityView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGameInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/23
|
||||
*/
|
||||
|
||||
public class FamilyGameListPresenter extends BaseMvpPresenter<IFamilyGameListActivityView> {
|
||||
|
||||
private AtomicInteger curPage = new AtomicInteger(Constants.PAGE_START);
|
||||
private boolean isLoading = false;
|
||||
|
||||
public void refreshData() {
|
||||
curPage.set(Constants.PAGE_START);
|
||||
loadMoreData();
|
||||
}
|
||||
|
||||
|
||||
public void loadMoreData() {
|
||||
loadData(curPage.get())
|
||||
.subscribe((familyGameInfos, throwable) -> {
|
||||
if (throwable == null) {
|
||||
getMvpView().onLoadData(familyGameInfos, curPage.getAndIncrement());
|
||||
} else {
|
||||
getMvpView().onLoadDataFail(throwable.getMessage(), curPage.get());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private Single<List<FamilyGameInfo>> loadData(int targetPage){
|
||||
FamilyInfo familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (familyInfo == null){
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familygamelistpresenter_01)));
|
||||
}
|
||||
|
||||
if (isLoading){
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familygamelistpresenter_02)));
|
||||
}
|
||||
isLoading = true;
|
||||
return FamilyModel.Instance().loadFamilyGameList(
|
||||
familyInfo.getFamilyId(),
|
||||
targetPage,
|
||||
Constants.PAGE_SIZE
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<List<FamilyGameInfo>, SingleSource<List<FamilyGameInfo>>>() {
|
||||
@Override
|
||||
public SingleSource<List<FamilyGameInfo>> apply(List<FamilyGameInfo> familyGameInfos) throws Exception {
|
||||
isLoading = false;
|
||||
return Single.just(familyGameInfos);
|
||||
}
|
||||
})
|
||||
.doOnError(new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
isLoading = false;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
@@ -1,180 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.home.view.IFamilyHomeActivityView;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.event.FamilyCurrencyUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.family.event.FamilyMemberUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.family.event.FamilyUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBusHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/23
|
||||
*/
|
||||
|
||||
public class FamilyHomePresenter extends BaseMvpPresenter<IFamilyHomeActivityView> {
|
||||
|
||||
private FamilyInfo familyInfo;
|
||||
private CompositeDisposable compositeDisposable;
|
||||
|
||||
public FamilyInfo getFamilyInfo() {
|
||||
return familyInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
compositeDisposable = new CompositeDisposable();
|
||||
addEvent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyPresenter() {
|
||||
super.onDestroyPresenter();
|
||||
if (compositeDisposable != null){
|
||||
compositeDisposable.dispose();
|
||||
compositeDisposable = null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void addEvent() {
|
||||
/**
|
||||
* 转让或者贡献家族币后更新家族信息
|
||||
*/
|
||||
RxBusHelper.doOnMainThread(FamilyCurrencyUpdateEvent.class, compositeDisposable, new Consumer<FamilyCurrencyUpdateEvent>() {
|
||||
@Override
|
||||
public void accept(FamilyCurrencyUpdateEvent familyCurrencyUpdateEvent) throws Exception {
|
||||
getMvpView().reloadMyFamilyInfo(familyInfo.getFamilyId());
|
||||
}
|
||||
});
|
||||
/**
|
||||
* 修改家族相关信息更新家族信息事件
|
||||
*/
|
||||
RxBusHelper.doOnMainThread(FamilyUpdateEvent.class, compositeDisposable, new Consumer<FamilyUpdateEvent>() {
|
||||
@Override
|
||||
public void accept(FamilyUpdateEvent familyUpdateEvent) throws Exception {
|
||||
if (familyUpdateEvent.getFamilyInfo() != null
|
||||
&& familyInfo.getFamilyId().equals(familyUpdateEvent.getFamilyInfo().getFamilyId())) {
|
||||
familyInfo = familyUpdateEvent.getFamilyInfo();
|
||||
getMvpView().onLoadData(familyUpdateEvent.getFamilyInfo());
|
||||
} else if (familyUpdateEvent.getFamilyInfo() == null
|
||||
&& familyInfo.getEnterStatus() == FamilyInfo.STATUS_IN_FAMILY){
|
||||
getMvpView().close();
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* 成员更新
|
||||
*/
|
||||
RxBusHelper.doOnMainThread(FamilyMemberUpdateEvent.class, compositeDisposable, new Consumer<FamilyMemberUpdateEvent>() {
|
||||
@Override
|
||||
public void accept(FamilyMemberUpdateEvent familyMemberUpdateEvent) throws Exception {
|
||||
getMvpView().reloadMyFamilyInfo(familyInfo.getFamilyId());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
/**
|
||||
* 加载家族信息
|
||||
* @param familyId
|
||||
*/
|
||||
public Single<FamilyInfo> loadData(String familyId) {
|
||||
|
||||
return FamilyModel.Instance().loadFamilyHomeInfo(
|
||||
familyId
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<FamilyInfo, SingleSource<? extends FamilyInfo>>() {
|
||||
@Override
|
||||
public SingleSource<? extends FamilyInfo> apply(FamilyInfo familyInfo) throws Exception {
|
||||
FamilyHomePresenter.this.familyInfo = familyInfo;
|
||||
return Single.just(familyInfo);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出家族
|
||||
* @return
|
||||
*/
|
||||
public Single<String> exitFamily() {
|
||||
return FamilyModel.Instance().exitFamily()
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 申请加入家族
|
||||
* @return
|
||||
*/
|
||||
public Single<String> joinFamily(String str) {
|
||||
if (null == familyInfo){
|
||||
return Single.error(new Exception(ResUtil.getString(R.string.family_presenter_familyhomepresenter_01)));
|
||||
}
|
||||
|
||||
return FamilyModel.Instance().applyJoinFamily(
|
||||
familyInfo.getFamilyId(),
|
||||
str
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 加入家族群
|
||||
* @return
|
||||
*/
|
||||
public Single<String> joinFamilyGroup(String chatId, String message) {
|
||||
|
||||
|
||||
return FamilyModel.Instance().joinFamilyGroup(
|
||||
chatId,
|
||||
message
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<String, SingleSource<? extends String>>() {
|
||||
@Override
|
||||
public SingleSource<? extends String> apply(String response) throws Exception {
|
||||
getMvpView().reloadMyFamilyInfo(familyInfo.getFamilyId());
|
||||
return Single.just(response);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 邀请朋友加入家族
|
||||
* @param friendUid
|
||||
* @return
|
||||
*/
|
||||
public Single<String> inviteFriendToFamily(long friendUid) {
|
||||
return FamilyModel.Instance().inviteIntoFamily(
|
||||
String.valueOf(friendUid)
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
|
||||
}
|
||||
}
|
@@ -1,78 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyInfoView;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import io.reactivex.Single;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public class FamilyInfoPresenter extends BaseMvpPresenter<IFamilyInfoView> {
|
||||
|
||||
/**
|
||||
* 修改验证状态
|
||||
* @param isOn
|
||||
* @return
|
||||
*/
|
||||
public Single<String> changeVerifyStatus(final boolean isOn) {
|
||||
final FamilyInfo familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (null == familyInfo){
|
||||
return Single.error(new Exception(ResUtil.getString(R.string.family_presenter_familyinfopresenter_01)));
|
||||
}
|
||||
return FamilyModel.Instance().modifyFamilyInfo(
|
||||
familyInfo.getFamilyId(),
|
||||
null,
|
||||
null,
|
||||
isOn ? "1":"0"
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改家族头像
|
||||
* @param url
|
||||
* @return
|
||||
*/
|
||||
public Single<String> changeFamilyAvatar(final String url) {
|
||||
final FamilyInfo familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (null == familyInfo){
|
||||
return Single.error(new Exception(ResUtil.getString(R.string.family_presenter_familyinfopresenter_02)));
|
||||
}
|
||||
return FamilyModel.Instance().modifyFamilyInfo(
|
||||
familyInfo.getFamilyId(),
|
||||
null,
|
||||
url,
|
||||
null
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改家族名称
|
||||
* @param str
|
||||
* @return
|
||||
*/
|
||||
public Single<String> changeFamilyName(final String str) {
|
||||
final FamilyInfo familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (null == familyInfo){
|
||||
return Single.error(new Exception(ResUtil.getString(R.string.family_presenter_familyinfopresenter_03)));
|
||||
}
|
||||
return FamilyModel.Instance().modifyFamilyInfo(
|
||||
familyInfo.getFamilyId(),
|
||||
str,
|
||||
null,
|
||||
null
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
}
|
||||
}
|
@@ -1,44 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilySearchView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RankingFamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RespFamilyRankList;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/24
|
||||
*/
|
||||
|
||||
public class FamilyListPresenter extends BaseMvpPresenter<IFamilySearchView> {
|
||||
|
||||
public Single<List<RankingFamilyInfo>> refreshData() {
|
||||
return loadData();
|
||||
}
|
||||
|
||||
|
||||
private Single<List<RankingFamilyInfo>> loadData(){
|
||||
return FamilyModel.Instance().loadFamilyRankingList(
|
||||
RespFamilyRankList.TYPE_THIS_WEEK,
|
||||
String.valueOf(Constants.PAGE_START),
|
||||
String.valueOf(20)
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<RespFamilyRankList, SingleSource<? extends List<RankingFamilyInfo>>>() {
|
||||
@Override
|
||||
public SingleSource<? extends List<RankingFamilyInfo>> apply(RespFamilyRankList response) throws Exception {
|
||||
return Single.just(response.getFamilys());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,14 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyManageActivityView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/25
|
||||
*/
|
||||
|
||||
public class FamilyManagePresenter extends BaseMvpPresenter<IFamilyManageActivityView> {
|
||||
|
||||
}
|
@@ -1,210 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyCurrencyView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.BillDateDivInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.TransactionRecordInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.VMBillItemInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.moneyManagement.MonthlyRecord;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.moneyManagement.TradeMoneyRecord;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public class FamilyMemberCurrencyPresenter extends BaseMvpPresenter<IFamilyCurrencyView> {
|
||||
|
||||
private List<MonthlyRecord> monthlyRecordList = new ArrayList<>();
|
||||
private List<VMBillItemInfo> billItemInfos = new ArrayList<>();
|
||||
|
||||
private int page = Constants.PAGE_START;
|
||||
private boolean isLoading = false;
|
||||
|
||||
private SimpleDateFormat monthDateFormat = new SimpleDateFormat(ResUtil.getString(R.string.family_presenter_familymembercurrencypresenter_01), Locale.getDefault());
|
||||
private SimpleDateFormat dayDateFormat = new SimpleDateFormat(ResUtil.getString(R.string.family_presenter_familymembercurrencypresenter_02), Locale.getDefault());
|
||||
|
||||
|
||||
|
||||
public List<VMBillItemInfo> getBillItemInfos() {
|
||||
return billItemInfos;
|
||||
}
|
||||
|
||||
public FamilyMemberCurrencyPresenter() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyPresenter() {
|
||||
super.onDestroyPresenter();
|
||||
}
|
||||
|
||||
|
||||
public void onRefreshRecordList(@NonNull String timeMillis, String targetId){
|
||||
loadMemberRecordList(timeMillis, targetId, Constants.PAGE_START);
|
||||
}
|
||||
|
||||
public void onLoadMoreRecordList(@NonNull String timeMillis, String targetId){
|
||||
loadMemberRecordList(timeMillis,targetId, this.page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取某个人家族币交易记录
|
||||
*
|
||||
* @param timeMillis
|
||||
* @param targetId
|
||||
* @return
|
||||
*/
|
||||
private void loadMemberRecordList(@NonNull String timeMillis, String targetId, int targetPage){
|
||||
if (isLoading){
|
||||
if (getMvpView() == null){
|
||||
return;
|
||||
}
|
||||
getMvpView().showErrorView(ResUtil.getString(R.string.family_presenter_familymembercurrencypresenter_03));
|
||||
return;
|
||||
}
|
||||
page = targetPage;
|
||||
isLoading = true;
|
||||
FamilyModel.Instance().loadFamilyMemberBillRecordList(
|
||||
targetId,
|
||||
String.valueOf(page),
|
||||
String.valueOf(Constants.PAGE_SIZE),
|
||||
timeMillis
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<TradeMoneyRecord>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(TradeMoneyRecord tradeMoneyRecord) {
|
||||
isLoading = false;
|
||||
if (page == Constants.PAGE_START){
|
||||
monthlyRecordList.clear();
|
||||
billItemInfos.clear();
|
||||
}
|
||||
if (tradeMoneyRecord.getRecordMonVos().size() > 0) {
|
||||
transferToViewModel(tradeMoneyRecord.getRecordMonVos());
|
||||
}
|
||||
if (page == Constants.PAGE_START && billItemInfos.isEmpty()) {
|
||||
showNoData(Long.parseLong(timeMillis));
|
||||
}
|
||||
getMvpView().onLoadData(billItemInfos, page, tradeMoneyRecord.getRecordMonVos().size());
|
||||
page ++;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
isLoading = false;
|
||||
getMvpView().showErrorView(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 整合月份数据,转换数据
|
||||
* @param
|
||||
* @return
|
||||
*/
|
||||
@NonNull
|
||||
private void transferToViewModel(List<MonthlyRecord> recordMonVos) {
|
||||
if (ListUtils.isListEmpty(recordMonVos)){
|
||||
return;
|
||||
}
|
||||
if (monthlyRecordList.size() == 0){
|
||||
monthlyRecordList.addAll(recordMonVos);
|
||||
}else{
|
||||
//分页的时候跨越月份了,整合起来
|
||||
MonthlyRecord monthlyRecord = monthlyRecordList.get(monthlyRecordList.size() - 1);
|
||||
if (monthlyRecord.getMonth() == recordMonVos.get(0).getMonth()){
|
||||
MonthlyRecord monthlyRecord1 = recordMonVos.remove(0);
|
||||
monthlyRecord.getList().addAll(monthlyRecord1.getList());
|
||||
for (MonthlyRecord.RecordItem recordItem : monthlyRecord1.getList()) {
|
||||
VMBillItemInfo<TransactionRecordInfo> item = new VMBillItemInfo<>(VMBillItemInfo.TYPE_TRANSACTION_RECORD);
|
||||
TransactionRecordInfo transactionRecordInfo = new TransactionRecordInfo();
|
||||
transactionRecordInfo.setAvatar(recordItem.getAvatar());
|
||||
transactionRecordInfo.setTitle(recordItem.getTitle());
|
||||
transactionRecordInfo.setData(recordItem.getAmount());
|
||||
transactionRecordInfo.setDate(dayDateFormat.format(new Date(recordItem.getTime())));
|
||||
transactionRecordInfo.setDesc("["+recordItem.getSource()+"]");
|
||||
transactionRecordInfo.setMoneyName(monthlyRecord.getMoneyName());
|
||||
item.setData(transactionRecordInfo);
|
||||
billItemInfos.add(item);
|
||||
}
|
||||
}
|
||||
monthlyRecordList.addAll(recordMonVos);
|
||||
}
|
||||
|
||||
for (MonthlyRecord monthlyRecord : recordMonVos) {
|
||||
VMBillItemInfo<BillDateDivInfo> dataItem = new VMBillItemInfo<>(VMBillItemInfo.TYPE_DATE_DIV);
|
||||
BillDateDivInfo billDateDivInfo = new BillDateDivInfo();
|
||||
billDateDivInfo.setMoneyName(monthlyRecord.getMoneyName());
|
||||
billDateDivInfo.setDate(monthDateFormat.format(new Date(monthlyRecord.getMonth())));
|
||||
billDateDivInfo.setIncome(monthlyRecord.getIncome());
|
||||
billDateDivInfo.setExpend(monthlyRecord.getCost());
|
||||
dataItem.setData(billDateDivInfo);
|
||||
billItemInfos.add(dataItem);
|
||||
for (MonthlyRecord.RecordItem recordItem : monthlyRecord.getList()) {
|
||||
VMBillItemInfo<TransactionRecordInfo> item = new VMBillItemInfo<>(VMBillItemInfo.TYPE_TRANSACTION_RECORD);
|
||||
TransactionRecordInfo transactionRecordInfo = new TransactionRecordInfo();
|
||||
transactionRecordInfo.setAvatar(recordItem.getAvatar());
|
||||
transactionRecordInfo.setTitle(recordItem.getTitle());
|
||||
transactionRecordInfo.setData(recordItem.getAmount());
|
||||
transactionRecordInfo.setDate(dayDateFormat.format(new Date(recordItem.getTime())));
|
||||
transactionRecordInfo.setDesc("["+recordItem.getSource()+"]");
|
||||
transactionRecordInfo.setMoneyName(monthlyRecord.getMoneyName());
|
||||
item.setData(transactionRecordInfo);
|
||||
billItemInfos.add(item);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void showNoData(long timeMills){
|
||||
VMBillItemInfo<BillDateDivInfo> dataItem = new VMBillItemInfo<>(VMBillItemInfo.TYPE_DATE_DIV);
|
||||
BillDateDivInfo billDateDivInfo = new BillDateDivInfo();
|
||||
if (FamilyModel.Instance().getMyFamily() != null) {
|
||||
billDateDivInfo.setMoneyName(FamilyModel.Instance().getMyFamily().getMoneyName());
|
||||
}
|
||||
billDateDivInfo.setDate(monthDateFormat.format(new Date(timeMills)));
|
||||
billDateDivInfo.setIncome(0.0f);
|
||||
billDateDivInfo.setExpend(0.0f);
|
||||
dataItem.setData(billDateDivInfo);
|
||||
billItemInfos.add(dataItem);
|
||||
VMBillItemInfo emptyTip = new VMBillItemInfo<>(VMBillItemInfo.TYPE_EMPTY_TIP);
|
||||
billItemInfos.add(emptyTip);
|
||||
}
|
||||
|
||||
}
|
@@ -1,146 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyMemberListView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.memberList.RespFamilymember;
|
||||
import com.yizhuan.xchat_android_core.family.event.FamilyMemberUpdateEvent;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.rxbus.RxBusHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public class FamilyMemberListPresenter extends BaseMvpPresenter<IFamilyMemberListView> {
|
||||
|
||||
private int page = Constants.PAGE_START;
|
||||
private boolean isLoading = false;
|
||||
private CompositeDisposable compositeDisposable;
|
||||
|
||||
@Override
|
||||
public void onCreatePresenter(@Nullable Bundle saveState) {
|
||||
super.onCreatePresenter(saveState);
|
||||
compositeDisposable = new CompositeDisposable();
|
||||
addEvent();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyPresenter() {
|
||||
super.onDestroyPresenter();
|
||||
if (null != compositeDisposable){
|
||||
compositeDisposable.dispose();
|
||||
compositeDisposable.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
private void addEvent() {
|
||||
/**
|
||||
* 成员更新
|
||||
*/
|
||||
RxBusHelper.doOnMainThread(FamilyMemberUpdateEvent.class, compositeDisposable, new Consumer<FamilyMemberUpdateEvent>() {
|
||||
@Override
|
||||
public void accept(FamilyMemberUpdateEvent familyMemberUpdateEvent) throws Exception {
|
||||
getMvpView().reloadFamilyMember();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public Single<RespFamilymember> refreshData(){
|
||||
FamilyInfo familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (null == familyInfo) {
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familymemberlistpresenter_01)));
|
||||
}
|
||||
this.page = Constants.PAGE_START;
|
||||
return loadData(familyInfo.getFamilyId(),Constants.PAGE_START);
|
||||
}
|
||||
|
||||
public Single<RespFamilymember> loadMoreData() {
|
||||
FamilyInfo familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (null == familyInfo) {
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familymemberlistpresenter_02)));
|
||||
}
|
||||
return loadData(familyInfo.getFamilyId(),this.page);
|
||||
}
|
||||
|
||||
private Single<RespFamilymember> loadData(String familyId, int targetPage) {
|
||||
|
||||
if (isLoading){
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familymemberlistpresenter_03)));
|
||||
}
|
||||
this.page = targetPage;
|
||||
isLoading = true;
|
||||
return FamilyModel.Instance().loadFamilyMemberList(
|
||||
familyId,
|
||||
String.valueOf(page),
|
||||
String.valueOf(Constants.PAGE_SIZE)
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<RespFamilymember, SingleSource<RespFamilymember>>() {
|
||||
@Override
|
||||
public SingleSource<RespFamilymember> apply(RespFamilymember respFamilymember) throws Exception {
|
||||
isLoading = false;
|
||||
page++;
|
||||
return Single.just(respFamilymember);
|
||||
}
|
||||
})
|
||||
.doOnError(new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
isLoading = false;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public FamilyInfo getFamilyInfo(){
|
||||
return FamilyModel.Instance().getMyFamily();
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除家族成员
|
||||
* @param familyMemberInfo
|
||||
*/
|
||||
public Single<String> removeFamilyMember(FamilyMemberInfo familyMemberInfo) {
|
||||
if (null == familyMemberInfo){
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familymemberlistpresenter_04)));
|
||||
}
|
||||
return FamilyModel.Instance().kickOutFamily(
|
||||
String.valueOf(familyMemberInfo.getUid())
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
}
|
||||
|
||||
/**
|
||||
* 家族币转让
|
||||
* @param familyMemberInfo
|
||||
* @param count
|
||||
* @return
|
||||
*/
|
||||
public Single<String> transferCurrency(FamilyMemberInfo familyMemberInfo, double count) {
|
||||
return FamilyModel.Instance().transferCurrency(
|
||||
String.valueOf(familyMemberInfo.getUid()),
|
||||
count
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
}
|
||||
}
|
@@ -1,95 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyMemberSearchView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.memberList.RespFamilymember;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/28
|
||||
*/
|
||||
|
||||
public class FamilyMemberSearchPresenter extends BaseMvpPresenter<IFamilyMemberSearchView> {
|
||||
private int page = Constants.PAGE_START;
|
||||
private String searchStr;
|
||||
|
||||
public FamilyInfo getFamilyInfo(){
|
||||
return FamilyModel.Instance().getMyFamily();
|
||||
}
|
||||
|
||||
public Single<List<FamilyMemberInfo>> search(String str) {
|
||||
page = Constants.PAGE_START;
|
||||
searchStr = str;
|
||||
return loadData(searchStr);
|
||||
}
|
||||
|
||||
private Single<List<FamilyMemberInfo>> loadData(String searchKey) {
|
||||
|
||||
FamilyInfo familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (null == familyInfo) {
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familymembersearchpresenter_01)));
|
||||
}
|
||||
|
||||
return FamilyModel.Instance().searchFamilyMemberList(
|
||||
familyInfo.getFamilyId(),
|
||||
null,
|
||||
null,
|
||||
searchKey
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<RespFamilymember, SingleSource<List<FamilyMemberInfo>>>() {
|
||||
@Override
|
||||
public SingleSource<List<FamilyMemberInfo>> apply(RespFamilymember respFamilymember) throws Exception {
|
||||
page++;
|
||||
return Single.just(respFamilymember.getMembers());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public Single<List<FamilyMemberInfo>> loadMoreData() {
|
||||
return loadData(searchStr);
|
||||
}
|
||||
|
||||
/**
|
||||
* 移除家族成员
|
||||
* @param familyMemberInfo
|
||||
*/
|
||||
public Single<String> removeFamilyMember(FamilyMemberInfo familyMemberInfo) {
|
||||
if (null == familyMemberInfo){
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familymembersearchpresenter_02)));
|
||||
}
|
||||
return FamilyModel.Instance().kickOutFamily(
|
||||
String.valueOf(familyMemberInfo.getUid())
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
}
|
||||
|
||||
/**
|
||||
* 家族币转让
|
||||
* @param familyMemberInfo
|
||||
* @param count
|
||||
* @return
|
||||
*/
|
||||
public Single<String> transferCurrency(FamilyMemberInfo familyMemberInfo, double count) {
|
||||
return FamilyModel.Instance().transferCurrency(
|
||||
String.valueOf(familyMemberInfo.getUid()),
|
||||
count
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
}
|
||||
}
|
@@ -1,33 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyPlazaActivityView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RespFamilyRankList;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
|
||||
import io.reactivex.Single;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/23
|
||||
*/
|
||||
|
||||
public class FamilyPlazaPresenter extends BaseMvpPresenter<IFamilyPlazaActivityView> {
|
||||
|
||||
public FamilyPlazaPresenter() {
|
||||
|
||||
}
|
||||
|
||||
public Single<RespFamilyRankList> loadWeeklyRankData() {
|
||||
return FamilyModel.Instance().loadFamilyRankingList(
|
||||
RespFamilyRankList.TYPE_THIS_WEEK,
|
||||
String.valueOf(Constants.PAGE_START),
|
||||
String.valueOf(6)
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY));
|
||||
|
||||
}
|
||||
}
|
@@ -1,69 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilySearchView;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.familyPlaza.RespFamily;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import io.reactivex.SingleSource;
|
||||
import io.reactivex.functions.Consumer;
|
||||
import io.reactivex.functions.Function;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/24
|
||||
*/
|
||||
|
||||
public class FamilySearchPresent extends BaseMvpPresenter<IFamilySearchView> {
|
||||
|
||||
private String searchStr = null;
|
||||
|
||||
private int page = Constants.PAGE_START;
|
||||
private boolean isLoading = false;
|
||||
|
||||
public Single<List<FamilyInfo>> search(String str) {
|
||||
this.searchStr = str;
|
||||
return loadData(Constants.PAGE_START);
|
||||
}
|
||||
|
||||
public Single<List<FamilyInfo>> loadMoreData(){
|
||||
return loadData(this.page);
|
||||
}
|
||||
|
||||
|
||||
private Single<List<FamilyInfo>> loadData(int targetPage){
|
||||
if (isLoading){
|
||||
return Single.error(new Throwable(ResUtil.getString(R.string.family_presenter_familysearchpresent_01)));
|
||||
}
|
||||
this.page = targetPage;
|
||||
isLoading = true;
|
||||
return FamilyModel.Instance().searchFamilyInfos(
|
||||
this.searchStr,
|
||||
page
|
||||
)
|
||||
.compose(bindUntilEvent(PresenterEvent.DESTROY))
|
||||
.flatMap(new Function<RespFamily, SingleSource<? extends List<FamilyInfo>>>() {
|
||||
@Override
|
||||
public SingleSource<? extends List<FamilyInfo>> apply(RespFamily response) throws Exception {
|
||||
isLoading = false;
|
||||
page++;
|
||||
return Single.just(response.getFamilys());
|
||||
}
|
||||
})
|
||||
.doOnError(new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
isLoading = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,14 +0,0 @@
|
||||
package com.yizhuan.erban.family.presenter;
|
||||
|
||||
|
||||
import com.yizhuan.erban.base.BaseMvpPresenter;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilySelectFriendActivityView;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public class FamilySelectFriendPresenter extends BaseMvpPresenter<IFamilySelectFriendActivityView> {
|
||||
}
|
@@ -1,323 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.style.StyleSpan;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.jay.widget.StickyHeadersLinearLayoutManager;
|
||||
import com.jzxiang.pickerview.TimePickerDialog;
|
||||
import com.jzxiang.pickerview.data.Type;
|
||||
import com.jzxiang.pickerview.listener.OnDateSetListener;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyCurrencyView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyCurrencyPresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyCurrencyBillAdapter;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyContributionDialog;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.UriProvider;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.VMBillItemInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.moneyManagement.FamilyMoneyManagementInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.FormatUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyCurrencyPresenter.class)
|
||||
public class FamilyCurrencyActivity extends BaseMvpActivity<IFamilyCurrencyView,FamilyCurrencyPresenter>
|
||||
implements IFamilyCurrencyView, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener, OnDateSetListener {
|
||||
|
||||
private TextView tvFamilyCurrencyLabel;
|
||||
private TextView tvFamilyCurrencyBalance;
|
||||
private ImageView ivFamilyCurrencyHelp;
|
||||
private TextView tvAction;
|
||||
private TextView tvFamilyCurrencyIncome;
|
||||
private TextView tvFamilyCurrencyExpenditure;
|
||||
private LinearLayout llSearch;
|
||||
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
private RecyclerView rvFamilyCurrency;
|
||||
private FamilyCurrencyBillAdapter adapter;
|
||||
|
||||
protected TimePickerDialog.Builder mDialogYearMonthDayBuild;
|
||||
|
||||
private String selectDate;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context, FamilyCurrencyActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_currency);
|
||||
initTitleBar("");
|
||||
|
||||
|
||||
View header = LayoutInflater.from(this).inflate(R.layout.header_famiy_currency_bill,null,false);
|
||||
tvFamilyCurrencyLabel = (TextView) header.findViewById(R.id.tv_family_currency_label);
|
||||
tvFamilyCurrencyBalance = (TextView) header.findViewById(R.id.tv_family_currency_balance);
|
||||
tvAction = (TextView) header.findViewById(R.id.tv_action);
|
||||
tvFamilyCurrencyIncome = (TextView) header.findViewById(R.id.tv_family_currency_income);
|
||||
tvFamilyCurrencyExpenditure = (TextView) header.findViewById(R.id.tv_family_currency_expenditure);
|
||||
llSearch = (LinearLayout) header.findViewById(R.id.ll_search);
|
||||
ivFamilyCurrencyHelp = (ImageView) header.findViewById(R.id.iv_family_currency_help);
|
||||
|
||||
|
||||
swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
|
||||
swipeRefresh.setOnRefreshListener(this);
|
||||
|
||||
rvFamilyCurrency = (RecyclerView) findViewById(R.id.rv_family_currency);
|
||||
rvFamilyCurrency.setItemAnimator(null);
|
||||
rvFamilyCurrency.setLayoutManager(new StickyHeadersLinearLayoutManager<FamilyCurrencyBillAdapter>(this,LinearLayoutManager.VERTICAL, false));
|
||||
adapter = new FamilyCurrencyBillAdapter(this,null);
|
||||
adapter.addHeaderView(header);
|
||||
adapter.setEnableLoadMore(true);
|
||||
adapter.setOnLoadMoreListener(this, rvFamilyCurrency);
|
||||
adapter.setOnDateSelectListener(new FamilyCurrencyBillAdapter.OnDateSelectListener() {
|
||||
@Override
|
||||
public void onDateSelect() {
|
||||
mDialogYearMonthDayBuild.build().show(getSupportFragmentManager(), "year_month");
|
||||
}
|
||||
});
|
||||
rvFamilyCurrency.setAdapter(adapter);
|
||||
|
||||
mDialogYearMonthDayBuild = new TimePickerDialog.Builder()
|
||||
.setType(Type.YEAR_MONTH)
|
||||
.setTitleStringId(ResUtil.getString(R.string.view_activity_familycurrencyactivity_01))
|
||||
.setThemeColor(getResources().getColor(R.color.line_background))
|
||||
.setWheelItemTextNormalColor(getResources().getColor(R.color
|
||||
.timetimepicker_default_text_color))
|
||||
.setWheelItemTextSelectorColor(getResources().getColor(R.color.black))
|
||||
.setCallBack(this);
|
||||
|
||||
this.selectDate = String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDateSet(TimePickerDialog timePickerView, long millseconds) {
|
||||
this.selectDate = String.valueOf(millseconds);
|
||||
getMvpPresenter().onRefreshRecordList(selectDate);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (null == getMvpPresenter().getFamilyMoneyManagementInfo()){
|
||||
swipeRefresh.setRefreshing(true);
|
||||
getMvpPresenter().loadData().subscribe(new SingleObserver<FamilyMoneyManagementInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(FamilyMoneyManagementInfo familyMoneyManagementInfo) {
|
||||
showCard(familyMoneyManagementInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
getMvpPresenter().onRefreshRecordList(selectDate);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
if (mDialogYearMonthDayBuild != null) {
|
||||
mDialogYearMonthDayBuild.setCallBack(null);
|
||||
mDialogYearMonthDayBuild = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示头部卡片
|
||||
* @param familyMoneyManagementInfo
|
||||
*/
|
||||
private void showCard(FamilyMoneyManagementInfo familyMoneyManagementInfo) {
|
||||
|
||||
String moneyName = familyMoneyManagementInfo.getMoneyName();
|
||||
String incomeStr = FormatUtils.formatToShortDown(familyMoneyManagementInfo.getIncomeAndCost().getIncome());
|
||||
String expendStr = FormatUtils.formatToShortDown(familyMoneyManagementInfo.getIncomeAndCost().getCost());
|
||||
StyleSpan boldSpan = new StyleSpan(Typeface.BOLD);
|
||||
|
||||
tvFamilyCurrencyLabel.setText(String.format(
|
||||
getString(R.string.family_currency_balance_label),
|
||||
moneyName
|
||||
));
|
||||
|
||||
|
||||
|
||||
SpannableString incomeSpan = new SpannableString(incomeStr + moneyName);
|
||||
incomeSpan.setSpan(boldSpan,0,incomeStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
tvFamilyCurrencyIncome.setText(incomeSpan);
|
||||
|
||||
SpannableString expendSpan = new SpannableString(expendStr + moneyName);
|
||||
expendSpan.setSpan(boldSpan,0,expendStr.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
tvFamilyCurrencyExpenditure.setText(expendSpan);
|
||||
|
||||
tvFamilyCurrencyBalance.setText(FormatUtils.formatToShortDown(familyMoneyManagementInfo.getTotalAmount()));
|
||||
|
||||
if (familyMoneyManagementInfo.getPosition() == FamilyMemberInfo.LEVEL_PATRIARCH){
|
||||
mTitleBar.setTitle(R.string.family_currency);
|
||||
llSearch.setVisibility(View.VISIBLE);
|
||||
llSearch.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
FamilyMemberSearchActivity.start(FamilyCurrencyActivity.this,FamilyMemberListActivity.TYPE_CHECK_MEMBER_CURRENCY);
|
||||
}
|
||||
});
|
||||
ivFamilyCurrencyHelp.setVisibility(View.VISIBLE);
|
||||
ivFamilyCurrencyHelp.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
CommonWebViewActivity.start(FamilyCurrencyActivity.this, UriProvider.getFamilyCurrencyHelpUrl());
|
||||
}
|
||||
});
|
||||
tvAction.setText(String.format(
|
||||
getString(R.string.family_currency_transfer),
|
||||
moneyName));
|
||||
tvAction.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
FamilyMemberListActivity.start(FamilyCurrencyActivity.this,FamilyMemberListActivity.TYPE_SELECT_MEMBER);
|
||||
}
|
||||
});
|
||||
|
||||
}else {
|
||||
mTitleBar.setTitle(R.string.family_my_currency);
|
||||
llSearch.setVisibility(View.GONE);
|
||||
ivFamilyCurrencyHelp.setVisibility(View.INVISIBLE);
|
||||
tvAction.setText(String.format(
|
||||
getString(R.string.family_currency_contribution),
|
||||
moneyName));
|
||||
tvAction.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
showContributeDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onLoadData(List<VMBillItemInfo> billItemInfos,int page, int dataSize) {
|
||||
if (page == Constants.PAGE_START){
|
||||
swipeRefresh.setRefreshing(false);
|
||||
if (!ListUtils.isListEmpty(billItemInfos)) {
|
||||
adapter.setNewData(billItemInfos);
|
||||
}
|
||||
}else {
|
||||
if (dataSize > 0) {
|
||||
adapter.loadMoreComplete();
|
||||
adapter.notifyDataSetChanged();
|
||||
}else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
this.selectDate = String.valueOf(System.currentTimeMillis());
|
||||
getMvpPresenter().loadData().subscribe(new SingleObserver<FamilyMoneyManagementInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(FamilyMoneyManagementInfo familyMoneyManagementInfo) {
|
||||
showCard(familyMoneyManagementInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
getMvpPresenter().onRefreshRecordList(selectDate);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
getMvpPresenter().onLoadMoreRecordList(selectDate);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void showErrorView(String message) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refreshData() {
|
||||
onRefresh();
|
||||
}
|
||||
|
||||
private void showContributeDialog(){
|
||||
FamilyContributionDialog dialog = new FamilyContributionDialog(this, getMvpPresenter().getFamilyMoneyManagementInfo());
|
||||
dialog.setOnOperationListener(new FamilyContributionDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog, double count) {
|
||||
dialog.dismiss();
|
||||
getMvpPresenter().contributionCurrency(count)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familycurrencyactivity_02));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
}
|
@@ -1,179 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.netease.nim.uikit.common.util.sys.NetworkUtil;
|
||||
import com.scwang.smartrefresh.layout.SmartRefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadmoreListener;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyGameListActivityView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyGameListPresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyGameListAdapter;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGameInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyGameListPresenter.class)
|
||||
public class FamilyGameListActivity extends BaseMvpActivity<IFamilyGameListActivityView, FamilyGameListPresenter>
|
||||
implements IFamilyGameListActivityView {
|
||||
|
||||
private SmartRefreshLayout swipeRefresh;
|
||||
private RecyclerView recyclerView;
|
||||
private FamilyGameListAdapter adapter;
|
||||
|
||||
|
||||
public static void start(Activity activity) {
|
||||
Intent intent = new Intent(activity, FamilyGameListActivity.class);
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_game_list);
|
||||
|
||||
initTitleBar(getString(R.string.family_games));
|
||||
|
||||
|
||||
swipeRefresh = findViewById(R.id.swipe_refresh);
|
||||
swipeRefresh.setEnableLoadmore(true);
|
||||
swipeRefresh.setEnableRefresh(true);
|
||||
swipeRefresh.setOnRefreshLoadmoreListener(new OnRefreshLoadmoreListener() {
|
||||
@Override
|
||||
public void onLoadmore(RefreshLayout refreshlayout) {
|
||||
if (!NetworkUtil.isNetAvailable(FamilyGameListActivity.this)) {
|
||||
swipeRefresh.finishLoadmore();
|
||||
return;
|
||||
}
|
||||
List<FamilyGameInfo> data = adapter.getData();
|
||||
if (ListUtils.isListEmpty(data)) {
|
||||
swipeRefresh.finishLoadmore();
|
||||
return;
|
||||
}
|
||||
getMvpPresenter().loadMoreData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh(RefreshLayout refreshlayout) {
|
||||
if (!NetworkUtil.isNetAvailable(FamilyGameListActivity.this)) {
|
||||
swipeRefresh.finishRefresh();
|
||||
return;
|
||||
}
|
||||
getMvpPresenter().refreshData();
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(this, 4));
|
||||
adapter = new FamilyGameListAdapter(this, null);
|
||||
View headerView = LayoutInflater.from(this).inflate(R.layout.layout_search_header, null,false);
|
||||
adapter.addHeaderView(headerView);
|
||||
adapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
FamilyGameInfo familyGameInfo = (FamilyGameInfo) adapter.getData().get(position);
|
||||
if (FamilyModel.Instance().getMyFamily() != null) {
|
||||
FamilyGameInfo gameInfo = (FamilyGameInfo) adapter.getData().get(position);
|
||||
CommonWebViewActivity.start(FamilyGameListActivity.this, gameInfo.getLink());
|
||||
}else {
|
||||
toast(ResUtil.getString(R.string.view_activity_familygamelistactivity_01));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
requestFamilyInfo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 这里获取家族信息,决定是否能使用游戏
|
||||
*/
|
||||
private void requestFamilyInfo() {
|
||||
if (FamilyModel.Instance().getMyFamily() == null) {
|
||||
return;
|
||||
}
|
||||
FamilyModel.Instance().loadFamilySimpleInfo(
|
||||
FamilyModel.Instance().getMyFamily().getFamilyId()
|
||||
)
|
||||
.compose(bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<FamilyInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(FamilyInfo familyInfo) {
|
||||
if (!familyInfo.isOpenGame()){
|
||||
toast(ResUtil.getString(R.string.view_activity_familygamelistactivity_02));
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
getMvpPresenter().refreshData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadData(List<FamilyGameInfo> data, int page) {
|
||||
if (!ListUtils.isListEmpty(data)) {
|
||||
hideStatus();
|
||||
if (page == Constants.PAGE_START) {
|
||||
adapter.setNewData(data);
|
||||
swipeRefresh.finishRefresh();
|
||||
} else {
|
||||
adapter.addData(data);
|
||||
swipeRefresh.finishLoadmore();
|
||||
}
|
||||
} else {
|
||||
if (page == Constants.PAGE_START) {
|
||||
swipeRefresh.finishRefresh();
|
||||
showNoData(R.drawable.icon_common_failure, getText(R.string.text_my_master_and_apprentices_no_data));
|
||||
} else {
|
||||
swipeRefresh.finishLoadmore();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadDataFail(String error, int page) {
|
||||
if (page == Constants.PAGE_START) {
|
||||
swipeRefresh.finishRefresh();
|
||||
showNoData(R.drawable.icon_common_failure, getText(R.string.text_my_master_and_apprentices_no_data));
|
||||
} else {
|
||||
swipeRefresh.finishLoadmore();
|
||||
}
|
||||
toast(error);
|
||||
}
|
||||
}
|
@@ -1,793 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Bundle;
|
||||
import android.text.SpannableString;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.StyleSpan;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.common.util.Utils;
|
||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||
import com.yizhuan.erban.constants.BundleKeys;
|
||||
import com.yizhuan.erban.family.presenter.FamilyHomePresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyGamesAdapter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyGroupAdapter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyMemberAdapter;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyDisbandDialog;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyGuideDialog;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyJoinDialog;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyMenuDialog;
|
||||
import com.yizhuan.erban.family.view.fragment.FamilyEmptyFragment;
|
||||
import com.yizhuan.erban.friend.view.SelectFriendActivity;
|
||||
import com.yizhuan.erban.home.view.IFamilyHomeActivityView;
|
||||
import com.yizhuan.erban.team.view.CreateTeamMessageActivity;
|
||||
import com.yizhuan.erban.team.view.NimTeamMessageActivity;
|
||||
import com.yizhuan.erban.ui.user.activity.UserInfoActivity;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.ShareDialog;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.layoutmanager.FullyLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGameInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGroupInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
|
||||
import com.yizhuan.xchat_android_core.share.ShareModel;
|
||||
import com.yizhuan.xchat_android_core.share.bean.SessionType;
|
||||
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.FormatUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
import com.yizhuan.xchat_android_library.widget.DrawableCenterTextView;
|
||||
|
||||
import cn.sharesdk.framework.Platform;
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyHomePresenter.class)
|
||||
public class FamilyHomeActivity extends BaseMvpActivity<IFamilyHomeActivityView, FamilyHomePresenter>
|
||||
implements IFamilyHomeActivityView, View.OnClickListener, ShareDialog.OnShareDialogItemClick {
|
||||
|
||||
private final String share_pref_is_first_in_family = "share_pref_is_first_in_family";
|
||||
|
||||
private ImageView ivFamilyBg;
|
||||
private RoundedImageView rivCover;
|
||||
private TextView tvName;
|
||||
private TextView tvId;
|
||||
private TextView tvMemberCount;
|
||||
private DrawableCenterTextView tvFamilyManage;
|
||||
private LinearLayout llMyFamilyCurrency;
|
||||
private TextView tvMyFamilyCurrency;
|
||||
private LinearLayout llFamilyPatriarch;
|
||||
private CircleImageView civPatriarchAvatar;
|
||||
private TextView tvPatriarchName;
|
||||
private LinearLayout llFamilyGames;
|
||||
private LinearLayout llFamilyMember;
|
||||
private TextView tvFamilyMemberTitle;
|
||||
private TextView tvFamilyGroupTitle;
|
||||
private TextView tvCreateGroup;
|
||||
private RecyclerView rvFamilyGroupList;
|
||||
private LinearLayout llNoGroup;
|
||||
private DrawableCenterTextView rlJoinFamily;
|
||||
private TextView tvAllMember;
|
||||
|
||||
private FamilyGamesAdapter gamesAdapter;
|
||||
private FamilyMemberAdapter memberAdapter;
|
||||
private FamilyGroupAdapter groupAdapter;
|
||||
|
||||
private String familyId;
|
||||
private ShareDialog shareDialog;
|
||||
|
||||
public static void start(Context activity,String familyId) {
|
||||
Intent intent = new Intent(activity,FamilyHomeActivity.class);
|
||||
if(familyId != null){
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString(BundleKeys.KEY_EXTRA_1, familyId);
|
||||
intent.putExtras(bundle);
|
||||
}
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
familyId = getIntent().getStringExtra(BundleKeys.KEY_EXTRA_1);
|
||||
if(familyId == null){
|
||||
showNoData();
|
||||
} else {
|
||||
showLoading();
|
||||
loadFamilyInfo(familyId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
familyId = getIntent().getStringExtra(BundleKeys.KEY_EXTRA_1);
|
||||
setContentView(R.layout.activity_family_home);
|
||||
initTitleBar("");
|
||||
|
||||
ivFamilyBg = findViewById(R.id.iv_family_bg);
|
||||
rivCover = findViewById(R.id.riv_cover);
|
||||
tvName = findViewById(R.id.tv_name);
|
||||
tvId = findViewById(R.id.tv_id);
|
||||
tvMemberCount = findViewById(R.id.tv_member_count);
|
||||
|
||||
tvFamilyManage = findViewById(R.id.tv_family_manage);
|
||||
|
||||
llMyFamilyCurrency = findViewById(R.id.ll_my_family_currency);
|
||||
tvMyFamilyCurrency = findViewById(R.id.tv_my_family_currency);
|
||||
|
||||
llFamilyPatriarch = findViewById(R.id.ll_family_patriarch);
|
||||
civPatriarchAvatar = findViewById(R.id.civ_patriarch_avatar);
|
||||
tvPatriarchName = findViewById(R.id.tv_patriarch_name);
|
||||
|
||||
llFamilyGames = findViewById(R.id.ll_family_games);
|
||||
RecyclerView rvFamilyGameList = findViewById(R.id.rv_family_game_list);
|
||||
|
||||
tvAllMember = findViewById(R.id.tv_all_member);
|
||||
llFamilyMember = findViewById(R.id.ll_family_member);
|
||||
tvFamilyMemberTitle = findViewById(R.id.tv_family_member_title);
|
||||
RecyclerView rvFamilyMemberList = findViewById(R.id.rv_family_member_list);
|
||||
|
||||
tvFamilyGroupTitle = findViewById(R.id.tv_family_group_title);
|
||||
tvCreateGroup = findViewById(R.id.tv_create_group);
|
||||
rvFamilyGroupList = findViewById(R.id.rv_family_group_list);
|
||||
llNoGroup = findViewById(R.id.ll_no_group);
|
||||
|
||||
rlJoinFamily = findViewById(R.id.rl_join_family);
|
||||
|
||||
rvFamilyGameList.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
|
||||
rvFamilyGameList.addItemDecoration(new ColorDecoration(Color.TRANSPARENT, Utils.dip2px(this, 20), 0, false));
|
||||
gamesAdapter = new FamilyGamesAdapter(this, null);
|
||||
gamesAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
if (getMvpPresenter().getFamilyInfo().getEnterStatus() == FamilyInfo.STATUS_IN_FAMILY) {
|
||||
FamilyGameInfo gameInfo = (FamilyGameInfo) adapter.getData().get(position);
|
||||
CommonWebViewActivity.start(FamilyHomeActivity.this, gameInfo.getLink());
|
||||
} else {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_01));
|
||||
}
|
||||
});
|
||||
rvFamilyGameList.setAdapter(gamesAdapter);
|
||||
|
||||
rvFamilyMemberList.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
|
||||
rvFamilyMemberList.addItemDecoration(new ColorDecoration(Color.TRANSPARENT, Utils.dip2px(this, 20), 0, false));
|
||||
memberAdapter = new FamilyMemberAdapter(this, null);
|
||||
memberAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
FamilyMemberInfo memberInfo = (FamilyMemberInfo) adapter.getData().get(position);
|
||||
UserInfoActivity.Companion.start(FamilyHomeActivity.this, memberInfo.getUid());
|
||||
});
|
||||
rvFamilyMemberList.setAdapter(memberAdapter);
|
||||
|
||||
rvFamilyGroupList.setLayoutManager(new FullyLinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
|
||||
rvFamilyGroupList.addItemDecoration(new ColorDecoration(getResources().getColor(R.color.color_F1F1F1), 0, 1, false));
|
||||
groupAdapter = new FamilyGroupAdapter(this, null);
|
||||
groupAdapter.setActionListener(new FamilyGroupAdapter.ActionListener() {
|
||||
@Override
|
||||
public void onJoin(FamilyGroupInfo groupInfo) {
|
||||
joinFamilyGroup(groupInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGotoGroup(FamilyGroupInfo groupInfo) {
|
||||
NimTeamMessageActivity.start(FamilyHomeActivity.this, groupInfo.getTid());
|
||||
}
|
||||
});
|
||||
|
||||
rvFamilyGroupList.setAdapter(groupAdapter);
|
||||
|
||||
}
|
||||
|
||||
private void showFamilyManage(boolean isShow) {
|
||||
if (isShow) {
|
||||
tvFamilyManage.setVisibility(View.VISIBLE);
|
||||
tvFamilyManage.setOnClickListener(this);
|
||||
} else {
|
||||
tvFamilyManage.setVisibility(View.GONE);
|
||||
tvFamilyManage.setOnClickListener(null);
|
||||
}
|
||||
}
|
||||
|
||||
private void showFamilyView(FamilyInfo data) {
|
||||
if (null == data) {
|
||||
return;
|
||||
}
|
||||
if (!TextUtils.isEmpty(data.getBackground())) {
|
||||
GlideApp.with(this)
|
||||
.load(data.getBackground())
|
||||
.dontAnimate()
|
||||
.into(ivFamilyBg);
|
||||
} else {
|
||||
GlideApp.with(this)
|
||||
.load(R.mipmap.bg_family_home)
|
||||
.dontAnimate()
|
||||
.into(ivFamilyBg);
|
||||
}
|
||||
|
||||
GlideApp.with(this)
|
||||
.load(data.getFamilyIcon())
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.into(rivCover);
|
||||
tvName.setText(data.getFamilyName());
|
||||
tvId.setText(data.getFamilyId());
|
||||
tvMemberCount.setText(String.valueOf(data.getMemberCount()));
|
||||
|
||||
if (ListUtils.isListEmpty(data.getGames()) || !data.isOpenGame()) {
|
||||
llFamilyGames.setVisibility(View.GONE);
|
||||
} else {
|
||||
llFamilyGames.setVisibility(View.VISIBLE);
|
||||
gamesAdapter.setNewData(data.getGames());
|
||||
}
|
||||
|
||||
|
||||
if (FamilyInfo.STATUS_NOT_IN_FAMILY == data.getEnterStatus()) {
|
||||
showFamilyManage(false);
|
||||
|
||||
llMyFamilyCurrency.setVisibility(View.GONE);
|
||||
llFamilyPatriarch.setVisibility(View.VISIBLE);
|
||||
llFamilyMember.setVisibility(View.GONE);
|
||||
rlJoinFamily.setVisibility(View.VISIBLE);
|
||||
rlJoinFamily.setOnClickListener(this);
|
||||
showTitleBar(data.getFamilyName(), false);
|
||||
|
||||
tvCreateGroup.setVisibility(View.GONE);
|
||||
|
||||
FamilyMemberInfo patriarch = data.getLeader();
|
||||
GlideApp.with(this)
|
||||
.load(patriarch.getIcon())
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.into(civPatriarchAvatar);
|
||||
|
||||
tvPatriarchName.setText(patriarch.getName());
|
||||
llFamilyPatriarch.setOnClickListener(v ->
|
||||
UserInfoActivity.Companion.start(FamilyHomeActivity.this, patriarch.getUid())
|
||||
);
|
||||
|
||||
} else {
|
||||
|
||||
llMyFamilyCurrency.setVisibility(View.VISIBLE);
|
||||
llMyFamilyCurrency.setOnClickListener(this);
|
||||
llFamilyPatriarch.setVisibility(View.GONE);
|
||||
llFamilyMember.setVisibility(View.VISIBLE);
|
||||
tvAllMember.setOnClickListener(this);
|
||||
rlJoinFamily.setVisibility(View.GONE);
|
||||
|
||||
showTitleBar(getString(R.string.family_mine), true);
|
||||
|
||||
if (data.getPosition() == FamilyInfo.LEVEL_PATRIARCH) {
|
||||
showFamilyManage(true);
|
||||
tvCreateGroup.setVisibility(View.VISIBLE);
|
||||
tvCreateGroup.setOnClickListener(this);
|
||||
showFamilyGuide();
|
||||
|
||||
} else {
|
||||
showFamilyManage(false);
|
||||
tvCreateGroup.setVisibility(View.GONE);
|
||||
tvCreateGroup.setOnClickListener(null);
|
||||
}
|
||||
|
||||
if (data.isOpenMoney()) {
|
||||
llMyFamilyCurrency.setVisibility(View.VISIBLE);
|
||||
tvMyFamilyCurrency.setText(String.format(
|
||||
getResources().getString(R.string.family_currency_count),
|
||||
FormatUtils.formatToShortDown(data.getFamilyMoney()),
|
||||
data.getMoneyName()));
|
||||
} else {
|
||||
llMyFamilyCurrency.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
tvFamilyMemberTitle.setText(String.format(
|
||||
getResources().getString(R.string.family_member_title),
|
||||
String.valueOf(data.getMemberCount())
|
||||
));
|
||||
memberAdapter.setNewData(data.getMembers());
|
||||
|
||||
}
|
||||
|
||||
tvFamilyGroupTitle.setText(String.format(
|
||||
getResources().getString(R.string.family_group_title),
|
||||
String.valueOf(data.getGroups().size())
|
||||
));
|
||||
|
||||
if (!ListUtils.isListEmpty(data.getGroups())) {
|
||||
llNoGroup.setVisibility(View.GONE);
|
||||
rvFamilyGroupList.setVisibility(View.VISIBLE);
|
||||
groupAdapter.setNewData(data.getGroups());
|
||||
} else {
|
||||
llNoGroup.setVisibility(View.VISIBLE);
|
||||
rvFamilyGroupList.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void showTitleBar(String title, boolean isMore) {
|
||||
mTitleBar.setTitle(title);
|
||||
mTitleBar.removeAllActions();
|
||||
|
||||
mTitleBar.addAction(new TitleBar.ImageAction(R.drawable.ic_family_share) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
shareDialog = new ShareDialog(FamilyHomeActivity.this);
|
||||
shareDialog.setOnShareDialogItemClick(FamilyHomeActivity.this);
|
||||
shareDialog.show();
|
||||
}
|
||||
});
|
||||
|
||||
if (isMore)
|
||||
mTitleBar.addAction(new TitleBar.ImageAction(R.drawable.ic_family_more) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
showMenuDialog(view);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void showMenuDialog(View view) {
|
||||
FamilyMenuDialog dialog = new FamilyMenuDialog(this, getMvpPresenter().getFamilyInfo(), view);
|
||||
dialog.setOnMenuClickListener(new FamilyMenuDialog.OnMenuClickListener() {
|
||||
@Override
|
||||
public void onExitFamily(DialogInterface dialog, FamilyInfo familyInfo) {
|
||||
dialog.dismiss();
|
||||
getDialogManager().showOkCancelWithTitleDialog(new String[]{ResUtil.getString(R.string.view_activity_familyhomeactivity_02), ResUtil.getString(R.string.view_activity_familyhomeactivity_03), ResUtil.getString(R.string.view_activity_familyhomeactivity_04)},
|
||||
() -> getMvpPresenter().exitFamily().subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_05));
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
// Toast.makeText(FamilyHomeActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(e.getMessage());
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisbandFamily(DialogInterface dialog, FamilyInfo familyInfo) { //解散家族
|
||||
dialog.dismiss();
|
||||
FamilyDisbandDialog disbandFamilyDialog = new FamilyDisbandDialog(FamilyHomeActivity.this);
|
||||
disbandFamilyDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInviteFriends(DialogInterface dialog, FamilyInfo familyInfo) {
|
||||
FamilySelectFriendActivity.start(FamilyHomeActivity.this, (activity, uid) ->
|
||||
getMvpPresenter().inviteFriendToFamily(uid)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_06));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
}));
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if(familyId == null){
|
||||
showNoData();
|
||||
} else {
|
||||
showLoading();
|
||||
loadFamilyInfo(familyId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == SelectFriendActivity.CODE_REQUEST_TO_SHARE_FAMILY &&
|
||||
resultCode == RESULT_OK) {
|
||||
String targetUid = data.getStringExtra(SelectFriendActivity.EXTRA_TARGET_UID);
|
||||
String nick = data.getStringExtra(SelectFriendActivity.EXTRA_TARGET_NAME);
|
||||
int sessionType = data.getIntExtra(SelectFriendActivity.EXTRA_SESSION_TYPE, SessionType.P2P);
|
||||
IMNetEaseManager.get().sendSharingFamilyMessage(sessionType, targetUid, getMvpPresenter().getFamilyInfo());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadData(FamilyInfo data) {
|
||||
hideStatus();
|
||||
showFamilyView(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showNoData(int drawable, CharSequence charSequence) {
|
||||
if (!checkActivityValid()) {
|
||||
return;
|
||||
}
|
||||
|
||||
View status = findViewById(R.id.status_layout);
|
||||
if (status == null || status.getId() <= 0) {
|
||||
MLog.error(this, "xuwakao, had not set layout id ");
|
||||
return;
|
||||
}
|
||||
|
||||
FamilyEmptyFragment fragment = FamilyEmptyFragment.newInstance(0 - mTitleBar.getmHeight());
|
||||
fragment.setOnClickListener(v -> FamilyPlazaActivity.start(FamilyHomeActivity.this));
|
||||
getSupportFragmentManager().beginTransaction().replace(status.getId(), fragment, STATUS_TAG).commitAllowingStateLoss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showErrorView(String message) {
|
||||
toast(message);
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reloadMyFamilyInfo(String familyId) {
|
||||
loadFamilyInfo(familyId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
finish();
|
||||
}
|
||||
|
||||
private void loadFamilyInfo(String familyId) {
|
||||
getMvpPresenter().loadData(familyId).subscribe(new SingleObserver<FamilyInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(FamilyInfo familyInfo) {
|
||||
mTitleBar.setVisibility(View.VISIBLE);
|
||||
onLoadData(familyInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
hideStatus();
|
||||
showErrorView(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == tvFamilyManage.getId()) {
|
||||
FamilyManageActivity.start(this);
|
||||
} else if (id == llMyFamilyCurrency.getId()) {
|
||||
FamilyCurrencyActivity.start(this);
|
||||
} else if (id == tvAllMember.getId()) {
|
||||
FamilyMemberListActivity.start(this, FamilyMemberListActivity.TYPE_SHOW_MEMBER);
|
||||
} else if (id == tvCreateGroup.getId()) {
|
||||
//去创建群组
|
||||
CreateTeamMessageActivity.start(this);
|
||||
} else if (id == rlJoinFamily.getId()) {
|
||||
joinFamily(getMvpPresenter().getFamilyInfo());
|
||||
}
|
||||
}
|
||||
|
||||
private void joinFamily(FamilyInfo familyInfo) {
|
||||
if (null != FamilyModel.Instance().getMyFamily()) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_08));
|
||||
return;
|
||||
}
|
||||
if (familyInfo.getVerifyType() == FamilyInfo.VERIFY_ON) {
|
||||
showJoinFamilyDialog(getMvpPresenter().getFamilyInfo());
|
||||
} else {
|
||||
getMvpPresenter().joinFamily(null)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_09));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 加入家族验证弹框
|
||||
*/
|
||||
private void showJoinFamilyDialog(FamilyInfo familyInfo) {
|
||||
FamilyJoinDialog dialog = new FamilyJoinDialog(this);
|
||||
String str = String.format(getResources().getString(R.string.family_join_tip),
|
||||
"\"" + familyInfo.getFamilyName() + "\"");
|
||||
SpannableString spannableString = new SpannableString(str);
|
||||
StyleSpan styleSpan = new StyleSpan(Typeface.BOLD);
|
||||
spannableString.setSpan(styleSpan, str.indexOf("\""), str.lastIndexOf("\"") + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
dialog.setTipMessage(spannableString);
|
||||
dialog.setDefaultVerifyMessage(getResources().getString(R.string.family_join_hint));
|
||||
dialog.setOnOperationListener(new FamilyJoinDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog, String str) {
|
||||
dialog.dismiss();
|
||||
getMvpPresenter().joinFamily(str)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_010));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
private void joinFamilyGroup(FamilyGroupInfo groupInfo) {
|
||||
if (getMvpPresenter().getFamilyInfo().getEnterStatus() == FamilyInfo.STATUS_IN_FAMILY) {
|
||||
if (groupInfo.isVerify()) {
|
||||
showInFamilyJoinDialog(groupInfo);
|
||||
} else {
|
||||
getMvpPresenter().joinFamilyGroup(
|
||||
String.valueOf(groupInfo.getId()),
|
||||
""
|
||||
).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_011));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
} else if (getMvpPresenter().getFamilyInfo().getEnterStatus() == FamilyInfo.STATUS_NOT_IN_FAMILY) {
|
||||
if (null != FamilyModel.Instance().getMyFamily()) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_012));
|
||||
return;
|
||||
}
|
||||
if (getMvpPresenter().getFamilyInfo().getVerifyType() == FamilyInfo.VERIFY_ON || groupInfo.isVerify()) {
|
||||
//凡是有一个需要验证,弹出验证dailog
|
||||
showNotInFamilyJoinDialog(groupInfo);
|
||||
} else {
|
||||
//都不需要验证的情况 直接进群
|
||||
getMvpPresenter().joinFamilyGroup(
|
||||
String.valueOf(groupInfo.getId()),
|
||||
null
|
||||
).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_013));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 在家族中加入需要验证的群组
|
||||
*/
|
||||
private void showInFamilyJoinDialog(FamilyGroupInfo groupInfo) {
|
||||
FamilyJoinDialog dialog = new FamilyJoinDialog(this);
|
||||
String str = String.format(getResources().getString(R.string.family_join_tip),
|
||||
"\"" + groupInfo.getName() + "\"");
|
||||
SpannableString spannableString = new SpannableString(str);
|
||||
StyleSpan styleSpan = new StyleSpan(Typeface.BOLD);
|
||||
spannableString.setSpan(styleSpan, str.indexOf("\""), str.lastIndexOf("\"") + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
dialog.setTipMessage(spannableString);
|
||||
dialog.setDefaultVerifyMessage(getResources().getString(R.string.family_group_join_hint));
|
||||
dialog.setOnOperationListener(new FamilyJoinDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog, String str) {
|
||||
dialog.dismiss();
|
||||
getMvpPresenter().joinFamilyGroup(
|
||||
String.valueOf(groupInfo.getId()),
|
||||
str
|
||||
).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_014));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* 不在家族中加入家族的群
|
||||
*/
|
||||
private void showNotInFamilyJoinDialog(FamilyGroupInfo groupInfo) {
|
||||
FamilyJoinDialog dialog = new FamilyJoinDialog(this);
|
||||
String str = String.format(getResources().getString(R.string.family_group_join_tip_1),
|
||||
"\"" + getMvpPresenter().getFamilyInfo().getFamilyName() + "\"");
|
||||
SpannableString spannableString = new SpannableString(str);
|
||||
StyleSpan styleSpan = new StyleSpan(Typeface.BOLD);
|
||||
spannableString.setSpan(styleSpan, str.indexOf("\""), str.lastIndexOf("\"") + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
dialog.setTipMessage(spannableString);
|
||||
dialog.setDefaultVerifyMessage(getResources().getString(R.string.family_group_join_hint));
|
||||
|
||||
dialog.setOnOperationListener(new FamilyJoinDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog, String str) {
|
||||
dialog.dismiss();
|
||||
getMvpPresenter().joinFamilyGroup(
|
||||
String.valueOf(groupInfo.getId()),
|
||||
str
|
||||
).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyhomeactivity_015));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onInAppSharingItemClick() {
|
||||
if (shareDialog != null && shareDialog.isShowing()) {
|
||||
shareDialog.dismiss();
|
||||
}
|
||||
SelectFriendActivity.startForSharingFamily(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSharePlatformClick(Platform platform) {
|
||||
FamilyInfo familyInfo = getMvpPresenter().getFamilyInfo();
|
||||
if (familyInfo != null) {
|
||||
ShareModel.get().shareFamily(
|
||||
platform, familyInfo.getFamilyId(),
|
||||
familyInfo.getFamilyIcon(),
|
||||
familyInfo.getFamilyName()
|
||||
)
|
||||
.compose(bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(s);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private void showFamilyGuide() {
|
||||
if (!isFirstInFamily()) {
|
||||
return;
|
||||
}
|
||||
|
||||
FamilyGuideDialog guideDialog = new FamilyGuideDialog(this);
|
||||
guideDialog.show();
|
||||
|
||||
setFirstInFamily(false);
|
||||
}
|
||||
|
||||
private boolean isFirstInFamily() {
|
||||
// return (boolean) SharedPreferenceUtils.get(share_pref_is_first_in_family, new Boolean(true));
|
||||
return false;
|
||||
}
|
||||
|
||||
private void setFirstInFamily(boolean firstInFamily) {
|
||||
SharedPreferenceUtils.put(share_pref_is_first_in_family, new Boolean(firstInFamily));
|
||||
}
|
||||
|
||||
}
|
@@ -1,227 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.jph.takephoto.model.TResult;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.ErbanTakePhotoActivity;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyInfoView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyInfoPresenter;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyDisbandDialog;
|
||||
import com.yizhuan.erban.ui.widget.ButtonItem;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_core.file.FileModel;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.widget.IOSSwitchView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyInfoPresenter.class)
|
||||
public class FamilyInfoActivity extends BaseMvpActivity<IFamilyInfoView,FamilyInfoPresenter>
|
||||
implements IFamilyInfoView, View.OnClickListener,ErbanTakePhotoActivity.TakePhotoCallBack {
|
||||
|
||||
private LinearLayout llFamilyAvatar;
|
||||
private RoundedImageView rivFamilyCover;
|
||||
private LinearLayout llFamilyName;
|
||||
private TextView tvFamilyName;
|
||||
private TextView tvFamilyDisband;
|
||||
private IOSSwitchView svIdentityCheck;
|
||||
|
||||
private FamilyInfo familyInfo;
|
||||
|
||||
public static void start(Activity activity) {
|
||||
Intent intent = new Intent(activity, FamilyInfoActivity.class);
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_info);
|
||||
initTitleBar(getString(R.string.family_info));
|
||||
|
||||
|
||||
llFamilyAvatar = (LinearLayout) findViewById(R.id.ll_family_avatar);
|
||||
rivFamilyCover = (RoundedImageView) findViewById(R.id.riv_family_cover);
|
||||
llFamilyName = (LinearLayout) findViewById(R.id.ll_family_name);
|
||||
tvFamilyName = (TextView) findViewById(R.id.tv_family_name);
|
||||
tvFamilyDisband = (TextView) findViewById(R.id.tv_family_disband);
|
||||
svIdentityCheck = (IOSSwitchView) findViewById(R.id.sv_identity_check);
|
||||
|
||||
|
||||
llFamilyAvatar.setOnClickListener(this);
|
||||
llFamilyName.setOnClickListener(this);
|
||||
tvFamilyDisband.setOnClickListener(this);
|
||||
svIdentityCheck.setOnSwitchStateChangeListener(new IOSSwitchView.OnSwitchStateChangeListener() {
|
||||
@Override
|
||||
public void onStateSwitched(boolean isOn) {
|
||||
svIdentityCheck.setEnabled(false);
|
||||
getMvpPresenter().changeVerifyStatus(isOn).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyinfoactivity_01));
|
||||
svIdentityCheck.setEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
svIdentityCheck.setEnabled(true);
|
||||
toast(e.getMessage());
|
||||
svIdentityCheck.setOn(!isOn,true,false);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
initData();
|
||||
|
||||
}
|
||||
|
||||
private void initData(){
|
||||
familyInfo = FamilyModel.Instance().getMyFamily();
|
||||
if (familyInfo == null) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyinfoactivity_02));
|
||||
return;
|
||||
}
|
||||
GlideApp.with(this)
|
||||
.load(familyInfo.getFamilyIcon())
|
||||
.dontAnimate()
|
||||
.into(rivFamilyCover);
|
||||
|
||||
tvFamilyName.setText(familyInfo.getFamilyName());
|
||||
if (FamilyInfo.VERIFY_ON == familyInfo.getVerifyType()){
|
||||
svIdentityCheck.setOn(true,false);
|
||||
}else {
|
||||
svIdentityCheck.setOn(false,false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == llFamilyAvatar.getId()){
|
||||
ButtonItem buttonItem = new ButtonItem(ResUtil.getString(R.string.view_activity_familyinfoactivity_03), ()->{
|
||||
ErbanTakePhotoActivity.startToTakePhoto(this,this);
|
||||
});
|
||||
ButtonItem buttonItem1 = new ButtonItem(ResUtil.getString(R.string.view_activity_familyinfoactivity_04), () -> {
|
||||
ErbanTakePhotoActivity.startToSelectPhoto(this,this);
|
||||
});
|
||||
List<ButtonItem> buttonItems = new ArrayList<>();
|
||||
buttonItems.add(buttonItem);
|
||||
buttonItems.add(buttonItem1);
|
||||
getDialogManager().showCommonPopupDialog(buttonItems, ResUtil.getString(R.string.view_activity_familyinfoactivity_05), false);
|
||||
|
||||
}else if (id == llFamilyName.getId()){
|
||||
FamilyTextInputActivity.start(this, familyInfo.getFamilyName(), new FamilyTextInputActivity.CallBack() {
|
||||
@Override
|
||||
public void onModify(String str) {
|
||||
getMvpPresenter().changeFamilyName(str).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
tvFamilyName.setText(str);
|
||||
toast(ResUtil.getString(R.string.view_activity_familyinfoactivity_06));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
}else if (id == tvFamilyDisband.getId()){
|
||||
FamilyDisbandDialog disbandFamilyDialog = new FamilyDisbandDialog(this);
|
||||
disbandFamilyDialog.show();
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************* 照相上传逻辑 ******************************************************/
|
||||
|
||||
public void onUpload(String url) {
|
||||
getDialogManager().dismissDialog();
|
||||
GlideApp.with(FamilyInfoActivity.this)
|
||||
.load(url)
|
||||
.error(R.drawable.default_avatar)
|
||||
.into(rivFamilyCover);
|
||||
|
||||
|
||||
getMvpPresenter().changeFamilyAvatar(url).subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyinfoactivity_07));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void onUploadFail() {
|
||||
toast(ResUtil.getString(R.string.view_activity_familyinfoactivity_08));
|
||||
getDialogManager().dismissDialog();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@Override
|
||||
public void takeSuccess(TResult result) {
|
||||
getDialogManager().showProgressDialog(FamilyInfoActivity.this, ResUtil.getString(R.string.view_activity_familyinfoactivity_09));
|
||||
FileModel.get()
|
||||
.uploadFile(result.getImage().getCompressPath())
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe((url, throwable) -> {
|
||||
if (throwable != null) {
|
||||
onUploadFail();
|
||||
} else {
|
||||
onUpload(url);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void takeFail(TResult result, String msg) {
|
||||
toast(msg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void takeCancel() {
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,140 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilySearchView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyListPresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyWeeklyRankBoardAdapter;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RankingFamilyInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.SizeUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyListPresenter.class)
|
||||
public class FamilyListActivity extends BaseMvpActivity<IFamilySearchView,FamilyListPresenter>
|
||||
implements IFamilySearchView,SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
private RecyclerView recyclerView;
|
||||
private FamilyWeeklyRankBoardAdapter adapter;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context,FamilyListActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_list);
|
||||
initTitleBar(getString(R.string.family_weekly_rank_board));
|
||||
mTitleBar.addAction(new TitleBar.ImageAction(R.drawable.ic_family_list_search) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
FamilySearchActivity.start(FamilyListActivity.this);
|
||||
}
|
||||
});
|
||||
|
||||
swipeRefresh = findViewById(R.id.swipe_refresh);
|
||||
swipeRefresh.setOnRefreshListener(this);
|
||||
|
||||
recyclerView = findViewById(R.id.recycler_view);
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL,false));
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
int marginStart = SizeUtils.dp2px(this, 16);
|
||||
recyclerView.addItemDecoration(new ColorDecoration(getResources().getColor(R.color.color_F1F1F1),
|
||||
0,1, false, marginStart, marginStart));
|
||||
}
|
||||
adapter = new FamilyWeeklyRankBoardAdapter(this, null);
|
||||
// View headerView = LayoutInflater.from(this).inflate(R.layout.layout_search_header, null,false);
|
||||
// adapter.addHeaderView(headerView);
|
||||
adapter.setOnItemClickListener((adapter1, view, position) -> {
|
||||
RankingFamilyInfo familyInfo = adapter.getData().get(position);
|
||||
FamilyHomeActivity.start(FamilyListActivity.this,familyInfo.getId());
|
||||
});
|
||||
adapter.setEnableLoadMore(false);
|
||||
|
||||
recyclerView.setAdapter(adapter);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (ListUtils.isListEmpty(adapter.getData())){
|
||||
swipeRefresh.setRefreshing(true);
|
||||
getMvpPresenter().refreshData().subscribe(new SingleObserver<List<RankingFamilyInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<RankingFamilyInfo> familyInfoList) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
if (familyInfoList != null && familyInfoList.size() > 0) {
|
||||
hideStatus();
|
||||
adapter.setNewData(familyInfoList);
|
||||
adapter.notifyDataSetChanged();
|
||||
} else {
|
||||
showNoData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
showNetworkErr();
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
getMvpPresenter().refreshData().subscribe(new SingleObserver<List<RankingFamilyInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<RankingFamilyInfo> familyInfoList) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
if (familyInfoList != null && familyInfoList.size() > 0) {
|
||||
hideStatus();
|
||||
adapter.setNewData(familyInfoList);
|
||||
adapter.notifyDataSetChanged();
|
||||
} else {
|
||||
showNoData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
showNetworkErr();
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -1,91 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyManageActivityView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyManagePresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyManageAdapter;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyManageItemInfo;
|
||||
import com.yizhuan.xchat_android_core.family.model.FamilyModel;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CreatePresenter(FamilyManagePresenter.class)
|
||||
public class FamilyManageActivity extends BaseMvpActivity<IFamilyManageActivityView,FamilyManagePresenter>
|
||||
implements IFamilyManageActivityView, BaseQuickAdapter.OnItemClickListener{
|
||||
|
||||
private RecyclerView rvFamilyManage;
|
||||
private FamilyManageAdapter familyManageAdapter;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context,FamilyManageActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_manage_activty);
|
||||
initTitleBar(getString(R.string.family_manage_title));
|
||||
|
||||
rvFamilyManage = (RecyclerView) findViewById(R.id.rv_family_manage);
|
||||
rvFamilyManage.setLayoutManager(new LinearLayoutManager(this));
|
||||
//rvFamilyManage.addItemDecoration(new ColorDecoration(getResources().getColor(R.color.color_F5F5F5),1,1,false));
|
||||
|
||||
List<FamilyManageItemInfo> manageItemInfos = new ArrayList<>();
|
||||
|
||||
if (FamilyModel.Instance().getMyFamily().isOpenMoney()) {
|
||||
FamilyManageItemInfo itemInfo = new FamilyManageItemInfo();
|
||||
itemInfo.setId(FamilyManageItemInfo.ID_FAMILY_MANAGE_CURRENCY);
|
||||
itemInfo.setName(ResUtil.getString(R.string.view_activity_familymanageactivity_01));
|
||||
itemInfo.setImg(R.drawable.ic_family_manage_currency);
|
||||
manageItemInfos.add(itemInfo);
|
||||
}
|
||||
|
||||
FamilyManageItemInfo itemInfo2 = new FamilyManageItemInfo();
|
||||
itemInfo2.setId(FamilyManageItemInfo.ID_FAMILY_MANAGE_MEMBER);
|
||||
itemInfo2.setName(ResUtil.getString(R.string.view_activity_familymanageactivity_02));
|
||||
itemInfo2.setImg(R.drawable.ic_family_manage_member);
|
||||
manageItemInfos.add(itemInfo2);
|
||||
|
||||
FamilyManageItemInfo itemInfo3 = new FamilyManageItemInfo();
|
||||
itemInfo3.setId(FamilyManageItemInfo.ID_FAMILY_MANAGE_INFO);
|
||||
itemInfo3.setName(ResUtil.getString(R.string.view_activity_familymanageactivity_03));
|
||||
itemInfo3.setImg(R.drawable.ic_family_manage_info);
|
||||
manageItemInfos.add(itemInfo3);
|
||||
|
||||
familyManageAdapter = new FamilyManageAdapter(manageItemInfos);
|
||||
familyManageAdapter.setOnItemClickListener(this);
|
||||
rvFamilyManage.setAdapter(familyManageAdapter);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
FamilyManageItemInfo itemInfo = (FamilyManageItemInfo) adapter.getData().get(position);
|
||||
if (FamilyManageItemInfo.ID_FAMILY_MANAGE_CURRENCY == itemInfo.getId()){
|
||||
FamilyCurrencyActivity.start(this);
|
||||
|
||||
}else if (FamilyManageItemInfo.ID_FAMILY_MANAGE_MEMBER == itemInfo.getId()){
|
||||
FamilyMemberListActivity.start(this,FamilyMemberListActivity.TYPE_REMOVE_MEMBER);
|
||||
|
||||
}else if (FamilyManageItemInfo.ID_FAMILY_MANAGE_INFO == itemInfo.getId()){
|
||||
FamilyInfoActivity.start(this);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -1,137 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.jay.widget.StickyHeadersLinearLayoutManager;
|
||||
import com.jzxiang.pickerview.TimePickerDialog;
|
||||
import com.jzxiang.pickerview.data.Type;
|
||||
import com.jzxiang.pickerview.listener.OnDateSetListener;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.constants.BundleKeys;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyCurrencyView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyMemberCurrencyPresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyCurrencyBillAdapter;
|
||||
import com.yizhuan.xchat_android_core.Constants;
|
||||
import com.yizhuan.xchat_android_core.family.bean.VMBillItemInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@CreatePresenter(FamilyMemberCurrencyPresenter.class)
|
||||
public class FamilyMemberCurrencyActivity extends BaseMvpActivity<IFamilyCurrencyView,FamilyMemberCurrencyPresenter>
|
||||
implements IFamilyCurrencyView, SwipeRefreshLayout.OnRefreshListener, BaseQuickAdapter.RequestLoadMoreListener, OnDateSetListener {
|
||||
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
private RecyclerView rvFamilyCurrency;
|
||||
private FamilyCurrencyBillAdapter adapter;
|
||||
|
||||
protected TimePickerDialog.Builder mDialogYearMonthDayBuild;
|
||||
|
||||
private String selectDate;
|
||||
private long uid;
|
||||
|
||||
public static void start(Context context, long uid) {
|
||||
Intent intent = new Intent(context, FamilyMemberCurrencyActivity.class);
|
||||
intent.putExtra(BundleKeys.KEY_EXTRA_1, uid);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
uid = getIntent().getLongExtra(BundleKeys.KEY_EXTRA_1,0);
|
||||
setContentView(R.layout.activity_family_member_currency);
|
||||
|
||||
initTitleBar(getString(R.string.family_currency));
|
||||
|
||||
swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
|
||||
swipeRefresh.setOnRefreshListener(this);
|
||||
|
||||
rvFamilyCurrency = (RecyclerView) findViewById(R.id.rv_family_currency);
|
||||
rvFamilyCurrency.setItemAnimator(null);
|
||||
rvFamilyCurrency.setLayoutManager(new StickyHeadersLinearLayoutManager<FamilyCurrencyBillAdapter>(this, LinearLayoutManager.VERTICAL, false));
|
||||
adapter = new FamilyCurrencyBillAdapter(this,null);
|
||||
adapter.setEnableLoadMore(true);
|
||||
adapter.setOnLoadMoreListener(this, rvFamilyCurrency);
|
||||
adapter.setOnDateSelectListener(new FamilyCurrencyBillAdapter.OnDateSelectListener() {
|
||||
@Override
|
||||
public void onDateSelect() {
|
||||
mDialogYearMonthDayBuild.build().show(getSupportFragmentManager(), "year_month");
|
||||
}
|
||||
});
|
||||
rvFamilyCurrency.setAdapter(adapter);
|
||||
|
||||
mDialogYearMonthDayBuild = new TimePickerDialog.Builder()
|
||||
.setType(Type.YEAR_MONTH)
|
||||
.setTitleStringId(ResUtil.getString(R.string.view_activity_familymembercurrencyactivity_01))
|
||||
.setThemeColor(getResources().getColor(R.color.line_background))
|
||||
.setWheelItemTextNormalColor(getResources().getColor(R.color
|
||||
.timetimepicker_default_text_color))
|
||||
.setWheelItemTextSelectorColor(getResources().getColor(R.color.black))
|
||||
.setCallBack(this);
|
||||
|
||||
this.selectDate = String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (ListUtils.isListEmpty(getMvpPresenter().getBillItemInfos())){
|
||||
swipeRefresh.setRefreshing(true);
|
||||
getMvpPresenter().onRefreshRecordList(selectDate, String.valueOf(uid));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
this.selectDate = String.valueOf(System.currentTimeMillis());
|
||||
getMvpPresenter().onRefreshRecordList(selectDate, String.valueOf(uid));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
getMvpPresenter().onLoadMoreRecordList(selectDate, String.valueOf(uid));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDateSet(TimePickerDialog timePickerView, long millseconds) {
|
||||
this.selectDate = String.valueOf(millseconds);
|
||||
getMvpPresenter().onRefreshRecordList(selectDate, String.valueOf(uid));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadData(List<VMBillItemInfo> billItemInfos, int page, int dataSize) {
|
||||
if (page == Constants.PAGE_START){
|
||||
swipeRefresh.setRefreshing(false);
|
||||
adapter.setNewData(billItemInfos);
|
||||
}else {
|
||||
if (dataSize > 0) {
|
||||
adapter.loadMoreComplete();
|
||||
adapter.notifyDataSetChanged();
|
||||
}else {
|
||||
adapter.loadMoreEnd(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showErrorView(String message) {
|
||||
toast(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void refreshData() {
|
||||
|
||||
}
|
||||
}
|
@@ -1,299 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.constants.BundleKeys;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyMemberListView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyMemberListPresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyMemberListAdapter;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyTransferDialog;
|
||||
import com.yizhuan.erban.ui.user.activity.UserInfoActivity;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.memberList.RespFamilymember;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyMemberListPresenter.class)
|
||||
public class FamilyMemberListActivity extends BaseMvpActivity<IFamilyMemberListView, FamilyMemberListPresenter>
|
||||
implements IFamilyMemberListView, View.OnClickListener, BaseQuickAdapter.RequestLoadMoreListener, SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
public static final int TYPE_SHOW_MEMBER = 1;// 查看成员方式
|
||||
public static final int TYPE_SELECT_MEMBER = 2;//选择成员方式
|
||||
public static final int TYPE_REMOVE_MEMBER = 3;//移除成员方式
|
||||
public static final int TYPE_CHECK_MEMBER_CURRENCY = 4;//查看家族成员家族币记录
|
||||
|
||||
private LinearLayout llSearch;
|
||||
private TextView tvMemberCount;
|
||||
private RecyclerView rvMember;
|
||||
private FamilyMemberListAdapter familyMemberListAdapter;
|
||||
private int optType = TYPE_SHOW_MEMBER;
|
||||
private SwipeRefreshLayout swipeRefresh;
|
||||
|
||||
private TitleBar.Action searchAction = new TitleBar.Action() {
|
||||
@Override
|
||||
public String getText() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDrawable() {
|
||||
return R.drawable.ic_family_search;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTextColor() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTextDrawableLeft() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
FamilyMemberSearchActivity.start(FamilyMemberListActivity.this, optType);
|
||||
}
|
||||
};
|
||||
public static void start(Activity activity, int optType) {
|
||||
Intent intent = new Intent(activity, FamilyMemberListActivity.class);
|
||||
Bundle b = new Bundle();
|
||||
b.putInt(BundleKeys.KEY_EXTRA_1, optType);
|
||||
intent.putExtras(b);
|
||||
activity.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
optType = getIntent().getIntExtra(BundleKeys.KEY_EXTRA_1, TYPE_SHOW_MEMBER);
|
||||
setContentView(R.layout.activity_family_list_member);
|
||||
|
||||
initTitleBar(getString(R.string.family_member_list));
|
||||
|
||||
llSearch = (LinearLayout) findViewById(R.id.ll_search);
|
||||
tvMemberCount = (TextView) findViewById(R.id.tv_member_count);
|
||||
rvMember = (RecyclerView) findViewById(R.id.rv_member);
|
||||
|
||||
|
||||
swipeRefresh = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh);
|
||||
swipeRefresh.setOnRefreshListener(this);
|
||||
rvMember.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
|
||||
familyMemberListAdapter = new FamilyMemberListAdapter(this, null, optType);
|
||||
familyMemberListAdapter.setEnableLoadMore(true);
|
||||
familyMemberListAdapter.setOnLoadMoreListener(this, rvMember);
|
||||
familyMemberListAdapter.setActionListener(new FamilyMemberListAdapter.ActionListener() {
|
||||
@Override
|
||||
public void onRemoveMember(FamilyMemberInfo familyMemberInfo) {
|
||||
//移除成员
|
||||
showRemoveFamilyMemberDialog(familyMemberInfo);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransferCurrency(FamilyMemberInfo familyMemberInfo) {
|
||||
showTransferDialog(familyMemberInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClickAvatar(FamilyMemberInfo item) {
|
||||
UserInfoActivity.Companion.start(FamilyMemberListActivity.this, item.getUid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCheckMemberCurrency(FamilyMemberInfo item) {
|
||||
|
||||
}
|
||||
});
|
||||
rvMember.setAdapter(familyMemberListAdapter);
|
||||
|
||||
mTitleBar.addAction(searchAction);
|
||||
llSearch.setOnClickListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (ListUtils.isListEmpty(this.familyMemberListAdapter.getData())) {
|
||||
refreshData();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void refreshData() {
|
||||
showLoading();
|
||||
swipeRefresh.setRefreshing(true);
|
||||
getMvpPresenter().refreshData()
|
||||
.subscribe(new SingleObserver<RespFamilymember>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(RespFamilymember respFamilymember) {
|
||||
swipeRefresh.setRefreshing(false);
|
||||
tvMemberCount.setText(String.format(
|
||||
getString(R.string.family_member_label2),
|
||||
String.valueOf(respFamilymember.getCount())
|
||||
));
|
||||
|
||||
onLoadData(respFamilymember.getMembers());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
swipeRefresh.setRefreshing(false);
|
||||
showNetworkErr();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == llSearch.getId()) {
|
||||
FamilyMemberSearchActivity.start(this, optType);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadData(List<FamilyMemberInfo> memberInfoList) {
|
||||
if (!ListUtils.isListEmpty(memberInfoList)) {
|
||||
hideStatus();
|
||||
familyMemberListAdapter.setNewData(memberInfoList);
|
||||
familyMemberListAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
showNoData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadDate() {
|
||||
super.onReloadDate();
|
||||
refreshData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reloadFamilyMember() {
|
||||
refreshData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
getMvpPresenter().loadMoreData()
|
||||
.subscribe(new SingleObserver<RespFamilymember>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(RespFamilymember respFamilymember) {
|
||||
List<FamilyMemberInfo> memberInfos = respFamilymember.getMembers();
|
||||
if (!ListUtils.isListEmpty(memberInfos)) {
|
||||
familyMemberListAdapter.addData(memberInfos);
|
||||
familyMemberListAdapter.loadMoreComplete();
|
||||
} else {
|
||||
familyMemberListAdapter.loadMoreEnd(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
refreshData();
|
||||
}
|
||||
|
||||
|
||||
private void showTransferDialog(FamilyMemberInfo familyMemberInfo) {
|
||||
FamilyTransferDialog dialog = new FamilyTransferDialog(this, getMvpPresenter().getFamilyInfo(), familyMemberInfo);
|
||||
dialog.setOnOperationListener(new FamilyTransferDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog, FamilyMemberInfo familyMemberInfo, double count) {
|
||||
dialog.dismiss();
|
||||
getMvpPresenter().transferCurrency(familyMemberInfo, count)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(getResources().getString(R.string.family_transfer_currency_success));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
|
||||
private void showRemoveFamilyMemberDialog(FamilyMemberInfo familyMemberInfo) {
|
||||
getDialogManager().showOkCancelWithTitleDialog(new String[]{ResUtil.getString(R.string.view_activity_familymemberlistactivity_01), ResUtil.getString(R.string.view_activity_familymemberlistactivity_02), ResUtil.getString(R.string.view_activity_familymemberlistactivity_03),
|
||||
familyMemberInfo.getName(), ResUtil.getString(R.string.view_activity_familymemberlistactivity_04)},
|
||||
() -> getMvpPresenter().removeFamilyMember(familyMemberInfo)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familymemberlistactivity_05));
|
||||
refreshData();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
}));
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
@@ -1,317 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.constants.BundleKeys;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyMemberSearchView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyMemberSearchPresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyMemberListAdapter;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyRemoveMemberDialog;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyTransferDialog;
|
||||
import com.yizhuan.erban.ui.user.activity.UserInfoActivity;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyMemberInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyMemberSearchPresenter.class)
|
||||
public class FamilyMemberSearchActivity extends BaseMvpActivity<IFamilyMemberSearchView,FamilyMemberSearchPresenter>
|
||||
implements IFamilyMemberSearchView, View.OnClickListener, BaseQuickAdapter.RequestLoadMoreListener {
|
||||
|
||||
private RecyclerView recyclerView;
|
||||
private FamilyMemberListAdapter searchAdapter;
|
||||
private EditText searchEdit;
|
||||
private ImageView ivBack;
|
||||
private TextView tvSearch;
|
||||
private ImageView ivClearText;
|
||||
private int optType;
|
||||
private String searchStr;
|
||||
|
||||
public static void start(Context context,int optType) {
|
||||
Intent intent = new Intent(context,FamilyMemberSearchActivity.class);
|
||||
Bundle b = new Bundle();
|
||||
b.putInt(BundleKeys.KEY_EXTRA_1,optType);
|
||||
intent.putExtras(b);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
optType = getIntent().getIntExtra(BundleKeys.KEY_EXTRA_1,FamilyMemberListActivity.TYPE_SHOW_MEMBER);
|
||||
setContentView(R.layout.activity_family_member_search);
|
||||
|
||||
initView();
|
||||
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
|
||||
searchEdit = (EditText) findViewById(R.id.search_edit);
|
||||
searchEdit.addTextChangedListener(textWatcher);
|
||||
searchEdit.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
|
||||
searchEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||
@Override
|
||||
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || (event!=null && event.getKeyCode()== KeyEvent.KEYCODE_ENTER)) {
|
||||
String str = v.getText().toString();
|
||||
if (TextUtils.isEmpty(str)){
|
||||
// Toast.makeText(v.getContext(),ResUtil.getString(R.string.view_activity_familymembersearchactivity_01),Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.view_activity_familymembersearchactivity_02));
|
||||
return true;
|
||||
}
|
||||
searchStr = str;
|
||||
search(str);
|
||||
hideIME();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
});
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
recyclerView.addItemDecoration(new ColorDecoration(getResources().getColor(R.color.color_F1F1F1), 0,1, false));
|
||||
}
|
||||
searchAdapter = new FamilyMemberListAdapter(this, null,optType);
|
||||
View headerView = LayoutInflater.from(this).inflate(R.layout.layout_search_header, null,false);
|
||||
searchAdapter.addHeaderView(headerView);
|
||||
searchAdapter.setActionListener(new FamilyMemberListAdapter.ActionListener() {
|
||||
@Override
|
||||
public void onRemoveMember(FamilyMemberInfo familyMemberInfo) {
|
||||
showRemoveFamilyMemberDialog(familyMemberInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTransferCurrency(FamilyMemberInfo familyMemberInfo) {
|
||||
showTransferDialog(familyMemberInfo);
|
||||
}
|
||||
@Override
|
||||
public void onClickAvatar(FamilyMemberInfo item) {
|
||||
UserInfoActivity.Companion.start(FamilyMemberSearchActivity.this, item.getUid());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCheckMemberCurrency(FamilyMemberInfo item) {
|
||||
FamilyMemberCurrencyActivity.start(FamilyMemberSearchActivity.this, item.getUid());
|
||||
}
|
||||
});
|
||||
//搜索去掉分页
|
||||
// searchAdapter.setEnableLoadMore(true);
|
||||
// searchAdapter.setOnLoadMoreListener(this,recyclerView);
|
||||
recyclerView.setAdapter(searchAdapter);
|
||||
|
||||
ivBack = (ImageView) findViewById(R.id.iv_back);
|
||||
ivBack.setOnClickListener(this);
|
||||
|
||||
tvSearch = (TextView) findViewById(R.id.tv_search);
|
||||
tvSearch.setOnClickListener(this);
|
||||
|
||||
ivClearText = (ImageView) findViewById(R.id.iv_clear_text);
|
||||
ivClearText.setOnClickListener(this);
|
||||
ivClearText.setVisibility(View.GONE);
|
||||
|
||||
}
|
||||
|
||||
private TextWatcher textWatcher = new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
if (TextUtils.isEmpty(s.toString())) {
|
||||
ivClearText.setVisibility(View.GONE);
|
||||
} else {
|
||||
ivClearText.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == ivBack.getId()){
|
||||
finish();
|
||||
}else if (id == tvSearch.getId()){
|
||||
String str = searchEdit.getText().toString();
|
||||
if (TextUtils.isEmpty(str)){
|
||||
// Toast.makeText(this,ResUtil.getString(R.string.view_activity_familymembersearchactivity_03),Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.view_activity_familymembersearchactivity_04));
|
||||
return;
|
||||
}
|
||||
searchStr = str;
|
||||
search(str);
|
||||
hideIME();
|
||||
|
||||
}else if (id == ivClearText.getId()){
|
||||
searchEdit.setText("");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void search(String str){
|
||||
getMvpPresenter().search(str)
|
||||
.subscribe(new SingleObserver<List<FamilyMemberInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<FamilyMemberInfo> memberInfos) {
|
||||
update(memberInfos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void update(List<FamilyMemberInfo> memberInfos) {
|
||||
if (memberInfos != null && memberInfos.size() > 0) {
|
||||
hideStatus();
|
||||
searchAdapter.setNewData(memberInfos);
|
||||
searchAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
showNoData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
// getMvpPresenter().loadMoreData()
|
||||
// .subscribe(new SingleObserver<List<FamilyMemberInfo>>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// mCompositeDisposable.add(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onSuccess(List<FamilyMemberInfo> memberInfos) {
|
||||
// if (!ListUtils.isListEmpty(memberInfos)){
|
||||
// searchAdapter.addData(memberInfos);
|
||||
// searchAdapter.loadMoreComplete();
|
||||
// }else {
|
||||
// searchAdapter.loadMoreEnd(false);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(Throwable e) {
|
||||
// toast(e.getMessage());
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void showTransferDialog(FamilyMemberInfo familyMemberInfo) {
|
||||
FamilyTransferDialog dialog = new FamilyTransferDialog(this, getMvpPresenter().getFamilyInfo(),familyMemberInfo);
|
||||
dialog.setOnOperationListener(new FamilyTransferDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog, FamilyMemberInfo familyMemberInfo, double count) {
|
||||
dialog.dismiss();
|
||||
getMvpPresenter().transferCurrency(familyMemberInfo, count)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(getResources().getString(R.string.family_transfer_currency_success));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
|
||||
private void showRemoveFamilyMemberDialog(FamilyMemberInfo familyMemberInfo) {
|
||||
FamilyRemoveMemberDialog familyRemoveMemberDialog = new FamilyRemoveMemberDialog(this,familyMemberInfo);
|
||||
familyRemoveMemberDialog.setOnOperationListener(new FamilyRemoveMemberDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog, FamilyMemberInfo familyMemberInfo) {
|
||||
dialog.dismiss();
|
||||
getMvpPresenter().removeFamilyMember(familyMemberInfo)
|
||||
.subscribe(new SingleObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
toast(ResUtil.getString(R.string.view_activity_familymembersearchactivity_05));
|
||||
search(searchStr);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
familyRemoveMemberDialog.show();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,143 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilyPlazaActivityView;
|
||||
import com.yizhuan.erban.family.presenter.FamilyPlazaPresenter;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyWeeklyRankBoardAdapter;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.layoutmanager.FullyLinearLayoutManager;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RankingFamilyInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.response.RespFamilyRankList;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.SizeUtils;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilyPlazaPresenter.class)
|
||||
public class FamilyPlazaActivity extends BaseMvpActivity<IFamilyPlazaActivityView,FamilyPlazaPresenter>
|
||||
implements IFamilyPlazaActivityView,View.OnClickListener, SwipeRefreshLayout.OnRefreshListener {
|
||||
|
||||
|
||||
private SwipeRefreshLayout srlRefreshContainer;
|
||||
private LinearLayout llFamilyContainer;
|
||||
private TextView tvGetMore;
|
||||
|
||||
private FamilyWeeklyRankBoardAdapter familyWeeklyRankBoardAdapter;
|
||||
|
||||
private boolean isFirstLoad = true;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context,FamilyPlazaActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_plaza);
|
||||
initTitleBar(getString(R.string.family_plaza));
|
||||
|
||||
mTitleBar.addAction(new TitleBar.ImageAction(R.drawable.ic_family_list_search) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
FamilySearchActivity.start(FamilyPlazaActivity.this);
|
||||
}
|
||||
});
|
||||
|
||||
srlRefreshContainer = findViewById(R.id.srl_refresh_container);
|
||||
|
||||
llFamilyContainer = findViewById(R.id.ll_family_container);
|
||||
RecyclerView rvList = findViewById(R.id.rv_list);
|
||||
tvGetMore = findViewById(R.id.tv_get_more);
|
||||
|
||||
srlRefreshContainer.setOnRefreshListener(this);
|
||||
|
||||
rvList.setItemAnimator(null);
|
||||
rvList.setFocusable(false);
|
||||
rvList.setLayoutManager(new FullyLinearLayoutManager(this, LinearLayoutManager.VERTICAL,false));
|
||||
if (rvList.getItemDecorationCount() == 0) {
|
||||
int marginStart = SizeUtils.dp2px(this, 16);
|
||||
rvList.addItemDecoration(new ColorDecoration(getResources().getColor(R.color.color_F1F1F1),
|
||||
0,1, false, marginStart, marginStart));
|
||||
}
|
||||
familyWeeklyRankBoardAdapter = new FamilyWeeklyRankBoardAdapter(this, null);
|
||||
familyWeeklyRankBoardAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
RankingFamilyInfo familyInfo = (RankingFamilyInfo) adapter.getData().get(position);
|
||||
FamilyHomeActivity.start(FamilyPlazaActivity.this, familyInfo.getId());
|
||||
});
|
||||
rvList.setAdapter(familyWeeklyRankBoardAdapter);
|
||||
|
||||
tvGetMore.setOnClickListener(this);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (isFirstLoad){
|
||||
isFirstLoad = false;
|
||||
srlRefreshContainer.setRefreshing(true);
|
||||
loadData();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == tvGetMore.getId()) {
|
||||
FamilyListActivity.start(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
loadData();
|
||||
}
|
||||
|
||||
private void loadData(){
|
||||
getMvpPresenter().loadWeeklyRankData()
|
||||
.doAfterTerminate(() -> srlRefreshContainer.setRefreshing(false))
|
||||
.subscribe(new SingleObserver<RespFamilyRankList>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(RespFamilyRankList respFamily) {
|
||||
if (ListUtils.isListEmpty(respFamily.getFamilys())){
|
||||
llFamilyContainer.setVisibility(View.GONE);
|
||||
tvGetMore.setVisibility(View.GONE);
|
||||
return;
|
||||
}
|
||||
llFamilyContainer.setVisibility(View.VISIBLE);
|
||||
if (respFamily.getCount() <= 6){
|
||||
tvGetMore.setVisibility(View.GONE);
|
||||
}
|
||||
familyWeeklyRankBoardAdapter.setNewData(respFamily.getFamilys());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@@ -1,222 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.inputmethod.EditorInfo;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilySearchView;
|
||||
import com.yizhuan.erban.family.presenter.FamilySearchPresent;
|
||||
import com.yizhuan.erban.family.view.adapter.FamilyAdapter;
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.ColorDecoration;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.SingleObserver;
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
@CreatePresenter(FamilySearchPresent.class)
|
||||
public class FamilySearchActivity extends BaseMvpActivity<IFamilySearchView,FamilySearchPresent>
|
||||
implements IFamilySearchView, View.OnClickListener, BaseQuickAdapter.RequestLoadMoreListener {
|
||||
|
||||
|
||||
private RecyclerView recyclerView;
|
||||
private FamilyAdapter searchAdapter;
|
||||
private EditText searchEdit;
|
||||
private ImageView ivBack;
|
||||
private TextView tvSearch;
|
||||
private ImageView ivClearText;
|
||||
|
||||
private String searchText;
|
||||
|
||||
public static void start(Context context) {
|
||||
Intent intent = new Intent(context,FamilySearchActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_search);
|
||||
|
||||
initView();
|
||||
}
|
||||
|
||||
|
||||
private void initView() {
|
||||
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
|
||||
searchEdit = (EditText) findViewById(R.id.search_edit);
|
||||
searchEdit.addTextChangedListener(textWatcher);
|
||||
searchEdit.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
|
||||
searchEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
|
||||
@Override
|
||||
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
|
||||
if (actionId == EditorInfo.IME_ACTION_SEARCH || (event!=null && event.getKeyCode()== KeyEvent.KEYCODE_ENTER)) {
|
||||
searchText = v.getText().toString();
|
||||
if (TextUtils.isEmpty(searchText)){
|
||||
// Toast.makeText(v.getContext(),ResUtil.getString(R.string.view_activity_familysearchactivity_01),Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.view_activity_familysearchactivity_02));
|
||||
return true;
|
||||
}
|
||||
searchFamily(searchText);
|
||||
hideIME();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
});
|
||||
recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));
|
||||
if (recyclerView.getItemDecorationCount() == 0) {
|
||||
recyclerView.addItemDecoration(new ColorDecoration(getResources().getColor(R.color.color_F1F1F1), 0,1, false));
|
||||
}
|
||||
searchAdapter = new FamilyAdapter(this, null);
|
||||
View headerView = LayoutInflater.from(this).inflate(R.layout.layout_search_header, null,false);
|
||||
searchAdapter.addHeaderView(headerView);
|
||||
searchAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
|
||||
@Override
|
||||
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
FamilyInfo familyInfo = (FamilyInfo) adapter.getData().get(position);
|
||||
FamilyHomeActivity.start(FamilySearchActivity.this,familyInfo.getFamilyId());
|
||||
}
|
||||
});
|
||||
//搜索去掉分页
|
||||
// searchAdapter.setEnableLoadMore(true);
|
||||
// searchAdapter.setOnLoadMoreListener(this, recyclerView);
|
||||
recyclerView.setAdapter(searchAdapter);
|
||||
|
||||
ivBack = (ImageView) findViewById(R.id.iv_back);
|
||||
ivBack.setOnClickListener(this);
|
||||
|
||||
tvSearch = (TextView) findViewById(R.id.tv_search);
|
||||
tvSearch.setOnClickListener(this);
|
||||
|
||||
ivClearText = (ImageView) findViewById(R.id.iv_clear_text);
|
||||
ivClearText.setOnClickListener(this);
|
||||
ivClearText.setVisibility(View.GONE);
|
||||
|
||||
}
|
||||
|
||||
private TextWatcher textWatcher = new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable s) {
|
||||
if (TextUtils.isEmpty(s.toString())) {
|
||||
ivClearText.setVisibility(View.GONE);
|
||||
} else {
|
||||
ivClearText.setVisibility(View.VISIBLE);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
int id = v.getId();
|
||||
if (id == ivBack.getId()){
|
||||
finish();
|
||||
}else if (id == tvSearch.getId()){
|
||||
searchText = searchEdit.getText().toString();
|
||||
if (TextUtils.isEmpty(searchText)){
|
||||
// Toast.makeText(this,ResUtil.getString(R.string.view_activity_familysearchactivity_03),Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.view_activity_familysearchactivity_04));
|
||||
return;
|
||||
}
|
||||
hideIME();
|
||||
searchFamily(searchText);
|
||||
|
||||
}else if (id == ivClearText.getId()){
|
||||
searchEdit.setText("");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onReloadDate() {
|
||||
super.onReloadDate();
|
||||
// searchFamily(searchText);
|
||||
}
|
||||
|
||||
private void searchFamily(String key){
|
||||
showLoading();
|
||||
getMvpPresenter().search(key).subscribe(new SingleObserver<List<FamilyInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<FamilyInfo> familyInfoList) {
|
||||
if (familyInfoList != null && familyInfoList.size() > 0) {
|
||||
hideStatus();
|
||||
searchAdapter.setNewData(familyInfoList);
|
||||
searchAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
showNoData();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
showNetworkErr();
|
||||
toast(e.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void onLoadMoreRequested() {
|
||||
getMvpPresenter().loadMoreData().subscribe(new SingleObserver<List<FamilyInfo>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
mCompositeDisposable.add(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(List<FamilyInfo> familyInfoList) {
|
||||
if (ListUtils.isListEmpty(familyInfoList)){
|
||||
searchAdapter.loadMoreEnd(true);
|
||||
return;
|
||||
}
|
||||
searchAdapter.addData(familyInfoList);
|
||||
searchAdapter.loadMoreComplete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Throwable e) {
|
||||
toast(e.getMessage());
|
||||
searchAdapter.loadMoreComplete();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@@ -1,149 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.common.ViewPagerAdapter;
|
||||
import com.yizhuan.erban.decoration.view.widgets.CarMagicIndicator;
|
||||
import com.yizhuan.erban.family.contract.viewinterface.IFamilySelectFriendActivityView;
|
||||
import com.yizhuan.erban.family.presenter.FamilySelectFriendPresenter;
|
||||
import com.yizhuan.erban.family.view.dialog.FamilyInviteConfirmDialog;
|
||||
import com.yizhuan.erban.family.view.fragment.FamilyAttentionFragment;
|
||||
import com.yizhuan.erban.family.view.fragment.FamilyFansListFragment;
|
||||
import com.yizhuan.erban.family.view.fragment.FamilyFriendListFragment;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.MagicIndicator;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
|
||||
import com.yizhuan.xchat_android_core.home.bean.TabInfo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@CreatePresenter(FamilySelectFriendPresenter.class)
|
||||
public class FamilySelectFriendActivity extends BaseMvpActivity<IFamilySelectFriendActivityView,FamilySelectFriendPresenter>
|
||||
implements IFamilySelectFriendActivityView, CarMagicIndicator.OnItemSelectListener {
|
||||
|
||||
private TitleBar titleBar;
|
||||
private MagicIndicator viewIndicator;
|
||||
private ViewPager viewpager;
|
||||
|
||||
private static SelectFriendCallBack callBack;
|
||||
|
||||
private int pageLimitSize = 3;
|
||||
private String[] titles = {ResUtil.getString(R.string.view_activity_familyselectfriendactivity_01), ResUtil.getString(R.string.view_activity_familyselectfriendactivity_02), ResUtil.getString(R.string.view_activity_familyselectfriendactivity_03)};
|
||||
|
||||
public static void start(Context context,SelectFriendCallBack selectFriendCallBack) {
|
||||
callBack = selectFriendCallBack;
|
||||
Intent intent = new Intent(context,FamilySelectFriendActivity.class);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_family_select_friend);
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
titleBar = findViewById(R.id.title_bar);
|
||||
initTitleBar(getString(R.string.title_select_friend));
|
||||
// titleBar.addAction(new TitleBar.Action() {
|
||||
// @Override
|
||||
// public String getText() {
|
||||
// return null;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public int getDrawable() {
|
||||
// return R.drawable.ic_send_search;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void performAction(View view) {
|
||||
// AitFriendsSearchActivity.startForSharing(FamilySelectFriendActivity.this);
|
||||
// }
|
||||
// });
|
||||
|
||||
viewIndicator = findViewById(R.id.view_indicator);
|
||||
viewpager = findViewById(R.id.viewpager);
|
||||
|
||||
viewpager.setOffscreenPageLimit(pageLimitSize);
|
||||
viewpager.setAdapter(new ViewPagerAdapter(getSupportFragmentManager(), getFragment(), titles));
|
||||
|
||||
List<TabInfo> tabInfoList = new ArrayList<>(2);
|
||||
tabInfoList.add(new TabInfo(1, getString(R.string.tab_title_friends)));
|
||||
tabInfoList.add(new TabInfo(2, getString(R.string.tab_title_attentions)));
|
||||
tabInfoList.add(new TabInfo(3, getString(R.string.tab_title_fans)));
|
||||
CommonNavigator commonNavigator = new CommonNavigator(this);
|
||||
commonNavigator.setAdjustMode(true);
|
||||
CarMagicIndicator indicator = new CarMagicIndicator(this, tabInfoList, 0);
|
||||
indicator.setOnItemSelectListener(this);
|
||||
commonNavigator.setAdapter(indicator);
|
||||
viewIndicator.setNavigator(commonNavigator);
|
||||
ViewPagerHelper.bind(viewIndicator, viewpager);
|
||||
}
|
||||
|
||||
private List<Fragment> getFragment() {
|
||||
List<Fragment> list = new ArrayList<>();
|
||||
list.add(FamilyFriendListFragment.newInstances());
|
||||
list.add(FamilyAttentionFragment.newInstance());
|
||||
list.add(FamilyFansListFragment.newInstances());
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onItemSelect(int position) {
|
||||
viewpager.setCurrentItem(position);
|
||||
}
|
||||
|
||||
|
||||
public void onSelectFriend(UserInfo userInfo){
|
||||
showConfirmDialog(userInfo);
|
||||
}
|
||||
|
||||
private void showConfirmDialog(UserInfo userInfo) {
|
||||
FamilyInviteConfirmDialog dialog = new FamilyInviteConfirmDialog(this);
|
||||
dialog.setAvatar(userInfo.getAvatar());
|
||||
dialog.setName(userInfo.getNick());
|
||||
dialog.setOnOperationListener(new FamilyInviteConfirmDialog.OnOperationListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onOk(DialogInterface dialog) {
|
||||
dialog.dismiss();
|
||||
if (callBack != null){
|
||||
callBack.onSelectFriend(FamilySelectFriendActivity.this, userInfo.getUid());
|
||||
}
|
||||
finish();
|
||||
}
|
||||
});
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
callBack = null;
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public interface SelectFriendCallBack{
|
||||
void onSelectFriend(Activity activity, long uid);
|
||||
}
|
||||
|
||||
}
|
@@ -1,74 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.activity;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.base.BaseMvpActivity;
|
||||
import com.yizhuan.erban.base.TitleBar;
|
||||
import com.yizhuan.erban.constants.BundleKeys;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
public class FamilyTextInputActivity extends BaseMvpActivity implements IMvpBaseView{
|
||||
|
||||
public static final String CONTENT = "content";
|
||||
private EditText etInput;
|
||||
private TitleBar titleBar;
|
||||
|
||||
private static CallBack listener;
|
||||
|
||||
|
||||
public static void start(Context context, String familyName, CallBack callBack){
|
||||
listener = callBack;
|
||||
Intent intent = new Intent(context,FamilyTextInputActivity.class);
|
||||
intent.putExtra(BundleKeys.KEY_EXTRA_1,familyName);
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
String originalText = getIntent().getStringExtra(BundleKeys.KEY_EXTRA_1);
|
||||
setContentView(R.layout.activity_family_text_input);
|
||||
|
||||
titleBar = (TitleBar) findViewById(R.id.title_bar);
|
||||
etInput = (EditText) findViewById(R.id.et_input);
|
||||
etInput.setText(originalText);
|
||||
|
||||
initTitleBar(getResources().getString(R.string.family_name_hint));
|
||||
titleBar.setActionTextColor(R.color.text_color_primary);
|
||||
titleBar.addAction(new TitleBar.TextAction(ResUtil.getString(R.string.view_activity_familytextinputactivity_01)) {
|
||||
@Override
|
||||
public void performAction(View view) {
|
||||
String content = etInput.getText().toString();
|
||||
//修改个人介绍
|
||||
if (!content
|
||||
.trim()
|
||||
.replaceAll(" ","")
|
||||
.isEmpty()) {
|
||||
if (listener != null){
|
||||
listener.onModify(content);
|
||||
}
|
||||
finish();
|
||||
} else {
|
||||
toast(ResUtil.getString(R.string.view_activity_familytextinputactivity_02));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
listener = null;
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
public interface CallBack{
|
||||
void onModify(String str);
|
||||
}
|
||||
}
|
@@ -1,58 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.SquareImageView;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/4/16
|
||||
*/
|
||||
|
||||
public class FamilyAdapter extends BaseQuickAdapter<FamilyInfo, BaseViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
private int mRound = 10;
|
||||
|
||||
public FamilyAdapter(Context context, @Nullable List<FamilyInfo> data) {
|
||||
super(R.layout.item_family_list, data);
|
||||
this.mContext = context;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder baseViewHolder, FamilyInfo familyInfo) {
|
||||
SquareImageView ivCover = (SquareImageView) baseViewHolder.getView(R.id.iv_cover);
|
||||
|
||||
GlideApp.with(mContext)
|
||||
.load(familyInfo.getFamilyIcon())
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.transforms(new CenterCrop(), new RoundedCorners(mRound))
|
||||
.into(ivCover);
|
||||
|
||||
TextView tvFamilyName = (TextView) baseViewHolder.getView(R.id.tv_family_name);
|
||||
TextView tvFamilyId = (TextView) baseViewHolder.getView(R.id.tv_family_id);
|
||||
TextView tvFamilyMemberCount = (TextView) baseViewHolder.getView(R.id.tv_family_member_count);
|
||||
|
||||
tvFamilyName.setText(familyInfo.getFamilyName());
|
||||
tvFamilyId.setText(String.format(mContext.getResources().getString(R.string.family_id),familyInfo.getFamilyId()));
|
||||
tvFamilyMemberCount.setText(String.format(mContext.getResources().getString(R.string.family_member_count),String.valueOf(familyInfo.getMemberCount())));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -1,79 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.NobleAvatarView;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_core.user.bean.AttentionInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/5
|
||||
*/
|
||||
|
||||
public class FamilyAttentionListAdapter extends BaseQuickAdapter<AttentionInfo, BaseViewHolder> {
|
||||
|
||||
public FamilyAttentionListAdapter(List<AttentionInfo> attentionInfoList) {
|
||||
super(R.layout.family_attention_item, attentionInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder baseViewHolder, AttentionInfo attentionInfo) {
|
||||
if (attentionInfo == null) return;
|
||||
|
||||
baseViewHolder.setText(R.id.tv_userName, attentionInfo.getNick())
|
||||
.setText(R.id.tv_user_desc, attentionInfo.getUserDesc() != null ?
|
||||
attentionInfo.getUserDesc()
|
||||
: baseViewHolder.itemView.getContext().getResources().getString(R.string.msg_no_user_desc))
|
||||
.setVisible(R.id.view_line, baseViewHolder.getLayoutPosition() != getItemCount() - 1);
|
||||
|
||||
|
||||
AppCompatImageView ivGender = baseViewHolder.getView(R.id.iv_gender);
|
||||
if (attentionInfo.getGender() == 1) {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_male);
|
||||
} else {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_female);
|
||||
}
|
||||
|
||||
AppCompatImageView ivNobleLevel = baseViewHolder.getView(R.id.iv_noble_level);
|
||||
if (attentionInfo.nobleUsers != null) {
|
||||
ivNobleLevel.setVisibility(View.VISIBLE);
|
||||
String badgeByLevel = NobleUtil.getBadgeByLevel(attentionInfo.nobleUsers.getLevel());
|
||||
if (!TextUtils.isEmpty(badgeByLevel)) {
|
||||
NobleUtil.loadResource(badgeByLevel, ivNobleLevel);
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
NobleAvatarView nobleAvatarView = baseViewHolder.getView(R.id.noble_avatar_view);
|
||||
nobleAvatarView.setSize(50, 75, 15);
|
||||
nobleAvatarView.setData(attentionInfo.avatar, attentionInfo.nobleUsers);
|
||||
|
||||
AppCompatImageView ivUserLevel = baseViewHolder.getView(R.id.iv_user_level);
|
||||
ivUserLevel.setVisibility(View.GONE);
|
||||
if (attentionInfo.userLevelVo != null && !TextUtils.isEmpty(attentionInfo.userLevelVo.getExperUrl())) {
|
||||
ivUserLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, attentionInfo.userLevelVo.getExperUrl(), ivUserLevel);
|
||||
}
|
||||
|
||||
AppCompatImageView ivCharmLevel = baseViewHolder.getView(R.id.iv_charm_level);
|
||||
ivCharmLevel.setVisibility(View.GONE);
|
||||
if (attentionInfo.userLevelVo != null && !TextUtils.isEmpty(attentionInfo.userLevelVo.getCharmUrl())) {
|
||||
ivCharmLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, attentionInfo.userLevelVo.getCharmUrl(), ivCharmLevel);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,69 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
||||
import com.yizhuan.erban.ui.widget.rollviewpager.adapter.StaticPagerAdapter;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FindBannerInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class FamilyBannerAdapter extends StaticPagerAdapter {
|
||||
private Context context;
|
||||
private List<FindBannerInfo> bannerInfoList;
|
||||
private LayoutInflater mInflater;
|
||||
|
||||
public FamilyBannerAdapter(List<FindBannerInfo> bannerInfoList, Context context) {
|
||||
this.context = context;
|
||||
this.bannerInfoList = bannerInfoList;
|
||||
mInflater = LayoutInflater.from(context);
|
||||
}
|
||||
|
||||
public void setNewData(List<FindBannerInfo> data){
|
||||
this.bannerInfoList = data;
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View getView(ViewGroup container, int position) {
|
||||
FindBannerInfo bannerInfo = bannerInfoList.get(position);
|
||||
String url = bannerInfo.getSkipUri();
|
||||
ImageView imgBanner = (ImageView) mInflater.inflate(R.layout.layout_family_banner_page_item, container, false);
|
||||
//和游戏、首页tab一样,加载带大圆角的图
|
||||
ImageLoadUtils.loadGameBannerRoundBackground(context, bannerInfo.getBannerPic(), imgBanner);
|
||||
|
||||
imgBanner.setOnClickListener(v -> {
|
||||
if (TextUtils.isEmpty(url)) return;
|
||||
if (bannerInfo.getSkipType() == FindBannerInfo.SKIP_TYP_H5) {
|
||||
CommonWebViewActivity.start(context,url);
|
||||
|
||||
} else if (bannerInfo.getSkipType() == FindBannerInfo.SKIP_TYP_CHAT_ROOM) {
|
||||
if (TextUtils.isEmpty(url)) return;
|
||||
try {
|
||||
AVRoomActivity.start(context, Long.valueOf(url));
|
||||
} catch (NumberFormatException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
});
|
||||
return imgBanner;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
if (bannerInfoList == null) {
|
||||
return 0;
|
||||
} else
|
||||
return bannerInfoList.size();
|
||||
}
|
||||
}
|
@@ -1,129 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.jay.widget.StickyHeaders;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||
import com.yizhuan.erban.ui.widget.UserInfoDialog;
|
||||
import com.yizhuan.xchat_android_core.family.bean.BillDateDivInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.TransactionRecordInfo;
|
||||
import com.yizhuan.xchat_android_core.family.bean.VMBillItemInfo;
|
||||
import com.yizhuan.xchat_android_library.utils.FormatUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/5/30
|
||||
*/
|
||||
|
||||
public class FamilyCurrencyBillAdapter extends BaseMultiItemQuickAdapter<VMBillItemInfo,BaseViewHolder> implements StickyHeaders {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public FamilyCurrencyBillAdapter(Context context, @Nullable List<VMBillItemInfo> data) {
|
||||
super(data);
|
||||
this.mContext = context;
|
||||
addItemType(VMBillItemInfo.TYPE_DATE_DIV, R.layout.item_family_currency_bill_date);//月份分割
|
||||
addItemType(VMBillItemInfo.TYPE_TRANSACTION_RECORD, R.layout.item_family_currency_transaction_record);//交易记录
|
||||
addItemType(VMBillItemInfo.TYPE_EMPTY_TIP, R.layout.item_family_currency_empty);//无记录
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, VMBillItemInfo item) {
|
||||
if (item.getItemType() == VMBillItemInfo.TYPE_DATE_DIV){
|
||||
covertDateDIV(helper,(BillDateDivInfo) item.getData());
|
||||
} else if (item.getItemType() == VMBillItemInfo.TYPE_TRANSACTION_RECORD){
|
||||
covertTransactionRecord(helper, (TransactionRecordInfo) item.getData());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void covertDateDIV(BaseViewHolder helper, BillDateDivInfo item) {
|
||||
if (null == item) return;
|
||||
String currencyName = item.getMoneyName();
|
||||
|
||||
TextView tvDate = (TextView) helper.getView(R.id.tv_date);
|
||||
TextView tvSummary = (TextView) helper.getView(R.id.tv_summary);
|
||||
tvDate.setText(item.getDate());
|
||||
tvSummary.setText(String.format(mContext.getResources().getString(R.string.family_currency_bill_summary),
|
||||
FormatUtils.formatToShortDown(item.getExpend()),
|
||||
currencyName,
|
||||
FormatUtils.formatToShortDown(item.getIncome()),
|
||||
currencyName));
|
||||
tvDate.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (null != onDateSelectListener){
|
||||
onDateSelectListener.onDateSelect();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void covertTransactionRecord(BaseViewHolder helper, TransactionRecordInfo item) {
|
||||
if (null == item) return;
|
||||
|
||||
CircleImageView civImg = (CircleImageView) helper.getView(R.id.civ_img);
|
||||
TextView tvDesc = (TextView) helper.getView(R.id.tv_desc);
|
||||
TextView tvFrom = (TextView) helper.getView(R.id.tv_from);
|
||||
TextView tvData = (TextView) helper.getView(R.id.tv_data);
|
||||
TextView tvTime = (TextView) helper.getView(R.id.tv_time);
|
||||
|
||||
|
||||
GlideApp.with(mContext)
|
||||
.load(item.getAvatar())
|
||||
.placeholder(R.drawable.default_avatar)
|
||||
.dontAnimate()
|
||||
.into(civImg);
|
||||
|
||||
civImg.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (item.getUid() > 0) {
|
||||
UserInfoDialog.showNewUserInfoDialog(mContext,item.getUid());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
tvDesc.setText(item.getTitle());
|
||||
tvFrom.setText(item.getDesc());
|
||||
tvData.setText(FormatUtils.formatToShortDown(item.getData()) + item.getMoneyName());
|
||||
if (item.getData() >= 0) {
|
||||
tvData.setTextColor(mContext.getResources().getColor(R.color.appColor));
|
||||
}else {
|
||||
tvData.setTextColor(mContext.getResources().getColor(R.color.color_333333));
|
||||
}
|
||||
tvTime.setText(item.getDate());
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isStickyHeader(int i) {
|
||||
return getItemViewType(i) == VMBillItemInfo.TYPE_DATE_DIV ;
|
||||
}
|
||||
|
||||
private OnDateSelectListener onDateSelectListener;
|
||||
|
||||
public void setOnDateSelectListener(OnDateSelectListener onDateSelectListener) {
|
||||
this.onDateSelectListener = onDateSelectListener;
|
||||
}
|
||||
|
||||
public interface OnDateSelectListener{
|
||||
public void onDateSelect();
|
||||
}
|
||||
|
||||
}
|
@@ -1,77 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.NobleAvatarView;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_core.user.bean.FansInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/5
|
||||
*/
|
||||
|
||||
public class FamilyFansViewAdapter extends BaseQuickAdapter<FansInfo, BaseViewHolder> {
|
||||
|
||||
public FamilyFansViewAdapter(List<FansInfo> fansInfoList) {
|
||||
super(R.layout.family_fans_list_item, fansInfoList);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder baseViewHolder, FansInfo fansInfo) {
|
||||
if (fansInfo == null) return;
|
||||
baseViewHolder.setText(R.id.tv_userName, fansInfo.getNick())
|
||||
.setText(R.id.tv_user_desc, fansInfo.getUserDesc() != null ?
|
||||
fansInfo.getUserDesc()
|
||||
: baseViewHolder.itemView.getContext().getResources().getString(R.string.msg_no_user_desc))
|
||||
.setVisible(R.id.view_line, baseViewHolder.getLayoutPosition() != getItemCount() - 1);
|
||||
|
||||
NobleAvatarView nobleAvatarView = baseViewHolder.getView(R.id.noble_avatar_view);
|
||||
nobleAvatarView.setSize(50, 75, 15);
|
||||
nobleAvatarView.setData(fansInfo.getAvatar(), fansInfo.getNobleUsers());
|
||||
|
||||
AppCompatImageView ivGender = baseViewHolder.getView(R.id.iv_gender);
|
||||
if (fansInfo.getGender() == 1) {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_male);
|
||||
} else {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_female);
|
||||
}
|
||||
|
||||
AppCompatImageView ivNobleLevel = baseViewHolder.getView(R.id.iv_noble_level);
|
||||
if (fansInfo.getNobleUsers() != null) {
|
||||
ivNobleLevel.setVisibility(View.VISIBLE);
|
||||
String badgeByLevel = NobleUtil.getBadgeByLevel(fansInfo.getNobleUsers().getLevel());
|
||||
if (!TextUtils.isEmpty(badgeByLevel)) {
|
||||
NobleUtil.loadResource(badgeByLevel, ivNobleLevel);
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
AppCompatImageView ivUserLevel = baseViewHolder.getView(R.id.iv_user_level);
|
||||
ivUserLevel.setVisibility(View.GONE);
|
||||
if (fansInfo.getUserLevelVo() != null && !TextUtils.isEmpty(fansInfo.getUserLevelVo().getExperUrl())) {
|
||||
ivUserLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, fansInfo.getUserLevelVo().getExperUrl(), ivUserLevel);
|
||||
}
|
||||
|
||||
AppCompatImageView ivCharmLevel = baseViewHolder.getView(R.id.iv_charm_level);
|
||||
ivCharmLevel.setVisibility(View.GONE);
|
||||
if (fansInfo.getUserLevelVo() != null && !TextUtils.isEmpty(fansInfo.getUserLevelVo().getCharmUrl())) {
|
||||
ivCharmLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, fansInfo.getUserLevelVo().getCharmUrl(), ivCharmLevel);
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,82 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatImageView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
|
||||
import com.yizhuan.erban.ui.widget.NobleAvatarView;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/4
|
||||
*/
|
||||
|
||||
public class FamilyFriendListAdapter extends BaseQuickAdapter<UserInfo, BaseViewHolder> {
|
||||
private Context context;
|
||||
|
||||
public FamilyFriendListAdapter(Context context, @Nullable List<UserInfo> data) {
|
||||
super(R.layout.family_list_item_friend, data);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, UserInfo item) {
|
||||
if (item == null) return;
|
||||
|
||||
helper.setText(R.id.tv_userName, item.getNick())
|
||||
.setText(R.id.tv_user_desc, item.getUserDesc() != null ?
|
||||
item.getUserDesc()
|
||||
: helper.itemView.getContext().getResources().getString(R.string.msg_no_user_desc));
|
||||
|
||||
NobleAvatarView mNobleAvatarView = helper.getView(R.id.noble_avatar_view);
|
||||
mNobleAvatarView.setSize(47, 70, 13);
|
||||
mNobleAvatarView.setData(item.getAvatar(), item.getNobleUsers());
|
||||
|
||||
AppCompatImageView ivGender = helper.getView(R.id.iv_gender);
|
||||
if (item.getGender() == 1) {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_male);
|
||||
} else {
|
||||
ivGender.setImageResource(R.drawable.ic_gender_female);
|
||||
}
|
||||
|
||||
AppCompatImageView ivNobleLevel = helper.getView(R.id.iv_noble_level);
|
||||
if (item.getNobleUsers() != null) {
|
||||
ivNobleLevel.setVisibility(View.VISIBLE);
|
||||
String badgeByLevel = NobleUtil.getBadgeByLevel(item.getNobleUsers().getLevel());
|
||||
if (!TextUtils.isEmpty(badgeByLevel)) {
|
||||
NobleUtil.loadResource(badgeByLevel, ivNobleLevel);
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
ivNobleLevel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
AppCompatImageView ivUserLevel = helper.getView(R.id.iv_user_level);
|
||||
ivUserLevel.setVisibility(View.GONE);
|
||||
if (item.getUserLevelVo() != null && !TextUtils.isEmpty(item.getUserLevelVo().getExperUrl())) {
|
||||
ivUserLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, item.getUserLevelVo().getExperUrl(), ivUserLevel);
|
||||
}
|
||||
|
||||
AppCompatImageView ivCharmLevel = helper.getView(R.id.iv_charm_level);
|
||||
ivCharmLevel.setVisibility(View.GONE);
|
||||
if (item.getUserLevelVo() != null && !TextUtils.isEmpty(item.getUserLevelVo().getCharmUrl())) {
|
||||
ivCharmLevel.setVisibility(View.VISIBLE);
|
||||
ImageLoadUtils.loadImage(mContext, item.getUserLevelVo().getCharmUrl(), ivCharmLevel);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@@ -1,46 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGameInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
* @Description
|
||||
* @Date 2018/7/23
|
||||
*/
|
||||
|
||||
public class FamilyGameListAdapter extends BaseQuickAdapter<FamilyGameInfo, BaseViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
public FamilyGameListAdapter(Context context, @Nullable List<FamilyGameInfo> data) {
|
||||
super(R.layout.item_family_game_list,data);
|
||||
this.mContext = context;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, FamilyGameInfo item) {
|
||||
RoundedImageView rivCover = (RoundedImageView) helper.getView(R.id.riv_cover);
|
||||
TextView tvName = (TextView) helper.getView(R.id.tv_name);
|
||||
|
||||
GlideApp.with(mContext)
|
||||
.load(TextUtils.isEmpty(item.getIcon()) ? R.drawable.default_cover : item.getIcon())
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.error(R.drawable.default_cover)
|
||||
.into(rivCover);
|
||||
|
||||
tvName.setText(item.getName());
|
||||
}
|
||||
}
|
@@ -1,45 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGameInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
*/
|
||||
|
||||
public class FamilyGamesAdapter extends BaseQuickAdapter<FamilyGameInfo, BaseViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public FamilyGamesAdapter(Context context, @Nullable List<FamilyGameInfo> data) {
|
||||
super(R.layout.item_family_games, data);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, FamilyGameInfo item) {
|
||||
RoundedImageView rivCover = helper.getView(R.id.riv_cover);
|
||||
TextView tvName = helper.getView(R.id.tv_name);
|
||||
|
||||
GlideApp.with(mContext)
|
||||
.load(TextUtils.isEmpty(item.getIcon()) ? R.drawable.default_cover : item.getIcon())
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.error(R.drawable.default_cover)
|
||||
.into(rivCover);
|
||||
|
||||
tvName.setText(item.getName());
|
||||
|
||||
}
|
||||
}
|
@@ -1,86 +0,0 @@
|
||||
package com.yizhuan.erban.family.view.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.bumptech.glide.load.resource.bitmap.CenterCrop;
|
||||
import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.netease.nim.uikit.support.glide.GlideApp;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.ui.widget.SquareImageView;
|
||||
import com.yizhuan.xchat_android_core.family.bean.FamilyGroupInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jack
|
||||
*/
|
||||
public class FamilyGroupAdapter extends BaseQuickAdapter<FamilyGroupInfo,BaseViewHolder> {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
public FamilyGroupAdapter(Context context, @Nullable List<FamilyGroupInfo> data) {
|
||||
super(R.layout.item_family_group, data);
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, FamilyGroupInfo item) {
|
||||
SquareImageView ivCover = helper.getView(R.id.iv_cover);
|
||||
TextView tvFamilyGroupName = helper.getView(R.id.tv_family_group_name);
|
||||
TextView tvFamilyGroupDesc = helper.getView(R.id.tv_family_group_desc);
|
||||
|
||||
TextView tvJoinGroup = helper.getView(R.id.tv_join_group);
|
||||
ImageView ivArrowRight = helper.getView(R.id.iv_arrow_right);
|
||||
|
||||
GlideApp.with(mContext)
|
||||
.load(TextUtils.isEmpty(item.getIcon()) ? R.drawable.default_cover : item.getIcon())
|
||||
.placeholder(R.drawable.default_cover)
|
||||
.error(R.drawable.default_cover)
|
||||
.transforms(new CenterCrop(), new RoundedCorners(10))
|
||||
.into(ivCover);
|
||||
|
||||
tvFamilyGroupName.setText(item.getName());
|
||||
tvFamilyGroupDesc.setText(String.format(
|
||||
mContext.getResources().getString(R.string.family_member_count),
|
||||
String.valueOf(item.getMemberCount())));
|
||||
|
||||
if (item.isExists()){
|
||||
tvJoinGroup.setVisibility(View.GONE);
|
||||
ivArrowRight.setVisibility(View.VISIBLE);
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
if (actionListener != null){
|
||||
actionListener.onGotoGroup(item);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
tvJoinGroup.setVisibility(View.VISIBLE);
|
||||
ivArrowRight.setVisibility(View.GONE);
|
||||
tvJoinGroup.setOnClickListener(v -> {
|
||||
if (actionListener != null){
|
||||
actionListener.onJoin(item);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private ActionListener actionListener;
|
||||
|
||||
public void setActionListener(ActionListener actionListener) {
|
||||
this.actionListener = actionListener;
|
||||
}
|
||||
|
||||
public interface ActionListener{
|
||||
void onJoin(FamilyGroupInfo groupInfo);
|
||||
void onGotoGroup(FamilyGroupInfo groupInfo);
|
||||
}
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user