初次提交,修改了头像不能展示
This commit is contained in:
2
app/.gitignore
vendored
Normal file
2
app/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
/build
|
||||
/release
|
||||
140
app/build.gradle
Normal file
140
app/build.gradle
Normal file
@@ -0,0 +1,140 @@
|
||||
apply plugin: 'com.android.application'
|
||||
apply plugin: 'kotlin-android'
|
||||
apply plugin: 'com.mob.sdk'
|
||||
apply plugin: 'kotlin-android-extensions'
|
||||
apply plugin: 'kotlin-kapt'
|
||||
MobSDK {
|
||||
appKey "3635416c7fadb"
|
||||
appSecret "c6e8c85e5b8d90220a063cdfda7d0096"
|
||||
ShareSDK {
|
||||
loopShare true
|
||||
devInfo {
|
||||
Wechat {
|
||||
appId "wx7b5c4e89e726a72c"
|
||||
appSecret "afc9860f4c670ac19f9efb0ab94927a3"
|
||||
// appId "wx3858bffeddfb91b8"
|
||||
// appSecret "0b59b165268b63ba6446d1dc55a21f38"
|
||||
}
|
||||
QQ {
|
||||
appId "102046191"
|
||||
appKey "dT8ZbR4TfdOuBF4e"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
android {
|
||||
|
||||
compileSdkVersion 33
|
||||
buildToolsVersion "30.0.2"
|
||||
aaptOptions {
|
||||
cruncherEnabled = false
|
||||
useNewCruncher = false
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId "com.yuyin.mier"
|
||||
minSdkVersion 22
|
||||
targetSdkVersion 31
|
||||
|
||||
versionCode 46
|
||||
versionName "1.3.6"
|
||||
dataBinding {
|
||||
//noinspection DataBindingWithoutKapt
|
||||
enabled = true
|
||||
}
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments = [AROUTER_MODULE_NAME: project.getName()]
|
||||
}
|
||||
}
|
||||
multiDexEnabled true
|
||||
ndk {
|
||||
abiFilters /*'armeabi-v7a',*/ 'arm64-v8a', 'x86' , 'x86_64'
|
||||
}
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile file("../mier.jks")
|
||||
storePassword "123456"
|
||||
keyAlias "key0"
|
||||
keyPassword "123456"
|
||||
}
|
||||
|
||||
release {
|
||||
storeFile file("../mier.jks")
|
||||
storePassword "123456"
|
||||
keyAlias "key0"
|
||||
keyPassword "123456"
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
jniLibs.srcDirs = ['libs']
|
||||
}
|
||||
}
|
||||
|
||||
repositories { flatDir { dirs 'libs' } }
|
||||
buildTypes {
|
||||
release {
|
||||
// minifyEnabled true
|
||||
// proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '11'
|
||||
}
|
||||
// 打包 start
|
||||
applicationVariants.all { variant ->
|
||||
variant.outputs.all {
|
||||
def fileName
|
||||
def date = new Date()
|
||||
def formattedDate = date.format('yyyyMMdd-HHmmss')
|
||||
if (variant.buildType.name == 'release') {
|
||||
fileName = "余音派对-v${variant.mergedFlavor.versionName}_release_${formattedDate}.apk"
|
||||
} else if (variant.buildType.name == 'debug') {
|
||||
fileName = "余音派对-v${variant.mergedFlavor.versionName}_debug_${formattedDate}.apk"
|
||||
}
|
||||
outputFileName = fileName;
|
||||
}
|
||||
}
|
||||
// 打包 end
|
||||
dataBinding {
|
||||
enabled = true
|
||||
}
|
||||
lint {
|
||||
baseline = file("lint-baseline.xml")
|
||||
}
|
||||
|
||||
// 添加AAR元数据兼容性配置
|
||||
dependenciesInfo {
|
||||
includeInApk = false
|
||||
includeInBundle = false
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
|
||||
implementation fileTree(dir: '../lib_base/libs', include: ['.jar', '.aar'] )
|
||||
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
|
||||
api 'com.alibaba:arouter-api:1.4.1'
|
||||
kapt 'com.alibaba:arouter-compiler:1.2.2'
|
||||
|
||||
|
||||
|
||||
implementation project(':lib_base')
|
||||
implementation project(':module_live')
|
||||
implementation project(':module_community')
|
||||
implementation project(path:':LocalAar:alipaySdk')
|
||||
implementation project(path:':LocalAar:paytypelibrary')
|
||||
|
||||
}
|
||||
642
app/lint-baseline.xml
Normal file
642
app/lint-baseline.xml
Normal file
@@ -0,0 +1,642 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<issues format="6" by="lint 7.4.2" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.2)" variant="fatal" version="7.4.2">
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MyRoomActivity` must extend android.app.Activity"
|
||||
errorLine1=" android:name="com.yuyin.mier.module_my.room.MyRoomActivity""
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="60"
|
||||
column="27"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`SignedArtistActivity` must extend android.app.Activity"
|
||||
errorLine1=" android:name="com.yuyin.mier.module_my.auction.SignedArtistActivity""
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="66"
|
||||
column="27"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`ChangeInviterActivity` must extend android.app.Activity"
|
||||
errorLine1=" android:name="com.yuyin.mier.module_my.vip.ChangeInviterActivity""
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="69"
|
||||
column="27"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`VipActivity` must extend android.app.Activity"
|
||||
errorLine1=" android:name="com.yuyin.mier.module_my.vip.VipActivity""
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="72"
|
||||
column="27"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`BindPhoneActivity` must extend android.app.Activity"
|
||||
errorLine1=" android:name="com.yuyin.mier.module_my.set.BindPhoneActivity""
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="83"
|
||||
column="27"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`LunchActivity` must extend android.app.Activity"
|
||||
errorLine1=" android:name="com.yuyin.mier.LunchActivity""
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="86"
|
||||
column="27"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`UserGiftWallActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.homepage.UserGiftWallActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="95"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MainActivity` must extend android.app.Activity"
|
||||
errorLine1=" android:name="com.yuyin.mier.module_home.MainActivity""
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="98"
|
||||
column="27"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MoneyMainActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.MoneyMainActivity" /> <!-- <activity android:name="com.yuyin.gouniyuyin_20220109.module_my.log.duihuan.DuiHuanLogActivity" /> -->"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="100"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`ZhuanZengLogActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.log.zhuanzeng.ZhuanZengLogActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="102"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`BindAliActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.bindali.BindAliActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="103"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`TiXianActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.tixian.TiXianActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="104"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`GiftLogSubActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.giftlog.sub.GiftLogSubActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="105"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`GiftLogActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.giftlog.GiftLogActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="106"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`ModifyDataActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.edituser.ModifyDataActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="107"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`FeedBackActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.feedback.FeedBackActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="108"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`PayPsActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.payps.PayPsActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="109"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`SetActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.set.SetActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="110"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`ShouCangRoomActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.shoucang.ShouCangRoomActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="111"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`UserHomePageActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.homepage.UserHomePageActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="113"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`DengJiActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.dengji.DengJiActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="114"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`SearchResultActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.search.SearchResultActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="115"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`SearchHisActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.search.SearchHisActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="116"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`RealNameActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.real_name.RealNameActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="117"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`BlackListActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_home.tab.xiaoxi.black.BlackListActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="118"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MyZhuangBanActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.zhuangban.MyZhuangBanActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="123"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`TeQuanActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.tequan.TeQuanActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="124"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`DuiHuanActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.zuan.DuiHuanActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="125"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`BindAliActivity2` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.bindali2.BindAliActivity2" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="126"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`PassActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.pass.PassActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="127"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`AboutActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.set.AboutActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="128"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`YaoQingActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.YaoQingActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="129"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MyZhuangBanShangChengActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.zhuangban.MyZhuangBanShangChengActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="133"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`ChongZhiActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.chongzhi.ChongZhiActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="161"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MessageOfficeActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_home.tab.xiaoxi.xitong.MessageOfficeActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="162"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`GHMainActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.gh.main.GHMainActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="163"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`GHHomeActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.gh.home.GHHomeActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="164"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`GHSQActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.gh.shenqing.GHSQActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="165"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`BindZLActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_login.ui.bindZL.BindZLActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="166"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`JiFenLogActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.log.jifen.JiFenLogActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="167"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`QianLogActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.log.qian.QianLogActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="168"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`FriendListActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.zhuangban.FriendListActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="169"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MoneyDetailActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.MoneyDetailActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="170"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`PeerageActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.peerage.PeerageActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="171"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`TiXianLogActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.log.tixian.TiXianLogActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="172"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`DuiHuanLogActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.log.duihuan.DuiHuanLogActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="173"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`CPActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.cp.CPActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="174"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`LogoutActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.set.LogoutActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="175"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`TeenModeActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_home.tab.home.teen.TeenModeActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="176"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`TeenModeChangeActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_home.tab.home.teen.TeenModeChangeActivity" />"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="177"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`MoneyContainerActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.zuan.MoneyContainerActivity"/>"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="178"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`GongHuiDeatileActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.gh.deatile.GongHuiDeatileActivity"/>"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="179"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`GHBuTieActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.gh.deatile.GHBuTieActivity"/>"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="180"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`CPRoomActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_home.cproom.CPRoomActivity"/>"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="181"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`WxKeFuAt` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.set.WxKeFuAt"/>"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="182"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`TiXianNewActivity` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.tixian.TiXianNewActivity"/>"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="183"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="Instantiatable"
|
||||
message="`TxDeatileAt` must extend android.app.Activity"
|
||||
errorLine1=" <activity android:name="com.yuyin.mier.module_my.money.tixian.TxDeatileAt"/>"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="src/main/AndroidManifest.xml"
|
||||
line="184"
|
||||
column="33"/>
|
||||
</issue>
|
||||
|
||||
<issue
|
||||
id="ExpiredTargetSdkVersion"
|
||||
message="Google Play requires that apps target API level 31 or higher.
"
|
||||
errorLine1=" targetSdkVersion 30"
|
||||
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
|
||||
<location
|
||||
file="build.gradle"
|
||||
line="36"
|
||||
column="9"/>
|
||||
</issue>
|
||||
|
||||
</issues>
|
||||
22
app/proguard-rules.pro
vendored
Normal file
22
app/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
-keep class io.agora.**{*;}
|
||||
204
app/src/main/AndroidManifest.xml
Normal file
204
app/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.yuyin.mier">
|
||||
|
||||
<queries>
|
||||
<package android:name="com.tencent.mm" />
|
||||
<package android:name="com.eg.android.AlipayGphone" /> <!-- 支付宝 -->
|
||||
</queries> <!-- 这个权限用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 这个权限用于访问GPS定位 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 -->
|
||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- 控制呼吸灯,振动器等,用于新消息提醒 -->
|
||||
<uses-permission android:name="android.permission.FLASHLIGHT" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" /> <!-- SDK 权限申明, 第三方 APP 接入时,请将 com.netease.nim.demo 替换为自己的包名 -->
|
||||
<uses-permission android:name="android.permission.INTERNET" /> <!-- 网络通信 -->
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 获取设备信息 -->
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取MAC地址 -->
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 允许程序录制音频 -->
|
||||
<uses-permission android:name="android.permission.GET_TASKS" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- Android 9 及以下 -->
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <!-- Android 13+ 图片权限 -->
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <!-- Android 13+ 视频权限 -->
|
||||
|
||||
|
||||
<uses-permission android:name="android.permission.NETWORK_PROVIDER" />
|
||||
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
|
||||
android:maxSdkVersion="28" />
|
||||
<!-- />-->
|
||||
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
|
||||
<uses-permission android:name="android.permission.REORDER_TASKS" />
|
||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
|
||||
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
|
||||
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>
|
||||
<queries package="${applicationId}">
|
||||
<intent>
|
||||
<action android:name="android.media.action.IMAGE_CAPTURE">
|
||||
|
||||
</action>
|
||||
</intent>
|
||||
<intent>
|
||||
<action android:name="android.media.action.ACTION_VIDEO_CAPTURE">
|
||||
|
||||
</action>
|
||||
</intent>
|
||||
</queries>
|
||||
<!-- 基础权限 -->
|
||||
<application
|
||||
android:name="com.yuyin.lib_base.App"
|
||||
android:allowBackup="true"
|
||||
android:icon="@mipmap/ic_launcher_app"
|
||||
android:label="@string/app_name"
|
||||
android:largeHeap="true"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:resizeableActivity="false"
|
||||
android:roundIcon="@mipmap/ic_launcher_app"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme_MAIN"
|
||||
android:usesCleartextTraffic="true"
|
||||
tools:replace="android:icon,android:theme,android:allowBackup"
|
||||
tools:targetApi="n">
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_my.room.MyRoomActivity"
|
||||
android:exported="true" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_login.ui.ForgetActivity"
|
||||
android:exported="true" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_my.auction.SignedArtistActivity"
|
||||
android:exported="true" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_my.vip.ChangeInviterActivity"
|
||||
android:exported="true" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_my.vip.VipActivity"
|
||||
android:exported="true" />
|
||||
|
||||
<meta-data
|
||||
android:name="design_width_in_dp"
|
||||
android:value="375" />
|
||||
<meta-data
|
||||
android:name="design_height_in_dp"
|
||||
android:value="812" />
|
||||
|
||||
|
||||
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_my.set.BindPhoneActivity"
|
||||
android:exported="true" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.LunchActivity"
|
||||
android:label="@string/app_name"
|
||||
android:exported="true"
|
||||
android:theme="@style/main_SplashThemeImage">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.yuyin.mier.module_my.homepage.UserGiftWallActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_login.ui.ModuleLoginMainActivity" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_home.MainActivity"
|
||||
android:configChanges="fontScale" />
|
||||
<activity android:name="com.yuyin.mier.module_my.money.MoneyMainActivity" /> <!-- <activity android:name="com.yuyin.gouniyuyin_20220109.module_my.log.duihuan.DuiHuanLogActivity" /> -->
|
||||
<!-- <activity android:name="com.yuyin.gouniyuyin_20220109.module_my.log.tixian.TiXianLogActivity" /> -->
|
||||
<activity android:name="com.yuyin.mier.module_my.log.zhuanzeng.ZhuanZengLogActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.money.bindali.BindAliActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.money.tixian.TiXianActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.giftlog.sub.GiftLogSubActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.giftlog.GiftLogActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.edituser.ModifyDataActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.feedback.FeedBackActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.payps.PayPsActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.set.SetActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.shoucang.ShouCangRoomActivity" />
|
||||
<!-- <activity android:name=".module_my.followfans.FollowFansActivity" />-->
|
||||
<activity android:name="com.yuyin.mier.module_my.homepage.UserHomePageActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.dengji.DengJiActivity" />
|
||||
<activity android:name="com.yuyin.mier.search.SearchResultActivity" />
|
||||
<activity android:name="com.yuyin.mier.search.SearchHisActivity" />
|
||||
<activity android:name="com.yuyin.mier.real_name.RealNameActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_home.tab.xiaoxi.black.BlackListActivity" />
|
||||
<!-- <activity-->
|
||||
<!-- android:name=".com.yuyin.lib_base.MessageActivity"-->
|
||||
<!-- android:screenOrientation="portrait"-->
|
||||
<!-- android:windowSoftInputMode="stateHidden|adjustResize" />-->
|
||||
<activity android:name="com.yuyin.mier.module_my.zhuangban.MyZhuangBanActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.tequan.TeQuanActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.money.zuan.DuiHuanActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.money.bindali2.BindAliActivity2" />
|
||||
<activity android:name="com.yuyin.mier.module_my.pass.PassActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.set.AboutActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.YaoQingActivity" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.module_my.zhuangban.MyZhuangBanActivity"
|
||||
tools:ignore="DuplicateActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.zhuangban.MyZhuangBanShangChengActivity" />
|
||||
<activity
|
||||
android:name="com.chuanglan.shanyan_sdk.view.CmccLoginActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="behind" />
|
||||
|
||||
<activity-alias
|
||||
android:name="com.cmic.sso.sdk.activity.LoginAuthActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="behind"
|
||||
android:targetActivity="com.chuanglan.shanyan_sdk.view.CmccLoginActivity" />
|
||||
|
||||
<activity
|
||||
android:name="com.chuanglan.shanyan_sdk.view.ShanYanOneKeyActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="behind" />
|
||||
<activity
|
||||
android:name="com.chuanglan.shanyan_sdk.view.CTCCPrivacyProtocolActivity"
|
||||
android:configChanges="keyboardHidden|orientation|screenSize"
|
||||
android:launchMode="singleTop"
|
||||
android:screenOrientation="behind" />
|
||||
<activity
|
||||
android:name="com.yuyin.mier.wxapi.WXPayEntryActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop" />
|
||||
<activity android:name="com.yuyin.mier.module_my.chongzhi.ChongZhiActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_home.tab.xiaoxi.xitong.MessageOfficeActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.gh.main.GHMainActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.gh.home.GHHomeActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.gh.shenqing.GHSQActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_login.ui.bindZL.BindZLActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.log.jifen.JiFenLogActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.log.qian.QianLogActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.zhuangban.FriendListActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.money.MoneyDetailActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.peerage.PeerageActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.log.tixian.TiXianLogActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.log.duihuan.DuiHuanLogActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.cp.CPActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.set.LogoutActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_home.tab.home.teen.TeenModeActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_home.tab.home.teen.TeenModeChangeActivity" />
|
||||
<activity android:name="com.yuyin.mier.module_my.money.zuan.MoneyContainerActivity"/>
|
||||
<activity android:name="com.yuyin.mier.module_my.gh.deatile.GongHuiDeatileActivity"/>
|
||||
<activity android:name="com.yuyin.mier.module_my.gh.deatile.GHBuTieActivity"/>
|
||||
<activity android:name="com.yuyin.mier.module_home.cproom.CPRoomActivity"/>
|
||||
<activity android:name="com.yuyin.mier.module_my.set.WxKeFuAt"/>
|
||||
<activity android:name="com.yuyin.mier.module_my.money.tixian.TiXianNewActivity"/>
|
||||
<activity android:name="com.yuyin.mier.module_my.money.tixian.TxDeatileAt"/>
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
115
app/src/main/java/com/yuyin/mier/LunchActivity.kt
Normal file
115
app/src/main/java/com/yuyin/mier/LunchActivity.kt
Normal file
@@ -0,0 +1,115 @@
|
||||
package com.yuyin.mier
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.google.gson.Gson
|
||||
import com.kongzue.dialog.v3.MessageDialog
|
||||
import com.tencent.qcloud.tuicore.util.SPUtils
|
||||
import com.xuexiang.xupdate.XUpdate
|
||||
import com.xuexiang.xupdate.entity.UpdateEntity
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseActivity
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.ConfigBean
|
||||
import kotlinx.android.synthetic.main.activity_launch.*
|
||||
|
||||
class LunchActivity : BaseActivity<BaseViewModel>() {
|
||||
private var mContext: Context? = null
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
if (!isTaskRoot) {
|
||||
finish()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置透明状态栏
|
||||
*/
|
||||
private fun setStatusBar() {
|
||||
// val window: Window = window
|
||||
// window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
|
||||
// window.decorView.systemUiVisibility =
|
||||
// View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
|
||||
// window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
||||
// window.statusBarColor = 0
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.configBean.observe(this) {
|
||||
SPUtils.getInstance().put("config",Gson().toJson(it))
|
||||
if (it.version_is_force_update > 0) {
|
||||
updateAPP(it)
|
||||
return@observe
|
||||
}
|
||||
App.configBean = it
|
||||
Handler().postDelayed({
|
||||
if (UserManager.IS_LOGIN) {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
finish()
|
||||
} else {
|
||||
ARouter.getInstance().build(AroutUtil.LOGIN_MAIN).navigation()
|
||||
finish()
|
||||
}
|
||||
}, 100)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
// requestWindowFeature(Window.FEATURE_NO_TITLE)
|
||||
// this.window.setFlags(
|
||||
// WindowManager.LayoutParams.FLAG_FULLSCREEN,
|
||||
// WindowManager.LayoutParams.FLAG_FULLSCREEN
|
||||
// )
|
||||
// setStatusBar()
|
||||
return R.layout.activity_launch
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
mContext = this
|
||||
// Glide.with(this).load(R.mipmap.splash).into(img)
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
val code = getVersionCode()
|
||||
viewModel.get_system_base_config("$code", "1")
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
}
|
||||
|
||||
private fun update(configBean: ConfigBean) {
|
||||
MessageDialog.show(
|
||||
this,
|
||||
"提示",
|
||||
configBean.version_note,
|
||||
"去更新"
|
||||
).setOnOkButtonClickListener { baseDialog, v ->
|
||||
val uri: Uri = Uri.parse(configBean.version_down_url)
|
||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
||||
startActivity(intent)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun updateAPP(configBean: ConfigBean) {
|
||||
val updateEntity = UpdateEntity()
|
||||
updateEntity.downloadUrl = configBean.version_down_url
|
||||
updateEntity.versionCode = 3
|
||||
updateEntity.versionName = configBean.version_app
|
||||
updateEntity.updateContent = configBean.version_note
|
||||
updateEntity.isForce = configBean.version_is_force_update == 2
|
||||
updateEntity.isHasUpdate = true
|
||||
XUpdate.newBuild(this).supportBackgroundUpdate(false) //
|
||||
.promptWidthRatio(0.8f).build().update(updateEntity)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
|
||||
class BaseIndicatorAdapter : BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_indicator) {
|
||||
private var selectPosition: Int = 0
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: String?) {
|
||||
helper.setText(R.id.tv_content,item)
|
||||
val select = helper.layoutPosition == selectPosition
|
||||
helper.getView<TextView>(R.id.tv_content).isSelected = select
|
||||
helper.getView<ImageView>(R.id.v_view).isSelected = select
|
||||
}
|
||||
|
||||
fun setSelectPosition(index: Int) {
|
||||
notifyItemChanged(selectPosition)
|
||||
notifyItemChanged(index)
|
||||
selectPosition = index
|
||||
}
|
||||
|
||||
}
|
||||
27
app/src/main/java/com/yuyin/mier/adapter/CPTxListAdapter.kt
Normal file
27
app/src/main/java/com/yuyin/mier/adapter/CPTxListAdapter.kt
Normal file
@@ -0,0 +1,27 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.model.MyCpTxBean
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
|
||||
class CPTxListAdapter :
|
||||
BaseQuickAdapter<MyCpTxBean, BaseViewHolder>(R.layout.item_cp_room) {
|
||||
override fun convert(helper: BaseViewHolder, item: MyCpTxBean) {
|
||||
GlideUtil.loadImglogo(mContext, item.cp_tx_img, helper.getView(R.id.iv_cp_gift))
|
||||
if(item.is_using=="1"){
|
||||
helper.setVisible(R.id.iv_cp_use,true)
|
||||
}else{
|
||||
helper.setGone(R.id.iv_cp_use,false)
|
||||
}
|
||||
helper.setText(R.id.tv_cp_level, "LV."+item.level)
|
||||
.setText(R.id.tv_name_cp, item.cp_tx_title)
|
||||
// if(item.js_suo=="1"){
|
||||
// helper.getView<RelativeLayout>(R.id.rl_cp).alpha=1.0f
|
||||
// }else{
|
||||
// helper.getView<RelativeLayout>(R.id.rl_cp).alpha=0.6f
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
28
app/src/main/java/com/yuyin/mier/adapter/CPTxkListAdapter.kt
Normal file
28
app/src/main/java/com/yuyin/mier/adapter/CPTxkListAdapter.kt
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.view.View
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.model.MyCpTxBean
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
|
||||
class CPTxkListAdapter :
|
||||
BaseQuickAdapter<MyCpTxBean, BaseViewHolder>(R.layout.item_cp_room) {
|
||||
override fun convert(helper: BaseViewHolder, item: MyCpTxBean) {
|
||||
GlideUtil.loadImglogo(mContext, item.head_decorate_img, helper.getView(R.id.iv_cp_gift))
|
||||
if(item.is_using=="1"){
|
||||
helper.setVisible(R.id.iv_cp_use,true)
|
||||
}else{
|
||||
helper.setGone(R.id.iv_cp_use,false)
|
||||
}
|
||||
helper.setText(R.id.tv_cp_level, "LV."+item.level)
|
||||
.setText(R.id.tv_name_cp, item.head_decorate_title)
|
||||
|
||||
if(item.js_suo=="1"){
|
||||
helper.getView<View>(R.id.rl_cp).alpha=1.0f
|
||||
}else{
|
||||
helper.getView<View>(R.id.rl_cp).alpha=0.6f
|
||||
}
|
||||
}
|
||||
}
|
||||
65
app/src/main/java/com/yuyin/mier/adapter/GHListAdapter.kt
Normal file
65
app/src/main/java/com/yuyin/mier/adapter/GHListAdapter.kt
Normal file
@@ -0,0 +1,65 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.graphics.Color
|
||||
import android.widget.ImageView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.makeramen.roundedimageview.RoundedImageView
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.GHListBean
|
||||
import java.util.*
|
||||
|
||||
class GHListAdapter :
|
||||
BaseQuickAdapter<GHListBean, BaseViewHolder>(R.layout.item_gonghui, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: GHListBean) {
|
||||
GlideUtil.loadImglogo(mContext, item.cover, helper.getView<ImageView>(R.id.img1))
|
||||
helper.setText(R.id.tv_text, item.guild_name)
|
||||
.setText(R.id.tv_hot, item.total_gift_total_price)
|
||||
.setText(R.id.tv_personal,"人数"+ item.num.toString() )
|
||||
helper.setText(R.id.tv_num, (helper.position + 1).toString())
|
||||
|
||||
var img1 = helper.getView<RoundedImageView>(R.id.img1)
|
||||
|
||||
if (helper.position < 3) {
|
||||
helper.setGone(R.id.ll, true)
|
||||
helper.setGone(R.id.tv_num, false)
|
||||
helper.setVisible(R.id.view_line, false)
|
||||
when (helper.position) {
|
||||
0 -> {
|
||||
// img1.setBorderColor(Color.parseColor("#FF8601"))
|
||||
// helper.setTextColor(R.id.tv_num, Color.parseColor("#FF8601"))
|
||||
// helper.setTextColor(R.id.tv_text, Color.parseColor("#FF8601"))
|
||||
// helper.setTextColor(R.id.tv_personal, Color.parseColor("#FF8601"))
|
||||
helper.setImageResource(R.id.iv, R.mipmap.gh1)
|
||||
// helper.setBackgroundRes(R.id.root_view, R.mipmap.gonghui_listbg1)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
// img1.setBorderColor(Color.parseColor("#609CFF"))
|
||||
// helper.setTextColor(R.id.tv_num, Color.parseColor("#609CFF"))
|
||||
// helper.setTextColor(R.id.tv_text, Color.parseColor("#609CFF"))
|
||||
// helper.setTextColor(R.id.tv_personal, Color.parseColor("#609CFF"))
|
||||
helper.setImageResource(R.id.iv, R.mipmap.gh2)
|
||||
// helper.setBackgroundRes(R.id.root_view, R.mipmap.gonghui_listbg2)
|
||||
}
|
||||
|
||||
2 -> {
|
||||
// img1.setBorderColor(Color.parseColor("#F59364"))
|
||||
// helper.setTextColor(R.id.tv_num, Color.parseColor("#F59364"))
|
||||
// helper.setTextColor(R.id.tv_text, Color.parseColor("#F59364"))
|
||||
// helper.setTextColor(R.id.tv_personal, Color.parseColor("#F59364"))
|
||||
helper.setImageResource(R.id.iv, R.mipmap.gh3)
|
||||
// helper.setBackgroundRes(R.id.root_view, R.mipmap.gonghui_listbg3)
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
// img1.setBorderColor(Color.parseColor("#00F59364"))
|
||||
helper.setTextColor(R.id.tv_num, Color.parseColor("#333333"))
|
||||
helper.setGone(R.id.ll, false)
|
||||
helper.setGone(R.id.tv_num, true)
|
||||
// helper.setVisible(R.id.view_line,true)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.widget.ImageView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.GHRoomListBean
|
||||
import java.util.*
|
||||
|
||||
|
||||
class GHRoomListAdapter :
|
||||
BaseQuickAdapter<GHRoomListBean, BaseViewHolder>(R.layout.item_gonghui_room, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: GHRoomListBean) {
|
||||
GlideUtil.loadImglogo(mContext, item.room_cover, helper.getView<ImageView>(R.id.cover))
|
||||
helper.setText(R.id.tv_name, item.room_name).setText(R.id.tv_id, "ID:" + item.room_number)
|
||||
.setText(R.id.tv_num, item.total_gift_total_price)
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.widget.ImageView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.GHUserListBean
|
||||
import java.util.*
|
||||
|
||||
|
||||
class GHSQUserListAdapter :
|
||||
BaseQuickAdapter<GHUserListBean, BaseViewHolder>(R.layout.item_gonghui_user, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: GHUserListBean) {
|
||||
GlideUtil.loadImglogo(mContext, item.head_pic, helper.getView<ImageView>(R.id.cover))
|
||||
helper.setText(R.id.tv_name, item.nick_name).setText(R.id.tv_id, item.uid)
|
||||
.setText(R.id.tv_hot_value,item.total_gift_total_price)
|
||||
helper.addOnClickListener(R.id.cover)
|
||||
helper.addOnClickListener(R.id.tvNO)
|
||||
helper.addOnClickListener(R.id.tvYes)
|
||||
helper.setGone(R.id.tvNO, true)
|
||||
helper.setGone(R.id.tvYes, true)
|
||||
helper.setGone(R.id.tv_remove, false)
|
||||
helper.setGone(R.id.tv_hot_value, false)
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.widget.ImageView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.GHUserListBean
|
||||
import com.yuyin.lib_base.Const
|
||||
import java.util.*
|
||||
|
||||
|
||||
class GHUserListAdapter :
|
||||
BaseQuickAdapter<GHUserListBean, BaseViewHolder>(R.layout.item_gonghui_user, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: GHUserListBean) {
|
||||
var type = 0
|
||||
GlideUtil.loadImglogo(mContext, item.head_pic, helper.getView<ImageView>(R.id.cover))
|
||||
helper.setText(R.id.tv_name, item.nick_name).setText(R.id.tv_id, item.uid)
|
||||
.setText(R.id.tv_hot_value, item.total_gift_total_price)
|
||||
helper.addOnClickListener(R.id.cover)
|
||||
helper.addOnClickListener(R.id.tvNO)
|
||||
helper.addOnClickListener(R.id.tvYes)
|
||||
helper.addOnClickListener(R.id.tv_remove)
|
||||
|
||||
helper.setGone(R.id.iv_hz, helper.position == 0)
|
||||
|
||||
if (Const.GH_REMOVE) {
|
||||
helper.setGone(R.id.tv_remove, helper.position != 0)
|
||||
} else {
|
||||
helper.setGone(R.id.tv_remove, false)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.RoomListBean
|
||||
|
||||
class HomePagerHotAdapter :
|
||||
BaseQuickAdapter<RoomListBean, BaseViewHolder>(R.layout.item_home_pager_hot) {
|
||||
override fun convert(helper: BaseViewHolder, item: RoomListBean) {
|
||||
|
||||
GlideUtil.loadImglogo(mContext, item.room_cover, helper.getView(R.id.room_cover))
|
||||
helper.setText(R.id.tv_value, item.hot_value)
|
||||
.setText(R.id.tv_type, item.category_name)
|
||||
.setText(R.id.tv_name, item.room_name)
|
||||
.setText(R.id.tv_id, "ID " + item.room_number)
|
||||
|
||||
|
||||
when (item.category_name) {
|
||||
"男神" -> {
|
||||
helper.setBackgroundRes(R.id.ll_type, R.mipmap.item_home_pager_hot_tag2)
|
||||
}
|
||||
"女神" -> {
|
||||
helper.setBackgroundRes(R.id.ll_type, R.mipmap.item_home_pager_hot_tag1)
|
||||
}
|
||||
else -> {
|
||||
helper.setBackgroundRes(R.id.ll_type, R.mipmap.item_home_pager_hot_tag3)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (item.room_micro_list.isNotEmpty()) {
|
||||
GlideUtil.loadImglogo(
|
||||
mContext,
|
||||
item.room_micro_list[0].head_pic,
|
||||
helper.getView(R.id.civ1)
|
||||
)
|
||||
}
|
||||
|
||||
if (item.room_micro_list.size > 1) {
|
||||
GlideUtil.loadImglogo(
|
||||
mContext,
|
||||
item.room_micro_list[1].head_pic,
|
||||
helper.getView(R.id.civ2)
|
||||
)
|
||||
}
|
||||
|
||||
if (item.room_micro_list.size > 2) {
|
||||
GlideUtil.loadImglogo(
|
||||
mContext,
|
||||
item.room_micro_list[2].head_pic,
|
||||
helper.getView(R.id.civ3)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.RoomListBean
|
||||
|
||||
class HomePagerTopAdapter :
|
||||
BaseQuickAdapter<RoomListBean, BaseViewHolder>(R.layout.item_home_pager_top) {
|
||||
override fun convert(helper: BaseViewHolder, item: RoomListBean) {
|
||||
GlideUtil.loadImglogo(mContext, item.room_cover, helper.getView(R.id.room_cover))
|
||||
helper.setText(R.id.tv_value, item.hot_value)
|
||||
.setText(R.id.tv_type, item.category_name)
|
||||
.setText(R.id.tv_name, item.room_name)
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.yuyin.mier.adapter;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yuyin.lib_base.model.CategorRoomBean;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yuyin.mier.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class HomeRoomTypeAdapter extends BaseQuickAdapter<CategorRoomBean, BaseViewHolder> {
|
||||
public int getSelectPos() {
|
||||
return selectPos;
|
||||
}
|
||||
|
||||
public void setSelectPos(int selectPos) {
|
||||
this.selectPos = selectPos;
|
||||
}
|
||||
|
||||
private int selectPos = 0;
|
||||
|
||||
public HomeRoomTypeAdapter() {
|
||||
super(R.layout.item_home_room_type, new ArrayList<>());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, CategorRoomBean item) {
|
||||
|
||||
helper.setText(R.id.tv_text, item.getCategory_name());
|
||||
helper.setGone(R.id.v_left, helper.getPosition() == selectPos);
|
||||
helper.setGone(R.id.v_right, helper.getPosition() == selectPos);
|
||||
TextView textView = helper.getView(R.id.tv_text);
|
||||
textView.setTextColor(helper.getPosition() == selectPos ? Color.parseColor("#36DCD9") : Color.parseColor("#666666"));
|
||||
}
|
||||
|
||||
}
|
||||
16
app/src/main/java/com/yuyin/mier/adapter/LeverListAdapter.kt
Normal file
16
app/src/main/java/com/yuyin/mier/adapter/LeverListAdapter.kt
Normal file
@@ -0,0 +1,16 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.Level
|
||||
|
||||
class LeverListAdapter : BaseQuickAdapter<Level, BaseViewHolder>(R.layout.item_lever) {
|
||||
override fun convert(helper: BaseViewHolder, item: Level) {
|
||||
|
||||
helper.setText(R.id.tv_lever, item.level.toString())
|
||||
.setText(R.id.tv_value, item.number.toString())
|
||||
GlideUtil.loadImglogo(mContext, item.image, helper.getView(R.id.iv_dengji))
|
||||
}
|
||||
}
|
||||
78
app/src/main/java/com/yuyin/mier/adapter/MsgAdapter.kt
Normal file
78
app/src/main/java/com/yuyin/mier/adapter/MsgAdapter.kt
Normal file
@@ -0,0 +1,78 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.tencent.qcloud.tuikit.tuiconversation.bean.ConversationInfo
|
||||
import com.tencent.qcloud.tuikit.tuiconversation.classicui.util.TUIConversationUtils
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.util.TimeUtil
|
||||
import com.yuyin.mier.R
|
||||
import java.util.*
|
||||
|
||||
class MsgAdapter : BaseQuickAdapter<ConversationInfo, BaseViewHolder>(R.layout.item_message) {
|
||||
override fun convert(helper: BaseViewHolder, item: ConversationInfo) {
|
||||
|
||||
helper.setText(R.id.tv_nick_name, item.conversation.showName)
|
||||
|
||||
|
||||
|
||||
if (item.lastMessage != null) {
|
||||
if (item.lastMessage.textElem != null) {
|
||||
helper.setText(R.id.tv_content, item.lastMessage.textElem.text)
|
||||
} else if (item.lastMessage.customElem != null) {
|
||||
helper.setText(R.id.tv_content, item.lastMessage.customElem.description)
|
||||
} else {
|
||||
helper.setText(R.id.tv_content, "")
|
||||
}
|
||||
}
|
||||
|
||||
GlideUtil.loadImglogo(mContext, item.conversation.faceUrl, helper.getView(R.id.ci_head))
|
||||
if (item.unRead > 0) {
|
||||
helper.setText(R.id.tv_num, item.unRead.toString())
|
||||
helper.setVisible(R.id.tv_num, true)
|
||||
} else {
|
||||
helper.setVisible(R.id.tv_num, false)
|
||||
}
|
||||
|
||||
|
||||
helper.itemView.setOnClickListener {
|
||||
TUIConversationUtils.startChatActivity(item)
|
||||
}
|
||||
|
||||
|
||||
helper.setText(R.id.tv_time, TimeUtil.toDateYmdHan3(item.lastMessageTime))
|
||||
|
||||
|
||||
// V2TIMManager.getConversationManager()
|
||||
// .pinConversation(item.conversationId, true, object : V2TIMCallback {
|
||||
// override fun onSuccess() {
|
||||
// Log.i("imsdk", "success")
|
||||
// Collections.swap(datas, 1, position)
|
||||
// proxyNotifyDataSetChanged()
|
||||
// }
|
||||
//
|
||||
// override fun onError(code: Int, desc: String) {
|
||||
// Log.i("imsdk", "failure, code:$code, desc:$desc")
|
||||
// }
|
||||
// })
|
||||
|
||||
|
||||
// holder.dataBinding.tvDelete.setOnClickListener {
|
||||
// // 删除消息
|
||||
// V2TIMManager.getConversationManager()
|
||||
// .deleteConversation(
|
||||
// item.conversationId,
|
||||
// object : V2TIMCallback {
|
||||
// override fun onSuccess() {
|
||||
// Log.i("imsdk", "success")
|
||||
// datas.removeAt(position)
|
||||
// notifyItemRemoved(position)
|
||||
// }
|
||||
//
|
||||
// override fun onError(code: Int, desc: String) {
|
||||
// Log.i("imsdk", "failure, code:$code, desc:$desc")
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
}
|
||||
}
|
||||
28
app/src/main/java/com/yuyin/mier/adapter/MyListAdapter.java
Normal file
28
app/src/main/java/com/yuyin/mier/adapter/MyListAdapter.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.yuyin.mier.adapter;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.yuyin.lib_base.model.MyListBean;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yuyin.mier.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class MyListAdapter extends BaseQuickAdapter<MyListBean, BaseViewHolder> {
|
||||
|
||||
|
||||
public MyListAdapter() {
|
||||
super(R.layout.item_my_list, new ArrayList<>());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, MyListBean item) {
|
||||
|
||||
helper.setText(R.id.tv_title, item.getTitle());
|
||||
Glide.with(mContext).load(item.getImg()).into((ImageView) helper.getView(R.id.iv_img));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
28
app/src/main/java/com/yuyin/mier/adapter/MyListAdapter2.java
Normal file
28
app/src/main/java/com/yuyin/mier/adapter/MyListAdapter2.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.yuyin.mier.adapter;
|
||||
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yuyin.lib_base.model.MyListBean;
|
||||
import com.yuyin.mier.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class MyListAdapter2 extends BaseQuickAdapter<MyListBean, BaseViewHolder> {
|
||||
|
||||
|
||||
public MyListAdapter2() {
|
||||
super(R.layout.item_my_list2, new ArrayList<>());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, MyListBean item) {
|
||||
|
||||
helper.setText(R.id.tv_title, item.getTitle());
|
||||
Glide.with(mContext).load(item.getImg()).into((ImageView) helper.getView(R.id.iv_img));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.TimeUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.OffiMessageBean
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* 官方消息列表
|
||||
*/
|
||||
class OfficeListAdapter :
|
||||
BaseQuickAdapter<OffiMessageBean, BaseViewHolder>(R.layout.item_message_office, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: OffiMessageBean) {
|
||||
helper
|
||||
.setText(R.id.textTime, TimeUtil.chatTimee2(item.add_time))
|
||||
.setText(R.id.tv_content, item.content)
|
||||
.setText(R.id.tv_title1, item.title)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.model.PhotoMemory
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
|
||||
class PhoneMemoryAdapter : BaseQuickAdapter<PhotoMemory, BaseViewHolder>(R.layout.item_photo_memory) {
|
||||
override fun convert(helper: BaseViewHolder, item: PhotoMemory) {
|
||||
helper.addOnClickListener(R.id.iv_delete)
|
||||
helper.setText(R.id.tv_photo, item.photo)
|
||||
GlideUtil.loadImglogo(mContext, item.head_pic, helper.getView(R.id.iv_head))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import android.widget.AdapterView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.util.img.FullScreenUtil
|
||||
import com.yuyin.lib_base.view.MyGridView
|
||||
import com.yuyin.module_community.adapter.OneImageYuanJiaoAdapter
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.RoomZoneList
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* 官方消息列表
|
||||
*/
|
||||
class RoomZoneListAdapter :
|
||||
BaseQuickAdapter<RoomZoneList, BaseViewHolder>(R.layout.item_room_zone, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: RoomZoneList) {
|
||||
GlideUtil.loadImglogo(mContext, item.head_pic, helper.getView(R.id.img))
|
||||
helper
|
||||
.setText(
|
||||
R.id.tvTimeAddress,
|
||||
item.zone_time
|
||||
)
|
||||
.setText(R.id.tvName, item.nick_name)
|
||||
.setText(R.id.tvText, item.content)
|
||||
helper.addOnClickListener(R.id.tvRoom)
|
||||
helper.addOnClickListener(R.id.tvHome)
|
||||
helper.addOnClickListener(R.id.img)
|
||||
|
||||
if (item.rid == "0") {
|
||||
helper.getView<View>(R.id.tvRoom).visibility = View.GONE
|
||||
} else {
|
||||
helper.getView<View>(R.id.tvRoom).visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
if (TextUtils.isEmpty(item.content)) {
|
||||
helper.getView<View>(R.id.tvText).visibility = View.GONE
|
||||
} else {
|
||||
helper.getView<View>(R.id.tvText).visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
val oneImageYuanJiaoAdapter = OneImageYuanJiaoAdapter(mContext)
|
||||
val recyclerView = helper.getView<MyGridView>(R.id.dy_image_recyc)
|
||||
recyclerView.numColumns = 3
|
||||
recyclerView.adapter = oneImageYuanJiaoAdapter
|
||||
oneImageYuanJiaoAdapter.getList_adapter().clear()
|
||||
for (j in item.images.indices) {
|
||||
oneImageYuanJiaoAdapter.getList_adapter().add(item.images[j])
|
||||
}
|
||||
oneImageYuanJiaoAdapter.notifyDataSetChanged()
|
||||
recyclerView.onItemClickListener =
|
||||
AdapterView.OnItemClickListener { parent: AdapterView<*>?, view: View?, position: Int, id: Long ->
|
||||
FullScreenUtil.showFullScreenDialog(
|
||||
mContext,
|
||||
position,
|
||||
oneImageYuanJiaoAdapter.getList_adapter()
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
30
app/src/main/java/com/yuyin/mier/adapter/SceneFlowAdapter.kt
Normal file
30
app/src/main/java/com/yuyin/mier/adapter/SceneFlowAdapter.kt
Normal file
@@ -0,0 +1,30 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.widget.TextView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
|
||||
class SceneFlowAdapter : BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_scene_flow) {
|
||||
|
||||
private var selectPosition = 0
|
||||
override fun convert(helper: BaseViewHolder, item: String?) {
|
||||
|
||||
helper.setText(R.id.tv_name, item)
|
||||
val isSelected = helper.layoutPosition === selectPosition
|
||||
if (isSelected) {
|
||||
helper.getView<TextView>(R.id.tv_name).isSelected = true
|
||||
} else {
|
||||
helper.getView<TextView>(R.id.tv_name).isSelected = false
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun setSelectPosition(index: Int) {
|
||||
notifyItemChanged(selectPosition)
|
||||
notifyItemChanged(index)
|
||||
selectPosition = index
|
||||
}
|
||||
}
|
||||
68
app/src/main/java/com/yuyin/mier/adapter/TeQuanAdapter.java
Normal file
68
app/src/main/java/com/yuyin/mier/adapter/TeQuanAdapter.java
Normal file
@@ -0,0 +1,68 @@
|
||||
package com.yuyin.mier.adapter;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.yuyin.module_live.R;
|
||||
import com.yuyin.module_live.model.TeQuanBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class TeQuanAdapter extends BaseQuickAdapter<TeQuanBean, BaseViewHolder> {
|
||||
|
||||
public TeQuanAdapter(List<TeQuanBean> data) {
|
||||
super(R.layout.item_tequan, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, TeQuanBean item) {
|
||||
Glide.with(mContext).load(item.getLevel_image()).into((ImageView) helper.getView(R.id.ivTitle1));
|
||||
helper.setText(R.id.tvTitle1, "等级" + item.getLevel() + "特权");
|
||||
|
||||
if (item.getMan_mount_decorate() != null && !TextUtils.isEmpty(item.getMan_mount_decorate().getTitle())) {
|
||||
helper.setGone(R.id.tv_text1, true)
|
||||
.setGone(R.id.iv_img1, true);
|
||||
helper.setText(R.id.tv_text1, item.getMan_mount_decorate().getTitle());
|
||||
Glide.with(mContext).load(item.getMan_mount_decorate().getBase_image()).into((ImageView) helper.getView(R.id.iv_img1));
|
||||
} else {
|
||||
helper.setGone(R.id.tv_text1, false)
|
||||
.setGone(R.id.iv_img1, false);
|
||||
}
|
||||
|
||||
if (item.getMan_head_decorate() != null && !TextUtils.isEmpty(item.getMan_head_decorate().getTitle())) {
|
||||
helper.setGone(R.id.tv_text2, true)
|
||||
.setGone(R.id.iv_img2, true);
|
||||
helper.setText(R.id.tv_text2, item.getMan_head_decorate().getTitle());
|
||||
Glide.with(mContext).load(item.getMan_head_decorate().getBase_image()).into((ImageView) helper.getView(R.id.iv_img2));
|
||||
} else {
|
||||
helper.setGone(R.id.tv_text2, false)
|
||||
.setGone(R.id.iv_img2, false);
|
||||
}
|
||||
|
||||
if (item.getWoman_mount_decorate() != null && !TextUtils.isEmpty(item.getWoman_mount_decorate().getTitle())) {
|
||||
helper.setGone(R.id.tv_text3, true)
|
||||
.setGone(R.id.iv_img3, true);
|
||||
helper.setText(R.id.tv_text3, item.getWoman_mount_decorate().getTitle());
|
||||
Glide.with(mContext).load(item.getWoman_mount_decorate().getBase_image()).into((ImageView) helper.getView(R.id.iv_img3));
|
||||
} else {
|
||||
helper.setGone(R.id.tv_text3, false)
|
||||
.setGone(R.id.iv_img3, false);
|
||||
}
|
||||
|
||||
if (item.getWoman_head_decorate() != null && !TextUtils.isEmpty(item.getWoman_head_decorate().getTitle())) {
|
||||
helper.setGone(R.id.tv_text4, true)
|
||||
.setGone(R.id.iv_img4, true);
|
||||
helper.setText(R.id.tv_text4, item.getWoman_head_decorate().getTitle());
|
||||
Glide.with(mContext).load(item.getWoman_head_decorate().getBase_image()).into((ImageView) helper.getView(R.id.iv_img4));
|
||||
} else {
|
||||
helper.setGone(R.id.tv_text4, false)
|
||||
.setGone(R.id.iv_img4, false);
|
||||
}
|
||||
helper.setGone(R.id.ivAdd1, !TextUtils.isEmpty(item.getMan_mount_decorate().getTitle()) && !TextUtils.isEmpty(item.getMan_head_decorate().getTitle()));
|
||||
helper.setGone(R.id.ivAdd2, !TextUtils.isEmpty(item.getWoman_mount_decorate().getTitle()) && !TextUtils.isEmpty(item.getWoman_head_decorate().getTitle()));
|
||||
|
||||
}
|
||||
}
|
||||
27
app/src/main/java/com/yuyin/mier/adapter/VipPriceAdapter.kt
Normal file
27
app/src/main/java/com/yuyin/mier/adapter/VipPriceAdapter.kt
Normal file
@@ -0,0 +1,27 @@
|
||||
package com.yuyin.mier.adapter
|
||||
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_my.model.Vip
|
||||
|
||||
class VipPriceAdapter : BaseQuickAdapter<Vip, BaseViewHolder>(R.layout.item_vip) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: Vip) {
|
||||
helper.setText(R.id.tv_select1,item.name)
|
||||
.setText(R.id.tv_select11,item.price)
|
||||
if(item.isSelect){
|
||||
helper.getView<LinearLayout>(R.id.ll_select1).isSelected=true
|
||||
helper.getView<TextView>(R.id.tv_select1).isSelected=true
|
||||
helper.getView<TextView>(R.id.tv_select11).isSelected=true
|
||||
}else{
|
||||
helper.getView<LinearLayout>(R.id.ll_select1).isSelected=false
|
||||
helper.getView<TextView>(R.id.tv_select1).isSelected=false
|
||||
helper.getView<TextView>(R.id.tv_select11).isSelected=false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
381
app/src/main/java/com/yuyin/mier/module_home/MainActivity.kt
Normal file
381
app/src/main/java/com/yuyin/mier/module_home/MainActivity.kt
Normal file
@@ -0,0 +1,381 @@
|
||||
package com.yuyin.mier.module_home
|
||||
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.KeyEvent
|
||||
import android.view.View
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.LinearInterpolator
|
||||
import android.view.animation.RotateAnimation
|
||||
import android.widget.RadioGroup
|
||||
import android.widget.Toast
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.kongzue.dialog.v3.MessageDialog
|
||||
import com.tencent.imsdk.v2.*
|
||||
import com.tencent.qcloud.tuicore.TUILogin
|
||||
import com.tencent.qcloud.tuicore.interfaces.TUICallback
|
||||
import com.tencent.qcloud.tuicore.interfaces.TUILoginConfig
|
||||
import com.tencent.qcloud.tuikit.tuiconversation.config.TUIConversationConfig
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.arouter.AroutUtil.MAIN_MAIN
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.EnterRoomInfo
|
||||
import com.yuyin.lib_base.model.FirstEvent
|
||||
import com.yuyin.lib_base.model.UserBean
|
||||
import com.yuyin.lib_base.util.FragmentUtils
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.lib_base.view.CircularImage
|
||||
import com.yuyin.lib_base.view.floatingview.EnFloatingView
|
||||
import com.yuyin.lib_base.view.floatingview.FloatingMagnetView
|
||||
import com.yuyin.lib_base.view.floatingview.FloatingView
|
||||
import com.yuyin.lib_base.view.floatingview.MagnetViewListener
|
||||
import com.yuyin.module_live.ui.room.AdminRoomActivity
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.MyListAdapter
|
||||
import com.yuyin.mier.databinding.ActivityMainBinding
|
||||
import com.yuyin.mier.module_home.tab.center.CenterFragment
|
||||
import com.yuyin.mier.module_home.tab.dynamic.MainCommunityFragment
|
||||
import com.yuyin.mier.module_home.tab.home.HomePagerFragment
|
||||
import com.yuyin.mier.module_home.tab.home.MainHomeFragment
|
||||
import com.yuyin.mier.module_home.tab.home.teen.AdolescentModelDialog
|
||||
import com.yuyin.mier.module_home.tab.home.teen.TeenModeActivity
|
||||
import com.yuyin.mier.module_home.tab.my.MyFragment
|
||||
import com.yuyin.mier.module_home.tab.xiaoxi.MessageFragment
|
||||
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
|
||||
@Route(path = MAIN_MAIN)
|
||||
open class MainActivity : BaseDataBindingActivity<MainViewModel, ActivityMainBinding>(),
|
||||
RadioGroup.OnCheckedChangeListener {
|
||||
|
||||
private lateinit var mAdapter: MyListAdapter
|
||||
var mainFaXianFragment = MyFragment()
|
||||
var mainMessageFragment = MessageFragment()
|
||||
var mainCenterFragment = CenterFragment()
|
||||
var homeFragment = MainHomeFragment()
|
||||
var mainCommunityFragment = MainCommunityFragment()
|
||||
|
||||
val homePagerFragment = HomePagerFragment()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
|
||||
override fun onCheckedChanged(p0: RadioGroup?, checkedId: Int) {
|
||||
when (checkedId) {
|
||||
R.id.radio_my -> {
|
||||
FragmentUtils.addOrShowFragmentToActivity(
|
||||
supportFragmentManager,
|
||||
mainFaXianFragment, R.id.frameLayout_main
|
||||
)
|
||||
}
|
||||
|
||||
R.id.radio_rank -> {
|
||||
FragmentUtils.addOrShowFragmentToActivity(
|
||||
supportFragmentManager,
|
||||
mainCommunityFragment, R.id.frameLayout_main
|
||||
)
|
||||
}
|
||||
|
||||
R.id.radio_message -> {
|
||||
FragmentUtils.addOrShowFragmentToActivity(
|
||||
supportFragmentManager,
|
||||
mainMessageFragment, R.id.frameLayout_main
|
||||
)
|
||||
}
|
||||
|
||||
R.id.radio_home ->
|
||||
FragmentUtils.addOrShowFragmentToActivity(
|
||||
supportFragmentManager,
|
||||
mainCenterFragment, R.id.frameLayout_main
|
||||
)
|
||||
|
||||
R.id.radio_center -> {
|
||||
FragmentUtils.addOrShowFragmentToActivity(
|
||||
supportFragmentManager,
|
||||
mainCenterFragment, R.id.frameLayout_main
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private var exitTime: Long = 0
|
||||
|
||||
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
|
||||
if (keyCode == KeyEvent.KEYCODE_BACK && event.action == KeyEvent.ACTION_DOWN) {
|
||||
if (System.currentTimeMillis() - exitTime > 2000) {
|
||||
"再按一次退出程序".showToast()
|
||||
exitTime = System.currentTimeMillis()
|
||||
} else {
|
||||
exitProcess(0)
|
||||
}
|
||||
return true
|
||||
}
|
||||
return super.onKeyDown(keyCode, event)
|
||||
}
|
||||
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
FloatingView.get().attach(this)
|
||||
|
||||
val code = getVersionCode()
|
||||
viewModel.get_system_base_config("$code", "1")
|
||||
}
|
||||
|
||||
override fun onRestart() {
|
||||
super.onRestart()
|
||||
// LogUtils.debugInfo("====onRestart");
|
||||
if (App.isStart && App.isTop) {
|
||||
backToRoom()
|
||||
}
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
|
||||
viewModel.userInfoData.observe(this) {
|
||||
loginIM(it)
|
||||
// val info = V2TIMUserFullInfo()
|
||||
// info.setNickname(it.nick_name)
|
||||
// info.faceUrl = it.head_pic
|
||||
// info.selfSignature = it.autograph
|
||||
// V2TIMManager.getInstance().setSelfInfo(info, null)
|
||||
}
|
||||
|
||||
viewModel.configBean.observe(this) {
|
||||
|
||||
App.configBean = it
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_main
|
||||
|
||||
override fun initView() {
|
||||
mDataBinding.radioGroup.setOnCheckedChangeListener(this)
|
||||
mDataBinding.radioGroup.check(R.id.radio_home) //使用了viewpager 去掉
|
||||
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
viewModel.loadUserInfo()
|
||||
viewModel.is_private_chat()
|
||||
changeMsg()
|
||||
}
|
||||
|
||||
|
||||
override fun initData() {
|
||||
if (!App.isStart && intent.getStringExtra("quite_room") == null) {
|
||||
val adolescentModelDialog = AdolescentModelDialog(this)
|
||||
adolescentModelDialog.getBinding().btnConfirm.setOnClickListener {
|
||||
startActivity(Intent(this, TeenModeActivity::class.java))
|
||||
adolescentModelDialog.dismiss()
|
||||
}
|
||||
adolescentModelDialog.getBinding().btnCancel.setOnClickListener {
|
||||
adolescentModelDialog.dismiss()
|
||||
}
|
||||
adolescentModelDialog.getBinding().ivQsms.setOnClickListener {
|
||||
adolescentModelDialog.dismiss()
|
||||
}
|
||||
adolescentModelDialog.show()
|
||||
} else if (intent.getStringExtra("quite_room") != null) {
|
||||
|
||||
if (intent.getStringExtra("type") == "1") {
|
||||
MessageDialog.show(
|
||||
this,
|
||||
"温馨提示",
|
||||
"房间类型已更改,是否重新进入该房间",
|
||||
"确定",
|
||||
"取消"
|
||||
).setOnOkButtonClickListener { baseDialog, v ->
|
||||
viewModel.enterRoom(intent.getStringExtra("quite_room").toString(), "", this)
|
||||
baseDialog.doDismiss()
|
||||
true
|
||||
}
|
||||
} else {
|
||||
MessageDialog.show(
|
||||
this,
|
||||
"温馨提示",
|
||||
"房间已关闭",
|
||||
"确定",
|
||||
).setOnOkButtonClickListener { baseDialog, v ->
|
||||
baseDialog.doDismiss()
|
||||
true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
mDataBinding.setVariable(BR.act, this)
|
||||
|
||||
V2TIMManager.getMessageManager()
|
||||
.addAdvancedMsgListener(object : V2TIMAdvancedMsgListener() {
|
||||
|
||||
override fun onRecvNewMessage(msg: V2TIMMessage?) {
|
||||
super.onRecvNewMessage(msg)
|
||||
changeMsg()
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public fun receiveMsg(event: FirstEvent) {
|
||||
when (event.tag) {
|
||||
Const.LOGOUT -> {
|
||||
if (App.isStart) {
|
||||
App.roomActivity?.finish()
|
||||
}
|
||||
finish()
|
||||
}
|
||||
|
||||
Const.FANHUIZHUYE -> { //显示悬浮窗
|
||||
Log.e("aaaaa", "receiveMsg: showFlow")
|
||||
val enterRoom: EnterRoomInfo = event.enterRoom
|
||||
showFlow(enterRoom.room_cover)
|
||||
}
|
||||
|
||||
Const.XUANFUYINCANG -> { //显示悬浮窗
|
||||
FloatingView.get().remove()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public fun receiveUnreadCount(msg: String) {
|
||||
LogUtils.e(msg)
|
||||
// if (msg == "更新消息红点") {
|
||||
changeMsg()
|
||||
// }
|
||||
}
|
||||
|
||||
fun showFlow(msg: String) {
|
||||
FloatingView.get().add()
|
||||
val view: EnFloatingView = FloatingView.get().view
|
||||
val imgHeader = view.findViewById<CircularImage>(R.id.imgHeader)
|
||||
val img1 = view.findViewById<View>(R.id.img1)
|
||||
val img2 = view.findViewById<View>(R.id.img2)
|
||||
img1.isSelected = true
|
||||
loadImage(imgHeader, msg, R.mipmap.ic_launcher_app)
|
||||
|
||||
img2.setOnClickListener(View.OnClickListener { v: View? ->
|
||||
if (App.isStart) {
|
||||
App.isStart = false
|
||||
App.roomActivity?.finish()
|
||||
FloatingView.get().remove()
|
||||
}
|
||||
})
|
||||
FloatingView.get().listener(object : MagnetViewListener {
|
||||
override fun onRemove(magnetView: FloatingMagnetView?) {
|
||||
Toast.makeText(this@MainActivity, "我没了", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
override fun onClick(magnetView: FloatingMagnetView?) {
|
||||
startActivity(Intent(this@MainActivity, AdminRoomActivity::class.java))
|
||||
}
|
||||
})
|
||||
val rotateAnimation = RotateAnimation(
|
||||
0f, 360f,
|
||||
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f
|
||||
)
|
||||
rotateAnimation.duration = 3000
|
||||
rotateAnimation.fillAfter = true
|
||||
rotateAnimation.repeatMode = Animation.RESTART
|
||||
//让旋转动画一直转,不停顿的重点
|
||||
rotateAnimation.interpolator = LinearInterpolator()
|
||||
rotateAnimation.repeatCount = -1
|
||||
imgHeader.startAnimation(rotateAnimation)
|
||||
}
|
||||
|
||||
private fun loginIM(user: UserBean) {
|
||||
//在线状态
|
||||
TUIConversationConfig.getInstance().isShowUserStatus = false
|
||||
val config = TUILoginConfig()
|
||||
config.logLevel = V2TIMSDKConfig.V2TIM_LOG_INFO
|
||||
|
||||
LogUtils.e("当前账号", user.uid)
|
||||
TUILogin.login(
|
||||
App.instance!!.applicationContext,
|
||||
/*GsonUtils.fromJson<ConfigBean>(
|
||||
SPUtils.getInstance().getString("config"),
|
||||
ConfigBean::class.java
|
||||
).tencentyun_im_appid.toInt()*/1600078180, //1600039760 正式服
|
||||
user.uid,
|
||||
UserManager.user.user_sig,
|
||||
object : TUICallback() {
|
||||
override fun onSuccess() {
|
||||
LogUtils.e("IM登陆成功")
|
||||
val info = V2TIMUserFullInfo()
|
||||
info.setNickname(user.nick_name)
|
||||
info.faceUrl = user.head_pic
|
||||
info.selfSignature = user.autograph
|
||||
V2TIMManager.getInstance().setSelfInfo(info, null)
|
||||
}
|
||||
|
||||
override fun onError(errorCode: Int, errorMessage: String?) {
|
||||
LogUtils.e(errorCode, errorMessage)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
V2TIMManager.getInstance()
|
||||
.addIMSDKListener(object : V2TIMSDKListener() {
|
||||
override fun onKickedOffline() {
|
||||
super.onKickedOffline()
|
||||
Log.i("imsdk", "success")
|
||||
EventBus.getDefault().post(FirstEvent("指定发送", Const.LOGOUT))
|
||||
UserManager.layout()
|
||||
ARouter.getInstance().build(AroutUtil.LOGIN_MAIN).withInt("sign", 1)
|
||||
.navigation()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun changeMsg() {
|
||||
|
||||
V2TIMManager.getConversationManager().getTotalUnreadMessageCount(object :
|
||||
V2TIMValueCallback<Long> {
|
||||
override fun onSuccess(p0: Long?) {
|
||||
if (p0!! > 0) {
|
||||
mDataBinding.tvUnhed.text = p0.toString()
|
||||
mDataBinding.tvUnhed.visibility = View.VISIBLE
|
||||
} else {
|
||||
mDataBinding.tvUnhed.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(p0: Int, p1: String?) {
|
||||
LogUtils.e(p0, p1)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.yuyin.mier.module_home
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.Const.ROOM_TYPE
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.model.CategorRoomBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class MainViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
var roomCategories = MutableLiveData<List<CategorRoomBean>>()
|
||||
|
||||
fun loadRoomCategories() {
|
||||
launchUI {
|
||||
val result = repository.roomCategories(ROOM_TYPE)
|
||||
roomCategories.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
//获取用户基本信息详情
|
||||
fun get_base_user_infoSss(uid: String) {
|
||||
launchUI {
|
||||
var data = baseRepository.get_base_user_info(uid)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun is_private_chat() {
|
||||
launchUI {
|
||||
val result = repository.is_private_chat()
|
||||
App.is_private_chat = result.data.is_private_chat
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
package com.yuyin.mier.module_home.cproom
|
||||
|
||||
import android.graphics.Color
|
||||
import android.util.Log
|
||||
import com.tencent.qgame.animplayer.AnimView
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.MyCpTxBean
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.lib_base.view.ItemDecoration
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.CPTxListAdapter
|
||||
import com.yuyin.mier.adapter.CPTxkListAdapter
|
||||
import com.yuyin.mier.databinding.ActivityCpRoomBinding
|
||||
import com.zhy.http.okhttp.OkHttpUtils
|
||||
import com.zhy.http.okhttp.callback.FileCallBack
|
||||
import kotlinx.android.synthetic.main.activity_cp_room.*
|
||||
import okhttp3.Call
|
||||
import java.io.File
|
||||
|
||||
class CPRoomActivity : BaseDataBindingActivity<CPRoomViewModel, ActivityCpRoomBinding>() {
|
||||
|
||||
lateinit var cpTxListAdapter: CPTxListAdapter
|
||||
lateinit var cpTxkListAdapter: CPTxkListAdapter
|
||||
var tabIndex = 0
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.CPBean.observe(this) {
|
||||
tv_level.text = "LV." + it.cp_level
|
||||
viewModel.my_cp_txk("1")
|
||||
cp_man_name.text = it.u_nick_name
|
||||
cp_woman_name.text = it.receive_nick_name
|
||||
cp_man_value.text = it.cp_value.toString()
|
||||
cp_woman_value.text = it.next_cp_value
|
||||
GlideUtil.loadImglogo(this, it.u_head_pic, cp_head_nan)
|
||||
GlideUtil.loadImglogo(this, it.receive_head_pic, cp_head_nv)
|
||||
playTX(it.u_avatar_play_image, cp_man, Int.MAX_VALUE)
|
||||
playTX(it.receive_avatar_play_image, cp_woman, Int.MAX_VALUE)
|
||||
|
||||
}
|
||||
viewModel.CPTxBean.observe(this) {
|
||||
if (tabIndex == 0) {
|
||||
cpTxkListAdapter.setNewData(it)
|
||||
rcy_tx.adapter = cpTxkListAdapter
|
||||
} else {
|
||||
cpTxListAdapter.setNewData(it)
|
||||
rcy_tx.adapter = cpTxListAdapter
|
||||
}
|
||||
if (rcy_tx.itemDecorationCount == 0) {
|
||||
rcy_tx.addItemDecoration(ItemDecoration(this,0,5f,5f))
|
||||
}
|
||||
}
|
||||
viewModel.setDecorateDate.observe(this) {
|
||||
if (tabIndex == 0) {
|
||||
viewModel.my_cp_txk("1")
|
||||
} else {
|
||||
viewModel.my_cp_txk("9")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_cp_room
|
||||
|
||||
override fun initView() {
|
||||
cpTxkListAdapter = CPTxkListAdapter()
|
||||
cpTxListAdapter = CPTxListAdapter()
|
||||
GlideUtil.loadImglogo(this, UserManager.user.head_pic, cp_head_nan)
|
||||
cp_man_name.text = UserManager.user.nick_name
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
viewModel.my_cp()
|
||||
viewModel.my_cp_txk("1")
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
cpTxListAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
val dataBean: MyCpTxBean = adapter.data[position] as MyCpTxBean
|
||||
if (dataBean.js_suo == "1") {
|
||||
if (dataBean.is_using == "1") {
|
||||
viewModel.cancel_user_decorate(dataBean.udid)
|
||||
} else {
|
||||
playTX(dataBean.cp_tx_play_img, cp_tx, 1)
|
||||
viewModel.set_user_decorate(dataBean.udid)
|
||||
}
|
||||
} else {
|
||||
"当前特效未解锁".showToast()
|
||||
}
|
||||
|
||||
}
|
||||
cpTxkListAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
val dataBean: MyCpTxBean = adapter.data[position] as MyCpTxBean
|
||||
viewModel.my_cp()
|
||||
|
||||
if (dataBean.js_suo == "1") {
|
||||
if (dataBean.is_using == "1") {
|
||||
viewModel.cancel_user_decorate(dataBean.udid)
|
||||
} else {
|
||||
viewModel.set_user_decorate(dataBean.udid)
|
||||
if (viewModel.CPBean.value!!.uid == UserManager.user.uid.toString()) {
|
||||
cp_man.stopPlay()
|
||||
cp_man.clearAnimation()
|
||||
playTX(dataBean.head_decorate_play_img, cp_man, Int.MAX_VALUE)
|
||||
} else {
|
||||
cp_woman.stopPlay()
|
||||
cp_woman.clearAnimation()
|
||||
playTX(dataBean.head_decorate_play_img, cp_woman, Int.MAX_VALUE)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
"当前头像框未解锁".showToast()
|
||||
}
|
||||
|
||||
}
|
||||
tv_txk.setOnClickListener {
|
||||
tabIndex = 0
|
||||
tv_txk.setTextColor(Color.parseColor("#333333"))
|
||||
tv_rctx.setTextColor(Color.parseColor("#999999"))
|
||||
viewModel.my_cp_txk("1")
|
||||
}
|
||||
|
||||
tv_rctx.setOnClickListener {
|
||||
tabIndex = 1
|
||||
tv_txk.setTextColor(Color.parseColor("#999999"))
|
||||
tv_rctx.setTextColor(Color.parseColor("#333333"))
|
||||
viewModel.my_cp_txk("9")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun playTX(url: String, animView: AnimView, count: Int) {
|
||||
OkHttpUtils.get().url(url).build().execute(object : FileCallBack(
|
||||
cacheDir.absolutePath, url.substring(url.lastIndexOf("/")) //
|
||||
) {
|
||||
|
||||
override fun onError(
|
||||
call: Call?, e: java.lang.Exception?, id: Int
|
||||
) {
|
||||
Log.d("sssssssssss", e.toString())
|
||||
}
|
||||
|
||||
override fun onResponse(response: File?, id: Int) {
|
||||
response?.let {
|
||||
animView.startPlay(response)
|
||||
animView.setLoop(count)
|
||||
}
|
||||
}
|
||||
})
|
||||
// if (!FileUtils.isFileExists(
|
||||
// cacheDir?.absolutePath + url.substring(
|
||||
// url.lastIndexOf(
|
||||
// "/"
|
||||
// )
|
||||
// )
|
||||
// )
|
||||
// ) {
|
||||
// OkHttpUtils
|
||||
// .get()
|
||||
// .url(url)
|
||||
// .build()
|
||||
// .execute(object : FileCallBack(
|
||||
// cacheDir?.absolutePath,
|
||||
// url.substring(url.lastIndexOf("/")) //
|
||||
// ) {
|
||||
//
|
||||
// override fun onError(
|
||||
// call: Call?,
|
||||
// e: java.lang.Exception?,
|
||||
// id: Int
|
||||
// ) {
|
||||
// Log.d("sssssssssss", e.toString())
|
||||
// }
|
||||
//
|
||||
// override fun onResponse(response: File?, id: Int) {
|
||||
// response?.let {
|
||||
// animView.setLoop(count)
|
||||
// animView.startPlay(response)
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
// } else {
|
||||
// LogUtils.e("有缓存")
|
||||
// animView.setLoop(count)
|
||||
// animView.startPlay(
|
||||
// File(
|
||||
// cacheDir?.absolutePath + url.substring(
|
||||
// url.lastIndexOf(
|
||||
// "/"
|
||||
// )
|
||||
// )
|
||||
// )
|
||||
// )
|
||||
//
|
||||
//
|
||||
// }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.yuyin.mier.module_home.cproom
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.model.MyCpBean
|
||||
import com.yuyin.lib_base.model.MyCpTxBean
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class CPRoomViewModel : BaseViewModel() {
|
||||
|
||||
var repository = CommonRepository()
|
||||
var CPBean = MutableLiveData<MyCpBean>()
|
||||
var setDecorateDate = MutableLiveData<Any>()
|
||||
|
||||
fun my_cp() {
|
||||
launchUI {
|
||||
val result = repository.my_cp()
|
||||
CPBean.value=result.data
|
||||
}
|
||||
}
|
||||
|
||||
var CPTxBean= MutableLiveData<ArrayList<MyCpTxBean>>()
|
||||
|
||||
fun my_cp_txk(type:String) {
|
||||
launchUI {
|
||||
val result = repository.my_cp_txk(type)
|
||||
CPTxBean.value=result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun set_user_decorate(udid: String) {
|
||||
launchUI {
|
||||
val result = repository.set_user_decorate(udid)
|
||||
result.msg.showToast()
|
||||
setDecorateDate.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun cancel_user_decorate(udid: String) {
|
||||
launchUI {
|
||||
val result = repository.cancel_user_decorate(udid)
|
||||
result.msg.showToast()
|
||||
setDecorateDate.value = result.data
|
||||
}
|
||||
}
|
||||
}
|
||||
347
app/src/main/java/com/yuyin/mier/module_home/model/MainBean.kt
Normal file
347
app/src/main/java/com/yuyin/mier/module_home/model/MainBean.kt
Normal file
@@ -0,0 +1,347 @@
|
||||
package com.yuyin.mier.module_home.model
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
|
||||
data class Mic(
|
||||
var head_pic: String = "",
|
||||
var uid: Int = 0
|
||||
)
|
||||
|
||||
|
||||
data class GHSet(
|
||||
var is_deacon: String = "",
|
||||
var quit_money: String = "",
|
||||
var guild_name: String = "",
|
||||
var is_join_guild: String = "",
|
||||
)
|
||||
|
||||
|
||||
data class GHMain(
|
||||
var list: ArrayList<GHListBean> = ArrayList()
|
||||
)
|
||||
|
||||
data class GHRoomMain(
|
||||
var is_deacon: String = "",
|
||||
var list: ArrayList<GHRoomListBean> = ArrayList(),
|
||||
val total_gift_price: String = ""
|
||||
)
|
||||
|
||||
data class GHDeatileBean(
|
||||
var id: String = "",
|
||||
var guild_special_id: String = "",
|
||||
var uid: String = "",
|
||||
var guild_name: String = "",
|
||||
var cover: String = "",
|
||||
var intro: String = "",
|
||||
var money: String = "",
|
||||
var num: String = "",
|
||||
var add_time: Long = 0,
|
||||
var contribution_value: String = "",
|
||||
var last_week_income: String = "",
|
||||
var this_week_income: String = "",
|
||||
var last_week_income_money: String = "",
|
||||
val ghz: GHDeatileHzBean,
|
||||
)
|
||||
|
||||
data class GHDeatileHzBean(
|
||||
var uid: String = "",
|
||||
var nick_name: String = "",
|
||||
var head_pic: String = "",
|
||||
var special_uid: String = "",
|
||||
var noblity_image: String = "",
|
||||
var charm_level_image: String = "",
|
||||
var contribution_level_image: String = "",
|
||||
)
|
||||
|
||||
data class GHUserMain(
|
||||
var is_deacon: String = "",
|
||||
var list: ArrayList<GHUserListBean> = ArrayList(),
|
||||
val total_gift_price: String = ""
|
||||
)
|
||||
|
||||
data class GHListBean(
|
||||
var guild_id: String = "",
|
||||
var guild_name: String = "",
|
||||
var cover: String = "",
|
||||
var total_gift_total_price: String = "",
|
||||
val num: Int = 0
|
||||
)
|
||||
|
||||
data class GHRoomListBean(
|
||||
var rid: String = "",
|
||||
var room_owner_uid: String = "",
|
||||
var room_name: String = "",
|
||||
var room_cover: String = "",
|
||||
var total_gift_total_price: String = "",
|
||||
val room_number: String = ""
|
||||
)
|
||||
|
||||
data class GHUserListBean(
|
||||
var id: String = "",
|
||||
var uid: String = "",
|
||||
var guild_id: String = "",
|
||||
var nick_name: String = "",
|
||||
var head_pic: String = "",
|
||||
var total_gift_total_price: String = "",
|
||||
)
|
||||
|
||||
data class RoomZoneList(
|
||||
var uid: String = "",
|
||||
var rid: String = "",
|
||||
var nick_name: String = "",
|
||||
var head_pic: String = "",
|
||||
var sex: String = "",
|
||||
var zid: String = "",
|
||||
var content: String = "",
|
||||
var zone_time: String = "",
|
||||
var last_operate_time: String = "",
|
||||
var distance: String = "",
|
||||
var images: ArrayList<String> = ArrayList(),
|
||||
)
|
||||
|
||||
data class BlackList(
|
||||
val room_black_list: ArrayList<BlackBean>,
|
||||
val room_visitor_list: ArrayList<BlackBean>,
|
||||
|
||||
)
|
||||
|
||||
data class BlackBean(
|
||||
var uid: String = "",
|
||||
var nick_name: String = "",
|
||||
var head_pic: String = "",
|
||||
var sex: String = "",
|
||||
val special_uid: String = ""
|
||||
)
|
||||
|
||||
data class userWithdrawalListBean(
|
||||
var all: String = "",
|
||||
val detail: ArrayList<userWithdrawalBean> = ArrayList(),
|
||||
)
|
||||
|
||||
data class userWithdrawalBean(
|
||||
var rid: String = "",
|
||||
var wid: String = "",
|
||||
var type: String = "",
|
||||
var general_money: String = "",
|
||||
var money: String = "",
|
||||
var server_money: String = "",
|
||||
var surplus_money: String = "",
|
||||
var status: String = "",
|
||||
var deal_type: String = "",
|
||||
var remarke: String = "",
|
||||
var account: String = "",
|
||||
var add_time: Long = 0,
|
||||
)
|
||||
|
||||
data class RoomListBean(
|
||||
var rid: String = "",
|
||||
var room_number: String = "",
|
||||
var tid: String = "",
|
||||
var cate_id: String = "",
|
||||
var room_name: String = "",
|
||||
var room_cover: String = "",
|
||||
var is_need_password: String = "",
|
||||
var is_hot: String = "",
|
||||
var hot_value: String = "",
|
||||
var is_online: String = "",
|
||||
var visitor_num: String = "",
|
||||
var room_status: String = "",
|
||||
var is_top: String = "",
|
||||
var base64_nick_name: String = "",
|
||||
var sex: String = "",
|
||||
var nick_name: String = "",
|
||||
var category_name: String = "",
|
||||
var base64_room_name: String = "",
|
||||
var game_list: String = "",
|
||||
var head_pic: String = "",
|
||||
var room_frame_base_image: String = "",
|
||||
var room_frame_play_image: String = "",
|
||||
var room_micro: String = "",
|
||||
var room_owner_uid: Int = 0,
|
||||
var special_uid: Int = 0,
|
||||
var today_hot_value: Int = 0,
|
||||
val room_visitor_list: ArrayList<Mic> = arrayListOf(),
|
||||
var room_micro_member: ArrayList<Mic> = arrayListOf(),
|
||||
var game_ico_list: ArrayList<Mic> = arrayListOf(),
|
||||
var room_micro_list: ArrayList<Mic> = arrayListOf()
|
||||
)
|
||||
|
||||
data class SearchBean(
|
||||
val user: ArrayList<SearchUserBean> = ArrayList(),
|
||||
val room: ArrayList<SearchRoomBean> = ArrayList()
|
||||
)
|
||||
|
||||
data class SearchUserBean(
|
||||
val uid: String = "",
|
||||
val head_pic: String = "",
|
||||
val special_uid: String = "",
|
||||
val nick_name: String = "",
|
||||
)
|
||||
|
||||
data class SearchRoomBean(
|
||||
val rid: String = "",
|
||||
val room_number: String = "",
|
||||
val room_name: String = "",
|
||||
val room_cover: String = "",
|
||||
val uid: String = "",
|
||||
val head_pic: String = "",
|
||||
val special_uid: String = "",
|
||||
val nick_name: String = ""
|
||||
)
|
||||
|
||||
data class BannerBean(
|
||||
val bid: String = "",
|
||||
val aid: String = "",
|
||||
val image: String = "",
|
||||
val sort: String = "",
|
||||
val url: String = "",
|
||||
val type: String = ""
|
||||
)
|
||||
|
||||
data class OffiMessageBean(
|
||||
val mid: String = "",
|
||||
val title: String = "",
|
||||
val type: String = "",
|
||||
val content: String = "",
|
||||
val id: String = "",
|
||||
val is_read: String = "",
|
||||
val add_time: String = "",
|
||||
)
|
||||
|
||||
data class OffiMessageSub1Bean(
|
||||
val aid: String = "",
|
||||
val type: String = "",
|
||||
val uid: String = "",
|
||||
val recived_uid: String = "",
|
||||
val status: String = "",
|
||||
val deal_time: String = "",
|
||||
//下面开始订单消息的字段
|
||||
val oid: String = "",
|
||||
val is_player: Int = 0,
|
||||
)
|
||||
|
||||
|
||||
data class HomeScene(
|
||||
|
||||
var sex_type: String = "",
|
||||
var age_type: String = "",
|
||||
|
||||
)
|
||||
|
||||
|
||||
data class LeverBean(
|
||||
val level_list: List<Level>, val user_info: UserInfo, val user_level_info: UserLevelInfo
|
||||
)
|
||||
|
||||
data class Level(
|
||||
val image: String, val level: Int, val number: Int
|
||||
)
|
||||
|
||||
data class UserInfo(
|
||||
val base64_nick_name: String,
|
||||
val charm_level_image: String,
|
||||
val contribution_level_image: String,
|
||||
val head_pic: String,
|
||||
val nick_name: String,
|
||||
val uid: Int
|
||||
)
|
||||
|
||||
data class UserLevelInfo(
|
||||
val next_level: Int,
|
||||
val next_level_image: String,
|
||||
val next_value: Int,
|
||||
val now_level: Int,
|
||||
val now_level_image: String,
|
||||
val now_value: Int
|
||||
)
|
||||
|
||||
|
||||
data class IsPrivateChat(
|
||||
var is_private_chat: Int = 2
|
||||
)
|
||||
|
||||
data class DaySignBean(
|
||||
val sign_log: List<DaySignBeanInfo>,
|
||||
val sign_num: String = "",
|
||||
val today_sign: String = "",
|
||||
)
|
||||
|
||||
data class SignSuccesBean(
|
||||
val award: String = ""
|
||||
)
|
||||
|
||||
data class DaySignBeanInfo(
|
||||
val is_sign: Int = 0,
|
||||
val award: String = "",
|
||||
)
|
||||
|
||||
data class NobilityInfo(
|
||||
val image: String,
|
||||
val lid: Int,
|
||||
val name: String,
|
||||
val change_value: String,
|
||||
val pay_price: String,
|
||||
val day_num: String,
|
||||
val renew_coin: String,
|
||||
val pay_coin: String,
|
||||
val renew_price: String,
|
||||
var play_image: String,
|
||||
)
|
||||
|
||||
data class NobilityPower(
|
||||
val id: Int,
|
||||
val image: String,
|
||||
val images: String,
|
||||
val content: String,
|
||||
val name: String,
|
||||
val checked_icon: String,
|
||||
val is_power: Int,
|
||||
)
|
||||
|
||||
data class UserNobility(
|
||||
val is_nobility: Int,
|
||||
val nobility_type: String,
|
||||
val noblity_end_time: Int,
|
||||
)
|
||||
|
||||
data class NobilityListBean(
|
||||
val image: String, val name: String, val change_value: Int, val lid: Int
|
||||
) : Serializable
|
||||
|
||||
data class NobilityInfoBean(
|
||||
val nobility_info: NobilityInfo,
|
||||
val nobility_power_list: List<NobilityPower>,
|
||||
val user_nobility: UserNobility,
|
||||
val user_nobility_end_time: Long
|
||||
)
|
||||
|
||||
data class NobilityPayBean(
|
||||
val order_id: String
|
||||
)
|
||||
|
||||
data class MyRoomList(
|
||||
val rid: Int,
|
||||
val room_cover: String,
|
||||
val room_name: String,
|
||||
val room_number: Int,
|
||||
val user_type: Int
|
||||
)
|
||||
|
||||
|
||||
data class WeekHomeBean(
|
||||
val uid: String = "",
|
||||
val receive_uid: String = "",
|
||||
val total_gift_num: String = "",
|
||||
val gid: String = "",
|
||||
val gift_price: String = "",
|
||||
val gift_name: String = "",
|
||||
val head_pic: String = "",
|
||||
)
|
||||
|
||||
data class TopCpBean(
|
||||
val u_head_pic: String = "",
|
||||
val receive_head_pic: String = "",
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,366 @@
|
||||
package com.yuyin.mier.module_home.tab.center
|
||||
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.graphics.Typeface
|
||||
import android.util.TypedValue
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentPagerAdapter
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.youth.banner.BannerConfig
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.adapter.MyPagerAdapter
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.UserBean
|
||||
import com.yuyin.lib_base.ui.X5WebViewActivity
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.lib_base.view.GlideImageLoader
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.FragmentCenterBinding
|
||||
import com.yuyin.mier.module_home.cproom.CPRoomActivity
|
||||
import com.yuyin.mier.module_home.model.BannerBean
|
||||
import com.yuyin.mier.module_home.tab.center.sign.SginDialog
|
||||
import com.yuyin.mier.module_home.tab.center.sign.SginSuccessDialog
|
||||
import com.yuyin.mier.module_home.tab.center.sub.HomeRecomAdapter
|
||||
import com.yuyin.mier.module_home.tab.center.sub.RoomListFragment
|
||||
import com.yuyin.module_live.ui.rank.WeekRankActivity
|
||||
import kotlinx.android.synthetic.main.fragment_center.*
|
||||
import java.util.*
|
||||
|
||||
class CenterFragment : BaseDataBindingFragment<MainCenterViewModel, FragmentCenterBinding>() {
|
||||
|
||||
lateinit var adapter: HomeRecomAdapter
|
||||
private val fsRes: ArrayList<Fragment> = ArrayList<Fragment>() //fragment集合
|
||||
private val titleRes = ArrayList<String>() //tab标题集合
|
||||
private var mUserBean: UserBean? = null
|
||||
|
||||
override fun startObserve() {
|
||||
/*viewModel.TopCpBean.observe(this){
|
||||
if(it!=null){
|
||||
GlideUtil.loadImglogo(context as AppCompatActivity,it.u_head_pic,rv_nan)
|
||||
GlideUtil.loadImglogo(context as AppCompatActivity,it.receive_head_pic,rv_nv)
|
||||
}
|
||||
}
|
||||
viewModel.WeekHomeList.observe(this){
|
||||
if(it.size>0){
|
||||
GlideUtil.loadImglogo(context as AppCompatActivity,it[0].head_pic,iv_week1)
|
||||
}
|
||||
if(it.size>1){
|
||||
GlideUtil.loadImglogo(context as AppCompatActivity,it[1].head_pic,iv_week2)
|
||||
}
|
||||
if(it.size>2){
|
||||
GlideUtil.loadImglogo(context as AppCompatActivity,it[2].head_pic,iv_week3)
|
||||
}
|
||||
if(it.size>3){
|
||||
GlideUtil.loadImglogo(context as AppCompatActivity,it[3].head_pic,iv_week4)
|
||||
}
|
||||
}*/
|
||||
|
||||
viewModel.userInfoData.observe(this) {
|
||||
mUserBean = it
|
||||
}
|
||||
viewModel.bannerListBean.observe(this) {
|
||||
if (it == null) return@observe
|
||||
initBanner(it)
|
||||
}
|
||||
viewModel.roomData.observe(requireActivity()) {
|
||||
adapter.list.clear()
|
||||
adapter.list.addAll(it)
|
||||
adapter.notifyDataSetChanged()
|
||||
}
|
||||
viewModel.roomCategories.observe(this) {
|
||||
titleRes.add("推荐")
|
||||
fsRes.add(RoomListFragment.getInstance(Const.ROOM_TYPE_HOT, -1))
|
||||
for (i in it.indices) {
|
||||
titleRes.add(it[i].category_name)
|
||||
fsRes.add(RoomListFragment.getInstance(Const.ROOM_TYPE_COMM, it[i].cate_id.toInt()))
|
||||
}
|
||||
// //设置数据
|
||||
// mDataBinding.tabLayout.setTabData(titleRes.toTypedArray())
|
||||
// mDataBinding.viewpager.adapter = MyPagerAdapter(
|
||||
// childFragmentManager, fsRes
|
||||
// )
|
||||
mAdapter = MyPagerAdapter(childFragmentManager, fsRes, titleRes)
|
||||
mDataBinding.viewpager.adapter = mAdapter
|
||||
mDataBinding.tabLayout.setSelectedTabIndicatorHeight(0)
|
||||
mDataBinding.tabLayout.setupWithViewPager(mDataBinding.viewpager)
|
||||
mDataBinding.viewpager.offscreenPageLimit = fsRes.size
|
||||
//设置自定义tab
|
||||
setCustomViews()
|
||||
mDataBinding.tabLayout.addOnTabSelectedListener(object :
|
||||
TabLayout.OnTabSelectedListener {
|
||||
override fun onTabSelected(tab: TabLayout.Tab?) {
|
||||
val text = tab?.customView?.findViewById<TextView>(R.id.tv_name)
|
||||
val v_view = tab?.customView?.findViewById<ImageView>(R.id.v_view)
|
||||
text?.setTextColor(Color.parseColor("#333333"))
|
||||
text?.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f)
|
||||
text?.typeface = Typeface.DEFAULT_BOLD
|
||||
v_view?.isSelected = true
|
||||
}
|
||||
|
||||
override fun onTabUnselected(tab: TabLayout.Tab?) {
|
||||
val text = tab?.customView?.findViewById<TextView>(R.id.tv_name)
|
||||
val v_view = tab?.customView?.findViewById<ImageView>(R.id.v_view)
|
||||
text?.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f)
|
||||
text?.typeface = Typeface.DEFAULT
|
||||
text?.setTextColor(Color.parseColor("#666666"))
|
||||
v_view?.isSelected = false
|
||||
}
|
||||
|
||||
override fun onTabReselected(tab: TabLayout.Tab?) {
|
||||
// val text = tab?.customView?.findViewById<TextView>(R.id.tv_name)
|
||||
// val v_view = tab?.customView?.findViewById<ImageView>(R.id.v_view)
|
||||
// v_view?.isSelected = false
|
||||
// text?.setTextColor(Color.parseColor("#666666"))
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
//设置自定义tab
|
||||
}
|
||||
|
||||
viewModel.roomRandom.observe(this) {
|
||||
viewModel.enterRoom(it.rid, "", context as AppCompatActivity)
|
||||
}
|
||||
viewModel.signDayList.observe(this) {
|
||||
if (it.today_sign == "2") { //未签到
|
||||
SginDialog(context as AppCompatActivity,viewModel,it).show()
|
||||
}
|
||||
}
|
||||
|
||||
viewModel.signSucces.observe(this){
|
||||
SginSuccessDialog(context as AppCompatActivity,viewModel,it.award).show()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun setCustomViews() {
|
||||
val mSelectedTabPosition = mDataBinding.tabLayout.selectedTabPosition
|
||||
for (i in titleRes.indices) {
|
||||
mDataBinding.tabLayout.getTabAt(i)!!.customView = getTabView(i, mSelectedTabPosition)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun getTabView(index: Int, mSelectedTabPosition: Int): View {
|
||||
//自定义View布局
|
||||
val view: View = LayoutInflater.from(context).inflate(R.layout.item_tablayout_header3, null)
|
||||
val title = view.findViewById<View>(R.id.tv_name) as TextView
|
||||
val v_view = view.findViewById<ImageView>(R.id.v_view)
|
||||
title.text = titleRes[index]
|
||||
title.isSelected = index == mSelectedTabPosition
|
||||
v_view.isSelected = index == mSelectedTabPosition
|
||||
if (index == mSelectedTabPosition) {
|
||||
title.setTextColor(Color.parseColor("#333333"))
|
||||
title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f)
|
||||
title.typeface = Typeface.DEFAULT_BOLD
|
||||
} else {
|
||||
title.setTextColor(Color.parseColor("#666666"))
|
||||
title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14f)
|
||||
title.typeface = Typeface.DEFAULT
|
||||
}
|
||||
return view
|
||||
}
|
||||
|
||||
|
||||
private lateinit var mAdapter: com.yuyin.lib_base.adapter.MyPagerAdapter
|
||||
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_center
|
||||
|
||||
override fun initView() {
|
||||
adapter = HomeRecomAdapter(activity, -2)
|
||||
mDataBinding.rvView.adapter = adapter
|
||||
val gridLayoutManager = LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false)
|
||||
mDataBinding.rvView.layoutManager = gridLayoutManager
|
||||
adapter.setOnItemClickListener { bean, position ->
|
||||
viewModel.enterRoom(bean.rid, "", activity as AppCompatActivity)
|
||||
}
|
||||
if(App.isShangJia){
|
||||
iv_search.setImageResource(R.mipmap.search_ic2)
|
||||
}else{
|
||||
iv_search.setImageResource(R.mipmap.search_ic)
|
||||
}
|
||||
}
|
||||
|
||||
fun resubData(cate_id: String) {
|
||||
(fsRes[1] as RoomListFragment).resubData(cate_id)
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
viewModel.loadRoomData(getMap())
|
||||
viewModel.loadRoomCategories()
|
||||
|
||||
// viewModel.now_week_rank_four()
|
||||
// viewModel.top_cp()
|
||||
if (!App.isStart && requireActivity().intent.getStringExtra("quite_room") == null) {
|
||||
viewModel.user_day_sign_log()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
viewModel.loadUserInfo()
|
||||
viewModel.getBannerList()
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
mDataBinding.ivXqf.setOnClickListener {
|
||||
viewModel.now_room_category("37")
|
||||
}
|
||||
mDataBinding.ivJbt.setOnClickListener {
|
||||
viewModel.now_room_category("19")
|
||||
}
|
||||
mDataBinding.ivYxt.setOnClickListener {
|
||||
viewModel.now_room_category("35")
|
||||
}
|
||||
mDataBinding.ivCp.setOnClickListener {
|
||||
val intent = Intent(activity, CPRoomActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
mDataBinding.ivWeek.setOnClickListener {
|
||||
val intent = Intent(activity, WeekRankActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
mDataBinding.ivRoom.setOnClickListener {
|
||||
if (mUserBean == null) return@setOnClickListener
|
||||
when (mUserBean!!.is_real) {
|
||||
"2" -> ARouter.getInstance().build(AroutUtil.PLAY_REAL_NAME).navigation()
|
||||
"1" -> {
|
||||
if (mUserBean!!.rid == "0") {
|
||||
"房间信息读取失败...".showToast()
|
||||
} else {
|
||||
viewModel.enterRoom(mUserBean!!.rid, "", activity as AppCompatActivity)
|
||||
}
|
||||
}
|
||||
"3" -> "实名认证审核中...".showToast()
|
||||
}
|
||||
}
|
||||
|
||||
mDataBinding.ivSearch.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_SEARCH_MAIN).navigation()
|
||||
}
|
||||
mDataBinding.llSousuo.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_SEARCH_MAIN).navigation()
|
||||
}
|
||||
|
||||
mDataBinding.ivRank.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.LIVE_RANK).withInt("selectTab", 0).navigation()
|
||||
}
|
||||
|
||||
mDataBinding.ivNewRoom.setOnClickListener {
|
||||
viewModel.now_room_category("18")
|
||||
}
|
||||
|
||||
mDataBinding.ivAuctionRoom.setOnClickListener {
|
||||
viewModel.now_room_category("28")
|
||||
}
|
||||
|
||||
mDataBinding.ivKsong.setOnClickListener {
|
||||
viewModel.now_room_category("27")
|
||||
}
|
||||
|
||||
mDataBinding.ivFriend.setOnClickListener {
|
||||
viewModel.now_room_category("29")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun initBanner(data: List<BannerBean>) {
|
||||
val imgurls: MutableList<String> = ArrayList()
|
||||
for (list in data) {
|
||||
imgurls.add(list.image)
|
||||
}
|
||||
//设置图片加载器
|
||||
mDataBinding.banner.setImageLoader(GlideImageLoader())
|
||||
//设置图片集合
|
||||
mDataBinding.banner.setImages(imgurls)
|
||||
//设置指示器位置(当banner模式中有指示器时)
|
||||
mDataBinding.banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR)
|
||||
mDataBinding.banner.setIndicatorGravity(BannerConfig.CENTER)
|
||||
//设置自动轮播,默认为true
|
||||
mDataBinding.banner.isAutoPlay(true)
|
||||
//banner设置方法全部调用完毕时最后调用
|
||||
mDataBinding.banner.start()
|
||||
mDataBinding.banner.setOnBannerListener {
|
||||
when (data[it].type) {
|
||||
"1" -> {
|
||||
|
||||
}
|
||||
"2" -> {
|
||||
context?.let { it1 -> X5WebViewActivity.forward(it1, data[it].url, "") }
|
||||
}
|
||||
"3" -> {
|
||||
viewModel.enterRoom(data[it].aid, "", activity as AppCompatActivity)
|
||||
}
|
||||
"4" -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", data[it].aid).navigation()
|
||||
}
|
||||
"5" -> {
|
||||
context?.let { it1 ->
|
||||
X5WebViewActivity.forward(
|
||||
it1, data[it].url + "?login_token=" + UserManager.user.login_token, ""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mDataBinding.banner.setOnClickListener {
|
||||
when (data[0].type) {
|
||||
"1" -> {
|
||||
|
||||
}
|
||||
"2" -> {
|
||||
context?.let { it1 -> X5WebViewActivity.forward(it1, data[0].url, "") }
|
||||
}
|
||||
"3" -> {
|
||||
viewModel.enterRoom(data[0].aid, "", activity as AppCompatActivity)
|
||||
}
|
||||
"4" -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", data[0].aid).navigation()
|
||||
}
|
||||
"5" -> {
|
||||
context?.let { it1 ->
|
||||
X5WebViewActivity.forward(
|
||||
it1, data[0].url + "?login_token=" + UserManager.user.login_token, ""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class MyPagerAdapter(fm: FragmentManager, private val fs: ArrayList<Fragment>) :
|
||||
FragmentPagerAdapter(fm) {
|
||||
override fun getCount(): Int = fs.size
|
||||
|
||||
override fun getItem(i: Int): Fragment {
|
||||
return fs[i]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun getMap(): MutableMap<String, String> {
|
||||
val map: MutableMap<String, String> = HashMap()
|
||||
map["tid"] = Const.ROOM_TYPE
|
||||
map["is_top"] = "2"
|
||||
// map["is_hot"] = "2"
|
||||
map["page"] = "1"
|
||||
return map
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,260 @@
|
||||
package com.yuyin.mier.module_home.tab.center
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.mier.module_home.model.BannerBean
|
||||
import com.yuyin.mier.module_home.model.RoomListBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.CategorRoomBean
|
||||
import com.yuyin.lib_base.model.RankTopThreeBean
|
||||
import com.yuyin.lib_base.model.Wxmodel
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.module_home.model.DaySignBean
|
||||
import com.yuyin.mier.module_home.model.MyRoomList
|
||||
import com.yuyin.mier.module_home.model.SignSuccesBean
|
||||
import com.yuyin.mier.module_home.model.TopCpBean
|
||||
import com.yuyin.mier.module_home.model.WeekHomeBean
|
||||
import com.yuyin.mier.module_my.model.InviteInfoBean
|
||||
import com.yuyin.mier.module_my.model.RenewalAmountBean
|
||||
import com.yuyin.mier.module_my.model.UserRoomVisitor
|
||||
import com.yuyin.mier.module_my.model.VIPData
|
||||
import com.yuyin.module_live.model.RankListBean
|
||||
import com.yuyin.module_live.model.SignedArtistBean
|
||||
import com.yuyin.module_live.repository.LiveRepository
|
||||
|
||||
class MainCenterViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
|
||||
var rankTopThreeBean = MutableLiveData<RankTopThreeBean>()
|
||||
|
||||
var roomData = MutableLiveData<List<RoomListBean>>()
|
||||
|
||||
var roomData2 = MutableLiveData<List<RoomListBean>>()
|
||||
|
||||
var openVerify = MutableLiveData<Any>()
|
||||
|
||||
var roomCategories = MutableLiveData<List<CategorRoomBean>>()
|
||||
fun loadRoomCategories() {
|
||||
launchUI {
|
||||
val result = repository.roomCategories(Const.ROOM_TYPE)
|
||||
roomCategories.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
fun loadRoomData(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
val result = repository.getRoomList(map)
|
||||
roomData.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
fun loadRoomData2(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
val result = repository.getRoomList(map)
|
||||
roomData2.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var bannerListBean = MutableLiveData<List<BannerBean>>()
|
||||
fun getBannerList() {
|
||||
launchUI {
|
||||
val result = repository.get_banner_list()
|
||||
bannerListBean.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
fun get_user_rank_top() {
|
||||
launchUI {
|
||||
val result = repository.get_user_rank_top()
|
||||
rankTopThreeBean.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
fun user_open_verify_token() {
|
||||
launchUI {
|
||||
val result = repository.user_open_verify_token()
|
||||
openVerify.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var liveRepository = LiveRepository()
|
||||
var rankDataTop = MutableLiveData<List<RankListBean>>()
|
||||
fun loadRankData(rid: String, time: String, type: String) {
|
||||
launchUI {
|
||||
val result = liveRepository.get_room_rank(rid, time, type)
|
||||
rankDataTop.value = result.data.list
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val vipData = MutableLiveData<VIPData>()
|
||||
fun get_vip_list() {
|
||||
launchUI {
|
||||
val result = repository.get_vip_list()
|
||||
vipData.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun pay_vip_order(
|
||||
vid: String, pay_type: String
|
||||
) {
|
||||
launchUI {
|
||||
val result = repository.pay_vip_order(vid, pay_type)
|
||||
result.msg.showToast()
|
||||
get_vip_list()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var sendCodeClick: MutableLiveData<Boolean> = MutableLiveData(true)
|
||||
|
||||
var sendCode: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var phone: MutableLiveData<String> = MutableLiveData()
|
||||
var code: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
fun verification(captcha_code: String, captcha_key: String) {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (sendCodeClick.value == false) return
|
||||
sendCodeClick.value = false
|
||||
sendCode.value = "发送"
|
||||
launchUI {
|
||||
val result = repository.verification(phone.value.toString(), "2",captcha_code,captcha_key)
|
||||
result.msg.showToast()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
val inviteInfoBean = MutableLiveData<InviteInfoBean>()
|
||||
fun get_update_invite_info() {
|
||||
launchUI {
|
||||
val result = repository.get_update_invite_info()
|
||||
inviteInfoBean.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var weixin = MutableLiveData<Wxmodel>()
|
||||
var alipay = MutableLiveData<String>()
|
||||
|
||||
fun update_user_inviter(
|
||||
user_id: String, sms_code: String, pay_type: String
|
||||
) {
|
||||
launchUI {
|
||||
val result = repository.update_user_inviter(user_id, sms_code, pay_type)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val roomRandom = MutableLiveData<UserRoomVisitor>()
|
||||
fun now_room_category(rid: String) {
|
||||
launchUI {
|
||||
val result = repository.now_room_category(rid)
|
||||
roomRandom.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var renewalAmountBean = MutableLiveData<RenewalAmountBean>()
|
||||
fun user_renewal_contract_status(id: String) {
|
||||
launchUI {
|
||||
val result = repository.user_renewal_contract_status(id)
|
||||
result.data.id = id
|
||||
renewalAmountBean.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun user_renewal_contract(id: String) {
|
||||
launchUI {
|
||||
val result = repository.user_renewal_contract(id)
|
||||
result.data
|
||||
get_user_contract_list(UserManager.user.uid.toString(), "1", "20")
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
val signedArtist = MutableLiveData<List<SignedArtistBean>>()
|
||||
fun get_user_contract_list(
|
||||
uid: String, page: String, page_limit: String
|
||||
) {
|
||||
|
||||
launchUI {
|
||||
val result = liveRepository.get_user_contract_list(uid, page, page_limit)
|
||||
signedArtist.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun user_cancel_contract(id: String, uid: String) {
|
||||
launchUI {
|
||||
repository.user_cancel_contract(id)
|
||||
get_user_contract_list(uid, "1", "20")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val myRoomList = MutableLiveData<ArrayList<MyRoomList>>()
|
||||
fun get_user_room_power_list() {
|
||||
launchUI {
|
||||
val result = repository.get_user_room_power_list()
|
||||
myRoomList.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun user_retire_room_power(rid: String, user_type: String) {
|
||||
launchUI {
|
||||
val result = repository.user_retire_room_power(rid, user_type)
|
||||
get_user_room_power_list()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val WeekHomeList = MutableLiveData<ArrayList<WeekHomeBean>>()
|
||||
fun now_week_rank_four() {
|
||||
launchUI {
|
||||
val result = repository.now_week_rank_four()
|
||||
WeekHomeList.value=result.data
|
||||
}
|
||||
}
|
||||
|
||||
val TopCpBean = MutableLiveData<TopCpBean>()
|
||||
fun top_cp() {
|
||||
launchUI {
|
||||
val result = repository.top_cp()
|
||||
TopCpBean.value=result.data
|
||||
}
|
||||
}
|
||||
|
||||
var signDayList = MutableLiveData<DaySignBean>()
|
||||
var signSucces = MutableLiveData<SignSuccesBean>()
|
||||
fun user_day_sign_log() {
|
||||
launchUI {
|
||||
val result = repository.user_day_sign_log()
|
||||
signDayList.value=result.data
|
||||
}
|
||||
}
|
||||
var signDayList2 = MutableLiveData<DaySignBean>()
|
||||
fun user_day_sign_log2() {
|
||||
launchUI {
|
||||
val result = repository.user_day_sign_log()
|
||||
signDayList2.value=result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun user_day_sign() {
|
||||
launchUI {
|
||||
val result = repository.user_day_sign()
|
||||
signSucces.value=result.data
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.yuyin.mier.module_home.tab.center.sign
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.WindowManager
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.DialogSignBinding
|
||||
import com.yuyin.mier.module_home.model.DaySignBean
|
||||
import com.yuyin.mier.module_home.tab.center.MainCenterViewModel
|
||||
import kotlinx.android.synthetic.main.day_sgin.view.*
|
||||
import kotlinx.android.synthetic.main.day_sgin2.view.*
|
||||
|
||||
class SginDialog(context: Context, val main: MainCenterViewModel, val it: DaySignBean) :
|
||||
Dialog(context) {
|
||||
|
||||
private lateinit var mBinding: DialogSignBinding
|
||||
|
||||
init {
|
||||
initDailog(context)
|
||||
}
|
||||
|
||||
private fun initDailog(context: Context) {
|
||||
val inflater = LayoutInflater.from(context)
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_sign, null, false)
|
||||
setContentView(mBinding.getRoot())
|
||||
val win = this.window
|
||||
val params = win!!.attributes
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
params.height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
params.gravity = Gravity.CENTER
|
||||
params.horizontalMargin = 10f
|
||||
win.attributes = params
|
||||
win.setBackgroundDrawable(context.resources.getDrawable(com.yuyin.lib_base.R.color.translant))
|
||||
|
||||
mBinding.tvSignTime.text = "已累计签到" + it.sign_num + "天"
|
||||
if (it.today_sign == "1") {
|
||||
mBinding.btnSign.setImageResource(R.mipmap.sign_icon7)
|
||||
} else {
|
||||
mBinding.btnSign.setImageResource(R.mipmap.sign_icon5)
|
||||
}
|
||||
|
||||
mBinding.day1.tv_day.text = "1"
|
||||
mBinding.day1.tv_sigin_price.text = it.sign_log[0].award + "金币"
|
||||
// mBinding.day1.sign_now.visibility = if (it.sign_log[0].is_sign == 1) View.VISIBLE else View.GONE
|
||||
mBinding.day1.ll_sign.isSelected = if (it.sign_log[0].is_sign == 1) true else false
|
||||
|
||||
mBinding.day2.tv_day.text = "2"
|
||||
mBinding.day2.tv_sigin_price.text = it.sign_log[1].award + "金币"
|
||||
// mBinding.day2.sign_now.visibility = if (it.sign_log[1].is_sign == 1) View.VISIBLE else View.GONE
|
||||
mBinding.day2.ll_sign.isSelected = if (it.sign_log[1].is_sign == 1) true else false
|
||||
|
||||
mBinding.day3.tv_day.text = "3"
|
||||
mBinding.day3.tv_sigin_price.text = it.sign_log[2].award + "金币"
|
||||
// mBinding.day3.sign_now.visibility = if (it.sign_log[2].is_sign == 1) View.VISIBLE else View.GONE
|
||||
mBinding.day3.ll_sign.isSelected = if (it.sign_log[2].is_sign == 1) true else false
|
||||
|
||||
mBinding.day4.tv_day.text = "4"
|
||||
mBinding.day4.tv_sigin_price.text = it.sign_log[3].award + "金币"
|
||||
// mBinding.day4.sign_now.visibility = if (it.sign_log[3].is_sign == 1) View.VISIBLE else View.GONE
|
||||
mBinding.day4.ll_sign.isSelected = if (it.sign_log[3].is_sign == 1) true else false
|
||||
|
||||
mBinding.day5.tv_day.text = "5"
|
||||
mBinding.day5.tv_sigin_price.text = it.sign_log[4].award + "金币"
|
||||
// mBinding.day5.sign_now.visibility = if (it.sign_log[4].is_sign == 1) View.VISIBLE else View.GONE
|
||||
mBinding.day5.ll_sign.isSelected = if (it.sign_log[4].is_sign == 1) true else false
|
||||
|
||||
mBinding.day6.tv_day.text = "6"
|
||||
mBinding.day6.tv_sigin_price.text = it.sign_log[5].award + "金币"
|
||||
// mBinding.day6.sign_now.visibility = if (it.sign_log[5].is_sign == 1) View.VISIBLE else View.GONE
|
||||
mBinding.day6.ll_sign.isSelected = if (it.sign_log[5].is_sign == 1) true else false
|
||||
|
||||
mBinding.day7.tv_day2.text = "7"
|
||||
mBinding.day7.tv_sigin_price2.text = it.sign_log[6].award + "金币"
|
||||
|
||||
if (it.sign_log[6].is_sign == 1){
|
||||
mBinding.day7.tv_sigin_price2.setTextColor(Color.parseColor("#FFFFFF"))
|
||||
// mBinding.day7.sign_now2.visibility = View.VISIBLE
|
||||
mBinding.day7.ll_sign2.isSelected = true
|
||||
}else{
|
||||
mBinding.day7.tv_sigin_price2.setTextColor(Color.parseColor("#333333"))
|
||||
// mBinding.day7.sign_now2.visibility = View.GONE
|
||||
mBinding.day7.ll_sign2.isSelected = false
|
||||
}
|
||||
|
||||
mBinding.btnSign.setOnClickListener { its ->
|
||||
dismiss()
|
||||
if (it.today_sign == "2") {
|
||||
main.user_day_sign()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.yuyin.mier.module_home.tab.center.sign
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.WindowManager
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.DialogSignSuccesBinding
|
||||
import com.yuyin.mier.module_home.tab.center.MainCenterViewModel
|
||||
|
||||
class SginSuccessDialog(context: Context, val main: MainCenterViewModel, val award:String) :
|
||||
Dialog(context) {
|
||||
private lateinit var mBinding: DialogSignSuccesBinding
|
||||
init {
|
||||
initDailog(context)
|
||||
}
|
||||
|
||||
private fun initDailog(context: Context) {
|
||||
val inflater = LayoutInflater.from(context)
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_sign_succes, null, false)
|
||||
setContentView(mBinding.getRoot())
|
||||
val win = this.window
|
||||
val params = win!!.attributes
|
||||
params.width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
params.height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
params.gravity = Gravity.CENTER
|
||||
win.attributes = params
|
||||
win.setBackgroundDrawable(context.resources.getDrawable(com.yuyin.lib_base.R.color.translant))
|
||||
mBinding.tvSignPrice.text="签到成功 金币"+award
|
||||
mBinding!!.btnSign.setOnClickListener {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,188 @@
|
||||
package com.yuyin.mier.module_home.tab.center.sub;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.yuyin.lib_base.adapter.RefreshAdapter;
|
||||
import com.yuyin.mier.R;
|
||||
import com.yuyin.mier.module_home.model.RoomListBean;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
public class HomeRecomAdapter extends RefreshAdapter<RoomListBean> {
|
||||
|
||||
private Context context;
|
||||
|
||||
private int TYPE_N = -2;
|
||||
public int TYPE_O = -3;
|
||||
private int type = 0;
|
||||
|
||||
private View.OnClickListener mOnClickListener;
|
||||
|
||||
/**
|
||||
* @param context
|
||||
* @param type -1全部0推荐1热门2其它(目前包含-1,0)
|
||||
*/
|
||||
public HomeRecomAdapter(Context context, int type) {
|
||||
super(context);
|
||||
this.context = context;
|
||||
this.type = type;
|
||||
mOnClickListener = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (!canClick()) {
|
||||
return;
|
||||
}
|
||||
Object tag = v.getTag();
|
||||
if (tag != null) {
|
||||
int position = (int) tag;
|
||||
if (mOnItemClickListener != null) {
|
||||
mOnItemClickListener.onItemClick(mList.get(position), position);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
return type;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
if (viewType == TYPE_N)
|
||||
return new Vh(mInflater.inflate(R.layout.item_main_home_recom_hot2, parent, false), viewType);
|
||||
return new Vh(mInflater.inflate(R.layout.item_main_home_recom_hot, parent, false), viewType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder vh, int position) {
|
||||
((Vh) vh).setData(mList.get(position), position);
|
||||
}
|
||||
|
||||
|
||||
class Vh extends RecyclerView.ViewHolder {
|
||||
int viewType;
|
||||
ImageView mCover, riv;
|
||||
TextView tv_title, tv_title2;
|
||||
TextView tv_num;
|
||||
TextView tv_type, tv_id, tv_vis_num,tv_name;
|
||||
View iv_lianghao;
|
||||
RecyclerView riv_person;
|
||||
|
||||
|
||||
public Vh(View itemView, int viewType) {
|
||||
super(itemView);
|
||||
this.viewType = viewType;
|
||||
mCover = itemView.findViewById(R.id.cover);
|
||||
riv = itemView.findViewById(R.id.riv);
|
||||
tv_title = itemView.findViewById(R.id.tv_title);
|
||||
tv_title2 = itemView.findViewById(R.id.tv_title2);
|
||||
tv_num = itemView.findViewById(R.id.tv_num);
|
||||
tv_type = itemView.findViewById(R.id.tv_type);
|
||||
tv_id = itemView.findViewById(R.id.tv_id);
|
||||
iv_lianghao = itemView.findViewById(R.id.iv_lianghao);
|
||||
tv_vis_num = itemView.findViewById(R.id.tv_vis_num);
|
||||
riv_person = itemView.findViewById(R.id.riv_person);
|
||||
tv_name = itemView.findViewById(R.id.tv_name);
|
||||
itemView.setOnClickListener(mOnClickListener);
|
||||
}
|
||||
|
||||
void setData(RoomListBean bean, int position) {
|
||||
itemView.setTag(position);
|
||||
/*int sss = new Random().nextInt(4);
|
||||
int[] bg22 = {R.mipmap.home_list_img21, R.mipmap.home_list_img22, R.mipmap.home_list_img23,
|
||||
R.mipmap.home_list_img24, R.mipmap.home_list_img25, R.mipmap.home_list_img26,
|
||||
R.mipmap.home_list_img27, R.mipmap.home_list_img28, R.mipmap.home_list_img29};
|
||||
|
||||
if (bean.getCategory_name().equals("交友")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[0]));
|
||||
tv_type.setText("");
|
||||
} else if (bean.getCategory_name().equals("点歌")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[1]));
|
||||
tv_type.setText("");
|
||||
} else if (bean.getCategory_name().equals("相亲")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[2]));
|
||||
tv_type.setText("");
|
||||
} else if (bean.getCategory_name().equals("游戏")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[3]));
|
||||
tv_type.setText("");
|
||||
} else if (bean.getCategory_name().equals("酒吧")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[4]));
|
||||
tv_type.setText("");
|
||||
} else if (bean.getCategory_name().equals("互娱")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[5]));
|
||||
tv_type.setText("");
|
||||
} else if (bean.getCategory_name().equals("拍卖")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[6]));
|
||||
tv_type.setText("");
|
||||
} else if (bean.getCategory_name().equals("K歌")) {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[7]));
|
||||
tv_type.setText("");
|
||||
} else {
|
||||
tv_type.setBackground(mContext.getResources().getDrawable(bg22[8]));
|
||||
tv_type.setText("" + bean.getCategory_name());
|
||||
}*/
|
||||
|
||||
if (tv_type!= null) tv_type.setText("" + bean.getCategory_name());
|
||||
|
||||
if (tv_id != null) {
|
||||
// if (bean.getSpecial_uid() == 0) {
|
||||
// iv_lianghao.setVisibility(View.GONE);
|
||||
tv_id.setText(bean.getRoom_number());
|
||||
// } else {
|
||||
// iv_lianghao.setVisibility(View.VISIBLE);
|
||||
// tv_id.setText("ID:" + bean.getSpecial_uid());
|
||||
// }
|
||||
}
|
||||
if (riv != null) {
|
||||
Glide.with(context).load(bean.getHead_pic()).into(riv);
|
||||
}
|
||||
if (mCover != null)
|
||||
Glide.with(context).load(bean.getRoom_cover())
|
||||
.error(R.mipmap.ic_launcher_app).into(mCover);
|
||||
if (tv_title2 != null) tv_title2.setText("" + bean.getCategory_name());
|
||||
if (tv_num != null) tv_num.setText("" + bean.getHot_value());
|
||||
if (tv_title != null) tv_title.setText("" + bean.getRoom_name());
|
||||
if (tv_vis_num != null) tv_vis_num.setText(bean.getVisitor_num() + "人");
|
||||
|
||||
if (tv_name != null) tv_name.setText(bean.getNick_name());
|
||||
|
||||
if (riv_person != null) {
|
||||
LinearLayoutManager layoutManager = new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, true);
|
||||
riv_person.setLayoutManager(layoutManager);
|
||||
|
||||
PersonAdapter personAdapter = new PersonAdapter();
|
||||
riv_person.setAdapter(personAdapter);
|
||||
if (riv_person.getItemDecorationCount() == 0) {
|
||||
riv_person.addItemDecoration(itemDecoration);
|
||||
}
|
||||
personAdapter.setNewData(bean.getRoom_micro_list());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RecyclerView.ItemDecoration itemDecoration = new RecyclerView.ItemDecoration() {
|
||||
@Override
|
||||
public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
|
||||
if (parent.getChildPosition(view) != 0) {
|
||||
outRect.right = -15;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.yuyin.mier.module_home.tab.center.sub
|
||||
|
||||
import com.bumptech.glide.Glide
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.Mic
|
||||
|
||||
class PersonAdapter :
|
||||
BaseQuickAdapter<Mic, BaseViewHolder>(R.layout.item_person, arrayListOf()) {
|
||||
override fun convert(helper: BaseViewHolder, item: Mic) {
|
||||
// helper
|
||||
// .setText(R.id.tv_name, item.send_user_info.nick_name)
|
||||
Glide.with(mContext).load(item.head_pic).error(R.mipmap.ic_launcher_app)
|
||||
.placeholder(R.mipmap.ic_launcher_app).into(helper.getView(R.id.head))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
package com.yuyin.mier.module_home.tab.center.sub
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.view.ItemDecoration
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.FragmentRoomListBinding
|
||||
import java.util.*
|
||||
|
||||
class RoomListFragment : BaseDataBindingFragment<RoomListViewModel, FragmentRoomListBinding>() {
|
||||
var cateId: String = ""
|
||||
lateinit var adapter: HomeRecomAdapter
|
||||
|
||||
companion object {
|
||||
fun getInstance(tag_type: Int, cateId: Int): RoomListFragment {
|
||||
val fragment = RoomListFragment()
|
||||
val bundle = Bundle()
|
||||
bundle.putInt("tag_type", tag_type)
|
||||
bundle.putInt("cateId", cateId)
|
||||
fragment.arguments = bundle
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.roomData.observe(requireActivity(), {
|
||||
if (page == 1)
|
||||
adapter.list.clear()
|
||||
adapter.list.addAll(it)
|
||||
adapter.notifyDataSetChanged()
|
||||
})
|
||||
viewModel.getFinally().observe(requireActivity(), {
|
||||
mDataBinding.srlView.finishLoadMore()
|
||||
mDataBinding.srlView.finishRefresh()
|
||||
})
|
||||
// viewModel.roomCategories.observe(this, {
|
||||
// cateId = it[0].cate_id
|
||||
// viewModel.loadRoomData(getMap())
|
||||
// })
|
||||
}
|
||||
|
||||
fun resubData(cate_id: String) {
|
||||
cateId = cate_id
|
||||
viewModel.loadRoomData(getMap())
|
||||
}
|
||||
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_room_list
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
page = 1
|
||||
viewModel.loadRoomData(getMap())
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
val type = requireArguments().getInt("tag_type")
|
||||
adapter = HomeRecomAdapter(activity, -3)
|
||||
// val decoration = ItemDecoration(context, 0x00000000, 7F, 7F)
|
||||
// decoration.isOnlySetItemOffsetsButNoDraw = true
|
||||
// mDataBinding.rvView.addItemDecoration(decoration)
|
||||
|
||||
mDataBinding.rvView.adapter = adapter
|
||||
val gridLayoutManager = GridLayoutManager(this.context, 2)
|
||||
// gridLayoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
||||
// override fun getSpanSize(position: Int): Int {
|
||||
// if (position < 6) {
|
||||
// return 2
|
||||
// }
|
||||
//// if (position < 10) {
|
||||
//// return 4
|
||||
//// }
|
||||
// return 3
|
||||
// }
|
||||
//
|
||||
// }
|
||||
mDataBinding.rvView.layoutManager = gridLayoutManager
|
||||
if (mDataBinding.rvView.itemDecorationCount == 0) {
|
||||
mDataBinding.rvView.addItemDecoration(ItemDecoration(context, 0x00000000, 7F, 10F))
|
||||
}
|
||||
|
||||
adapter.setOnItemClickListener { bean, position ->
|
||||
viewModel.enterRoom(bean.rid, "", activity as AppCompatActivity)
|
||||
}
|
||||
|
||||
if (type == Const.ROOM_TYPE_HOT) {
|
||||
// mDataBinding.ivRightShow.visibility = View.GONE
|
||||
viewModel.loadRoomData(getMap())
|
||||
} else {
|
||||
// mDataBinding.ivRightShow.visibility = View.VISIBLE
|
||||
// viewModel.loadRoomCategories()
|
||||
viewModel.loadRoomData(getMap())
|
||||
}
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
|
||||
mDataBinding.srlView.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
|
||||
override fun onRefresh(refreshLayout: RefreshLayout) {
|
||||
page = 1
|
||||
viewModel.loadRoomData(getMap())
|
||||
}
|
||||
|
||||
override fun onLoadMore(refreshLayout: RefreshLayout) {
|
||||
page++
|
||||
viewModel.loadRoomData(getMap())
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
var page = 1
|
||||
private fun getMap(): MutableMap<String, String> {
|
||||
val map: MutableMap<String, String> = HashMap()
|
||||
val type = requireArguments().getInt("tag_type")
|
||||
cateId = requireArguments().getInt("cateId").toString()
|
||||
map["tid"] = Const.ROOM_TYPE
|
||||
when (type) {
|
||||
Const.ROOM_TYPE_ALL -> {
|
||||
}
|
||||
|
||||
Const.ROOM_TYPE_TOP -> {
|
||||
map["is_top"] = "2"
|
||||
}
|
||||
|
||||
Const.ROOM_TYPE_HOT -> {
|
||||
map["is_hot"] = "2"
|
||||
}
|
||||
|
||||
else -> {
|
||||
if (cateId != "-1")
|
||||
map["cate_id"] = cateId
|
||||
}
|
||||
}
|
||||
map["page"] = page.toString()
|
||||
return map
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.yuyin.mier.module_home.tab.center.sub
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.model.CategorRoomBean
|
||||
import com.yuyin.mier.module_home.model.BannerBean
|
||||
import com.yuyin.mier.module_home.model.RoomListBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class RoomListViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
|
||||
var roomData = MutableLiveData<List<RoomListBean>>()
|
||||
fun loadRoomData(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
val result = repository.getRoomList(map)
|
||||
roomData.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
var roomData2 = MutableLiveData<List<RoomListBean>>()
|
||||
fun loadRoomData2(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
val result = repository.getRoomList(map)
|
||||
roomData2.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
var roomData3 = MutableLiveData<List<RoomListBean>>()
|
||||
fun loadRoomData3(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
val result = repository.getRoomList(map)
|
||||
roomData3.value = result.data;
|
||||
}
|
||||
}
|
||||
var roomCategories = MutableLiveData<List<CategorRoomBean>>()
|
||||
fun loadRoomCategories() {
|
||||
launchUI {
|
||||
val result = repository.roomCategories(Const.ROOM_TYPE)
|
||||
roomCategories.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
var bannerListBean = MutableLiveData<List<BannerBean>>()
|
||||
fun getBannerList() {
|
||||
launchUI {
|
||||
val result = repository.get_banner_list()
|
||||
bannerListBean.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,230 @@
|
||||
package com.yuyin.mier.module_home.tab.center.sub
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.youth.banner.BannerConfig
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.adapter.MyPagerAdapter
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseViewModelFragment
|
||||
import com.yuyin.lib_base.ui.X5WebViewActivity
|
||||
import com.yuyin.lib_base.view.GlideImageLoader
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.BannerBean
|
||||
import kotlinx.android.synthetic.main.fragment_room_type.*
|
||||
import java.util.*
|
||||
|
||||
class RoomTypeFragment : BaseViewModelFragment<RoomListViewModel>() {
|
||||
lateinit var adapter2: HomeRecomAdapter
|
||||
lateinit var adapter: HomeRecomAdapter
|
||||
private val fsRes: ArrayList<Fragment> = ArrayList<Fragment>() //fragment集合
|
||||
private val titleRes = ArrayList<String>() //tab标题集合
|
||||
private lateinit var mAdapter: MyPagerAdapter
|
||||
override fun getLayoutId(): Int = R.layout.fragment_room_type
|
||||
|
||||
override fun initView() {
|
||||
adapter2 = HomeRecomAdapter(activity, 0)
|
||||
rv_view2.adapter = adapter2
|
||||
val gridLayoutManager2 = LinearLayoutManager(activity, RecyclerView.HORIZONTAL,false)
|
||||
rv_view2.layoutManager = gridLayoutManager2
|
||||
adapter2.setOnItemClickListener { bean, position ->
|
||||
viewModel.enterRoom(bean.rid, "", activity as AppCompatActivity)
|
||||
}
|
||||
|
||||
adapter = HomeRecomAdapter(activity, -3)
|
||||
rv_view.adapter = adapter
|
||||
val gridLayoutManager = GridLayoutManager(activity,2)
|
||||
rv_view.layoutManager = gridLayoutManager
|
||||
adapter.setOnItemClickListener { bean, position ->
|
||||
viewModel.enterRoom(bean.rid, "", activity as AppCompatActivity)
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
// viewModel.loadRoomCategories()
|
||||
viewModel.getBannerList()
|
||||
viewModel.loadRoomData2(getMap1())
|
||||
viewModel.loadRoomData3(getMap2())
|
||||
}
|
||||
|
||||
|
||||
private fun initBanner(data: List<BannerBean>) {
|
||||
val imgurls: MutableList<String> = ArrayList()
|
||||
for (list in data) {
|
||||
imgurls.add(list.image)
|
||||
}
|
||||
//设置图片加载器
|
||||
banner.setImageLoader(GlideImageLoader())
|
||||
//设置图片集合
|
||||
banner.setImages(imgurls)
|
||||
//设置指示器位置(当banner模式中有指示器时)
|
||||
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR)
|
||||
banner.setIndicatorGravity(BannerConfig.CENTER)
|
||||
//设置自动轮播,默认为true
|
||||
banner.isAutoPlay(true)
|
||||
//banner设置方法全部调用完毕时最后调用
|
||||
banner.start()
|
||||
banner.setOnBannerListener {
|
||||
when (data[it].type) {
|
||||
"1" -> {
|
||||
|
||||
}
|
||||
"2" -> {
|
||||
context?.let { it1 -> X5WebViewActivity.forward(it1, data[it].url, "") }
|
||||
}
|
||||
"3" -> {
|
||||
viewModel.enterRoom(data[it].aid, "", activity as AppCompatActivity)
|
||||
}
|
||||
"4" -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", data[it].aid)
|
||||
.navigation()
|
||||
}
|
||||
}
|
||||
}
|
||||
banner.setOnClickListener {
|
||||
when (data[0].type) {
|
||||
"1" -> {
|
||||
|
||||
}
|
||||
"2" -> {
|
||||
context?.let { it1 -> X5WebViewActivity.forward(it1, data[0].url, "") }
|
||||
}
|
||||
"3" -> {
|
||||
viewModel.enterRoom(data[0].aid, "", activity as AppCompatActivity)
|
||||
}
|
||||
"4" -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", data[0].aid)
|
||||
.navigation()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.roomData2.observe(requireActivity(), {
|
||||
adapter2.list.clear()
|
||||
adapter2.list.addAll(it)
|
||||
adapter2.notifyDataSetChanged()
|
||||
})
|
||||
viewModel.roomData3.observe(requireActivity(), {
|
||||
adapter.list.clear()
|
||||
adapter.list.addAll(it)
|
||||
adapter.notifyDataSetChanged()
|
||||
})
|
||||
viewModel.bannerListBean.observe(this, {
|
||||
if (it == null) return@observe
|
||||
initBanner(it)
|
||||
})
|
||||
viewModel.roomCategories.observe(this, {
|
||||
titleRes.add("热门")
|
||||
fsRes.add(RoomListFragment.getInstance(Const.ROOM_TYPE_HOT, -1))
|
||||
// for(i in it.indices){
|
||||
// titleRes.add(it[i].category_name)
|
||||
// fsRes.add(RoomListFragment.getInstance(Const.ROOM_TYPE_COMM,it[i].cate_id.toInt()))
|
||||
// }
|
||||
mAdapter = MyPagerAdapter(childFragmentManager, fsRes, titleRes)
|
||||
|
||||
// view_pager.adapter = mAdapter
|
||||
// tabLayout.setupWithViewPager(view_pager)
|
||||
// view_pager.offscreenPageLimit = fsRes.size
|
||||
// //设置自定义tab
|
||||
// setCustomViews()
|
||||
|
||||
view_pager.adapter = mAdapter
|
||||
tabLayout.setViewPager(view_pager)
|
||||
tabLayout.setSnapOnTabClick(true)
|
||||
view_pager.offscreenPageLimit = fsRes.size
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// /**
|
||||
// * 热门,房间
|
||||
// */
|
||||
// private void loadRecommentData() {
|
||||
// //热门推荐
|
||||
// RxUtils.loading(commonModel.is_popular(), this)
|
||||
// .subscribe(new ErrorHandleSubscriber<RecommenRoomBean>(mErrorHandler) {
|
||||
// @Override
|
||||
// public void onNext(RecommenRoomBean categorRoomBean) {
|
||||
// RecomFragment recomFragment = (RecomFragment) mFragments.get(0);
|
||||
// recomFragment.setPopularData(categorRoomBean);
|
||||
// }
|
||||
// });
|
||||
// //密聊推荐
|
||||
// RxUtils.loading(commonModel.secret_chat(), this)
|
||||
// .subscribe(new ErrorHandleSubscriber<RecommenRoomBean>(mErrorHandler) {
|
||||
// @Override
|
||||
// public void onNext(RecommenRoomBean categorRoomBean) {
|
||||
// RecomFragment recomFragment = (RecomFragment) mFragments.get(0);
|
||||
// recomFragment.setSecretData(categorRoomBean);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
/**
|
||||
* 设置每个TabLayout的自定义View
|
||||
* 注意:TabLayout和Viewpager配合使用的时候必须先mViewPager.setAdapter(),再初始化该方法,然后addOnTabSelectedListener;因为adapter刷新会让mCustomViewView空,
|
||||
*/
|
||||
fun setCustomViews() {
|
||||
// val mSelectedTabPosition = tabLayout.selectedTabPosition
|
||||
// for (i in titleRes.indices) {
|
||||
// tabLayout.getTabAt(i)!!.customView = getTabView(i, mSelectedTabPosition)
|
||||
// // if (i == mSelectedTabPosition) {
|
||||
//// changeTabSelect(mTab);
|
||||
//// } else {
|
||||
//// changeTabNormal(mTab);
|
||||
//// }
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 提供TabLayout的View
|
||||
* 根据index返回不同的View
|
||||
* 主意:默认选中的View要返回选中状态的样式
|
||||
*/
|
||||
private fun getTabView(index: Int, mSelectedTabPosition: Int): View? {
|
||||
//自定义View布局
|
||||
val view: View = LayoutInflater.from(context).inflate(R.layout.item_tablayout_header, null)
|
||||
val title = view.findViewById<View>(R.id.tv_name) as TextView
|
||||
val v_view = view.findViewById<View>(R.id.v_view)
|
||||
title.text = titleRes.get(index)
|
||||
title.isSelected = index == mSelectedTabPosition
|
||||
v_view.isSelected = index == mSelectedTabPosition
|
||||
title.textSize = if (index == mSelectedTabPosition) 14f else 14f
|
||||
return view
|
||||
}
|
||||
|
||||
var page = 1
|
||||
|
||||
private fun getMap1(): MutableMap<String, String> {
|
||||
val map: MutableMap<String, String> = HashMap()
|
||||
map["tid"] = Const.ROOM_TYPE
|
||||
map["is_top"] = "2"
|
||||
// map["is_hot"] = "2"
|
||||
map["page"] = page.toString()
|
||||
return map
|
||||
}
|
||||
private fun getMap2(): MutableMap<String, String> {
|
||||
val map: MutableMap<String, String> = HashMap()
|
||||
map["tid"] = Const.ROOM_TYPE
|
||||
// map["is_top"] = "2"
|
||||
map["is_hot"] = "2"
|
||||
map["page"] = page.toString()
|
||||
return map
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.yuyin.mier.module_home.tab.dynamic
|
||||
|
||||
import android.graphics.Color
|
||||
import android.graphics.Typeface
|
||||
import android.util.TypedValue
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.flyco.tablayout.listener.CustomTabEntity
|
||||
import com.flyco.tablayout.listener.OnTabSelectListener
|
||||
import com.yuyin.lib_base.adapter.MyPagerAdapter
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.base.BaseViewModelFragment
|
||||
import com.yuyin.module_community.ui.main.DynamicFragment
|
||||
import com.yuyin.mier.R
|
||||
import kotlinx.android.synthetic.main.fragment_community.*
|
||||
import java.util.*
|
||||
|
||||
class MainCommunityFragment : BaseViewModelFragment<BaseViewModel>() {
|
||||
|
||||
|
||||
private val fsRes: ArrayList<Fragment> = ArrayList<Fragment>() //fragment集合
|
||||
private val titleRes = ArrayList<String>() //tab标题集合
|
||||
private val dataTab: MutableList<CustomTabEntity> =
|
||||
ArrayList<CustomTabEntity>() //CommonTabLayout 所需数据集合
|
||||
|
||||
private lateinit var mAdapter: MyPagerAdapter
|
||||
|
||||
override fun startObserve() {
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_community
|
||||
|
||||
override fun initView() {
|
||||
titleRes.add("最新")
|
||||
titleRes.add("推荐")
|
||||
titleRes.add("关注")
|
||||
|
||||
// 初始化 Fragment
|
||||
fsRes.add(DynamicFragment().getInstance("1"))
|
||||
fsRes.add(DynamicFragment().getInstance("2"))
|
||||
fsRes.add(DynamicFragment().getInstance("3"))
|
||||
|
||||
// 初始化图标
|
||||
val icon1 = arrayOf(R.mipmap.zuiixn1, R.mipmap.tuijian1, R.mipmap.guanzhi1)
|
||||
val icon2 = arrayOf(R.mipmap.zuiixn2, R.mipmap.tuijian2, R.mipmap.guanzhi2)
|
||||
|
||||
// 添加 Tab 数据
|
||||
for (i in titleRes.indices) {
|
||||
dataTab.add(object : CustomTabEntity {
|
||||
override fun getTabTitle(): String = ""
|
||||
override fun getTabSelectedIcon(): Int = icon1[i]
|
||||
override fun getTabUnselectedIcon(): Int = icon2[i]
|
||||
})
|
||||
}
|
||||
|
||||
// 设置 TabLayout 数据
|
||||
tab_layout.setTabData(dataTab as ArrayList<CustomTabEntity>)
|
||||
view_pager.offscreenPageLimit = dataTab.size
|
||||
// 设置 ViewPager 适配器
|
||||
mAdapter = MyPagerAdapter(childFragmentManager, fsRes, titleRes)
|
||||
view_pager.adapter = mAdapter
|
||||
|
||||
// 手动实现联动
|
||||
view_pager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
||||
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
|
||||
override fun onPageScrollStateChanged(state: Int) {}
|
||||
override fun onPageSelected(position: Int) {
|
||||
tab_layout.currentTab = position
|
||||
}
|
||||
})
|
||||
|
||||
// 设置 Tab 选择监听
|
||||
tab_layout.setOnTabSelectListener(object : OnTabSelectListener {
|
||||
override fun onTabSelect(position: Int) {
|
||||
view_pager.currentItem = position
|
||||
}
|
||||
override fun onTabReselect(position: Int) {}
|
||||
})
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
|
||||
override fun initEvent() {
|
||||
iv_fabu.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.COMMUNITY_FABU).navigation()
|
||||
}
|
||||
|
||||
//TabLayout监听
|
||||
tab_layout.setOnTabSelectListener(object : OnTabSelectListener {
|
||||
override fun onTabSelect(position: Int) {
|
||||
//显示相应的item界面
|
||||
view_pager.currentItem = position
|
||||
}
|
||||
override fun onTabReselect(position: Int) {}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
private fun setCustomViews() {
|
||||
/*val mSelectedTabPosition = tab_layout.selectedTabPosition
|
||||
for (i in titleRes.indices) {
|
||||
tab_layout.getTabAt(i)!!.customView = getTabView(i, mSelectedTabPosition)
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
private fun getTabView(index: Int, mSelectedTabPosition: Int): View {
|
||||
//自定义View布局
|
||||
val view: View = LayoutInflater.from(context).inflate(R.layout.item_tablayout_header5, null)
|
||||
val title = view.findViewById<View>(R.id.tv_name) as TextView
|
||||
// val v_view = view.findViewById<ImageView>(R.id.v_view)
|
||||
title.text = titleRes[index]
|
||||
title.isSelected = index == mSelectedTabPosition
|
||||
// v_view.isSelected = index == mSelectedTabPosition
|
||||
if (index == mSelectedTabPosition) {
|
||||
title.setTextColor(Color.parseColor("#111111"))
|
||||
title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f)
|
||||
title.typeface = Typeface.DEFAULT_BOLD
|
||||
} else {
|
||||
title.setTextColor(Color.parseColor("#666666"))
|
||||
title.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16f)
|
||||
title.typeface = Typeface.DEFAULT
|
||||
}
|
||||
|
||||
return view
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
package com.yuyin.mier.module_home.tab.home
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.RoomZoneListAdapter
|
||||
import com.yuyin.mier.databinding.FragmentHomeBinding
|
||||
import com.yuyin.mier.module_home.model.HomeScene
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
class HomeFragment : BaseDataBindingFragment<MainHomeViewModel, FragmentHomeBinding>() {
|
||||
lateinit var roomZoneListAdapter: RoomZoneListAdapter
|
||||
|
||||
var age_type = ""
|
||||
var sex_type = ""
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.getFinally().observe(this) {
|
||||
mDataBinding.srlView.finishRefresh()
|
||||
mDataBinding.srlView.finishLoadMore()
|
||||
}
|
||||
viewModel.roomZoneList.observe(this) {
|
||||
if (page == 1) roomZoneListAdapter.data.clear()
|
||||
roomZoneListAdapter.addData(it)
|
||||
}
|
||||
}
|
||||
|
||||
private var type = "1"
|
||||
private var page = 1
|
||||
|
||||
companion object {
|
||||
fun getInstance(type: String): HomeFragment {
|
||||
val fragment = HomeFragment()
|
||||
val bundle = Bundle()
|
||||
bundle.putString("type", type)
|
||||
fragment.arguments = bundle
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_home
|
||||
|
||||
override fun initView() {
|
||||
mDataBinding.rvView.layoutManager = LinearLayoutManager(activity)
|
||||
roomZoneListAdapter = RoomZoneListAdapter()
|
||||
mDataBinding.rvView.adapter = roomZoneListAdapter
|
||||
EventBus.getDefault().register(this)
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
type = requireArguments().getString("type", "1")
|
||||
viewModel.get_room_zone_list(getMap())
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
roomZoneListAdapter.setOnItemChildClickListener { adapter, view, position ->
|
||||
when (view.id) {
|
||||
R.id.img -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", roomZoneListAdapter.data.get(position).uid)
|
||||
.navigation()
|
||||
}
|
||||
R.id.tvRoom -> {
|
||||
viewModel.enterRoom(
|
||||
roomZoneListAdapter.data.get(position).rid, "",
|
||||
requireActivity() as AppCompatActivity
|
||||
)
|
||||
}
|
||||
R.id.tvHome -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", roomZoneListAdapter.data.get(position).uid)
|
||||
.navigation()
|
||||
}
|
||||
}
|
||||
}
|
||||
mDataBinding.srlView.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
|
||||
override fun onRefresh(refreshLayout: RefreshLayout) {
|
||||
page = 1
|
||||
viewModel.get_room_zone_list(getMap())
|
||||
}
|
||||
|
||||
override fun onLoadMore(refreshLayout: RefreshLayout) {
|
||||
page++
|
||||
viewModel.get_room_zone_list(getMap())
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun getSelectType(event: HomeScene){
|
||||
sex_type = event.sex_type
|
||||
age_type = event.age_type
|
||||
page = 1
|
||||
viewModel.get_room_zone_list(getMap())
|
||||
}
|
||||
|
||||
|
||||
fun getMap(): HashMap<String, String> {
|
||||
var map = HashMap<String, String>()
|
||||
map["page"] = page.toString()
|
||||
map["zone_type"] = type
|
||||
map["sex_type"] = sex_type
|
||||
map["age_type"] = age_type
|
||||
return map
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,277 @@
|
||||
package com.yuyin.mier.module_home.tab.home
|
||||
|
||||
import android.content.Intent
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.youth.banner.BannerConfig
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.ui.X5WebViewActivity
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.view.GlideImageLoader
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.HomePagerHotAdapter
|
||||
import com.yuyin.mier.adapter.HomePagerTopAdapter
|
||||
import com.yuyin.mier.databinding.FragmentHomePagerBinding
|
||||
import com.yuyin.mier.module_home.model.BannerBean
|
||||
import com.yuyin.mier.module_home.tab.center.MainCenterViewModel
|
||||
import com.yuyin.mier.search.SearchHisActivity
|
||||
import java.util.ArrayList
|
||||
import java.util.HashMap
|
||||
|
||||
|
||||
class HomePagerFragment : BaseDataBindingFragment<MainCenterViewModel, FragmentHomePagerBinding>() {
|
||||
|
||||
lateinit var homePagerTopAdapter: HomePagerTopAdapter
|
||||
|
||||
lateinit var homePagerHotAdapter: HomePagerHotAdapter
|
||||
|
||||
private var page = 1
|
||||
|
||||
|
||||
override fun startObserve() {
|
||||
|
||||
viewModel.roomData2.observe(this) {
|
||||
homePagerTopAdapter.setNewData(it)
|
||||
}
|
||||
|
||||
|
||||
viewModel.roomData.observe(this) {
|
||||
if (page == 1) {
|
||||
homePagerHotAdapter.setNewData(it)
|
||||
} else {
|
||||
homePagerHotAdapter.addData(it)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
viewModel.getFinally().observe(this) {
|
||||
|
||||
mDataBinding.smart.finishLoadMore()
|
||||
mDataBinding.smart.finishRefresh()
|
||||
|
||||
}
|
||||
|
||||
viewModel.bannerListBean.observe(this) {
|
||||
initBanner(it)
|
||||
}
|
||||
|
||||
|
||||
viewModel.rankDataTop.observe(this) {
|
||||
|
||||
if (it.isNullOrEmpty()) {
|
||||
mDataBinding.ivRankHead1.setImageResource(R.mipmap.ic_launcher_app)
|
||||
mDataBinding.tvRankValue1.text = "0"
|
||||
mDataBinding.tvRankNickName1.text = "虚位以待"
|
||||
|
||||
mDataBinding.topRingHead.setImageResource(R.mipmap.ic_launcher_app)
|
||||
mDataBinding.topRingValue.text = "0"
|
||||
mDataBinding.topRingNickName.text = "虚位以待"
|
||||
|
||||
|
||||
} else if (it.isNotEmpty()) {
|
||||
|
||||
|
||||
GlideUtil.loadImglogo(requireContext(), it[0].head_pic, mDataBinding.ivRankHead1)
|
||||
mDataBinding.tvRankValue1.text = it[0].contribution_value.toString()
|
||||
mDataBinding.tvRankNickName1.text = it[0].nick_name
|
||||
|
||||
|
||||
GlideUtil.loadImglogo(requireContext(), it[0].head_pic, mDataBinding.topRingHead)
|
||||
mDataBinding.topRingValue.text = it[0].contribution_value.toString()
|
||||
mDataBinding.topRingNickName.text = it[0].nick_name
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (it.size < 2 || it.isNullOrEmpty()) {
|
||||
mDataBinding.ivRankHead2.setImageResource(R.mipmap.ic_launcher_app)
|
||||
mDataBinding.tvRankValue2.text = "0"
|
||||
mDataBinding.tvRankNickName2.text = "虚位以待"
|
||||
} else if (it.size > 1) {
|
||||
GlideUtil.loadImglogo(requireContext(), it[1].head_pic, mDataBinding.ivRankHead2)
|
||||
mDataBinding.tvRankValue2.text = it[1].contribution_value
|
||||
mDataBinding.tvRankNickName2.text = it[1].nick_name
|
||||
}
|
||||
|
||||
if (it.size < 3 || it.isNullOrEmpty()) {
|
||||
mDataBinding.ivRankHead3.setImageResource(R.mipmap.ic_launcher_app)
|
||||
mDataBinding.tvRankValue3.text = "0"
|
||||
mDataBinding.tvRankNickName3.text = "虚位以待"
|
||||
} else if (it.size > 2) {
|
||||
GlideUtil.loadImglogo(requireContext(), it[2].head_pic, mDataBinding.ivRankHead3)
|
||||
mDataBinding.tvRankValue3.text = it[2].contribution_value
|
||||
mDataBinding.tvRankNickName3.text = it[2].nick_name
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.fragment_home_pager
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
mDataBinding.rvTop.layoutManager = GridLayoutManager(requireContext(), 3)
|
||||
homePagerTopAdapter = HomePagerTopAdapter()
|
||||
mDataBinding.rvTop.adapter = homePagerTopAdapter
|
||||
|
||||
mDataBinding.rvHot.layoutManager = LinearLayoutManager(requireContext())
|
||||
homePagerHotAdapter = HomePagerHotAdapter()
|
||||
mDataBinding.rvHot.adapter = homePagerHotAdapter
|
||||
|
||||
viewModel.loadRoomData(getHotMap())
|
||||
viewModel.loadRoomData2(getTopMap())
|
||||
viewModel.getBannerList()
|
||||
viewModel.loadRankData("", "1", "1")
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
mDataBinding.constraint.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.LIVE_RANK).withInt("selectTab", 0).navigation()
|
||||
}
|
||||
|
||||
|
||||
mDataBinding.ivSearch.setOnClickListener {
|
||||
startActivity(Intent(requireContext(), SearchHisActivity::class.java))
|
||||
}
|
||||
|
||||
mDataBinding.ivRank.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.LIVE_RANK).withInt("selectTab", 0).navigation()
|
||||
}
|
||||
|
||||
mDataBinding.smart.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
|
||||
override fun onRefresh(refreshLayout: RefreshLayout) {
|
||||
page = 1
|
||||
viewModel.loadRoomData(getHotMap())
|
||||
|
||||
}
|
||||
|
||||
override fun onLoadMore(refreshLayout: RefreshLayout) {
|
||||
page++
|
||||
viewModel.loadRoomData(getHotMap())
|
||||
}
|
||||
})
|
||||
|
||||
homePagerTopAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
viewModel.enterRoom(
|
||||
homePagerTopAdapter.data[position].rid.toString(), "",
|
||||
requireActivity() as AppCompatActivity
|
||||
)
|
||||
}
|
||||
|
||||
homePagerHotAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
viewModel.enterRoom(
|
||||
homePagerHotAdapter.data[position].rid.toString(), "",
|
||||
requireActivity() as AppCompatActivity
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private fun initBanner(data: List<BannerBean>) {
|
||||
val imgurls: MutableList<String> = ArrayList()
|
||||
for (list in data) {
|
||||
imgurls.add(list.image)
|
||||
}
|
||||
//设置图片加载器
|
||||
mDataBinding.banner.setImageLoader(GlideImageLoader())
|
||||
//设置图片集合
|
||||
mDataBinding.banner.setImages(imgurls)
|
||||
//设置指示器位置(当banner模式中有指示器时)
|
||||
mDataBinding.banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR)
|
||||
mDataBinding.banner.setIndicatorGravity(BannerConfig.CENTER)
|
||||
//设置自动轮播,默认为true
|
||||
mDataBinding.banner.isAutoPlay(true)
|
||||
//banner设置方法全部调用完毕时最后调用
|
||||
mDataBinding.banner.start()
|
||||
mDataBinding.banner.setOnBannerListener {
|
||||
when (data[it].type) {
|
||||
"1" -> {
|
||||
|
||||
}
|
||||
"2" -> {
|
||||
context?.let { it1 -> X5WebViewActivity.forward(it1, data[it].url, "") }
|
||||
}
|
||||
"3" -> {
|
||||
viewModel.enterRoom(data[it].aid, "", activity as AppCompatActivity)
|
||||
}
|
||||
"4" -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", data[it].aid)
|
||||
.navigation()
|
||||
}
|
||||
"5" -> {
|
||||
context?.let { it1 ->
|
||||
X5WebViewActivity.forward(
|
||||
it1,
|
||||
data[it].url + "?login_token=" + UserManager.user.login_token,
|
||||
""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mDataBinding.banner.setOnClickListener {
|
||||
when (data[0].type) {
|
||||
"1" -> {
|
||||
|
||||
}
|
||||
"2" -> {
|
||||
context?.let { it1 -> X5WebViewActivity.forward(it1, data[0].url, "") }
|
||||
}
|
||||
"3" -> {
|
||||
viewModel.enterRoom(data[0].aid, "", activity as AppCompatActivity)
|
||||
}
|
||||
"4" -> {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", data[0].aid)
|
||||
.navigation()
|
||||
}
|
||||
"5" -> {
|
||||
context?.let { it1 ->
|
||||
X5WebViewActivity.forward(
|
||||
it1,
|
||||
data[0].url + "?login_token=" + UserManager.user.login_token,
|
||||
""
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun getHotMap(): MutableMap<String, String> {
|
||||
val map: MutableMap<String, String> = HashMap()
|
||||
map["tid"] = Const.ROOM_TYPE
|
||||
map["is_hot"] = "2"
|
||||
map["page"] = page.toString()
|
||||
return map
|
||||
}
|
||||
|
||||
|
||||
private fun getTopMap(): MutableMap<String, String> {
|
||||
val map: MutableMap<String, String> = HashMap()
|
||||
map["tid"] = Const.ROOM_TYPE
|
||||
map["is_top"] = "2"
|
||||
map["page"] = "1"
|
||||
return map
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.yuyin.mier.module_home.tab.home
|
||||
|
||||
import android.content.Intent
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.yuyin.lib_base.adapter.MyPagerAdapter
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.FragmentHomeMainBinding
|
||||
import com.yuyin.mier.module_home.model.HomeScene
|
||||
import com.yuyin.mier.search.SearchHisActivity
|
||||
import com.yuyin.mier.view.SceneDialog
|
||||
import kotlinx.android.synthetic.main.fragment_home_main.*
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
|
||||
class MainHomeFragment : BaseDataBindingFragment<MainHomeViewModel, FragmentHomeMainBinding>() {
|
||||
private val titleList: ArrayList<String> = ArrayList()
|
||||
private val mFragments: ArrayList<Fragment> = ArrayList()
|
||||
private var mAdapter: MyPagerAdapter? = null
|
||||
override fun startObserve() {
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_home_main
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
titleList.add("推荐")
|
||||
mFragments.add(HomeFragment.getInstance("1"))
|
||||
titleList.add("在线")
|
||||
mFragments.add(HomeFragment.getInstance("2"))
|
||||
mAdapter = MyPagerAdapter(childFragmentManager, mFragments, titleList)
|
||||
view_pager.adapter = mAdapter
|
||||
tab_layout.setViewPager(view_pager)
|
||||
tab_layout.setSnapOnTabClick(true)
|
||||
view_pager.offscreenPageLimit = mFragments.size
|
||||
tab_layout.currentTab = 1
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
mDataBinding.scene.setOnClickListener {
|
||||
|
||||
var sceneDialog = SceneDialog(requireContext())
|
||||
|
||||
sceneDialog.setOnReturnSectListener(object : SceneDialog.OnReturnSectListener {
|
||||
override fun getType(sex_type: String, age_type: String) {
|
||||
EventBus.getDefault().post(HomeScene(sex_type, age_type))
|
||||
}
|
||||
})
|
||||
|
||||
sceneDialog.show()
|
||||
|
||||
|
||||
}
|
||||
|
||||
mDataBinding.search.setOnClickListener {
|
||||
|
||||
startActivity(Intent(requireContext(), SearchHisActivity::class.java))
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.yuyin.mier.module_home.tab.home
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.module_home.model.RoomZoneList
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class MainHomeViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
var roomZoneList = MutableLiveData<ArrayList<RoomZoneList>>()
|
||||
|
||||
fun get_room_zone_list(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
var result = repository.get_room_zone_list(map)
|
||||
roomZoneList.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.yuyin.mier.module_home.tab.home.teen
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.WindowManager
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.DialogAdolescentModelBinding
|
||||
|
||||
class AdolescentModelDialog(context: Context) : Dialog(context) {
|
||||
private lateinit var binding: DialogAdolescentModelBinding
|
||||
|
||||
init {
|
||||
|
||||
initDialog()
|
||||
}
|
||||
|
||||
private fun initDialog() {
|
||||
|
||||
val inflater = LayoutInflater.from(context)
|
||||
binding = DataBindingUtil.inflate(inflater, R.layout.dialog_adolescent_model, null, false)
|
||||
setContentView(binding.root)
|
||||
val win = this.window
|
||||
val params = win?.attributes
|
||||
params?.gravity = Gravity.CENTER
|
||||
params?.width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
params?.height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
win?.attributes = params
|
||||
win?.setBackgroundDrawableResource(android.R.color.transparent)
|
||||
|
||||
initView()
|
||||
}
|
||||
|
||||
|
||||
fun getBinding(): DialogAdolescentModelBinding {
|
||||
|
||||
return binding
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.yuyin.mier.module_home.tab.home.teen
|
||||
|
||||
import com.yuyin.lib_base.Const
|
||||
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.ui.X5WebViewActivity
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityTeenModeBinding
|
||||
|
||||
class TeenModeActivity : BaseDataBindingActivity<TeenModeViewModel, ActivityTeenModeBinding>() {
|
||||
|
||||
|
||||
lateinit var passwordDialog: TeenPasswordDialog
|
||||
override fun startObserve() {
|
||||
|
||||
viewModel.userInfoData.observe(this) {
|
||||
|
||||
if (it.is_teenager == 1) {
|
||||
mDataBinding.tvOpen.text = "关闭"
|
||||
mDataBinding.tvTeenType.text = "青少年模式已开启"
|
||||
mDataBinding.ivIcon.setImageResource(R.mipmap.teen_model_ic2)
|
||||
passwordDialog = TeenPasswordDialog(this,1,viewModel)
|
||||
} else {
|
||||
mDataBinding.tvOpen.text = "开启"
|
||||
mDataBinding.tvTeenType.text = "青少年模式已关闭"
|
||||
mDataBinding.ivIcon.setImageResource(R.mipmap.teen_model_ic)
|
||||
passwordDialog = TeenPasswordDialog(this,0,viewModel)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.activity_teen_mode
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
// mDataBinding.toolbar.findViewById<TextView>(R.id.tv_main_title).text = "青少年模式"
|
||||
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
viewModel.loadUserInfo()
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
// mDataBinding.changePsd.setOnClickListener {
|
||||
//
|
||||
// val intent = Intent(this, TeenModeChangeActivity::class.java)
|
||||
// intent.putExtra("type", "2")
|
||||
// ActivityUtils.startActivity(intent)
|
||||
//
|
||||
// }
|
||||
//
|
||||
|
||||
mDataBinding.tvAgreement.setOnClickListener {
|
||||
X5WebViewActivity.forward(this, Const.PAGE_ERTONG, "《语音儿童个人信息保护规则》")
|
||||
|
||||
}
|
||||
|
||||
|
||||
mDataBinding.tvOpen.setOnClickListener {
|
||||
//
|
||||
// if (viewModel.userInfoData.value?.is_real == "2") {
|
||||
// "未实名认证不能开启青少年模式".showToast()
|
||||
// return@setOnClickListener
|
||||
// }
|
||||
|
||||
//
|
||||
if (!mDataBinding.checkbox.isChecked) {
|
||||
"请同意儿童个人信息保护规则".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
passwordDialog.show()
|
||||
|
||||
// val intent = Intent(this, TeenModeChangeActivity::class.java)
|
||||
// if (mDataBinding.tvTeenType.text.toString() == "青少年模式已关闭") {
|
||||
// intent.putExtra("type", "1")
|
||||
// } else {
|
||||
// intent.putExtra("type", "3")
|
||||
// }
|
||||
// ActivityUtils.startActivity(intent)
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
package com.yuyin.mier.module_home.tab.home.teen
|
||||
|
||||
import android.content.Intent
|
||||
import com.blankj.utilcode.util.ActivityUtils
|
||||
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityTeenModeChangeBinding
|
||||
|
||||
class TeenModeChangeActivity :
|
||||
BaseDataBindingActivity<TeenModeViewModel, ActivityTeenModeChangeBinding>() {
|
||||
|
||||
private var type = ""
|
||||
|
||||
private var set_pass = ""
|
||||
|
||||
private var confirm_pass = ""
|
||||
|
||||
private var old_pass = ""
|
||||
|
||||
private var new_pass = ""
|
||||
|
||||
private var close_pass = ""
|
||||
|
||||
override fun startObserve() {
|
||||
/*viewModel.success.observe(this) {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
finish()
|
||||
}*/
|
||||
|
||||
|
||||
viewModel.verifySucceeded.observe(this) {
|
||||
// ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
// finish()
|
||||
val intent = Intent(this, TeenModeChangeActivity::class.java)
|
||||
intent.putExtra("type", "1")
|
||||
ActivityUtils.startActivity(intent)
|
||||
}
|
||||
|
||||
/*viewModel.getError().observe(this){
|
||||
if (it is ApiException){
|
||||
if (it.code == 201){
|
||||
mDataBinding.etContent.clear()
|
||||
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.activity_teen_mode_change
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
type = intent.getStringExtra("type").toString()
|
||||
/*when (type) {
|
||||
"1" -> {
|
||||
mDataBinding.tvTop.text = "设置密码"
|
||||
mDataBinding.tvPassTip.text = "关闭青少年模式时,需输入该密码"
|
||||
}
|
||||
"2" -> {
|
||||
mDataBinding.tvTop.text = "验证密码"
|
||||
mDataBinding.llComplaint.visibility = View.VISIBLE
|
||||
mDataBinding.pass.visibility = View.GONE
|
||||
mDataBinding.tvPassTip.text = "关闭青少年模式,请输入开启时设置的密码"
|
||||
}
|
||||
else -> {
|
||||
mDataBinding.tvTop.text = "验证密码"
|
||||
mDataBinding.llComplaintTip.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
/*mDataBinding.etContent.setOnInputFinishListener {
|
||||
|
||||
if (type == "1") {
|
||||
|
||||
if (mDataBinding.tvTitle.text.toString() == "输入密码") {
|
||||
set_pass = mDataBinding.etContent.content
|
||||
mDataBinding.tvTitle.text = "确认密码"
|
||||
mDataBinding.etContent.clear()
|
||||
} else {
|
||||
confirm_pass = mDataBinding.etContent.content
|
||||
viewModel.open_teen_mode("1", set_pass, set_pass)
|
||||
}
|
||||
|
||||
} else if (type == "2") {
|
||||
|
||||
if (mDataBinding.tvTitle.text.toString() == "请输入旧密码") {
|
||||
old_pass = mDataBinding.etContent.content
|
||||
mDataBinding.tvTitle.text = "请输入新密码"
|
||||
mDataBinding.etContent.clear()
|
||||
} else {
|
||||
new_pass = mDataBinding.etContent.content
|
||||
viewModel.open_teen_mode("2", new_pass, old_pass)
|
||||
}
|
||||
|
||||
} else {
|
||||
if (mDataBinding.tvTitle.text.toString() == "输入密码") {
|
||||
close_pass = mDataBinding.etContent.content
|
||||
viewModel.close_teen_mode("1", close_pass)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}*/
|
||||
|
||||
/*mDataBinding.tvComplaint.setOnClickListener {
|
||||
val intent = Intent(this, TeenModeChangeActivity::class.java)
|
||||
intent.putExtra("type", "2")
|
||||
ActivityUtils.startActivity(intent)
|
||||
|
||||
}*/
|
||||
|
||||
mDataBinding.tvNext.setOnClickListener {
|
||||
|
||||
if (mDataBinding.etNickname.text.isEmpty()) {
|
||||
|
||||
"请输入真实姓名".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
if (mDataBinding.etCard.text.isEmpty()) {
|
||||
"请输入身份证号".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
viewModel.edit_teen_mode(
|
||||
mDataBinding.etCard.text.toString(),
|
||||
mDataBinding.etNickname.text.toString(),
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.yuyin.mier.module_home.tab.home.teen
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class TeenModeViewModel : BaseViewModel() {
|
||||
|
||||
private val repository = CommonRepository()
|
||||
|
||||
|
||||
var success = MutableLiveData<Any>()
|
||||
|
||||
fun open_teen_mode(
|
||||
type: String,
|
||||
password: String,
|
||||
again_password: String
|
||||
) {
|
||||
launchUI {
|
||||
val result = repository.open_teen_mode(type, password, again_password)
|
||||
result.msg.showToast()
|
||||
success.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun close_teen_mode(
|
||||
type: String,
|
||||
password: String,
|
||||
) {
|
||||
launchUI {
|
||||
val result = repository.close_teen_mode(type, password)
|
||||
result.msg.showToast()
|
||||
success.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val verifySucceeded = MutableLiveData<Any>()
|
||||
fun edit_teen_mode(
|
||||
card_id: String,
|
||||
real_name: String,
|
||||
) {
|
||||
launchUI {
|
||||
val result = repository.edit_teen_mode(card_id, real_name)
|
||||
verifySucceeded.value = result.data
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
package com.yuyin.mier.module_home.tab.home.teen
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Intent
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import com.blankj.utilcode.util.ActivityUtils
|
||||
import com.yuyin.lib_base.http.ApiException
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.DialogTeenPasswordBinding
|
||||
|
||||
class TeenPasswordDialog(val context: TeenModeActivity, val mType: Int, val viewModel: TeenModeViewModel) :
|
||||
Dialog(context) {
|
||||
private lateinit var binding: DialogTeenPasswordBinding
|
||||
|
||||
init {
|
||||
initDialog()
|
||||
}
|
||||
|
||||
private fun initDialog() {
|
||||
val inflater = LayoutInflater.from(context)
|
||||
binding = DataBindingUtil.inflate(inflater, R.layout.dialog_teen_password, null, false)
|
||||
setContentView(binding.root)
|
||||
val win = this.window
|
||||
val params = win?.attributes
|
||||
params?.gravity = Gravity.CENTER
|
||||
params?.width = WindowManager.LayoutParams.MATCH_PARENT
|
||||
params?.height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
win?.attributes = params
|
||||
win?.setBackgroundDrawableResource(android.R.color.transparent)
|
||||
initView()
|
||||
}
|
||||
|
||||
|
||||
fun getBinding(): DialogTeenPasswordBinding {
|
||||
return binding
|
||||
}
|
||||
|
||||
private fun initView() {
|
||||
viewModel.success.observe(context){
|
||||
dismiss()
|
||||
context.finish()
|
||||
}
|
||||
viewModel.getError().observe(context) {
|
||||
if (it is ApiException) {
|
||||
if (it.code == 201) {
|
||||
binding.etContent.clear()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (mType == 0) {
|
||||
binding.tv1.visibility = View.VISIBLE
|
||||
binding.llComplaintTip.visibility = View.GONE
|
||||
binding.tvTitle.text = "请设置密码开启"
|
||||
} else {
|
||||
binding.tv1.visibility = View.GONE
|
||||
binding.llComplaintTip.visibility = View.VISIBLE
|
||||
binding.tvTitle.text = "请输入密码关闭"
|
||||
|
||||
binding.tvComplaint.setOnClickListener {
|
||||
val intent = Intent(context, TeenModeChangeActivity::class.java)
|
||||
intent.putExtra("type", "2")
|
||||
ActivityUtils.startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
binding.btnAgree.setOnClickListener {
|
||||
var set_pass = binding.etContent.content
|
||||
if (set_pass.isEmpty() || set_pass.length < 4) {
|
||||
"请输入密码".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
|
||||
if (mType == 0) {
|
||||
viewModel.open_teen_mode("1", set_pass, set_pass)
|
||||
} else {
|
||||
viewModel.close_teen_mode("1", set_pass)
|
||||
}
|
||||
}
|
||||
binding.btnRefuse.setOnClickListener {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.yuyin.mier.module_home.tab.my
|
||||
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
|
||||
class MainMyViewModel : BaseViewModel() {
|
||||
}
|
||||
@@ -0,0 +1,249 @@
|
||||
package com.yuyin.mier.module_home.tab.my
|
||||
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.blankj.utilcode.util.ClipboardUtils
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.UserBean
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.lib_base.view.WebViewActivity
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.MyListAdapter
|
||||
import com.yuyin.mier.adapter.MyListAdapter2
|
||||
import com.yuyin.mier.databinding.FragmentMyBinding
|
||||
import com.yuyin.mier.module_home.tab.center.MainCenterViewModel
|
||||
import com.yuyin.mier.module_home.tab.center.sign.SginDialog
|
||||
import com.yuyin.mier.module_my.YaoQingActivity
|
||||
import com.yuyin.mier.module_my.auction.SignedArtistActivity
|
||||
import com.yuyin.mier.module_my.cp.CPActivity
|
||||
import com.yuyin.mier.module_my.edituser.ModifyDataActivity
|
||||
import com.yuyin.mier.module_my.peerage.PeerageActivity
|
||||
import com.yuyin.mier.module_my.room.MyRoomActivity
|
||||
import com.yuyin.mier.module_my.set.WxKeFuAt
|
||||
import com.yuyin.mier.module_my.vip.VipActivity
|
||||
import kotlinx.android.synthetic.main.activity_user_homepage.*
|
||||
import kotlinx.android.synthetic.main.fragment_my.*
|
||||
|
||||
class MyFragment : BaseDataBindingFragment<MainCenterViewModel, FragmentMyBinding>() {
|
||||
private lateinit var mAdapter: MyListAdapter
|
||||
private lateinit var mAdapter2: MyListAdapter2
|
||||
private var mUserBean: UserBean? = null
|
||||
override fun startObserve() {
|
||||
viewModel.userInfoData.observe(this) {
|
||||
App.guild_id = it.guild_id
|
||||
App.rid = it.rid
|
||||
mUserBean = it
|
||||
|
||||
loadImage(mDataBinding.ivHead, it.head_pic, R.mipmap.ic_launcher_app)
|
||||
|
||||
// loadImage(mDataBinding.ivCover, it.head_pic, R.mipmap.ic_launcher_app)
|
||||
|
||||
loadImage(mDataBinding.ivJuewei, it.nobility_image)
|
||||
|
||||
if (it.nobility_image.isNotEmpty()) {
|
||||
mDataBinding.ivJuewei.visibility = View.VISIBLE
|
||||
} else {
|
||||
mDataBinding.ivJuewei.visibility = View.GONE
|
||||
}
|
||||
|
||||
mDataBinding.textCP.text = it.cp_num.toString()
|
||||
|
||||
loadImage(
|
||||
mDataBinding.ivGongxian, it.contribution_level_image, R.mipmap.no_tu
|
||||
)
|
||||
|
||||
loadImage(
|
||||
mDataBinding.ivMeili, it.charm_level_image, R.mipmap.no_tu
|
||||
)
|
||||
// if (it.is)
|
||||
if (it.vid > 0) {
|
||||
mDataBinding.vipIsOpen.setBackgroundResource(R.mipmap.my_peeg2)
|
||||
} else {
|
||||
mDataBinding.vipIsOpen.setBackgroundResource(R.mipmap.my_peeg)
|
||||
}
|
||||
|
||||
mDataBinding.ivUsername.text = it.nick_name
|
||||
if (it.special_uid == "0") {
|
||||
mDataBinding.textVip.text = "" + it.uid
|
||||
loadImage(mDataBinding.ivLianghao, R.mipmap.common_id_img1)
|
||||
} else {
|
||||
mDataBinding.textVip.text = "ID:" + it.special_uid
|
||||
loadImage(mDataBinding.ivLianghao, R.mipmap.common_id_img2)
|
||||
}
|
||||
mDataBinding.textCollection.text = it.follow_num
|
||||
mDataBinding.textFans.text = it.fans_num
|
||||
mDataBinding.textShouCang.text = it.collect_room_num
|
||||
}
|
||||
|
||||
viewModel.signDayList.observe(this) {
|
||||
SginDialog(context as AppCompatActivity,viewModel,it).show()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_my
|
||||
|
||||
override fun initView() {
|
||||
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
viewModel.loadUserInfo()
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
mAdapter = MyListAdapter()
|
||||
mAdapter.setNewData(Const.myList1)
|
||||
mDataBinding.recyclerView1.layoutManager = GridLayoutManager(context, 4)
|
||||
mDataBinding.recyclerView1.adapter = mAdapter
|
||||
|
||||
mAdapter2 = MyListAdapter2()
|
||||
mAdapter2.setNewData(Const.myList2)
|
||||
mDataBinding.recyclerView2.layoutManager = GridLayoutManager(context, 2)
|
||||
mDataBinding.recyclerView2.adapter = mAdapter2
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
|
||||
mDataBinding.setVariable(BR.act, this)
|
||||
|
||||
|
||||
mDataBinding.ivEdit.setOnClickListener {
|
||||
// ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
// .withString("from_id", UserManager.user.uid.toString()).navigation()
|
||||
startActivity(Intent(requireContext(), ModifyDataActivity::class.java))
|
||||
}
|
||||
|
||||
mDataBinding.ivUsername.setOnClickListener {
|
||||
startActivity(Intent(requireContext(), ModifyDataActivity::class.java))
|
||||
}
|
||||
|
||||
mDataBinding.ivHead.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", UserManager.user.uid.toString()).navigation()
|
||||
}
|
||||
|
||||
|
||||
mDataBinding.ivCopy.setOnClickListener {
|
||||
ClipboardUtils.copyText(viewModel.userInfoData.value!!.uid.toString())
|
||||
"复制成功".showToast()
|
||||
}
|
||||
|
||||
mAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
if (mAdapter.getItem(position) == null) return@setOnItemClickListener
|
||||
val title = mAdapter.getItem(position)!!.title
|
||||
listClick(title)
|
||||
}
|
||||
mAdapter2.setOnItemClickListener { adapter, view, position ->
|
||||
if (mAdapter2.getItem(position) == null) return@setOnItemClickListener
|
||||
val title = mAdapter2.getItem(position)!!.title
|
||||
listClick(title)
|
||||
}
|
||||
|
||||
mDataBinding.ivAdd.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", UserManager.user.uid.toString()).navigation()
|
||||
}
|
||||
|
||||
mDataBinding.ivSetting.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.MY_COMM_SET).navigation()
|
||||
}
|
||||
mDataBinding.ivQiandao.setOnClickListener {
|
||||
viewModel.user_day_sign_log()
|
||||
}
|
||||
}
|
||||
|
||||
open fun listClick(title: String) {
|
||||
when (title) {
|
||||
"我的房间" -> {
|
||||
if (mUserBean == null) return
|
||||
when (mUserBean!!.is_real) {
|
||||
"2" -> ARouter.getInstance().build(AroutUtil.PLAY_REAL_NAME).navigation()
|
||||
"1" -> {
|
||||
// if (mUserBean!!.rid == "0") {
|
||||
// "房间信息读取失败...".showToast()
|
||||
// } else {
|
||||
|
||||
|
||||
// viewModel.enterRoom(mUserBean!!.rid, "", activity as AppCompatActivity)
|
||||
// }
|
||||
|
||||
startActivity(Intent(requireContext(),MyRoomActivity::class.java))
|
||||
}
|
||||
"3" -> "实名认证审核中...".showToast()
|
||||
}
|
||||
}
|
||||
"我的装扮" -> ARouter.getInstance().build(AroutUtil.MY_COMM_ZHUANGBAN).navigation()
|
||||
"装扮商城" -> ARouter.getInstance().build(AroutUtil.MY_COMM_ZHUANGBAN_SHANGCHENG)
|
||||
.navigation()
|
||||
"实名认证" -> {
|
||||
if (mUserBean == null) return
|
||||
when (mUserBean!!.is_real) {
|
||||
"2" -> ARouter.getInstance().build(AroutUtil.PLAY_REAL_NAME).navigation()
|
||||
"1" -> "已认证...".showToast()
|
||||
"3" -> "实名认证审核中...".showToast()
|
||||
}
|
||||
}
|
||||
"我的钱包" -> ARouter.getInstance().build(AroutUtil.MAIN_MY_MONEY).navigation()
|
||||
"我的等级" -> ARouter.getInstance().build(AroutUtil.MY_COMM_DENGJI).withString("type", "0")
|
||||
.navigation()
|
||||
"魅力等级" -> ARouter.getInstance().build(AroutUtil.MY_COMM_DENGJI).withString("type", "1")
|
||||
.navigation()
|
||||
"等级" -> ARouter.getInstance().build(AroutUtil.MY_COMM_DENGJI).navigation()
|
||||
|
||||
"礼物记录" -> ARouter.getInstance().build(AroutUtil.MAIN_MY_GIFT_LOG)
|
||||
.withString("type", "1").withString("title", "礼物收入记录").navigation()
|
||||
"赠送记录" -> ARouter.getInstance().build(AroutUtil.MAIN_MY_GIFT_LOG)
|
||||
.withString("type", "2").withString("title", "礼物赠送记录").navigation()
|
||||
"帮助反馈" -> ARouter.getInstance().build(AroutUtil.MY_COMM_FEEDBACK).navigation()
|
||||
"系统设置" -> ARouter.getInstance().build(AroutUtil.MY_COMM_SET).navigation()
|
||||
"我的公会" -> ARouter.getInstance().build(AroutUtil.GHMainActivity).navigation()
|
||||
"邀请好友" -> {
|
||||
var intent = Intent(activity, YaoQingActivity::class.java)
|
||||
intent.putExtra("reg_code", mUserBean?.reg_code)
|
||||
intent.putExtra("reg_url", mUserBean?.reg_url)
|
||||
startActivity(intent)
|
||||
}
|
||||
//
|
||||
"关注" -> ARouter.getInstance().build(AroutUtil.LIB_FOLLOW_FANS).withInt("selectTab", 0)
|
||||
.navigation()
|
||||
"粉丝" -> ARouter.getInstance().build(AroutUtil.LIB_FOLLOW_FANS).withInt("selectTab", 1)
|
||||
.navigation()
|
||||
"收藏" -> ARouter.getInstance().build(AroutUtil.MAIN_MY_SHOUCANG).navigation()
|
||||
"我的爵位" -> {
|
||||
startActivity(Intent(requireContext(), PeerageActivity::class.java))
|
||||
}
|
||||
"CP" -> {
|
||||
startActivity(Intent(requireContext(), CPActivity::class.java))
|
||||
}
|
||||
"开通会员" -> {
|
||||
startActivity(Intent(requireContext(), VipActivity::class.java))
|
||||
}
|
||||
|
||||
"签约艺人" -> {
|
||||
startActivity(Intent(requireContext(), SignedArtistActivity::class.java))
|
||||
}
|
||||
"在线客服" ->{
|
||||
startActivity(Intent(requireContext(), WebViewActivity::class.java))
|
||||
}
|
||||
"签到" ->{
|
||||
viewModel.user_day_sign_log()
|
||||
}
|
||||
"入驻联系运营" ->{
|
||||
startActivity(Intent(requireContext(), WxKeFuAt::class.java))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.yuyin.mier.module_home.tab.xiaoxi
|
||||
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.tencent.qcloud.tuikit.tuiconversation.classicui.page.TUIConversationFragment
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.view.WebViewActivity
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.MsgAdapter
|
||||
|
||||
import kotlinx.android.synthetic.main.fragment_message.*
|
||||
|
||||
class MessageFragment : BaseDataBindingFragment<BaseViewModel, ViewDataBinding>() {
|
||||
private lateinit var msgAdapter: MsgAdapter
|
||||
override fun startObserve() {
|
||||
viewModel.messageCount.observe(this) {
|
||||
if (it.system_no_read_count > 0) {
|
||||
system_num.visibility = View.VISIBLE
|
||||
system_num.text = it.system_no_read_count.toString()
|
||||
tv_content.text = it.system_last_message.title
|
||||
} else {
|
||||
system_num.visibility = View.GONE
|
||||
system_num.text = ""
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_message
|
||||
|
||||
override fun initView() {
|
||||
val conversationListFragment = TUIConversationFragment()
|
||||
val manager: FragmentManager = childFragmentManager
|
||||
val transaction: FragmentTransaction = manager.beginTransaction()
|
||||
transaction.replace(R.id.container, conversationListFragment as Fragment)
|
||||
transaction.commit()
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
// container.layoutManager = LinearLayoutManager(requireContext())
|
||||
// msgAdapter = MsgAdapter()
|
||||
// container.adapter = msgAdapter
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
// setConversationListener()
|
||||
viewModel.get_user_message_cover_info()
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
iv_guanzhu.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.LIB_FOLLOW_FANS).withInt("selectTab", 0)
|
||||
.navigation()
|
||||
}
|
||||
iv_fensi.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.LIB_FOLLOW_FANS).withInt("selectTab", 1)
|
||||
.navigation()
|
||||
}
|
||||
iv_black.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.BLACK_LIST).navigation()
|
||||
}
|
||||
gf.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MESSAGE_OFFICE).navigation()
|
||||
}
|
||||
kf.setOnClickListener {
|
||||
startActivity(Intent(requireContext(), WebViewActivity::class.java))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.yuyin.mier.module_home.tab.xiaoxi.black
|
||||
|
||||
import com.bumptech.glide.Glide
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.BlackBean
|
||||
import java.util.*
|
||||
|
||||
class BlackAdapter :
|
||||
BaseQuickAdapter<BlackBean, BaseViewHolder>(R.layout.item_black, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: BlackBean) {
|
||||
Glide.with(mContext).load(item.head_pic).into(helper.getView(R.id.v_img))
|
||||
helper
|
||||
.setText(R.id.tv_title, item.nick_name)
|
||||
.setText(R.id.tv_title2, "" + item.uid)
|
||||
helper.addOnClickListener(R.id.tv_enter)
|
||||
|
||||
if (item.sex == "") {
|
||||
helper.setImageResource(R.id.iv_sex, R.mipmap.login_reg_nan1)
|
||||
} else {
|
||||
helper.setImageResource(R.id.iv_sex, R.mipmap.login_reg_nv1)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.yuyin.mier.module_home.tab.xiaoxi.black
|
||||
|
||||
import android.view.View
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.arouter.AroutUtil.BLACK_LIST
|
||||
import com.yuyin.lib_base.base.BaseActivity
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.BlackBean
|
||||
import kotlinx.android.synthetic.main.activity_black_list.*
|
||||
|
||||
@Route(path = BLACK_LIST)
|
||||
class BlackListActivity : BaseActivity<BlackListViewModel>() {
|
||||
private lateinit var blackAdapter: BlackAdapter
|
||||
override fun startObserve() {
|
||||
viewModel.blackData.observe(this) {
|
||||
if (it.room_visitor_list.isEmpty() && it.room_black_list.isEmpty()) {
|
||||
ll_nodata.visibility = View.VISIBLE
|
||||
} else {
|
||||
ll_nodata.visibility = View.GONE
|
||||
}
|
||||
|
||||
val blackBean = ArrayList<BlackBean>()
|
||||
blackBean.addAll(it.room_black_list)
|
||||
blackBean.addAll(it.room_visitor_list)
|
||||
blackAdapter.setNewData(blackBean)
|
||||
|
||||
}
|
||||
viewModel.removeData.observe(this) {
|
||||
viewModel.get_blacklist()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_black_list
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
blackAdapter = BlackAdapter()
|
||||
recyclerview.layoutManager = LinearLayoutManager(this)
|
||||
recyclerview.adapter = blackAdapter
|
||||
viewModel.get_blacklist()
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
blackAdapter.setOnItemChildClickListener { adapter, view, position ->
|
||||
if (view.id == R.id.tv_enter) {
|
||||
viewModel.remove_blacklist(blackAdapter.data[position].uid)
|
||||
}
|
||||
}
|
||||
blackAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE).withString("from_id",
|
||||
blackAdapter.data[position].uid).navigation()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.yuyin.mier.module_home.tab.xiaoxi.black
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.module_home.model.BlackList
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class BlackListViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
var blackData = MutableLiveData<BlackList>()
|
||||
var removeData = MutableLiveData<Any>()
|
||||
|
||||
fun get_blacklist() {
|
||||
launchUI {
|
||||
val result = repository.get_blacklist()
|
||||
blackData.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun remove_blacklist(uid: String) {
|
||||
launchUI {
|
||||
val result = repository.remove_blacklist(uid)
|
||||
removeData.value = result.data
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.yuyin.mier.module_home.tab.xiaoxi.xitong
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.module_home.model.OffiMessageBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class MessageGFViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
var offiMessageData = MutableLiveData<List<OffiMessageBean>>()
|
||||
|
||||
fun loadData(type: String, page: Int) {
|
||||
launchUI {
|
||||
var data = repository.official_message(type, page.toString())
|
||||
offiMessageData.value = data.data
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.yuyin.mier.module_home.tab.xiaoxi.xitong
|
||||
|
||||
import android.view.View
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.yuyin.lib_base.arouter.AroutUtil.MAIN_MESSAGE_OFFICE
|
||||
import com.yuyin.lib_base.base.BaseActivity
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.OfficeListAdapter
|
||||
import kotlinx.android.synthetic.main.activity_message_office.*
|
||||
|
||||
@Route(path = MAIN_MESSAGE_OFFICE)
|
||||
class MessageOfficeActivity : BaseActivity<MessageGFViewModel>() {
|
||||
|
||||
private var page = 1
|
||||
|
||||
private var officeListAdapter: OfficeListAdapter? = null
|
||||
override fun startObserve() {
|
||||
viewModel.getFinally().observe(this) {
|
||||
smart.finishRefresh()
|
||||
smart.finishLoadMore()
|
||||
}
|
||||
viewModel.offiMessageData.observe(this) {
|
||||
if (officeListAdapter == null) return@observe
|
||||
if (page == 1 && it.isEmpty()) {
|
||||
ll_nodata.visibility = View.VISIBLE
|
||||
} else {
|
||||
ll_nodata.visibility = View.GONE
|
||||
}
|
||||
if (page == 1) {
|
||||
officeListAdapter!!.setNewData(it)
|
||||
} else {
|
||||
officeListAdapter!!.data.addAll(it)
|
||||
officeListAdapter!!.notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_message_office
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
officeListAdapter = OfficeListAdapter()
|
||||
recyclerview.layoutManager = LinearLayoutManager(this)
|
||||
recyclerview.adapter = officeListAdapter
|
||||
viewModel.loadData("1", page)
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
smart.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
|
||||
override fun onLoadMore(refreshLayout: RefreshLayout) {
|
||||
page++
|
||||
viewModel.loadData("1", page)
|
||||
}
|
||||
|
||||
override fun onRefresh(refreshLayout: RefreshLayout) {
|
||||
page = 1
|
||||
viewModel.loadData("1", page)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yuyin.mier.module_login.ui
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentTransaction
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_login.ui.forget.ForgotFragment
|
||||
import com.yuyin.mier.module_login.ui.forget.ForgotFragment2
|
||||
|
||||
class ForgetActivity : AppCompatActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_forget)
|
||||
val conversationListFragment = ForgotFragment.newInstance("1")
|
||||
val manager: FragmentManager = supportFragmentManager
|
||||
val transaction: FragmentTransaction = manager.beginTransaction()
|
||||
transaction.replace(R.id.container, conversationListFragment as Fragment)
|
||||
transaction.commit()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.yuyin.mier.module_login.ui
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import android.os.Bundle
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.yuyin.lib_base.arouter.AroutUtil.LOGIN_MAIN
|
||||
import com.yuyin.mier.R
|
||||
|
||||
@Route(path = LOGIN_MAIN)
|
||||
class ModuleLoginMainActivity : AppCompatActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_module_login_main)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.yuyin.mier.module_login.ui.bindZL
|
||||
|
||||
import android.graphics.Color
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.bigkoo.pickerview.builder.TimePickerBuilder
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityBindZlBinding
|
||||
import com.yuyin.mier.module_my.edituser.ModifyDataViewModel
|
||||
|
||||
import kotlinx.android.synthetic.main.activity_bind_zl.*
|
||||
import org.litepal.LitePal
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
|
||||
class BindZLActivity : BaseDataBindingActivity<ModifyDataViewModel, ActivityBindZlBinding>() {
|
||||
|
||||
var saxString = "1"
|
||||
private var startDate: Calendar = Calendar.getInstance()
|
||||
private var endDate: Calendar = Calendar.getInstance()
|
||||
private var seleteDate: Calendar = Calendar.getInstance()
|
||||
private var nowDate: String = ""
|
||||
override fun startObserve() {
|
||||
|
||||
viewModel.editFinish.observe(this) {
|
||||
|
||||
var login = LitePal.findFirst(Login::class.java)
|
||||
login.nick_name = it.nick_name
|
||||
login.head_pic = it.head_pic
|
||||
login.save()
|
||||
UserManager.initData()
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_bind_zl
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
flNan.setOnClickListener {
|
||||
saxString = "1"
|
||||
tvNan.setTextColor(Color.parseColor("#ffffffff"))
|
||||
tvNv.setTextColor(Color.parseColor("#979BA1"))
|
||||
flNv.background = resources.getDrawable(R.drawable.shape_white_bg10_5)
|
||||
flNan.background = resources.getDrawable(R.drawable.shape_white_bg10_6)
|
||||
iv_woman.setImageResource(R.mipmap.login_reg_nv1)
|
||||
|
||||
}
|
||||
|
||||
flNv.setOnClickListener {
|
||||
saxString = "2"
|
||||
tvNan.setTextColor(Color.parseColor("#979BA1"))
|
||||
tvNv.setTextColor(Color.parseColor("#ffffffff"))
|
||||
flNan.background = resources.getDrawable(R.drawable.shape_white_bg10_5)
|
||||
flNv.background = resources.getDrawable(R.drawable.shape_white_bg10_6)
|
||||
iv_man.setImageResource(R.mipmap.login_reg_nan1)
|
||||
}
|
||||
|
||||
tv_birthday.setOnClickListener {
|
||||
|
||||
|
||||
val string = getTimeYmd()
|
||||
val timeYmd: String = getTimeYmd()
|
||||
val split1 = string.split("-".toRegex()).toTypedArray()
|
||||
val split = timeYmd.split("-".toRegex()).toTypedArray()
|
||||
startDate.set(1900, 0, 1)
|
||||
try {
|
||||
endDate.set(split[0].toInt(), split[1].toInt() - 1, split[2].toInt())
|
||||
} catch (e: NumberFormatException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
// try {
|
||||
// seleteDate.set(split1[0].toInt(), split1[1].toInt() - 1, split1[2].toInt())
|
||||
// } catch (e: NumberFormatException) {
|
||||
// e.printStackTrace()
|
||||
// }
|
||||
seleteDate.set(2001, 1, 1)
|
||||
|
||||
val pvTime = TimePickerBuilder(
|
||||
this
|
||||
|
||||
) { date, _ ->
|
||||
if (date != null) {
|
||||
nowDate = getNowDate(date)
|
||||
tv_birthday.text = nowDate
|
||||
}
|
||||
}
|
||||
.setRangDate(startDate, endDate)
|
||||
.setDate(seleteDate)
|
||||
.build()
|
||||
pvTime.show()
|
||||
|
||||
}
|
||||
|
||||
|
||||
btn_ok.setOnClickListener {
|
||||
viewModel.editUserInfo(
|
||||
"",
|
||||
et_name.text.toString(),
|
||||
saxString,
|
||||
tv_birthday.text.toString(),
|
||||
"", ""
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun getNowDate(date: Date): String {
|
||||
val formatter = SimpleDateFormat("yyyy-MM-dd")
|
||||
return formatter.format(date)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前时间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private fun getTimeYmd(): String {
|
||||
val date = Date() // 创建一个时间对象,获取到当前的时间
|
||||
val sdf = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA) // 设置时间显示格式
|
||||
sdf.timeZone = TimeZone.getTimeZone("GMT+8")
|
||||
return sdf.format(date)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
package com.yuyin.mier.module_login.ui.forget
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.CountDownTimer
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.navigation.Navigation
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mixin.module_login.ui.GraphicCodeDialog
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import kotlinx.android.synthetic.main.login_forgot_fragment.*
|
||||
import kotlinx.android.synthetic.main.login_fragment.send_code
|
||||
|
||||
class ForgotFragment : BaseDataBindingFragment<ForgotViewModel, ViewDataBinding>() {
|
||||
|
||||
|
||||
companion object {
|
||||
fun newInstance(type: String): ForgotFragment {
|
||||
val fragment = ForgotFragment()
|
||||
val bundle = Bundle()
|
||||
bundle.putString("type", type)
|
||||
fragment.arguments = bundle
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private var timer: CountDownTimer? = null
|
||||
private fun showCode() {
|
||||
timer = object : CountDownTimer(60 * 1000, 1000) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
try {
|
||||
val i = (millisUntilFinished / 1000).toInt()
|
||||
send_code.text = i.toString() + "s"
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
send_code.text = "重新发送"
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
if (timer != null)
|
||||
timer!!.cancel()
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
mDataBinding.setVariable(BR.layout, viewModel)
|
||||
mDataBinding.executePendingBindings()
|
||||
viewModel.getError().observe(this, {
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
})
|
||||
viewModel.sendCode.observe(requireActivity(), {
|
||||
showCode()
|
||||
})
|
||||
viewModel.forgetPwdResult.observe(requireActivity(), {
|
||||
Navigation.findNavController(btn_ok).navigateUp()
|
||||
})
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.login_forgot_fragment
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
iv_back.setOnClickListener {
|
||||
Navigation.findNavController(it).navigateUp()
|
||||
}
|
||||
|
||||
// 调用代码,记得把xml 里面的点击时间去掉
|
||||
send_code.setOnClickListener {
|
||||
|
||||
val graphicCodeDialog = GraphicCodeDialog(requireContext())
|
||||
viewModel.create_captcha()
|
||||
viewModel.captchaBean.observe(this) {
|
||||
GlideUtil.loadImglogo(
|
||||
requireContext(),
|
||||
it.image,
|
||||
graphicCodeDialog.getBinding().graphicCode
|
||||
)
|
||||
}
|
||||
graphicCodeDialog.getBinding().graphicCode.setOnClickListener {
|
||||
viewModel.create_captcha()
|
||||
}
|
||||
|
||||
graphicCodeDialog.getBinding().btnConfirm.setOnClickListener {
|
||||
viewModel.verification(
|
||||
graphicCodeDialog.getBinding().etCode.text.toString(),
|
||||
viewModel.captchaBean.value!!.key
|
||||
)
|
||||
graphicCodeDialog.dismiss()
|
||||
|
||||
}
|
||||
|
||||
graphicCodeDialog.show()
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.yuyin.mier.module_login.ui.forget
|
||||
|
||||
import android.os.Bundle
|
||||
import android.os.CountDownTimer
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.navigation.Navigation
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import kotlinx.android.synthetic.main.login_forgot_fragment.*
|
||||
|
||||
class ForgotFragment2 : BaseDataBindingFragment<ForgotViewModel, ViewDataBinding>() {
|
||||
|
||||
|
||||
companion object {
|
||||
fun newInstance(type: String): ForgotFragment2 {
|
||||
val fragment = ForgotFragment2()
|
||||
val bundle = Bundle()
|
||||
bundle.putString("type", type)
|
||||
fragment.arguments = bundle
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
private var timer: CountDownTimer? = null
|
||||
private fun showCode() {
|
||||
timer = object : CountDownTimer(60 * 1000, 1000) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
try {
|
||||
val i = (millisUntilFinished / 1000).toInt()
|
||||
send_code.text = i.toString() + "s"
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
send_code.text = "重新发送"
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
if (timer != null)
|
||||
timer!!.cancel()
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
mDataBinding.setVariable(BR.layout, viewModel)
|
||||
mDataBinding.executePendingBindings()
|
||||
viewModel.getError().observe(this, {
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
})
|
||||
viewModel.sendCode.observe(requireActivity(), {
|
||||
showCode()
|
||||
})
|
||||
viewModel.forgetPwdResult.observe(requireActivity(), {
|
||||
Navigation.findNavController(btn_ok).navigateUp()
|
||||
})
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.login_forgot_fragment
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
iv_back.setOnClickListener {
|
||||
requireActivity().finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
package com.yuyin.mier.module_login.ui.forget
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class ForgotViewModel : BaseViewModel() {
|
||||
|
||||
private val repository = CommonRepository()
|
||||
|
||||
var phone: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var code: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var passWord: MutableLiveData<String> = MutableLiveData()
|
||||
var passWord1: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var sendCodeClick: MutableLiveData<Boolean> = MutableLiveData(true)
|
||||
|
||||
var sendCode: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var forgetPwdResult: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
fun verification(captcha_code: String, captcha_key: String) {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (sendCodeClick.value == false) return
|
||||
sendCodeClick.value = false
|
||||
sendCode.value = "发送"
|
||||
launchUI {
|
||||
val result = repository.verification(phone.value.toString(), "1",captcha_code,captcha_key)
|
||||
result.msg.showToast()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun forgetPwd() {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (code.value.isNullOrEmpty()) {
|
||||
"请输入验证码".showToast()
|
||||
return
|
||||
}
|
||||
if (passWord.value.isNullOrEmpty()) {
|
||||
"请输入密码".showToast()
|
||||
return
|
||||
}
|
||||
if (passWord1.value.isNullOrEmpty()) {
|
||||
"请再次输入密码".showToast()
|
||||
return
|
||||
}
|
||||
if (passWord.value != passWord1.value) {
|
||||
"两次密码不一致".showToast()
|
||||
return
|
||||
}
|
||||
|
||||
launchUI {
|
||||
val resultPwd = repository.forgetPwd(
|
||||
phone.value.toString(),
|
||||
code.value.toString(),
|
||||
passWord.value.toString()
|
||||
)
|
||||
resultPwd.msg.showToast()
|
||||
forgetPwdResult.value = "成功"
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
package com.yuyin.mier.module_login.ui.login
|
||||
|
||||
import android.os.CountDownTimer
|
||||
import android.view.KeyEvent
|
||||
import android.view.View
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.navigation.Navigation
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.lib_base.model.PhotoMemory
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mixin.module_login.ui.GraphicCodeDialog
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import kotlinx.android.synthetic.main.login_fragment.send_code
|
||||
import kotlinx.android.synthetic.main.login_fragment2.*
|
||||
import kotlinx.android.synthetic.main.login_fragment2.btn_ok
|
||||
import kotlinx.android.synthetic.main.login_fragment2.iv_back
|
||||
import org.litepal.LitePal
|
||||
import java.util.*
|
||||
|
||||
|
||||
class CodeLoginFragment : BaseDataBindingFragment<LoginViewModel, ViewDataBinding>() {
|
||||
private var timer: CountDownTimer? = null
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
if (timer != null)
|
||||
timer!!.cancel()
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
mDataBinding.setVariable(BR.layout, viewModel)
|
||||
|
||||
viewModel.sendCode.observe(requireActivity()) {
|
||||
showCode()
|
||||
}
|
||||
viewModel.getError().observe(this) {
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
viewModel.loginValue.observe(requireActivity()) {
|
||||
"登录成功".showToast()
|
||||
//用户信息存入数据库
|
||||
val loginData: Login = it
|
||||
LitePal.deleteAll(it::class.java)
|
||||
loginData.save() //litepal数据库,不能随便改LoginData数据
|
||||
UserManager.initData() //存储完,初始化
|
||||
|
||||
|
||||
var isSaveMemory = false
|
||||
val photoMemoryList: List<PhotoMemory> =
|
||||
LitePal.findAll(PhotoMemory::class.java) // 查询所有数据
|
||||
for (i in photoMemoryList.indices) {
|
||||
if (photoMemoryList[i].photo == it.user_name) {
|
||||
isSaveMemory = true
|
||||
}
|
||||
}
|
||||
|
||||
if (!isSaveMemory){
|
||||
val photoMemory = PhotoMemory()
|
||||
photoMemory.photo = it.user_name
|
||||
photoMemory.head_pic = it.head_pic
|
||||
photoMemory.save()
|
||||
}
|
||||
|
||||
|
||||
// if (it.is_reg == "1") {
|
||||
// startActivity(Intent(requireContext(), BindZLActivity::class.java))
|
||||
// } else {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
activity?.finish()
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private fun showCode() {
|
||||
timer = object : CountDownTimer(60 * 1000, 1000) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
try {
|
||||
val i = (millisUntilFinished / 1000).toInt()
|
||||
send_code.text = i.toString() + "s"
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
send_code.text = "重新发送"
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.login_fragment2
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
val photoMemoryList: List<PhotoMemory> =
|
||||
LitePal.findAll(PhotoMemory::class.java) // 查询所有数据
|
||||
photo_memory_view.setAdapterList(photoMemoryList)
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
|
||||
btn_ok.setOnClickListener {
|
||||
viewModel.phone_verification_code_log()
|
||||
}
|
||||
|
||||
iv_back.setOnClickListener {
|
||||
Navigation.findNavController(it).popBackStack()
|
||||
}
|
||||
|
||||
// photo_memory_view.setOnSelectNumberListener {
|
||||
// viewModel.phone.value = it.photo
|
||||
// }
|
||||
|
||||
// 调用代码,记得把xml 里面的点击时间去掉
|
||||
send_code.setOnClickListener {
|
||||
|
||||
val graphicCodeDialog = GraphicCodeDialog(requireContext())
|
||||
viewModel.create_captcha()
|
||||
viewModel.captchaBean.observe(this) {
|
||||
GlideUtil.loadImglogo(
|
||||
requireContext(),
|
||||
it.image,
|
||||
graphicCodeDialog.getBinding().graphicCode
|
||||
)
|
||||
}
|
||||
graphicCodeDialog.getBinding().graphicCode.setOnClickListener {
|
||||
viewModel.create_captcha()
|
||||
}
|
||||
|
||||
graphicCodeDialog.getBinding().btnConfirm.setOnClickListener {
|
||||
viewModel.verification(
|
||||
graphicCodeDialog.getBinding().etCode.text.toString(),
|
||||
viewModel.captchaBean.value!!.key
|
||||
)
|
||||
graphicCodeDialog.dismiss()
|
||||
|
||||
}
|
||||
|
||||
graphicCodeDialog.show()
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
val view: View? = view
|
||||
if (view != null) {
|
||||
view.isFocusableInTouchMode = true
|
||||
view.requestFocus()
|
||||
view.setOnKeyListener { view1, i, keyEvent ->
|
||||
if (i === KeyEvent.KEYCODE_BACK && keyEvent.action === KeyEvent.ACTION_UP) {
|
||||
Navigation.findNavController(view1).navigateUp()
|
||||
return@setOnKeyListener true
|
||||
}
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,313 @@
|
||||
package com.yuyin.mier.module_login.ui.login
|
||||
|
||||
import android.os.CountDownTimer
|
||||
import android.util.Log
|
||||
import android.view.KeyEvent
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.navigation.Navigation
|
||||
import cn.sharesdk.framework.Platform
|
||||
import cn.sharesdk.framework.PlatformActionListener
|
||||
import cn.sharesdk.framework.ShareSDK
|
||||
import cn.sharesdk.tencent.qq.QQ
|
||||
import cn.sharesdk.wechat.friends.Wechat
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.flyco.tablayout.listener.CustomTabEntity
|
||||
import com.flyco.tablayout.listener.OnTabSelectListener
|
||||
import com.kongzue.dialog.v3.MessageDialog
|
||||
import com.mob.MobSDK
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.lib_base.util.SBUtils
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import kotlinx.android.synthetic.main.login_fragment.*
|
||||
import org.litepal.LitePal
|
||||
import java.util.*
|
||||
import kotlin.collections.HashMap
|
||||
|
||||
|
||||
class LoginFragment : BaseDataBindingFragment<LoginViewModel, ViewDataBinding>() {
|
||||
private var timer: CountDownTimer? = null
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
if (timer != null)
|
||||
timer!!.cancel()
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
mDataBinding.setVariable(BR.layout, viewModel)
|
||||
viewModel.sendCode.observe(requireActivity()) {
|
||||
showCode()
|
||||
}
|
||||
viewModel.getError().observe(this) {
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
viewModel.loginValue.observe(requireActivity()) {
|
||||
"登录成功".showToast()
|
||||
//用户信息存入数据库
|
||||
val loginData: Login = it
|
||||
LitePal.deleteAll(it::class.java)
|
||||
loginData.save() //litepal数据库,不能随便改LoginData数据
|
||||
UserManager.initData() //存储完,初始化
|
||||
// if (loginData.is_reg == "1") {
|
||||
// startActivity(Intent(activity, BindZLActivity::class.java))
|
||||
// } else {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
activity?.finish()
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
private fun showCode() {
|
||||
timer = object : CountDownTimer(60 * 1000, 1000) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
try {
|
||||
val i = (millisUntilFinished / 1000).toInt()
|
||||
send_code.text = i.toString() + "s"
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
send_code.text = "重新发送"
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.login_fragment
|
||||
|
||||
override fun initView() {
|
||||
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
// btnOneKey.setOnClickListener {
|
||||
// val uiConfig = ShanYanUIConfig.Builder() //添加协议弹窗
|
||||
// .setPrivacyState(false)
|
||||
// .build()
|
||||
// OneKeyLoginManager.getInstance().setAuthThemeConfig(uiConfig)
|
||||
// OneKeyLoginManager.getInstance()
|
||||
// .init(
|
||||
// activity, "yVdzbOkO"
|
||||
// ) { code, result ->
|
||||
//// if (code == 1022) {
|
||||
//// val oneKeyLogin = LoginConfig()
|
||||
//// OneKeyLoginManager.getInstance().setAuthThemeConfig(
|
||||
//// oneKeyLogin.getGConfig(App.instance?.applicationContext), null
|
||||
//// )
|
||||
//// OneKeyLoginManager.getInstance().setCheckBoxValue(false);
|
||||
//// OneKeyLoginManager.getInstance().getPhoneInfo { code, result ->
|
||||
//// OneKeyLoginManager.getInstance().openLoginAuth(true,
|
||||
//// { code, result ->
|
||||
//// if (code != 1000) {
|
||||
//// "请稍后再试...".showToast()
|
||||
//// }
|
||||
//// }
|
||||
//// ) { code, result ->
|
||||
//// if (code != 1000) {
|
||||
//// "请稍后再试...".showToast()
|
||||
//// } else {
|
||||
//// var jsonString = JSONObject(result)
|
||||
//// viewModel.loginGo2(jsonString.getString("token"))
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// } else {
|
||||
//// "获取失败,请稍后再试...".showToast()
|
||||
//// }
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
if (activity?.intent?.getIntExtra("sign", 0) === 1) {
|
||||
tv_forget.postDelayed({
|
||||
MessageDialog.show(
|
||||
activity as AppCompatActivity,
|
||||
"下线通知",
|
||||
"您的账号在别的设备登录,您已被迫下线",
|
||||
"确定"
|
||||
)
|
||||
}, 2000)
|
||||
}
|
||||
|
||||
val titleRes = ArrayList<String>() //tab标题集合
|
||||
|
||||
val dataTab: MutableList<CustomTabEntity> = ArrayList() //CommonTabLayout 所需数据集合
|
||||
|
||||
titleRes.add("登录")
|
||||
titleRes.add("注册")
|
||||
for (i in titleRes.indices) {
|
||||
dataTab.add(object : CustomTabEntity {
|
||||
override fun getTabTitle(): String {
|
||||
return titleRes[i]
|
||||
}
|
||||
|
||||
override fun getTabSelectedIcon(): Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
override fun getTabUnselectedIcon(): Int {
|
||||
return 0
|
||||
}
|
||||
})
|
||||
}
|
||||
//设置数据
|
||||
//设置数据
|
||||
common_tab_layout.setTabData(dataTab as ArrayList<CustomTabEntity?>)
|
||||
common_tab_layout.setOnTabSelectListener(object : OnTabSelectListener {
|
||||
override fun onTabSelect(position: Int) {
|
||||
if (position == 0) {
|
||||
rl_yanzhengma.setVisibility(View.GONE)
|
||||
btn_ok.setText("登录")
|
||||
tv_forget.setVisibility(View.VISIBLE)
|
||||
} else {
|
||||
rl_yanzhengma.setVisibility(View.VISIBLE)
|
||||
btn_ok.setText("注册")
|
||||
tv_forget.setVisibility(View.GONE)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTabReselect(position: Int) {}
|
||||
})
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
ivPass.setOnClickListener {
|
||||
// llPas.visibility = View.VISIBLE
|
||||
// llOne.visibility = View.GONE
|
||||
Navigation.findNavController(it)
|
||||
.navigate(R.id.loginFragment2)
|
||||
}
|
||||
ivWeiXin.setOnClickListener {
|
||||
//设置授权登录的平台
|
||||
MobSDK.submitPolicyGrantResult(true, null)
|
||||
val plat: Platform = ShareSDK.getPlatform(Wechat.NAME)
|
||||
//授权回调监听,监听oncomplete,onerror,oncancel三种状态
|
||||
plat.platformActionListener = object : PlatformActionListener {
|
||||
override fun onComplete(p0: Platform?, p1: Int, p2: HashMap<String, Any>?) {
|
||||
p2?.let {
|
||||
var map = HashMap<String, String>()
|
||||
map["last_login_device"] = SBUtils.getAndroidId(App.instance)
|
||||
map["type"] = "1"
|
||||
map["system"] = "1"
|
||||
map["wx_openid"] = p2["openid"].toString()
|
||||
map["head_image"] = p2["headimgurl"].toString()
|
||||
map["nick_name"] = p2["nickname"].toString()
|
||||
map["channel_code"] = ""
|
||||
viewModel.wx_reg_log(map)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onError(p0: Platform?, p1: Int, p2: Throwable?) {
|
||||
Log.d("Aaa", "AA")
|
||||
}
|
||||
|
||||
override fun onCancel(p0: Platform?, p1: Int) {
|
||||
Log.d("Aaa", "AA")
|
||||
}
|
||||
|
||||
}
|
||||
plat.showUser(null)
|
||||
plat.authorize()
|
||||
}
|
||||
|
||||
ivQQ.setOnClickListener {
|
||||
//设置授权登录的平台
|
||||
MobSDK.submitPolicyGrantResult(true, null)
|
||||
val plat: Platform = ShareSDK.getPlatform(QQ.NAME)
|
||||
//授权回调监听,监听oncomplete,onerror,oncancel三种状态
|
||||
plat.platformActionListener = object : PlatformActionListener {
|
||||
override fun onComplete(p0: Platform?, p1: Int, p2: HashMap<String, Any>?) {
|
||||
Log.d("Aaa", "AA")
|
||||
p2?.let {
|
||||
var map = HashMap<String, String>()
|
||||
map["last_login_device"] = SBUtils.getAndroidId(App.instance)
|
||||
map["type"] = "2"
|
||||
map["system"] = "1"
|
||||
map["wx_openid"] = plat.db.userId
|
||||
map["head_image"] = plat.db.userIcon
|
||||
map["nick_name"] = plat.db.userName
|
||||
map["channel_code"] = ""
|
||||
viewModel.wx_reg_log(map)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onError(p0: Platform?, p1: Int, p2: Throwable?) {
|
||||
Log.d("Aaa", "AA")
|
||||
}
|
||||
|
||||
override fun onCancel(p0: Platform?, p1: Int) {
|
||||
Log.d("Aaa", "AA")
|
||||
}
|
||||
|
||||
}
|
||||
plat.showUser(null)
|
||||
plat.authorize()
|
||||
}
|
||||
|
||||
|
||||
tvLoginType.setOnClickListener {
|
||||
if (tvLoginType.text.toString() == "切换验证码登录") {
|
||||
tvLoginType.text = "切换密码登录"
|
||||
rl_yanzhengma.visibility = View.VISIBLE
|
||||
rl_mima.visibility = View.GONE
|
||||
} else {
|
||||
tvLoginType.text = "切换验证码登录"
|
||||
rl_yanzhengma.visibility = View.GONE
|
||||
rl_mima.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
tv_forget.setOnClickListener {
|
||||
// Navigation.findNavController(it)
|
||||
// .navigate(R.id.action_loginFragment_to_forgotFragment)
|
||||
}
|
||||
btn_ok.setOnClickListener {
|
||||
if (!checkbox.isChecked) {
|
||||
"请先阅读并同意用户协议和隐私协议".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
if (btn_ok.text.toString().equals("登录")) {
|
||||
// if (tvLoginType.text.toString() == "切换验证码登录") {
|
||||
// viewModel.loginGo()
|
||||
// } else {
|
||||
viewModel.phone_verification_code_log()
|
||||
// }
|
||||
} else {
|
||||
viewModel.isVerification()
|
||||
}
|
||||
}
|
||||
tv_regist.setOnClickListener {
|
||||
Navigation.findNavController(it)
|
||||
.navigate(R.id.action_loginFragment_to_registMainFragment)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
val view: View? = view
|
||||
if (view != null) {
|
||||
view.isFocusableInTouchMode = true
|
||||
view.requestFocus()
|
||||
view.setOnKeyListener { view1, i, keyEvent ->
|
||||
if (i === KeyEvent.KEYCODE_BACK && keyEvent.action === KeyEvent.ACTION_UP) {
|
||||
Navigation.findNavController(view1).navigateUp()
|
||||
return@setOnKeyListener true
|
||||
}
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
package com.yuyin.mier.module_login.ui.login
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.lib_base.util.SBUtils
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class LoginViewModel : BaseViewModel() {
|
||||
private val repository = CommonRepository()
|
||||
|
||||
var loginValue: MutableLiveData<Login> = MutableLiveData()
|
||||
|
||||
var phone: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var code: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var passWord: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
|
||||
fun loginGo2(token: String) {
|
||||
launchUI {
|
||||
val result = repository.phone_reg_log(
|
||||
token, "1",
|
||||
SBUtils.getAndroidId(App.instance)
|
||||
)
|
||||
loginValue.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun loginGo() {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (passWord.value.isNullOrEmpty()) {
|
||||
"请输入密码".showToast()
|
||||
return
|
||||
}
|
||||
launchUI {
|
||||
val result = repository.loginLogin(
|
||||
phone.value.toString(), passWord.value.toString(),
|
||||
SBUtils.getAndroidId(App.instance)
|
||||
)
|
||||
loginValue.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
fun wx_reg_log(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
val result = repository.wx_reg_log(map)
|
||||
loginValue.value = result.data;
|
||||
}
|
||||
}
|
||||
|
||||
//点击发送验证码事件监听
|
||||
var sendCodeClick: MutableLiveData<Boolean> = MutableLiveData(true)
|
||||
|
||||
var sendCode: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
fun verification(captcha_code: String, captcha_key: String) {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (sendCodeClick.value == false) return
|
||||
sendCodeClick.value = false
|
||||
launchUI {
|
||||
val result = repository.verification(phone.value.toString(), "2",captcha_code,captcha_key)
|
||||
sendCode.value = "发送"
|
||||
result.msg.showToast()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun isVerification() {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (code.value.isNullOrEmpty()) {
|
||||
"请输入验证码".showToast()
|
||||
return
|
||||
}
|
||||
if (passWord.value.isNullOrEmpty()) {
|
||||
"请输入密码".showToast()
|
||||
return
|
||||
}
|
||||
launchUI {
|
||||
var resultReg = repository.register(
|
||||
phone.value.toString(),
|
||||
passWord.value.toString(),
|
||||
code.value.toString(),
|
||||
"",
|
||||
""
|
||||
)
|
||||
loginGo()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun phone_verification_code_log() {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (code.value.isNullOrEmpty()) {
|
||||
"请输入验证码".showToast()
|
||||
return
|
||||
}
|
||||
launchUI {
|
||||
var result = repository.phone_verification_code_log(
|
||||
phone.value.toString(),
|
||||
code.value.toString(), SBUtils.getAndroidId(App.instance)
|
||||
)
|
||||
loginValue.value = result.data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,260 @@
|
||||
package com.yuyin.mier.module_login.ui.login
|
||||
|
||||
import android.graphics.Color
|
||||
import android.os.Build
|
||||
import android.os.CountDownTimer
|
||||
import android.text.SpannableString
|
||||
import android.text.Spanned
|
||||
import android.text.TextPaint
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.text.style.ClickableSpan
|
||||
import android.view.KeyEvent
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.navigation.Navigation
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.kongzue.dialog.v3.MessageDialog
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.lib_base.model.PhotoMemory
|
||||
import com.yuyin.lib_base.ui.X5WebViewActivity
|
||||
import com.yuyin.lib_base.util.SharedPreferencesUtils
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import kotlinx.android.synthetic.main.login_fragment3.*
|
||||
import org.litepal.LitePal
|
||||
|
||||
import com.tencent.bugly.crashreport.CrashReport
|
||||
import com.yuyin.mier.BuildConfig
|
||||
|
||||
class PassWordLoginFragment : BaseDataBindingFragment<LoginViewModel, ViewDataBinding>() {
|
||||
private var timer: CountDownTimer? = null
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
if (timer != null)
|
||||
timer!!.cancel()
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
mDataBinding.setVariable(BR.layout, viewModel)
|
||||
|
||||
|
||||
viewModel.getError().observe(this) {
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
viewModel.loginValue.observe(requireActivity()) {
|
||||
"登录成功".showToast()
|
||||
//用户信息存入数据库
|
||||
val loginData: Login = it
|
||||
LitePal.deleteAll(it::class.java)
|
||||
loginData.save() //litepal数据库,不能随便改LoginData数据
|
||||
UserManager.initData() //存储完,初始化
|
||||
|
||||
var isSaveMemory = false
|
||||
val photoMemoryList: List<PhotoMemory> =
|
||||
LitePal.findAll(PhotoMemory::class.java) // 查询所有数据
|
||||
for (i in photoMemoryList.indices) {
|
||||
if (photoMemoryList[i].photo == it.user_name) {
|
||||
isSaveMemory = true
|
||||
}
|
||||
}
|
||||
|
||||
if (!isSaveMemory) {
|
||||
val photoMemory = PhotoMemory()
|
||||
photoMemory.photo = it.user_name
|
||||
photoMemory.head_pic = it.head_pic
|
||||
photoMemory.save()
|
||||
}
|
||||
|
||||
// if (it.is_reg == "1") {
|
||||
// startActivity(Intent(requireContext(), BindZLActivity::class.java))
|
||||
// } else {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
activity?.finish()
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.login_fragment3
|
||||
|
||||
override fun initView() {
|
||||
if (!SharedPreferencesUtils.getParam(activity, "LOGIN", "1").equals("2")) {
|
||||
llystk.visibility = View.VISIBLE
|
||||
tv_content.text = ""
|
||||
tv_content.append("感谢您信任并使用")
|
||||
var clickStringJR = SpannableString("余音派对,")
|
||||
clickStringJR.setSpan(object : ClickableSpan() {
|
||||
|
||||
override fun updateDrawState(ds: TextPaint) {
|
||||
super.updateDrawState(ds)
|
||||
ds.color = Color.parseColor("#FF5057")
|
||||
ds.isUnderlineText = false //去掉下划线
|
||||
}
|
||||
|
||||
override fun onClick(p0: View) {
|
||||
//点击事件
|
||||
}
|
||||
}, 0, clickStringJR.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
tv_content?.append(clickStringJR)
|
||||
tv_content?.append(
|
||||
"当您使用本APP前,请您务必仔细阅读、充分理解“用户协议”和“隐私政策”各条款,包括但不限于: " +
|
||||
"为您提供服务并保障您的相关信息,以及为您提供的访问、修改、删除和您先关的信息的方式。"
|
||||
)
|
||||
tv_content?.append("如您同意")
|
||||
var clickStringJR3 = SpannableString("《服务协议")
|
||||
clickStringJR3.setSpan(object : ClickableSpan() {
|
||||
override fun updateDrawState(ds: TextPaint) {
|
||||
super.updateDrawState(ds)
|
||||
ds.color = Color.parseColor("#FF5057")
|
||||
ds.isUnderlineText = false //去掉下划线
|
||||
}
|
||||
|
||||
override fun onClick(p0: View) {
|
||||
//点击事件
|
||||
X5WebViewActivity.forward(requireContext(), Const.PAGE_USER_XIEYI, "服务协议")
|
||||
}
|
||||
}, 0, clickStringJR3.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
tv_content?.append(clickStringJR3)
|
||||
var clickStringJR5 = SpannableString("隐私政策》")
|
||||
clickStringJR5.setSpan(object : ClickableSpan() {
|
||||
override fun updateDrawState(ds: TextPaint) {
|
||||
super.updateDrawState(ds)
|
||||
ds.color = Color.parseColor("#FF5057")
|
||||
ds.isUnderlineText = false //去掉下划线
|
||||
}
|
||||
|
||||
override fun onClick(p0: View) {
|
||||
//点击事件
|
||||
X5WebViewActivity.forward(requireContext(), Const.PAGE_USER_XIEYI2, "隐私政策")
|
||||
}
|
||||
}, 0, clickStringJR3.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
tv_content?.append(clickStringJR5)
|
||||
tv_content?.append(",请点击“确认”开始使用我们的产品和服务。")
|
||||
tv_content?.movementMethod = LinkMovementMethod.getInstance()
|
||||
tv_cancel.setOnClickListener {
|
||||
SharedPreferencesUtils.setParam(activity, "LOGIN", "1")
|
||||
llystk.visibility = View.GONE
|
||||
activity?.finish()
|
||||
}
|
||||
tv_confirm.setOnClickListener {
|
||||
SharedPreferencesUtils.setParam(activity, "LOGIN", "2")
|
||||
llystk.visibility = View.GONE
|
||||
initBugly()
|
||||
}
|
||||
} else {
|
||||
initBugly()
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
fun initBugly() {
|
||||
|
||||
//初始化bugly
|
||||
val strategy: CrashReport.UserStrategy = CrashReport.UserStrategy(requireContext())
|
||||
strategy.setDeviceModel(Build.MODEL)
|
||||
//设置包名
|
||||
strategy.setAppPackageName(BuildConfig.APPLICATION_ID)
|
||||
// 设置App版本号
|
||||
strategy.setAppVersion(BuildConfig.VERSION_NAME)
|
||||
// 初始化崩溃报告服务,传入应用上下文、AppKey、是否调试模式和自定义策略
|
||||
CrashReport.initCrashReport(requireContext(), "4bf6f2912b", BuildConfig.DEBUG, strategy)
|
||||
|
||||
val photoMemoryList: List<PhotoMemory> =
|
||||
LitePal.findAll(PhotoMemory::class.java) // 查询所有数据
|
||||
photo_memory_view.setAdapterList(photoMemoryList)
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
if (activity?.intent?.getIntExtra("sign", 0) === 1) {
|
||||
// tv_forget.postDelayed({
|
||||
MessageDialog.show(
|
||||
activity as AppCompatActivity,
|
||||
"下线通知",
|
||||
"您的账号在别的设备登录,您已被迫下线",
|
||||
"确定"
|
||||
)
|
||||
// }, 2000)
|
||||
}
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
tv_forget.setOnClickListener {
|
||||
Navigation.findNavController(it)
|
||||
.navigate(R.id.action_loginFragment_to_forgotFragment2)
|
||||
}
|
||||
|
||||
btn_ok.setOnClickListener {
|
||||
if (!iv_check.isChecked) {
|
||||
"请同意用户协议".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
viewModel.loginGo()
|
||||
}
|
||||
|
||||
iv_back.setOnClickListener {
|
||||
Navigation.findNavController(it).popBackStack()
|
||||
}
|
||||
|
||||
|
||||
v_register.setOnClickListener {
|
||||
Navigation.findNavController(it)
|
||||
.navigate(R.id.action_loginFragment_to_registMainFragment)
|
||||
}
|
||||
|
||||
v_code_login.setOnClickListener {
|
||||
|
||||
Navigation.findNavController(it)
|
||||
.navigate(R.id.action_loginFragment_to_loginFragment2)
|
||||
}
|
||||
|
||||
xieyi.setOnClickListener {
|
||||
X5WebViewActivity.forward(requireContext(), Const.PAGE_USER_XIEYI, "服务协议")
|
||||
}
|
||||
xieyi2.setOnClickListener {
|
||||
X5WebViewActivity.forward(requireContext(), Const.PAGE_USER_XIEYI2, "隐私政策")
|
||||
}
|
||||
|
||||
iv_unfold.setOnClickListener {
|
||||
photo_memory_view.visibility = View.VISIBLE
|
||||
iv_unfold.setImageResource(R.mipmap.unfold_icon)
|
||||
photo_memory_view.setOnSelectNumberListener {
|
||||
viewModel.phone.value = it.photo
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
main.setOnClickListener {
|
||||
photo_memory_view.visibility = View.GONE
|
||||
iv_unfold.setImageResource(R.mipmap.unfold_icon2)
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
val view: View? = view
|
||||
if (view != null) {
|
||||
view.isFocusableInTouchMode = true
|
||||
view.requestFocus()
|
||||
view.setOnKeyListener { view1, i, keyEvent ->
|
||||
if (i === KeyEvent.KEYCODE_BACK && keyEvent.action === KeyEvent.ACTION_UP) {
|
||||
Navigation.findNavController(view1).navigateUp()
|
||||
return@setOnKeyListener true
|
||||
}
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package com.yuyin.mier.module_login.ui.regist
|
||||
|
||||
import android.os.CountDownTimer
|
||||
import android.view.View
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import androidx.navigation.Navigation
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.model.PhotoMemory
|
||||
import com.yuyin.lib_base.ui.X5WebViewActivity
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mixin.module_login.ui.GraphicCodeDialog
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.BR
|
||||
import kotlinx.android.synthetic.main.login_regist_main_fragment.*
|
||||
import org.litepal.LitePal
|
||||
|
||||
class RegistMainFragment : BaseDataBindingFragment<RegistMainViewModel, ViewDataBinding>() {
|
||||
private var timer: CountDownTimer? = null
|
||||
|
||||
companion object {
|
||||
fun newInstance() = RegistMainFragment()
|
||||
}
|
||||
|
||||
override fun onStop() {
|
||||
super.onStop()
|
||||
if (timer != null)
|
||||
timer!!.cancel()
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
mDataBinding.setVariable(BR.layout, viewModel)
|
||||
mDataBinding.executePendingBindings()
|
||||
viewModel.sendCode.observe(requireActivity(), {
|
||||
showCode()
|
||||
})
|
||||
viewModel.getError().observe(this, {
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
})
|
||||
viewModel.loginValue.observe(requireActivity()) {
|
||||
"登录成功".showToast()
|
||||
//用户信息存入数据库
|
||||
var loginData: Login = it
|
||||
LitePal.deleteAll(it::class.java)
|
||||
loginData.save() //litepal数据库,不能随便改LoginData数据
|
||||
UserManager.initData() //存储完,初始化
|
||||
|
||||
var isSaveMemory = false
|
||||
val photoMemoryList: List<PhotoMemory> =
|
||||
LitePal.findAll(PhotoMemory::class.java) // 查询所有数据
|
||||
for (i in photoMemoryList.indices) {
|
||||
if (photoMemoryList[i].photo == it.user_name) {
|
||||
isSaveMemory = true
|
||||
}
|
||||
}
|
||||
|
||||
if (!isSaveMemory){
|
||||
val photoMemory = PhotoMemory()
|
||||
photoMemory.photo = it.user_name
|
||||
photoMemory.head_pic = it.head_pic
|
||||
photoMemory.save()
|
||||
}
|
||||
|
||||
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MAIN).navigation()
|
||||
activity?.finish()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.login_regist_main_fragment
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
back.setOnClickListener {
|
||||
Navigation.findNavController(back).navigateUp()
|
||||
}
|
||||
|
||||
// v_login.setOnClickListener {
|
||||
// Navigation.findNavController(back).navigateUp()
|
||||
// }
|
||||
|
||||
// iv_unfold.setOnClickListener {
|
||||
// photo_memory_view.visibility = View.VISIBLE
|
||||
// }
|
||||
|
||||
main.setOnClickListener {
|
||||
photo_memory_view.visibility = View.GONE
|
||||
|
||||
}
|
||||
xieyi.setOnClickListener {
|
||||
X5WebViewActivity.forward(requireContext(), Const.PAGE_USER_XIEYI, "服务协议")
|
||||
}
|
||||
xieyi2.setOnClickListener {
|
||||
X5WebViewActivity.forward(requireContext(), Const.PAGE_USER_XIEYI2, "隐私政策")
|
||||
}
|
||||
btn_ok.setOnClickListener {
|
||||
if (!iv_check.isChecked) {
|
||||
"请同意用户协议".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
viewModel.isVerification()
|
||||
}
|
||||
// photo_memory_view.setOnSelectNumberListener {
|
||||
// viewModel.phone.value = it.photo
|
||||
// }
|
||||
|
||||
// 调用代码,记得把xml 里面的点击时间去掉
|
||||
send_code.setOnClickListener {
|
||||
val graphicCodeDialog = GraphicCodeDialog(requireContext())
|
||||
viewModel.create_captcha()
|
||||
viewModel.captchaBean.observe(this) {
|
||||
GlideUtil.loadImglogo(
|
||||
requireContext(),
|
||||
it.image,
|
||||
graphicCodeDialog.getBinding().graphicCode
|
||||
)
|
||||
}
|
||||
graphicCodeDialog.getBinding().graphicCode.setOnClickListener {
|
||||
viewModel.create_captcha()
|
||||
}
|
||||
|
||||
graphicCodeDialog.getBinding().btnConfirm.setOnClickListener {
|
||||
viewModel.verification(
|
||||
graphicCodeDialog.getBinding().etCode.text.toString(),
|
||||
viewModel.captchaBean.value!!.key
|
||||
)
|
||||
graphicCodeDialog.dismiss()
|
||||
|
||||
}
|
||||
|
||||
graphicCodeDialog.show()
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private fun showCode() {
|
||||
timer = object : CountDownTimer(60 * 1000, 1000) {
|
||||
override fun onTick(millisUntilFinished: Long) {
|
||||
try {
|
||||
val i = (millisUntilFinished / 1000).toInt()
|
||||
send_code.text = i.toString() + "s"
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onFinish() {
|
||||
send_code.text = "重新发送"
|
||||
viewModel.sendCodeClick.postValue(true)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
package com.yuyin.mier.module_login.ui.regist
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.lib_base.util.SBUtils
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class RegistMainViewModel : BaseViewModel() {
|
||||
|
||||
private val repository = CommonRepository()
|
||||
|
||||
var sex: MutableLiveData<String> = MutableLiveData("1")
|
||||
|
||||
var loginValue: MutableLiveData<Login> = MutableLiveData()
|
||||
|
||||
var phone: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var code: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var yaoqing: MutableLiveData<String> = MutableLiveData("")
|
||||
|
||||
var passWord: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
var passWord2: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
//点击发送验证码事件监听
|
||||
var sendCodeClick: MutableLiveData<Boolean> = MutableLiveData(true)
|
||||
|
||||
var sendCode: MutableLiveData<String> = MutableLiveData()
|
||||
|
||||
fun verification(captcha_code: String, captcha_key: String) {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (sendCodeClick.value == false) return
|
||||
sendCodeClick.value = false
|
||||
launchUI {
|
||||
val result = repository.verification(phone.value.toString(), "2",captcha_code,captcha_key)
|
||||
sendCode.value = "发送"
|
||||
result.msg.showToast()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
fun isVerification() {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (code.value.isNullOrEmpty()) {
|
||||
"请输入验证码".showToast()
|
||||
return
|
||||
}
|
||||
// if (passWord.value.isNullOrEmpty() || passWord2.value.isNullOrEmpty()) {
|
||||
// "请输入密码".showToast()
|
||||
// return
|
||||
// }
|
||||
// if (passWord.value.isNullOrEmpty() != passWord2.value.isNullOrEmpty()) {
|
||||
// "两次输入的密码不一致".showToast()
|
||||
// return
|
||||
// }
|
||||
|
||||
if (passWord.value.isNullOrEmpty()) {
|
||||
"请输入密码".showToast()
|
||||
return
|
||||
}
|
||||
launchUI {
|
||||
var resultReg = repository.register(
|
||||
phone.value.toString(),
|
||||
passWord.value.toString(),
|
||||
code.value.toString(),
|
||||
yaoqing.value.toString(),
|
||||
sex.value.toString()
|
||||
)
|
||||
loginGo()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun loginGo() {
|
||||
if (phone.value.isNullOrEmpty()) {
|
||||
"请输入手机号".showToast()
|
||||
return
|
||||
}
|
||||
if (passWord.value.isNullOrEmpty()) {
|
||||
"请输入密码".showToast()
|
||||
return
|
||||
}
|
||||
launchUI {
|
||||
val result = repository.loginLogin(
|
||||
phone.value.toString(), passWord.value.toString(),
|
||||
SBUtils.getAndroidId(App.instance)
|
||||
)
|
||||
loginValue.value = result.data;
|
||||
}
|
||||
}
|
||||
}
|
||||
196
app/src/main/java/com/yuyin/mier/module_my/YaoQingActivity.kt
Normal file
196
app/src/main/java/com/yuyin/mier/module_my/YaoQingActivity.kt
Normal file
@@ -0,0 +1,196 @@
|
||||
package com.yuyin.mier.module_my
|
||||
|
||||
import android.Manifest
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.ContentValues
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Environment
|
||||
import android.provider.MediaStore
|
||||
import android.view.View
|
||||
import com.tbruyelle.rxpermissions2.RxPermissions
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.util.PermissionsChecker
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityYaoqingBinding
|
||||
import com.yuyin.mier.module_my.zhuangban.FriendListActivity
|
||||
import com.yuyin.mier.view.ZXingUtils
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.OutputStream
|
||||
|
||||
class YaoQingActivity : BaseDataBindingActivity<YaoQingViewModel, ActivityYaoqingBinding>() {
|
||||
var permissionListTmp = arrayOf<String>(
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE)
|
||||
override fun startObserve() {
|
||||
viewModel.bindCode.observe(this) {
|
||||
mDataBinding.flMa.visibility = View.GONE
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_yaoqing
|
||||
|
||||
override fun initView() {
|
||||
mDataBinding.tvSure.setOnClickListener {
|
||||
viewModel.bind_reg_code(mDataBinding.etCode.text.toString())
|
||||
}
|
||||
mDataBinding.tvBc.setOnClickListener {
|
||||
var mPermissionsChecker= PermissionsChecker(this@YaoQingActivity)
|
||||
if (mPermissionsChecker!!.lacksPermissions(*permissionListTmp)) {
|
||||
mDataBinding.llQuanxian.visibility= View.VISIBLE
|
||||
}else{
|
||||
mDataBinding.llQuanxian.visibility= View.GONE
|
||||
}
|
||||
val rxPermissions = RxPermissions(this)
|
||||
rxPermissions
|
||||
.request(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
.subscribe { granted: Boolean ->
|
||||
if (granted) {
|
||||
mDataBinding.llQuanxian.visibility= View.GONE
|
||||
saveMediaToStorage(this, getViewBitmap(mDataBinding.llbg)!!)
|
||||
"保存图片成功".showToast()
|
||||
}else{
|
||||
mDataBinding.llQuanxian.visibility= View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
loadImage(mDataBinding.civHead, UserManager.user.head_pic)
|
||||
mDataBinding.tvName1.text = UserManager.user.nick_name
|
||||
val bitmap = ZXingUtils.createQRImage(
|
||||
intent.getStringExtra("reg_url"), 400, 400
|
||||
)
|
||||
mDataBinding.ivQR.setImageBitmap(bitmap)
|
||||
mDataBinding.tvYQM.text = intent.getStringExtra("reg_code")
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
mDataBinding.tvCOPY.setOnClickListener {
|
||||
copyContentToClipboard(intent.getStringExtra("reg_url"), this)
|
||||
"复制成功".showToast()
|
||||
}
|
||||
|
||||
|
||||
mDataBinding.ivClose.setOnClickListener {
|
||||
mDataBinding.flMa.visibility = View.GONE
|
||||
}
|
||||
|
||||
mDataBinding.tvMingXi.setOnClickListener {
|
||||
val intent = Intent(this, FriendListActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 复制内容到剪贴板
|
||||
*
|
||||
* @param content
|
||||
* @param context
|
||||
*/
|
||||
fun copyContentToClipboard(content: String?, context: Context) {
|
||||
//获取剪贴板管理器:
|
||||
val cm = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
// 创建普通字符型ClipData
|
||||
val mClipData = ClipData.newPlainText("Label", content)
|
||||
// 将ClipData内容放到系统剪贴板里。
|
||||
cm.setPrimaryClip(mClipData)
|
||||
}
|
||||
|
||||
fun getViewBitmap(v: View?): Bitmap? {
|
||||
if (null == v) {
|
||||
return null
|
||||
}
|
||||
v.isDrawingCacheEnabled = true
|
||||
v.buildDrawingCache()
|
||||
if (Build.VERSION.SDK_INT >= 11) {
|
||||
v.measure(
|
||||
View.MeasureSpec.makeMeasureSpec(v.width, View.MeasureSpec.EXACTLY),
|
||||
View.MeasureSpec.makeMeasureSpec(v.height, View.MeasureSpec.EXACTLY)
|
||||
)
|
||||
v.layout(
|
||||
v.x.toInt(),
|
||||
v.y.toInt(),
|
||||
v.x.toInt() + v.measuredWidth,
|
||||
v.y.toInt() + v.measuredHeight
|
||||
)
|
||||
} else {
|
||||
v.measure(
|
||||
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
|
||||
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
|
||||
)
|
||||
v.layout(0, 0, v.measuredWidth, v.measuredHeight)
|
||||
}
|
||||
val bitmap = Bitmap.createBitmap(v.drawingCache, 0, 0, v.measuredWidth, v.measuredHeight)
|
||||
v.isDrawingCacheEnabled = false
|
||||
v.destroyDrawingCache()
|
||||
return bitmap
|
||||
}
|
||||
|
||||
private fun saveMediaToStorage(context: Context, bitmap: Bitmap) {
|
||||
//Generating a file name
|
||||
val filename = "${System.currentTimeMillis()}.jpg"
|
||||
|
||||
//Output stream
|
||||
var fos: OutputStream? = null
|
||||
|
||||
//For devices running android >= Q
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
//getting the contentResolver
|
||||
context?.contentResolver?.also { resolver ->
|
||||
|
||||
//Content resolver will process the contentvalues
|
||||
val contentValues = ContentValues().apply {
|
||||
|
||||
//putting file information in content values
|
||||
put(MediaStore.MediaColumns.DISPLAY_NAME, filename)
|
||||
put(MediaStore.MediaColumns.MIME_TYPE, "image/jpg")
|
||||
put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_DCIM)
|
||||
}
|
||||
|
||||
//Inserting the contentValues to contentResolver and getting the Uri
|
||||
val imageUri: Uri? =
|
||||
resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
|
||||
|
||||
//Opening an outputstream with the Uri that we got
|
||||
fos = imageUri?.let { resolver.openOutputStream(it) }
|
||||
}
|
||||
} else {
|
||||
//These for devices running on android < Q
|
||||
//So I don't think an explanation is needed here
|
||||
val imagesDir =
|
||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM)
|
||||
val image = File(imagesDir, filename)
|
||||
fos = FileOutputStream(image)
|
||||
}
|
||||
|
||||
fos?.use {
|
||||
//Finally writing the bitmap to the output stream that we opened
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, it)
|
||||
// ToastUtils.showShort(context.getString(R.string.save_success))
|
||||
sendBroadcast(
|
||||
Intent(
|
||||
Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
|
||||
Uri.fromFile(
|
||||
File(
|
||||
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM),
|
||||
filename
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.yuyin.mier.module_my
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
import com.yuyin.module_live.model.InvitationList
|
||||
|
||||
class YaoQingViewModel : BaseViewModel() {
|
||||
|
||||
var myRepository = CommonRepository()
|
||||
|
||||
var bindCode = MutableLiveData<Any>()
|
||||
|
||||
fun bind_reg_code(reg_code: String) {
|
||||
launchUI {
|
||||
val result = myRepository.bind_reg_code(reg_code)
|
||||
bindCode.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
var friendBean = MutableLiveData<InvitationList>()
|
||||
fun get_my_reg_friend_list(page:Int) {
|
||||
launchUI {
|
||||
val result = myRepository.get_my_reg_friend_list(page.toString(),"20")
|
||||
friendBean.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.yuyin.mier.module_my.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.RelativeLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.yuyin.lib_base.adapter.MyBaseAdapter;
|
||||
import com.yuyin.mier.R;
|
||||
import com.yuyin.mier.module_my.model.GoodsListBean;
|
||||
|
||||
|
||||
/**
|
||||
* 充值
|
||||
*/
|
||||
public class ChargeAdapter extends MyBaseAdapter<GoodsListBean> {
|
||||
|
||||
private Context context;
|
||||
|
||||
public ChargeAdapter(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public View getView(int position, View convertView, ViewGroup parent) {
|
||||
final ViewHolder VH;
|
||||
if (convertView == null) {
|
||||
convertView = LayoutInflater.from(context).inflate(R.layout.item_chager, null);
|
||||
VH = new ViewHolder(convertView);
|
||||
convertView.setTag(VH);
|
||||
} else {
|
||||
VH = (ViewHolder) convertView.getTag();
|
||||
}
|
||||
VH.textNum1.setText(list_adapter.get(position).getIntegral() + "");
|
||||
VH.textNum3.setText("¥ " + list_adapter.get(position).getMoney());
|
||||
|
||||
if (list_adapter.get(position).isSelect()) {
|
||||
VH.rlBg.setSelected(true);
|
||||
VH.textNum1.setSelected(true);
|
||||
VH.textNum3.setSelected(true);
|
||||
} else {
|
||||
VH.rlBg.setSelected(false);
|
||||
VH.textNum1.setSelected(false);
|
||||
VH.textNum3.setSelected(false);
|
||||
}
|
||||
return convertView;
|
||||
}
|
||||
|
||||
|
||||
public static class ViewHolder {
|
||||
RelativeLayout rlBg;
|
||||
TextView textNum1, textNum3;
|
||||
|
||||
public ViewHolder(View convertView) {
|
||||
rlBg = (RelativeLayout) convertView.findViewById(R.id.rlBg);
|
||||
textNum1 = (TextView) convertView.findViewById(R.id.textNum1);
|
||||
textNum3 = (TextView) convertView.findViewById(R.id.textNum3);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.module_live.model.FriendBean
|
||||
import java.util.*
|
||||
|
||||
class FriendAdapter :
|
||||
BaseQuickAdapter<FriendBean, BaseViewHolder>(R.layout.item_friend, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: FriendBean) {
|
||||
|
||||
GlideUtil.loadImglogo(mContext, item.head_pic, helper.getView(R.id.iv_head))
|
||||
|
||||
helper.setText(R.id.tv_name, item.nick_name)
|
||||
.setText(R.id.tv_time, item.add_time)
|
||||
.setText(R.id.tv_shouyi,"收益:"+item.give_earnings+"钻石")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import com.bumptech.glide.Glide
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.TimeUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_my.model.GiftLogBean
|
||||
import java.util.*
|
||||
|
||||
class GiftLogAdapter :
|
||||
BaseQuickAdapter<GiftLogBean, BaseViewHolder>(R.layout.item_gift_log_list, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: GiftLogBean) {
|
||||
helper
|
||||
.setText(R.id.tv_name, item.send_user_info.nick_name)
|
||||
.setText(R.id.tv_id, "ID:" + item.send_user_info.uid)
|
||||
.setText(R.id.tv_num, item.total_send_amount)
|
||||
.setText(R.id.tv_time, TimeUtil.toDateYmd(item.last_send_time))
|
||||
Glide.with(mContext).load(item.send_user_info.head_pic).error(R.mipmap.ic_launcher_app)
|
||||
.placeholder(R.mipmap.ic_launcher_app).into(helper.getView(R.id.v_img))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import com.bumptech.glide.Glide
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_my.model.GiftLogSubBean
|
||||
import java.util.*
|
||||
|
||||
class GiftLogSubAdapter :
|
||||
BaseQuickAdapter<GiftLogSubBean, BaseViewHolder>(R.layout.item_gift_log_list_sub, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: GiftLogSubBean) {
|
||||
helper
|
||||
.setText(R.id.tv_title2, "${item.gift_name}x${item.gift_num}")
|
||||
.setText(R.id.tv_title3, "${item.gift_total_price}金币")
|
||||
Glide.with(mContext).load(item.base_image).into(helper.getView(R.id.v_img))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import com.bumptech.glide.Glide
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.module_live.model.UserGiftList
|
||||
import java.util.*
|
||||
|
||||
class HomePageGiftAdapter :
|
||||
BaseQuickAdapter<UserGiftList, BaseViewHolder>(R.layout.item_homepage_gift, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: UserGiftList) {
|
||||
helper
|
||||
.setText(R.id.tv_num, "x${item.gift_total_sum}")
|
||||
.setText(R.id.tv_title1, item.gift_name)
|
||||
.setText(R.id.tv_title2, "${item.gift_price}金币")
|
||||
Glide.with(mContext).load(item.base_image).error(R.mipmap.no_tu)
|
||||
.into(helper.getView(R.id.iv_img))
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import com.bumptech.glide.Glide
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_my.model.UserAlbumsList
|
||||
import java.util.*
|
||||
|
||||
class MyPicListAdapter(private val showDel: Boolean) :
|
||||
BaseQuickAdapter<UserAlbumsList, BaseViewHolder>(
|
||||
R.layout.item_my_pics, ArrayList()
|
||||
) {
|
||||
override fun convert(helper: BaseViewHolder, item: UserAlbumsList) {
|
||||
helper.addOnClickListener(R.id.iv_del)
|
||||
val ivDel = helper.getView<ImageView>(R.id.iv_del)
|
||||
if (item.type == 1) {
|
||||
ivDel.visibility = View.VISIBLE
|
||||
Glide.with(mContext)
|
||||
.load(item.image)
|
||||
.placeholder(R.mipmap.no_tu)
|
||||
.error(R.mipmap.no_tu)
|
||||
.into((helper.getView<View>(R.id.iv_img) as ImageView))
|
||||
} else {
|
||||
ivDel.visibility = View.GONE
|
||||
Glide.with(mContext)
|
||||
.load(item.image)
|
||||
.placeholder(R.mipmap.icon_add_pic22)
|
||||
.error(R.mipmap.icon_add_pic22)
|
||||
.into((helper.getView<View>(R.id.iv_img) as ImageView))
|
||||
}
|
||||
if (showDel && item.type == 1) {
|
||||
ivDel.visibility = View.VISIBLE
|
||||
} else {
|
||||
ivDel.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.MyRoomList
|
||||
|
||||
class MyRoomListAdapter : BaseQuickAdapter<MyRoomList, BaseViewHolder>(R.layout.item_my_room) {
|
||||
|
||||
override fun convert(helper: BaseViewHolder, item: MyRoomList) {
|
||||
|
||||
helper.addOnClickListener(R.id.iv_quite_room)
|
||||
.addOnClickListener(R.id.iv_enter_room)
|
||||
|
||||
GlideUtil.loadImglogo(mContext, item.room_cover, helper.getView(R.id.iv_cover))
|
||||
helper.setText(R.id.tv_room_name, item.room_name).setText(R.id.tv_room_id, "ID:" + item.room_number)
|
||||
if (item.user_type == 1) {
|
||||
helper.setText(R.id.tv_user_type, "房主")
|
||||
if (App.rid==item.rid.toString()){
|
||||
helper.setGone(R.id.iv_quite_room, false)
|
||||
}else{
|
||||
helper.setGone(R.id.iv_quite_room, true)
|
||||
}
|
||||
} else if (item.user_type == 2) {
|
||||
helper.setText(R.id.tv_user_type, "管理员")
|
||||
helper.setGone(R.id.iv_quite_room, true)
|
||||
} else {
|
||||
helper.setText(R.id.tv_user_type, "主持人")
|
||||
helper.setGone(R.id.iv_quite_room, true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import android.graphics.Color
|
||||
import android.widget.TextView
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.NobilityPower
|
||||
|
||||
|
||||
class PeerageAdapter : BaseQuickAdapter<NobilityPower, BaseViewHolder>(R.layout.item_peerage) {
|
||||
override fun convert(helper: BaseViewHolder, item: NobilityPower) {
|
||||
|
||||
helper.setText(R.id.tv_name, item.name)
|
||||
// .setText(R.id.tv_content, item.content)
|
||||
if (item.is_power == 1) {
|
||||
GlideUtil.loadImglogo(mContext, item.image, helper.getView(R.id.iv_icon))
|
||||
helper.getView<TextView>(R.id.tv_name).setTextColor(Color.parseColor("#FFFFBB3A"))
|
||||
} else {
|
||||
GlideUtil.loadImglogo(mContext, item.images, helper.getView(R.id.iv_icon))
|
||||
helper.getView<TextView>(R.id.tv_name).setTextColor(Color.parseColor("#FF999999"))
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import com.bumptech.glide.Glide
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_my.model.CollectRoomListBean
|
||||
import java.util.*
|
||||
|
||||
class ShouCangRoomAdapter :
|
||||
BaseQuickAdapter<CollectRoomListBean, BaseViewHolder>(R.layout.item_shoucang, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: CollectRoomListBean) {
|
||||
helper.addOnClickListener(R.id.tv_enter)
|
||||
Glide.with(mContext).load(item.room_cover).into(helper.getView(R.id.v_img))
|
||||
helper
|
||||
.setText(R.id.tv_title, item.room_name)
|
||||
.setText(R.id.tv_title2, "ID:" + item.room_number.toString())
|
||||
helper.addOnClickListener(R.id.tv_enter)
|
||||
if(item.is_online=="1"){
|
||||
helper.setImageResource(R.id.iv_online,R.mipmap.online1)
|
||||
}else{
|
||||
helper.setImageResource(R.id.iv_online,R.mipmap.online2)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.util.TimeUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.module_live.model.SignedArtistBean
|
||||
|
||||
class SignedArtistAdapter :
|
||||
BaseQuickAdapter<SignedArtistBean, BaseViewHolder>(R.layout.item_signed_artists2) {
|
||||
override fun convert(helper: BaseViewHolder, item: SignedArtistBean) {
|
||||
|
||||
helper.addOnClickListener(R.id.btn_confirm,R.id.btn_cancel)
|
||||
GlideUtil.loadImglogo(mContext, item.head_pic, helper.getView(R.id.iv_head))
|
||||
helper.setText(R.id.tv_name, item.nick_name)
|
||||
.setText(R.id.tv_time,"ID:${item.uid}")
|
||||
.setText(R.id.tv_time2,"到期时间"+TimeUtil.toDateYmdHan3(item.end_time.toLong()))
|
||||
if (item.sex == 1) {
|
||||
helper.setImageResource(R.id.iv_sex, R.mipmap.login_reg_nan1)
|
||||
} else {
|
||||
helper.setImageResource(R.id.iv_sex, R.mipmap.login_reg_nv1)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import android.graphics.Color
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
import com.yuyin.lib_base.util.TimeUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_home.model.userWithdrawalBean
|
||||
import java.util.*
|
||||
|
||||
class TxLogDeatileAdapter :
|
||||
BaseQuickAdapter<userWithdrawalBean, BaseViewHolder>(R.layout.item_txmx_new, ArrayList()) {
|
||||
override fun convert(helper: BaseViewHolder, item: userWithdrawalBean) {
|
||||
|
||||
if(item.status=="1"){ // 1待审核 2已到账3打款失败
|
||||
helper.setText(R.id.tv_tx_status, "待审核")
|
||||
helper.setBackgroundRes(R.id.tv_tx_status,R.drawable.shape_tx_mxbg1)
|
||||
helper.setTextColor(R.id.tv_tx_status,Color.parseColor("#999999"))
|
||||
}else if(item.status=="2"){ // 1待审核 2已到账 3打款失败
|
||||
helper.setText(R.id.tv_tx_status, "已到账")
|
||||
helper.setBackgroundRes(R.id.tv_tx_status,R.drawable.shape_tx_mxbg2)
|
||||
helper.setTextColor(R.id.tv_tx_status,Color.parseColor("#00AA58"))
|
||||
}else if(item.status=="3"){ // 1待审核 2已到账 3打款失败
|
||||
helper.setText(R.id.tv_tx_status, "打款失败")
|
||||
helper.setBackgroundRes(R.id.tv_tx_status,R.drawable.shape_tx_mxbg1)
|
||||
helper.setTextColor(R.id.tv_tx_status,Color.parseColor("#999999"))
|
||||
}
|
||||
|
||||
helper.setText(R.id.tv_tx_date, TimeUtil.toDateYmd5(item.add_time))
|
||||
.setText(R.id.tv_tx_money, item.general_money+"")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.yuyin.mier.module_my.adapter
|
||||
|
||||
import android.view.View
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter
|
||||
import com.chad.library.adapter.base.BaseViewHolder
|
||||
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.module_live.model.UserGiftList
|
||||
|
||||
class UserGiftWallAdapter :
|
||||
BaseQuickAdapter<UserGiftList, BaseViewHolder>(R.layout.item_user_gift_wall) {
|
||||
override fun convert(helper: BaseViewHolder, item: UserGiftList) {
|
||||
GlideUtil.loadImglogo(mContext, item.base_image, helper.getView(R.id.iv_cover))
|
||||
|
||||
helper.setText(R.id.tv_name, item.gift_name)
|
||||
.setText(R.id.tv_num, "x" + item.num)
|
||||
.setText(R.id.tv_price, item.gift_price)
|
||||
|
||||
|
||||
helper.getView<View>(R.id.rl_wall_bg).isSelected = item.isSelect
|
||||
|
||||
if (item.isSelect) {
|
||||
// helper.getView<LinearLayout>(R.id.rl_wall_bg).alpha = 1f
|
||||
helper.setVisible(R.id.tv_num, true)
|
||||
helper.setVisible(R.id.iv_head, true)
|
||||
// helper.setVisible(R.id.tv_num, item.num.isNotEmpty())
|
||||
helper.setVisible(R.id.tv_num, true)
|
||||
// if(!TextUtils.isEmpty(item.max_gift_num_user.head_pic)){
|
||||
// GlideUtil.loadImglogo(
|
||||
// mContext,
|
||||
// item.max_gift_num_user.head_pic,
|
||||
// helper.getView(R.id.iv_head)
|
||||
// )
|
||||
// }
|
||||
|
||||
|
||||
helper.addOnClickListener(R.id.iv_head)
|
||||
|
||||
} else {
|
||||
// helper.getView<LinearLayout>(R.id.rl_wall_bg).alpha = 0.6f
|
||||
helper.setVisible(R.id.tv_num, false)
|
||||
helper.setVisible(R.id.iv_head, false)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.yuyin.mier.module_my.auction
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivitySignedArtistBinding
|
||||
import com.yuyin.mier.module_home.tab.center.MainCenterViewModel
|
||||
import com.yuyin.mier.module_my.adapter.SignedArtistAdapter
|
||||
import com.yuyin.mier.module_my.set.SetTipsDialog
|
||||
|
||||
class SignedArtistActivity : BaseDataBindingActivity<MainCenterViewModel,
|
||||
ActivitySignedArtistBinding>() {
|
||||
|
||||
var page = 1
|
||||
|
||||
lateinit var signedArtistAdapter: SignedArtistAdapter
|
||||
|
||||
override fun startObserve() {
|
||||
|
||||
viewModel.signedArtist.observe(this) {
|
||||
if (page == 1) {
|
||||
signedArtistAdapter.setNewData(it)
|
||||
} else {
|
||||
signedArtistAdapter.addData(it)
|
||||
}
|
||||
}
|
||||
viewModel.getFinally().observe(this) {
|
||||
mDataBinding.smart.finishRefresh()
|
||||
mDataBinding.smart.finishLoadMore()
|
||||
}
|
||||
|
||||
viewModel.renewalAmountBean.observe(this) { money ->
|
||||
|
||||
val setTipsDialog = SetTipsDialog(this);
|
||||
if (money.money.toInt() > 0) {
|
||||
setTipsDialog.getBinding().tvContent.text = "本次需花费${money.money}金币续约7天,确定续约吗?"
|
||||
} else {
|
||||
setTipsDialog.getBinding().tvContent.text =
|
||||
"前三次免费续约,本次可花费${money.money}金币续约7天,确定续约吗?"
|
||||
}
|
||||
|
||||
setTipsDialog.getBinding().btnConfirm.setOnClickListener {
|
||||
//在子线程执行删除缓存
|
||||
viewModel.user_renewal_contract(money.id)
|
||||
setTipsDialog.dismiss()
|
||||
}
|
||||
setTipsDialog.show()
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.activity_signed_artist
|
||||
}
|
||||
|
||||
override fun initView() {
|
||||
|
||||
|
||||
mDataBinding.rvContainer.layoutManager = LinearLayoutManager(this)
|
||||
signedArtistAdapter = SignedArtistAdapter()
|
||||
mDataBinding.rvContainer.adapter = signedArtistAdapter
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
viewModel.get_user_contract_list(UserManager.user.uid.toString(), page.toString(), "20")
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
|
||||
signedArtistAdapter.setOnItemChildClickListener { adapter, view, position ->
|
||||
|
||||
if (view.id == R.id.btn_confirm) {
|
||||
|
||||
viewModel.user_renewal_contract_status(signedArtistAdapter.data[position].id.toString())
|
||||
|
||||
} else if (view.id == R.id.btn_cancel) {
|
||||
|
||||
viewModel.user_cancel_contract(
|
||||
signedArtistAdapter.data[position].id.toString(),
|
||||
UserManager.user.uid.toString()
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
mDataBinding.smart.setOnRefreshLoadMoreListener(object : OnRefreshLoadMoreListener {
|
||||
override fun onRefresh(refreshLayout: RefreshLayout) {
|
||||
page = 1
|
||||
viewModel.get_user_contract_list(
|
||||
UserManager.user.uid.toString(),
|
||||
page.toString(),
|
||||
"20"
|
||||
)
|
||||
}
|
||||
|
||||
override fun onLoadMore(refreshLayout: RefreshLayout) {
|
||||
page++
|
||||
viewModel.get_user_contract_list(
|
||||
UserManager.user.uid.toString(),
|
||||
page.toString(),
|
||||
"20"
|
||||
)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
package com.yuyin.mier.module_my.chongzhi
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Handler
|
||||
import android.os.Message
|
||||
import android.text.TextUtils
|
||||
import androidx.databinding.ViewDataBinding
|
||||
import com.alipay.sdk.app.PayTask
|
||||
import com.tencent.mm.opensdk.modelpay.PayReq
|
||||
import com.tencent.mm.opensdk.openapi.WXAPIFactory
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.module_my.adapter.ChargeAdapter
|
||||
import com.yuyin.mier.module_my.model.GoodsListBean
|
||||
import com.yuyin.mier.module_my.model.PayResult
|
||||
import kotlinx.android.synthetic.main.activity_chongzhi.*
|
||||
import java.util.ArrayList
|
||||
|
||||
class ChongZhiActivity : BaseDataBindingActivity<ChongZhiViewModel, ViewDataBinding>() {
|
||||
private lateinit var chargeAdapter: ChargeAdapter
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.goodsListData.observe(this, {
|
||||
chargeAdapter.getList_adapter().clear()
|
||||
chargeAdapter.getList_adapter().addAll(it)
|
||||
chargeAdapter.notifyDataSetChanged()
|
||||
})
|
||||
viewModel.alipay.observe(this, {
|
||||
val payRunnable = Runnable {
|
||||
val alipay = PayTask(this)
|
||||
val result: Map<String, String> = alipay.payV2(
|
||||
it,
|
||||
true
|
||||
)
|
||||
val msg = Message()
|
||||
msg.what = SDK_PAY_FLAG
|
||||
msg.obj = result
|
||||
mHandler.sendMessage(msg)
|
||||
}
|
||||
// 必须异步调用
|
||||
val payThread = Thread(payRunnable)
|
||||
payThread.start()
|
||||
})
|
||||
viewModel.weixin.observe(this, {
|
||||
val mWxApi = WXAPIFactory.createWXAPI(
|
||||
this,null)
|
||||
// 将该app注册到微信
|
||||
mWxApi.registerApp("wx7b5c4e89e726a72c")
|
||||
// 判断是否安装客户端
|
||||
if (!mWxApi.isWXAppInstalled) {
|
||||
"请您先安装微信客户端!".showToast()
|
||||
return@observe
|
||||
}
|
||||
val req = PayReq()
|
||||
req.appId = "wx7b5c4e89e726a72c" // 微信开放平台审核通过的应用APPID
|
||||
|
||||
req.partnerId = it.partnerid // 微信支付分配的商户号
|
||||
|
||||
req.prepayId = it.prepayid // 预支付订单号,app服务器调用“统一下单”接口获取
|
||||
|
||||
req.nonceStr = it.noncestr // 随机字符串,不长于32位
|
||||
|
||||
req.timeStamp = java.lang.String.valueOf(it.timestamp) // 时间戳
|
||||
|
||||
req.packageValue = it.packageX // 固定值Sign=WXPay,可以直接写死,服务器返回的也是这个固定值
|
||||
|
||||
req.sign = it.sign // 签名,
|
||||
|
||||
// 调用微信SDK,发起支付,回调WxPayEntryActivity
|
||||
mWxApi.sendReq(req)
|
||||
})
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_chongzhi
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
chargeAdapter = ChargeAdapter(this)
|
||||
myGrid.adapter = chargeAdapter
|
||||
viewModel.loadData(UserManager.user.uid.toString())
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
textVx.setOnClickListener {
|
||||
checkbox2.isChecked = true
|
||||
checkbox.isChecked = false
|
||||
}
|
||||
textZfb.setOnClickListener {
|
||||
checkbox2.isChecked = false
|
||||
checkbox.isChecked = true
|
||||
}
|
||||
|
||||
myGrid.setOnItemClickListener { adapterView, view, position, l ->
|
||||
val list_adapter: List<GoodsListBean> = chargeAdapter.getList_adapter()
|
||||
if (list_adapter[position].isSelect) {
|
||||
} else {
|
||||
for (list in list_adapter) {
|
||||
list.isSelect = false
|
||||
}
|
||||
list_adapter[position].isSelect = true
|
||||
chargeAdapter.notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
btn_ok.setOnClickListener {
|
||||
val list_adapter: List<GoodsListBean> = chargeAdapter.getList_adapter()
|
||||
val listNew: MutableList<GoodsListBean> = ArrayList<GoodsListBean>()
|
||||
for (list in list_adapter) {
|
||||
if (list.isSelect) {
|
||||
listNew.add(list)
|
||||
}
|
||||
}
|
||||
if (listNew.size > 0) {
|
||||
if (checkbox2.isChecked) {
|
||||
loadWxData(java.lang.String.valueOf(listNew[0].crid))
|
||||
} else if (checkbox.isChecked) {
|
||||
loadZfbData(java.lang.String.valueOf(listNew[0].crid))
|
||||
// ToastUtil.showToast(context,"暂不支持")
|
||||
} else if (!textVx.isSelected && !textZfb.isSelected) {
|
||||
"请选择充值方式".showToast()
|
||||
}
|
||||
} else {
|
||||
"请选择充值金额".showToast()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadWxData(valueOf: String) {
|
||||
viewModel.rechargeWxPay(UserManager.user.uid.toString(), valueOf, "2")
|
||||
}
|
||||
private fun loadZfbData(valueOf: String) {
|
||||
viewModel.rechargePay(UserManager.user.uid.toString(), valueOf, "1")
|
||||
}
|
||||
private val SDK_PAY_FLAG = 1
|
||||
|
||||
@SuppressLint("HandlerLeak")
|
||||
private val mHandler: Handler = object : Handler() {
|
||||
override fun handleMessage(msg: Message) {
|
||||
val payResult2 = PayResult(msg.obj as Map<String, String>)
|
||||
when (msg.what) {
|
||||
SDK_PAY_FLAG -> {
|
||||
val payResult = PayResult(msg.obj as Map<String, String>)
|
||||
|
||||
/**
|
||||
* 对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。
|
||||
*/
|
||||
val resultInfo: String = payResult.getResult() // 同步返回需要验证的信息
|
||||
val resultStatus: String = payResult.getResultStatus()
|
||||
// 判断resultStatus 为9000则代表支付成功
|
||||
if (TextUtils.equals(resultStatus, "9000")) {
|
||||
// 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
|
||||
"支付成功".showToast()
|
||||
} else {
|
||||
// 失败。
|
||||
"支付失败,请重试".showToast()
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.yuyin.mier.module_my.chongzhi
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.model.Wxmodel
|
||||
import com.yuyin.mier.module_my.model.GoodsListBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class ChongZhiViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
var weixin = MutableLiveData<Wxmodel>()
|
||||
|
||||
var goodsListData = MutableLiveData<ArrayList<GoodsListBean>>()
|
||||
|
||||
fun loadData(uid: String) {
|
||||
launchUI {
|
||||
val result = repository.goodsList(uid)
|
||||
goodsListData.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
var alipay = MutableLiveData<String>()
|
||||
fun rechargePay(user_id: String, goods_id: String, type: String) {
|
||||
launchUI {
|
||||
val result = repository.rechargePay(user_id, goods_id, type)
|
||||
alipay.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun rechargeWxPay(user_id: String, goods_id: String, type: String) {
|
||||
launchUI {
|
||||
val result = repository.rechargeWxPay(user_id, goods_id, type)
|
||||
weixin.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
65
app/src/main/java/com/yuyin/mier/module_my/cp/CPActivity.kt
Normal file
65
app/src/main/java/com/yuyin/mier/module_my/cp/CPActivity.kt
Normal file
@@ -0,0 +1,65 @@
|
||||
package com.yuyin.mier.module_my.cp
|
||||
|
||||
import android.view.View
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityCpBinding
|
||||
|
||||
|
||||
class CPActivity : BaseDataBindingActivity<CPViewModel, ActivityCpBinding>() {
|
||||
|
||||
override fun startObserve() {
|
||||
|
||||
|
||||
viewModel.cpDetail.observe(this) {
|
||||
|
||||
if (it.is_have_cp == 2) {
|
||||
mDataBinding.emptyView.visibility = View.VISIBLE
|
||||
mDataBinding.llCp.visibility = View.GONE
|
||||
} else {
|
||||
mDataBinding.emptyView.visibility = View.GONE
|
||||
mDataBinding.llCp.visibility = View.VISIBLE
|
||||
mDataBinding.cpLeftName.text = it.nick_name
|
||||
mDataBinding.cpRightName.text = it.receive_nick_name
|
||||
GlideUtil.loadImglogo(this, it.head_pic, mDataBinding.leftHead)
|
||||
GlideUtil.loadImglogo(this, it.receive_head_pic, mDataBinding.rightHead)
|
||||
// loadImage( mDataBinding.leftFrame, it.win_base_image,R.mipmap.)
|
||||
// loadImage( mDataBinding.rightFrame, it.receive_win_base_image,)
|
||||
mDataBinding.tvValue.text = it.now_value.toString()+"/"+it.next_value
|
||||
if(it.is_online=="1"){
|
||||
mDataBinding.ivOnline.setImageResource(R.mipmap.online1)
|
||||
}else{
|
||||
mDataBinding.ivOnline.setImageResource(R.mipmap.online2)
|
||||
}
|
||||
if(it.receive_is_online=="1"){
|
||||
mDataBinding.ivOnline2.setImageResource(R.mipmap.online1)
|
||||
}else{
|
||||
mDataBinding.ivOnline2.setImageResource(R.mipmap.online2)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun getLayoutId(): Int {
|
||||
return R.layout.activity_cp
|
||||
}
|
||||
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
|
||||
override fun initData() {
|
||||
viewModel.user_coupling_info(UserManager.user.uid.toString())
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
mDataBinding.ivRemoveCp.setOnClickListener {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
21
app/src/main/java/com/yuyin/mier/module_my/cp/CPViewModel.kt
Normal file
21
app/src/main/java/com/yuyin/mier/module_my/cp/CPViewModel.kt
Normal file
@@ -0,0 +1,21 @@
|
||||
package com.yuyin.mier.module_my.cp
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.module_my.model.CPDetailsBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class CPViewModel : BaseViewModel() {
|
||||
|
||||
private val repository = CommonRepository()
|
||||
|
||||
|
||||
val cpDetail = MutableLiveData<CPDetailsBean>()
|
||||
|
||||
fun user_coupling_info(uid: String) {
|
||||
launchUI {
|
||||
val result = repository.user_coupling_info(uid)
|
||||
cpDetail.value = result.data
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
package com.yuyin.mier.module_my.dengji
|
||||
|
||||
import android.content.Intent
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.flyco.tablayout.listener.CustomTabEntity
|
||||
import com.flyco.tablayout.listener.OnTabSelectListener
|
||||
import com.yuyin.mier.BR
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityDjBinding
|
||||
import com.yuyin.mier.module_my.tequan.TeQuanActivity
|
||||
import com.yuyin.lib_base.arouter.AroutUtil.MY_COMM_DENGJI
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.mier.adapter.LeverListAdapter
|
||||
import kotlinx.android.synthetic.main.activity_dj.*
|
||||
|
||||
@Route(path = MY_COMM_DENGJI)
|
||||
class DengJiActivity : BaseDataBindingActivity<DengJiViewModel, ActivityDjBinding>() {
|
||||
|
||||
private val titleRes = ArrayList<String>() //tab标题集合
|
||||
private val dataTab: ArrayList<CustomTabEntity> = ArrayList() //CommonTabLayout 所需数据集合
|
||||
private lateinit var leverListAdapter: LeverListAdapter
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.dengJiBeanData.observe(this) {
|
||||
mDataBinding.setVariable(BR.data1, it.contribution_level_info)
|
||||
mDataBinding.setVariable(BR.data2, it.charm_level_info)
|
||||
mDataBinding.setVariable(BR.vm1, viewModel)
|
||||
}
|
||||
viewModel.lever.observe(this) {
|
||||
|
||||
|
||||
leverListAdapter.setNewData(it.level_list)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_dj
|
||||
|
||||
override fun initView() {
|
||||
loadImage(mDataBinding.headImage, UserManager.user.head_pic, R.mipmap.ic_launcher_app)
|
||||
loadImage(mDataBinding.headImage2, UserManager.user.head_pic, R.mipmap.ic_launcher_app)
|
||||
mDataBinding.idd1.text = UserManager.user.nick_name
|
||||
mDataBinding.idd2.text = UserManager.user.nick_name
|
||||
titleRes.add("贡献等级介绍")
|
||||
titleRes.add("魅力等级介绍")
|
||||
|
||||
for (i in titleRes.indices) {
|
||||
dataTab.add(object : CustomTabEntity {
|
||||
override fun getTabTitle(): String {
|
||||
return titleRes[i]
|
||||
}
|
||||
|
||||
override fun getTabSelectedIcon(): Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
override fun getTabUnselectedIcon(): Int {
|
||||
return 0
|
||||
}
|
||||
})
|
||||
}
|
||||
tab_layout.setTabData(dataTab)
|
||||
tab_layout.setOnTabSelectListener(object : OnTabSelectListener {
|
||||
override fun onTabSelect(position: Int) {
|
||||
if (position == 0) {
|
||||
viewModel.get_level_list("2")
|
||||
} else {
|
||||
viewModel.get_level_list("1")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTabReselect(position: Int) {}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
viewModel.getUserLevelInfo()
|
||||
viewModel.get_level_list("2")
|
||||
|
||||
|
||||
mDataBinding.rvContainer.layoutManager = LinearLayoutManager(this)
|
||||
leverListAdapter = LeverListAdapter()
|
||||
mDataBinding.rvContainer.adapter = leverListAdapter
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
mDataBinding.tequan.setOnClickListener {
|
||||
var intent = Intent(this, TeQuanActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.yuyin.mier.module_my.dengji
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.ui.X5WebViewActivity
|
||||
import com.yuyin.mier.module_home.model.LeverBean
|
||||
import com.yuyin.mier.module_my.model.DengJiBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class DengJiViewModel : BaseViewModel() {
|
||||
private val repository = CommonRepository()
|
||||
var dengJiBeanData: MutableLiveData<DengJiBean> = MutableLiveData()
|
||||
|
||||
fun getUserLevelInfo() {
|
||||
launchUI {
|
||||
var result = repository.get_user_level_info()
|
||||
dengJiBeanData.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun goShuoMing() {
|
||||
|
||||
App.instance?.baseContext?.let { X5WebViewActivity.forward(it, Const.PAGE_DENGJI, "等级说明") }
|
||||
}
|
||||
|
||||
|
||||
var lever = MutableLiveData<LeverBean>()
|
||||
fun get_level_list(type:String) {
|
||||
launchUI {
|
||||
var result = repository.get_level_list(type)
|
||||
lever.value = result.data
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,676 @@
|
||||
package com.yuyin.mier.module_my.edituser
|
||||
|
||||
import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.AlertDialog
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.provider.Settings
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.baoyz.actionsheet.ActionSheet
|
||||
import com.baoyz.actionsheet.ActionSheet.ActionSheetListener
|
||||
import com.bigkoo.pickerview.builder.TimePickerBuilder
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.Priority
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.luck.picture.lib.basic.PictureSelector
|
||||
import com.luck.picture.lib.config.PictureConfig
|
||||
import com.luck.picture.lib.engine.ImageEngine
|
||||
import com.luck.picture.lib.entity.LocalMedia
|
||||
import com.luck.picture.lib.style.PictureSelectorStyle
|
||||
import com.lzy.imagepicker.ImagePicker
|
||||
import com.lzy.imagepicker.bean.ImageItem
|
||||
import com.lzy.imagepicker.ui.ImageGridActivity
|
||||
import com.tbruyelle.rxpermissions2.RxPermissions
|
||||
import com.tencent.imsdk.v2.V2TIMManager
|
||||
import com.tencent.imsdk.v2.V2TIMUserFullInfo
|
||||
import com.tencent.qcloud.tuicore.component.imageEngine.impl.GlideEngine
|
||||
import com.yuyin.lib_base.arouter.AroutUtil.MAIN_MY_USER_INFO
|
||||
import com.yuyin.lib_base.base.BaseActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.model.Login
|
||||
import com.yuyin.lib_base.util.PermissionsChecker
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.module_community.adapter.FBPicListAdapter
|
||||
import com.yuyin.module_community.adapter.FullyGridLayoutManager
|
||||
import com.yuyin.module_community.model.ImageItems
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.birthday
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.birthday_btn
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.head_image
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.id
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.ll_quanxian
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.rl_sex
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.sex
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.sor_release_rv
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.textSend
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.tv_aihao
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.tv_baocun
|
||||
import kotlinx.android.synthetic.main.activity_modify_data.tv_qianming
|
||||
import okhttp3.MediaType.Companion.toMediaTypeOrNull
|
||||
import okhttp3.MultipartBody
|
||||
import okhttp3.RequestBody
|
||||
import org.litepal.LitePal
|
||||
import java.io.File
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Calendar
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
import java.util.TimeZone
|
||||
|
||||
|
||||
@Route(path = MAIN_MY_USER_INFO)
|
||||
class ModifyDataActivity : BaseActivity<ModifyDataViewModel>() {
|
||||
private var startDate: Calendar = Calendar.getInstance()
|
||||
private var endDate: Calendar = Calendar.getInstance()
|
||||
private var seleteDate: Calendar = Calendar.getInstance()
|
||||
var permissionListTmp = arrayOf<String>(
|
||||
Manifest.permission.CAMERA,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE
|
||||
)
|
||||
|
||||
//图片
|
||||
val REQUEST_CODE_SELECT = 100
|
||||
val REQUEST_CODE_SELEC2 = 101
|
||||
private var sexStr: String = ""
|
||||
private var nowDate: String = ""
|
||||
|
||||
private var maxSelectNum = 9 //最多显示的图片数量
|
||||
override fun startObserve() {
|
||||
//绑定数据
|
||||
viewModel.userInfoData.observe(this) {
|
||||
loadImage(head_image, it.head_pic, R.mipmap.ic_launcher_app)
|
||||
//昵称
|
||||
textSend.setText(it.nick_name)
|
||||
//性别
|
||||
sexStr = it.sex
|
||||
if (it.sex == "1") {
|
||||
sex.text = "男"
|
||||
} else {
|
||||
sex.text = "女"
|
||||
}
|
||||
//ID号
|
||||
id.text = it.uid
|
||||
//出生日期
|
||||
birthday.text = it.birthday
|
||||
imgString = it.head_pic
|
||||
tv_qianming.setText(it.autograph)
|
||||
tv_aihao.setText(it.hobby)
|
||||
|
||||
}
|
||||
viewModel.editFinish.observe(this) {
|
||||
"修改成功".showToast()
|
||||
var login = LitePal.findFirst(Login::class.java)
|
||||
login.nick_name = it.nick_name
|
||||
login.head_pic = it.head_pic
|
||||
login.save()
|
||||
UserManager.initData()
|
||||
val info = V2TIMUserFullInfo()
|
||||
info.setNickname(it.nick_name)
|
||||
info.faceUrl = it.head_pic
|
||||
V2TIMManager.getInstance().setSelfInfo(info, null)
|
||||
finish()
|
||||
}
|
||||
viewModel.imgListData.observe(this) {
|
||||
if (it.isEmpty()) return@observe
|
||||
val nickname = textSend.text.toString().trim()
|
||||
val birthDay = birthday.text.toString().trim()
|
||||
val qianming = tv_qianming.text.toString().trim()
|
||||
val aihao = tv_aihao.text.toString().trim()
|
||||
imgString = it[0]
|
||||
viewModel.editUserInfo(
|
||||
imgString,
|
||||
nickname,
|
||||
sexStr,
|
||||
birthDay,
|
||||
qianming,
|
||||
aihao
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_modify_data
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
|
||||
adapter = FBPicListAdapter()
|
||||
val manager = FullyGridLayoutManager(this, 3, GridLayoutManager.VERTICAL, false)
|
||||
sor_release_rv.layoutManager = manager
|
||||
sor_release_rv.adapter = adapter
|
||||
imageListAll2.add(ImageItems(2, ImageItem()))
|
||||
adapter.setNewData(imageListAll2)
|
||||
|
||||
viewModel.loadUserInfo()
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
rl_sex.setOnClickListener {
|
||||
ActionSheet.createBuilder(this, supportFragmentManager)
|
||||
.setCancelButtonTitle("取消")
|
||||
.setOtherButtonTitles("男", "女")
|
||||
.setCancelableOnTouchOutside(true)
|
||||
.setListener(object : ActionSheetListener {
|
||||
override fun onDismiss(actionSheet: ActionSheet, isCancel: Boolean) {}
|
||||
override fun onOtherButtonClick(actionSheet: ActionSheet, index: Int) {
|
||||
when (index) {
|
||||
0 -> {
|
||||
sexStr = "1"
|
||||
sex.text = "男"
|
||||
}
|
||||
|
||||
1 -> {
|
||||
sexStr = "2"
|
||||
sex.text = "女"
|
||||
}
|
||||
}
|
||||
}
|
||||
}).show()
|
||||
}
|
||||
tv_baocun.setOnClickListener {
|
||||
val nickname = textSend.text.toString().trim()
|
||||
if (TextUtils.isEmpty(nickname)) {
|
||||
"昵称为空".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
val birthDay = birthday.text.toString().trim()
|
||||
if (TextUtils.isEmpty(birthDay)) {
|
||||
"生日为空".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
val qianming = tv_qianming.text.toString().trim()
|
||||
if (TextUtils.isEmpty(qianming)) {
|
||||
"签名不能为空".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
val aihao = tv_aihao.text.toString().trim()
|
||||
if (TextUtils.isEmpty(aihao)) {
|
||||
"爱好不能为空".showToast()
|
||||
return@setOnClickListener
|
||||
}
|
||||
// if (tempList.size == 0) {
|
||||
if (selImageList.size == 0) {
|
||||
viewModel.editUserInfo(
|
||||
imgString,
|
||||
nickname,
|
||||
sexStr,
|
||||
birthDay,
|
||||
qianming,
|
||||
aihao
|
||||
)
|
||||
} else {
|
||||
uploadFile(selImageList[0].path)
|
||||
}
|
||||
// }else{
|
||||
// uploadFile(tempList[0].path)
|
||||
// }
|
||||
}
|
||||
head_image.setOnClickListener {
|
||||
// showImgPop()
|
||||
// var my :GlideEngine
|
||||
PictureSelector.create(this)
|
||||
.openGallery(1)
|
||||
.setImageEngine(TUIEngine())
|
||||
.setSelectorUIStyle(PictureSelectorStyle())
|
||||
.isGif(false)
|
||||
.setMaxSelectNum(1)
|
||||
.isPreviewImage(true)
|
||||
.isDisplayCamera(true)
|
||||
.isOriginalSkipCompress(true)
|
||||
.forResult(REQUEST_CODE_SELECT) //结果回调onActivityResult code
|
||||
}
|
||||
birthday_btn.setOnClickListener {
|
||||
val string = birthday.text.toString()
|
||||
val timeYmd: String = getTimeYmd()
|
||||
val split1 = string.split("-".toRegex()).toTypedArray()
|
||||
val split = timeYmd.split("-".toRegex()).toTypedArray()
|
||||
startDate.set(1900, 0, 1)
|
||||
try {
|
||||
endDate.set(split[0].toInt(), split[1].toInt() - 1, split[2].toInt())
|
||||
} catch (e: NumberFormatException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
try {
|
||||
seleteDate.set(split1[0].toInt(), split1[1].toInt() - 1, split1[2].toInt())
|
||||
} catch (e: NumberFormatException) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
val pvTime = TimePickerBuilder(
|
||||
this@ModifyDataActivity
|
||||
) { date, _ ->
|
||||
if (date != null) {
|
||||
nowDate = getNowDate(date)
|
||||
birthday.text = nowDate
|
||||
}
|
||||
}
|
||||
.setRangDate(startDate, endDate)
|
||||
.setDate(seleteDate)
|
||||
.build()
|
||||
pvTime.show()
|
||||
}
|
||||
|
||||
adapter.setOnItemClickListener { adapter2, view, position ->
|
||||
// var mPermissionsChecker = PermissionsChecker(this@ModifyDataActivity)
|
||||
// if (mPermissionsChecker!!.lacksPermissions(*permissionListTmp)) {
|
||||
// ll_quanxian.visibility = View.VISIBLE
|
||||
// } else {
|
||||
// ll_quanxian.visibility = View.GONE
|
||||
// }
|
||||
|
||||
if (adapter.data[position].type == 2) {
|
||||
|
||||
PictureSelector.create(this)
|
||||
.openGallery(1)
|
||||
.setImageEngine(TUIEngine())
|
||||
.setSelectorUIStyle(PictureSelectorStyle())
|
||||
.isGif(false)
|
||||
.setMaxSelectNum(9)
|
||||
.isPreviewImage(true)
|
||||
.isDisplayCamera(true)
|
||||
.isOriginalSkipCompress(true)
|
||||
.forResult(REQUEST_CODE_SELEC2) //结果回调onActivityResult code
|
||||
|
||||
// var numss = 9 - (adapter.data.size - 1)
|
||||
// if (numss > 3) numss = 3
|
||||
// val rxPermissions = RxPermissions(this)
|
||||
// val finalNumss = numss
|
||||
// rxPermissions
|
||||
// .request(
|
||||
// Manifest.permission.CAMERA,
|
||||
// Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
// Manifest.permission.READ_MEDIA_IMAGES
|
||||
// )
|
||||
// .subscribe { granted: Boolean ->
|
||||
// if (granted) { // Always true pre-M
|
||||
// // 跳转到相册
|
||||
// ll_quanxian.visibility = View.GONE
|
||||
// ImagePicker.getInstance().selectLimit = finalNumss
|
||||
// ImagePicker.getInstance().isMultiMode = true
|
||||
// ImagePicker.getInstance().isCrop = false
|
||||
// val intent = Intent(this, ImageGridActivity::class.java)
|
||||
// //显示选中的图片
|
||||
// startActivityForResult(intent, REQUEST_CODE_SELEC2)
|
||||
// } else {
|
||||
// ll_quanxian.visibility = View.GONE
|
||||
// AlertDialog.Builder(this@ModifyDataActivity)
|
||||
// .setMessage("需要存储权限来访问相册")
|
||||
// .setPositiveButton("去设置") { dialog, which ->
|
||||
// val intent: Intent =
|
||||
// Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
||||
// val uri = Uri.fromParts("package", packageName, null)
|
||||
// intent.setData(uri)
|
||||
// startActivity(intent)
|
||||
// }
|
||||
// .setNegativeButton("取消", null)
|
||||
// .show()
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// adapter.setOnItemClickListener { adapter2, view, position ->
|
||||
// // 在这里调用 checkStoragePermission 检查权限
|
||||
// if (!checkStoragePermission()) {
|
||||
// // 如果权限不足,显示权限提示布局
|
||||
// ll_quanxian.visibility = View.VISIBLE
|
||||
// "请授予存储权限以选择图片".showToast()
|
||||
// return@setOnItemClickListener
|
||||
// }
|
||||
//
|
||||
// var mPermissionsChecker= PermissionsChecker(this@ModifyDataActivity)
|
||||
// if (mPermissionsChecker!!.lacksPermissions(*permissionListTmp)) {
|
||||
// ll_quanxian.visibility= View.VISIBLE
|
||||
// }else{
|
||||
// ll_quanxian.visibility= View.GONE
|
||||
// }
|
||||
// if (adapter.data[position].type == 2) {
|
||||
// var numss = 9 - (adapter.data.size - 1)
|
||||
// if (numss > 3) numss = 3
|
||||
// val rxPermissions = RxPermissions(this)
|
||||
// val finalNumss = numss
|
||||
// rxPermissions
|
||||
// .request(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
// .subscribe { granted: Boolean ->
|
||||
// if (granted) { // Always true pre-M
|
||||
// // 跳转到相册
|
||||
// ll_quanxian.visibility= View.GONE
|
||||
// ImagePicker.getInstance().selectLimit = finalNumss
|
||||
// ImagePicker.getInstance().isMultiMode = true
|
||||
// ImagePicker.getInstance().isCrop = false
|
||||
// val intent = Intent(this, ImageGridActivity::class.java)
|
||||
// //显示选中的图片
|
||||
// startActivityForResult(intent, REQUEST_CODE_SELEC2)
|
||||
// }else{
|
||||
// ll_quanxian.visibility= View.GONE
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
adapter.setOnItemChildClickListener { adapter, view, position ->
|
||||
when (view.id) {
|
||||
R.id.iv_del -> {
|
||||
try {
|
||||
tempList.removeAt(position)
|
||||
imageListAll1.removeAt(position)
|
||||
imageListAll2 = imageListAll1
|
||||
if (tempList.size == maxSelectNum - 1) {
|
||||
imageListAll2.add(ImageItems(2, ImageItem()))
|
||||
adapter.setNewData(imageListAll2)
|
||||
} else {
|
||||
adapter.notifyDataSetChanged()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class TUIEngine : ImageEngine {
|
||||
override fun loadImage(context: Context, url: String, imageView: ImageView) {
|
||||
GlideEngine.loadImage(imageView, url)
|
||||
}
|
||||
|
||||
override fun loadImage(
|
||||
context: Context?,
|
||||
imageView: ImageView?,
|
||||
url: String?,
|
||||
maxWidth: Int,
|
||||
maxHeight: Int
|
||||
) {
|
||||
if (imageView != null) {
|
||||
Glide.with(context!!)
|
||||
.load(url)
|
||||
.apply(
|
||||
RequestOptions()
|
||||
.override(maxWidth, maxHeight)
|
||||
.priority(Priority.HIGH)
|
||||
.fitCenter()
|
||||
)
|
||||
.into(imageView)
|
||||
}
|
||||
}
|
||||
|
||||
override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) {
|
||||
GlideEngine.loadImage(imageView, url)
|
||||
}
|
||||
|
||||
override fun loadGridImage(context: Context, url: String, imageView: ImageView) {
|
||||
GlideEngine.loadImage(imageView, url)
|
||||
}
|
||||
|
||||
override fun pauseRequests(context: Context) {
|
||||
// GlideEngine中没有对应方法,可以留空
|
||||
}
|
||||
|
||||
override fun resumeRequests(context: Context) {
|
||||
// GlideEngine中没有对应方法,可以留空
|
||||
}
|
||||
|
||||
fun clearMemory(context: Context) {
|
||||
// 可以调用Glide的清理方法
|
||||
Glide.get(context).clearMemory()
|
||||
}
|
||||
|
||||
fun loadPreImage(context: Context, url: String, imageView: ImageView) {
|
||||
GlideEngine.loadImage(imageView, url)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun uploadFile(pic: String) {
|
||||
val parts = ArrayList<MultipartBody.Part>()
|
||||
val listPos: MutableList<Int> = ArrayList()
|
||||
// if (tempList.size != 0){
|
||||
// for (i in tempList.indices) {
|
||||
// val file = File(tempList[i].path)
|
||||
// val requestFile =
|
||||
// RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file)
|
||||
// val body = MultipartBody.Part.createFormData("file[]", file.name, requestFile)
|
||||
// parts.add(body)
|
||||
// listPos.add(i)
|
||||
// }
|
||||
// }
|
||||
if (!TextUtils.isEmpty(pic)) {
|
||||
val file2 = File(pic)
|
||||
val requestFile2 = RequestBody.create("multipart/form-data".toMediaTypeOrNull(), file2)
|
||||
val body2 = MultipartBody.Part.createFormData("file[]", file2.name, requestFile2)
|
||||
parts.add(body2)
|
||||
listPos.add(1)
|
||||
}
|
||||
if (parts.size != 0) {
|
||||
|
||||
viewModel.uploadImages(parts)
|
||||
}
|
||||
}
|
||||
|
||||
//图片的弹窗
|
||||
private fun showImgPop() {
|
||||
ActionSheet.createBuilder(this, supportFragmentManager)
|
||||
.setCancelButtonTitle("取消")
|
||||
.setOtherButtonTitles("拍照", "从手机选择")
|
||||
.setCancelableOnTouchOutside(true)
|
||||
.setListener(object : ActionSheetListener {
|
||||
override fun onDismiss(actionSheet: ActionSheet, isCancel: Boolean) {}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onOtherButtonClick(actionSheet: ActionSheet, index: Int) {
|
||||
var mPermissionsChecker = PermissionsChecker(this@ModifyDataActivity)
|
||||
if (mPermissionsChecker!!.lacksPermissions(*permissionListTmp)) {
|
||||
ll_quanxian.visibility = View.VISIBLE
|
||||
} else {
|
||||
ll_quanxian.visibility = View.GONE
|
||||
}
|
||||
val rxPermissions = RxPermissions(this@ModifyDataActivity)
|
||||
rxPermissions
|
||||
.request(
|
||||
Manifest.permission.CAMERA,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_MEDIA_IMAGES
|
||||
)
|
||||
.subscribe { granted: Boolean ->
|
||||
if (granted) { // Always true pre-M
|
||||
ll_quanxian.visibility = View.GONE
|
||||
when (index) {
|
||||
0 -> {
|
||||
//相机
|
||||
ImagePicker.getInstance().isCrop = true
|
||||
val intent = Intent(
|
||||
this@ModifyDataActivity,
|
||||
ImageGridActivity::class.java
|
||||
)
|
||||
intent.putExtra(
|
||||
ImageGridActivity.EXTRAS_TAKE_PICKERS,
|
||||
true
|
||||
) // 是否是直接打开相机
|
||||
startActivityForResult(
|
||||
intent,
|
||||
REQUEST_CODE_SELECT
|
||||
)
|
||||
}
|
||||
|
||||
1 -> {
|
||||
// 跳转到相册
|
||||
// Always true pre-M
|
||||
// 跳转到相册
|
||||
ImagePicker.getInstance().selectLimit = 1
|
||||
ImagePicker.getInstance().isMultiMode = false
|
||||
ImagePicker.getInstance().isCrop = true
|
||||
ImagePicker.getInstance().isShowCamera = true
|
||||
val intent = Intent(
|
||||
this@ModifyDataActivity,
|
||||
ImageGridActivity::class.java
|
||||
)
|
||||
//显示选中的图片
|
||||
//显示选中的图片
|
||||
startActivityForResult(
|
||||
intent,
|
||||
REQUEST_CODE_SELECT
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
ll_quanxian.visibility = View.GONE
|
||||
AlertDialog.Builder(this@ModifyDataActivity)
|
||||
.setMessage("需要存储权限来访问相册")
|
||||
.setPositiveButton("去设置") { dialog: DialogInterface?, which: Int ->
|
||||
val intent =
|
||||
Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
|
||||
val uri = Uri.fromParts("package", packageName, null)
|
||||
intent.setData(uri)
|
||||
startActivity(intent)
|
||||
}
|
||||
.setNegativeButton("取消", null)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}).show()
|
||||
}
|
||||
|
||||
|
||||
private fun getNowDate(date: Date): String {
|
||||
val formatter = SimpleDateFormat("yyyy-MM-dd")
|
||||
return formatter.format(date)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前时间
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private fun getTimeYmd(): String {
|
||||
val date = Date() // 创建一个时间对象,获取到当前的时间
|
||||
val sdf = SimpleDateFormat("yyyy-MM-dd", Locale.CHINA) // 设置时间显示格式
|
||||
sdf.timeZone = TimeZone.getTimeZone("GMT+8")
|
||||
return sdf.format(date)
|
||||
}
|
||||
/*-----------------------图片选择回调------------------------------*/
|
||||
|
||||
private val selImageList = ArrayList<ImageItem>()
|
||||
private var imgString = ""
|
||||
|
||||
private var tempList: ArrayList<ImageItem> = ArrayList()
|
||||
private lateinit var adapter: FBPicListAdapter
|
||||
private var imageListAll1 = ArrayList<ImageItems>()
|
||||
private var imageListAll2 = ArrayList<ImageItems>()
|
||||
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, data)
|
||||
if (data == null) {
|
||||
return
|
||||
}
|
||||
// val tempList: ArrayList<ImageItem>?
|
||||
// if (resultCode == RESULT_OK && data != null) {
|
||||
// //添加图片返回
|
||||
// if (requestCode == REQUEST_CODE_SELECT) {
|
||||
//// tempList =
|
||||
//// data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
|
||||
// tempList = PictureSelector.obtainSelectorList(data) as ArrayList<ImageItem>?
|
||||
// if (tempList == null) {
|
||||
// return
|
||||
// }
|
||||
// selImageList.clear()
|
||||
// selImageList.addAll(tempList)
|
||||
// if (selImageList.size > 0) {
|
||||
// Glide.with(this).load(selImageList[0].path).into(head_image)
|
||||
// }
|
||||
// } else if (requestCode == REQUEST_CODE_SELEC2) {
|
||||
// tempList =
|
||||
// data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
|
||||
// if (tempList == null) {
|
||||
// return
|
||||
// }
|
||||
//
|
||||
// adapter.data.clear()
|
||||
// for (i in tempList.indices) {
|
||||
// imageListAll1.add(ImageItems(1, tempList[i]))
|
||||
// }
|
||||
//
|
||||
// imageListAll2 = imageListAll1
|
||||
// if (imageListAll2.size < maxSelectNum) {
|
||||
// imageListAll2.add(ImageItems(2, ImageItem()))
|
||||
// }
|
||||
//
|
||||
// adapter.setNewData(imageListAll2)
|
||||
// }
|
||||
// }
|
||||
if (resultCode == RESULT_OK && data != null) {
|
||||
//添加图片返回
|
||||
if (requestCode == REQUEST_CODE_SELECT) {
|
||||
// 处理 PictureSelector 返回的结果
|
||||
val localMediaList: ArrayList<LocalMedia> = PictureSelector.obtainSelectorList(data)
|
||||
|
||||
// 清空原有选择
|
||||
selImageList.clear()
|
||||
|
||||
// 将 LocalMedia 转换为 ImageItem
|
||||
for (localMedia in localMediaList) {
|
||||
val imageItem = ImageItem()
|
||||
imageItem.path = localMedia.realPath // 或者使用 localMedia.compressPath
|
||||
|
||||
selImageList.add(imageItem)
|
||||
}
|
||||
|
||||
if (selImageList.size > 0) {
|
||||
Glide.with(this).load(selImageList[0].path).into(head_image)
|
||||
}
|
||||
} else if (requestCode == REQUEST_CODE_SELEC2) {
|
||||
// 处理 ImagePicker 返回的结果
|
||||
val localMediaList: ArrayList<LocalMedia> = PictureSelector.obtainSelectorList(data)
|
||||
|
||||
// val tempList = data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS) as ArrayList<ImageItem>?
|
||||
// if (tempList == null) {
|
||||
// return
|
||||
// }
|
||||
|
||||
|
||||
adapter.data.clear()
|
||||
// for (i in tempList.indices) {
|
||||
// imageListAll1.add(ImageItems(1, tempList[i]))
|
||||
// }
|
||||
tempList.clear()
|
||||
for (localMedia in localMediaList) {
|
||||
val imageItem = ImageItem()
|
||||
imageItem.path = localMedia.realPath
|
||||
tempList.add(imageItem)
|
||||
imageListAll1.add(ImageItems(1, imageItem))
|
||||
}
|
||||
|
||||
imageListAll2 = imageListAll1
|
||||
if (imageListAll2.size < maxSelectNum) {
|
||||
imageListAll2.add(ImageItems(2, ImageItem()))
|
||||
}
|
||||
|
||||
adapter.setNewData(imageListAll2)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.yuyin.mier.module_my.edituser
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.module_my.model.UserInfoBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
import java.net.URLEncoder
|
||||
|
||||
class ModifyDataViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
var editFinish = MutableLiveData<UserInfoBean>()
|
||||
//修改资料
|
||||
fun editUserInfo(
|
||||
img: String,
|
||||
nickname: String,
|
||||
sex: String,
|
||||
birthday: String,
|
||||
autograph: String,
|
||||
hobby: String
|
||||
) {
|
||||
launchUI {
|
||||
var data =
|
||||
repository.setUserInfo(img, nickname, sex, birthday, "",autograph,hobby)
|
||||
editFinish.value = data.data
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.yuyin.mier.module_my.feedback
|
||||
|
||||
import android.text.TextUtils
|
||||
import com.alibaba.android.arouter.facade.annotation.Route
|
||||
import com.yuyin.lib_base.arouter.AroutUtil.MY_COMM_FEEDBACK
|
||||
import com.yuyin.lib_base.base.BaseActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import kotlinx.android.synthetic.main.activity_feedback.*
|
||||
|
||||
@Route(path = MY_COMM_FEEDBACK)
|
||||
class FeedBackActivity : BaseActivity<FeedBackViewModel>() {
|
||||
override fun startObserve() {
|
||||
viewModel.feedbackData.observe(this, {
|
||||
"提交成功".showToast()
|
||||
finish()
|
||||
})
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_feedback
|
||||
|
||||
override fun initView() {
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
butt_ok.setOnClickListener {
|
||||
if (TextUtils.isEmpty(et_content.text.toString().trim())) {
|
||||
"请填写您的反馈建议".showToast()
|
||||
} else {
|
||||
viewModel.feedBack(
|
||||
UserManager.user.uid.toString(),
|
||||
et_content.text.toString().trim()
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.yuyin.mier.module_my.feedback
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class FeedBackViewModel : BaseViewModel() {
|
||||
private val repository = CommonRepository()
|
||||
var feedbackData: MutableLiveData<Any> = MutableLiveData()
|
||||
|
||||
fun feedBack(userID: String, content: String) {
|
||||
launchUI {
|
||||
var result = repository.feedBack(userID, content)
|
||||
feedbackData.value = "成功"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.yuyin.mier.module_my.gh.deatile
|
||||
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityGonghuiButieBinding
|
||||
import com.yuyin.mier.module_my.gh.home.GHHomeViewModel
|
||||
import kotlinx.android.synthetic.main.activity_gonghui_butie.*
|
||||
|
||||
class GHBuTieActivity :
|
||||
BaseDataBindingActivity<GHHomeViewModel, ActivityGonghuiButieBinding>() {
|
||||
override fun startObserve() {
|
||||
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int= R.layout.activity_gonghui_butie
|
||||
|
||||
override fun initView() {
|
||||
webview.loadUrl(Const.GH_BUTIE)
|
||||
title3.text="上周流水:"+intent.getStringExtra("last_week_income")
|
||||
title4.text="本周流水:"+intent.getStringExtra("this_week_income")
|
||||
title5.text="上周收益:"+intent.getStringExtra("last_week_income_money")
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
package com.yuyin.mier.module_my.gh.deatile
|
||||
|
||||
import android.content.Intent
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import com.alibaba.android.arouter.launcher.ARouter
|
||||
import com.blankj.utilcode.util.ClipboardUtils
|
||||
import com.kongzue.dialog.util.BaseDialog
|
||||
import com.kongzue.dialog.v3.CustomDialog
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.arouter.AroutUtil
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import com.yuyin.lib_base.base.UserManager
|
||||
import com.yuyin.lib_base.util.GlideUtil
|
||||
import com.yuyin.lib_base.util.TimeUtil
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityGonghuiDeatileBinding
|
||||
import com.yuyin.mier.module_my.gh.home.GHHomeActivity
|
||||
import com.yuyin.mier.module_my.gh.home.GHHomeViewModel
|
||||
import com.yuyin.mier.module_my.gh.shenqing.GHSQActivity
|
||||
import kotlinx.android.synthetic.main.activity_gh_home.flADD
|
||||
import kotlinx.android.synthetic.main.activity_gonghui_deatile.*
|
||||
|
||||
class GongHuiDeatileActivity :
|
||||
BaseDataBindingActivity<GHHomeViewModel, ActivityGonghuiDeatileBinding>() {
|
||||
var money = "0"
|
||||
private var guild_id = ""
|
||||
|
||||
override fun startObserve() {
|
||||
viewModel.userInfoData.observe(this) {
|
||||
App.guild_id = it.guild_id
|
||||
}
|
||||
viewModel.guildInfoBean.observe(this) {
|
||||
money = it.money
|
||||
if (TextUtils.isEmpty(it.intro)) {
|
||||
tv_ghjj.text = "暂无简介"
|
||||
} else {
|
||||
tv_ghjj.text = it.intro
|
||||
}
|
||||
GlideUtil.loadImglogo(this, it.cover, iv_gh_img)
|
||||
tv_guild_name.text = it.guild_name
|
||||
tv_gh_id.text =
|
||||
if (it.guild_special_id == "0") "ID:" + it.id else "ID:" + it.guild_special_id
|
||||
tv_gh_num.text = it.num
|
||||
tv_add_time.text = "创建时间:" + TimeUtil.toDateYmd(it.add_time)
|
||||
tv_gxz.text = it.contribution_value
|
||||
tv_ghhz.text = it.ghz.nick_name
|
||||
GlideUtil.loadImglogo(this, it.ghz.head_pic, hz_head)
|
||||
if (it.ghz.noblity_image.isNotEmpty()) {
|
||||
GlideUtil.loadImglogo(this, it.ghz.noblity_image, iv_juewei)
|
||||
}
|
||||
if (it.ghz.contribution_level_image.isNotEmpty()) {
|
||||
GlideUtil.loadImglogo(this, it.ghz.contribution_level_image, iv_gongxian)
|
||||
}
|
||||
if (it.ghz.charm_level_image.isNotEmpty()) {
|
||||
GlideUtil.loadImglogo(this, it.ghz.charm_level_image, iv_meili)
|
||||
}
|
||||
|
||||
if (it.ghz.uid == UserManager.user.uid.toString()) {
|
||||
tv_gh_butie.visibility = View.VISIBLE
|
||||
out.visibility = View.GONE
|
||||
add.visibility = View.GONE
|
||||
jiesan.visibility = View.VISIBLE
|
||||
// tv_title2.visibility=View.VISIBLE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_gonghui_deatile
|
||||
|
||||
override fun initView() {
|
||||
guild_id = intent.getStringExtra("ghID").toString()
|
||||
viewModel.get_the_guild_info(guild_id)
|
||||
if (guild_id == App.guild_id) {
|
||||
out.visibility = View.VISIBLE
|
||||
} else {
|
||||
add.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
viewModel.loadUserInfo()
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
ll_go_info.setOnClickListener {
|
||||
ARouter.getInstance().build(AroutUtil.MAIN_MY_HOME_PAGE)
|
||||
.withString("from_id", viewModel.guildInfoBean.value!!.uid)
|
||||
.navigation()
|
||||
}
|
||||
tv_copy.setOnClickListener {
|
||||
if (viewModel.guildInfoBean.value!!.guild_special_id == "0") {
|
||||
ClipboardUtils.copyText(viewModel.guildInfoBean.value!!.id)
|
||||
"复制成功".showToast()
|
||||
} else {
|
||||
ClipboardUtils.copyText(viewModel.guildInfoBean.value!!.guild_special_id)
|
||||
"复制成功".showToast()
|
||||
}
|
||||
}
|
||||
//申请列表
|
||||
tv_title2.setOnClickListener {
|
||||
var intent = Intent(this, GHSQActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
tv_gh_fj.setOnClickListener {
|
||||
var intent = Intent(this, GHHomeActivity::class.java)
|
||||
intent.putExtra("ghID", guild_id)
|
||||
intent.putExtra("type", "room")
|
||||
startActivity(intent)
|
||||
}
|
||||
tv_gh_ren.setOnClickListener {
|
||||
var intent = Intent(this, GHHomeActivity::class.java)
|
||||
intent.putExtra("ghID", guild_id)
|
||||
intent.putExtra("type", "people")
|
||||
startActivity(intent)
|
||||
}
|
||||
tv_gh_butie.setOnClickListener {
|
||||
var intent = Intent(this, GHBuTieActivity::class.java)
|
||||
intent.putExtra("last_week_income", viewModel.guildInfoBean.value!!.last_week_income)
|
||||
intent.putExtra("this_week_income", viewModel.guildInfoBean.value!!.this_week_income)
|
||||
intent.putExtra(
|
||||
"last_week_income_money",
|
||||
viewModel.guildInfoBean.value!!.last_week_income_money
|
||||
)
|
||||
startActivity(intent)
|
||||
}
|
||||
|
||||
|
||||
add.setOnClickListener {
|
||||
flADD.visibility = View.VISIBLE
|
||||
}
|
||||
no1.setOnClickListener {
|
||||
flADD.visibility = View.GONE
|
||||
}
|
||||
sure1.setOnClickListener {
|
||||
viewModel.join_guild(guild_id)
|
||||
flADD.visibility = View.GONE
|
||||
}
|
||||
out.setOnClickListener {
|
||||
val dialog =
|
||||
CustomDialog.build(
|
||||
this,
|
||||
R.layout.dialog_gh_exit
|
||||
) { dialog, v ->
|
||||
var cancel = v?.findViewById<TextView>(R.id.tv_cancel)
|
||||
var confirm = v?.findViewById<TextView>(R.id.tv_confirm)
|
||||
var tv_content = v?.findViewById<TextView>(R.id.tv_content)
|
||||
tv_content?.text =
|
||||
"退出公会需要支付${money}金币,退出公会20天不能加入别的公会!您确定要退出吗?"
|
||||
cancel?.setOnClickListener {
|
||||
dialog?.doDismiss()
|
||||
}
|
||||
confirm?.setOnClickListener {
|
||||
viewModel.quit_guild(intent.getStringExtra("ghID").toString())
|
||||
finish()
|
||||
dialog?.doDismiss()
|
||||
}
|
||||
}
|
||||
val layoutParams = RelativeLayout.LayoutParams(
|
||||
RelativeLayout.LayoutParams.MATCH_PARENT,
|
||||
RelativeLayout.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
dialog?.customLayoutParams = layoutParams
|
||||
dialog?.align = BaseDialog.ALIGN.DEFAULT
|
||||
dialog?.show()
|
||||
}
|
||||
|
||||
jiesan.setOnClickListener {
|
||||
val dialog =
|
||||
CustomDialog.build(
|
||||
this,
|
||||
R.layout.dialog_gh_exit
|
||||
) { dialog, v ->
|
||||
var cancel = v?.findViewById<TextView>(R.id.tv_cancel)
|
||||
var confirm = v?.findViewById<TextView>(R.id.tv_confirm)
|
||||
var tv_content = v?.findViewById<TextView>(R.id.tv_content)
|
||||
tv_content?.text = "确定解散此公会吗?"
|
||||
cancel?.setOnClickListener {
|
||||
dialog?.doDismiss()
|
||||
}
|
||||
confirm?.setOnClickListener {
|
||||
viewModel.diss_guild(guild_id)
|
||||
finish()
|
||||
dialog?.doDismiss()
|
||||
}
|
||||
}
|
||||
val layoutParams = RelativeLayout.LayoutParams(
|
||||
RelativeLayout.LayoutParams.MATCH_PARENT,
|
||||
RelativeLayout.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
dialog?.customLayoutParams = layoutParams
|
||||
dialog?.align = BaseDialog.ALIGN.DEFAULT
|
||||
dialog?.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,202 @@
|
||||
package com.yuyin.mier.module_my.gh.home
|
||||
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import com.blankj.utilcode.util.LogUtils
|
||||
import com.flyco.tablayout.listener.CustomTabEntity
|
||||
import com.flyco.tablayout.listener.OnTabSelectListener
|
||||
import com.kongzue.dialog.util.BaseDialog
|
||||
import com.kongzue.dialog.v3.CustomDialog
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.databinding.ActivityGhHomeBinding
|
||||
import com.yuyin.mier.module_my.gh.home.sub1.GHHomeFragment
|
||||
import com.yuyin.mier.module_my.gh.home.sub1.GHHomeFragment2
|
||||
import com.yuyin.mier.module_my.gh.shenqing.GHSQActivity
|
||||
import com.yuyin.lib_base.App
|
||||
import com.yuyin.lib_base.Const
|
||||
import com.yuyin.lib_base.adapter.MyPagerAdapter
|
||||
import com.yuyin.lib_base.base.BaseDataBindingActivity
|
||||
import kotlinx.android.synthetic.main.activity_gh_home.*
|
||||
|
||||
class GHHomeActivity : BaseDataBindingActivity<GHHomeViewModel, ActivityGhHomeBinding>() {
|
||||
private val fsRes: ArrayList<Fragment> = ArrayList<Fragment>() //fragment集合
|
||||
private val titleRes = ArrayList<String>() //tab标题集合
|
||||
private val dataTab: MutableList<CustomTabEntity> =
|
||||
ArrayList<CustomTabEntity>() //CommonTabLayout 所需数据集合
|
||||
// lateinit var baseIndicatorAdapter: BaseIndicatorAdapter
|
||||
var money = "0"
|
||||
override fun startObserve() {
|
||||
viewModel.ghSet.observe(this) {
|
||||
// tvTitle.text = it.guild_name
|
||||
money=it.quit_money
|
||||
LogUtils.e("is_deacon"+it.is_deacon)
|
||||
if (it.is_deacon == "1") {
|
||||
// tvSQ.visibility = View.VISIBLE
|
||||
Const.GH_REMOVE = true
|
||||
//// out.visibility = View.GONE
|
||||
} else {
|
||||
// tvSQ.visibility = View.GONE
|
||||
Const.GH_REMOVE = false
|
||||
}
|
||||
|
||||
//is_join_guild 1 加入 2 未加入
|
||||
// if (it.is_join_guild == "1") {
|
||||
// add.visibility = View.GONE
|
||||
// out.visibility = View.VISIBLE
|
||||
// } else {
|
||||
// add.visibility = View.VISIBLE
|
||||
// out.visibility = View.GONE
|
||||
// }
|
||||
}
|
||||
viewModel.ghListBean2.observe(this) {
|
||||
if (it.size > 0 && tvSQ.visibility==View.VISIBLE) {
|
||||
mDataBinding.tvNum.visibility = View.VISIBLE
|
||||
mDataBinding.tvNum.text = it.size.toString()
|
||||
} else {
|
||||
mDataBinding.tvNum.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_gh_home
|
||||
var ghID = ""
|
||||
override fun initView() {
|
||||
ghID = intent.getStringExtra("ghID").toString()
|
||||
// var ghName = intent.getStringExtra("ghName").toString()
|
||||
//
|
||||
// if (ghID == App.guild_id) {
|
||||
// add.visibility = View.GONE
|
||||
// out.visibility = View.VISIBLE
|
||||
// } else {
|
||||
// add.visibility = View.VISIBLE
|
||||
// out.visibility = View.GONE
|
||||
// }
|
||||
|
||||
|
||||
titleRes.add("公会成员")
|
||||
titleRes.add("公会房间")
|
||||
fsRes.add(GHHomeFragment2.getInstance(ghID))
|
||||
fsRes.add(GHHomeFragment.getInstance(ghID))
|
||||
|
||||
//设置数据
|
||||
view_pager.adapter = MyPagerAdapter(
|
||||
supportFragmentManager, fsRes, titleRes
|
||||
)
|
||||
mDataBinding.tabLayout.setViewPager(mDataBinding.viewPager)
|
||||
|
||||
|
||||
// mDataBinding.rvContainer.layoutManager = GridLayoutManager(this, 2)
|
||||
// baseIndicatorAdapter = BaseIndicatorAdapter()
|
||||
// mDataBinding.rvContainer.adapter = baseIndicatorAdapter
|
||||
// baseIndicatorAdapter.setNewData(titleRes)
|
||||
|
||||
// baseIndicatorAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
// baseIndicatorAdapter.setSelectPosition(position)
|
||||
// view_pager.currentItem = position
|
||||
// }
|
||||
initListener()
|
||||
// viewModel.get_apply_guild_list(getMap())
|
||||
viewModel.user_is_deacon(intent.getStringExtra("ghID").toString())
|
||||
if(intent.getStringExtra("type").toString()=="room"){
|
||||
view_pager.currentItem=1
|
||||
tvTitle.text ="公会房间"
|
||||
}else{
|
||||
view_pager.currentItem=0
|
||||
tvTitle.text ="公会人员"
|
||||
}
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
tvSQ.setOnClickListener {
|
||||
var intent = Intent(this, GHSQActivity::class.java)
|
||||
startActivity(intent)
|
||||
}
|
||||
add.setOnClickListener {
|
||||
flADD.visibility = View.VISIBLE
|
||||
}
|
||||
out.setOnClickListener {
|
||||
val dialog =
|
||||
CustomDialog.build(
|
||||
this,
|
||||
R.layout.dialog_gh_exit
|
||||
) { dialog, v ->
|
||||
var cancel = v?.findViewById<TextView>(R.id.tv_cancel)
|
||||
var confirm = v?.findViewById<TextView>(R.id.tv_confirm)
|
||||
var tv_content = v?.findViewById<TextView>(R.id.tv_content)
|
||||
tv_content?.text = "退出公会需要支付${money}金币,退出公会20天不能加入别的公会!您确定要退出吗?"
|
||||
cancel?.setOnClickListener {
|
||||
dialog?.doDismiss()
|
||||
}
|
||||
confirm?.setOnClickListener {
|
||||
viewModel.quit_guild(intent.getStringExtra("ghID").toString())
|
||||
finish()
|
||||
dialog?.doDismiss()
|
||||
}
|
||||
}
|
||||
val layoutParams = RelativeLayout.LayoutParams(
|
||||
RelativeLayout.LayoutParams.MATCH_PARENT,
|
||||
RelativeLayout.LayoutParams.WRAP_CONTENT
|
||||
)
|
||||
dialog?.customLayoutParams = layoutParams
|
||||
dialog?.align = BaseDialog.ALIGN.DEFAULT
|
||||
dialog?.show()
|
||||
}
|
||||
flADD.setOnClickListener {
|
||||
flADD.visibility = View.GONE
|
||||
}
|
||||
sure1.setOnClickListener {
|
||||
viewModel.join_guild(intent.getStringExtra("ghID").toString())
|
||||
flADD.visibility = View.GONE
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**quit_guild
|
||||
* 初始化监听
|
||||
*/
|
||||
private fun initListener() {
|
||||
//TabLayout监听
|
||||
tab_layout.setOnTabSelectListener(object : OnTabSelectListener {
|
||||
override fun onTabSelect(position: Int) {
|
||||
//显示相应的item界面
|
||||
view_pager.currentItem = position
|
||||
if(position==0){
|
||||
tab_layout.setBackgroundResource(R.mipmap.gh_tab1)
|
||||
}else{
|
||||
tab_layout.setBackgroundResource(R.mipmap.gh_tab2)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTabReselect(position: Int) {}
|
||||
})
|
||||
//ViewPager监听
|
||||
view_pager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
|
||||
override fun onPageScrolled(i: Int, v: Float, i1: Int) {}
|
||||
override fun onPageSelected(i: Int) {
|
||||
//设置相应选中图标和颜色
|
||||
tab_layout.currentTab = i
|
||||
// baseIndicatorAdapter.setSelectPosition(i)
|
||||
|
||||
}
|
||||
|
||||
override fun onPageScrollStateChanged(i: Int) {}
|
||||
})
|
||||
//设置默认第0个
|
||||
view_pager.currentItem = 0
|
||||
}
|
||||
|
||||
fun getMap(): HashMap<String, String> {
|
||||
var map = HashMap<String, String>()
|
||||
map["page"] = 1.toString()
|
||||
map["guild_id"] = App.guild_id
|
||||
return map
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.yuyin.mier.module_my.gh.home
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.lib_base.util.showToast
|
||||
import com.yuyin.mier.module_home.model.GHDeatileBean
|
||||
import com.yuyin.mier.module_home.model.GHSet
|
||||
import com.yuyin.mier.module_home.model.GHUserListBean
|
||||
import com.yuyin.mier.repository.CommonRepository
|
||||
|
||||
class GHHomeViewModel : BaseViewModel() {
|
||||
var repository = CommonRepository()
|
||||
var ghListBean = MutableLiveData<Any>()
|
||||
var ghSet = MutableLiveData<GHSet>()
|
||||
|
||||
fun join_guild(guild_id: String) {
|
||||
launchUI {
|
||||
var result = repository.join_guild(guild_id)
|
||||
ghListBean.value = result.data
|
||||
if (result.code==200){
|
||||
result.msg.showToast()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun user_is_deacon(guild_id: String) {
|
||||
launchUI {
|
||||
var result = repository.user_is_deacon(guild_id)
|
||||
ghSet.value = result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun quit_guild(guild_id: String) {
|
||||
launchUI {
|
||||
var result = repository.quit_guild(guild_id)
|
||||
ghListBean.value = result.data
|
||||
if (result.code==200){
|
||||
result.msg.showToast()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var ghListBean2 = MutableLiveData<ArrayList<GHUserListBean>>()
|
||||
fun get_apply_guild_list(map: MutableMap<String, String>) {
|
||||
launchUI {
|
||||
var result = repository.get_apply_guild_list(map)
|
||||
ghListBean2.value = result.data.list
|
||||
}
|
||||
}
|
||||
|
||||
var guildInfoBean = MutableLiveData<GHDeatileBean>()
|
||||
fun get_the_guild_info(guild_id: String) {
|
||||
launchUI {
|
||||
var result = repository.get_the_guild_info(guild_id)
|
||||
guildInfoBean.value=result.data
|
||||
}
|
||||
}
|
||||
|
||||
fun diss_guild(guild_id: String) {
|
||||
launchUI {
|
||||
var result = repository.diss_guild(guild_id)
|
||||
if (result.code==200){
|
||||
result.msg.showToast()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.yuyin.mier.module_my.gh.home.sub1
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.viewpager.widget.ViewPager
|
||||
import com.yuyin.lib_base.adapter.MyPagerAdapter
|
||||
import com.yuyin.lib_base.base.BaseDataBindingFragment
|
||||
import com.yuyin.lib_base.base.BaseViewModel
|
||||
import com.yuyin.mier.R
|
||||
import com.yuyin.mier.adapter.BaseIndicatorAdapter
|
||||
import com.yuyin.mier.databinding.FragmentGhHomeSubBinding
|
||||
import com.yuyin.mier.module_my.gh.home.sub2.GHRoomSubFragment
|
||||
import kotlinx.android.synthetic.main.activity_gh_home.*
|
||||
import java.util.*
|
||||
|
||||
class GHHomeFragment : BaseDataBindingFragment<BaseViewModel, FragmentGhHomeSubBinding>() {
|
||||
private val fsRes: ArrayList<Fragment> = ArrayList<Fragment>() //fragment集合
|
||||
private val titleRes = ArrayList<String>() //tab标题集合
|
||||
lateinit var baseIndicatorAdapter: BaseIndicatorAdapter
|
||||
companion object {
|
||||
fun getInstance(type: String): GHHomeFragment {
|
||||
val fragment = GHHomeFragment()
|
||||
val bundle = Bundle()
|
||||
bundle.putString("ghID", type)
|
||||
fragment.arguments = bundle
|
||||
return fragment
|
||||
}
|
||||
}
|
||||
|
||||
override fun startObserve() {
|
||||
}
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.fragment_gh_home_sub
|
||||
|
||||
override fun initView() {
|
||||
val ghID = arguments?.getString("ghID").toString()
|
||||
titleRes.add("昨日")
|
||||
titleRes.add("今日")
|
||||
titleRes.add("本周")
|
||||
titleRes.add("上周")
|
||||
titleRes.add("月榜")
|
||||
fsRes.add(GHRoomSubFragment.getInstance("1", ghID))
|
||||
fsRes.add(GHRoomSubFragment.getInstance("2", ghID))
|
||||
fsRes.add(GHRoomSubFragment.getInstance("3", ghID))
|
||||
fsRes.add(GHRoomSubFragment.getInstance("4", ghID))
|
||||
fsRes.add(GHRoomSubFragment.getInstance("5", ghID))
|
||||
|
||||
mAdapter = MyPagerAdapter(childFragmentManager, fsRes, titleRes)
|
||||
mDataBinding.viewpager.adapter = mAdapter
|
||||
// mDataBinding.tabLayout.setViewPager(mDataBinding.viewpager)
|
||||
mDataBinding.viewpager.offscreenPageLimit = fsRes.size
|
||||
mDataBinding.rvContainer.layoutManager = GridLayoutManager(requireContext(), 5)
|
||||
baseIndicatorAdapter = BaseIndicatorAdapter()
|
||||
mDataBinding.rvContainer.adapter = baseIndicatorAdapter
|
||||
baseIndicatorAdapter.setNewData(titleRes)
|
||||
|
||||
baseIndicatorAdapter.setOnItemClickListener { adapter, view, position ->
|
||||
baseIndicatorAdapter.setSelectPosition(position)
|
||||
mDataBinding.viewpager.currentItem = position
|
||||
}
|
||||
|
||||
mDataBinding.viewpager.addOnPageChangeListener(object :ViewPager.OnPageChangeListener{
|
||||
override fun onPageScrolled(
|
||||
position: Int, positionOffset: Float, positionOffsetPixels: Int
|
||||
) {
|
||||
|
||||
}
|
||||
|
||||
override fun onPageSelected(position: Int) {
|
||||
baseIndicatorAdapter.setSelectPosition(position)
|
||||
}
|
||||
|
||||
override fun onPageScrollStateChanged(state: Int) {
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
override fun initData() {
|
||||
|
||||
}
|
||||
|
||||
override fun initEvent() {
|
||||
}
|
||||
|
||||
|
||||
private lateinit var mAdapter: MyPagerAdapter
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user