[Modify]移除部分无用代码和viewpager改造

This commit is contained in:
wushaocheng
2023-06-05 20:13:38 +08:00
parent 3fadb59a54
commit 64f5ad02e3
258 changed files with 41 additions and 19195 deletions

View File

@@ -286,10 +286,6 @@
android:name=".home.activity.CollectionRoomActivity" android:name=".home.activity.CollectionRoomActivity"
android:label="@string/main_androidmanifest_019" android:label="@string/main_androidmanifest_019"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".ui.wallet.ExchangeGoldActivity"
android:label="@string/main_androidmanifest_020"
android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.setting.SettingActivity" android:name=".ui.setting.SettingActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
@@ -299,9 +295,6 @@
<activity <activity
android:name=".ui.relation.FansListActivity" android:name=".ui.relation.FansListActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity
android:name=".ui.withdraw.WithdrawActivity"
android:screenOrientation="portrait" />
<activity <activity
android:name=".ui.withdraw.bankcard.BindWithdrawBankCardActivity" android:name=".ui.withdraw.bankcard.BindWithdrawBankCardActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
@@ -317,18 +310,6 @@
<activity <activity
android:name=".ui.user.activity.ShowPhotoActivity" android:name=".ui.user.activity.ShowPhotoActivity"
android:screenOrientation="portrait" /> 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 <activity
android:name=".ui.setting.FeedbackActivity" android:name=".ui.setting.FeedbackActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
@@ -342,21 +323,6 @@
<activity <activity
android:name=".ui.webview.SimpleWebViewActivity" android:name=".ui.webview.SimpleWebViewActivity"
android:screenOrientation="portrait" /> 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 <activity
android:name=".avroom.activity.RoomInviteActivity" android:name=".avroom.activity.RoomInviteActivity"
android:label="@string/main_androidmanifest_023" android:label="@string/main_androidmanifest_023"
@@ -399,42 +365,6 @@
android:name=".friend.view.SelectFriendActivity" android:name=".friend.view.SelectFriendActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" /> 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 <activity
android:name=".team.view.NimTeamMessageActivity" android:name=".team.view.NimTeamMessageActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
@@ -479,10 +409,6 @@
android:name=".luckymoney.view.LuckyMoneyDetailActivity" android:name=".luckymoney.view.LuckyMoneyDetailActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" /> <!-- android:launchMode="singleTask" --> android:windowSoftInputMode="stateHidden|adjustResize" /> <!-- android:launchMode="singleTask" -->
<activity
android:name=".family.view.activity.FamilyMemberCurrencyActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity <activity
android:name=".ErbanTakePhotoActivity" android:name=".ErbanTakePhotoActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
@@ -491,18 +417,6 @@
android:name=".team.view.UpdateTeamNameActivity" android:name=".team.view.UpdateTeamNameActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" /> 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 <activity
android:name=".treasure_box.activity.TreasureBoxActivity" android:name=".treasure_box.activity.TreasureBoxActivity"
android:theme="@style/dialog_web_view_activity" /> android:theme="@style/dialog_web_view_activity" />
@@ -661,15 +575,6 @@
android:name="com.yizhuan.tutu.room_chat.activity.NimHallTeamRoomMessageActivity" android:name="com.yizhuan.tutu.room_chat.activity.NimHallTeamRoomMessageActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"
android:theme="@style/room_message_activity" /> 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 <activity
android:name=".ui.patriarch.PatriarchModeActivity" android:name=".ui.patriarch.PatriarchModeActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
@@ -760,10 +665,6 @@
<activity <activity
android:name="com.zhihu.matisse.internal.ui.SelectedPreviewActivity" android:name="com.zhihu.matisse.internal.ui.SelectedPreviewActivity"
android:screenOrientation="portrait" /> <!-- 房间内私聊 --> android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
<activity
android:name=".ui.wallet.sendgold.SendGoldActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity <activity
android:name=".pay.activity.GiveGoldActivity" android:name=".pay.activity.GiveGoldActivity"
android:screenOrientation="portrait" android:screenOrientation="portrait"

View File

@@ -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.publish.view.PublishActivity;
import com.yizhuan.erban.community.square.SquareFragment; import com.yizhuan.erban.community.square.SquareFragment;
import com.yizhuan.erban.event.AreaChangeEvent; 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.HomeViewModel;
import com.yizhuan.erban.home.dialog.NewUserHelloDialog; import com.yizhuan.erban.home.dialog.NewUserHelloDialog;
import com.yizhuan.erban.home.dialog.ProtocolUpdateDialog; 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")) { if (!StringUtil.isEmpty(linkedInfo.getRoomUid()) && linkedInfo.getType().equals("2")) {
AVRoomActivity.start(context, Long.parseLong(linkedInfo.getRoomUid())); 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")) { } else if (!TextUtils.isEmpty(linkedInfo.getUrl()) && linkedInfo.getType().equals("3")) {
CommonWebViewActivity.start(context, UriProvider.getLinkUrl(linkedInfo.getUrl())); CommonWebViewActivity.start(context, UriProvider.getLinkUrl(linkedInfo.getUrl()));
} else if (!TextUtils.isEmpty(linkedInfo.getWorldId()) && linkedInfo.getType().equals("5")) { } else if (!TextUtils.isEmpty(linkedInfo.getWorldId()) && linkedInfo.getType().equals("5")) {

View File

@@ -49,7 +49,6 @@ import com.yizhuan.erban.common.app.ActivityStack;
import com.yizhuan.erban.common.util.AppLifeCycleHelper; import com.yizhuan.erban.common.util.AppLifeCycleHelper;
import com.yizhuan.erban.module_hall.HallDataManager; import com.yizhuan.erban.module_hall.HallDataManager;
import com.yizhuan.erban.other.activity.SplashActivity; import com.yizhuan.erban.other.activity.SplashActivity;
import com.yizhuan.erban.radish.wallet.RadishWalletManager;
import com.yizhuan.erban.utils.PushMessageHandler; import com.yizhuan.erban.utils.PushMessageHandler;
import com.yizhuan.xchat_android_constants.XChatConstants; import com.yizhuan.xchat_android_constants.XChatConstants;
import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.Constants;
@@ -98,7 +97,6 @@ import org.greenrobot.eventbus.EventBus;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -443,8 +441,6 @@ public class XChatApplication extends BaseApp {
DynamicFaceModel.get().init(); DynamicFaceModel.get().init();
PayModel.get(); PayModel.get();
UserModel.get(); UserModel.get();
//ui层的萝卜钱包
RadishWalletManager.get();
//model层的 //model层的
RadishModel.get(); RadishModel.get();

View File

@@ -3,6 +3,7 @@ package com.yizhuan.erban.avroom.fragment;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter; import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
import com.yizhuan.erban.avroom.widget.RankNavigatorAdapter; import com.yizhuan.erban.avroom.widget.RankNavigatorAdapter;
import com.yizhuan.erban.base.BaseBindingFragment; import com.yizhuan.erban.base.BaseBindingFragment;
@@ -26,7 +27,7 @@ public class RoomCharmListFragment extends BaseBindingFragment<FragmentRoomCharm
ArrayList<Fragment> fragments = new ArrayList<>(2); ArrayList<Fragment> fragments = new ArrayList<>(2);
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING)); fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_DAY_RANKING));
fragments.add(RoomCharmRankingListFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_WEEK_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 commonNavigator = new CommonNavigator(getActivity());
commonNavigator.setAdjustMode(false); commonNavigator.setAdjustMode(false);

View File

@@ -2,8 +2,10 @@ package com.yizhuan.erban.avroom.fragment;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.widget.ViewPager2;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter; import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
import com.yizhuan.erban.avroom.widget.RankNavigatorAdapter; import com.yizhuan.erban.avroom.widget.RankNavigatorAdapter;
import com.yizhuan.erban.base.BaseMvpFragment; import com.yizhuan.erban.base.BaseMvpFragment;
@@ -21,7 +23,7 @@ import java.util.ArrayList;
*/ */
public class RoomContributeListFragment extends BaseMvpFragment implements IMvpBaseView { public class RoomContributeListFragment extends BaseMvpFragment implements IMvpBaseView {
private ViewPager viewPager; private ViewPager2 viewPager;
private MagicIndicator viewIndicator; private MagicIndicator viewIndicator;
@Override @Override
@@ -43,7 +45,7 @@ public class RoomContributeListFragment extends BaseMvpFragment implements IMvpB
if (AvRoomDataManager.get().isDatingMode()) { if (AvRoomDataManager.get().isDatingMode()) {
fragments.add(RoomContributeFragment.newInstance(RoomContributeDataInfo.TYPE_ROOM_MONTH_RANKING)); 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 commonNavigator = new CommonNavigator(getActivity());
commonNavigator.setAdjustMode(false); commonNavigator.setAdjustMode(false);
RankNavigatorAdapter indicator = new RankNavigatorAdapter(AvRoomDataManager.get().isDatingMode()); RankNavigatorAdapter indicator = new RankNavigatorAdapter(AvRoomDataManager.get().isDatingMode());

View File

@@ -16,6 +16,7 @@ import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
import com.yizhuan.erban.avroom.adapter.RoomRankFragmentPageAdapter; import com.yizhuan.erban.avroom.adapter.RoomRankFragmentPageAdapter;
import java.util.ArrayList; import java.util.ArrayList;

View File

@@ -5,6 +5,7 @@ import android.view.View;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter; import com.yizhuan.erban.avroom.adapter.RoomContributeListAdapter;
import com.yizhuan.erban.avroom.widget.RoomRankNavigatorAdapter; import com.yizhuan.erban.avroom.widget.RoomRankNavigatorAdapter;
import com.yizhuan.erban.base.BaseBindingFragment; import com.yizhuan.erban.base.BaseBindingFragment;
@@ -29,7 +30,7 @@ public class RoomRankListFragment extends BaseBindingFragment<FragmentRoomRankLi
List<Fragment> list = new ArrayList<>(2); List<Fragment> list = new ArrayList<>(2);
list.add(new RoomContributeListFragment()); list.add(new RoomContributeListFragment());
list.add(RoomCharmListFragment.newInstance()); 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 commonNavigator = new CommonNavigator(getActivity());
commonNavigator.setAdjustMode(true); commonNavigator.setAdjustMode(true);

View File

@@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter; import androidx.fragment.app.FragmentStatePagerAdapter;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
import com.yizhuan.erban.base.BaseViewBindingActivity; import com.yizhuan.erban.base.BaseViewBindingActivity;
import com.yizhuan.erban.base.TitleBar; import com.yizhuan.erban.base.TitleBar;
import com.yizhuan.erban.databinding.ActivityMyRecommendCardBinding; 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.HAS_USED));
//已失效 //已失效
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.INVALID)); fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.INVALID));
binding.viewPager.setAdapter(new CardPagerAdapter(getSupportFragmentManager())); binding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(), getLifecycle(), fragmentList));
} }
@Override @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();
}
}
} }

View File

@@ -927,11 +927,6 @@ public abstract class BaseActivity extends RxAppCompatActivity
case RoomEvent.RECHARGE: case RoomEvent.RECHARGE:
onNeedCharge(); onNeedCharge();
break; break;
case RoomEvent.RADISH_NOT_ENOUGH:
DialogUiHelper.showRadishNotEnoughDialog(this, null);
break;
case RoomEvent.GIFT_OUT_OF_DATE: case RoomEvent.GIFT_OUT_OF_DATE:
SingleToastUtil.showToast(roomEvent.getMessage()); SingleToastUtil.showToast(roomEvent.getMessage());
break; break;

View File

@@ -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;
}
}
}

View File

@@ -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 ---日期 valuelist集合记录
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)
)
);
}
}
});
}
}

View File

@@ -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 ---日期 valuelist集合记录
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();
}
}

View File

@@ -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); // 钻石礼物显示充值按钮
}
}

View File

@@ -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 ---日期 valuelist集合记录
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);
}
}
}
}
}

View File

@@ -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 ---日期 valuelist集合记录
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();
// }
// }
}

View File

@@ -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 ---日期 valuelist集合记录
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();
// }
// }
}

View File

@@ -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 ---日期 valuelist集合记录
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();
// }
// }
}

View File

@@ -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:
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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);
}

View File

@@ -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()));
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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()));
}
}

View File

@@ -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);
}
}

View File

@@ -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()));
}
}

View File

@@ -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));
}
}

View File

@@ -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) {
}
}
}

View File

@@ -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))
;
}
}

View File

@@ -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;
}
}

View File

@@ -1,10 +0,0 @@
package com.yizhuan.erban.bills.event;
public class TopEvent {
public int position;
public TopEvent(int position) {
this.position = position;
}
}

View File

@@ -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();
}

View File

@@ -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 ---日期 valuelist集合记录
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();
}
}

View File

@@ -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 ---日期 valuelist集合记录
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);
}
}

View File

@@ -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 ---日期 valuelist集合记录
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);
}
}

View File

@@ -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 ---日期 valuelist集合记录
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();
}
};
}
}

View File

@@ -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> {
}

View File

@@ -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());
}
});
}
}

View File

@@ -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());
}
});
}
}

View File

@@ -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());
}
});
}
}

View File

@@ -1,6 +0,0 @@
package com.yizhuan.erban.bills.view;
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
public interface IBillGiftIncomeGroupView extends IMvpBaseView {
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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();
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -5,7 +5,6 @@ import android.content.Context;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.application.IReportConstants; import com.yizhuan.erban.application.IReportConstants;
import com.yizhuan.erban.application.ReportManager; 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.pay.ChargeActivity;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity; import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
import com.yizhuan.xchat_android_core.Constants; import com.yizhuan.xchat_android_core.Constants;
@@ -27,25 +26,6 @@ public class DialogUiHelper {
public static String CHARGE_FROM = ""; 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) { public static void showNeedCharge(Context context, DialogManager dialogManager) {
if (!ActivityUtil.isValidContext(context)) { if (!ActivityUtil.isValidContext(context)) {
return; return;

View File

@@ -256,10 +256,7 @@ public class DecorationDialogHelper {
} else { } else {
if (throwable instanceof BalanceNotEnoughExeption) { if (throwable instanceof BalanceNotEnoughExeption) {
DialogUiHelper.showNeedCharge(context, dialogManager); DialogUiHelper.showNeedCharge(context, dialogManager);
} else if (throwable instanceof RadishNotEnoughException) {
DialogUiHelper.showRadishNotEnoughDialog(context, dialogManager);
} else { } else {
// Toast.makeText(context, throwable.getMessage(), Toast.LENGTH_SHORT).show();
SingleToastUtil.showToastShort(throwable.getMessage()); SingleToastUtil.showToastShort(throwable.getMessage());
} }
} }

View File

@@ -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);
}

View File

@@ -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 {
}

View File

@@ -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();
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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 {
}

View File

@@ -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 {
}

View File

@@ -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();
}

View File

@@ -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);
}

View File

@@ -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 {
}

View File

@@ -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 {
}

View File

@@ -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 {
}

View File

@@ -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());
}
}
});
}
}

View File

@@ -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));
}
}

View File

@@ -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());
}
}
});
}
}

View File

@@ -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());
}
}
});
}
}

View File

@@ -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;
}
});
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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());
}
});
}
}

View File

@@ -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> {
}

View File

@@ -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);
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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));
}
}

View File

@@ -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;
}
});
}
}

View File

@@ -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> {
}

View File

@@ -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();
}
}

View File

@@ -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);
}
}

View File

@@ -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));
}
}

View File

@@ -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() {
}
}

View File

@@ -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());
}
});
}
}

View File

@@ -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);
}
}
}

View File

@@ -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() {
}
}

View File

@@ -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());
}
}));
}
}

View File

@@ -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();
}
}

View File

@@ -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());
}
});
}
}

View File

@@ -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();
}
});
}
}

View File

@@ -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);
}
}

View File

@@ -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);
}
}

View File

@@ -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())));
}
}

View File

@@ -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);
}
}
}

View File

@@ -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();
}
}

View File

@@ -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();
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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());
}
}

View File

@@ -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());
}
}

View File

@@ -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