Compare commits

...

46 Commits

Author SHA1 Message Date
wushaocheng
6d554f141f [Modify]多语言修改 2023-06-08 18:21:04 +08:00
wushaocheng
a6cc7f139f [Modify]修改房间标题位置 2023-06-08 14:19:16 +08:00
wushaocheng
bc8a19e4a4 [Modify]靓号多语言实现 2023-06-08 12:15:25 +08:00
wushaocheng
bec02efd3d [Modify]去掉loading底下的文字 2023-06-08 10:27:43 +08:00
wushaocheng
b3898958d6 [Modify]判断中文环境才显示中文提示语 2023-06-07 17:35:19 +08:00
wushaocheng
0dfe37c18c [Modify]多语言调整 2023-06-07 10:15:44 +08:00
wushaocheng
dc1436008e [Modify]viewpager改造 2023-06-06 16:08:58 +08:00
wushaocheng
64f5ad02e3 [Modify]移除部分无用代码和viewpager改造 2023-06-05 20:13:38 +08:00
wushaocheng
3fadb59a54 [Modify]提交代码测试 2023-06-05 11:03:56 +08:00
wushaocheng
d5fe1a6b22 [Modify]ViewPager改为ViewPager2适配阿拉伯语 2023-06-02 18:59:34 +08:00
wushaocheng
f2995f9683 [Modify]SVGA动画多语言适配 2023-06-01 15:39:40 +08:00
wushaocheng
8e659b1d29 [Modify]多语言调整 2023-05-31 14:16:06 +08:00
wushaocheng
788121b77e [Modify]多语言调整 2023-05-30 20:59:11 +08:00
wushaocheng
1aa6643e31 [Modify]阿拉伯语适配 2023-05-30 15:46:21 +08:00
wushaocheng
a5f0b24116 [BugFix]修复测试服贵族信息报错 2023-05-30 11:53:42 +08:00
wushaocheng
39440ad00d [Modify]多语言图片补全 2023-05-29 18:37:10 +08:00
wushaocheng
80c666e70b [Modify]h5分享链接加上语言的字段 2023-05-29 15:58:09 +08:00
wushaocheng
c295991315 [Modify]分区功能完善 2023-05-29 15:20:27 +08:00
wushaocheng
38c21cab46 [Modify]分区功能完善 2023-05-29 15:19:46 +08:00
wushaocheng
9ca41b702a [Modify]分区功能ui调整 2023-05-29 14:23:48 +08:00
wushaocheng
45b2f30f24 [Modify]多语言图片修改 2023-05-26 19:05:13 +08:00
wushaocheng
0a84780857 [Modify]图片默认展示用英语 2023-05-26 14:23:10 +08:00
wushaocheng
96b4365848 [Modify]切换分区后切换对应数据 2023-05-26 10:45:59 +08:00
wushaocheng
d0606048a0 [Modify]阿拉伯语图片导入 2023-05-25 18:22:54 +08:00
wushaocheng
a4470fbdc3 [Modify]修改运营提的文字错误 2023-05-25 17:02:32 +08:00
wushaocheng
65c4d461e7 [Modify]繁体字适配 2023-05-25 15:21:42 +08:00
wushaocheng
b5b582499b [Modify]简体中文显示繁体,土耳其语图片导入 2023-05-25 14:38:42 +08:00
wushaocheng
1716ae6951 [Modify]修复首页底部文案显示问题 2023-05-25 11:34:01 +08:00
wushaocheng
0ba4e18f89 [Modify]默认文字为英文 2023-05-24 19:18:18 +08:00
wushaocheng
a8db258053 [Modify]默认文字为中文 2023-05-24 19:11:11 +08:00
wushaocheng
adeff9987b [Modify]推荐文字适配 2023-05-24 18:24:54 +08:00
wushaocheng
95f7c525ab [Modify]阿拉伯语适配 2023-05-24 18:06:30 +08:00
wushaocheng
c6cef55b9a [Modify]加入印尼语图片 2023-05-24 15:47:21 +08:00
wushaocheng
fc66ad40b3 [Modify]加入英文图片 2023-05-24 15:25:51 +08:00
wushaocheng
319fb01d1f [Modify]分区功能修改 2023-05-23 18:46:44 +08:00
wushaocheng
a10359520e [Modify]阿拉伯语&app_name;修改,头像逻辑修改 2023-05-23 16:56:14 +08:00
wushaocheng
826e27d529 [Modify]修改Accept-Language字段 2023-05-23 11:34:26 +08:00
wushaocheng
3762a73b57 [Modify]优化消息页面ui 2023-05-23 11:23:38 +08:00
wushaocheng
8132149519 [Modify]去掉无用图片 2023-05-22 19:35:03 +08:00
wushaocheng
72801de835 [Modify]修改阿拉伯语多语言 2023-05-22 15:00:57 +08:00
wushaocheng
474ea419b9 [Modify]修改阿拉伯语多语言和进行语言适配 2023-05-19 20:29:12 +08:00
wushaocheng
6f39168afe [Modify]实现多语言分区切换和给H5页面传递当前语言 2023-05-18 17:12:20 +08:00
wushaocheng
4e7ac5368c [Modify]多语言适配 2023-05-17 22:34:53 +08:00
wushaocheng
c96d968561 [Modify]移除无用图片和代码 2023-05-16 22:27:28 +08:00
wushaocheng
b5110e9996 [Modify]移除无用图片和代码 2023-05-16 19:46:07 +08:00
wushaocheng
c66b314102 [Modify]整理中文 2023-05-04 21:27:44 +08:00
2273 changed files with 50044 additions and 35635 deletions

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="crop__saving">…جارٍ حفظ الصورة</string>
<string name="crop__wait">…انتظر من فضلك</string>
<string name="crop__pick_error">لا يوجد مصدر صورة متاح</string>
<string name="crop__done">ينهي</string>
<string name="crop__cancel">يلغي</string>
</resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="crop__saving">Saving photo…</string>
<string name="crop__wait">Please wait…</string>
<string name="crop__pick_error">No image source available</string>
<string name="crop__done">Finish</string>
<string name="crop__cancel">Cancel</string>
</resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="crop__saving">Menyimpan foto…</string>
<string name="crop__wait">Harap tunggu…</string>
<string name="crop__pick_error">Tidak ada sumber gambar yang tersedia</string>
<string name="crop__done">Menyelesaikan</string>
<string name="crop__cancel">Membatalkan</string>
</resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="crop__saving">Fotoğraf kaydediliyor…</string>
<string name="crop__wait">Lütfen bekleyin…</string>
<string name="crop__pick_error">Görüntü kaynağı yok</string>
<string name="crop__done">Sona ermek</string>
<string name="crop__cancel">İptal etmek</string>
</resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="crop__saving">正在儲存相片…</string>
<string name="crop__wait">請稍候…</string>
<string name="crop__pick_error">沒有可用的圖片來源</string>
<string name="crop__done">完成</string>
<string name="crop__cancel" tools:ignore="ButtonCase">取消</string>
</resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="crop__saving">正在儲存相片…</string>
<string name="crop__wait">請稍候…</string>
<string name="crop__pick_error">沒有可用的圖片來源</string>
<string name="crop__done">完成</string>
<string name="crop__cancel" tools:ignore="ButtonCase">取消</string>
</resources>

View File

@@ -1,10 +1,9 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<resources>
<string name="crop__saving">正在儲存相片</string>
<string name="crop__wait">請稍候</string>
<string name="crop__pick_error">沒有可用的圖片來源</string>
<string name="crop__done">完成</string>
<string name="crop__cancel" tools:ignore="ButtonCase">取消</string>
<string name="crop__saving">Saving photo</string>
<string name="crop__wait">Please wait</string>
<string name="crop__pick_error">No image source available</string>
<string name="crop__done">Finish</string>
<string name="crop__cancel">Cancel</string>
</resources>

View File

@@ -24,7 +24,7 @@
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_gravity">center</item>
<item name="android:gravity">center_vertical</item>
<item name="android:paddingRight">20dp</item> <!-- Offsets left drawable -->
<item name="android:paddingEnd">20dp</item> <!-- Offsets left drawable -->
<item name="android:drawablePadding">8dp</item>
<item name="android:textColor">@color/crop__button_text</item>
<item name="android:textStyle">bold</item>

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 572 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 556 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

After

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 709 B

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 B

After

Width:  |  Height:  |  Size: 536 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 709 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 B

View File

@@ -69,8 +69,7 @@
<uses-permission android:name="com.meizu.flyme.push.permission.RECEIVE" /> <!-- 兼容flyme3.0配置权限 -->
<uses-permission android:name="${applicationId}.push.permission.MESSAGE" />
<uses-permission android:name="com.meizu.c2dm.permission.RECEIVE" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<!-- AppsFlyer需要参考https://dev.appsflyer.com/hc/docs/install-android-sdk#setting-required-permissions -->
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" /> <!-- AppsFlyer需要参考https://dev.appsflyer.com/hc/docs/install-android-sdk#setting-required-permissions -->
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
<application
@@ -287,10 +286,6 @@
android:name=".home.activity.CollectionRoomActivity"
android:label="@string/main_androidmanifest_019"
android:screenOrientation="portrait" />
<activity
android:name=".ui.wallet.ExchangeGoldActivity"
android:label="@string/main_androidmanifest_020"
android:screenOrientation="portrait" />
<activity
android:name=".ui.setting.SettingActivity"
android:screenOrientation="portrait" />
@@ -300,9 +295,6 @@
<activity
android:name=".ui.relation.FansListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.withdraw.WithdrawActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.withdraw.bankcard.BindWithdrawBankCardActivity"
android:screenOrientation="portrait" />
@@ -318,18 +310,6 @@
<activity
android:name=".ui.user.activity.ShowPhotoActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.TotalBillsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.WithdrawBillsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.ChargeBillsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.ChatBillsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.setting.FeedbackActivity"
android:screenOrientation="portrait" />
@@ -343,21 +323,6 @@
<activity
android:name=".ui.webview.SimpleWebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.RedBagBillsActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.BillGiftExpendActivity"
android:label="@string/main_androidmanifest_021"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.BillGiftInComeActivity"
android:label="@string/main_androidmanifest_022"
android:screenOrientation="portrait" />
<activity
android:name=".bills.activities.BillNobleActivity"
android:label="@string/bill_noble_open"
android:screenOrientation="portrait" />
<activity
android:name=".avroom.activity.RoomInviteActivity"
android:label="@string/main_androidmanifest_023"
@@ -400,42 +365,6 @@
android:name=".friend.view.SelectFriendActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyPlazaActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyHomeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilySearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyManageActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyCurrencyActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyMemberListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyInfoActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyMemberSearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".team.view.NimTeamMessageActivity"
android:screenOrientation="portrait"
@@ -480,10 +409,6 @@
android:name=".luckymoney.view.LuckyMoneyDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" /> <!-- android:launchMode="singleTask" -->
<activity
android:name=".family.view.activity.FamilyMemberCurrencyActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".ErbanTakePhotoActivity"
android:screenOrientation="portrait"
@@ -492,18 +417,6 @@
android:name=".team.view.UpdateTeamNameActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilySelectFriendActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyTextInputActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".family.view.activity.FamilyGameListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".treasure_box.activity.TreasureBoxActivity"
android:theme="@style/dialog_web_view_activity" />
@@ -539,9 +452,6 @@
android:name=".ui.user.decorationsend.DecorationSendActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".avroom.activity.RoomRankListActivity"
android:screenOrientation="portrait" />
<activity
android:name=".avroom.activity.RoomOnlineUserActivity"
android:screenOrientation="portrait" />
@@ -665,18 +575,6 @@
android:name="com.yizhuan.tutu.room_chat.activity.NimHallTeamRoomMessageActivity"
android:screenOrientation="portrait"
android:theme="@style/room_message_activity" />
<activity
android:name=".bills.activities.BillGiftIncomeGroupActivity"
android:screenOrientation="portrait" />
<activity
android:name=".radish.activity.RadishRecordActivity"
android:screenOrientation="portrait" />
<activity
android:name=".radish.signin.SignInActivity"
android:screenOrientation="portrait" />
<activity
android:name=".radish.task.activity.TaskCenterActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.patriarch.PatriarchModeActivity"
android:screenOrientation="portrait" />
@@ -734,18 +632,9 @@
android:name=".miniworld.activity.MiniWorldMainActivity"
android:screenOrientation="portrait" />
<activity android:name=".ui.im.friend.ActFriendList" />
<activity
android:name=".bank_card.activity.BankCardListActivity"
android:screenOrientation="portrait" /> <!-- 萝卜-签到-任务 -->
<activity
android:name=".bank_card.activity.BankCardListUnbindActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bank_card.activity.BankCardBindActivity"
android:screenOrientation="portrait" />
<activity
android:name=".bank_card.activity.AddBankCardAgreementActivity"
android:screenOrientation="portrait" />
<activity
android:name="com.tongdaxing.erban.sadmin.RoomSAdminManagerActivity"
android:screenOrientation="portrait" />
@@ -776,10 +665,6 @@
<activity
android:name="com.zhihu.matisse.internal.ui.SelectedPreviewActivity"
android:screenOrientation="portrait" /> <!-- 房间内私聊 -->
<activity
android:name=".ui.wallet.sendgold.SendGoldActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".pay.activity.GiveGoldActivity"
android:screenOrientation="portrait"
@@ -972,12 +857,16 @@
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".ui.webview.FairyDialogWebViewActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:theme="@style/dialog_web_view_activity" />
<activity
android:name=".ui.setting.AreaSelectActivity"
android:configChanges="screenSize|orientation|keyboardHidden|mcc|mnc|locale|touchscreen|screenLayout|keyboard|navigation|fontScale|uiMode|smallestScreenSize|layoutDirection"
android:exported="false"
android:screenOrientation="portrait" />
<meta-data
android:name="notch.config"
@@ -1018,8 +907,7 @@
android:name="com.netease.nimlib.service.NimReceiver"
android:exported="false"
android:process=":core"
tools:node="remove">
</receiver>
tools:node="remove"></receiver>
<receiver android:name="com.netease.nimlib.service.ResponseReceiver" />
<receiver
android:name=".reciever.IncomingCallReceiver"
@@ -1029,6 +917,7 @@
</intent-filter>
</receiver>
<receiver android:name=".reciever.NotificationClickReceiver" />
<service
android:name="com.netease.nimlib.service.NimService"
android:process=":core" />

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -49,7 +49,7 @@ import com.yizhuan.erban.common.widget.DragLayout;
import com.yizhuan.erban.community.dynamic.view.DynamicDetailActivity;
import com.yizhuan.erban.community.publish.view.PublishActivity;
import com.yizhuan.erban.community.square.SquareFragment;
import com.yizhuan.erban.family.view.activity.FamilyHomeActivity;
import com.yizhuan.erban.event.AreaChangeEvent;
import com.yizhuan.erban.home.HomeViewModel;
import com.yizhuan.erban.home.dialog.NewUserHelloDialog;
import com.yizhuan.erban.home.dialog.ProtocolUpdateDialog;
@@ -89,6 +89,7 @@ import com.yizhuan.xchat_android_core.auth.event.LogoutEvent;
import com.yizhuan.xchat_android_core.channel_page.model.ChannelPageModel;
import com.yizhuan.xchat_android_core.community.event.SquareTaskEvent;
import com.yizhuan.xchat_android_core.community.event.UnReadCountEvent;
import com.yizhuan.xchat_android_core.home.bean.MainTabInfo;
import com.yizhuan.xchat_android_core.home.bean.MainTabType;
import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent;
import com.yizhuan.xchat_android_core.home.event.VisitorUnreadCountEvent;
@@ -190,6 +191,21 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
context.startActivity(intent);
}
/**
* 让页面重新执行生命周期
* @param context
* @param extras
*/
public static void startNewTask(Context context, Intent extras) {
Intent intent = new Intent();
intent.setClass(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
if (extras != null) {
intent.putExtras(extras);
}
context.startActivity(intent);
}
/**
* @return true 如果处理了跳转
*/
@@ -204,8 +220,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
// 跳转
if (!StringUtil.isEmpty(linkedInfo.getRoomUid()) && linkedInfo.getType().equals("2")) {
AVRoomActivity.start(context, Long.parseLong(linkedInfo.getRoomUid()));
} else if (!StringUtil.isEmpty(linkedInfo.getFamilyId()) && linkedInfo.getType().equals("4")) {
FamilyHomeActivity.start(context, linkedInfo.getFamilyId());
} else if (!TextUtils.isEmpty(linkedInfo.getUrl()) && linkedInfo.getType().equals("3")) {
CommonWebViewActivity.start(context, UriProvider.getLinkUrl(linkedInfo.getUrl()));
} else if (!TextUtils.isEmpty(linkedInfo.getWorldId()) && linkedInfo.getType().equals("5")) {
@@ -247,11 +261,15 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
.doOnError(throwable -> onNeedLogin())
.subscribe();
initView();
InitialModel.get().getMainTabInfosLiveData().observeForever(mainTabInfo -> {
if (mainTabInfo != null) {
mMainTabLayout.setMainTabInfoList(mainTabInfo);
}
});
// InitialModel.get().getMainTabInfosLiveData().observeForever(mainTabInfo -> {
// if (mainTabInfo != null) {
// mMainTabLayout.setMainTabInfoList(mainTabInfo);
// }
// });
List<MainTabInfo> tabInfoList = InitialModel.get().getDefaultMainTab();
if (tabInfoList != null) {
mMainTabLayout.setMainTabInfoList(tabInfoList);
}
//检测更新
AppUpgradeHelper.checkAppUpgrade(this);
initMaterialView();
@@ -579,6 +597,12 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
});
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onAreaChangeEvent(AreaChangeEvent event) {
toast(getString(R.string.succeeded_in_switching_the_partition));
startNewTask(this, null);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onNeedCompleteInfo(NeedCompleteInfoEvent event) {
getDialogManager().dismissDialog();

View File

@@ -12,17 +12,14 @@ import com.netease.nimlib.sdk.msg.constant.MsgTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
import com.yizhuan.erban.base.BaseActivity;
import com.yizhuan.erban.radish.signin.SignInActivity;
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
import com.yizhuan.erban.utils.PushMessageHandler;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomInviteFansAttachment;
import com.yizhuan.xchat_android_library.utils.UIUtils;
import java.util.ArrayList;
import java.util.Map;
@@ -106,11 +103,6 @@ public class NimMiddleActivity extends BaseActivity {
if (noticeAttachment.getUid() > 0) {
AVRoomActivity.start(this, noticeAttachment.getUid());
}
} else if (attachment instanceof OpenSignInAttachment) {
if (AuthModel.get().isImLogin()
&& !UIUtils.isTopActivity(this, SignInActivity.class.getSimpleName())) {
SignInActivity.start(this);
}
} else if (attachment.getFirst() == CustomAttachment.CUSTOM_MSG_RED_PACKAGE) {
if (attachment.getSecond() == CustomAttachment.CUSTOM_MSG_SUB_RED_PACKAGE_RECEIVE_ALL_DIAMOND) {
RedPackageAttachment redPackageAttachment = (RedPackageAttachment) attachment;

View File

@@ -27,8 +27,6 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.lang.ref.WeakReference;
/**
* 全局处理比如App弹窗
* create by lvzebiao @2019/8/14

View File

@@ -49,7 +49,6 @@ import com.yizhuan.erban.common.app.ActivityStack;
import com.yizhuan.erban.common.util.AppLifeCycleHelper;
import com.yizhuan.erban.module_hall.HallDataManager;
import com.yizhuan.erban.other.activity.SplashActivity;
import com.yizhuan.erban.radish.wallet.RadishWalletManager;
import com.yizhuan.erban.utils.PushMessageHandler;
import com.yizhuan.xchat_android_constants.XChatConstants;
import com.yizhuan.xchat_android_core.Constants;
@@ -442,8 +441,6 @@ public class XChatApplication extends BaseApp {
DynamicFaceModel.get().init();
PayModel.get();
UserModel.get();
//ui层的萝卜钱包
RadishWalletManager.get();
//model层的
RadishModel.get();

View File

@@ -30,7 +30,6 @@ import com.yizhuan.erban.base.TitleBar;
import com.yizhuan.erban.common.widget.dialog.DialogManager;
import com.yizhuan.erban.databinding.ActivityVoiceMatchBinding;
import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity;
import com.yizhuan.erban.ui.widget.higuide.TuTuGuideHelper;
import com.yizhuan.xchat_android_core.audio.AudioModel;
import com.yizhuan.xchat_android_core.audio.bean.HistoryVoiceInfo;
import com.yizhuan.xchat_android_core.audio.bean.VoiceMatchInfo;
@@ -38,10 +37,8 @@ import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.music.model.PlayerModel;
import com.yizhuan.xchat_android_core.user.UserModel;
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
import com.yizhuan.xchat_android_core.utils.ActivityUtil;
import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils;
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
import com.yizhuan.xchat_android_library.utils.ListUtils;
import com.yizhuan.xchat_android_library.utils.ResUtil;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
@@ -160,23 +157,6 @@ public class VoiceMatchActivity extends BaseViewBindingActivity<ActivityVoiceMat
});
}
/**
* 显示引导图的时机
* 1. 首次进入页面isNeedHiGuide
* 2. 请求数据且数据不为空时
*/
private void showGuide() {
/*引导图*/
binding.svgaGroupVoiceLike.postDelayed(() -> {
if (!ActivityUtil.isValidContext(context)) {
return;
}
TuTuGuideHelper guideHelper = new TuTuGuideHelper(context);
guideHelper.createHiGuide(() -> guideHelper.createVoiceMatchGuide(binding.svgaGroupVoiceLike, binding.layoutMyVoiceEntrance));
TuTuGuideHelper.setNoNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_VOICE_MATCH);
}, 500);
}
private void queryHistoryVoice() {
AudioModel.get().queryHistoryVoice(AuthModel.get().getCurrentUid())
.compose(bindUntilEvent(ActivityEvent.DESTROY))
@@ -377,10 +357,6 @@ public class VoiceMatchActivity extends BaseViewBindingActivity<ActivityVoiceMat
if (isFinishing() || isDestroyed()) {
return;
}
if (TuTuGuideHelper.isNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_VOICE_MATCH)
&& !ListUtils.isListEmpty(voiceMatchInfos)) {
showGuide();// 首次进入页面isNeedHiGuide且 请求成功数据不为空时,显示引导图
}
if (voiceMatchInfos != null) {
if (voiceMatchInfos.size() == 0) {
binding.groupVoiceLayout.setVisibility(View.INVISIBLE);

View File

@@ -161,7 +161,7 @@ public class ButtonItemFactory {
//关注
buttonItems.add(createAttentItem());
//关注
//@Ta
buttonItems.add(createAtItem());
final RoomInfo currentRoom = AvRoomDataManager.get().mCurrentRoomInfo;

View File

@@ -49,7 +49,6 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
import com.orhanobut.logger.Logger;
import com.trello.rxlifecycle3.android.ActivityEvent;
import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.dialog.NewUserGiftDialog;
import com.yizhuan.erban.avroom.dialog.SingleRoomTipDialog;
import com.yizhuan.erban.avroom.firstcharge.FirstChargeDialog;
import com.yizhuan.erban.avroom.fragment.FakeSingleRoomBackFragment;
@@ -88,7 +87,6 @@ import com.yizhuan.xchat_android_core.auth.event.LogoutEvent;
import com.yizhuan.xchat_android_core.bean.BaseProtocol;
import com.yizhuan.xchat_android_core.channel_page.bean.HelloMessageInfo;
import com.yizhuan.xchat_android_core.gift.GiftModel;
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo;
import com.yizhuan.xchat_android_core.gift.bean.LuckyBagNoticeInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPKAttachment;
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean;
@@ -1046,7 +1044,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
//获取管理员
getMvpPresenter().getNormalChatMember();
getMvpPresenter().getSuperAdminList();
getMvpPresenter().checkNewUserGift();
if (UserUtils.getUserInfo().isFirstCharge()) {
getMvpPresenter().checkFirstCharge();
}
@@ -1284,11 +1281,6 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
this::handlePmExitRoom);
}
@Override
public void showNewUserDialog(GiftInfo giftInfo) {
new NewUserGiftDialog(giftInfo).show(this);
}
@Override
public void showFirstChargeDialog(FirstChargeInfo firstChargeInfo) {
Single.timer(firstChargeInfo.getShowAfterSecond() * 1000L, TimeUnit.MILLISECONDS, AndroidSchedulers.mainThread())

View File

@@ -1,95 +0,0 @@
package com.yizhuan.erban.avroom.activity;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.fragment.RoomCharmListFragment;
import com.yizhuan.erban.avroom.fragment.RoomContributeListFragment;
import com.yizhuan.erban.base.BaseBindingActivity;
import com.yizhuan.erban.databinding.ActivityRoomRankListBinding;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes;
import java.util.ArrayList;
import java.util.List;
/**
* 房间排行榜,(魅力榜+贡献榜)
*/
@ActLayoutRes(R.layout.activity_room_rank_list)
public class RoomRankListActivity extends BaseBindingActivity<ActivityRoomRankListBinding> {
public static void start(Context context) {
Intent intent = new Intent(context, RoomRankListActivity.class);
context.startActivity(intent);
}
private String [] bgPicture = new String[]{""};
@Override
protected void init() {
mBinding.setClick(this);
List<Fragment> list = new ArrayList<>();
list.add(RoomCharmListFragment.newInstance());
list.add(new RoomContributeListFragment());
mBinding.viewPager.setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return list.get(position);
}
@Override
public int getCount() {
return list.size();
}
});
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
mBinding.setPosition(position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
AVRoomActivity.setBackBg(this, AvRoomDataManager.get().mCurrentRoomInfo, mBinding.svgaImageViewBg, bgPicture);
}
@Override
public void onClick(View v) {
super.onClick(v);
switch (v.getId()) {
case R.id.iv_back:
finish();
break;
case R.id.tv_charm_tab:
mBinding.viewPager.setCurrentItem(0);
break;
case R.id.tv_contribute_tab:
mBinding.viewPager.setCurrentItem(1);
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mBinding.svgaImageViewBg.isAnimating()) {
mBinding.svgaImageViewBg.clearAnimation();
}
}
}

View File

@@ -1,48 +0,0 @@
package com.yizhuan.erban.avroom.adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.yizhuan.erban.R;
import com.yizhuan.xchat_android_library.list.BaseGroupItem;
import com.yizhuan.xchat_android_library.list.ViewHolder;
/**
* Created by chenran on 2017/8/9.
*/
public class AuctionListHeaderItem extends BaseGroupItem{
public AuctionListHeaderItem(Context context, int viewType) {
super(context, viewType);
}
@Override
public ViewHolder createViewHolder(ViewGroup group) {
View view = LayoutInflater.from(getContext()).inflate(R.layout.list_item_auction_header, null);
AuctionListHeaderItem.AuctionListHeaderHolder holder = new AuctionListHeaderItem.AuctionListHeaderHolder(view);
return holder;
}
@Override
public void updateHolder(ViewHolder holder, int groupPos, int childPos) {
AuctionListHeaderItem.AuctionListHeaderHolder auctionListHolder = (AuctionListHeaderItem.AuctionListHeaderHolder) holder;
if (auctionListHolder != null) {
if (getViewType() == AuctionListAdapter.VIEW_TYPE_WEEK_HEADER) {
auctionListHolder.image.setImageResource(R.drawable.icon_week_auction_list);
} else {
auctionListHolder.image.setImageResource(R.drawable.icon_total_auction_list);
}
}
}
private static class AuctionListHeaderHolder extends ViewHolder {
private ImageView image;
public AuctionListHeaderHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.auction_list_header);
}
}
}

View File

@@ -100,13 +100,17 @@ class DatingMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(context)
) {
tvSelectedStatus.text =
if (AvRoomDataManager.get().isDatingVipMic(it.selectMicPosition)
) ResUtil.getString(R.string.avroom_adapter_datingmicroviewadapter_01) else "${it.selectMicPosition + 1}"
) ResUtil.getString(R.string.avroom_adapter_datingmicroviewadapter_01) else "${
context.getString(
R.string.micro_select
)
}${it.selectMicPosition + 1}${context.getString(R.string.micro_number)}"
} else {
tvSelectedStatus.text = "已選擇"
tvSelectedStatus.text = context.getString(R.string.micro_have_select)
}
} else {
tvSelectedStatus.isSelected = false
tvSelectedStatus.text = "未選擇"
tvSelectedStatus.text = context.getString(R.string.micro_no_select)
}
}
@@ -128,7 +132,8 @@ class DatingMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(context)
if (AvRoomDataManager.POSITION_VIP_MIC == position) {
tvNick.text = ""
} else if (position != -1) {
tvNick.text = "${if (manMicro) "男神" else "女神"}"
tvNick.text = "${context.getString(R.string.micro_number)}${if (manMicro) context.getString(
R.string.god) else context.getString(R.string.goddess)}${context.getString(R.string.place)}"
}
}
@@ -145,7 +150,7 @@ class DatingMicroViewAdapter(context: Context?) : BaseMicroViewAdapter(context)
super.bind(info, position)
if (info.mChatRoomMember == null) {
tvNick.alpha = 1f
tvNick.text = "主持人"
tvNick.text = context.getString(R.string.micro_compere)
ivVipWear.isVisible = false
} else {
if (info.mChatRoomMember.isVipMic) {

View File

@@ -12,7 +12,7 @@ class RoomPKSearchAdapter :
override fun convert(helper: BaseViewHolder, item: SimpleRoomInfo) {
helper.setText(R.id.tv_room_title,item.title.subAndReplaceDot(7))
.setText(R.id.tv_room_id,"Peko号:${item.erbanNo}")
.setText(R.id.tv_room_id,"${mContext.getString(R.string.peko_number)}${item.erbanNo}")
.setChecked(R.id.check_box,item.checked)
ImageLoadUtils.loadImage(mContext,item.avatar,helper.getView(R.id.iv_avatar))
helper.addOnClickListener(R.id.iv_avatar,R.id.check_box)

View File

@@ -54,7 +54,7 @@ class RoomPkFinishDialog : BaseDialog<DialogRoomPkFinishBinding>() {
roomPkBean.csRank.getOrNull(0)?.let {
binding.tvNickContribute.text = it.nick.subAndReplaceDot(7)
binding.tvValueContribute.text = "神豪值:${it.amount}"
binding.tvValueContribute.text = "${getString(R.string.divine_value)}${it.amount}"
ImageLoadUtils.loadImage(
context,
it.avatar,
@@ -65,7 +65,7 @@ class RoomPkFinishDialog : BaseDialog<DialogRoomPkFinishBinding>() {
roomPkBean.crRank.getOrNull(0)?.let {
binding.tvNickCharm.text = it.nick.subAndReplaceDot(7)
binding.tvValueCharm.text = "魅力值:${it.amount}"
binding.tvValueCharm.text = "${getString(R.string.charm_value)}${it.amount}"
ImageLoadUtils.loadImage(
context,
it.avatar,

View File

@@ -3,6 +3,7 @@ package com.yizhuan.erban.avroom.anotherroompk
import android.annotation.SuppressLint
import android.os.Bundle
import androidx.core.view.isVisible
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.DialogRoomPkReceivedBinding
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean
@@ -37,7 +38,7 @@ class RoomPkReceivedDialog : BaseDialog<DialogRoomPkReceivedBinding>() {
@SuppressLint("CheckResult")
override fun init() {
binding.tvNick.text = pkBean.inviteRoomTitle.subAndReplaceDot(7)
binding.tvTime.text = "${pkBean.pkDuration}分鐘"
binding.tvTime.text = "${pkBean.pkDuration}${getString(R.string.avroom_dialog_pktimepickerdialog_01)}"
pkBean.pkDesc.ifNotNullOrEmpty {
binding.tvDescTitle.isVisible = true
binding.tvDesc.isVisible = true

View File

@@ -1,19 +0,0 @@
package com.yizhuan.erban.avroom.dialog
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.DialogNewUserGiftBinding
import com.yizhuan.erban.ui.utils.load
import com.yizhuan.xchat_android_core.gift.bean.GiftInfo
class NewUserGiftDialog(val giftInfo: GiftInfo) :
BaseDialog<DialogNewUserGiftBinding>() {
override fun init() {
binding.ivClose.setOnClickListener {
dismissAllowingStateLoss()
}
binding.ivGift.load(giftInfo.giftUrl)
binding.tvGiftName.text = "${giftInfo.giftName}*${giftInfo.count}"
}
}

View File

@@ -7,6 +7,7 @@ import android.text.Editable
import android.text.style.ForegroundColorSpan
import android.view.WindowManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.yizhuan.erban.R
import com.yizhuan.erban.avroom.adapter.SendBroadcastAdapter
import com.yizhuan.erban.base.BaseActivity
import com.yizhuan.erban.base.BaseDialog
@@ -91,12 +92,12 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
broadcastInfo = info
rvDelegate.setNewData(info.recommends)
binding.tvAvailableCountNum.text = "${info.availableTimes}/${info.total}"
binding.editContent.hint = "输入内容不能少于${info.minWords}个字,请文明发言哦~"
binding.editContent.hint = "${getString(R.string.input_content_cannot_be_less_than)}${info.minWords}${getString(R.string.please_speak_civilized_oh)}"
binding.tvContentNumLimit.text = "0/${info.maxWords}"
if (info.seconds > 0) {
beginIntervalTime(info)
} else {
binding.tvSendHint.text = "发布后,${info.minutes}分钟内不可再发布广播"
binding.tvSendHint.text = "${getString(R.string.after_the_release)}${info.minutes}${getString(R.string.do_not_broadcast_within_minutes)}"
}
}
@@ -107,7 +108,7 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
.observeOn(AndroidSchedulers.mainThread())
.compose(bindToLifecycle())
.doOnComplete {
binding.tvSendHint.text = "发布后,${info.minutes}分钟内不可再发布广播"
binding.tvSendHint.text = "${getString(R.string.after_the_release)}${info.minutes}${getString(R.string.do_not_broadcast_within_minutes)}"
}
.subscribe {
binding.tvSendHint.text = SpannableBuilder()
@@ -115,7 +116,7 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
"${info.seconds - it}",
ForegroundColorSpan(Color.parseColor("#FFFDA615"))
)
.append("后可以再次发布")
.append(getString(R.string.you_can_publish_it_again))
.build()
}
}
@@ -123,13 +124,13 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
@SuppressLint("CheckResult")
private fun sendBroadcast() {
if (broadcastInfo == null) {
"数据加载中,请稍后...".toast()
getString(R.string.data_loading_please_wait).toast()
return
}
broadcastInfo?.let {
val msg = binding.editContent.text
if (msg.isNullOrEmpty() || msg.length < it.minWords) {
"输入内容不能少于${it.minWords}个字!".toast()
"${getString(R.string.the_input_content_cannot_be_less_than)}${it.minWords}${getString(R.string.a_world)}".toast()
return@let
}
val dialogManager = (requireActivity() as BaseActivity).dialogManager
@@ -138,7 +139,7 @@ class SendBroadcastDialog : BaseDialog<DialogSendBroadcastBinding>() {
.compose(bindToLifecycle())
.subscribe(
{
"发送成功".toast()
getString(R.string.send_success).toast()
dialogManager.dismissDialog()
dismissAllowingStateLoss()
},

View File

@@ -117,6 +117,7 @@ import io.reactivex.disposables.Disposable
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import java.util.*
/**
@@ -702,7 +703,13 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
.compose(bindUntilEvent(FragmentEvent.DESTROY))
.doOnError {
if (it is VipLevelNotEnoughException) {
dialogManager.showOkDialog("尚未達到贈送${giftInfo.giftName}所需貴族等級,所需貴族等級:${giftInfo.giftVipInfo?.vipName}")
dialogManager.showOkDialog(
"${getString(R.string.not_yet_given)}${giftInfo.giftName}${
getString(
R.string.rank_of_nobility_required
)
}${giftInfo.giftVipInfo?.vipName}"
)
}
}
.subscribe { _, throwable ->
@@ -754,7 +761,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
) {
val buttonItems: MutableList<ButtonItem> = ArrayList(4)
val presideMic = AvRoomDataManager.get().isDatingMode && micPosition == -1
val presideText = if (presideMic) "當主持人" else ""
val presideText = if (presideMic) getString(R.string.maria_bartiromo) else ""
val buttonItem1 = ButtonItem(
getString(R.string.embrace_up_mic) + presideText,
object : ButtonItem.OnClickListener {
@@ -800,7 +807,13 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
}
})
val buttonItem4 =
ButtonItem("上麥") { toUpMicroPhone(micPosition, currentUid.toString() + "", false) }
ButtonItem(getString(R.string.up_micro)) {
toUpMicroPhone(
micPosition,
currentUid.toString() + "",
false
)
}
//別問為什麽ui調整了順序
//禁用超管的上麥和抱TA上麥
if (!SuperAdminUtil.isSuperAdmin()) {
@@ -984,7 +997,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
@SuppressLint("CheckResult")
override fun toUpMicroPhone(micPosition: Int, currentUid: String, b: Boolean) {
if (AvRoomDataManager.get().isSelfGamePlaying) {
SingleToastUtil.showToast("遊戲中不可以換麥!")
SingleToastUtil.showToast(getString(R.string.not_change_wheat_in_the_game))
return
}
UserModel.get().cacheLoginUserInfo?.gameStatus = GameStatus.STATUS_NOT_JOIN
@@ -993,9 +1006,9 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
if (result) {
mvpPresenter?.upMicroPhone(micPosition, currentUid, b)
} else {
toast("請給予麥克風權限後再試!")
toast(getString(R.string.please_give_the_microphone_permission))
}
}, { _: Throwable? -> toast("發生一些異常,請稍後重試!") })
}, { _: Throwable? -> toast(getString(R.string.something_abnormal_happens)) })
}
/**
@@ -1059,7 +1072,9 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
val rvSpeedyMessage =
speedyMessageContainer.findViewById<RecyclerView>(R.id.rv_speedy_message)
val phrases = AvRoomDataManager.get().phrases
if (ListUtils.isListEmpty(phrases) || !TimeUtils.isTomorrow(DemoCache.readSpeedyMessageGoneTime())) {
if (ListUtils.isListEmpty(phrases) || !TimeUtils.isTomorrow(DemoCache.readSpeedyMessageGoneTime())
|| Locale.getDefault().language != "zh"
) {
speedyMessageContainer.visibility = View.GONE
return
}
@@ -1084,10 +1099,10 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
val roomInfo =
AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnItemClickListener
if (roomInfo.isCloseScreen) {
toast("房間公屏已關閉")
toast(getString(R.string.public_screen_in_the_room_is_closed))
return@setOnItemClickListener
}
SingleToastUtil.showToast("你發送的太頻繁啦,請稍後再試")
SingleToastUtil.showToast(getString(R.string.send_too_often))
}
}
speedyMessageContainer.findViewById<View>(R.id.iv_close_speedy_message).setOnClickListener {
@@ -1101,7 +1116,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
}
override fun onFollowFail(msg: String?) {
toast("關註失敗,請稍後重試")
toast(getString(R.string.focus_failure))
}
override fun updateMicView() {
@@ -1200,7 +1215,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
AudioEngineManager.get().setRole(Constants.CLIENT_ROLE_BROADCASTER)
updateMicBtn()
} else {
toast("開啟權限後才能開麥")
toast(getString(R.string.only_after_the_permission_is_enabled))
}
}
return
@@ -1227,7 +1242,7 @@ open class BaseRoomFragment<V : IBaseRoomView?, P : BaseRoomPresenter<V>?> :
dynamicFaceDialog?.show()
}
} else {
toast("上麥才能發表情哦!")
toast(getString(R.string.you_have_to_do_it_on_the_mic))
}
}

View File

@@ -449,7 +449,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
if (AvRoomDataManager.get().isOpenGame()) {
gameMainBinding.tvCurrGame.setText(currentRoomInfo.getMgName());
} else {
gameMainBinding.tvCurrGame.setText(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_08));
gameMainBinding.tvCurrGame.setText(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_05));
}
GameModel.INSTANCE.getGameList()
.compose(bindToLifecycle())
@@ -463,7 +463,7 @@ public class HomePartyFragment extends BaseFragment implements View.OnClickListe
}
}
GameInfo gameInfo = new GameInfo();
gameInfo.setName(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_09));
gameInfo.setName(ResUtil.getString(R.string.avroom_fragment_homepartyfragment_05));
gameInfos.add(gameInfo);
}
gameAdapter.setNewData(gameInfos);

View File

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

View File

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

View File

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

View File

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

View File

@@ -129,7 +129,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
if (initInfo.hasFansTeamCurrentRoom) {
if (AvRoomDataManager.get().isRoomOwner) {
gameBinding.tvFansTeamOpt.text = "粉絲團(${initInfo.anchorFansNum})"
gameBinding.tvFansTeamOpt.text = "${getString(R.string.fans_club)}${initInfo.anchorFansNum})"
clickListener = View.OnClickListener {
DialogWebViewActivity.start(
requireContext(),
@@ -139,7 +139,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
} else {
if (initInfo.isAnchorFans) {
gameBinding.tvFansTeamOpt.text =
"粉絲LV.${if (initInfo.fansLevelSeq == 0) 1 else initInfo.fansLevelSeq}"
"${getString(R.string.fans_lv)}${if (initInfo.fansLevelSeq == 0) 1 else initInfo.fansLevelSeq}"
clickListener = View.OnClickListener {
FansTeamJoinedActivity.start(requireContext())
}
@@ -151,7 +151,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
}
} else {
if (AvRoomDataManager.get().isRoomOwner) {
gameBinding.tvFansTeamOpt.text = "開通粉絲團"
gameBinding.tvFansTeamOpt.text = getString(R.string.open_a_fan_club)
clickListener = View.OnClickListener {
CommonWebViewActivity.start(
requireContext(),
@@ -159,7 +159,7 @@ class SingleRoomFragment : BaseRoomFragment<ISingleRoomView?, SingleRoomPresente
)
}
} else {
gameBinding.tvFansTeamOpt.text = "該主播暫未開通粉絲團"
gameBinding.tvFansTeamOpt.text = getString(R.string.the_anchor_has_not_yet_opened_the_fan_group)
}
}
gameBinding.flFansTeam.setOnClickListener(clickListener)

View File

@@ -423,28 +423,6 @@ public class AvRoomPresenter extends BaseMvpPresenter<IAvRoomView> {
}
/**
* 检查是否需要显示新用户礼弹窗
*/
@SuppressLint("CheckResult")
public void checkNewUserGift() {
if (AvRoomDataManager.get().isRoomOwner() ||
!DemoCache.readNewUserGift())
return;
Single.timer(3, TimeUnit.SECONDS)
.flatMap(aLong -> AvRoomModel.get().getNewUserGift())
.compose(bindToLifecycle())
.subscribe(giftInfo -> {
DemoCache.saveNewUserGift(false);
if (getMvpView() != null && !TextUtils.isEmpty(giftInfo.getGiftUrl())) {
getMvpView().showNewUserDialog(giftInfo);
}
});
}
/**
* 检查是否需要显示首充弹窗
*/

View File

@@ -455,12 +455,12 @@ public class BaseRoomPresenter<V extends IBaseRoomView> extends BaseMvpPresenter
ChatRoomMessage firstMsg = IMNetEaseManager.get().getFirstMessageContent();
IMNetEaseManager.get().addCloseScreenMessages(firstMsg);
if (AvRoomDataManager.get().closeScreenBySAdmin()) {
contentText = "系統檢測涉嫌違規,予以關閉公屏消息警告";
contentText = ResUtil.getString(R.string.the_system_detects_suspected_violations);
} else {
contentText = "管理員已關閉聊天公屏";
contentText = ResUtil.getString(R.string.the_administrator_has_closed);
}
} else {
contentText = "管理員已開啟聊天公屏";
contentText = ResUtil.getString(R.string.administrator_has_enabled_the_chat_public_screen);
}
RoomInfoAttachment attachment = new RoomInfoAttachment(CustomAttachment.CUSTOM_MSG_UPDATE_ROOM_INFO,
CustomAttachment.CUSTOM_MSG_UPDATE_ROOM_INFO_CLOSE_SCREEN);

View File

@@ -9,6 +9,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.CommonVPAdapter;
import com.yizhuan.erban.base.BaseViewBindingActivity;
import com.yizhuan.erban.base.TitleBar;
import com.yizhuan.erban.databinding.ActivityMyRecommendCardBinding;
@@ -49,7 +50,7 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.HAS_USED));
//已失效
fragmentList.add(RecommendCardFragment.newInstance(RcmdCardType.INVALID));
binding.viewPager.setAdapter(new CardPagerAdapter(getSupportFragmentManager()));
binding.viewPager.setAdapter(new CommonVPAdapter(getSupportFragmentManager(), getLifecycle(), fragmentList));
}
@Override
@@ -83,20 +84,4 @@ public class MyRecommendCardActivity extends BaseViewBindingActivity<ActivityMyR
}
class CardPagerAdapter extends FragmentStatePagerAdapter {
public CardPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
}

View File

@@ -161,7 +161,7 @@ class RedPackageOpenDialog : BaseDialog<DialogRedPackageOpenBinding>() {
binding.tvNoGet.visibility = View.VISIBLE
}
}
binding.tvRedNum.text = "已領取${pickNum}/${totalNum}"
binding.tvRedNum.text = "${getString(R.string.already_received)}${pickNum}/${totalNum}${getString(R.string.individual)}"
if (type == ALL_GIFT || type == ALL_DIAMOND) {
DemoCache.saveRedPackage(id)
}

View File

@@ -41,7 +41,8 @@ import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@ActLayoutRes(R.layout.dialog_red_package_send)
class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPasswordNoFocusView.OnPasswordChangedListener, TextWatcher {
class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(),
GridPasswordNoFocusView.OnPasswordChangedListener, TextWatcher {
private var passWordFragment: GiveGoldPassWordFragment? = null
private val dialogManager by lazy { DialogManager(context) }
@@ -78,8 +79,12 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
binding.tvRoomRed.alpha = 1f
binding.indicatorAllRed.visibility = View.GONE
binding.indicatorRoomRed.visibility = View.VISIBLE
binding.tvGoldNumHint.text = "紅包總金額不低於${initInfo.redEnvelopeConfig.roomRedEnvelopeMinAmount}鉆石且必須為10的倍數"
binding.editRedNum.hint = "${initInfo.redEnvelopeConfig.roomRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.roomRedEnvelopeMaxNum}"
binding.tvGoldNumHint.text =
"${getString(R.string.total_amount_not_less_than)}${initInfo.redEnvelopeConfig.roomRedEnvelopeMinAmount}${
getString(R.string.must_be_a_multiple_of_10)
}"
binding.editRedNum.hint =
"${initInfo.redEnvelopeConfig.roomRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.roomRedEnvelopeMaxNum}"
}
/**
@@ -91,8 +96,10 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
binding.tvRoomRed.alpha = 0.5f
binding.indicatorAllRed.visibility = View.VISIBLE
binding.indicatorRoomRed.visibility = View.GONE
binding.tvGoldNumHint.text = "紅包總金額不低於${initInfo.redEnvelopeConfig.serverRedEnvelopeMinAmount}鉆石且必須為100的倍數"
binding.editRedNum.hint = "${initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.serverRedEnvelopeMaxNum}"
binding.tvGoldNumHint.text =
"${getString(R.string.total_amount_not_less_than)}${initInfo.redEnvelopeConfig.serverRedEnvelopeMinAmount}${getString(R.string.must_be_a_multiple_of_100)}"
binding.editRedNum.hint =
"${initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum}-${initInfo.redEnvelopeConfig.serverRedEnvelopeMaxNum}"
}
when (initInfo.redEnvelopedPosition) {
@@ -106,12 +113,12 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
binding.tvChangeType.setOnClickListener {
if (isGift) {
isGift = false
binding.tvRedTypeHint.text = "當前為手氣紅包,"
binding.tvChangeType.text = "改為禮物紅包"
binding.tvRedTypeHint.text = getString(R.string.the_present_is_a_lucky_red_envelope)
binding.tvChangeType.text = getString(R.string.change_to_gift_red_envelope)
} else {
isGift = true
binding.tvRedTypeHint.text = "當前為禮物紅包,"
binding.tvChangeType.text = "改為手氣紅包"
binding.tvRedTypeHint.text = getString(R.string.the_present_is_a_gift_red_envelope)
binding.tvChangeType.text = getString(R.string.change_to_lucky_money)
}
}
//默認就已經是手氣紅包,如果後臺配置為了禮物紅包就在這裏改下
@@ -134,7 +141,12 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
}
}
binding.ivClose.setOnClickListener { dismissAllowingStateLoss() }
binding.ivHelp.setOnClickListener { DialogWebViewActivity.start(context, UriProvider.getRedPacketRule()) }
binding.ivHelp.setOnClickListener {
DialogWebViewActivity.start(
context,
UriProvider.getRedPacketRule()
)
}
binding.ivSend.setOnClickListener {
UserModel.get().cacheLoginUserInfo?.let {
if (!it.isBindPaymentPwd) {
@@ -142,44 +154,52 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
return@setOnClickListener
}
}
val minNum = if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum else initInfo.redEnvelopeConfig.roomRedEnvelopeMinNum
val maxNum = if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMaxNum else initInfo.redEnvelopeConfig.roomRedEnvelopeMaxNum
val minGold = if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMinAmount else initInfo.redEnvelopeConfig.roomRedEnvelopeMinAmount
val maxGold = if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMaxAmount else initInfo.redEnvelopeConfig.roomRedEnvelopeMaxAmount
val rate = if (initInfo.redEnvelopeConfig.exchangeDiamondsRate == 0.0) 0.68 else initInfo.redEnvelopeConfig.exchangeDiamondsRate
val minNum =
if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMinNum else initInfo.redEnvelopeConfig.roomRedEnvelopeMinNum
val maxNum =
if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMaxNum else initInfo.redEnvelopeConfig.roomRedEnvelopeMaxNum
val minGold =
if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMinAmount else initInfo.redEnvelopeConfig.roomRedEnvelopeMinAmount
val maxGold =
if (isAll) initInfo.redEnvelopeConfig.serverRedEnvelopeMaxAmount else initInfo.redEnvelopeConfig.roomRedEnvelopeMaxAmount
val rate =
if (initInfo.redEnvelopeConfig.exchangeDiamondsRate == 0.0) 0.68 else initInfo.redEnvelopeConfig.exchangeDiamondsRate
val redNum = binding.editRedNum.text.toString().toIntOrDef()
if (redNum < minNum || redNum > maxNum) {
SingleToastUtil.showToast("紅包數量不能小於${minNum}或大於${maxNum}!")
SingleToastUtil.showToast("${getString(R.string.the_number_of_red_packets_cannot_be_less_than)}${minNum}${getString(R.string.or_greater_than)}${maxNum}!")
return@setOnClickListener
}
val goldNum = binding.editGoldNum.text.toString().toIntOrDef()
if (isAll) {
if (goldNum % 100 != 0) {
SingleToastUtil.showToast("鉆石數必須為100的倍數!")
SingleToastUtil.showToast(getString(R.string.diamonds_must_be_a_multiple_of_100))
return@setOnClickListener
}
} else {
if (goldNum % 10 != 0) {
SingleToastUtil.showToast("鉆石數必須為10的倍數!")
SingleToastUtil.showToast(getString(R.string.diamonds_must_be_a_multiple_of_10))
return@setOnClickListener
}
}
if (goldNum < minGold || goldNum > maxGold) {
SingleToastUtil.showToast("鉆石數量不能小於${minGold}或大於${maxGold}!")
SingleToastUtil.showToast("${getString(R.string.diamonds_should_not_be_less_than)}${minGold}${getString(R.string.or_greater_than)}${maxGold}!")
return@setOnClickListener
}
if (isGift && goldNum.toFloat() / redNum < 1) {//單個禮物紅包價值不低於1鉆石
SingleToastUtil.showToast("單個紅包金額過低")
SingleToastUtil.showToast(getString(R.string.single_red_packet_is_too_low))
return@setOnClickListener
}
if (!isGift && goldNum.toFloat() / redNum * rate < 0.1) {//單個手氣紅包價值不低於0.1水晶
SingleToastUtil.showToast("單個紅包金額過低")
SingleToastUtil.showToast(getString(R.string.single_red_packet_is_too_low))
return@setOnClickListener
}
GiveGoldPassWordFragment.newInstance(childFragmentManager, binding.editGoldNum.text.toString()).apply {
GiveGoldPassWordFragment.newInstance(
childFragmentManager,
binding.editGoldNum.text.toString()
).apply {
setListener(this@RedPackageSendDialog)
passWordFragment = this
}
@@ -220,10 +240,14 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
val password = passWordFragment?.password?.password ?: ""
if (password.length == 6) {
dialogManager.showProgressDialog(context)
RedPackageModel.sendRedPackage(binding.editGoldNum.text.toString(),
binding.editRedText.text.toString().ifEmpty { "恭喜發財,大吉大利!" },
RedPackageModel.sendRedPackage(
binding.editGoldNum.text.toString(),
binding.editRedText.text.toString().ifEmpty { getString(R.string.may_you_come_into_a_good_fortune) },
binding.editRedNum.text.toString(),
AvRoomDataManager.get().mCurrentRoomInfo?.uid.toString(), getRedType(), DESUtils.DESAndBase64(password))
AvRoomDataManager.get().mCurrentRoomInfo?.uid.toString(),
getRedType(),
DESUtils.DESAndBase64(password)
)
.doOnError {
dialogManager.dismissDialog()
SingleToastUtil.showToast(it.message)
@@ -232,7 +256,7 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
.subscribe { _ ->
PayModel.get().getWalletInfo(AuthModel.get().currentUid).subscribe()
dialogManager.dismissDialog()
SingleToastUtil.showToast("發送成功")
SingleToastUtil.showToast(getString(R.string.send_success))
passWordFragment?.dismissAllowingStateLoss()
dismissAllowingStateLoss()
}

View File

@@ -21,13 +21,13 @@ class SingleRoomPKSearchAdapter :
val tvSelect = helper.getView<TextView>(R.id.tv_select)
tvSelect.isEnabled = !item.crossPking && item.valid
if (!item.valid) {
tvSelect.text = "離線"
tvSelect.text = mContext.getString(R.string.off_line)
tvSelect.setTextColor("#80C6C6E9".toColorInt())
} else if (item.crossPking) {
tvSelect.text = "PK中"
tvSelect.text = mContext.getString(R.string.pk_now)
tvSelect.setTextColor("#80C6C6E9".toColorInt())
} else {
tvSelect.text = "選擇"
tvSelect.text = mContext.getString(R.string.select)
tvSelect.setTextColor(Color.WHITE)
}
}

View File

@@ -41,7 +41,7 @@ class SingleRoomPkFinishDialog : BaseDialog<DialogSingleRoomPkFinishBinding>() {
roomPkBean.csRank.getOrNull(0)?.let {
binding.groupRank1.isVisible = true
binding.tvRankNick1.text = it.nick.subAndReplaceDot(7)
binding.tvRankValue1.text = "PK值:${it.amount}"
binding.tvRankValue1.text = "${getString(R.string.pk_value)}${it.amount}"
binding.ivAvatar1.load(it.avatar, defaultRes = R.drawable.default_avatar)
} ?: run {
binding.groupRank1.isVisible = false
@@ -51,7 +51,7 @@ class SingleRoomPkFinishDialog : BaseDialog<DialogSingleRoomPkFinishBinding>() {
roomPkBean.csRank.getOrNull(1)?.let {
binding.groupRank2.isVisible = true
binding.tvRankNick2.text = it.nick.subAndReplaceDot(7)
binding.tvRankValue2.text = "PK值:${it.amount}"
binding.tvRankValue2.text = "${getString(R.string.pk_value)}${it.amount}"
binding.ivAvatar2.load(it.avatar, defaultRes = R.drawable.default_avatar)
} ?: run {
binding.groupRank2.isVisible = false
@@ -60,7 +60,7 @@ class SingleRoomPkFinishDialog : BaseDialog<DialogSingleRoomPkFinishBinding>() {
roomPkBean.csRank.getOrNull(2)?.let {
binding.groupRank3.isVisible = true
binding.tvRankNick3.text = it.nick.subAndReplaceDot(7)
binding.tvRankValue3.text = "PK值:${it.amount}"
binding.tvRankValue3.text = "${getString(R.string.pk_value)}${it.amount}"
binding.ivAvatar3.load(it.avatar, defaultRes = R.drawable.default_avatar)
} ?: run {
binding.groupRank3.isVisible = false
@@ -71,7 +71,7 @@ class SingleRoomPkFinishDialog : BaseDialog<DialogSingleRoomPkFinishBinding>() {
.observeOn(AndroidSchedulers.mainThread())
.doOnComplete { dismissAllowingStateLoss() }
.subscribe {
binding.tvClose.text = "關閉(${5 - it})"
binding.tvClose.text = "${getString(R.string.close)}(${5 - it})"
}
when (roomPkBean.winUid) {

View File

@@ -3,6 +3,7 @@ package com.yizhuan.erban.avroom.singleroompk
import android.annotation.SuppressLint
import android.os.Bundle
import androidx.core.view.isVisible
import com.yizhuan.erban.R
import com.yizhuan.erban.base.BaseDialog
import com.yizhuan.erban.databinding.DialogSingleRoomPkReceivedBinding
import com.yizhuan.xchat_android_core.im.custom.bean.RoomPkBean
@@ -37,7 +38,7 @@ class SingleRoomPkReceivedDialog : BaseDialog<DialogSingleRoomPkReceivedBinding>
@SuppressLint("CheckResult")
override fun init() {
binding.tvNick.text = pkBean.inviteRoomTitle.subAndReplaceDot(7)
binding.tvTime.text = "${pkBean.pkDuration}分鐘"
binding.tvTime.text = "${pkBean.pkDuration}${getString(R.string.avroom_dialog_pktimepickerdialog_01)}"
pkBean.pkDesc.ifNotNullOrEmpty {
binding.tvDescTitle.isVisible = true
binding.tvDesc.isVisible = true

View File

@@ -82,7 +82,6 @@ public interface IAvRoomView extends IMvpBaseView {
*/
void recoverRoomMinWhenPmLimit(Throwable throwable);
void showNewUserDialog(GiftInfo giftInfo);
void showFirstChargeDialog(FirstChargeInfo firstChargeInfo);

View File

@@ -21,6 +21,8 @@ import android.util.AttributeSet;
import android.util.Pair;
import android.widget.TextView;
import androidx.appcompat.widget.AppCompatTextView;
import com.yizhuan.erban.R;
import java.util.ArrayList;
@@ -38,7 +40,7 @@ import java.util.WeakHashMap;
* AuthorPhonenothing
* Created by 2016/9/22.
*/
public class MagicTextView extends TextView {
public class MagicTextView extends AppCompatTextView {
private ArrayList<Shadow> outerShadows;
private ArrayList<Shadow> innerShadows;

View File

@@ -1018,29 +1018,29 @@ public class MessageView extends FrameLayout {
case CUSTOM_MSG_SUB_DRAW_GIFT_L1:
case CUSTOM_MSG_SUB_DRAW_GIFT_L2:
case CUSTOM_MSG_SUB_DRAW_BALL_L1:
builder = builderDrawMsg(tvContent, fairyMsgInfo, "厲害了!");
builder = builderDrawMsg(tvContent, fairyMsgInfo, mContext.getString(R.string.message_amazing));
break;
case CUSTOM_MSG_SUB_DRAW_GIFT_L3:
case CUSTOM_MSG_SUB_DRAW_GIFT_L4:
case CUSTOM_MSG_SUB_DRAW_GIFT_L5:
case CUSTOM_MSG_SUB_DRAW_BALL_L2:
case CUSTOM_MSG_SUB_DRAW_BALL_L3:
builder = builderDrawMsg(tvContent, fairyMsgInfo, "好運爆棚!");
builder = builderDrawMsg(tvContent, fairyMsgInfo, mContext.getString(R.string.message_good_luck));
break;
case CUSTOM_MSG_SUB_CONVERT_L1:
builder = builderConvertMsg(tvContent, fairyMsgInfo, "初級召喚");
builder = builderConvertMsg(tvContent, fairyMsgInfo, mContext.getString(R.string.message_primary_call));
break;
case CUSTOM_MSG_SUB_CONVERT_L2:
builder = builderConvertMsg(tvContent, fairyMsgInfo, "史詩召喚");
builder = builderConvertMsg(tvContent, fairyMsgInfo, mContext.getString(R.string.message__epic_call));
break;
case CUSTOM_MSG_SUB_CONVERT_L3:
builder = builderConvertMsg(tvContent, fairyMsgInfo, "傳說召喚");
builder = builderConvertMsg(tvContent, fairyMsgInfo, mContext.getString(R.string.message_legend_call));
break;
}
if (builder != null) {
if (GoldBoxHelper.isShowFairy()) {
builder.append(" 去參加!", new OriginalDrawStatusClickSpan(Color.parseColor("#FFBC51")) {
builder.append(mContext.getString(R.string.message_to_join), new OriginalDrawStatusClickSpan(Color.parseColor("#FFBC51")) {
@Override
public void onClick(@NonNull View widget) {
HomeFairyActivity.start(mContext);
@@ -1057,7 +1057,7 @@ public class MessageView extends FrameLayout {
private SpannableBuilder builderConvertMsg(TextView textView, @NonNull FairyMsgInfo fairyMsgInfo, String type) {
return new SpannableBuilder(textView)
.append("厲害了!", new ForegroundColorSpan(whiteColor))
.append(mContext.getString(R.string.message_amazing), new ForegroundColorSpan(whiteColor))
.append(StringExtensionKt.subAndReplaceDot(fairyMsgInfo.getNick(), 7), new OriginalDrawStatusClickSpan(roomTipNickColor, false) {
@Override
@@ -1065,8 +1065,8 @@ public class MessageView extends FrameLayout {
RxBus.get().post(new ShowUserInfoDialogEvent(String.valueOf(fairyMsgInfo.getUid())));
}
})
.append("在奪寶精靈中 " + type, new ForegroundColorSpan(whiteColor))
.append(fairyMsgInfo.getRewardShowValue() + "" + fairyMsgInfo.getRewardName(), new ForegroundColorSpan(roomTipColor));
.append(mContext.getString(R.string.message_In_the_raiders_of_the_treasure) + type, new ForegroundColorSpan(whiteColor))
.append(fairyMsgInfo.getRewardShowValue() + mContext.getString(R.string.wallet_adapter_withdrawjeweladapter_01) + fairyMsgInfo.getRewardName(), new ForegroundColorSpan(roomTipColor));
}
private SpannableBuilder builderDrawMsg(TextView textView, @NonNull FairyMsgInfo fairyMsgInfo, String desc) {
@@ -1079,7 +1079,7 @@ public class MessageView extends FrameLayout {
RxBus.get().post(new ShowUserInfoDialogEvent(String.valueOf(fairyMsgInfo.getUid())));
}
})
.append(" 在奪寶精靈中獲得 ", new ForegroundColorSpan(whiteColor))
.append(mContext.getString(R.string.message_obtained_in_raiders_of_the_treasure), new ForegroundColorSpan(whiteColor))
.append(fairyMsgInfo.getRewardName(), new ForegroundColorSpan(Color.WHITE));
if (fairyMsgInfo.getRewardNum() > 1) {
builder.append(" x" + fairyMsgInfo.getRewardNum(), new ForegroundColorSpan(roomTipNickColor));
@@ -1481,7 +1481,7 @@ public class MessageView extends FrameLayout {
tvContent.setTextColor(Color.WHITE);
RoomFollowOwnerAttachment2 roomFollowOwnerAttachment = (RoomFollowOwnerAttachment2) chatRoomMessage.getAttachment();
SpannableBuilder append = new SpannableBuilder(tvContent)
.append(mContext.getResources().getDrawable(R.drawable.bg_follow), ScreenUtil.dip2px(190), ScreenUtil.dip2px(40));
.append(ContextCompat.getDrawable(mContext, R.drawable.bg_follow), ScreenUtil.dip2px(190), ScreenUtil.dip2px(40));
tvContent.setText(append.build());
}
@@ -2723,13 +2723,13 @@ public class MessageView extends FrameLayout {
return;
String senderNick = RegexUtil.getPrintableString(attachment.nick);
// 系統通知icon
Drawable icNotification = mContext.getResources().getDrawable(R.drawable.ic_system_notification);
Drawable icNotification = ContextCompat.getDrawable(mContext, R.drawable.ic_system_notification);
int width = (int) (icNotification.getIntrinsicWidth() / (icNotification.getIntrinsicHeight() + 0.F) * sysIconHeight);
SpannableBuilder text = new SpannableBuilder(tvContent)
.append(icNotification, width, sysIconHeight)
.append(" 恭喜 ", new ForegroundColorSpan(greyColor))
.append(mContext.getString(R.string.message_congratulation), new ForegroundColorSpan(greyColor))
.append(senderNick, new ForegroundColorSpan(roomTipColor))
.append(" 在房間內" + (second == CustomAttachment.CUSTOM_MESS_SUB_RENEWNOBLE ? "續費" : "開通") + "\"", new ForegroundColorSpan(greyColor))
.append(mContext.getString(R.string.message_In_the_room) + (second == CustomAttachment.CUSTOM_MESS_SUB_RENEWNOBLE ? mContext.getString(R.string.message_renew) : mContext.getString(R.string.message_open)) + "\"", new ForegroundColorSpan(greyColor))
.append(nobleInfo.getName(), new ForegroundColorSpan(roomTipColor))
.append("\"");
tvContent.setText(text.build());
@@ -2748,10 +2748,10 @@ public class MessageView extends FrameLayout {
CarveUpGoldAttachment attachment = (CarveUpGoldAttachment) chatRoomMessage.getAttachment();
// 內容
SpannableBuilder text = new SpannableBuilder(tvContent)
.append("【簽到瓜分百萬】哇塞,恭喜 ", new ForegroundColorSpan(greyColor))
.append(mContext.getString(R.string.message_sign_in_for_millions), new ForegroundColorSpan(greyColor))
.append(attachment.getNick() + " ", new ForegroundColorSpan(roomTipColor))
.append("簽到獲得 ", new ForegroundColorSpan(greyColor))
.append(attachment.getGoldNum() + "鉆石", new ForegroundColorSpan(roomTipColor))
.append(mContext.getString(R.string.message_sign_in_acquisition), new ForegroundColorSpan(greyColor))
.append(attachment.getGoldNum() + mContext.getString(R.string.message_diamond), new ForegroundColorSpan(roomTipColor))
.append("", new ForegroundColorSpan(greyColor));
tvContent.setText(text.build());
}
@@ -2775,7 +2775,7 @@ public class MessageView extends FrameLayout {
String fromAccount = chatRoomMessage.getFromAccount();
SpannableBuilder text = new SpannableBuilder(tvContent);
addCommonTag(chatRoomMessage, text, tvContent);
text.append(extension == null ? "" : RegexUtil.getPrintableString(extension.getSenderNick()),
text.append(extension == null ? mContext.getString(R.string.message_me) : RegexUtil.getPrintableString(extension.getSenderNick()),
new ForegroundColorSpan(greyColor),
new OriginalDrawStatusClickSpan() {
@Override
@@ -2890,7 +2890,7 @@ public class MessageView extends FrameLayout {
if (!Objects.equals(mCurrentRoomInfo.getUid(), dataBean.getAppearRoomUid())) {
AVRoomActivity.start(getContext(), dataBean.getAppearRoomUid());
} else {
SingleToastUtil.showToast("你已經在怪獸房間內");
SingleToastUtil.showToast(mContext.getString(R.string.message_in_the_monster_room));
}
break;
@@ -2908,7 +2908,7 @@ public class MessageView extends FrameLayout {
CollectionRoomModel.get().followRoom("1", ((RoomFollowOwnerAttachment2) attachment).getOwnerUid())
.subscribe(s -> {
AvRoomDataManager.get().isRoomFans = true;
SingleToastUtil.showToast("收藏成功!");
SingleToastUtil.showToast(mContext.getString(R.string.message_collect_success));
EventBus.getDefault().post(new FollowRoomEvent());
PraiseModel.get().setFollowRoomSuccessRoomTip(JavaUtil.str2long(chatRoomMessage.getFromAccount()));
});

View File

@@ -1344,7 +1344,7 @@ class RoomEffectBoxView @JvmOverloads constructor(
ResUtil.getString(R.string.avroom_widget_roomeffectview_025),
ForegroundColorSpan(Color.WHITE)
)
.append("${msgBean.title}房間", ForegroundColorSpan(Color.parseColor("#FFFC4C")))
.append("${msgBean.title}${ResUtil.getString(R.string.room)}", ForegroundColorSpan(Color.parseColor("#FFFC4C")))
.append(msgBean.desc, ForegroundColorSpan(Color.WHITE))
.append("TOP1", ForegroundColorSpan(Color.parseColor("#FFFC4C")))
textView.text = text.build()

View File

@@ -62,6 +62,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import java.net.MalformedURLException
import java.net.URL
import java.util.*
import java.util.concurrent.TimeUnit
/**
@@ -249,7 +250,7 @@ class RoomEffectView @JvmOverloads constructor(
}
/**
* 幸运池飘屏
* 夺宝精灵飘屏
*
* @param chatRoomMessage
*/
@@ -270,6 +271,9 @@ class RoomEffectView @JvmOverloads constructor(
}
}
/**
* 夺宝精灵SVGA
*/
private fun showFairyNotify(pair: Pair<Int, ChatRoomMessage>) {
val attachment = pair.second.attachment as FairyMsgAttachment
when (pair.first) {
@@ -291,13 +295,38 @@ class RoomEffectView @JvmOverloads constructor(
}
RoomEvent.FAIRY_DRAW_GIFT_L5,
RoomEvent.FAIRY_CONVERT_L3 -> {
showFairyNotifyBySVGA(pair)
when (Locale.getDefault().language) {
"ar" -> {
showFairyNotifyBySVGA(pair, "svga/all_fairy_ar.svga")
}
"en" -> {
showFairyNotifyBySVGA(pair, "svga/all_fairy_en.svga")
}
"in" -> {
showFairyNotifyBySVGA(pair, "svga/all_fairy_in.svga")
}
"tr" -> {
showFairyNotifyBySVGA(pair, "svga/all_fairy_tr.svga")
}
"zh" ->{
showFairyNotifyBySVGA(pair, "svga/all_fairy.svga")
}
"zh-rTW" ->{
showFairyNotifyBySVGA(pair, "svga/all_fairy.svga")
}
else -> {
showFairyNotifyBySVGA(pair, "svga/all_fairy_en.svga")
}
}
}
}
}
private fun showFairyNotifyBySVGA(pair: Pair<Int, ChatRoomMessage>) {
/**
* 夺宝精灵SVGA
*/
private fun showFairyNotifyBySVGA(pair: Pair<Int, ChatRoomMessage>, svgaName: String) {
val attachment = pair.second.attachment as FairyMsgAttachment
val text = MsgBuilder.buildFairyMsg(pair.first, attachment)
val svgaImageView = SVGAImageView(mContext)
@@ -316,7 +345,7 @@ class RoomEffectView @JvmOverloads constructor(
}
binding.flFairyNotify.addView(svgaImageView)
shareParser().decodeFromAssets(
"svga/all_fairy.svga",
svgaName,
object : SVGAParser.ParseCompletion {
override fun onComplete(videoItem: SVGAVideoEntity) {
val dynamicEntity = SVGADynamicEntity()
@@ -442,14 +471,34 @@ class RoomEffectView @JvmOverloads constructor(
.observeOn(AndroidSchedulers.mainThread())
.takeWhile { messagesLuckyGift.size > 0 }
.subscribe {
showLuckyBagNotify(
messagesLuckyGift.removeAt(0)
)
when (Locale.getDefault().language) {
"ar" -> {
showLuckyBagNotify(messagesLuckyGift.removeAt(0),"svga/lucky_gift_notify_ar.svga")
}
"en" -> {
showLuckyBagNotify(messagesLuckyGift.removeAt(0),"svga/lucky_gift_notify_en.svga")
}
"in" -> {
showLuckyBagNotify(messagesLuckyGift.removeAt(0),"svga/lucky_gift_notify_in.svga")
}
"tr" -> {
showLuckyBagNotify(messagesLuckyGift.removeAt(0),"svga/lucky_gift_notify_tr.svga")
}
"zh" ->{
showLuckyBagNotify(messagesLuckyGift.removeAt(0),"svga/lucky_gift_notify.svga")
}
"zh-rTW" ->{
showLuckyBagNotify(messagesLuckyGift.removeAt(0),"svga/lucky_gift_notify.svga")
}
else -> {
showLuckyBagNotify(messagesLuckyGift.removeAt(0),"svga/lucky_gift_notify_en.svga")
}
}
}
}
}
private fun showLuckyBagNotify(message: ChatRoomMessage?) {
private fun showLuckyBagNotify(message: ChatRoomMessage?, svgaName: String) {
val attachment = message?.attachment as? RoomReceivedLuckyGiftAttachment ?: return
val noticeInfo = attachment.luckyBagNoticeInfo ?: return
val text = SpannableBuilder()
@@ -490,7 +539,7 @@ class RoomEffectView @JvmOverloads constructor(
svgaImageView.loops = 1
svgaImageView.clearsAfterStop = true
shareParser().decodeFromAssets(
"svga/lucky_gift_notify.svga",
svgaName,
object : SVGAParser.ParseCompletion {
override fun onComplete(videoItem: SVGAVideoEntity) {
binding.flLuckyGiftNotify.addView(svgaImageView)
@@ -1654,7 +1703,10 @@ class RoomEffectView @JvmOverloads constructor(
ResUtil.getString(R.string.avroom_widget_roomeffectview_025),
ForegroundColorSpan(Color.WHITE)
)
.append("${msgBean.title}」房間", ForegroundColorSpan(Color.parseColor("#FFFC4C")))
.append(
"${msgBean.title}${ResUtil.getString(R.string.room)}",
ForegroundColorSpan(Color.parseColor("#FFFC4C"))
)
.append(msgBean.desc, ForegroundColorSpan(Color.WHITE))
.append("TOP1", ForegroundColorSpan(Color.parseColor("#FFFC4C")))
textView.text = text.build()

View File

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

View File

@@ -11,6 +11,7 @@ import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.LayoutDirection;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
@@ -20,9 +21,12 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.core.text.TextUtilsCompat;
import com.yizhuan.erban.R;
import java.util.LinkedList;
import java.util.Locale;
/**
* 类描述:
@@ -448,16 +452,30 @@ public class TitleBar extends ViewGroup implements View.OnClickListener {
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
mLeftLayout.layout(0, mStatusBarHeight, mLeftLayout.getMeasuredWidth(), mLeftLayout.getMeasuredHeight() + mStatusBarHeight);
mRightLayout.layout(mScreenWidth - mRightLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth, mRightLayout.getMeasuredHeight() + mStatusBarHeight);
if (mLeftLayout.getMeasuredWidth() > mRightLayout.getMeasuredWidth()) {
mCenterLayout.layout(mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth - mLeftLayout.getMeasuredWidth(), getMeasuredHeight());
if(TextUtilsCompat.getLayoutDirectionFromLocale(Locale.getDefault()) == LayoutDirection.RTL) {
mRightLayout.layout(0, mStatusBarHeight, mRightLayout.getMeasuredWidth(), mRightLayout.getMeasuredHeight() + mStatusBarHeight);
mLeftLayout.layout(mScreenWidth - mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth, mLeftLayout.getMeasuredHeight() + mStatusBarHeight);
if (mRightLayout.getMeasuredWidth() > mLeftLayout.getMeasuredWidth()) {
mCenterLayout.layout(mRightLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth - mRightLayout.getMeasuredWidth(), getMeasuredHeight());
} else {
mCenterLayout.layout(mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth - mLeftLayout.getMeasuredWidth(), getMeasuredHeight());
}
} else {
mCenterLayout.layout(mRightLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth - mRightLayout.getMeasuredWidth(), getMeasuredHeight());
mLeftLayout.layout(0, mStatusBarHeight, mLeftLayout.getMeasuredWidth(), mLeftLayout.getMeasuredHeight() + mStatusBarHeight);
mRightLayout.layout(mScreenWidth - mRightLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth, mRightLayout.getMeasuredHeight() + mStatusBarHeight);
if (mLeftLayout.getMeasuredWidth() > mRightLayout.getMeasuredWidth()) {
mCenterLayout.layout(mLeftLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth - mLeftLayout.getMeasuredWidth(), getMeasuredHeight());
} else {
mCenterLayout.layout(mRightLayout.getMeasuredWidth(), mStatusBarHeight,
mScreenWidth - mRightLayout.getMeasuredWidth(), getMeasuredHeight());
}
}
mDividerView.layout(0, getMeasuredHeight() - mDividerView.getMeasuredHeight(), getMeasuredWidth(), getMeasuredHeight());
}

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

Some files were not shown because too many files have changed in this diff Show More